Allow entering origin before customer

issue9202
review301321002
This commit is contained in:
Cédric Krier committed 2020-04-12 23:06:02 +02:00
1 parent 2680d3e90d
commit caae9325ce
2 files changed
+31 -4

No files matched your search

+2
View File
@@ -1,3 +1,5 @@
* Allow entering origin before customer
Version 5.4.0 - 2019-11-04
* Bug fixes (see mercurial logs for details)
* Use processing delay to process approved complaint
+29 -4
View File
@@ -149,23 +149,31 @@ class Complaint(Workflow, ModelSQL, ModelView):
def _origin_domains(cls):
return {
'sale.sale': [
('party', '=', Eval('customer')),
If(Eval('customer'),
('party', '=', Eval('customer')),
()),
('company', '=', Eval('company')),
('state', 'in', ['confirmed', 'processing', 'done']),
],
'sale.line': [
('sale.party', '=', Eval('customer')),
If(Eval('customer'),
('sale.party', '=', Eval('customer')),
()),
('sale.company', '=', Eval('company')),
('sale.state', 'in', ['confirmed', 'processing', 'done']),
],
'account.invoice': [
('party', '=', Eval('customer')),
If(Eval('customer'),
('party', '=', Eval('customer')),
()),
('company', '=', Eval('company')),
('type', '=', 'out'),
('state', 'in', ['posted', 'paid']),
],
'account.invoice.line': [
('invoice.party', '=', Eval('customer')),
If(Eval('customer'),
('invoice.party', '=', Eval('customer')),
()),
('invoice.company', '=', Eval('company')),
('invoice.type', '=', 'out'),
('invoice.state', 'in', ['posted', 'paid']),
@@ -204,6 +212,23 @@ class Complaint(Workflow, ModelSQL, ModelView):
else:
return []
@fields.depends('origin', 'customer')
def on_change_origin(self):
pool = Pool()
Sale = pool.get('sale.sale')
SaleLine = pool.get('sale.line')
Invoice = pool.get('account.invoice')
InvoiceLine = pool.get('account.invoice.line')
if not self.customer and self.origin and self.origin.id >= 0:
if isinstance(self.origin, Sale):
self.customer = self.origin.party
elif isinstance(self.origin, SaleLine):
self.customer = self.origin.sale.party
elif isinstance(self.origin, Invoice):
self.customer = self.origin.party
elif isinstance(self.origin, InvoiceLine) and self.origin.invoice:
self.customer = self.origin.invoice.party
@fields.depends('origin')
def on_change_with_origin_id(self, name=None):
if self.origin: