From 6f2136c3ca17da1c9f0e74de6114f05a3494cd8b Mon Sep 17 00:00:00 2001 From: Fanilo-Nantenaina Date: Thu, 15 Jan 2026 16:56:25 +0300 Subject: [PATCH] feat(sage_client): add new payment parameters and make fields optional --- sage_client.py | 32 ++++++++++++++++++++++++++------ 1 file changed, 26 insertions(+), 6 deletions(-) diff --git a/sage_client.py b/sage_client.py index 0a37807..6e61085 100644 --- a/sage_client.py +++ b/sage_client.py @@ -447,11 +447,15 @@ class SageGatewayClient: self, numero_facture: str, montant: float, - mode_reglement: int = 2, + mode_reglement: int = 0, date_reglement: str = None, reference: str = "", libelle: str = "", - code_journal: str = "BEU", + code_journal: str = None, + devise_code: int = 0, + cours_devise: float = 1.0, + tva_encaissement: bool = False, + compte_general: str = None, ) -> dict: """Règle une facture""" payload = { @@ -459,10 +463,18 @@ class SageGatewayClient: "mode_reglement": mode_reglement, "reference": reference, "libelle": libelle, - "code_journal": code_journal, + "devise_code": devise_code, + "cours_devise": cours_devise, + "tva_encaissement": tva_encaissement, } + + # Champs optionnels if date_reglement: payload["date_reglement"] = date_reglement + if code_journal: + payload["code_journal"] = code_journal + if compte_general: + payload["compte_general"] = compte_general return self._post(f"/sage/factures/{numero_facture}/regler", payload).get( "data", {} @@ -472,12 +484,15 @@ class SageGatewayClient: self, client_code: str, montant_total: float, - mode_reglement: int = 2, + mode_reglement: int = 0, date_reglement: str = None, reference: str = "", libelle: str = "", - code_journal: str = "BEU", + code_journal: str = None, numeros_factures: list = None, + devise_code: int = 0, + cours_devise: float = 1.0, + tva_encaissement: bool = False, ) -> dict: """Règle plusieurs factures d'un client""" payload = { @@ -486,10 +501,15 @@ class SageGatewayClient: "mode_reglement": mode_reglement, "reference": reference, "libelle": libelle, - "code_journal": code_journal, + "devise_code": devise_code, + "cours_devise": cours_devise, + "tva_encaissement": tva_encaissement, } + if date_reglement: payload["date_reglement"] = date_reglement + if code_journal: + payload["code_journal"] = code_journal if numeros_factures: payload["numeros_factures"] = numeros_factures