diff --git a/models/scop_cotisations_idf.py b/models/scop_cotisations_idf.py index e5a4ff9414d10ce4b05d26f082f651f9e18ba698..3c1ca254a60b587729b3c40cd5fd21d452fbd33e 100644 --- a/models/scop_cotisations_idf.py +++ b/models/scop_cotisations_idf.py @@ -95,34 +95,31 @@ class ScopCotisationsIDF(models.Model): """ partners = set(self.mapped('partner_id')) years = set(self.mapped('year')) - letters = set(self.mapped('lettrage')) for year in years: for partner in partners: - for letter in letters: - # Group lines by partner, year, letter - invoice_lines = self.search([ - ['year', '=', year], - ['partner_id', '=', partner.id], - ['lettrage', '=', letter]]) - invoices = invoice_lines.filtered( - lambda l: l.type == 'inv') - if not invoices: - for r in invoice_lines: - r.state = 'no_invoice' - else: - for invoice in invoices: - if invoice.amount_residual > 0: - invoice.state = 'awaiting_payments' - for r in invoice.payment_or_refund_ids: - r.state = 'awaiting_payments' - elif invoice.amount_residual < 0: - invoice.state = 'overpaid' - for r in invoice.payment_or_refund_ids: - r.state = 'overpaid' - else: - invoice.state = 'paid' - for r in invoice.payment_or_refund_ids: - r.state = 'paid' + invoice_lines = self.search([ + ['year', '=', year], + ['partner_id', '=', partner.id], + ['lettrage', '=', letter]]) + invoices = invoice_lines.filtered( + lambda l: l.type == 'inv') + if not invoices: + for r in invoice_lines: + r.state = 'no_invoice' + else: + for invoice in invoices: + if invoice.amount_residual > 0: + invoice.state = 'awaiting_payments' + for r in invoice.payments_ids: + r.state = 'awaiting_payments' + elif invoice.amount_residual < 0: + invoice.state = 'overpaid' + for r in invoice.payments_ids: + r.state = 'overpaid' + else: + invoice.state = 'paid' + for r in invoice.payments_ids: + r.state = 'paid' @api.multi def _search_state(self, operator, value): diff --git a/models/scop_invoice_idf.py b/models/scop_invoice_idf.py index 7cbe87b39d95463b93a95ee059fa5474a38dcb7e..306026fd2c9a47857393a6a3f3144d393e0aedca 100644 --- a/models/scop_invoice_idf.py +++ b/models/scop_invoice_idf.py @@ -90,34 +90,30 @@ class ScopInvoiceIDF(models.Model): """ partners = set(self.mapped('partner_id')) years = set(self.mapped('year')) - letters = set(self.mapped('lettrage')) for year in years: for partner in partners: - for letter in letters: - # Group lines by partner, year, letter - invoice_lines = self.search([ - ['year', '=', year], - ['partner_id', '=', partner.id], - ['lettrage', '=', letter]]) - invoices = invoice_lines.filtered( - lambda l: l.type == 'inv') - if not invoices: - for r in invoice_lines: - r.state = 'no_invoice' - else: - for invoice in invoices: - if invoice.amount_residual > 0: - invoice.state = 'awaiting_payments' - for r in invoice.payment_or_refund_ids: - r.state = 'awaiting_payments' - elif invoice.amount_residual < 0: - invoice.state = 'overpaid' - for r in invoice.payment_or_refund_ids: - r.state = 'overpaid' - else: - invoice.state = 'paid' - for r in invoice.payment_or_refund_ids: - r.state = 'paid' + invoice_lines = self.search([ + ['year', '=', year], + ['partner_id', '=', partner.id], ]) + invoices = invoice_lines.filtered( + lambda l: l.type == 'inv') + if not invoices: + for r in invoice_lines: + r.state = 'no_invoice' + else: + for invoice in invoices: + if invoice.amount_residual > 0: + invoice.state = 'awaiting_payments' + for r in invoice.payments_ids: + r.state = 'awaiting_payments' + elif invoice.amount_residual < 0: + invoice.state = 'overpaid' + for r in invoice.payments_ids: + r.state = 'overpaid' + else: + invoice.state = 'paid' + for r in invoice.payments_ids: + r.state = 'paid' @api.multi def _search_state(self, operator, value):