From 10fe9f21df82150a2fc4cf15d47cb9e84b201c8c Mon Sep 17 00:00:00 2001 From: benjamin <benjamin@le-filament.com> Date: Thu, 3 Oct 2024 18:10:18 +0200 Subject: [PATCH] [UPD] report payment schedule --- models/scop_bordereau_cg.py | 41 +++++++++++++------------------------ 1 file changed, 14 insertions(+), 27 deletions(-) diff --git a/models/scop_bordereau_cg.py b/models/scop_bordereau_cg.py index 0962467..2d16857 100644 --- a/models/scop_bordereau_cg.py +++ b/models/scop_bordereau_cg.py @@ -3,6 +3,8 @@ import itertools +from datetime import datetime + from odoo import _, api, fields, models from odoo.exceptions import UserError @@ -1358,23 +1360,15 @@ class Bordereau(models.Model): if self.year != "2021": payment_schedule = inv_ids.read_group( domain=[("id", "in", inv_ids.ids)], - fields=["cotiz_quarter", "amount_total_signed"], - groupby=["cotiz_quarter"], - orderby="cotiz_quarter", + fields=["invoice_date_due", "amount_total_signed"], + groupby=["invoice_date_due:day"], + orderby="invoice_date_due", + lazy=True ) - for payment in payment_schedule: - quarter = "trimester_" + payment.get("cotiz_quarter") - date_schedule = ( - self.base_cotisation_cg.read([quarter])[0] - .get(quarter) - .strftime("%d/%m/%Y") - ) - schedule_plan.append( - { - "date": date_schedule, - "amount": payment.get("amount_total_signed"), - } - ) + schedule_plan = list(map(lambda e: { + "date": datetime.strptime(e["__domain"][2][2], "%Y-%m-%d").strftime("%d/%m/%Y"), + "amount": e.get("amount_total_signed") + }, payment_schedule)) # Old way : pour les bordereaux sans trimestre sur les factures else: @@ -1430,23 +1424,16 @@ class Bordereau(models.Model): ("bordereau_id", "=", bordereau.id), ], fields=[ - "cotiz_quarter", + "invoice_date_due", "amount_total_signed", "amount_residual_signed", ], - groupby=["cotiz_quarter"], - orderby="cotiz_quarter", + groupby=["invoice_date_due:day"], + orderby="invoice_date_due", lazy=False, ) - schedule_date = [ - bordereau.base_cotisation_cg.trimester_1, - bordereau.base_cotisation_cg.trimester_2, - bordereau.base_cotisation_cg.trimester_3, - bordereau.base_cotisation_cg.trimester_4, - ] for contribution in schedule_plan: - i = int(contribution.get("cotiz_quarter")) - 1 - contribution["date_maturity"] = schedule_date[i] + contribution["date_maturity"] = contribution["__domain"][2][2] total_amount = sum( list(map(lambda l: l.get("amount_total_signed"), schedule_plan)) -- GitLab