Skip to content

Commit

Permalink
Sale: filter invoices by backend settings
Browse files Browse the repository at this point in the history
  • Loading branch information
simahawk committed Sep 24, 2020
1 parent d29e694 commit f443148
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 13 deletions.
11 changes: 6 additions & 5 deletions shopinvader/services/invoice.py
Original file line number Diff line number Diff line change
Expand Up @@ -72,15 +72,16 @@ def _get_base_search_domain(self):
return expression.FALSE_DOMAIN
invoices = self._get_available_invoices()
domain_invoice_ids = [("id", "in", invoices.ids)]
return expression.normalize_domain(
expression.AND([domain_invoice_ids, self._get_domain_state()])
)

def _get_domain_state(self):
domain_state = [("state", "in", self._get_allowed_invoice_states())]
domain_payment_state = [
("invoice_payment_state", "in", self._get_allowed_payment_states())
]
return expression.normalize_domain(
expression.AND(
[domain_invoice_ids, domain_state, domain_payment_state]
)
)
return expression.AND([domain_state, domain_payment_state])

def _get_available_invoices(self):
"""Retrieve invoices for current customer."""
Expand Down
17 changes: 9 additions & 8 deletions shopinvader/services/sale.py
Original file line number Diff line number Diff line change
Expand Up @@ -97,16 +97,17 @@ def _launch_notification(self, target, notif_type):

def _convert_one_sale(self, sale):
res = super(SaleService, self)._convert_one_sale(sale)
res["invoices"] = self._convert_invoices(sale.sudo())
res["invoices"] = self._convert_invoices(self._get_invoices(sale))
return res

def _convert_invoices(self, sale):
res = []
for invoice in sale.invoice_ids.filtered(
lambda i: i.invoice_payment_state == "paid"
):
res.append(self._convert_one_invoice(invoice))
return res
def _get_invoices(self, sale):
invoices = sale.sudo().invoice_ids
invoice_service = self.component(usage="invoice")
domain_state = invoice_service._get_domain_state()
return invoices.filtered_domain(domain_state)

def _convert_invoices(self, invoices):
return [self._convert_one_invoice(invoice) for invoice in invoices]

def _convert_one_invoice(self, invoice):
return {
Expand Down

0 comments on commit f443148

Please sign in to comment.