[enh] Ajout du patch 0001-fix-Adapation-du-fichier-sepa-pour-la-DGFIP.patch

main
ahmed 2018-07-17 20:50:17 +02:00
Parent f489d0b62e
révision a5192ab21b
1 fichiers modifiés avec 102 ajouts et 0 suppressions

Voir le fichier

@ -0,0 +1,102 @@
From be57e6c6bea59b2a2d865c3c17722ae7306aeedb Mon Sep 17 00:00:00 2001
From: ahmed <ahmed.abdallah@cliss21.org>
Date: Wed, 18 Jul 2018 20:45:56 +0200
Subject: [PATCH] [fix] Adapation du fichier sepa pour la DGFIP
---
.../prelevement/class/bonprelevement.class.php | 54 ++++++++++++++++++++--
1 file changed, 51 insertions(+), 3 deletions(-)
diff --git a/custom/compta/prelevement/class/bonprelevement.class.php b/custom/compta/prelevement/class/bonprelevement.class.php
index d0aa788..8ffd022 100644
--- a/custom/compta/prelevement/class/bonprelevement.class.php
+++ b/custom/compta/prelevement/class/bonprelevement.class.php
@@ -1381,12 +1381,29 @@ class BonPrelevement extends CommonObject
fputs($this->file, ' <CstmrDrctDbtInitn>'.$CrLf);
// SEPA Group header
fputs($this->file, ' <GrpHdr>'.$CrLf);
- fputs($this->file, ' <MsgId>'.('PREL'.$dateTime_YMD.'/REF'.$this->id).'</MsgId>'.$CrLf);
+ //fputs($this->file, ' <MsgId>'.('PREL'.$dateTime_YMD.'/REF'.$this->id).'</MsgId>'.$CrLf);
+
+ /* Custom code
+ Generation de la reference technique (date au format 3 digits)
+ */
+ function refTechnique() {
+ $date = date(z)+1;
+ if ($date < 10) {
+ $ref = 'TGDFT062-DFT-SDD-'.date(y).'00'.$date.'-001</MsgId>';
+ } elseif ($date >= 10 && $date < 100) {
+ $ref = 'TGDFT062-DFT-SDD-'.date(y).'0'.$date.'-001</MsgId>';
+ } else {
+ $ref = 'TGDFT062-DFT-SDD-'.date(y).$date.'-001</MsgId>';
+ }
+ return $ref;
+ }
+ fputs($this->file, ' <MsgId>'.refTechnique().$CrLf); //Custom code : date(y)--> année sur 2 chiffres, date(z)--> jour de l'année de 0 à 365
fputs($this->file, ' <CreDtTm>'.$dateTime_ECMA.'</CreDtTm>'.$CrLf);
fputs($this->file, ' <NbOfTxs>'.$i.'</NbOfTxs>'.$CrLf);
fputs($this->file, ' <CtrlSum>'.$this->total.'</CtrlSum>'.$CrLf);
fputs($this->file, ' <InitgPty>'.$CrLf);
- fputs($this->file, ' <Nm>'.strtoupper(dol_string_unaccent($this->raison_sociale)).'</Nm>'.$CrLf);
+ //fputs($this->file, ' <Nm>'.strtoupper(dol_string_unaccent($this->raison_sociale)).'</Nm>'.$CrLf);
+ fputs($this->file, ' <Nm>'.dol_string_unaccent($this->creancier_ultime_nom).'</Nm>'.$CrLf); //custom code
fputs($this->file, ' <Id>'.$CrLf);
fputs($this->file, ' <PrvtId>'.$CrLf);
fputs($this->file, ' <Othr>'.$CrLf);
@@ -1576,7 +1593,8 @@ class BonPrelevement extends CommonObject
$XML_DEBITOR ='';
$XML_DEBITOR .=' <DrctDbtTxInf>'.$CrLf;
$XML_DEBITOR .=' <PmtId>'.$CrLf;
- $XML_DEBITOR .=' <EndToEndId>'.('AS-'.dol_trunc($row_facnumber,20).'-'.$Rowing).'</EndToEndId>'.$CrLf; // ISO20022 states that EndToEndId has a MaxLength of 35 characters
+ //$XML_DEBITOR .=' <EndToEndId>'.('AS-'.dol_trunc($row_facnumber,20).'-'.$Rowing).'</EndToEndId>'.$CrLf; // ISO20022 states that EndToEndId has a MaxLength of 35 characters
+ $XML_DEBITOR .=' <EndToEndId>'.('1D0620000-'.dol_trunc($row_facnumber,20)).'</EndToEndId>'.$CrLf; // Custom code
$XML_DEBITOR .=' </PmtId>'.$CrLf;
$XML_DEBITOR .=' <InstdAmt Ccy="EUR">'.round($row_somme, 2).'</InstdAmt>'.$CrLf;
$XML_DEBITOR .=' <DrctDbtTx>'.$CrLf;
@@ -1719,6 +1737,24 @@ class BonPrelevement extends CommonObject
$this->raison_sociale = $account->proprio;
}
+ /* Begin custom code */
+ // Récupération des infos du créancier ultime
+ $sql = "SELECT ultimate_creditor_name, ultimate_creditor_id";
+ $sql.= " FROM";
+ $sql.= " ".MAIN_DB_PREFIX."bank_account_extrafields";
+ $sql.= " WHERE fk_object = 1";
+
+ $resql=$this->db->query($sql);
+ if ($resql)
+ {
+ $obj = $this->db->fetch_object($resql);
+
+ // Données des champs personnalisés
+ $this->creancier_ultime_nom = $obj->ultimate_creditor_name;
+ $this->creancier_ultime_iban = $obj->ultimate_creditor_id;
+ }
+ /* End custom code*/
+
// Récupération info demandeur
$sql = "SELECT rowid, ref";
$sql.= " FROM";
@@ -1772,6 +1808,18 @@ class BonPrelevement extends CommonObject
$XML_SEPA_INFO .= ' <BIC>'.$this->emetteur_bic.'</BIC>'.$CrLf;
$XML_SEPA_INFO .= ' </FinInstnId>'.$CrLf;
$XML_SEPA_INFO .= ' </CdtrAgt>'.$CrLf;
+ /* Begin Custom code */
+ $XML_SEPA_INFO .= ' <UltmtCdtr>'.$CrLf;
+ $XML_SEPA_INFO .= ' <Nm>'.dol_string_unaccent($this->creancier_ultime_nom).'</Nm>'.$CrLf;
+ $XML_SEPA_INFO .= ' <Id>'.$CrLf;
+ $XML_SEPA_INFO .= ' <OrgId>'.$CrLf;
+ $XML_SEPA_INFO .= ' <Othr>'.$CrLf;
+ $XML_SEPA_INFO .= ' <Id>'.$this->creancier_ultime_iban.'</Id>'.$CrLf;
+ $XML_SEPA_INFO .= ' </Othr>'.$CrLf;
+ $XML_SEPA_INFO .= ' </OrgId>'.$CrLf;
+ $XML_SEPA_INFO .= ' </Id>'.$CrLf;
+ $XML_SEPA_INFO .= ' </UltmtCdtr>'.$CrLf;
+ /* End custom code */
/* $XML_SEPA_INFO .= ' <UltmtCdtr>'.$CrLf;
$XML_SEPA_INFO .= ' <Nm>'.$this->raison_sociale.'</Nm>'.$CrLf;
$XML_SEPA_INFO .= ' <PstlAdr>'.$CrLf;
--
2.11.0