changeset 8a091dd118ff in modules/purchase:default
details: https://hg.tryton.org/modules/purchase?cmd=changeset;node=8a091dd118ff
description:
Add company as product context field
issue9111
review275031002
diffstat:
purchase.py | 26 ++++++++++++++++----------
1 files changed, 16 insertions(+), 10 deletions(-)
diffs (80 lines):
diff -r d997f6af3995 -r 8a091dd118ff purchase.py
--- a/purchase.py Thu Apr 23 21:44:00 2020 +0200
+++ b/purchase.py Sat Apr 25 09:18:21 2020 +0200
@@ -1038,15 +1038,15 @@
'purchase_date'),
'stock_skip_warehouse': True,
# From _get_context_purchase_price
- 'company': Eval(
- '_parent_purchase', {}).get('company', None),
+ 'company': Eval('company', None),
'currency': Eval('_parent_purchase', {}).get('currency'),
'supplier': Eval('_parent_purchase', {}).get('party'),
'purchase_date': Eval('_parent_purchase', {}).get('purchase_date'),
'uom': Eval('unit'),
'taxes': Eval('taxes', []),
'quantity': Eval('quantity'),
- }, depends=['type', 'purchase_state', 'product_supplier'])
+ },
+ depends=['type', 'purchase_state', 'product_supplier', 'company'])
product_supplier = fields.Many2One(
'purchase.product_supplier', "Supplier's Product",
ondelete='RESTRICT',
@@ -1144,6 +1144,9 @@
purchase_state = fields.Function(
fields.Selection('get_purchase_states', 'Purchase State'),
'on_change_with_purchase_state')
+ company = fields.Function(
+ fields.Many2One('company.company', "Company"),
+ 'on_change_with_company')
@classmethod
def __register__(cls, module_name):
@@ -1207,7 +1210,7 @@
@fields.depends(
'purchase', '_parent_purchase.currency', '_parent_purchase.party',
- '_parent_purchase.purchase_date', '_parent_purchase.company',
+ '_parent_purchase.purchase_date', 'company',
'unit', 'product', 'product_supplier', 'taxes')
def _get_context_purchase_price(self):
context = {}
@@ -1217,8 +1220,8 @@
if self.purchase.party:
context['supplier'] = self.purchase.party.id
context['purchase_date'] = self.purchase.purchase_date
- if self.purchase.company:
- context['company'] = self.purchase.company.id
+ if self.company:
+ context['company'] = self.company.id
if self.unit:
context['uom'] = self.unit.id
elif self.product:
@@ -1228,13 +1231,11 @@
context['taxes'] = [t.id for t in self.taxes or []]
return context
- @fields.depends('purchase',
- '_parent_purchase.party', '_parent_purchase.company')
+ @fields.depends('purchase', 'company', '_parent_purchase.party',)
def _get_product_supplier_pattern(self):
return {
'party': self.purchase.party.id if self.purchase.party else -1,
- 'company': (
- self.purchase.company.id if self.purchase.company else -1),
+ 'company': (self.company.id if self.company else -1),
}
@fields.depends('product', 'unit', 'purchase',
@@ -1424,6 +1425,11 @@
if self.purchase:
return self.purchase.state
+ @fields.depends('purchase', '_parent_purchase.company')
+ def on_change_with_company(self, name=None):
+ if self.purchase and self.purchase.company:
+ return self.purchase.company.id
+
def get_invoice_line(self):
'Return a list of invoice line for purchase line'
pool = Pool()