changeset e8d9cced3080 in modules/sale_amendment:default
details:
https://hg.tryton.org/modules/sale_amendment?cmd=changeset&node=e8d9cced3080
description:
Support warehouse pickup
issue11574
review419411003
diffstat:
sale.py | 25 ++++++++++++++++---------
1 files changed, 16 insertions(+), 9 deletions(-)
diffs (53 lines):
diff -r 2ea1f2f55161 -r e8d9cced3080 sale.py
--- a/sale.py Mon May 02 17:37:09 2022 +0200
+++ b/sale.py Sat Sep 10 18:34:29 2022 +0200
@@ -236,9 +236,10 @@
})
shipment_address = fields.Many2One(
'party.address', "Shipment Address",
- domain=[
+ domain=['OR',
('party', '=', If(Eval('shipment_party'),
Eval('shipment_party'), Eval('party'))),
+ ('warehouses', '=', Eval('warehouse')),
],
states={
'readonly': Eval('state') != 'draft',
@@ -375,7 +376,7 @@
self.product = self.quantity = self.unit = self.unit_price = None
self.description = None
- @fields.depends('party', 'shipment_party')
+ @fields.depends('party', 'shipment_party', 'warehouse')
def on_change_party(self):
self.invoice_address = None
if not self.shipment_party:
@@ -383,15 +384,21 @@
if self.party:
self.invoice_address = self.party.address_get(type='invoice')
if not self.shipment_party:
- self.shipment_address = self.party.address_get(type='delivery')
+ with Transaction().set_context(
+ warehouse=(
+ self.warehouse.id if self.warehouse else None)):
+ self.shipment_address = self.party.address_get(
+ type='delivery')
- @fields.depends('party', 'shipment_party')
+ @fields.depends('party', 'shipment_party', 'warehouse')
def on_change_shipment_party(self):
- if self.shipment_party:
- self.shipment_address = self.shipment_party.address_get(
- type='delivery')
- elif self.party:
- self.shipment_address = self.party.address_get(type='delivery')
+ with Transaction().set_context(
+ warehouse=self.warehouse.id if self.warehouse else None):
+ if self.shipment_party:
+ self.shipment_address = self.shipment_party.address_get(
+ type='delivery')
+ elif self.party:
+ self.shipment_address = self.party.address_get(type='delivery')
@fields.depends('line')
def on_change_with_product_uom_category(self, name=None):