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