From 318f76419ee6def3357539306c53e0f2fc1fa752 Mon Sep 17 00:00:00 2001 From: benjamin <benjamin@le-filament.com> Date: Tue, 7 Mar 2023 11:57:12 +0100 Subject: [PATCH] [update] payment state pdf report --- models/scop_bordereau_cg.py | 17 ++++++++++++++- templates/report_scop_bordereau_payments.xml | 23 +++++++------------- 2 files changed, 24 insertions(+), 16 deletions(-) diff --git a/models/scop_bordereau_cg.py b/models/scop_bordereau_cg.py index 01680ca..6d1221c 100644 --- a/models/scop_bordereau_cg.py +++ b/models/scop_bordereau_cg.py @@ -1,6 +1,8 @@ # © 2021 Le Filament (<http://www.le-filament.com>) # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). +import itertools + from odoo import _, api, fields, models from odoo.exceptions import UserError @@ -1350,10 +1352,23 @@ class Bordereau(models.Model): """ Move = self.env["account.move"] for bordereau in self: - payments = bordereau.invoice_ids.move_line_payment_ids.filtered( + payment_ids = bordereau.invoice_ids.move_line_payment_ids.filtered( lambda r: r.move_id.move_type == "entry" ).sorted(lambda p: p.date) + payments = [] + for key, group in itertools.groupby(payment_ids, lambda p: p.date): + pay_ids = list(group) + credit = sum(list(map(lambda p: p.credit, pay_ids))) + debit = sum(list(map(lambda p: p.debit, pay_ids))) + payments.append( + { + "date": key, + "credit": credit, + "debit": debit, + } + ) + schedule_plan = Move.read_group( [ ("bordereau_id", "=", bordereau.id), diff --git a/templates/report_scop_bordereau_payments.xml b/templates/report_scop_bordereau_payments.xml index 754dd27..f07eefd 100644 --- a/templates/report_scop_bordereau_payments.xml +++ b/templates/report_scop_bordereau_payments.xml @@ -261,33 +261,26 @@ > <td style="border: none; background: inherit; color: inherit;" - ><t - t-esc="payment.date" + > + <t + t-esc="payment.get('date')" t-options="{'widget': 'date', 'format': 'dd/MM/YYYY'}" - /></td> + /> + </td> <td class="text-right" style="border: none; background: inherit; color: inherit;" > - <t t-if="payment.credit > 0"> - <t - t-esc="payment.credit" - t-options="{'widget': 'monetary', 'display_currency': o.company_id.currency_id}" - /> - </t> - <t t-else=""> <t - t-esc="-payment.debit" - t-options="{'widget': 'monetary', 'display_currency': o.company_id.currency_id}" - /> - </t> + t-esc="payment.get('credit') - payment.get('debit')" + t-options="{'widget': 'monetary', 'display_currency': o.company_id.currency_id}" + /> </td> </tr> </table> </p> </div> </div> - </div> </t> </template> -- GitLab