Commit Graph
91 Commits
Author SHA1 Message Date
Nicolas Galler 131c06703b [FIX] purchase_stock: do not include internal notes in generated PO
Behavior prior to this commit:

When a PO is generated (via reordering rule, mto rule, or manual replenish),
the description on the PO line includes the internal notes.

Behavior after this commit:

The description on the PO line does not include the internal notes.

Note:

Per c324526ad0, the description on the picking also does not include
the internal notes (anymore), and the test has been updated to reflect
that.

opw-24222438

closes odoo/odoo#64883

X-original-commit: 5db67fb2931517ae94fe0396ef80e9ad997e59cd
Signed-off-by: Nicolas Galler <ngaller@users.noreply.github.com>
2021-01-27 11:16:24 +00:00
Nicolas Pierre c324526ad0 [IMP] purchase_stock: use PO description on receipts
In order to easily compare delivery slip from vendor and receipt, vendor
product name and reference should be visible on the receipt operations.
The receipt description was just the name of the product before, it is
now taking the same description as the PO line, using vendor product
name and reference if it exists.

Task ID-2411544

closes odoo/odoo#62967

Signed-off-by: William Henrotin <Whenrow@users.noreply.github.com>
2021-01-13 15:38:18 +00:00
Rémy Voet (ryv) 6e864e9e0a [FIX] purchase_stock: RFQ update date_planned from portal
In case of RFQ with the "Ask confirmation X day(s) before" set,
the email send to the vendor give a link where he (portal user)
can change the date_planned of PO lines. But
the change wasn't done in the server side because the
`_update_date_planned` (of stock_purchase) doesn't call super if
there isn't a linked move (none in case of RFQ).
Call super also in case there isn't any moves.

close #59040

closes odoo/odoo#63629

X-original-commit: b29ac84fd55923abf582cdee39cb32bacda3eec9
Signed-off-by: Arnold Moyaux <amoyaux@users.noreply.github.com>
Signed-off-by: Rémy Voet <ryv-odoo@users.noreply.github.com>
2020-12-21 10:32:35 +00:00
Florent de Labarre 5fcb340546 [IMP] purchase_stock : simplify compute
During a return the purchase_order_line field is propagate, order_line.move_ids include returned move, that why use returned_move_ids is not mandatory.

closes odoo/odoo#35878

Signed-off-by: Arnold Moyaux <amoyaux@users.noreply.github.com>
2020-10-30 18:58:16 +00:00
Nicolas Martinelli 0329217db5 [FIX] purchase_stock: vendor code
- Create a product P with a MTO Reordering Rule (Buy Route)
- Add a supplier to P with a specific vendor code
- Create a SO for 1 unit of P, validate

A PO is created for the supplier but without using the vendor code.

It happens because the vendor code is overridden by the product
description.

To avoid losing information and redundancy, we add the line description
only if different from the product name.

opw-2383418

closes odoo/odoo#62037

X-original-commit: 0b138ffa5a1b2b03f03fb5dc51994a3bfc4e5dea
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
2020-11-19 17:16:41 +00:00
William Henrotin f27369f757 [FIX] purchase(_stock): track qty_received changes
Commit 0f80e69b8d tracked all changes on
qty_received on the purchase order. But did that wrongly by calling
`write` inside a compute.
Commit b7cc3b068f685d1339f9fe7e47d0c564de1708e7 fixed this `write`
by an `=` to avoid error when the compute is called on virtual records.
This fix result on forgetting to track the quantity delivered.

This commit sends a message to post in `write` AND in the
`compute_qty_received` to be sure it is posted. This way, we do not call
write in compute anymore.

closes odoo/odoo#60067

X-original-commit: 3d592649970df3d755ccb57d68c074acdff67894
Signed-off-by: William Henrotin <Whenrow@users.noreply.github.com>
2020-10-15 10:14:01 +00:00
Rémy Voet (ryv) 6d01060ca4 [FIX] purchase_stock: avoid write in compute.
Calling write in a compute won't works (and shouldn't) if there is any
automated action in the model. fix this issue in the
compute of `_compute_qty_received`.

task-2351175

closes odoo/odoo#59421

X-original-commit: b7cc3b068f685d1339f9fe7e47d0c564de1708e7
Signed-off-by: Arnold Moyaux <amoyaux@users.noreply.github.com>
Signed-off-by: Rémy Voet <ryv-odoo@users.noreply.github.com>
2020-10-07 13:49:32 +00:00
yhu-odoo 3cf3b17213 [FIX] *: adapt access to ir.actions.* records
Missing part of commit 6156f98288

Fix issue #57780

closes odoo/odoo#57941

X-original-commit: 57a46dec1122ca634cccfc8e60d6146e2e400c7e
Related: odoo/enterprise#13320
Signed-off-by: Arnold Moyaux <amoyaux@users.noreply.github.com>
2020-09-17 11:37:43 +00:00
Uku Lagle 6888c2a8de [FIX] purchase_stock: update picking on qty change if dropship
The original feature was introduced in commit #8248f0e153a and works
well for internal transfers, but fails for dropship.

For latter, if quantity is changed on confirmed PO line, new picking is
created, even if the quantity was decreased not increased, leaving the
new draft picking empty.

closes odoo/odoo#57893

X-original-commit: 77a96b2dd0fab4c6b6136d0f23422d8a2bc68bca
Signed-off-by: Arnold Moyaux <amoyaux@users.noreply.github.com>
2020-09-16 16:59:19 +00:00
Victor Feyens 594ccdcbf4 [FIX] *: typos and english incoherences
Mainly transifex issues but also some errors found through 'grep' checks.

Fix typos and obscure english strings in xml contents, fields strings/helps, some docstrings, ...
ensuring correct translations base (and fallback when translations isn't available).

closes odoo/odoo#57276

X-original-commit: 4214f05d454bca2b60fda3a288d529c098e84f77
Related: odoo/enterprise#13053
Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
Signed-off-by: Victor Feyens (vfe) <vfe@odoo.com>
2020-09-08 18:12:26 +00:00
Victor Feyens c482fdbf05 [IMP] various: improve code style and performance by improve `all()` usage
PURPOSE

Clean code. Be more performance oriented.

SPECIFICATIONS

Improvements applied in this commit

  * not all() --> any(not) for earlier returns;
  * all([generator]) --> all(generator) to avoid unnecessary list casting.
    This code construct is better managed by all;

This commit will probably not have a big performance effect on standard
production databases. However each performance and cleaning improvement
is welcomed.

LINKS

Task ID-2328619

closes odoo/odoo#56810

X-original-commit: 1cc6bb1231401ea7f501d2f5b5e9641ec8734850
Related: odoo/enterprise#12802
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
Signed-off-by: Victor Feyens (vfe) <vfe@odoo.com>
2020-08-31 13:59:27 +00:00
Rémy Voet (ryv) 8d62eacfff [FIX] *stock*, mrp: fix effective_date
- Avoid to truncate the hour/min/sec in the computation of the
effective date which is related to the `date_done`
of the first incoming picking.
- With manufacturing in 3-step (pbm_sam), the store picking
had a source document == "New". It was the case because
the `_get_move_finished_values` was call before the create
and the name is set only on create.
To fix this issue, during the `create` set the origin of all move.
- To avoid to maintain old views unused,
remove unused view of stock move.
- The computation of the products_availability json is too expensive
to be in tree view (2.5 times long with it) of picking.
It will be hard to optimize because the half the time
is due to _get_report_lines method - already in batch (on 80 records).
- Review buttons of the replenishment list to be more Odooer.
- In some cases the delay alert date was wrongly compute:
  - If we new dest_move_ids of a existant move, the delay alert date
    won't be compute.
  - If the state (to done) and the date are save in same write call
    the alert date of next move won't be reset.
To avoids these issues, refactor the alert date to be a compute stored
fields.
- To avoid any confusion between date expected in the replenishement
(in date) and the purchase order receipt date (datetime),
we put the receipt date at the middle of the day.
Also  On-Time Delivery Rate computation counts
only when date are bigger effective date trunced to date.
Also used the timezone of the company by default (if not user timezone)

task-2246665

closes odoo/odoo#55379

Related: odoo/upgrade#1586
Related: odoo/enterprise#12309
Signed-off-by: Arnold Moyaux <amoyaux@users.noreply.github.com>
2020-08-18 07:48:27 +00:00
Rémy Voet (ryv) 57f805f71e [IMP] stock*,mrp*: Dates Refactor
- The deadline of MO generated via procurements is calculated differently.
Now, it doesn't take anymore in account the manufacturing_lead
of the company (Security Lead Time of MO). The computation of planned date remains unchanged.
- The date_expected fields was duplicated with the date fields
except when the move was done. Merge both fields.
The only information lost is: we can't know what was the
scheduled date before processing move (`state` == done).
Indeed, the date becomes the actual move processing datetime.
- The `date` in `stock.picking` field contained the time of
(purchase) order `date_order` (`purchase.order`).
This field is was wrongly used in the kanban view where we
expected to see date_planned instead. Also, the `_order` used
this date instead of date_planned too.
- The `delay_alert` is activate independently of stock rules.
Then it is now activate in all case.
- Remove the auto-reschedulting process of stock move via
the stock rule (`propagate_date` and `propagate_date_minimum_delta`).
Replace it by a automatic deadline date (`date_deadline`) propagation.
The deadline is the promise done to/by vendor/client (SO/PO)
then it is a readonly fields on picking/move and MO.
- Now the Scheduled date (`date`) of stock move is never propagate
and it is only related to the Scheduled date of
related document (MO or picking).
- Now when a move is created from procurement (sale),
`date_planned` = `date_deadline` - `security_lead`.
- The `delivery_date` of sale is no editable after confirmation
and propagate as the deadline to related stock move linked to order_line
- Adapt filter and decoration of MO and picking.
- Because we are the client in case of purchase (PO), the promise of vendor
can be not respected. Then we add the lead security to the deadline
(inverse the sale order logic) of PO picking (promise reciept date
+ security lead) to match with the replenishment.

task-2246665
2020-08-18 07:48:27 +00:00
Victor Feyens fdb23e282b [IMP] *: wrong any() usage
Replace wrong usages of any(list|recordset), by any(generator)
to speed up computations, avoiding list creations and/or looping twice on a recordset
for nothing.

any([generator]) => any(generator)
any(filtered) => any(generator)

closes odoo/odoo#55768

Related: odoo/enterprise#12360
Signed-off-by: Victor Feyens (vfe) <vfe@odoo.com>
2020-08-14 09:56:10 +00:00
yhu-odoo 2cd1aec3d0 [FIX] purchase_stock: set propagate_date according to buy rule
Before this commit, when we manually create a PO line, the
propagate_date will always be false. So the change on scheduled date
will never pass to corresponding move.

After this commit, when create a PO line, if no propagate_date for it,
we find if the product has a route with a buy rule. If yes, use the
setting on its first buy rule, if no, set the default to be true.

Task 2298950
PR #55155
2020-08-11 12:19:08 +00:00
Nasreddin (bon) cc0713dc5a [FIX] stock: Display translated picking description in delivery slip
Issue

	- Install English and French languages
	- Create a customer contact and assign french as his language
	- Create a product with correct names in both languages.
	  For example 'French product name' and 'English product name' for easy reference.
	- Create an inventory transfer with the french customer as contact
	- Add the product that you created
	- Print > Delivery Slip

	The report will show in the lines:
	"""
	French product name
	English product name
	"""

Cause

	Getting product description without checking partner language.

Solution

	If partner is set, get product description with partner language in context.

opw-2280490

closes odoo/odoo#54061

X-original-commit: cebe2cf57e68e2d1d54cd442aff6ba7d9554d043
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
Signed-off-by: bon-odoo <nboulif@users.noreply.github.com>
2020-07-03 15:12:56 +00:00
yhu-odoo 0f80e69b8d [IMP] purchase(_stock): track qty_received in chatter
Track the change of qty_received of POL in the chatter of PO.

Task 2265912
PR #52809

Signed-off-by: Simon Lejeune (sle) <sle@openerp.com>
2020-06-29 13:27:24 +00:00
yhu-odoo 0d3d26aca1 [IMP] purchase(_stock): portal update scheduled date
1. Show only date not datetime on update portal. When update the
scheduled date, set it to be the last minute of that date.
2. Send updated date immediately when user pick a date.
3. If an activity for update the date already exist, update the
note instead of creating a new one.

Task #2265912
PR 52809
2020-06-29 13:27:17 +00:00
Pratima Gupta 6ed99c032a [IMP] stock: propagate_date on 1st receipt move
1) Before this commit, propagate date on 1st receipt move was always False
   if PO was created manually.

   After this commit, move will be assigned with propagte_date of buy
   route of warehouse only if there is not move_dest_ids.

2) Default settings on routes as -
	1) If receipts in 3 steps > the alert on the receipt
	   (+ propagate) and the propagate rescheduling on the followings
	2) If receipt in 1 step > the alert on the buy rule
	   (no propagate rescheduling)

Task-2209541

closes odoo/odoo#51853

Signed-off-by: Simon Lejeune (sle) <sle@openerp.com>
2020-06-24 11:05:33 +00:00
Martin Trigaux ba244cef01 [IMP] *: replace to new _() syntax
Using a few regex like
\((_\(.*%s.*)(\) % )([\w\[\]][\w .\[\]\(\)'"]*)\)
($1, $3))

Old syntax is still compatible but starts the migration to the new
syntax that catches error.
2020-06-18 13:03:34 +02:00
Fabien Pinckaers ccfc54113d [IMP] purchase: Improve reminder mail usability
Some change to imporve reminder mail usability:

1. Scheduled date on POL of the PO form now is always editable.
2. Improve tooltip for the reminder email
3. don't show number of days when reminder email not checked on
   both PO and partner form.
4. only show "confirm receipt date" button in debug model
5. In the mail, format date by partner.lang
6. Add button to send preview reminder mail
7. On default, receipt_reminder_email on res.partner is False
8. merge expected_date with date_planned (done by FP)

Task 2265912
PR #52693
2020-06-09 13:59:10 +00:00
yhu-odoo 181c7d82e3 [IMP] purchase: send reminder mail to vendor
1. automatically send a reminder mail to vendor to confirm the receipt
date. If confirmed, (confirmed by vendor) will be added next to the
receipt date. If not, vendor can update the date on the portal website.
An warning activity will be set for the purchase representative for this
update.

2. Vendor can also comfirm recieption of the PO when we 'send PO by mail'.
If confirm, (confirmed by vendor) will be added next to the confirmation
date. An filter is added in the PO search view to show all unconfirmed
PO.

Task 2230811
PR #49921

Signed-off-by: Simon Lejeune (sle) <sle@openerp.com>
2020-05-27 08:20:17 +00:00
yhu-odoo d83334ef8e [IMP] purchase_stock: add vendor on-time delivery rate
Add on-time delivery rate to vendor. When editing a PO, user can see
the overall on-time delivery rate during the last 365 days next to the
vendor. When click it, user will be redirect to a graph view showing
the detail of the on-time delivery rate of this vendor. Also add a stat
button to show the on-time delivery rate on partner form.

Task: 2230811
PR: #49921
2020-05-27 07:41:43 +00:00
yhu-odoo eb6ddb6e9f [FIX] purchase_stock: old PO not update qty_received after install purchase_stock
Before this commit, after install purchase_stock, old pol records won't
update their qty_received when receive products. This is because their
qty_received_method are not updated during the installation.

Task 2230811
PR #49921
2020-05-27 07:41:43 +00:00
Martin Trigaux d9287caf94 [IMP] *: convert to private methods
render, render_template, load, activity_schedule_with_view,
get_website_pages should all be private:
It should not be possible to render an aribtrary template only with
its name or id

Still need to render some qweb views from js so the method
render_template is kept public.
This explains why the website editor still need read access on
ir.ui.view as we want to allow any snippet to be rendered.
2020-05-14 13:59:10 +02:00
Nicolas Martinelli 25cb4c18e5 [FIX] purchase_stock: receipt with return
- Create a PO, order 5 items
- Validate Receipt with 5 items
- Return 1 item to Vendor
- Update Order Quantity on PO, from 5 to 8

A picking of 3 units is created.

If the same workflow is used in Sales, a picking of 4 units would be
created, which is the expected behavior.

We adapt the logic of Sales [1] to Purchase.

[1] https://github.com/odoo/odoo/commit/8a3284685856b6980e3b620abdbbb3e2c79f57c4

opw-2233826

closes odoo/odoo#51174

X-original-commit: 74e8b9ab2311ed2c1c9cea53d09e3b352db3dbe6
Signed-off-by: Simon Lejeune (sle) <sle@openerp.com>
2020-05-13 13:19:10 +00:00
Victor Feyens cefb3a469c [IMP] purchase_stock: create purchase order lines in batch 2020-04-30 12:33:32 +00:00
Nicolas Martinelli e6a1e240f1 [FIX] purchase_stock: return subcontracted product
- Create a product P with a subcontracted BOM
- Create a PO for P, 10 units
- Receive 10 units
- Return 3 units and specify 'To Refund'

13 units are considered received.

The reason is that we don't return to a vendor location, but an internal
location.

We subtract the quantity when the following conditions are met:
- we ask for a refund
- we return to an internal location
- the return location is not in the warehouse of the move

The solution is similar to odoo/enterprise#9647

opw-2235157

closes odoo/odoo#50119

X-original-commit: 5fd6c5b65e00dcac77b232b9f47b2292d86c6b0f
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
2020-04-24 08:48:27 +00:00
Raphael Collet 6a69f107df [FIX] *: useless parameter 'ondelete' on One2many fields
Note: some of them were moved to the corresponding M2O.
2020-04-07 09:25:08 +00:00
Tiffany Chang (tic) 52dc25d428 [IMP] purchase(_stock): Add more reporting values
Added new values "Average Days to Purchase" and "Average Receipt Delay" to be
used in purchase enterprise reporting tab where:

  Days to Purchase = confirmation date (i.e. 'date_approved') - creation date
  Receipt Delay: effective Date - ('date_planned' or 'expected_date' if
                 no 'date_planned)

Note that these 2 new values are specific to purchase orders only.
Because of this the standard query result cannot be used since it is
done at the purchase order line level. This means duplication of PO
values occur and results in incorrect aggregation calculations. A hack was
done to ensure that these value will aggregated correctly when used at the
enterprise level. Therefore these 2 new values should only be used in
aggregate.

To support these new measures the following updates were also done:
- Addition/improvement of help descriptions for other date related
  measures to avoid confusion
- Change state string to "Status" to match purchase.order (for
  consistent filtering purposes)

This commit supports "Adapt Reporting" subsection of Purchase KPIs task.

Upgrade PR: odoo/upgrade#877
Enterprise PR: odoo/enterprise#8945
Task: 2198420
2020-03-31 10:31:35 +00:00
Tiffany Chang (tic) 18e96c6be2 [IMP] purchase(_stock): Add more and update PO dates
Adds "Expected Date" and "Effective Date" fields to purchase orders to
match what exists in sales orders. "Effective Date" mirrors sales logic
(= first completed stock move). "Expected Date" has simplier logic due
to simplier nature of receiving stock vs shipping (= earliest "Scheduled
Date" of all PO lines). Form view has been updated to include these new fields.

Additionally code was changed to not have PO 'order_line.date_planned' be
overwritten by the 'purchase_order.date_planned' value. Previous behavior
was both confusing and made it so info was lost. Also logic for related
stock move picking line expected date values has been updated to now consider
'purchase_order.date_planned' value if set. Related changes include:
    - not overwriting when PO is edited+saved (this only occurred in write()
      logic, not create() which caused inconsistent behavior anyways.),
    - updating related tests,
    - removing PO line date_planned editing restriction when PO date_planned
      is set
    - updating of relevant stock moves/picking expected date due to
      PO.line.propogate_date = True ('purchase_order.date_planned' if
      exists, otherwise 'order_line.date_planned')

This change also includes some small related improvements:
- Removal of outdated code comment.
- Addition of Help strings to better explain fields.
- Prevent copy of 'date_planned' value into new POs (now mirrors sales
  logic).

This change corresponds to "Receipt Date on PO's" subsection of Purchase
KPIs task.

Task #2198420
2020-03-31 10:31:34 +00:00
yhu-odoo d0455ae64b [IMP] purchase: make billing consitent with sale invoicing
========
Purpose
========

Currently, purchase missing some billing functions that we have in sale
invoicing:
 - Create credit note when necessary
 - Create vendor bill in batch in list view

========
Spec
========

 - In case of retures, when create a bill for a purchase order, we check
the total amount we want to bill to decide whether it's a vendor bill or
a credit note.
 - In the list view, add a new action to create vendor bill/credit note
for all selected order.

========
Links
========

Task 2170715
PR #44210

Related: odoo/upgrade#919
Signed-off-by: Simon Lejeune (sle) <sle@openerp.com>
2020-03-27 09:33:21 +00:00
Mitali Patel b47aa1b005 [IMP] account: update incoterms list
Purpose of this commit is to update incoterms list
base on new incoterms guidlines and add incoterms in RFQ/PO
and invoices/venderbills reports

task-2179236

closes odoo/odoo#43883

Related: odoo/upgrade#922
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
2020-03-17 13:01:57 +00:00
Arnold Moyaux abef168389 [IMP] purchase_requistion, purchase_requisition_stock: custom variant
Allow to use custom product decscription on requisition line.

closes odoo/odoo#34174

Task: 1970476
Signed-off-by: Arnold Moyaux <amoyaux@users.noreply.github.com>
2020-03-05 14:31:13 +00:00
Mitali Patel 6f247d799a [IMP] stock, sale_stock, mrp, purchase_stock: transfer the custom variant information
Allow to propagate custom information to upper document. It could be
usefull in many buisness that do custom stuff for people
(t-shirt with user defined text, poster with own pictures...)

The customes values are pass throught procurements'values and are
display on MO or purchase order line.

Task: 1970476
2020-03-05 14:31:13 +00:00
Tiffany Chang (tic) 69c4b628c3 [IMP] mrp,(purchase_)stock: set autogenerated doc creators to Odoobot
Make it so documents auto-generated by other actions have Odoobot set as
the creator rather than the user triggering the action. This includes
the following documents:

1. Delivery (stock.picking) - generated by Sales orders (including MTO)
2. Purchase orders - generated by dropshipping, manual replenishment,
	             and run scheduler
3. Manufacturing orders - generated by made to order (MTO)

This is addresses specification 2 of overall usability improvement task.

Task: 2041853
2020-03-05 13:04:11 +00:00
Nicolas Martinelli ed3f448e68 [FIX] purchase_stock: deliver qui with different UoM
- Create a product A with UoM set to 'Units(s)'
- Create a product B with UoM set to 'Liter(s)'
- Create a BOM of type kit, 2 Liters of B to create 1 Unit of A
- Create a PO with A, validate
- Validate the corresponding picking

An error is raised since we try to compute the quantity received in
Units based on a quantity in Liters.

In case of a kit BOM, an override exists in `purchase_mrp` to compute
correctly the quantity. Therefore, we can skip the line.

Corresponding fix for SO: 47959438b6

Closes #45871
opw-2205970

closes odoo/odoo#46748

X-original-commit: 2ad4621c03a1885f2bb210960ebe8b5ae277e439
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
2020-03-03 13:05:32 +00:00
Victor Feyens ef16266ad6 [FIX] purchase_*: ensure properties are read with the correct company. 2020-02-27 12:19:24 +00:00
William Henrotin 26be4a7bde [FIX] purchase_stock: confuse return move and move dest
Increasing the quantity on a purchase order line will create a stock
move with the delta quantity. In case the purchase order has a return
among its picking_ids, the delta will be wrong.

This is due to the fact a return move is considered like a move_dest
of the original incoming move. The delta quantity will be computed
from the return move which doens't make sense.

This commit excludes outgoing moves from move_dest to avoid taking
return move into account.

closes odoo/odoo#44551

Signed-off-by: Arnold Moyaux <amoyaux@users.noreply.github.com>
2020-02-04 15:07:12 +00:00
Simon Lejeune 9d98c43581 [REF] purchase_stock: push the extra quantity
With a product configured as buy on order and a warehouse configured as
receipt in two steps, if the user increases the quantity on a po line
generated by a sale order before confirming it, the system will send all
the quantity to input but only the ordered quantity to customer. The
issue is that the "extra quantity" will stay in input.

We fix this issue by creating a new move with the extra quantity to the
input location so that push rules will send the extra quantity to stock
while the ordered quantity will be sent to the customer.

There was also an issue when incrementing the quantity on the po line
after confirmation if the po line was the result of a reordering rule:
only a move from supplier to the location of the reordering rule was
created.

This commit also introduces a change of semantic:
`created_purchase_line_id` is cleared after confirming the RFQ. This
allows to merge more in `_merge_moves`.

task-1981355

closes odoo/odoo#43545

Signed-off-by: Simon Lejeune (sle) <sle@openerp.com>
2020-01-28 14:51:36 +00:00
Arnold Moyaux 63fffa0bee [IMP] stock: propagate orderpoint through moves
Orderpoint reference are only set on the first object that is created
from the procurement request. However sometimes we would like to access
it from further object or define another behavior if we come from an
orderpoint.

Now that the we propagate the orderpoint_id, it's important to ignore
po line with an orderpoint AND a chained stock move, else the quantities
will be counted twice by the orderpoint in a 2 steps receipt scenario

Task: 1849912
2020-01-09 12:17:39 +00:00
Goffin Simon 23c860a54c [FIX] purchase_stock: Unable to set default value for field "Delivery to" in RFQ
Steps to reproduce the bug:

- Let's consider the current user U logged in company C
- Let's consider two operation types OT1 and OT2 with code = 'incoming' and  warehouse_id.company_id = C
- Let's define OT2 as default value for field picking_type_id in model 'purchase.order'
- Try to create a new RFQ

Bug:

The default picking_type_id was OT1 instead of OT2

opw:2124083

closes odoo/odoo#41700

X-original-commit: d49abf3c8f21ccd56c12f9835520deaf715ffcc0
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
2019-12-11 09:25:39 +00:00
Debauche Stéphane 97b23f51a9 [IMP] purchase_stock: fix alert if move created
The delay alert is only triggered when writing on the date,
We want also to trigger it when themove is created.

Task #1970595

closes odoo/odoo#41953

Signed-off-by: Simon Lejeune (sle) <sle@openerp.com>
2019-12-30 15:15:00 +00:00
Debauche Stéphane a7ceadd30b [FIX] purchase_stock: fix delay_alert on stock move created from PO
Add a field `delay_alert` on the purchase order line, and set in in `_prepare_stock_moves`.
So, we can use this new field to set the value (`delay_alert_date`) on the stock moves.

Task #1970595
2019-12-30 15:13:49 +00:00
svs-odoo 621a93b7b7 [MOV] *: _prepare_purchase_order_line
Move the method `_prepare_purchase_order_line` from 'stock.rule' to
'purchase.order.line'. The purpose is to reuse it in approvals_purchase.

task-2040710

closes odoo/odoo#41046

Related: odoo/enterprise#6702
Signed-off-by: Simon Lejeune (sle) <sle@openerp.com>
2019-12-02 14:18:39 +00:00
Simon Lejeune 22b9343c9a [FIX] stock: multiple orderpoint
- the oderpoint_id field on the purchase order line wasn't used to not
  merge the po lines
- if the orderpoint_id field is set, use the orderpoint location to
  create the move
- if multiple stock moves with different source locations go through
  `_merge_moves`, they should obviously NOT be merged
- `virtual_available` computed field was not being invalidated when the
  context keys "warehouse" and "location" changed

task-2001462

closes odoo/odoo#40573

Signed-off-by: Arnold Moyaux <amoyaux@users.noreply.github.com>
2019-12-02 12:33:38 +00:00
Victor FeyensandMichaël Mattiello 0eadc0aa5e [IMP] mail: better prevent activity type removal and add a fallback mechanism
Current activity types master data cannot be unlinked through a quite harsh
override of unlink using xml id existence, introduced at 2602642a78.
Some of them are real master data, other could be unlinked if users want it.
Finally custom activity types may cause errors when removed if used in some
side models like server actions or automated actions.

To allow more flexibility we remove the removal constraint and implement
a fallback mechanism. It is implemented in mail.activity.mixin when calling
activity_schedule(xmlid, ...). If the given xmlid is not found
_default_activity_type() specifies the default activity to use. It can
be overridden in modules if some specific behavior is wanted.

e.g.

def _default_activity_type(self):
    """Define a default fallback activity type when xml id not found
    only used in in activity_schedule() for now.
    """
    try:
        return self.env.ref('mail.mail_activity_data_todo')
    except Exception:
        return False

In this commit we also

  * restrict deletion of activity type (hr.plan and ir.actions.server);
  * fallback on default activity type if xmlid ref not found in
    activity_schedule;
  * correct calls to activity_schedule and replace some manual creation calls
    by activity_schedule;

Task ID 1961156
PR #39013

Related: odoo/enterprise#6238
Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
Co-authored-by: Victor Feyens <vfe@odoo.com>
Co-authored-by: Michaël Mattiello <mcm@odoo.com>
2019-11-25 14:17:31 +00:00
Victor Feyens 7720bb21ed [FIX] purchase: sections and notes.
https://github.com/odoo/odoo/pull/34737 didn't go in enough depth to
ensure sections and notes don't break purchase flows.

closes odoo/odoo#39474

X-original-commit: 1e8ea4f5628878dbc667c27d4e76ab42d3f140ea
Signed-off-by: Damien Bouvy (dbo) <dbo@odoo.com>
2019-10-28 18:04:23 +00:00
Andrea Grazioso (agr-odoo) 1ac5ba040e [FIX] account,mrp,payment,purchase,purchase_stock,sale,sale_stock: studio crash on new view
Install stock and purchase. Make a RFQ for just one product, coonfirm
and receive in one transfer. Click on the delivery (should be only 1).
The picking will display. Open studio, select view, activate list view.

Javascript traceback will popup. Moreover the view of the stock
module will be altered in a faulty way (can be recovered from "Window
Actions", looking for the stock.picking action with external id
"stock.action_picking_tree_all" and removing the last added tree from
"View Mode").

This is caused by studio not detecting all the active views, thus giving
the possibility to add an already active view, because when there is just
one picking all other views are filtered out.
Changing the way the form view is retrieved in case of a single picking
fix the issue.

opw-2076241

closes odoo/odoo#38093

Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
2019-10-07 13:18:20 +00:00
Arnold Moyaux e4d64afc1d [REF] purchase_stock: multi company 2019-09-03 15:05:04 +00:00