Commit Graph
404 Commits
Author SHA1 Message Date
Rémy Voet (ryv) 48f6b350a7 [REF] stock: clean onchange of stock.move
Clean onchange of `stock.move`: make it private and move in the
right place.
Also remove the action_assign_partner unused method

task-2373638
2021-01-05 08:32:05 +00:00
Rémy Voet (ryv) 515b9a78e6 [REF] stock,mrp: make picking_type_id compute store in stock.move
In order to have always a picking_type_id on a stock move (and
consistent with his parent model), make it compute store.
Then clean the call of picking_type_id without change the behavior
(/!\ `move.picking_id.picking_type_id != move.picking_type_id` because
of mrp). Fix some test where the location(_dest) was unset in moves.

Also:
- Clean the mess in the create of `stock.picking` about that
and add a onchange to keep location(_dest) consistent with moves.
- The move `description_picking` is set when the `picking_type_id`
change, not only at the create method.

task-2373638
2021-01-05 08:32:05 +00:00
Rémy Voet (ryv) 19c94935b4 [REF] stock: remove index on date of stock.picking
The `date` fields is only used in the `_accumulate_amounts`  of
point_of_sale and is set at now or by the `_prepare_picking` of purchase
(maybe will be remove in the futur).
In all case, and for now, the index is not
used (expected by at a custom search) and should be remove.

task-2389380
2020-12-22 12:43:00 +00:00
Rémy Voet (ryv) e3423d3f28 [REF] stock,mrp: remove index of priority fields
Indexed of boolean values is quite useless and the one of `priority`
(MO/Pickings) can be only used in filter search view (`starred`).
Then remove priority indexes from `stock_move`, `stock_picking` and
`mrp_production`.

task-2389380
2020-12-22 12:42:59 +00:00
Rémy Voet (ryv) cdf2d5441c [FIX] stock: improve perf of _compute_has_packages of stock.picking
Use read_group instead of search count to batch the compute.

opw-2371161

closes odoo/odoo#63754

X-original-commit: b82d8a8456085ab700ef1ce1df4052fa6cefd7e0
Signed-off-by: Arnold Moyaux <amoyaux@users.noreply.github.com>
Signed-off-by: Rémy Voet <ryv-odoo@users.noreply.github.com>
2020-12-23 16:08:02 +00:00
Rémy Voet (ryv) 8f2c4ef9ca [FIX] stock: improve perf of _compute_has_packages of stock.picking
When a picking contains a lot (> 10000) of stock move line, the time
to open the picking become a issue (for 50000 sml, +- 6.5 sec) because of the
`_compute_has_packages`. Use a search with a limit=1 to avoid fetching
all `stock.move.line` with `result_package_id`
(for 50000 sml, +- 2.5 sec).

opw-2371161

X-original-commit: e78ca55997dfbf13c0798c1f59408450071e1452
2020-12-07 07:49:13 +00:00
Tiffany Chang (tic) 2eb40fee87 [IMP] mrp, (sale_)stock: remove unused imports
Removing some unused imports noticed while working on task: 2359317
2020-11-30 16:29:08 +00:00
Tiffany Chang (tic) c7f53f770c [IMP] mrp, (purchase_)stock: improve move reservation
Currently stock moves are auto-assigned (i.e. reserve free stock) both
when the scheduler is run and when a corresponding stock move that can
assign a move is completed. This strictness was causing issues for
prioritization of moves to assign, for example a picking with a
scheduled_date far in the future could automatically reserve all stock
if it was created before another picking that an immediate
scheduled_date. To ease this, an extra setting has been added to
stock.picking.type to let users choose how reservations should occur for
moves assigned to that picking_type (or picking with that picking_type):

1. 'at_confirm' = automatically when:
   - stock is available when the move's associated picking/MO is
   confirmed,
   - when new stock becomes available,
   - when the scheduler is triggered (+ stock available).
2. 'manual' = user must always manually click "Check Availability"
   button (scheduler will no longer reserve).
3. 'by_date' = automatically when within the move's reservation_date
   and:
   - stock is available when the move's associated picking/MO is
   confirmed,
   - new stock becomes available when move is already confirmed, or
   - the scheduler is run (+ stock is available).

'by_date' has an extra option of # days before the move's scheduled
date that affects the move.reservation_date.

Task: 2359317
Upgrade PR: odoo/upgrade#1868
ENT PR: odoo/enterprise#15050
2020-11-30 16:28:47 +00:00
William Henrotin b46f8d64f8 [FIX] stock: move without package in immediate transfers
Since 29d8fc091a, stock moves in immediate transfers are automatically
assigned. In case of configuration implying to show details action, new
moves disappear in stock picking

Task : 2329116

X-original-commit: 0d3f32988a862bbf13fcfbad37cce903ab4e9d60
2020-11-30 15:25:13 +00:00
Rémy Voet (ryv) 70c721e5a2 [FIX] stock: make do_unreserve faster than ever
`do_unreserve` is a action that can be made in the tree view of
`stock.picking` but it was very slow and not batched.
For 80 picking with -/+ 10 `stock.move.line` related each
(calculate on 5 sample of 80 pickings):
It took 17947 +- 2741 SQL requests, 7.37 +- 1.09 sec of SQL
and 8.13 +- 1.31 sec of python execution (+- 15.5 sec in total)

Make some  change to speed up the unreservation of
multiple picking/move:
- Batch the call of `_do_unreserve` of move in picking
- Use OrderedSet instead of RecordSet to reduce the complexity of
`_do_unreserve`. (Become significant when len(recordset) > 1000)
- Add `.with_prefetch()` in the unlink of stock move line
to patch issue with prefetching + unlink + cache.
- Batch `_recompute_state`
- Also batch the `do_unreserve` of MO

Result after change in the same samples:
It take now 1438 +-	20 SQL requests, 0.45 +- 0.02 sec of SQL
and 0.68 +- 0.02 sec of python execution (+- 1.13 sec in total,
13 times faster). Note that the gain increase proportionally.

task-2383111

closes odoo/odoo#62083

X-original-commit: e7a43655448db161150d0c62efa14c54ade0a2f6
Signed-off-by: Arnold Moyaux <amoyaux@users.noreply.github.com>
2020-11-20 12:02:24 +00:00
Goffin Simon 10c6fb1d69 [FIX] stock: Creating operation type as Administrator
Steps to reproduce the bug:

- Let's consider a user U with access rights Inventory Amdinistrator
- Try to create an operation type with U

Bug:

An access error was raised because U has no rights to create an ir.sequence
record.

opw:2381272

closes odoo/odoo#61966

X-original-commit: 472fc28255ad29bcaaa7bd2f68a64018361b2665
Signed-off-by: Simon Goffin (sig) <sig@openerp.com>
2020-11-18 17:10:31 +00:00
Jinal Patel 4beeff79a5 [FIX] stock: create SM from SML
In this commit, creating SM from SML if trasfer is immediate. Due
to which following issues are getting resolve -
For immediate trasfer -

1) Unable to cancel the picking in draft state and SML is created
by view directly (No SM).

2) Unable to see button Put in pack.

3) Picking remains in state draft instead of ready.

task-2275833

closes odoo/odoo#61887

X-original-commit: f933c15794ec733be51d879de2410302d9804121
Signed-off-by: William Henrotin <Whenrow@users.noreply.github.com>
2020-11-17 17:07:55 +00:00
Rémy Voet (ryv) 6f87a849ac [FIX] stock: fix picking_type_id of stock move.
The picking_type_id of a stock move can differ of the related picking:
- Create and save a draft transfer with a stock move
- Change the picking_type_id and save
- The picking_type of moves won't be the same than the one on the stock
picking.
Fix force the picking_type_id of moves_lines in the
picking `onchange_picking_type` method. Same issue can appear in multi
company situation, fix it too.

task-2372196

closes odoo/odoo#61574

Signed-off-by: Arnold Moyaux <amoyaux@users.noreply.github.com>
2020-11-10 10:44:11 +00:00
Rémy Voet (ryv) e65d6e422f [FIX] stock: fix creation of picking type for a other company
In multi company (company A and B),
- Select the company A as main one, and select B too.
- Create a picking type and change the company to B.
- Don't select any warehouse.
- We can't save, because the company ir.sequence is
set to A instead of B.

Fix by apply the company_id of the picking type.

task-2372196
2020-11-10 10:44:02 +00:00
svs-odoo 396225e70f [REF] stock: move package_use in stock
Previously, the field `package_use` was in `stock_barcode_picking_batch`
as this field is only used by the picking batchs in barcode.
But to avoid some overrides and so make the code simplier, it is now
declared in `stock`.
However, this field will not be visible in the package form view until
`stock_barcode_picking_batch` is installed.

closes odoo/odoo#59925

Related: odoo/upgrade#1855
Related: odoo/enterprise#14043
Signed-off-by: Arnold Moyaux <amoyaux@users.noreply.github.com>
Signed-off-by: William Henrotin <Whenrow@users.noreply.github.com>
2020-11-05 09:19:03 +00:00
svs-odoo d44b95fd45 [FIX] stock: empty reusable package
When using reusable package in chained transfers, indicates the package
should not be propagated for the next moves `result_package_id`.
This change has no effect by itself, but it's used in enterprise by
https://github.com/odoo/enterprise/pull/13146/commits/611b2c0b188ab9906eb21feab087a1794bd2d015 when Picking Batch is enabled
and barcode app is installed.

task-2333834

X-original-commit: 6677f501d5a1717af8da08a7e235d87aeb85f862
2020-11-05 09:19:03 +00:00
Nicolas Galler 4f3af25a15 [FIX] stock: consistently use translated value for product description
Behavior prior to this commit:

In a multi-lingual setup, when entering a SO for a customer set in
a non-default language with a product that has translation in both
languages and is set up to replenish on order, the description in the
generated RFQ is duplicated, for example: "Product test Test Product in Dutch"

The problem stems from the fact that the description on the generated
stock move is set to the translated name of the product.  When
generating the PO, the stock move class removes the product name to
avoid duplicating the description, but it uses the non-translated name
in the comparison.

Behavior after this commit:

The description on the RFQ line is included only once (using the default
language for the database)

opw-2368562

closes odoo/odoo#61138

X-original-commit: d013f8641ae2ed8c12d30ba5650c8e6ff2f1d5fd
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
2020-11-02 11:28:37 +00:00
Martin Trigaux c59c10f1bc [FIX] *: correct typos and bad English
Courtesy of translators
Reexport .pot of modified modules

closes odoo/odoo#61010

X-original-commit: 62a18bdb372e234107fd2099a2df5f9e3a442c96
Related: odoo/enterprise#14489
Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
2020-10-29 19:23:41 +00:00
William Henrotin 1f4d7ba7ba [FIX] stock: update description_picking with picking type
This commit updates the description_picking on stock moves once the
picking type is changed. This is needed to merge stock moves at
confirmation. The description_picking field chosen on the merged move is
the 'minimum one'. Empty string will always be chosen that way, so we
lose the information.

closes odoo/odoo#60762

X-original-commit: a3dad0f892b5394124763ceb13305fca745c95b9
Signed-off-by: William Henrotin <Whenrow@users.noreply.github.com>
2020-10-26 16:14:52 +00:00
Rémy Voet (ryv) e00ec9efae [FIX] stock: fix products_availability compute
the deadline of picking is not required, then add condition
to avoid compare False to datetime.

closes odoo/odoo#60255

X-original-commit: 2e2881621147278f14ef8406995badaac998ac94
Signed-off-by: Arnold Moyaux <amoyaux@users.noreply.github.com>
Signed-off-by: Rémy Voet <ryv-odoo@users.noreply.github.com>
2020-10-19 10:51:05 +00:00
IEL 60572d6597 [FIX] stock: keep previously set result package in pickings
Steps to reproduce:

* In Inventory, activate multiple warehouses and storage locations, multi-step routes, Delivery packages
* On the main warehouse, activate 3 steps delivery
* Create a stockable product A
* Update quantity on hand: 100 units in a package PACK1 in Stock/Shelf 1
* Create a new Pick transfer with one move: 120 product A
* Set the transfer as todo and check availability: a move line for the 100 units from PACK1 is created
* Edit the move line: set a destination location, **change the result package to PACK2** and set a qty_done
* On product A, update the quantity on hand: add a *new* package PACK3 of 20 in Stock/Shelf 1
* On the transfer, click on check availability

Current behavior:

* A new move line is created for the 20 units from PACK3 to PACK3: ok
* The move line edited before for the 100 units has its result package **reset to PACK1**

Expected behavior:

* A new move line is created for the 20 units from PACK3 to PACK3: ok
* The move line edited before for the 100 units has its result package kept to **PACK2 as edited by the user** who decided to open the package already

Short analysis:

At the end of `StockMove._action_assign()`, the method `StockPicking._check_entire_pack()` is called. For each package moved by a move line, this method checks if the package is entirely moved (sum of quants == sum of move lines). The check is done by `StockPicking._check_move_lines_map_quant_package`. When the sums match, the package level of the move lines is created or updated. When it happens, it writes the package in the `result_package_id` of the related lines.

It should not change the result_package_id if it was already set.

Thinking further, maybe it should not consider lines with a `qty_done` in `_check_move_lines_map_quant_package`: users already picked these lines, if they decided to empty or change the `result_package_id`, a new check of availability for the remaining quantities should not change these lines.

opw-2346608
Fixes #58491

closes odoo/odoo#60025

X-original-commit: db262912eb716aed1c42be8a9d59c25bdfa400e0
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
2020-10-14 15:56:51 +00:00
svs-odoo e9f304fc1f [IMP] stock: hide picking type field
Hides the `picking_type_id` field when creating a new transfer if it is
set by default.
As this field is automatically set when coming from a list of a specific
transfer type or when asking to create directly a specific transfer type
this field is superfluous in these cases.

task-2328830

X-original-commit: c26ec70c61f51e6dc30c460c1b60f0d9ff3286a8
2020-10-07 11:22:56 +00:00
Martin Trigaux 2683184aa6 [FIX] *: fix all the typos
And other reported English mistakes in source string
Courtesy of Transifex translators

And remove leftover from gengo

closes odoo/odoo#59022

X-original-commit: 26efc84c5cac47a2cc83d7b084f8b71528fec6c7
Related: odoo/enterprise#13781
Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
2020-10-05 09:36:34 +00:00
Rémy Voet (ryv) 7c6f0d106f [FIX] mrp,stock: remove components_availability field from view
Like was done in 8d62eacfff for the
picking model, we remove the `components_availability`
and `components_availability_state` which
can leads to performance issue in case there are a lot of
productions/stock move. Replace by the old reservation_state field.

A performance quantification is required to reintroduced
these fields in views (task-2348553).
Also a fix is done in the stock_picking computation
of `products_availability` and `products_availability_state`
(same nature than these in `mrp.production`).

closes odoo/odoo#58856

X-original-commit: 0a19921e3a50faa8175e973a1edb49100826a9d9
Signed-off-by: Arnold Moyaux <amoyaux@users.noreply.github.com>
Signed-off-by: Rémy Voet <ryv-odoo@users.noreply.github.com>
2020-09-29 17:01:26 +00:00
Victor Feyens 3db5b50b79 [REM] stock: useless fields
- On `stock.picking`, remove unused `rate_picking_late` and
`rate_picking_backorders` and change the compute accordly
- On `stock.warehouse`, remove unused field warehouse_count and
remove show_resupply which can by replace by
the groups="group_stock_multi_warehouses" since
7bf064fcc160fb3f91d58e64d45e8a981865dc41
2020-09-17 12:11:01 +00:00
Rémy Voet (ryv) 43cc68c405 [IMP] (sale_)stock: review forecasted information
Remove the json_forecast of the sale order line,
it was a duplicate of information with the qty_at_date_widget.
But improve this one:
- Use the forecasted move information in case of confirmed SO.
- Change the icon (i) to chart.
- Link to the forcasted change to target new forcasted report
(Unfortunately we loose the feature to see components product forcasted
of a kit)
- Change information print in the popover in case of confirmed SO.

Also refactor the json_forcasted of `stock.move` into multiple fields
to avoid to dump/loads for other model who needed the forcasted data.

task-2324039

closes odoo/odoo#56425

closes odoo/odoo#57526

Related: odoo/enterprise#13063
Related: odoo/enterprise#13160
Signed-off-by: Arnold Moyaux <amoyaux@users.noreply.github.com>
2020-09-15 08:12:37 +00:00
Tiffany Chang (tic) e6255e09b8 [IMP] mrp(_subcontracting), stock: MO reserve and replenish automatically
This commit does 3 things:

1. When 'action_confirm' is triggered in a manufacturing order, any
   'move_raw_ids' (components) that are unable to be fully reserved
   when `action_assign` is triggered will be checked for an automatic
   reordering rule (RR). If a rule exists it will be auto-triggered.
   This includes subcontractor manufacturing orders. Relevant test
   updated to match this.
2. When a MO is completed, auto check if there are corresponding
   confirmed stock moves that can be populated by the completed products
   and trigger their 'action_assign' to reserve the completed products.
3. If a new move line is added to an already confirmed MO, then do same
   auto-RR check/trigger. (note will occur for pickings without extra
   code since `stock_picking.action_confirm` is triggered again in this
   case.)

This reuses similar logic as odoo/odoo#52433 from task 2244230.
Originally this was done in the `action_assign`, but has been moved to
`action_confirm` so as to imitate the now archived MTO process with RR.
Overlapping logic has been moved into stock_move for easier reusability.
Note that this now means editing existing moves' `product_uom_qty` (i.e.
Demand) will not have a flow to auto-trigger their RR.

Subcontracting test updated to match + new mrp test added for this new
feature.

closes odoo/odoo#57334

Task: 2322496
X-original-commit: 2688cd1bae489b1dec8862f4de727ac20514844c
Signed-off-by: Arnold Moyaux <amoyaux@users.noreply.github.com>
2020-09-09 09:21:55 +00:00
Nicolas Martinelli 91a3b9084d [FIX] stock: do not copy 'Printed' status
The printed status should not be kept when duplicating a picking.

opw-2320680

closes odoo/odoo#56449

X-original-commit: 6938e5bf106f95149bce50fac7ed3291bd1da812
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
2020-08-24 16:54:29 +00:00
Anh Thao Pham (pta) dda7e42a57 [FIX] stock: fix traceability in detailed operations at creation
- Go to Inventory > Master Data > Products and create a Product with Tracking "By Lot"
- Go to Inventory > Configuration > Operation Types
- Edit Receipts:
  * Activate "Show Detailed Operations"
  * Activate "Create New Lots/Serial Numbers"
  * Deactivate "Use Existing Lots/Serial Numbers"
- Go to Inventory > Overview and open Receipts
- Create a Receipt operation
In the Detailed Operations tab, if a Product tracked by lot is added,
an existing lot can be selected although it is disabled in Operation configuration.
Once saved, the selected lot disappears.
"Lot/Serial Number" column is replaced by "Lot/Serial Number Name" column.
A lot name can be entered manually. (It will create the lot at the validation)
But after validation, the lot associated to the Product is the existing lot
that has been selected during the operation creation, not the one that should
have been created from the lot name entered manually.

opw-2323093

closes odoo/odoo#56448

X-original-commit: 75add3d1496ee64d5278bc4250ac41dc4349d460
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
2020-08-24 16:44:50 +00:00
Tiffany Chang (tic) 58316d1546 [IMP] delivery, stock(_picking_batch): add "Put In Pack" button
This commit sets up the logic and adds the button for "Put in Pack"
action that already exists in stock.picking. Reuse/extension of logic
from stock.picking reused where possible, including extension of pack
wizard to handle products with different destination.

Note that logic to handle "Delivery Packaging" wizard when "Delivery
Methods" is active was purposely not extended to work correctly in batch
pickings due to complexity of adding in a new module just to handle
conflicting carrier_ids across pickings in the same batch. It is
expected that this use case will not occur except in case of user error.

Additionally, stock.picking implementation of 'put_in_pack' method has
been renamed to 'action_put_in_pack' to have consistent naming (and
support enterprise level code).

Part of "1. Improve Batch Pickings" specification of overall barcode
improvements task.

Task: 1884520
Enterprise PR: odoo/enterprise#12086

Closes: odoo/odoo#55096
2020-08-20 15:06:08 +00:00
Raphael Collet 1f48130d2b [REF] core: _name_search() now returns a list of ids
This provides a better API to search for records by name without the
formatting part (`display_name`).

This also simplifies all the overridings of `_name_search` that no
longer need to call `name_get()`.  The call to `name_get()` is done in
method `name_search` in a generic way.
2020-08-18 13:02:41 +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
Rémy Voet (ryv) e40553723b [IMP] stock,mrp,purchase: refactor priority
- MO/picking/PO/stock.move have now the "same" `priority` fields
(Boolean logic: Normal or Urgent).
These models are now sort by priority first. Note that the priority field of
stock move is a technical one.
- For MO and picking, the set of `priority` field change priority of
the related stock move. The prioriry field on stock move is
used by the scheduler for reservation ('Urgent' before 'Normal')
- The Stock Replenishment Report also take in account the priority
to be consistent with the reservation.

task-2246665
2020-08-18 07:48:27 +00:00
Martin Trigaux 6156f98288 [FIX] *: adapt action content retrieval
Use _for_xml_id to replace all the self.env.ref().read()[0]
This has the advantage of having a single point of control and to add
the fields filtering and model verification.

Add sudo for other operations on ir.actions.*
2020-08-17 09:09:02 +00:00
svs-odoo 75e8f0e5b1 [IMP] stock: products availability
Add two compute fields for picking model:
  - `products_availability` will indicate the products' availability for
delivery (outgoing picking).
  - `products_availability_state` is used to decorate the field in the
    list view.

task-2058495
2020-07-31 12:36:55 +00:00
yhu-odoo 7b8035563f [IMP] (purchase_)stock: reserve and replenish automatically
1. When reservation can't be done for some products, we automatically
evaluate their reordering rules and create the corresponding
replenishment document.
2. When receiving products in stock, automatically check if some stock
moves are available and assign them.

Task 2244230
PR #52433

Signed-off-by: Simon Lejeune (sle) <sle@openerp.com>
2020-07-28 09:47:04 +00:00
Nicolas Martinelli 6fcbcde823 [FIX] stock: put in pack and unreserve
- Create a product P, tracked by lot
- Add some stock with a lot
- Create an outgoing picking
- Set 10 units of P
- Set 2 done, Put in Pack
- Unreserve

An error occurs: 'It is not possible to unreserve more products of P
than you have in stock.'

It happens because the `lot_id` is removed from the copied
`stock.move.line`.

Commit eac8c06e2233d93e0b1a520e makes sense for incoming pickings, but
not for internal or outgoing transfers.

opw-2288208

closes odoo/odoo#54355

X-original-commit: ed738fb56ffe84f3af08b84e429db916a5e560b6
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
2020-07-10 17:13:01 +00:00
Jorge Pinna Puissant dd7d8cd43a [FIX] stock: clean lot when put in pack
- Create a product with traceability per LOT enabled and a barcode;
- Enable the option “Delivery Packages” in the inventory settings;
- Go to "Barcode" app;
- Scan EAN, the product line will be selected;
- Scan a LOT, a unit of quantity is incremented at each time the LOT is
  scanned;
- Put in Pack;
- Scan again the same EAN to register the next LOT, the product line
  will be selected with remaining quantities;
- Scan a new LOT number.

Before this commit, as the product line will remain with the old LOT
number, when the new LOT number is scanned a new line is created. This
line will miss the initial quantity and the quantities added to this new
line will not decrement the original line quantity.

Now, the old LOT number is clean when the Put in Pack function is
called.

opw-2270781

closes odoo/odoo#53337

X-original-commit: 01bf263acbe406d45a4b7a5358bdcdfb70c1d9ed
Signed-off-by: Jorge Pinna Puissant (jpp) <jpp@odoo.com>
2020-06-19 13:49:11 +00:00
Tiffany Chang (tic) 943ee28070 [REF] stock: keep picking action buttons visible when unlocked
This commit makes it so having a stock.picking unlocked will no longer
make the action buttons invisible. This change is expected to make it
easier for new users to not get as confused while using stock.picking.
Buttons now visible that previously were not are: "Check Availability",
"Validate", "Sign", "Print", "Return", "Unreserve", "Scrap", "Cancel".
Additionally the "Lock" button is no longer highlighted.

Additionally, relax 'is_initial_demand_editable' restriction on 'qty_done'
in 'stock_move_line_operation_tree' so that readonly status is only
dependent on 'is_locked' status.

Note that after this change picking.is_locked will only affect things
related to its move lines, including the visibility of the "Operations"
stat button.

Specification 3 of inventory onboarding improvement task.
Task: 2220129
Related Enterprise PR: odoo/enterprise#10719
2020-06-18 08:13:10 +00:00
jev-odoo af949fc27d [FIX] stock: correctly apply scheduled_date
Inverse fields are stored in a `set` and `set` is not ordered. It depends on the memory address of its elements which change each time the registry is rebuilt.

Inverse `_set_move_ids_without_package` set the .move_lines on the record
Inverse `_set_scheduled_date` set the scheduled_date on the move_lines

If `_set_scheduled_date` is called first, then the record doesn't contain any move_lines, the scheduled date is ignored and set to default (now)

This fix ensures that if a scheduled_date is set, it is applied after `_set_move_ids_without_package`.

OPW-2212391

closes odoo/odoo#52173

X-original-commit: 7f59fc89afd403534cc7ab9d06c2c6b458666a03
Signed-off-by: Simon Lejeune (sle) <sle@openerp.com>
2020-05-29 13:24:42 +00:00
Goffin Simon 878fcb8cc7 [FIX] stock: No sequence defined on Operations Types dropship
Steps to reproduce the bug:

- Go to settings => Purchase
- Enable Dropshipping
- Go to Inventory => Configuration => Warehouse Management => Operations Types
- Open Dropship
- Remove the sequence (field is not required)
- Go to Inventory => Master Data => Products
- Let's consider product P (Inventory tab: Check "Dropship" and "Buy" and vendor V as supplier)
- Create Quotation Q with customer C and product P
- Confirm Q (a PO has been created for V)
- Confirm PO

Bug:

A traceback was raised because the sequence was not defined on Operation Type dropship

opw:2263799

closes odoo/odoo#52115

X-original-commit: 25ae1f6900712dcf13341fdb0855e3cbe2fa98af
Signed-off-by: Simon Goffin (sig) <sig@openerp.com>
2020-05-28 14:35:57 +00:00
svs-odoo 6b15eab7e1 [IMP] stock: don't auto. assign backorder
Before this commit, when a backorder is created, it was automatically
reserved. It is no more the case. Now user have to reserve it manually.

The reason is, when a user doesn't delivery all expected quantities, it
could be because there is no enough quantity in stock, or the user
doesn't want to delivery all. In these cases, it doesn't make sense to
reserved it directly.

task-2181611
2020-05-25 11:08:04 +00:00
Simon Lejeune fadaf8b748 [FIX] stock: _check_backorder
Check backorder is divided in 3 blocks:
1) quantities on move lines linked to a move
2) quantities on move lines without moves nor products but with a
package
3) quantities on move lines without moves but with a product

1) added quantities in the move's uom, 2) added quantitis in the product
uom, 3) doesn't seem to be used (and shouldn't be). Clarify all of that.

task-2239964

closes odoo/odoo#49790

Signed-off-by: Simon Lejeune (sle) <sle@openerp.com>
2020-05-25 09:50:11 +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 a834a1b235 [FIX] stock: correct qty comparison
Use `float_compare` to avoid the usual float representation comparison
errors.

opw-2215497

closes odoo/odoo#49702

X-original-commit: 500240874cd21c6950210968c8c7e8d84c1c4bee
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
2020-04-17 09:27:03 +00:00
Nicolas Martinelli b42e9c4547 [FIX] stock: immediate transfer
- Install Purchase
- Activate multi-step routes, multi warehouses and packaging
- Create 2 wharehouses WH1 et WH2
- 'WH1: Receipts' and 'WH2: Receipts'
  Show Detailed Operations: True
  Pre-fill Detailed Operations: True
  Move Entire Packages: True
- 'WH1: Internal Transfers'
  Show Detailed Operations: True
  Move Entire Packages: True
- Create a route 'WH1 -> WH2':
  Applicable On WH1
  Rule:
    Action: Push To
    Operation Type: WH2: Receipts
    Source Location: Virtual Locations/Inter Company Transit
    Destination Locaion: WH2/Stock
    Automatic Move: Manual Operation
- Create a PO for 100 units of P1 and P2, validate
- Go to the picking, set 40 units done for P1 and P2
  => Put in Pack
- Set 60 units done for P1 and P2
  => Put in Pack
- Validate
- Create an Internal Transfer in WH1:
  Operation Type: WH1: Internal Transfers
  Source Location: WH1/Stock
  Destination Location: Virtual Locations/Inter Company Transit
- Add the 2 packages previously created, save and validate

4 pickings are created in 'WH2: Receipts': 40 P1, 40 P2, 60 P1 and 60
P2. There should only be one picking with the 2 packages.

The issue is similar to 2d4a743600f4501bbbed60a063ea2a87f1bce075: the
`default_immediate_transfer` context key pollutes the creation of the
pickings.

opw-2197720

closes odoo/odoo#48038

X-original-commit: 6e5cfb62b43f0781c246e9a27259e63199203221
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
Signed-off-by: Simon Lejeune (sle) <sle@openerp.com>
2020-03-19 14:59:28 +00:00
Wolfgang Taferner 04200ad77a [FIX] stock: do not prefetch fields before unlink
closes odoo/odoo#47218

X-original-commit: b0c18a3a932d82221bbf2891ef86d97c42db37cb
Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
2020-03-09 15:16:28 +00:00
svs-odoo cdddd45a73 [IMP] stock: _get_without_quantities_error_message
Adds a method to be able to override the error message in the case where
the user try to validate a picking with no quantities done nor reserved.

task-2123726

closes odoo/odoo#45457

Related: odoo/enterprise#8364
Signed-off-by: Simon Lejeune (sle) <sle@openerp.com>
2020-03-05 13:32:57 +00:00
svs-odoo ededb4a537 [FIX] stock: typo in put in pack message
closes odoo/odoo#46525

Signed-off-by: Simon Lejeune (sle) <sle@openerp.com>
2020-02-27 15:22:45 +00:00
Victor Feyens 2556d5a024 [FIX] stock(_*): ensure properties are read with the correct company. 2020-02-27 12:19:24 +00:00