Skip to content
Snippets Groups Projects
user avatar
Adrien Widart (awt) authored
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: default avatarWilliam Henrotin (whe) <whe@odoo.com>
8ecc1774
History
Name Last commit Last update