Allow to extend the invoices list to compute invoice state of sale and purchase
So advance payment invoices can be included in the original computation instead of duplicating the computation since changeset 1a763ffe4a66 renamed waiting into pending and add more states.
This commit is contained in:
1 parent
4dfea2f82c
commit
fbe77f6a39
3 files changed
+17
-20
No files matched your search
@@ -597,13 +597,17 @@ class Purchase(
|
||||
return [('lines.invoice_lines.invoice' + clause[0][len(name):],
|
||||
*clause[1:])]
|
||||
|
||||
@property
|
||||
def _invoices_for_state(self):
|
||||
return self.invoices
|
||||
|
||||
def get_invoice_state(self):
|
||||
'''
|
||||
Return the invoice state for the purchase.
|
||||
'''
|
||||
skip_ids = set(x.id for x in self.invoices_ignored)
|
||||
skip_ids.update(x.id for x in self.invoices_recreated)
|
||||
invoices = [i for i in self.invoices if i.id not in skip_ids]
|
||||
skips = set(self.invoices_ignored)
|
||||
skips.update(self.invoices_recreated)
|
||||
invoices = [i for i in self._invoices_for_state if i.id not in skips]
|
||||
if invoices:
|
||||
if any(i.state == 'cancelled' for i in invoices):
|
||||
return 'exception'
|
||||
|
||||
@@ -607,13 +607,17 @@ class Sale(
|
||||
return [('lines.invoice_lines.invoice' + clause[0][len(name):],
|
||||
*clause[1:])]
|
||||
|
||||
@property
|
||||
def _invoices_for_state(self):
|
||||
return self.invoices
|
||||
|
||||
def get_invoice_state(self):
|
||||
'''
|
||||
Return the invoice state for the sale.
|
||||
'''
|
||||
skip_ids = set(x.id for x in self.invoices_ignored)
|
||||
skip_ids.update(x.id for x in self.invoices_recreated)
|
||||
invoices = [i for i in self.invoices if i.id not in skip_ids]
|
||||
skips = set(self.invoices_ignored)
|
||||
skips.update(self.invoices_recreated)
|
||||
invoices = [i for i in self._invoices_for_state if i not in skips]
|
||||
if invoices:
|
||||
if any(i.state == 'cancelled' for i in invoices):
|
||||
return 'exception'
|
||||
|
||||
@@ -345,20 +345,9 @@ class Sale(metaclass=PoolMeta):
|
||||
return [('advance_payment_conditions.invoice_lines.invoice'
|
||||
+ clause[0][len(name):], *clause[1:])]
|
||||
|
||||
def get_invoice_state(self):
|
||||
state = super(Sale, self).get_invoice_state()
|
||||
skip_ids = set(x.id for x in self.invoices_ignored)
|
||||
skip_ids.update(x.id for x in self.invoices_recreated)
|
||||
invoices = [i
|
||||
for i in self.advance_payment_invoices if i.id not in skip_ids]
|
||||
if invoices:
|
||||
if any(i.state == 'cancelled' for i in invoices):
|
||||
return 'exception'
|
||||
elif all(i.state == 'paid' for i in invoices):
|
||||
return state
|
||||
else:
|
||||
return 'waiting'
|
||||
return state
|
||||
@property
|
||||
def _invoices_for_state(self):
|
||||
return super()._invoices_for_state + self.advance_payment_invoices
|
||||
|
||||
def get_recall_lines(self, invoice):
|
||||
pool = Pool()
|
||||
|
||||
Reference in new issue
Block a user