-
- Downloads
[FIX] stock{,_dropshipping}: set last delivery partner on lot
If `stock_dropshipping` is installed, the "Transfer To" field of a lot does not work with standard flows To reproduce the issue: 1. Create a tracked-by-sn product 2. Update its quantity with 1 x SN 3. Deliver SN to a partner 4. Open the list view of lots/serial numbers and enable the column "Transfer To" Error: The field "Transfer To" for SN is empty, it should be the partner The field `last_delivery_partner_id` is a computed one and the compute method calls `_find_delivery_ids_by_lot` to get all relevant information. In this method, we search the SMLs based on a domain provided by `_get_delivery_ids_by_lot_domain`. If `stock_dropshipping` is not installed, the method will return a legit domain: https://github.com/odoo/odoo/blob/7adc661be1eb426a90842160b2e062446d3ccc03/addons/stock/models/stock_lot.py#L191-L196 However, if the dropshipping module is installed, an override creates the same domain (directly in the override, without any call to `super`) and adds a `OR` condition: https://github.com/odoo/odoo/blob/7adc661be1eb426a90842160b2e062446d3ccc03/addons/stock_dropshipping/models/stock.py#L62-L70 But it contains an error: the `AND` operator is missing, it should be ```py '&', ('location_dest_id.usage', '=', 'customer'), ('location_id.usage', '=', 'supplier') ``` As a result, for an SM to be found, its source location usage has to be `supplier`. This is the reason why, in the above use case, the lot does not have any `last_delivery_partner_id`: we did not find such an SML. OPW-3386247 closes odoo/odoo#128271 Signed-off-by:William Henrotin (whe) <whe@odoo.com>
Showing
- addons/stock/models/stock_lot.py 16 additions, 1 deletionaddons/stock/models/stock_lot.py
- addons/stock/tests/test_stock_flow.py 43 additions, 1 deletionaddons/stock/tests/test_stock_flow.py
- addons/stock_dropshipping/models/stock.py 9 additions, 0 deletionsaddons/stock_dropshipping/models/stock.py
Loading
Please register or sign in to comment