Fix generation of RUM number. Show it on card to help debug.

This commit is contained in:
Laurent Destailleur 2015-03-10 11:31:23 +01:00
parent a169b3348e
commit d847f9581e
3 changed files with 41 additions and 8 deletions

View File

@ -1300,7 +1300,7 @@ class BonPrelevement extends CommonObject
while ($i < $num)
{
$obj = $this->db->fetch_object($resql);
$fileDebiteurSection .= $this->EnregDestinataireSEPA($obj->code, $obj->nom, $obj->address, $obj->zip, $obj->town, $obj->country_code, $obj->cb, $obj->cg, $obj->cc, $obj->somme, $ListOfFactures, $obj->idfac, $obj->iban, $obj->bic, $obj->datec, $obj->drum);
$fileDebiteurSection .= $this->EnregDestinataireSEPA($obj->code, $obj->nom, $obj->address, $obj->zip, $obj->town, $obj->country_code, $obj->cb, $obj->cg, $obj->cc, $obj->somme, $ListOfFactures, $obj->idfac, $obj->iban, $obj->bic, $this->db->jdate($obj->datec), $obj->drum);
$this->total = $this->total + $obj->somme;
$i++;
}
@ -1502,6 +1502,20 @@ class BonPrelevement extends CommonObject
}
/**
* Build RUM number for a customer bank account
*
* @param string $row_code_client Customer code (soc.code_client)
* @param int $row_datec Creation date of bank account (rib.datec)
* @param string $row_drum Id of customer bank account (rib.rowid)
* @return string RUM number
*/
static function buildRumNumber($row_code_client, $row_datec, $row_drum)
{
$pre = ($row_datec > 1359673200) ? 'Rum' : '++R';
return $pre.$row_code_client.'-'.$row_drum.'-'.date('U', $row_datec);
}
/**
* Write recipient of request (customer)
*
@ -1520,7 +1534,7 @@ class BonPrelevement extends CommonObject
* @param string $row_iban rib.iban_prefix AS iban,
* @param string $row_bic rib.bic AS bic,
* @param string $row_datec rib.datec,
* @param string $row_drum rib.rowid AS drum
* @param string $row_drum rib.rowid used to generate rum
* @return string Return string with SEPA part DrctDbtTxInf
*/
function EnregDestinataireSEPA($row_code_client, $row_nom, $row_address, $row_zip, $row_town, $row_country_code, $row_cb, $row_cg, $row_cc, $row_somme, $row_facnumber, $row_idfac, $row_iban, $row_bic, $row_datec, $row_drum)
@ -1530,10 +1544,11 @@ class BonPrelevement extends CommonObject
// Define value for RUM
// Example: RUMCustomerCode-CustomerBankAccountId-01424448606 (note: Date is date of creation of CustomerBankAccountId)
$Date_Rum = strtotime($row_datec);
$Rum = $this->buildRumNumber($row_code_client, $row_datec, $row_drum);
// Define date of RUM signature
$DtOfSgntr = dol_print_date($row_datec, '%Y-%m-%d');
$pre = ($date_Rum > 1359673200) ? 'Rum' : '++R';
$Rum = $pre.$row_code_client.$row_drum.'-0'.date('U', $Date_Rum);
$XML_DEBITOR ='';
$XML_DEBITOR .=' <DrctDbtTxInf>'.$CrLf;
$XML_DEBITOR .=' <PmtId>'.$CrLf;

View File

@ -49,6 +49,10 @@ class CompanyBankAccount extends Account
var $owner_address;
var $default_rib;
var $datec;
var $datem;
/**
* Constructor
*
@ -174,7 +178,7 @@ class CompanyBankAccount extends Account
{
if (empty($id) && empty($socid)) return -1;
$sql = "SELECT rowid, fk_soc, bank, number, code_banque, code_guichet, cle_rib, bic, iban_prefix as iban, domiciliation, proprio, owner_address, default_rib, label";
$sql = "SELECT rowid, fk_soc, bank, number, code_banque, code_guichet, cle_rib, bic, iban_prefix as iban, domiciliation, proprio, owner_address, default_rib, label, datec, tms as datem";
$sql.= " FROM ".MAIN_DB_PREFIX."societe_rib";
if ($id) $sql.= " WHERE rowid = ".$id;
if ($socid) $sql.= " WHERE fk_soc = ".$socid." AND default_rib = 1";
@ -200,6 +204,8 @@ class CompanyBankAccount extends Account
$this->owner_address = $obj->owner_address;
$this->label = $obj->label;
$this->default_rib = $obj->default_rib;
$this->datec = $this->db->jdate($obj->datec);
$this->datem = $this->db->jdate($obj->datem);
}
$this->db->free($resql);

View File

@ -29,6 +29,7 @@ require '../main.inc.php';
require_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php';
require_once DOL_DOCUMENT_ROOT.'/core/lib/bank.lib.php';
require_once DOL_DOCUMENT_ROOT.'/societe/class/companybankaccount.class.php';
require_once DOL_DOCUMENT_ROOT.'/compta/prelevement/class/bonprelevement.class.php';
$langs->load("companies");
$langs->load("commercial");
@ -191,6 +192,7 @@ if ($action == 'confirm_delete' && $_GET['confirm'] == 'yes')
*/
$form = new Form($db);
$prelevement = new BonPrelevement($db);
llxHeader();
@ -320,11 +322,11 @@ if ($socid && $action != 'edit' && $action != "create")
print "<br>";
/*
* List of bank accounts
*/
print_titre($langs->trans("AllRIB"));
$rib_list = $soc->get_all_rib();
@ -339,6 +341,10 @@ if ($socid && $action != 'edit' && $action != "create")
print_liste_field_titre($langs->trans("RIB"));
print_liste_field_titre($langs->trans("IBAN"));
print_liste_field_titre($langs->trans("BIC"));
if (! empty($conf->prelevement->enabled))
{
print '<td>RUM</td>';
}
print_liste_field_titre($langs->trans("DefaultRIB"), '', '', '', '', 'align="center"');
print '<td width="40"></td>';
print '</tr>';
@ -356,6 +362,12 @@ if ($socid && $action != 'edit' && $action != "create")
print '<td>'.$rib->iban.'</td>';
// BIC
print '<td>'.$rib->bic.'</td>';
if (! empty($conf->prelevement->enabled))
{
print '<td>'.$prelevement->buildRumNumber($soc->code_client, $rib->datec, $rib->id).'</td>';
}
// Default
print '<td align="center" width="70">';
if (!$rib->default_rib) {