diff --git a/htdocs/compta/prelevement/card.php b/htdocs/compta/prelevement/card.php index e2a5e846b0a17a7c62ea668f12578628da53022a..d27769e28a233c2e0e039940e9f0c0750d2c4ca9 100644 --- a/htdocs/compta/prelevement/card.php +++ b/htdocs/compta/prelevement/card.php @@ -190,7 +190,7 @@ if ($id > 0) print '<table class="border" width="100%"><tr><td width="20%">'; print $langs->trans("WithdrawalFile").'</td><td>'; - $relativepath = 'receipts/'.$bon->ref; + $relativepath = 'receipts/'.$bon->ref.'.xml'; print '<a data-ajax="false" href="'.DOL_URL_ROOT.'/document.php?type=text/plain&modulepart=prelevement&file='.urlencode($relativepath).'">'.$relativepath.'</a>'; print '</td></tr></table>'; diff --git a/htdocs/compta/prelevement/class/bonprelevement.class.php b/htdocs/compta/prelevement/class/bonprelevement.class.php index eb0344d7010f6a4f47b852f23987d8ac4969f7d5..e82e196fe99dd3ee2c3d8dc5fbde95a43a989f6f 100644 --- a/htdocs/compta/prelevement/class/bonprelevement.class.php +++ b/htdocs/compta/prelevement/class/bonprelevement.class.php @@ -914,9 +914,9 @@ class BonPrelevement extends CommonObject dol_syslog("Erreur recherche reference"); } - $ref = "T".$ref.str_pad(dol_substr("00".intval($row[0])+1),2,"0",STR_PAD_LEFT); + $ref = "T".$ref.str_pad(dol_substr("00".intval($row[0])+1,0,2),2,"0",STR_PAD_LEFT); - $filebonprev = $ref; + $this->filename = $conf->prelevement->dir_output.'/receipts/'.$ref.'.xml'; // Create withdraw receipt in database $sql = "INSERT INTO ".MAIN_DB_PREFIX."prelevement_bons ("; @@ -932,14 +932,11 @@ class BonPrelevement extends CommonObject if ($resql) { - $prev_id = $this->db->last_insert_id(MAIN_DB_PREFIX."prelevement_bons"); + $this->id = $this->db->last_insert_id(MAIN_DB_PREFIX."prelevement_bons"); $dir=$conf->prelevement->dir_output.'/receipts'; $file=$filebonprev; if (! is_dir($dir)) dol_mkdir($dir); - - $bonprev = new BonPrelevement($this->db, $dir."/".$file); - $bonprev->id = $prev_id; } else { @@ -972,7 +969,7 @@ class BonPrelevement extends CommonObject * $fac[8] : client nom * $fac[2] : client id */ - $ri = $bonprev->AddFacture($fac[0], $fac[2], $fac[8], $fac[7], $fac[3], $fac[4], $fac[5], $fac[6]); + $ri = $this->AddFacture($fac[0], $fac[2], $fac[8], $fac[7], $fac[3], $fac[4], $fac[5], $fac[6]); if ($ri <> 0) { $error++; @@ -982,7 +979,7 @@ class BonPrelevement extends CommonObject $sql = "UPDATE ".MAIN_DB_PREFIX."prelevement_facture_demande"; $sql.= " SET traite = 1"; $sql.= ", date_traite = '".$this->db->idate($now)."'"; - $sql.= ", fk_prelevement_bons = ".$prev_id; + $sql.= ", fk_prelevement_bons = ".$this->id; $sql.= " WHERE rowid = ".$fac[1]; dol_syslog(get_class($this)."::Create", LOG_DEBUG); @@ -1010,24 +1007,24 @@ class BonPrelevement extends CommonObject if (count($factures_prev) > 0) { - $bonprev->date_echeance = $datetimeprev; - $bonprev->reference_remise = $ref; + $this->date_echeance = $datetimeprev; + $this->reference_remise = $ref; - $bonprev->numero_national_emetteur = $conf->global->PRELEVEMENT_NUMERO_NATIONAL_EMETTEUR; - $bonprev->raison_sociale = $conf->global->PRELEVEMENT_RAISON_SOCIALE; + $this->numero_national_emetteur = $conf->global->PRELEVEMENT_NUMERO_NATIONAL_EMETTEUR; + $this->raison_sociale = $conf->global->PRELEVEMENT_RAISON_SOCIALE; - $bonprev->emetteur_code_banque = $conf->global->PRELEVEMENT_CODE_BANQUE; - $bonprev->emetteur_code_guichet = $conf->global->PRELEVEMENT_CODE_GUICHET; - $bonprev->emetteur_numero_compte = $conf->global->PRELEVEMENT_NUMERO_COMPTE; - $bonprev->emetteur_number_key = $conf->global->PRELEVEMENT_NUMBER_KEY; - $bonprev->emetteur_iban = $conf->global->PRELEVEMENT_IBAN; - $bonprev->emetteur_bic = $conf->global->PRELEVEMENT_BIC; - $bonprev->emetteur_ics = $conf->global->PRELEVEMENT_ICS; // TODO Add this into setup of admin/prelevement.php. Ex: PRELEVEMENT_ICS = "FR78ZZZ123456"; + $this->emetteur_code_banque = $conf->global->PRELEVEMENT_CODE_BANQUE; + $this->emetteur_code_guichet = $conf->global->PRELEVEMENT_CODE_GUICHET; + $this->emetteur_numero_compte = $conf->global->PRELEVEMENT_NUMERO_COMPTE; + $this->emetteur_number_key = $conf->global->PRELEVEMENT_NUMBER_KEY; + $this->emetteur_iban = $conf->global->PRELEVEMENT_IBAN; + $this->emetteur_bic = $conf->global->PRELEVEMENT_BIC; + $this->emetteur_ics = $conf->global->PRELEVEMENT_ICS; // TODO Add this into setup of admin/prelevement.php. Ex: PRELEVEMENT_ICS = "FR78ZZZ123456"; - $bonprev->factures = $factures_prev_id; + $this->factures = $factures_prev_id; // Generation of SEPA file - $bonprev->generate(); + $this->generate(); } dol_syslog($filebonprev); dol_syslog("Fin prelevement"); @@ -1037,8 +1034,8 @@ class BonPrelevement extends CommonObject * Update total */ $sql = "UPDATE ".MAIN_DB_PREFIX."prelevement_bons"; - $sql.= " SET amount = ".price2num($bonprev->total); - $sql.= " WHERE rowid = ".$prev_id; + $sql.= " SET amount = ".price2num($this->total); + $sql.= " WHERE rowid = ".$this->id; $sql.= " AND entity = ".$conf->entity; dol_syslog(get_class($this)."::Create", LOG_DEBUG); @@ -1275,7 +1272,7 @@ class BonPrelevement extends CommonObject } } - $sql = "SELECT soc.code_client as code, soc.address, soc.zip, soc.town, soc.datec, p.code as country_code,"; + $sql = "SELECT soc.code_client as code, soc.address, soc.zip, soc.town, rib.datec, c.code as country_code,"; $sql.= " pl.client_nom as nom, pl.code_banque as cb, pl.code_guichet as cg, pl.number as cc, pl.amount as somme,"; $sql.= " f.facnumber as fac, pf.fk_facture as idfac, rib.iban_prefix as iban, rib.bic as bic, rib.rowid as drum"; $sql.= " FROM"; @@ -1334,7 +1331,7 @@ class BonPrelevement extends CommonObject fputs($this->file, ' <NbOfTxs>'.$i.'</NbOfTxs>'.$CrLf); fputs($this->file, ' <CtrlSum>'.$this->total.'</CtrlSum>'.$CrLf); fputs($this->file, ' <InitgPty>'.$CrLf); - fputs($this->file, ' <Nm>'.$this->raison_sociale.'</Nm>'.$CrLf); + fputs($this->file, ' <Nm>'.strtoupper(dol_string_unaccent($this->raison_sociale)).'</Nm>'.$CrLf); fputs($this->file, ' <Id>'.$CrLf); fputs($this->file, ' <PrvtId>'.$CrLf); fputs($this->file, ' <Othr>'.$CrLf); @@ -1571,7 +1568,7 @@ class BonPrelevement extends CommonObject $XML_DEBITOR .=' <Nm>'.strtoupper(dol_string_unaccent($row_nom)).'</Nm>'.$CrLf; $XML_DEBITOR .=' <PstlAdr>'.$CrLf; $XML_DEBITOR .=' <Ctry>'.$row_country_code.'</Ctry>'.$CrLf; - $XML_DEBITOR .=' <AdrLine>'.strtr($row_address, array(CHR(13) => ", ", CHR(10) => "")).'</AdrLine>'.$CrLf; + $XML_DEBITOR .=' <AdrLine>'.dol_string_unaccent(strtr($row_address, array(CHR(13) => ", ", CHR(10) => ""))).'</AdrLine>'.$CrLf; $XML_DEBITOR .=' <AdrLine>'.dol_string_unaccent($row_zip.' '.$row_town).'</AdrLine>'.$CrLf; $XML_DEBITOR .=' </PstlAdr>'.$CrLf; $XML_DEBITOR .=' </Dbtr>'.$CrLf; @@ -1698,7 +1695,6 @@ class BonPrelevement extends CommonObject $XML_SEPA_INFO .= ' <NbOfTxs>'.$nombre.'</NbOfTxs>'.$CrLf; $XML_SEPA_INFO .= ' <CtrlSum>'.$total.'</CtrlSum>'.$CrLf; $XML_SEPA_INFO .= ' <PmtTpInf>'.$CrLf; - $XML_SEPA_INFO .= ' <InstrPrty>NORM</InstrPrty>'.$CrLf; $XML_SEPA_INFO .= ' <SvcLvl>'.$CrLf; $XML_SEPA_INFO .= ' <Cd>SEPA</Cd>'.$CrLf; $XML_SEPA_INFO .= ' </SvcLvl>'.$CrLf; @@ -1709,11 +1705,11 @@ class BonPrelevement extends CommonObject $XML_SEPA_INFO .= ' </PmtTpInf>'.$CrLf; $XML_SEPA_INFO .= ' <ReqdColltnDt>'.$dateTime_ETAD.'</ReqdColltnDt>'.$CrLf; $XML_SEPA_INFO .= ' <Cdtr>'.$CrLf; - $XML_SEPA_INFO .= ' <Nm>'.$configuration->global->PRELEVEMENT_RAISON_SOCIALE.'</Nm>'.$CrLf; + $XML_SEPA_INFO .= ' <Nm>'.strtoupper(dol_string_unaccent($configuration->global->PRELEVEMENT_RAISON_SOCIALE)).'</Nm>'.$CrLf; $XML_SEPA_INFO .= ' <PstlAdr>'.$CrLf; $XML_SEPA_INFO .= ' <Ctry>'.$country[1].'</Ctry>'.$CrLf; - $XML_SEPA_INFO .= ' <AdrLine>'.$configuration->global->MAIN_INFO_SOCIETE_ADDRESS.'</AdrLine>'.$CrLf; - $XML_SEPA_INFO .= ' <AdrLine>'.$configuration->global->MAIN_INFO_SOCIETE_ZIP.' '.$configuration->global->MAIN_INFO_SOCIETE_TOWN.'</AdrLine>'.$CrLf; + $XML_SEPA_INFO .= ' <AdrLine>'.strtoupper(dol_string_unaccent($configuration->global->MAIN_INFO_SOCIETE_ADDRESS)).'</AdrLine>'.$CrLf; + $XML_SEPA_INFO .= ' <AdrLine>'.strtoupper(dol_string_unaccent($configuration->global->MAIN_INFO_SOCIETE_ZIP.' '.$configuration->global->MAIN_INFO_SOCIETE_TOWN)).'</AdrLine>'.$CrLf; $XML_SEPA_INFO .= ' </PstlAdr>'.$CrLf; $XML_SEPA_INFO .= ' </Cdtr>'.$CrLf; $XML_SEPA_INFO .= ' <CdtrAcct>'.$CrLf;