Ajout fonction AddFacture
This commit is contained in:
parent
e13df82468
commit
24fa2bd618
@ -60,6 +60,112 @@ class BonPrelevement
|
||||
|
||||
return 1;
|
||||
}
|
||||
/*
|
||||
*
|
||||
*
|
||||
*
|
||||
*/
|
||||
function AddFacture($facture_id, $client_id, $client_nom, $amount, $code_banque, $code_guichet, $number)
|
||||
{
|
||||
$result = 0;
|
||||
$ligne_id = 0;
|
||||
|
||||
$result = $this->AddLigne($ligne_id, $client_id, $client_nom,
|
||||
$amount, $code_banque, $code_guichet, $number);
|
||||
|
||||
if ($result == 0)
|
||||
{
|
||||
if ($ligne_id > 0)
|
||||
{
|
||||
$sql = "INSERT INTO ".MAIN_DB_PREFIX."prelevement_facture ";
|
||||
$sql .= " (fk_facture,fk_prelevement_lignes)";
|
||||
$sql .= " VALUES (".$facture_id.",".$ligne_id.")";
|
||||
|
||||
if ($this->db->query($sql))
|
||||
{
|
||||
$result = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
$result = -1;
|
||||
dolibarr_syslog("BonPrelevement::AddFacture Erreur $result");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$result = -2;
|
||||
dolibarr_syslog("BonPrelevement::AddFacture Erreur $result");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$result = -3;
|
||||
dolibarr_syslog("BonPrelevement::AddFacture Erreur $result");
|
||||
}
|
||||
|
||||
return $result;
|
||||
|
||||
}
|
||||
/*
|
||||
*
|
||||
*
|
||||
*/
|
||||
function AddLigne(&$ligne_id, $client_id, $client_nom, $amount, $code_banque, $code_guichet, $number)
|
||||
{
|
||||
$result = -1;
|
||||
$concat = 0;
|
||||
|
||||
if ($concat == 1)
|
||||
{
|
||||
/*
|
||||
* On aggrège les lignes
|
||||
*/
|
||||
$sql = "SELECT rowid FROM ".MAIN_DB_PREFIX."prelevement_lignes";
|
||||
$sql .= " WHERE fk_prelevement_bons".$this->id;
|
||||
$sql .= " AND fk_soc =".$client_id;
|
||||
$sql .= " AND code_banque ='".$code_banque."'";
|
||||
$sql .= " AND code_guichet ='".$code_guichet."'";
|
||||
$sql .= " AND number ='".$number."'";
|
||||
|
||||
if ($this->db->query($sql))
|
||||
{
|
||||
$num = $this->db->num_rows();
|
||||
}
|
||||
else
|
||||
{
|
||||
$result = -1;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/*
|
||||
* Pas de d'agrégation
|
||||
*/
|
||||
$sql = "INSERT INTO ".MAIN_DB_PREFIX."prelevement_lignes (fk_prelevement_bons";
|
||||
$sql .= " , fk_soc , client_nom ";
|
||||
$sql .= " , amount";
|
||||
$sql .= " , code_banque , code_guichet , number)";
|
||||
|
||||
$sql .= " VALUES (".$this->id;
|
||||
$sql .= ",".$client_id.",'".addslashes($client_nom)."'";
|
||||
$sql .= ",'".ereg_replace(",",".",$amount)."'";
|
||||
$sql .= ", '$code_banque', '$code_guichet', '$number')";
|
||||
|
||||
if ($this->db->query($sql))
|
||||
{
|
||||
$ligne_id = $this->db->last_insert_id();
|
||||
$result = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
dolibarr_syslog("BonPrelevement::AddLigne Erreur -2");
|
||||
$result = -2;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
/*
|
||||
*
|
||||
*
|
||||
@ -73,7 +179,9 @@ class BonPrelevement
|
||||
$sql .= " , method_trans, fk_user_trans";
|
||||
$sql .= ",".$this->db->pdate("p.date_credit")." as date_credit";
|
||||
$sql .= " , fk_user_credit";
|
||||
$sql .= " FROM ".MAIN_DB_PREFIX."prelevement as p";
|
||||
|
||||
$sql .= " FROM ".MAIN_DB_PREFIX."prelevement_bons as p";
|
||||
|
||||
$sql .= " WHERE p.rowid=".$rowid;
|
||||
|
||||
$result=$this->db->query($sql);
|
||||
@ -101,13 +209,13 @@ class BonPrelevement
|
||||
}
|
||||
else
|
||||
{
|
||||
dolibarr_syslog("bon-prelevment::Fetch Erreur aucune ligne retournée");
|
||||
dolibarr_syslog("BonPrelevement::Fetch Erreur aucune ligne retournée");
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
dolibarr_syslog("bon-prelevment::Fetch Erreur ");
|
||||
dolibarr_syslog("BonPrelevement::Fetch Erreur ");
|
||||
dolibarr_syslog($sql);
|
||||
return -2;
|
||||
}
|
||||
@ -122,16 +230,14 @@ class BonPrelevement
|
||||
|
||||
if ($this->db->begin())
|
||||
{
|
||||
|
||||
|
||||
$sql = " UPDATE ".MAIN_DB_PREFIX."prelevement ";
|
||||
$sql = " UPDATE ".MAIN_DB_PREFIX."prelevement_bons ";
|
||||
$sql .= " SET credite = 1";
|
||||
$sql .= " WHERE rowid=".$this->id;
|
||||
|
||||
$result=$this->db->query($sql);
|
||||
if (! $result)
|
||||
{
|
||||
dolibarr_syslog("bon-prelevment::set_credite Erreur 1");
|
||||
dolibarr_syslog("bon-prelevement::set_credite Erreur 1");
|
||||
$error++;
|
||||
}
|
||||
|
||||
@ -157,18 +263,14 @@ class BonPrelevement
|
||||
|
||||
if ($error == 0)
|
||||
{
|
||||
/*
|
||||
* Change le statut des lignes de factures
|
||||
*/
|
||||
|
||||
$sql = " UPDATE ".MAIN_DB_PREFIX."prelevement_facture ";
|
||||
$sql .= " SET statut = 1";
|
||||
$sql .= " WHERE fk_prelevement=".$this->id;
|
||||
|
||||
$result=$this->db->query($sql);
|
||||
if (!$result)
|
||||
$sql = " UPDATE ".MAIN_DB_PREFIX."prelevement_lignes ";
|
||||
$sql .= " SET statut = 2";
|
||||
$sql .= " WHERE fk_prelevement_bons=".$this->id;
|
||||
|
||||
if (! $this->db->query($sql))
|
||||
{
|
||||
dolibarr_syslog("bon-prelevment::set_credite Erreur 3");
|
||||
dolibarr_syslog("BonPrelevement::set_infocredit Erreur 1");
|
||||
$error++;
|
||||
}
|
||||
}
|
||||
@ -184,8 +286,10 @@ class BonPrelevement
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
$this->db->rollback();
|
||||
dolibarr_syslog("bon-prelevment::set_credite ROLLBACK ");
|
||||
dolibarr_syslog("BonPrelevement::set_credite ROLLBACK ");
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
@ -194,7 +298,7 @@ class BonPrelevement
|
||||
else
|
||||
{
|
||||
|
||||
dolibarr_syslog("bon-prelevment::set_credite Ouverture transaction SQL impossible ");
|
||||
dolibarr_syslog("BonPrelevement::set_credite Ouverture transaction SQL impossible ");
|
||||
return -2;
|
||||
}
|
||||
}
|
||||
@ -208,18 +312,16 @@ class BonPrelevement
|
||||
|
||||
if ($this->db->begin())
|
||||
{
|
||||
|
||||
|
||||
$sql = " UPDATE ".MAIN_DB_PREFIX."prelevement ";
|
||||
$sql = " UPDATE ".MAIN_DB_PREFIX."prelevement_bons ";
|
||||
$sql .= " SET fk_user_credit = ".$user->id;
|
||||
$sql .= " , statut = 2";
|
||||
$sql .= " , date_credit='".$this->db->idate($date)."'";
|
||||
$sql .= " WHERE rowid=".$this->id;
|
||||
|
||||
$result=$this->db->query($sql);
|
||||
if (! $result)
|
||||
$sql .= " AND statut = 1";
|
||||
|
||||
if (! $this->db->query($sql))
|
||||
{
|
||||
dolibarr_syslog("bon-prelevment::set_infotrans Erreur 1");
|
||||
dolibarr_syslog($this->db->error());
|
||||
dolibarr_syslog("BonPrelevement::set_infocredit Erreur 1");
|
||||
$error++;
|
||||
}
|
||||
|
||||
@ -234,15 +336,17 @@ class BonPrelevement
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
$this->db->rollback();
|
||||
dolibarr_syslog("bon-prelevment::set_infotrans ROLLBACK ");
|
||||
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
dolibarr_syslog("bon-prelevment::set_infotrans Ouverture transaction SQL impossible ");
|
||||
dolibarr_syslog("bon-prelevement::set_infocredit Ouverture transaction SQL impossible ");
|
||||
return -2;
|
||||
}
|
||||
}
|
||||
@ -257,17 +361,17 @@ class BonPrelevement
|
||||
if ($this->db->begin())
|
||||
{
|
||||
|
||||
|
||||
$sql = " UPDATE ".MAIN_DB_PREFIX."prelevement ";
|
||||
$sql = " UPDATE ".MAIN_DB_PREFIX."prelevement_bons ";
|
||||
$sql .= " SET fk_user_trans = ".$user->id;
|
||||
$sql .= " , date_trans='".$this->db->idate($date)."'";
|
||||
$sql .= " , method_trans=".$method;
|
||||
$sql .= " , statut = 1";
|
||||
$sql .= " WHERE rowid=".$this->id;
|
||||
$sql .= " AND statut = 0";
|
||||
|
||||
$result=$this->db->query($sql);
|
||||
if (! $result)
|
||||
if (! $this->db->query($sql))
|
||||
{
|
||||
dolibarr_syslog("bon-prelevment::set_infotrans Erreur 1");
|
||||
dolibarr_syslog("bon-prelevement::set_infotrans Erreur 1");
|
||||
dolibarr_syslog($this->db->error());
|
||||
$error++;
|
||||
}
|
||||
@ -284,14 +388,15 @@ class BonPrelevement
|
||||
else
|
||||
{
|
||||
$this->db->rollback();
|
||||
dolibarr_syslog("bon-prelevment::set_infotrans ROLLBACK ");
|
||||
dolibarr_syslog("BonPrelevement::set_infotrans ROLLBACK ");
|
||||
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
dolibarr_syslog("bon-prelevment::set_infotrans Ouverture transaction SQL impossible ");
|
||||
dolibarr_syslog("BonPrelevement::set_infotrans Ouverture transaction SQL impossible ");
|
||||
return -2;
|
||||
}
|
||||
}
|
||||
@ -344,45 +449,208 @@ class BonPrelevement
|
||||
*/
|
||||
function Generate()
|
||||
{
|
||||
$result = -1;
|
||||
/*
|
||||
* En-tete Emetteur
|
||||
*/
|
||||
|
||||
$this->EnregEmetteur();
|
||||
|
||||
$nbfactures = sizeof($this->factures);
|
||||
|
||||
/*
|
||||
* Lignes
|
||||
*/
|
||||
$this->total = 0;
|
||||
|
||||
$sql = "SELECT rowid, client_nom, code_banque, code_guichet, number, amount";
|
||||
$sql .= " FROM ".MAIN_DB_PREFIX."prelevement_lignes";
|
||||
$sql .= " WHERE fk_prelevement_bons = ".$this->id;
|
||||
|
||||
$i = 0;
|
||||
|
||||
if ($this->db->query($sql))
|
||||
{
|
||||
$num = $this->db->num_rows();
|
||||
|
||||
while ($i < $num)
|
||||
{
|
||||
$row = $this->db->fetch_row();
|
||||
|
||||
$this->EnregDestinataire($row[0],
|
||||
$row[1],
|
||||
$row[2],
|
||||
$row[3],
|
||||
$row[4],
|
||||
$row[5]);
|
||||
|
||||
$this->total = $this->total + $row[5];
|
||||
|
||||
$i++;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$result = -2;
|
||||
}
|
||||
/*
|
||||
$nbfactures = sizeof($this->factures);
|
||||
for ($i = 0 ; $i < $nbfactures ; $i++)
|
||||
{
|
||||
$fac = new Facture($this->db);
|
||||
$fac->fetch($this->factures[$i]);
|
||||
$fac->fetch_client();
|
||||
|
||||
$fac->client->rib(); // Set client->bank_account
|
||||
|
||||
|
||||
if ($fac->client->bank_account->verif())
|
||||
{
|
||||
$fac->client->rib();
|
||||
if ($fac->client->bank_account->verif()) {
|
||||
$this->total = $this->total + $fac->total_ttc;
|
||||
|
||||
$this->EnregDestinataire($fac);
|
||||
}
|
||||
else
|
||||
{
|
||||
}else{
|
||||
print $fac->client->bank_account->error_message;
|
||||
print $fac->client->nom;
|
||||
}
|
||||
print $fac->client->nom; }
|
||||
}
|
||||
*/
|
||||
|
||||
/*
|
||||
* Pied de page total
|
||||
*/
|
||||
|
||||
$this->EnregTotal($this->total);
|
||||
|
||||
fclose($this->file);
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Enregistrements destinataires
|
||||
*
|
||||
*
|
||||
*/
|
||||
|
||||
function EnregDestinataire($rowid, $client_nom, $rib_banque, $rib_guichet, $rib_number, $amount)
|
||||
{
|
||||
fputs ($this->file, "06");
|
||||
fputs ($this->file, "08"); // Prélèvement ordinaire
|
||||
|
||||
fputs ($this->file, " "); // Zone Réservée B2
|
||||
|
||||
fputs ($this->file, $this->numero_national_emetteur); // Numéro National d'emmetteur B3
|
||||
|
||||
// Date d'échéance C1
|
||||
|
||||
fputs ($this->file, " ");
|
||||
fputs ($this->file, strftime("%d%m", $this->date_echeance));
|
||||
fputs ($this->file, substr(strftime("%y", $this->date_echeance),1));
|
||||
|
||||
// Raison Sociale Destinataire C2
|
||||
|
||||
fputs ($this->file, substr($client->nom. " ",0,24));
|
||||
|
||||
// Domiciliation facultative D1
|
||||
|
||||
fputs ($this->file, substr(" ",0,24));
|
||||
|
||||
// Zone Réservée D2
|
||||
|
||||
fputs ($this->file, substr(" ",0,8));
|
||||
|
||||
// Code Guichet D3
|
||||
|
||||
fputs ($this->file, $rib_guichet);
|
||||
|
||||
// Numero de compte D4
|
||||
|
||||
fputs ($this->file, substr("000000000000000".$rib_number, -11));
|
||||
|
||||
// Zone E Montant
|
||||
|
||||
$montant = (round($amount,2) * 100);
|
||||
|
||||
fputs ($this->file, substr("000000000000000".$montant, -16));
|
||||
|
||||
// Libellé F
|
||||
|
||||
fputs ($this->file, substr("*".$this->ref.$rowid." ",0,13));
|
||||
fputs ($this->file, substr(" ",0,18));
|
||||
|
||||
// Code établissement G1
|
||||
|
||||
fputs ($this->file, $rib_banque);
|
||||
|
||||
// Zone Réservée G2
|
||||
|
||||
fputs ($this->file, substr(" ",0,5));
|
||||
|
||||
fputs ($this->file, "\n");
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Enregistrements destinataires
|
||||
*
|
||||
*
|
||||
*/
|
||||
|
||||
function EnregDestinataireVersion1($fac)
|
||||
{
|
||||
fputs ($this->file, "06");
|
||||
fputs ($this->file, "08"); // Prélèvement ordinaire
|
||||
|
||||
fputs ($this->file, " "); // Zone Réservée B2
|
||||
|
||||
fputs ($this->file, $this->numero_national_emetteur); // Numéro National d'emmetteur B3
|
||||
|
||||
// Date d'échéance C1
|
||||
|
||||
fputs ($this->file, " ");
|
||||
fputs ($this->file, strftime("%d%m", $this->date_echeance));
|
||||
fputs ($this->file, substr(strftime("%y", $this->date_echeance),1));
|
||||
|
||||
// Raison Sociale Destinataire C2
|
||||
|
||||
fputs ($this->file, substr($fac->client->nom. " ",0,24));
|
||||
|
||||
// Reference de la remise créancier D1
|
||||
|
||||
fputs ($this->file, substr(" ",0,24));
|
||||
|
||||
// Zone Réservée D2
|
||||
|
||||
fputs ($this->file, substr(" ",0,8));
|
||||
|
||||
// Code Guichet D3
|
||||
|
||||
fputs ($this->file, $fac->client->bank_account->code_guichet);
|
||||
|
||||
// Numero de compte D4
|
||||
|
||||
fputs ($this->file, substr("000000000000000".$fac->client->bank_account->number, -11));
|
||||
|
||||
// Zone E Montant
|
||||
|
||||
$montant = (round($fac->total_ttc,2) * 100);
|
||||
|
||||
fputs ($this->file, substr("000000000000000".$montant, -16));
|
||||
|
||||
// Libellé F
|
||||
|
||||
fputs ($this->file, substr("*".$fac->ref." ",0,13));
|
||||
fputs ($this->file, substr(" ",0,18));
|
||||
|
||||
// Code établissement G1
|
||||
|
||||
fputs ($this->file, $fac->client->bank_account->code_banque);
|
||||
|
||||
// Zone Réservée G2
|
||||
|
||||
fputs ($this->file, substr(" ",0,5));
|
||||
|
||||
fputs ($this->file, "\n");
|
||||
}
|
||||
|
||||
/*
|
||||
*
|
||||
*
|
||||
*/
|
||||
|
||||
function EnregEmetteur()
|
||||
{
|
||||
fputs ($this->file, "03");
|
||||
@ -445,71 +713,11 @@ class BonPrelevement
|
||||
}
|
||||
|
||||
/*
|
||||
* Enregistrements destinataires
|
||||
*
|
||||
* Pied de page
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
function EnregDestinataire($fac)
|
||||
{
|
||||
fputs ($this->file, "06");
|
||||
fputs ($this->file, "08"); // Prélèvement ordinaire
|
||||
|
||||
fputs ($this->file, " "); // Zone Réservée B2
|
||||
|
||||
fputs ($this->file, $this->numero_national_emetteur); // Numéro National d'emmetteur B3
|
||||
|
||||
// Date d'échéance C1
|
||||
|
||||
fputs ($this->file, " ");
|
||||
fputs ($this->file, strftime("%d%m", $this->date_echeance));
|
||||
fputs ($this->file, substr(strftime("%y", $this->date_echeance),1));
|
||||
|
||||
// Raison Sociale Destinataire C2
|
||||
|
||||
fputs ($this->file, substr($fac->client->nom. " ",0,24));
|
||||
|
||||
// Reference de la remise créancier D1
|
||||
|
||||
fputs ($this->file, substr(" ",0,24));
|
||||
|
||||
// Zone Réservée D2
|
||||
|
||||
fputs ($this->file, substr(" ",0,8));
|
||||
|
||||
// Code Guichet D3
|
||||
|
||||
fputs ($this->file, $fac->client->bank_account->code_guichet);
|
||||
|
||||
// Numero de compte D4
|
||||
|
||||
fputs ($this->file, substr("000000000000000".$fac->client->bank_account->number, -11));
|
||||
|
||||
// Zone E Montant
|
||||
|
||||
$montant = (round($fac->total_ttc,2) * 100);
|
||||
|
||||
fputs ($this->file, substr("000000000000000".$montant, -16));
|
||||
|
||||
// Libellé F
|
||||
|
||||
fputs ($this->file, substr("*".$fac->ref." ",0,13));
|
||||
fputs ($this->file, substr(" ",0,18));
|
||||
|
||||
// Code établissement G1
|
||||
|
||||
fputs ($this->file, $fac->client->bank_account->code_banque);
|
||||
|
||||
// Zone Réservée G2
|
||||
|
||||
fputs ($this->file, substr(" ",0,5));
|
||||
|
||||
fputs ($this->file, "\n");
|
||||
}
|
||||
|
||||
|
||||
|
||||
function EnregTotal($total)
|
||||
{
|
||||
fputs ($this->file, "08");
|
||||
|
||||
Loading…
Reference in New Issue
Block a user