From abff050432633c677d8bc059f32ca41b9186e768 Mon Sep 17 00:00:00 2001 From: jordan <jordan@le-filament.com> Date: Mon, 3 May 2021 18:32:03 +0200 Subject: [PATCH] [fix] compute_state is not dependent of lettrage --- models/scop_cotisations_idf.py | 49 ++++++++++++++++------------------ models/scop_invoice_idf.py | 48 +++++++++++++++------------------ 2 files changed, 45 insertions(+), 52 deletions(-) diff --git a/models/scop_cotisations_idf.py b/models/scop_cotisations_idf.py index e5a4ff9..3c1ca25 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 7cbe87b..306026f 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): -- GitLab