diff --git a/htdocs/bon-prelevement.class.php b/htdocs/bon-prelevement.class.php
index f58d1c33403..7ba491e84a9 100644
--- a/htdocs/bon-prelevement.class.php
+++ b/htdocs/bon-prelevement.class.php
@@ -32,1381 +32,1370 @@ require_once (DOL_DOCUMENT_ROOT."/societe.class.php");
class BonPrelevement
{
- var $db;
+ var $db;
- var $date_echeance;
- var $raison_sociale;
- var $reference_remise;
- var $emetteur_code_guichet;
- var $emetteur_numero_compte;
- var $emetteur_code_etablissement;
- var $total;
- var $_fetched;
+ var $date_echeance;
+ var $raison_sociale;
+ var $reference_remise;
+ var $emetteur_code_guichet;
+ var $emetteur_numero_compte;
+ var $emetteur_code_etablissement;
+ var $total;
+ var $_fetched;
- function BonPrelevement($DB, $filename='')
+ function BonPrelevement($DB, $filename='')
{
- $error = 0;
- $this->db = $DB;
+ $error = 0;
+ $this->db = $DB;
- if (strlen($filename))
- {
- $this->file = fopen ($filename,"w");
- }
-
- $this->date_echeance = time();
- $this->raison_sociale = "";
- $this->reference_remise = "";
+ $this->filename=$filename;
+
+ $this->date_echeance = time();
+ $this->raison_sociale = "";
+ $this->reference_remise = "";
- $this->emetteur_code_guichet = "";
- $this->emetteur_numero_compte = "";
- $this->emetteur_code_etablissement = "";
+ $this->emetteur_code_guichet = "";
+ $this->emetteur_numero_compte = "";
+ $this->emetteur_code_etablissement = "";
- $this->factures = array();
+ $this->factures = array();
- $this->numero_national_emetteur = "";
+ $this->numero_national_emetteur = "";
- $this->methodes_trans = array();
+ $this->methodes_trans = array();
- $this->methodes_trans[0] = "Internet";
+ $this->methodes_trans[0] = "Internet";
- $this->_fetched = 0;
+ $this->_fetched = 0;
- 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(MAIN_DB_PREFIX."prelevement_lignes");
- $result = 0;
- }
- else
- {
- dolibarr_syslog("BonPrelevement::AddLigne Erreur -2");
- $result = -2;
- }
-
- }
-
- return $result;
- }
- /*
- *
- *
- */
- function ReadError($error)
- {
- $errors = array();
-
- $errors[1027] = "Date invalide";
-
- return $errors[abs($error)];
- }
- /*
- *
- *
- */
- function Fetch($rowid)
- {
- $sql = "SELECT p.rowid, p.ref, p.amount, p.note, p.credite";
- $sql .= ",".$this->db->pdate("p.datec")." as dc";
- $sql .= ",".$this->db->pdate("p.date_trans")." as date_trans";
- $sql .= " , method_trans, fk_user_trans";
- $sql .= ",".$this->db->pdate("p.date_credit")." as date_credit";
- $sql .= " , fk_user_credit";
- $sql .= " , statut";
- $sql .= " FROM ".MAIN_DB_PREFIX."prelevement_bons as p";
-
- $sql .= " WHERE p.rowid=".$rowid;
-
- $result=$this->db->query($sql);
- if ($result)
- {
- if ($this->db->num_rows($result))
- {
- $obj = $this->db->fetch_object();
-
- $this->id = $obj->rowid;
- $this->ref = $obj->ref;
- $this->amount = $obj->amount;
- $this->note = stripslashes($obj->note);
- $this->datec = $obj->dc;
- $this->credite = $obj->credite;
-
- $this->date_trans = $obj->date_trans;
- $this->method_trans = $obj->method_trans;
- $this->user_trans = $obj->fk_user_trans;
-
- $this->date_credit = $obj->date_credit;
- $this->user_credit = $obj->fk_user_credit;
-
- $this->statut = $obj->statut;
-
- $this->_fetched = 1;
-
- return 0;
- }
- else
- {
- dolibarr_syslog("BonPrelevement::Fetch Erreur aucune ligne retournée");
- return -1;
- }
- }
- else
- {
- dolibarr_syslog("BonPrelevement::Fetch Erreur ");
- dolibarr_syslog($sql);
- return -2;
- }
- }
- /**
- *
- *
- */
- function set_credite()
- {
- $error == 0;
-
- if ($this->db->begin())
- {
- $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-prelevement::set_credite Erreur 1");
- $error++;
- }
-
- if ($error == 0)
- {
- /**
- *
- *
- *
- */
- $facs = array();
- $facs = $this->_get_list_factures();
-
- for ($i = 0 ; $i < sizeof($facs) ; $i++)
- {
- $fac = new Facture($this->db);
-
- /* Tag la facture comme impayée */
- dolibarr_syslog("BonPrelevement::set_credite set_payed fac ".$facs[$i]);
- $fac->set_payed($facs[$i]);
- }
- }
-
- if ($error == 0)
- {
-
- $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("BonPrelevement::set_infocredit Erreur 1");
- $error++;
- }
- }
-
- /*
- * Fin de la procédure
- *
- */
- if ($error == 0)
- {
- $this->db->commit();
- return 0;
- }
- else
- {
-
- $this->db->rollback();
- dolibarr_syslog("BonPrelevement::set_credite ROLLBACK ");
-
- return -1;
- }
-
-
- }
- else
- {
-
- dolibarr_syslog("BonPrelevement::set_credite Ouverture transaction SQL impossible ");
- return -2;
- }
- }
- /**
- *
- *
- */
- function set_infocredit($user, $date)
- {
- $error == 0;
-
- if ($this->_fetched == 1)
- {
- if ($date >= $this->date_trans)
- {
- if ($this->db->begin())
- {
- $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;
- $sql .= " AND statut = 1";
-
- if ($this->db->query($sql))
- {
- $subject = "Crédit prélèvement ".$this->ref." à la banque";
- $message = "Le bon de prélèvement ".$this->ref;
- $message .= " a été crédité par la banque.\n";
- $message .= "Date crédit : ".strftime("%A %e %B %Y", $date);
-
- $this->Notify($user,"cr", $subject, $message);
- }
- else
- {
- dolibarr_syslog("BonPrelevement::set_infocredit Erreur 1");
- $error++;
- }
-
- /*
- * Fin de la procédure
- *
- */
- if ($error == 0)
- {
- $this->db->commit();
- return 0;
- }
- else
- {
- $this->db->rollback();
- dolibarr_syslog("bon-prelevment::set_infocredit ROLLBACK ");
- return -1;
- }
- }
- else
- {
- dolibarr_syslog("bon-prelevement::set_infocredit Ouverture transaction SQL impossible ");
- return -1025;
- }
- }
- else
- {
- dolibarr_syslog("bon-prelevment::set_infocredit 1027 Date de credit < Date de trans ");
- return -1027;
- }
- }
- else
- {
- return -1026;
- }
- }
- /**
- *
- *
- */
- function set_infotrans($user, $date, $method)
- {
- $error == 0;
- dolibarr_syslog("bon-prelevement::set_infotrans Start",LOG_INFO);
- if ($this->db->begin())
- {
- $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";
-
- if ($this->db->query($sql))
- {
- $this->method_trans = $method;
-
- $subject = "Transmission du prélèvement ".$this->ref." à la banque";
- $message = "Le bon de prélèvement ".$this->ref;
- $message .= " a été transmis à la banque par ".$user->prenom. " ".$user->nom;
- $message .= "\n\n";
- $message .= "\nMontant : ".price($this->amount);
- $message .= "\nMéthode : ".$this->methodes_trans[$this->method_trans];
- $message .= "\nDate : ".strftime("%A %e %B %Y", $date);
-
- $this->Notify($user,"tr", $subject, $message, 1);
- }
- else
- {
- dolibarr_syslog("bon-prelevement::set_infotrans Erreur 1", LOG_ERR);
- dolibarr_syslog($this->db->error());
- $error++;
- }
-
- /*
- * Fin de la procédure
- *
- */
- if ($error == 0)
- {
- $this->db->commit();
- return 0;
- }
- else
- {
- $this->db->rollback();
- dolibarr_syslog("BonPrelevement::set_infotrans ROLLBACK", LOG_ERR);
-
- return -1;
- }
- }
- else
- {
-
- dolibarr_syslog("BonPrelevement::set_infotrans Ouverture transaction SQL impossible", LOG_CRIT);
- return -2;
- }
- }
- /*
- *
- *
- */
- function Notify($user, $action, $subject, $message, $joinfile=0)
- {
- $message .= "\n\n--\n";
- $message .= "Ceci est un message automatique envoyé par Dolibarr";
-
-
- $sql = "SELECT u.name, u.firstname, u.email";
- $sql .= " FROM ".MAIN_DB_PREFIX."user as u";
- $sql .= " , ".MAIN_DB_PREFIX."prelevement_notifications as pn";
- $sql .= " WHERE pn.action ='".$action."'";
- $sql .= " AND u.rowid = pn.fk_user;";
-
- $resql = $this->db->query($sql);
- if ($resql)
- {
- $num = $this->db->num_rows($resql);
- $i = 0;
- while ($i < $num)
- {
- $obj = $this->db->fetch_object($resql);
-
- require_once(DOL_DOCUMENT_ROOT."/lib/dolibarrmail.class.php");
-
-
- $sendto = $obj->firstname . " " .$obj->name . "<".$obj->email.">";
- $from = $user->prenom . " " .$user->nom . "<".$user->email.">";
-
- $mailfile = new DolibarrMail($subject,
- $sendto,
- $from,
- $message);
-
- if ($joinfile == 1)
- {
-
- $arr_file = array(DOL_DATA_ROOT.'/prelevement/bon/'.$this->ref.'.ps');
- $arr_mime = array("application/ps");
- $arr_name = array($this->ref.".ps");
-
- $mailfile->PrepareFile($arr_file, $arr_mime, $arr_name);
- }
-
-
- $mailfile->sendfile();
-
-
-
- $i++;
- }
- $this->db->free($resql);
- }
- }
-
- /**
- * \brief Recupére la liste des factures concernées
- */
- function _get_list_factures()
- {
- $arr = array();
- /*
- * Renvoie toutes les factures présente
- * dans un bon de prélèvement
- */
-
- $sql = "SELECT fk_facture";
- $sql .= " FROM ".MAIN_DB_PREFIX."prelevement_bons as p";
- $sql .= " , ".MAIN_DB_PREFIX."prelevement_lignes as pl";
- $sql .= " , ".MAIN_DB_PREFIX."prelevement_facture as pf";
- $sql .= " WHERE pf.fk_prelevement_lignes = pl.rowid";
- $sql .= " AND pl.fk_prelevement_bons = p.rowid";
- $sql .= " AND p.rowid=".$this->id;
-
- $resql=$this->db->query($sql);
- if ($resql)
- {
- $num = $this->db->num_rows($resql);
-
- if ($num)
- {
- $i = 0;
- while ($i < $num)
- {
- $row = $this->db->fetch_row($resql);
- $arr[$i] = $row[0];
- $i++;
- }
- }
- $this->db->free($resql);
- }
- else
- {
- dolibarr_syslog("Bon-Prelevement::_get_list_factures Erreur");
- }
-
- return $arr;
+ return 1;
}
- /**
- *
- *
- */
- function SommeAPrelever()
- {
- $sql = "SELECT sum(f.total_ttc)";
- $sql .= " FROM ".MAIN_DB_PREFIX."facture as f";
- $sql .= " , ".MAIN_DB_PREFIX."prelevement_facture_demande as pfd";
-
- $sql .= " WHERE f.fk_statut = 1";
- $sql .= " AND f.rowid = pfd.fk_facture";
- $sql .= " AND f.paye = 0";
- $sql .= " AND pfd.traite = 0";
- $sql .= " AND f.total_ttc > 0";
- $sql .= " AND f.fk_mode_reglement = 3";
-
- $resql = $this->db->query($sql);
-
- if ( $resql )
- {
- $row = $this->db->fetch_row($resql);
-
- return $row[0];
-
- $this->db->free($resql);
- }
- else
- {
- $error = 1;
- dolibarr_syslog("BonPrelevement::SommeAPrelever Erreur -1");
- dolibarr_syslog($this->db->error());
- }
- }
- /*
- *
- *
- */
- function NbFactureAPrelever($banque=0,$agence=0)
- {
- $sql = "SELECT count(f.total_ttc)";
- $sql .= " FROM ".MAIN_DB_PREFIX."facture as f";
- $sql .= " , ".MAIN_DB_PREFIX."prelevement_facture_demande as pfd";
- $sql .= " , ".MAIN_DB_PREFIX."societe_rib as sr";
-
- $sql .= " WHERE f.fk_statut = 1";
- $sql .= " AND f.rowid = pfd.fk_facture";
- $sql .= " AND f.fk_soc = sr.fk_soc";
- $sql .= " AND f.paye = 0";
- $sql .= " AND pfd.traite = 0";
- $sql .= " AND f.total_ttc > 0";
- $sql .= " AND f.fk_mode_reglement = 3";
-
- if ($banque == 1)
- {
- $sql .= " AND sr.code_banque = '".PRELEVEMENT_CODE_BANQUE."'";
- }
-
- if ($agence == 1)
- {
- $sql .= " AND sr.code_guichet = '".PRELEVEMENT_CODE_GUICHET."'";
- }
-
- $resql = $this->db->query($sql);
-
- if ( $resql )
- {
- $row = $this->db->fetch_row($resql);
-
- return $row[0];
-
- $this->db->free($resql);
- }
- else
- {
- $error = 1;
- dolibarr_syslog("BonPrelevement::SommeAPrelever Erreur -1");
- dolibarr_syslog($this->db->error());
- }
- }
- /*
- *
- *
- */
- function Create($banque=0, $guichet=0)
- {
- dolibarr_syslog("BonPrelevement::Create");
-
- require_once (DOL_DOCUMENT_ROOT."/bon-prelevement.class.php");
- require_once (DOL_DOCUMENT_ROOT."/facture.class.php");
- require_once (DOL_DOCUMENT_ROOT."/societe.class.php");
- require_once (DOL_DOCUMENT_ROOT."/paiement.class.php");
- require_once (DOL_DOCUMENT_ROOT."/lib/dolibarrmail.class.php");
-
- $error = 0;
-
- $datetimeprev = time();
-
- $month = strftime("%m", $datetimeprev);
- $year = strftime("%Y", $datetimeprev);
-
- $user = new user($this->db, PRELEVEMENT_USER);
-
- /*
- *
- * Lectures des factures
- *
- */
-
- $factures = array();
- $factures_prev = array();
-
- if (!$error)
- {
-
- $sql = "SELECT f.rowid, pfd.rowid as pfdrowid, f.fk_soc";
- $sql .= ", pfd.code_banque, pfd.code_guichet, pfd.number, pfd.cle_rib";
- $sql .= ", pfd.amount";
- $sql .= ", s.nom";
- $sql .= " FROM ".MAIN_DB_PREFIX."facture as f";
- $sql .= " , ".MAIN_DB_PREFIX."societe as s";
- $sql .= " , ".MAIN_DB_PREFIX."prelevement_facture_demande as pfd";
- $sql .= " , ".MAIN_DB_PREFIX."societe_rib as sr";
-
- $sql .= " WHERE f.rowid = pfd.fk_facture";
- $sql .= " AND s.idp = f.fk_soc";
- $sql .= " AND s.idp = sr.fk_soc";
- $sql .= " AND f.fk_statut = 1";
- $sql .= " AND f.paye = 0";
- $sql .= " AND pfd.traite = 0";
- $sql .= " AND f.total_ttc > 0";
- $sql .= " AND f.fk_mode_reglement = 3";
-
- if ($banque == 1)
- {
- $sql .= " AND sr.code_banque = '".PRELEVEMENT_CODE_BANQUE."'";
- }
-
- if ($agence == 1)
- {
- $sql .= " AND sr.code_guichet = '".PRELEVEMENT_CODE_GUICHET."'";
- }
-
- $resql = $this->db->query($sql);
-
- if ( $resql)
- {
- $num = $this->db->num_rows($resql);
- $i = 0;
-
- while ($i < $num)
- {
- $row = $this->db->fetch_row($resql);
- $factures[$i] = $row;
- $i++;
- }
- $this->db->free($resql);
- dolibarr_syslog("$i factures à prélever");
- }
- else
- {
- $error = 1;
- dolibarr_syslog("Erreur -1");
- dolibarr_syslog($this->db->error());
- }
- }
-
- /*
- *
- * Verif des clients
- *
- */
-
- if (!$error)
- {
- /*
- * Vérification des RIB
- *
- */
- $i = 0;
- dolibarr_syslog("Début vérification des RIB");
-
- if (sizeof($factures) > 0)
- {
- foreach ($factures as $fac)
- {
- $fact = new Facture($this->db);
-
- if ($fact->fetch($fac[0]) == 1)
- {
- $soc = new Societe($this->db);
- if ($soc->fetch($fact->socidp) == 1)
- {
- if ($soc->verif_rib() == 1)
- {
- $factures_prev[$i] = $fac;
- /* second tableau necessaire pour bon-prelevement */
- $factures_prev_id[$i] = $fac[0];
- $i++;
- }
- else
- {
- dolibarr_syslog("Erreur de RIB societe $fact->socidp $soc->nom");
- }
- }
- else
- {
- dolibarr_syslog("Impossible de lire la société");
- }
- }
- else
- {
- dolibarr_syslog("Impossible de lire la facture");
- }
- }
- }
- else
- {
- dolibarr_syslog("Aucune factures a traiter");
- }
- }
-
- /*
- *
+ /**
*
*
*/
-
- dolibarr_syslog(sizeof($factures_prev)." factures seront prélevées");
-
- if (sizeof($factures_prev) > 0)
- {
- /*
- * Ouverture de la transaction
- *
- */
-
- if (!$this->db->query("BEGIN"))
- {
- $error++;
- }
-
- /*
- * Traitements
- *
- */
-
- if (!$error)
- {
- $ref = "T".substr($year,-2).$month;
-
- /*
- *
- *
- */
- $sql = "SELECT count(*) FROM ".MAIN_DB_PREFIX."prelevement_bons";
- $sql .= " WHERE ref LIKE '$ref%'";
-
- $resql = $this->db->query($sql);
+ function AddFacture($facture_id, $client_id, $client_nom, $amount, $code_banque, $code_guichet, $number)
+ {
+ $result = 0;
+ $ligne_id = 0;
- if ($resql)
- {
- $row = $this->db->fetch_row($resql);
- }
- else
- {
- $error++;
- dolibarr_syslog("Erreur recherche reference");
- }
-
- $ref = $ref . substr("00".($row[0]+1), -2);
-
- $filebonprev = $ref;
-
- /*
- * Creation du bon de prelevement
- *
- */
-
- $sql = "INSERT INTO ".MAIN_DB_PREFIX."prelevement_bons (ref,datec)";
- $sql .= " VALUES ('".$ref."',now())";
-
- $resql = $this->db->query($sql);
+ $result = $this->AddLigne($ligne_id, $client_id, $client_nom,
+ $amount, $code_banque, $code_guichet, $number);
- if ($resql)
- {
- $prev_id = $this->db->last_insert_id(MAIN_DB_PREFIX."prelevement_bons");
-
- $bonprev = new BonPrelevement($this->db, DOL_DATA_ROOT."/prelevement/bon/".$filebonprev);
- $bonprev->id = $prev_id;
- }
- else
- {
- $error++;
- dolibarr_syslog("Erreur création du bon de prelevement");
- }
-
- }
-
- /*
- *
- *
- *
- */
- if (!$error)
- {
- dolibarr_syslog("Début génération des paiements");
- dolibarr_syslog("Nombre de factures ".sizeof($factures_prev));
-
- if (sizeof($factures_prev) > 0)
- {
- foreach ($factures_prev as $fac)
- {
- $fact = new Facture($this->db);
- $fact->fetch($fac[0]);
-
- $pai = new Paiement($this->db);
-
- $pai->amounts = array();
- $pai->amounts[$fac[0]] = $fact->total_ttc;
- $pai->datepaye = $this->db->idate($datetimeprev);
- $pai->paiementid = 3; // prélèvement
- $pai->num_paiement = $ref;
-
- if ($pai->create($user, 1) == -1) // on appelle en no_commit
- {
- $error++;
- dolibarr_syslog("Erreur creation paiement facture ".$fac[0]);
- }
- else
- {
- /*
- * Validation du paiement
- */
- $pai->valide();
-
- /*
- * Ajout d'une ligne de prélèvement
- *
- *
- * $fac[3] : banque
- * $fac[4] : guichet
- * $fac[5] : number
- * $fac[6] : cle rib
- * $fac[7] : amount
- * $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]);
- if ($ri <> 0)
- {
- $error++;
- }
-
- /*
- * Mise à jour des demandes
- *
- */
- $sql = "UPDATE ".MAIN_DB_PREFIX."prelevement_facture_demande";
- $sql .= " SET traite = 1";
- $sql .= ", date_traite=now()";
- $sql .= ", fk_prelevement_bons = ".$prev_id;
- $sql .= " WHERE rowid=".$fac[1];
-
- if ($this->db->query($sql))
- {
-
- }
- else
- {
- $error++;
- dolibarr_syslog("Erreur mise a jour des demandes");
- dolibarr_syslog($this->db->error());
- }
-
- }
- }
- }
-
- dolibarr_syslog("Fin des paiements");
- }
-
- if (!$error)
- {
- /*
- * Bon de Prelevement
- *
- *
- */
-
- dolibarr_syslog("Debut prelevement");
- dolibarr_syslog("Nombre de factures ".sizeof($factures_prev));
-
- if (sizeof($factures_prev) > 0)
- {
- $bonprev->date_echeance = $datetimeprev;
- $bonprev->reference_remise = $ref;
-
-
- $bonprev->numero_national_emetteur = PRELEVEMENT_NUMERO_NATIONAL_EMETTEUR;
- $bonprev->raison_sociale = PRELEVEMENT_RAISON_SOCIALE;
-
- $bonprev->emetteur_code_etablissement = PRELEVEMENT_CODE_BANQUE;
- $bonprev->emetteur_code_guichet = PRELEVEMENT_CODE_GUICHET;
- $bonprev->emetteur_numero_compte = PRELEVEMENT_NUMERO_COMPTE;
-
-
- $bonprev->factures = $factures_prev_id;
-
- $bonprev->generate();
- }
- dolibarr_syslog( $filebonprev ) ;
- dolibarr_syslog("Fin prelevement");
- }
-
- /*
- * Mise à jour du total
- *
- */
-
- $sql = "UPDATE ".MAIN_DB_PREFIX."prelevement_bons";
- $sql .= " SET amount = ".ereg_replace(",",".",$bonprev->total);
- $sql .= " WHERE rowid = ".$prev_id;
-
- if (!$this->db->query($sql))
- {
- $error++;
- dolibarr_syslog("Erreur mise à jour du total");
- dolibarr_syslog($sql);
- }
-
- /*
- * Rollback ou Commit
- *
- */
- if (!$error)
- {
- $this->db->query("COMMIT");
- dolibarr_syslog("COMMIT");
- }
- else
- {
- $this->db->query("ROLLBAK");
- dolibarr_syslog("ROLLBACK");
- }
- }
- }
- /*
- *
- *
- */
- function DeleteNotificationById($rowid)
- {
- $result = 0;
+ 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.")";
- $sql = "DELETE FROM ".MAIN_DB_PREFIX."prelevement_notifications ";
- $sql .= " WHERE rowid = '".$rowid."';";
+ 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");
+ }
- if ($this->db->query($sql))
- {
- return 0;
- }
- else
- {
- return -1;
- }
- }
- /*
- *
- */
- function DeleteNotification($user, $action)
- {
- $result = 0;
+ return $result;
- $sql = "DELETE FROM ".MAIN_DB_PREFIX."prelevement_notifications ";
- $sql .= " WHERE fk_user = '".$user."' AND action = '".$action."';";
+ }
- if ($this->db->query($sql))
- {
- return 0;
- }
- else
- {
- return -1;
- }
- }
- /*
- *
- *
- */
- function AddNotification($user, $action)
- {
- $result = 0;
-
- if ($this->DeleteNotification($user, $action) == 0)
- {
-
- $sql = "INSERT INTO ".MAIN_DB_PREFIX."prelevement_notifications ";
- $sql .= " (fk_user, action )";
- $sql .= " VALUES ('".$user."','".$action."');";
-
- if ($this->db->query($sql))
- {
- $result = 0;
- }
- else
- {
- $result = -1;
- dolibarr_syslog("BonPrelevement::AddNotification Erreur $result");
- }
- }
-
- return $result;
- }
- /**
- * Génération d'un bon de prélèvement
- *
- */
- function Generate()
- {
- $result = -1;
- /*
- * En-tete Emetteur
+ /**
+ *
+ *
*/
+ function AddLigne(&$ligne_id, $client_id, $client_nom, $amount, $code_banque, $code_guichet, $number)
+ {
+ $result = -1;
+ $concat = 0;
- $this->EnregEmetteur();
+ 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."'";
- /*
- * Lignes
+ 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(MAIN_DB_PREFIX."prelevement_lignes");
+ $result = 0;
+ }
+ else
+ {
+ dolibarr_syslog("BonPrelevement::AddLigne Erreur -2");
+ $result = -2;
+ }
+
+ }
+
+ return $result;
+ }
+
+ /**
+ *
+ *
*/
- $this->total = 0;
+ function ReadError($error)
+ {
+ $errors = array();
- $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;
+ $errors[1027] = "Date invalide";
- $i = 0;
+ return $errors[abs($error)];
+ }
- 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();
- if ($fac->client->bank_account->verif()) {
- $this->total = $this->total + $fac->total_ttc;
- $this->EnregDestinataire($fac);
- }else{
- print $fac->client->bank_account->error_message;
- print $fac->client->nom; }
- }
- */
-
- /*
- * Pied de page total
+ /**
+ *
+ *
*/
+ function Fetch($rowid)
+ {
+ $sql = "SELECT p.rowid, p.ref, p.amount, p.note, p.credite";
+ $sql .= ",".$this->db->pdate("p.datec")." as dc";
+ $sql .= ",".$this->db->pdate("p.date_trans")." as date_trans";
+ $sql .= " , method_trans, fk_user_trans";
+ $sql .= ",".$this->db->pdate("p.date_credit")." as date_credit";
+ $sql .= " , fk_user_credit";
+ $sql .= " , statut";
+ $sql .= " FROM ".MAIN_DB_PREFIX."prelevement_bons as p";
+
+ $sql .= " WHERE p.rowid=".$rowid;
+
+ $result=$this->db->query($sql);
+ if ($result)
+ {
+ if ($this->db->num_rows($result))
+ {
+ $obj = $this->db->fetch_object();
+
+ $this->id = $obj->rowid;
+ $this->ref = $obj->ref;
+ $this->amount = $obj->amount;
+ $this->note = stripslashes($obj->note);
+ $this->datec = $obj->dc;
+ $this->credite = $obj->credite;
+
+ $this->date_trans = $obj->date_trans;
+ $this->method_trans = $obj->method_trans;
+ $this->user_trans = $obj->fk_user_trans;
+
+ $this->date_credit = $obj->date_credit;
+ $this->user_credit = $obj->fk_user_credit;
+
+ $this->statut = $obj->statut;
+
+ $this->_fetched = 1;
+
+ return 0;
+ }
+ else
+ {
+ dolibarr_syslog("BonPrelevement::Fetch Erreur aucune ligne retournée");
+ return -1;
+ }
+ }
+ else
+ {
+ dolibarr_syslog("BonPrelevement::Fetch Erreur ");
+ dolibarr_syslog($sql);
+ return -2;
+ }
+ }
+
+ /**
+ *
+ *
+ */
+ function set_credite()
+ {
+ $error == 0;
+
+ if ($this->db->begin())
+ {
+ $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-prelevement::set_credite Erreur 1");
+ $error++;
+ }
+
+ if ($error == 0)
+ {
+ $facs = array();
+ $facs = $this->_get_list_factures();
+
+ for ($i = 0 ; $i < sizeof($facs) ; $i++)
+ {
+ $fac = new Facture($this->db);
+
+ /* Tag la facture comme impayée */
+ dolibarr_syslog("BonPrelevement::set_credite set_payed fac ".$facs[$i]);
+ $fac->set_payed($facs[$i]);
+ }
+ }
+
+ if ($error == 0)
+ {
+
+ $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("BonPrelevement::set_credite Erreur 1");
+ $error++;
+ }
+ }
+
+ /*
+ * Fin de la procédure
+ *
+ */
+ if ($error == 0)
+ {
+ $this->db->commit();
+ return 0;
+ }
+ else
+ {
+
+ $this->db->rollback();
+ dolibarr_syslog("BonPrelevement::set_credite ROLLBACK ");
+
+ return -1;
+ }
+
+
+ }
+ else
+ {
+
+ dolibarr_syslog("BonPrelevement::set_credite Ouverture transaction SQL impossible ");
+ return -2;
+ }
+ }
+
+ /**
+ *
+ *
+ */
+ function set_infocredit($user, $date)
+ {
+ $error == 0;
+
+ if ($this->_fetched == 1)
+ {
+ if ($date >= $this->date_trans)
+ {
+ if ($this->db->begin())
+ {
+ $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;
+ $sql .= " AND statut = 1";
+
+ if ($this->db->query($sql))
+ {
+ $subject = "Crédit prélèvement ".$this->ref." à la banque";
+ $message = "Le bon de prélèvement ".$this->ref;
+ $message .= " a été crédité par la banque.\n";
+ $message .= "Date crédit : ".strftime("%A %e %B %Y", $date);
+
+ $this->Notify($user, "cr", $subject, $message);
+ }
+ else
+ {
+ dolibarr_syslog("BonPrelevement::set_infocredit Erreur 1");
+ $error++;
+ }
+
+ /*
+ * Fin de la procédure
+ *
+ */
+ if ($error == 0)
+ {
+ $this->db->commit();
+ return 0;
+ }
+ else
+ {
+ $this->db->rollback();
+ dolibarr_syslog("bon-prelevment::set_infocredit ROLLBACK ");
+ return -1;
+ }
+ }
+ else
+ {
+ dolibarr_syslog("bon-prelevement::set_infocredit Ouverture transaction SQL impossible ");
+ return -1025;
+ }
+ }
+ else
+ {
+ dolibarr_syslog("bon-prelevment::set_infocredit 1027 Date de credit < Date de trans ");
+ return -1027;
+ }
+ }
+ else
+ {
+ return -1026;
+ }
+ }
+
+ /**
+ *
+ *
+ */
+ function set_infotrans($user, $date, $method)
+ {
+ $error == 0;
+ dolibarr_syslog("bon-prelevement::set_infotrans Start",LOG_INFO);
+ if ($this->db->begin())
+ {
+ $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";
+
+ if ($this->db->query($sql))
+ {
+ $this->method_trans = $method;
+
+ $subject = "Transmission du prélèvement ".$this->ref." à la banque";
+ $message = "Le bon de prélèvement ".$this->ref;
+ $message .= " a été transmis à la banque par ".$user->prenom. " ".$user->nom;
+ $message .= "\n\n";
+ $message .= "\nMontant : ".price($this->amount);
+ $message .= "\nMéthode : ".$this->methodes_trans[$this->method_trans];
+ $message .= "\nDate : ".strftime("%A %e %B %Y", $date);
+
+ $this->Notify($user,"tr", $subject, $message, 1);
+ }
+ else
+ {
+ dolibarr_syslog("bon-prelevement::set_infotrans Erreur 1", LOG_ERR);
+ dolibarr_syslog($this->db->error());
+ $error++;
+ }
+
+ /*
+ * Fin de la procédure
+ *
+ */
+ if ($error == 0)
+ {
+ $this->db->commit();
+ return 0;
+ }
+ else
+ {
+ $this->db->rollback();
+ dolibarr_syslog("BonPrelevement::set_infotrans ROLLBACK", LOG_ERR);
+
+ return -1;
+ }
+ }
+ else
+ {
+
+ dolibarr_syslog("BonPrelevement::set_infotrans Ouverture transaction SQL impossible", LOG_CRIT);
+ return -2;
+ }
+ }
+
+ /**
+ *
+ *
+ */
+ function Notify($user, $action, $subject, $message, $joinfile=0)
+ {
+ $message .= "\n\n--\n";
+ $message .= "Ceci est un message automatique envoyé par Dolibarr";
+
+ $sql = "SELECT u.name, u.firstname, u.email";
+ $sql .= " FROM ".MAIN_DB_PREFIX."user as u";
+ $sql .= " , ".MAIN_DB_PREFIX."prelevement_notifications as pn";
+ $sql .= " WHERE pn.action ='".$action."'";
+ $sql .= " AND u.rowid = pn.fk_user;";
+
+ $resql = $this->db->query($sql);
+ if ($resql)
+ {
+ $num = $this->db->num_rows($resql);
+ $i = 0;
+ while ($i < $num)
+ {
+ $obj = $this->db->fetch_object($resql);
+
+ require_once(DOL_DOCUMENT_ROOT."/lib/CMailFile.class.php");
+
+ $sendto = $obj->firstname . " " .$obj->name . "<".$obj->email.">";
+ $from = $user->prenom . " " .$user->nom . "<".$user->email.">";
+ $arr_file = array();
+ $arr_mime = array();
+ $arr_name = array();
+ if ($joinfile == 1)
+ {
+ $arr_file = array(DOL_DATA_ROOT.'/prelevement/bon/'.$this->ref.'.ps');
+ $arr_mime = array("application/ps");
+ $arr_name = array($this->ref.".ps");
+ }
+
+ $mailfile = new CMailFile($subject,$sendto,$from,$message,$arr_file,$arr_mime,$arr_name);
+
+ $result=$mailfile->sendfile();
+
+ $i++;
+ }
+ $this->db->free($resql);
+ }
+ }
+
+ /**
+ * \brief Recupére la liste des factures concernées
+ */
+ function _get_list_factures()
+ {
+ $arr = array();
+
+ /*
+ * Renvoie toutes les factures présente
+ * dans un bon de prélèvement
+ */
+ $sql = "SELECT fk_facture";
+ $sql .= " FROM ".MAIN_DB_PREFIX."prelevement_bons as p";
+ $sql .= " , ".MAIN_DB_PREFIX."prelevement_lignes as pl";
+ $sql .= " , ".MAIN_DB_PREFIX."prelevement_facture as pf";
+ $sql .= " WHERE pf.fk_prelevement_lignes = pl.rowid";
+ $sql .= " AND pl.fk_prelevement_bons = p.rowid";
+ $sql .= " AND p.rowid=".$this->id;
+
+ $resql=$this->db->query($sql);
+ if ($resql)
+ {
+ $num = $this->db->num_rows($resql);
+
+ if ($num)
+ {
+ $i = 0;
+ while ($i < $num)
+ {
+ $row = $this->db->fetch_row($resql);
+ $arr[$i] = $row[0];
+ $i++;
+ }
+ }
+ $this->db->free($resql);
+ }
+ else
+ {
+ dolibarr_syslog("Bon-Prelevement::_get_list_factures Erreur");
+ }
+
+ return $arr;
+ }
+
+ /**
+ *
+ *
+ */
+ function SommeAPrelever()
+ {
+ $sql = "SELECT sum(f.total_ttc)";
+ $sql .= " FROM ".MAIN_DB_PREFIX."facture as f";
+ $sql .= " , ".MAIN_DB_PREFIX."prelevement_facture_demande as pfd";
+
+ $sql .= " WHERE f.fk_statut = 1";
+ $sql .= " AND f.rowid = pfd.fk_facture";
+ $sql .= " AND f.paye = 0";
+ $sql .= " AND pfd.traite = 0";
+ $sql .= " AND f.total_ttc > 0";
+ $sql .= " AND f.fk_mode_reglement = 3";
+
+ $resql = $this->db->query($sql);
+
+ if ( $resql )
+ {
+ $row = $this->db->fetch_row($resql);
+
+ return $row[0];
+
+ $this->db->free($resql);
+ }
+ else
+ {
+ $error = 1;
+ dolibarr_syslog("BonPrelevement::SommeAPrelever Erreur -1");
+ dolibarr_syslog($this->db->error());
+ }
+ }
+
+ /*
+ *
+ *
+ */
+ function NbFactureAPrelever($banque=0,$agence=0)
+ {
+ $sql = "SELECT count(f.total_ttc)";
+ $sql .= " FROM ".MAIN_DB_PREFIX."facture as f";
+ $sql .= " , ".MAIN_DB_PREFIX."prelevement_facture_demande as pfd";
+ $sql .= " , ".MAIN_DB_PREFIX."societe_rib as sr";
+
+ $sql .= " WHERE f.fk_statut = 1";
+ $sql .= " AND f.rowid = pfd.fk_facture";
+ $sql .= " AND f.fk_soc = sr.fk_soc";
+ $sql .= " AND f.paye = 0";
+ $sql .= " AND pfd.traite = 0";
+ $sql .= " AND f.total_ttc > 0";
+ $sql .= " AND f.fk_mode_reglement = 3";
+
+ if ($banque == 1)
+ {
+ $sql .= " AND sr.code_banque = '".PRELEVEMENT_CODE_BANQUE."'";
+ }
+
+ if ($agence == 1)
+ {
+ $sql .= " AND sr.code_guichet = '".PRELEVEMENT_CODE_GUICHET."'";
+ }
+
+ $resql = $this->db->query($sql);
+
+ if ( $resql )
+ {
+ $row = $this->db->fetch_row($resql);
+
+ return $row[0];
+
+ $this->db->free($resql);
+ }
+ else
+ {
+ $error = 1;
+ dolibarr_syslog("BonPrelevement::SommeAPrelever Erreur -1");
+ dolibarr_syslog($this->db->error());
+ }
+ }
+
+ /**
+ * \brief Cree prelevement
+ *
+ */
+ function Create($banque=0, $guichet=0)
+ {
+ global $conf;
+
+ dolibarr_syslog("BonPrelevement::Create");
+
+ require_once (DOL_DOCUMENT_ROOT."/bon-prelevement.class.php");
+ require_once (DOL_DOCUMENT_ROOT."/facture.class.php");
+ require_once (DOL_DOCUMENT_ROOT."/societe.class.php");
+ require_once (DOL_DOCUMENT_ROOT."/paiement.class.php");
+
+ $error = 0;
+
+ $datetimeprev = time();
+
+ $month = strftime("%m", $datetimeprev);
+ $year = strftime("%Y", $datetimeprev);
+
+ $user = new user($this->db, PRELEVEMENT_USER);
+
+ /**
+ * Lectures des factures
+ */
+ $factures = array();
+ $factures_prev = array();
+
+ if (!$error)
+ {
+
+ $sql = "SELECT f.rowid, pfd.rowid as pfdrowid, f.fk_soc";
+ $sql .= ", pfd.code_banque, pfd.code_guichet, pfd.number, pfd.cle_rib";
+ $sql .= ", pfd.amount";
+ $sql .= ", s.nom";
+ $sql .= " FROM ".MAIN_DB_PREFIX."facture as f";
+ $sql .= " , ".MAIN_DB_PREFIX."societe as s";
+ $sql .= " , ".MAIN_DB_PREFIX."prelevement_facture_demande as pfd";
+ $sql .= " , ".MAIN_DB_PREFIX."societe_rib as sr";
+
+ $sql .= " WHERE f.rowid = pfd.fk_facture";
+ $sql .= " AND s.idp = f.fk_soc";
+ $sql .= " AND s.idp = sr.fk_soc";
+ $sql .= " AND f.fk_statut = 1";
+ $sql .= " AND f.paye = 0";
+ $sql .= " AND pfd.traite = 0";
+ $sql .= " AND f.total_ttc > 0";
+ $sql .= " AND f.fk_mode_reglement = 3"; // Mode prélèvement
+
+ if ($banque == 1)
+ {
+ $sql .= " AND sr.code_banque = '".PRELEVEMENT_CODE_BANQUE."'";
+ }
+ if ($agence == 1)
+ {
+ $sql .= " AND sr.code_guichet = '".PRELEVEMENT_CODE_GUICHET."'";
+ }
+
+ $resql = $this->db->query($sql);
+
+ if ($resql)
+ {
+ $num = $this->db->num_rows($resql);
+ $i = 0;
+
+ while ($i < $num)
+ {
+ $row = $this->db->fetch_row($resql);
+ $factures[$i] = $row;
+ $i++;
+ }
+ $this->db->free($resql);
+ dolibarr_syslog("$i factures à prélever");
+ }
+ else
+ {
+ $error = 1;
+ dolibarr_syslog("Erreur -1");
+ dolibarr_syslog($this->db->error());
+ }
+ }
+
+ /*
+ *
+ * Verif des clients
+ *
+ */
+
+ if (! $error)
+ {
+ /*
+ * Vérification des RIB
+ *
+ */
+ $i = 0;
+ dolibarr_syslog("Début vérification des RIB");
+
+ if (sizeof($factures) > 0)
+ {
+ foreach ($factures as $fac)
+ {
+ $fact = new Facture($this->db);
+
+ if ($fact->fetch($fac[0]) == 1)
+ {
+ $soc = new Societe($this->db);
+ if ($soc->fetch($fact->socidp) == 1)
+ {
+ if ($soc->verif_rib() == 1)
+ {
+ $factures_prev[$i] = $fac;
+ /* second tableau necessaire pour bon-prelevement */
+ $factures_prev_id[$i] = $fac[0];
+ $i++;
+ }
+ else
+ {
+ dolibarr_syslog("Erreur de RIB societe $fact->socidp $soc->nom");
+ }
+ }
+ else
+ {
+ dolibarr_syslog("Impossible de lire la société");
+ }
+ }
+ else
+ {
+ dolibarr_syslog("Impossible de lire la facture");
+ }
+ }
+ }
+ else
+ {
+ dolibarr_syslog("Aucune factures a traiter");
+ }
+ }
+
+ /*
+ *
+ *
+ */
+
+ dolibarr_syslog(sizeof($factures_prev)." factures seront prélevées");
+
+ if (sizeof($factures_prev) > 0)
+ {
+ /*
+ * Ouverture de la transaction
+ *
+ */
+ $result=$this->db->begin();
+ if ($result <= 0)
+ {
+ $error++;
+ }
+
+ /*
+ * Traitements
+ *
+ */
+ if (!$error)
+ {
+ $ref = "T".substr($year,-2).$month;
+
+ $sql = "SELECT count(*) FROM ".MAIN_DB_PREFIX."prelevement_bons";
+ $sql .= " WHERE ref LIKE '$ref%'";
+
+ $resql = $this->db->query($sql);
+
+ if ($resql)
+ {
+ $row = $this->db->fetch_row($resql);
+ }
+ else
+ {
+ $error++;
+ dolibarr_syslog("Erreur recherche reference");
+ }
+
+ $ref = $ref . substr("00".($row[0]+1), -2);
+
+ $filebonprev = $ref;
+
+ /*
+ * Creation du bon de prelevement
+ *
+ */
+
+ $sql = "INSERT INTO ".MAIN_DB_PREFIX."prelevement_bons (ref,datec)";
+ $sql .= " VALUES ('".$ref."',now())";
+
+ $resql = $this->db->query($sql);
+
+ if ($resql)
+ {
+ $prev_id = $this->db->last_insert_id(MAIN_DB_PREFIX."prelevement_bons");
+
+ $dir=$conf->prelevement->dir_output.'/bon';
+ $file=$filebonprev;
+ if (! is_dir($dir)) create_exdir($dir);
+
+ $bonprev = new BonPrelevement($this->db, $dir."/".$file);
+ $bonprev->id = $prev_id;
+ }
+ else
+ {
+ $error++;
+ dolibarr_syslog("Erreur création du bon de prelevement");
+ }
+ }
+
+ /*
+ *
+ *
+ */
+ if (!$error)
+ {
+ dolibarr_syslog("Début génération des paiements");
+ dolibarr_syslog("Nombre de factures ".sizeof($factures_prev));
+
+ if (sizeof($factures_prev) > 0)
+ {
+ foreach ($factures_prev as $fac)
+ {
+ $fact = new Facture($this->db);
+ $fact->fetch($fac[0]);
+
+ $pai = new Paiement($this->db);
+
+ $pai->amounts = array();
+ $pai->amounts[$fac[0]] = $fact->total_ttc;
+ $pai->datepaye = $this->db->idate($datetimeprev);
+ $pai->paiementid = 3; // prélèvement
+ $pai->num_paiement = $ref;
+
+ if ($pai->create($user, 1) == -1) // on appelle en no_commit
+ {
+ $error++;
+ dolibarr_syslog("Erreur creation paiement facture ".$fac[0]);
+ }
+ else
+ {
+ /*
+ * Validation du paiement
+ */
+ $pai->valide();
+
+ /*
+ * Ajout d'une ligne de prélèvement
+ *
+ *
+ * $fac[3] : banque
+ * $fac[4] : guichet
+ * $fac[5] : number
+ * $fac[6] : cle rib
+ * $fac[7] : amount
+ * $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]);
+ if ($ri <> 0)
+ {
+ $error++;
+ }
+
+ /*
+ * Mise à jour des demandes
+ *
+ */
+ $sql = "UPDATE ".MAIN_DB_PREFIX."prelevement_facture_demande";
+ $sql .= " SET traite = 1";
+ $sql .= ", date_traite=now()";
+ $sql .= ", fk_prelevement_bons = ".$prev_id;
+ $sql .= " WHERE rowid=".$fac[1];
+
+ if ($this->db->query($sql))
+ {
+
+ }
+ else
+ {
+ $error++;
+ dolibarr_syslog("Erreur mise a jour des demandes");
+ dolibarr_syslog($this->db->error());
+ }
+
+ }
+ }
+ }
+
+ dolibarr_syslog("Fin des paiements");
+ }
+
+ if (!$error)
+ {
+ /*
+ * Bon de Prelevement
+ *
+ *
+ */
+
+ dolibarr_syslog("Debut prelevement");
+ dolibarr_syslog("Nombre de factures ".sizeof($factures_prev));
+
+ if (sizeof($factures_prev) > 0)
+ {
+ $bonprev->date_echeance = $datetimeprev;
+ $bonprev->reference_remise = $ref;
+
+ $bonprev->numero_national_emetteur = PRELEVEMENT_NUMERO_NATIONAL_EMETTEUR;
+ $bonprev->raison_sociale = PRELEVEMENT_RAISON_SOCIALE;
+
+ $bonprev->emetteur_code_etablissement = PRELEVEMENT_CODE_BANQUE;
+ $bonprev->emetteur_code_guichet = PRELEVEMENT_CODE_GUICHET;
+ $bonprev->emetteur_numero_compte = PRELEVEMENT_NUMERO_COMPTE;
+
+
+ $bonprev->factures = $factures_prev_id;
+
+ $bonprev->generate();
+ }
+ dolibarr_syslog( $filebonprev ) ;
+ dolibarr_syslog("Fin prelevement");
+ }
+
+ /*
+ * Mise à jour du total
+ *
+ */
+
+ $sql = "UPDATE ".MAIN_DB_PREFIX."prelevement_bons";
+ $sql .= " SET amount = ".ereg_replace(",",".",$bonprev->total);
+ $sql .= " WHERE rowid = ".$prev_id;
+
+ $resql=$this->db->query($sql);
+ if (! $resql)
+ {
+ $error++;
+ dolibarr_syslog("Erreur mise à jour du total - $sql");
+ }
+
+ /*
+ * Rollback ou Commit
+ *
+ */
+ if (!$error)
+ {
+ $this->db->commit();
+ dolibarr_syslog("COMMIT");
+ }
+ else
+ {
+ $this->db->rollback();
+ dolibarr_syslog("ROLLBACK");
+ }
+ }
+ }
+
+ /**
+ *
+ *
+ */
+ function DeleteNotificationById($rowid)
+ {
+ $result = 0;
+
+ $sql = "DELETE FROM ".MAIN_DB_PREFIX."prelevement_notifications ";
+ $sql .= " WHERE rowid = '".$rowid."';";
+
+ if ($this->db->query($sql))
+ {
+ return 0;
+ }
+ else
+ {
+ return -1;
+ }
+ }
+
+ /**
+ *
+ *
+ */
+ function DeleteNotification($user, $action)
+ {
+ $result = 0;
+
+ $sql = "DELETE FROM ".MAIN_DB_PREFIX."prelevement_notifications ";
+ $sql .= " WHERE fk_user = '".$user."' AND action = '".$action."';";
+
+ if ($this->db->query($sql))
+ {
+ return 0;
+ }
+ else
+ {
+ return -1;
+ }
+ }
+
+ /*
+ *
+ *
+ */
+ function AddNotification($user, $action)
+ {
+ $result = 0;
+
+ if ($this->DeleteNotification($user, $action) == 0)
+ {
+
+ $sql = "INSERT INTO ".MAIN_DB_PREFIX."prelevement_notifications ";
+ $sql .= " (fk_user, action )";
+ $sql .= " VALUES ('".$user."','".$action."');";
+
+ if ($this->db->query($sql))
+ {
+ $result = 0;
+ }
+ else
+ {
+ $result = -1;
+ dolibarr_syslog("BonPrelevement::AddNotification Erreur $result");
+ }
+ }
+
+ return $result;
+ }
+
+ /**
+ * Génération d'un bon de prélèvement
+ *
+ */
+ function Generate()
+ {
+ $result = -1;
+
+ $this->file = fopen ($this->filename,"w");
+
+
+ /*
+ * En-tete Emetteur
+ */
+ $this->EnregEmetteur();
+
+ /*
+ * 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->EnregTotal($this->total);
+ $this->EnregDestinataire($row[0],
+ $row[1],
+ $row[2],
+ $row[3],
+ $row[4],
+ $row[5]);
- fclose($this->file);
+ $this->total = $this->total + $row[5];
- return $result;
- }
+ $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();
+ if ($fac->client->bank_account->verif()) {
+ $this->total = $this->total + $fac->total_ttc;
+ $this->EnregDestinataire($fac);
+ }else{
+ print $fac->client->bank_account->error_message;
+ print $fac->client->nom; }
+ }
+ */
+ /*
+ * Pied de page total
+ */
- /*
- * Enregistrements destinataires
- *
- *
- */
+ $this->EnregTotal($this->total);
- function EnregDestinataire($rowid, $client_nom, $rib_banque, $rib_guichet, $rib_number, $amount)
- {
- fputs ($this->file, "06");
- fputs ($this->file, "08"); // Prélèvement ordinaire
+ fclose($this->file);
- fputs ($this->file, " "); // Zone Réservée B2
+ return $result;
+ }
- fputs ($this->file, $this->numero_national_emetteur); // Numéro National d'emmetteur B3
- // Date d'échéance C1
+ /**
+ * 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, " ");
- 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, " "); // Zone Réservée B2
- fputs ($this->file, substr($client->nom. " ",0,24));
+ fputs ($this->file, $this->numero_national_emetteur); // Numéro National d'emmetteur B3
- // Domiciliation facultative D1
+ // Date d'échéance C1
- fputs ($this->file, substr(" ",0,24));
+ fputs ($this->file, " ");
+ fputs ($this->file, strftime("%d%m", $this->date_echeance));
+ fputs ($this->file, substr(strftime("%y", $this->date_echeance),1));
- // Zone Réservée D2
+ // Raison Sociale Destinataire C2
- fputs ($this->file, substr(" ",0,8));
-
- // Code Guichet D3
+ fputs ($this->file, substr($client->nom. " ",0,24));
- fputs ($this->file, $rib_guichet);
+ // Domiciliation facultative D1
- // Numero de compte D4
+ fputs ($this->file, substr(" ",0,24));
- fputs ($this->file, substr("000000000000000".$rib_number, -11));
+ // Zone Réservée D2
- // Zone E Montant
-
- $montant = (round($amount,2) * 100);
+ fputs ($this->file, substr(" ",0,8));
- fputs ($this->file, substr("000000000000000".$montant, -16));
+ // Code Guichet D3
- // Libellé F
-
- fputs ($this->file, substr("*".$this->ref.$rowid." ",0,13));
- fputs ($this->file, substr(" ",0,18));
+ fputs ($this->file, $rib_guichet);
- // Code établissement G1
+ // Numero de compte D4
- fputs ($this->file, $rib_banque);
+ fputs ($this->file, substr("000000000000000".$rib_number, -11));
- // Zone Réservée G2
-
- fputs ($this->file, substr(" ",0,5));
+ // Zone E Montant
- fputs ($this->file, "\n");
- }
+ $montant = (round($amount,2) * 100);
+ fputs ($this->file, substr("000000000000000".$montant, -16));
- /*
- * Enregistrements destinataires
- *
- *
- */
+ // Libellé F
- function EnregDestinataireVersion1($fac)
- {
- fputs ($this->file, "06");
- fputs ($this->file, "08"); // Prélèvement ordinaire
+ fputs ($this->file, substr("*".$this->ref.$rowid." ",0,13));
+ fputs ($this->file, substr(" ",0,18));
- fputs ($this->file, " "); // Zone Réservée B2
+ // Code établissement G1
- fputs ($this->file, $this->numero_national_emetteur); // Numéro National d'emmetteur B3
+ fputs ($this->file, $rib_banque);
- // Date d'échéance C1
+ // Zone Réservée G2
- 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(" ",0,5));
- fputs ($this->file, substr($fac->client->nom. " ",0,24));
+ fputs ($this->file, "\n");
+ }
- // Reference de la remise créancier D1
- fputs ($this->file, substr(" ",0,24));
+ /**
+ * Enregistrements destinataires
+ *
+ *
+ */
+ function EnregDestinataireVersion1($fac)
+ {
+ fputs ($this->file, "06");
+ fputs ($this->file, "08"); // Prélèvement ordinaire
- // Zone Réservée D2
+ fputs ($this->file, " "); // Zone Réservée B2
- fputs ($this->file, substr(" ",0,8));
-
- // Code Guichet D3
+ fputs ($this->file, $this->numero_national_emetteur); // Numéro National d'emmetteur B3
- fputs ($this->file, $fac->client->bank_account->code_guichet);
+ // Date d'échéance C1
- // Numero de compte D4
+ fputs ($this->file, " ");
+ fputs ($this->file, strftime("%d%m", $this->date_echeance));
+ fputs ($this->file, substr(strftime("%y", $this->date_echeance),1));
- fputs ($this->file, substr("000000000000000".$fac->client->bank_account->number, -11));
+ // Raison Sociale Destinataire C2
- // Zone E Montant
-
- $montant = (round($fac->total_ttc,2) * 100);
+ fputs ($this->file, substr($fac->client->nom. " ",0,24));
- fputs ($this->file, substr("000000000000000".$montant, -16));
+ // Reference de la remise créancier D1
- // Libellé F
-
- fputs ($this->file, substr("*".$fac->ref." ",0,13));
- fputs ($this->file, substr(" ",0,18));
+ fputs ($this->file, substr(" ",0,24));
- // Code établissement G1
+ // Zone Réservée D2
- fputs ($this->file, $fac->client->bank_account->code_banque);
+ fputs ($this->file, substr(" ",0,8));
- // Zone Réservée G2
-
- fputs ($this->file, substr(" ",0,5));
+ // Code Guichet D3
- fputs ($this->file, "\n");
- }
+ fputs ($this->file, $fac->client->bank_account->code_guichet);
- /*
- *
- *
- */
- function EnregEmetteur()
- {
- fputs ($this->file, "03");
- fputs ($this->file, "08"); // Prélèvement ordinaire
+ // Numero de compte D4
- fputs ($this->file, " "); // Zone Réservée B2
+ fputs ($this->file, substr("000000000000000".$fac->client->bank_account->number, -11));
- fputs ($this->file, $this->numero_national_emetteur); // Numéro National d'emmetteur B3
+ // Zone E Montant
- // Date d'échéance C1
+ $montant = (round($fac->total_ttc,2) * 100);
- fputs ($this->file, " ");
- fputs ($this->file, strftime("%d%m", $this->date_echeance));
- fputs ($this->file, substr(strftime("%y", $this->date_echeance),1));
-
- // Raison Sociale C2
+ fputs ($this->file, substr("000000000000000".$montant, -16));
- fputs ($this->file, substr($this->raison_sociale. " ",0,24));
+ // Libellé F
- // Reference de la remise créancier D1 sur 7 caractéres
+ fputs ($this->file, substr("*".$fac->ref." ",0,13));
+ fputs ($this->file, substr(" ",0,18));
- fputs ($this->file, substr($this->reference_remise. " ",0,7));
+ // Code établissement G1
- // Zone Réservée D1-2
-
- fputs ($this->file, substr(" ",0,17));
+ fputs ($this->file, $fac->client->bank_account->code_banque);
- // Zone Réservée D2
+ // Zone Réservée G2
- fputs ($this->file, substr(" ",0,2));
- fputs ($this->file, "E");
- fputs ($this->file, substr(" ",0,5));
-
- // Code Guichet D3
+ fputs ($this->file, substr(" ",0,5));
- fputs ($this->file, $this->emetteur_code_guichet);
+ fputs ($this->file, "\n");
+ }
- // Numero de compte D4
+ /**
+ *
+ *
+ */
+ function EnregEmetteur()
+ {
+ fputs ($this->file, "03");
+ fputs ($this->file, "08"); // Prélèvement ordinaire
- fputs ($this->file, substr("000000000000000".$this->emetteur_numero_compte, -11));
+ fputs ($this->file, " "); // Zone Réservée B2
- // Zone Réservée E
-
- fputs ($this->file, substr(" ",0,16));
+ fputs ($this->file, $this->numero_national_emetteur); // Numéro National d'emmetteur B3
- // Zone Réservée F
-
- fputs ($this->file, substr(" ",0,31));
+ // Date d'échéance C1
- // Code établissement
+ fputs ($this->file, " ");
+ fputs ($this->file, strftime("%d%m", $this->date_echeance));
+ fputs ($this->file, substr(strftime("%y", $this->date_echeance),1));
- fputs ($this->file, $this->emetteur_code_etablissement);
+ // Raison Sociale C2
- // Zone Réservée G
-
- fputs ($this->file, substr(" ",0,5));
+ fputs ($this->file, substr($this->raison_sociale. " ",0,24));
- fputs ($this->file, "\n");
+ // Reference de la remise créancier D1 sur 7 caractéres
- }
+ fputs ($this->file, substr($this->reference_remise. " ",0,7));
- /*
- * Pied de page
- *
- */
+ // Zone Réservée D1-2
+ fputs ($this->file, substr(" ",0,17));
- function EnregTotal($total)
- {
- fputs ($this->file, "08");
- fputs ($this->file, "08"); // Prélèvement ordinaire
+ // Zone Réservée D2
- fputs ($this->file, " "); // Zone Réservée B2
+ fputs ($this->file, substr(" ",0,2));
+ fputs ($this->file, "E");
+ fputs ($this->file, substr(" ",0,5));
- fputs ($this->file, $this->numero_national_emetteur); // Numéro National d'emmetteur B3
+ // Code Guichet D3
- // Réservé C1
+ fputs ($this->file, $this->emetteur_code_guichet);
- fputs ($this->file, substr(" ",0,12));
+ // Numero de compte D4
-
- // Raison Sociale C2
+ fputs ($this->file, substr("000000000000000".$this->emetteur_numero_compte, -11));
- fputs ($this->file, substr(" ",0,24));
+ // Zone Réservée E
- // D1
+ fputs ($this->file, substr(" ",0,16));
- fputs ($this->file, substr(" ",0,24));
+ // Zone Réservée F
- // Zone Réservée D2
+ fputs ($this->file, substr(" ",0,31));
- fputs ($this->file, substr(" ",0,8));
-
- // Code Guichet D3
+ // Code établissement
- fputs ($this->file, substr(" ",0,5));
+ fputs ($this->file, $this->emetteur_code_etablissement);
- // Numero de compte D4
+ // Zone Réservée G
- fputs ($this->file, substr(" ",0,11));
-
- // Zone E Montant
-
- $montant = ($total * 100);
+ fputs ($this->file, substr(" ",0,5));
- fputs ($this->file, substr("000000000000000".$montant, -16));
+ fputs ($this->file, "\n");
- // Zone Réservée F
-
- fputs ($this->file, substr(" ",0,31));
+ }
- // Code établissement
+ /**
+ * Pied de page
+ *
+ */
+ function EnregTotal($total)
+ {
+ fputs ($this->file, "08");
+ fputs ($this->file, "08"); // Prélèvement ordinaire
- fputs ($this->file, substr(" ",0,5));
+ fputs ($this->file, " "); // Zone Réservée B2
- // Zone Réservée F
-
- fputs ($this->file, substr(" ",0,5));
+ fputs ($this->file, $this->numero_national_emetteur); // Numéro National d'emmetteur B3
- fputs ($this->file, "\n");
- }
+ // Réservé C1
+
+ fputs ($this->file, substr(" ",0,12));
+
+
+ // Raison Sociale C2
+
+ fputs ($this->file, substr(" ",0,24));
+
+ // D1
+
+ fputs ($this->file, substr(" ",0,24));
+
+ // Zone Réservée D2
+
+ fputs ($this->file, substr(" ",0,8));
+
+ // Code Guichet D3
+
+ fputs ($this->file, substr(" ",0,5));
+
+ // Numero de compte D4
+
+ fputs ($this->file, substr(" ",0,11));
+
+ // Zone E Montant
+
+ $montant = ($total * 100);
+
+ fputs ($this->file, substr("000000000000000".$montant, -16));
+
+ // Zone Réservée F
+
+ fputs ($this->file, substr(" ",0,31));
+
+ // Code établissement
+
+ fputs ($this->file, substr(" ",0,5));
+
+ // Zone Réservée F
+
+ fputs ($this->file, substr(" ",0,5));
+
+ fputs ($this->file, "\n");
+ }
}
+
?>
diff --git a/htdocs/compta/prelevement/bon.php b/htdocs/compta/prelevement/bon.php
index 6837a8df079..aa0b03a9127 100644
--- a/htdocs/compta/prelevement/bon.php
+++ b/htdocs/compta/prelevement/bon.php
@@ -22,10 +22,10 @@
*/
/**
- \file htdocs/compta/prelevement/bon.php
- \ingroup prelevement
- \brief Fiche aperçu du bon de prelevement
- \version $Revision$
+ \file htdocs/compta/prelevement/bon.php
+ \ingroup prelevement
+ \brief Fiche aperçu du bon de prelevement
+ \version $Revision$
*/
require("./pre.inc.php");
@@ -45,13 +45,16 @@ $head[$h][0] = DOL_URL_ROOT.'/compta/prelevement/fiche.php?id='.$_GET["id"];
$head[$h][1] = $langs->trans("Card");
$h++;
-$head[$h][0] = DOL_URL_ROOT.'/compta/prelevement/bon.php?id='.$_GET["id"];
-$head[$h][1] = $langs->trans("Bon");
-$hselected = $h;
-$h++;
+if ($conf->use_preview_tabs)
+{
+ $head[$h][0] = DOL_URL_ROOT.'/compta/prelevement/bon.php?id='.$_GET["id"];
+ $head[$h][1] = $langs->trans("Preview");
+ $hselected = $h;
+ $h++;
+}
$head[$h][0] = DOL_URL_ROOT.'/compta/prelevement/lignes.php?id='.$_GET["id"];
-$head[$h][1] = $langs->trans("Lignes");
+$head[$h][1] = $langs->trans("Lines");
$h++;
$head[$h][0] = DOL_URL_ROOT.'/compta/prelevement/factures.php?id='.$_GET["id"];
diff --git a/htdocs/compta/prelevement/bons.php b/htdocs/compta/prelevement/bons.php
index f75a202e160..5436a6bb0f3 100644
--- a/htdocs/compta/prelevement/bons.php
+++ b/htdocs/compta/prelevement/bons.php
@@ -81,7 +81,7 @@ if ($result)
print '
';
print '';
- print_liste_field_titre($langs->trans("Receipt"),"bons.php","p.ref",'','','class="liste_titre"');
+ print_liste_field_titre($langs->trans("WithdrawalReceipt"),"bons.php","p.ref",'','','class="liste_titre"');
print_liste_field_titre($langs->trans("Date"),"bons.php","p.datec","","",'class="liste_titre" align="center"');
print '| '.$langs->trans("Amount").' | ';
print '
';
diff --git a/htdocs/compta/prelevement/create.php b/htdocs/compta/prelevement/create.php
index c1ba7888a16..20044688873 100644
--- a/htdocs/compta/prelevement/create.php
+++ b/htdocs/compta/prelevement/create.php
@@ -20,21 +20,26 @@
*/
/**
- \file htdocs/compta/prelevement/create.php
- \brief Prelevement
- \version $Revision$
+ \file htdocs/compta/prelevement/create.php
+ \brief Prelevement
+ \version $Revision$
*/
require("./pre.inc.php");
-require_once DOL_DOCUMENT_ROOT."/includes/modules/modPrelevement.class.php";
+require_once(DOL_DOCUMENT_ROOT."/includes/modules/modPrelevement.class.php");
if (!$user->rights->prelevement->bons->creer)
accessforbidden();
+
+/*
+ * Actions
+ */
+
if ($_GET["action"] == 'create')
{
- $bprev = new BonPrelevement($db);
- $bprev->create($_GET["banque"],$_GET["guichet"]);
+ $bprev = new BonPrelevement($db);
+ $result=$bprev->create($_GET["banque"],$_GET["guichet"]);
}
@@ -49,42 +54,60 @@ dolibarr_fiche_head($head, $hselected, $langs->trans("StandingOrders"));
$bprev = new BonPrelevement($db);
-print '';
+$nb=$bprev->NbFactureAPrelever();
+$nb1=$bprev->NbFactureAPrelever(1);
+$nb11=$bprev->NbFactureAPrelever(1,1);
+
+print '';
print '| Nb de facture à prélever : | ';
print '';
-print $bprev->NbFactureAPrelever();
+print $nb;
print ' | Notre banque : | ';
-print $bprev->NbFactureAPrelever(1);
+print $nb1;
print ' | Notre agence : | ';
-print $bprev->NbFactureAPrelever(1,1);
+print $nb11;
print ' |
';
+
print '| Somme à prélever | ';
print '';
print price($bprev->SommeAPrelever());
-print ' |
';
+print '';
+print ' | ';
+
+print '
';
print '';
-print "
\n";
-
/*
- * Mode Liste
+ * Liste des derniers bons
*
*/
+$limit=5;
+
$sql = "SELECT p.rowid, p.ref, p.amount,".$db->pdate("p.datec")." as datec";
-$sql .= ", p.statut";
-$sql .= " FROM ".MAIN_DB_PREFIX."prelevement_bons as p";
-
-$sql .= " ORDER BY datec DESC LIMIT 2";
-
+$sql.= ", p.statut";
+$sql.= " FROM ".MAIN_DB_PREFIX."prelevement_bons as p";
+$sql.= " ORDER BY datec DESC";
+$sql.=$db->plimit($limit);
+
$result = $db->query($sql);
if ($result)
{
@@ -93,13 +116,13 @@ if ($result)
print"\n\n";
print '';
- print '| Derniers Bons | ';
+ print '
| '.$langs->trans("LastWithdrawalReceipts",$limit).' | ';
print '| '.$langs->trans("Amount").' | ';
print ' |
';
$var=True;
- while ($i < min($num,$conf->liste_limit))
+ while ($i < min($num,$limit))
{
$obj = $db->fetch_object($result);
$var=!$var;
@@ -125,7 +148,7 @@ else
/*
- * Factures
+ * Factures en attente de prélèvement
*
*/
$sql = "SELECT f.facnumber, f.rowid, s.nom, s.idp";
@@ -155,9 +178,9 @@ if ( $db->query($sql) )
$obj = $db->fetch_object();
$var=!$var;
print '| ';
- print ''.img_file().' ';
- print ''.$obj->facnumber.' | ';
- print ''.$obj->nom.' |
';
+ print ''.img_file().' '.$obj->facnumber.'';
+ print ''.img_object($langs->trans("ShowCompany"),'company').' '.$obj->nom.' | ';
+ print '';
$i++;
}
@@ -171,5 +194,5 @@ else
}
-llxFooter();
+llxFooter('$Date$ - $Revision$');
?>
diff --git a/htdocs/compta/prelevement/demandes.php b/htdocs/compta/prelevement/demandes.php
index d5c00dbee77..6b9c1381167 100644
--- a/htdocs/compta/prelevement/demandes.php
+++ b/htdocs/compta/prelevement/demandes.php
@@ -69,17 +69,14 @@ $sql .= " FROM ".MAIN_DB_PREFIX."facture as f, ".MAIN_DB_PREFIX."societe as s";
$sql .= " , ".MAIN_DB_PREFIX."prelevement_facture_demande as pfd";
$sql .= " WHERE s.idp = f.fk_soc";
$sql .= " AND pfd.traite = 0 AND pfd.fk_facture = f.rowid";
-
if (strlen(trim($_GET["search_societe"])))
{
$sql .= " AND s.nom LIKE '%".$_GET["search_societe"]."%'";
}
-
if ($socidp)
{
$sql .= " AND f.fk_soc = $socidp";
}
-
$sql .= " ORDER BY $sortfield $sortorder " . $db->plimit($conf->liste_limit+1, $offset);
if ( $db->query($sql) )
@@ -92,15 +89,13 @@ if ( $db->query($sql) )
print '';
print '';
print '| '.$langs->trans("Bill").' | '.$langs->trans("Company").' | ';
- print ''.$langs->trans("Date").' | ';
- print ''.$langs->trans("Author").' | ';
+ print ''.$langs->trans("Date").' | ';
+ print ''.$langs->trans("Author").' | ';
print '
';
print '';
@@ -113,17 +108,24 @@ if ( $db->query($sql) )
{
$obj = $db->fetch_object();
$var=!$var;
- print '| ';
- print ''.img_file().' ';
- print ''.$obj->facnumber.' | ';
- print ''.$obj->nom.' | ';
- print ''.strftime("%d %m %Y", $obj->date_demande).' | ';
+ print '
';
+
+ // Ref facture
+ print '| '.img_file().' '.$obj->facnumber.' | ';
+
+ print ''.img_object($langs->trans("ShowCompany"),'company').' '.$obj->nom.' | ';
+
+ print ''.dolibarr_print_date($obj->date_demande).' | ';
+
if (!array_key_exists($obj->fk_user_demande,$users))
{
$users[$obj->fk_user_demande] = new User($db, $obj->fk_user_demande);
$users[$obj->fk_user_demande]->fetch();
}
- print ''.$users[$obj->fk_user_demande]->fullname.' | ';
+
+ // User
+ print ''.img_object($langs->trans("ShowUser"),'user').' '.$users[$obj->fk_user_demande]->code.' | ';
+
print '
';
$i++;
}
diff --git a/htdocs/compta/prelevement/factures.php b/htdocs/compta/prelevement/factures.php
index 45e1eea64d9..a677ce1ba41 100644
--- a/htdocs/compta/prelevement/factures.php
+++ b/htdocs/compta/prelevement/factures.php
@@ -18,7 +18,6 @@
*
* $Id$
* $Source$
- *
*/
/**
@@ -29,38 +28,41 @@
*/
require("./pre.inc.php");
+require_once(DOL_DOCUMENT_ROOT."/compta/prelevement/rejet-prelevement.class.php");
+require_once(DOL_DOCUMENT_ROOT."/paiement.class.php");
-require_once DOL_DOCUMENT_ROOT."/compta/prelevement/rejet-prelevement.class.php";
-require_once DOL_DOCUMENT_ROOT."/paiement.class.php";
-require_once DOL_DOCUMENT_ROOT."/lib/dolibarrmail.class.php";
-
-/*
- * Sécurité accés client
- */
+// Sécurité accés client
if ($user->societe_id > 0) accessforbidden();
llxHeader('','Bon de prélèvement');
$h = 0;
$head[$h][0] = DOL_URL_ROOT.'/compta/prelevement/fiche.php?id='.$_GET["id"];
-$head[$h][1] = $langs->trans("Fiche");
+$head[$h][1] = $langs->trans("Card");
$h++;
+if ($conf->use_preview_tabs)
+{
+ $head[$h][0] = DOL_URL_ROOT.'/compta/prelevement/bon.php?id='.$_GET["id"];
+ $head[$h][1] = $langs->trans("Preview");
+ $h++;
+}
+
$head[$h][0] = DOL_URL_ROOT.'/compta/prelevement/lignes.php?id='.$_GET["id"];
-$head[$h][1] = $langs->trans("Lignes");
+$head[$h][1] = $langs->trans("Lines");
$h++;
$head[$h][0] = DOL_URL_ROOT.'/compta/prelevement/factures.php?id='.$_GET["id"];
-$head[$h][1] = $langs->trans("Factures");
+$head[$h][1] = $langs->trans("Bills");
$hselected = $h;
$h++;
$head[$h][0] = DOL_URL_ROOT.'/compta/prelevement/fiche-rejet.php?id='.$_GET["id"];
-$head[$h][1] = $langs->trans("Rejets");
+$head[$h][1] = $langs->trans("Rejects");
$h++;
$head[$h][0] = DOL_URL_ROOT.'/compta/prelevement/fiche-stat.php?id='.$_GET["id"];
-$head[$h][1] = $langs->trans("Statistiques");
+$head[$h][1] = $langs->trans("Statistics");
$h++;
@@ -131,9 +133,9 @@ if ($result)
print"\n\n";
print '';
print '';
- print_liste_field_titre("Facture","factures.php","p.ref",'',$urladd,'class="liste_titre"');
- print_liste_field_titre("Société","factures.php","s.nom",'',$urladd,'class="liste_titre"');
- print_liste_field_titre("Montant","factures.php","f.total_ttc","",$urladd,'class="liste_titre" align="center"');
+ print_liste_field_titre($langs->trans("Bill"),"factures.php","p.ref",'',$urladd,'class="liste_titre"');
+ print_liste_field_titre($langs->trans("Company"),"factures.php","s.nom",'',$urladd,'class="liste_titre"');
+ print_liste_field_titre($langs->trans("Amount"),"factures.php","f.total_ttc","",$urladd,'class="liste_titre" align="center"');
print '| |
';
$var=True;
@@ -202,5 +204,5 @@ else
$db->close();
-llxFooter("Dernière modification $Date$ révision $Revision$");
+llxFooter('$Date$ - $Revision$');
?>
diff --git a/htdocs/compta/prelevement/fiche-rejet.php b/htdocs/compta/prelevement/fiche-rejet.php
index 73a71a4e801..268f8bee0ce 100644
--- a/htdocs/compta/prelevement/fiche-rejet.php
+++ b/htdocs/compta/prelevement/fiche-rejet.php
@@ -1,5 +1,6 @@
+ * Copyright (C) 2005 Laurent Destailleur
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -17,42 +18,44 @@
*
* $Id$
* $Source$
- *
*/
+
require("./pre.inc.php");
+require_once(DOL_DOCUMENT_ROOT."/compta/prelevement/rejet-prelevement.class.php");
+require_once(DOL_DOCUMENT_ROOT."/paiement.class.php");
-require_once DOL_DOCUMENT_ROOT."/compta/prelevement/rejet-prelevement.class.php";
-require_once DOL_DOCUMENT_ROOT."/paiement.class.php";
-require_once DOL_DOCUMENT_ROOT."/lib/dolibarrmail.class.php";
-
-/*
- * Sécurité accés client
- */
+// Sécurité accés client
if ($user->societe_id > 0) accessforbidden();
llxHeader('','Bon de prélèvement - Rejet');
$h = 0;
$head[$h][0] = DOL_URL_ROOT.'/compta/prelevement/fiche.php?id='.$_GET["id"];
-$head[$h][1] = $langs->trans("Fiche");
+$head[$h][1] = $langs->trans("Card");
$h++;
+if ($conf->use_preview_tabs)
+{
+ $head[$h][0] = DOL_URL_ROOT.'/compta/prelevement/bon.php?id='.$_GET["id"];
+ $head[$h][1] = $langs->trans("Preview");
+ $h++;
+}
+
$head[$h][0] = DOL_URL_ROOT.'/compta/prelevement/lignes.php?id='.$_GET["id"];
-$head[$h][1] = $langs->trans("Lignes");
+$head[$h][1] = $langs->trans("Lines");
$h++;
$head[$h][0] = DOL_URL_ROOT.'/compta/prelevement/factures.php?id='.$_GET["id"];
-$head[$h][1] = $langs->trans("Factures");
+$head[$h][1] = $langs->trans("Bills");
$h++;
$head[$h][0] = DOL_URL_ROOT.'/compta/prelevement/fiche-rejet.php?id='.$_GET["id"];
-$head[$h][1] = $langs->trans("Rejets");
+$head[$h][1] = $langs->trans("Rejects");
$hselected = $h;
$h++;
-
$head[$h][0] = DOL_URL_ROOT.'/compta/prelevement/fiche-stat.php?id='.$_GET["id"];
-$head[$h][1] = $langs->trans("Statistiques");
+$head[$h][1] = $langs->trans("Statistics");
$h++;
$prev_id = $_GET["id"];
@@ -149,5 +152,5 @@ else
$db->close();
-llxFooter("Dernière modification $Date$ révision $Revision$");
+llxFooter('$Date$ - $Revision$');
?>
diff --git a/htdocs/compta/prelevement/fiche-stat.php b/htdocs/compta/prelevement/fiche-stat.php
index e60c4f5a5c9..56e6e033fd5 100644
--- a/htdocs/compta/prelevement/fiche-stat.php
+++ b/htdocs/compta/prelevement/fiche-stat.php
@@ -1,5 +1,6 @@
+ * Copyright (C) 2005 Laurent Destailleur
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -17,36 +18,41 @@
*
* $Id$
* $Source$
- *
*/
+
require("./pre.inc.php");
-/*
- * Sécurité accés client
- */
+// Sécurité accés client
if ($user->societe_id > 0) accessforbidden();
llxHeader('','Statistique Bon de prélèvement');
$h = 0;
$head[$h][0] = DOL_URL_ROOT.'/compta/prelevement/fiche.php?id='.$_GET["id"];
-$head[$h][1] = $langs->trans("Fiche");
+$head[$h][1] = $langs->trans("Card");
$h++;
+if ($conf->use_preview_tabs)
+{
+ $head[$h][0] = DOL_URL_ROOT.'/compta/prelevement/bon.php?id='.$_GET["id"];
+ $head[$h][1] = $langs->trans("Preview");
+ $h++;
+}
+
$head[$h][0] = DOL_URL_ROOT.'/compta/prelevement/lignes.php?id='.$_GET["id"];
-$head[$h][1] = $langs->trans("Lignes");
+$head[$h][1] = $langs->trans("Lines");
$h++;
$head[$h][0] = DOL_URL_ROOT.'/compta/prelevement/factures.php?id='.$_GET["id"];
-$head[$h][1] = $langs->trans("Factures");
+$head[$h][1] = $langs->trans("Bills");
$h++;
$head[$h][0] = DOL_URL_ROOT.'/compta/prelevement/fiche-rejet.php?id='.$_GET["id"];
-$head[$h][1] = $langs->trans("Rejets");
+$head[$h][1] = $langs->trans("Rejects");
$h++;
$head[$h][0] = DOL_URL_ROOT.'/compta/prelevement/fiche-stat.php?id='.$_GET["id"];
-$head[$h][1] = $langs->trans("Statistiques");
+$head[$h][1] = $langs->trans("Statistics");
$hselected = $h;
$h++;
diff --git a/htdocs/compta/prelevement/fiche.php b/htdocs/compta/prelevement/fiche.php
index fa4eb0a40e1..9751f873d6f 100644
--- a/htdocs/compta/prelevement/fiche.php
+++ b/htdocs/compta/prelevement/fiche.php
@@ -22,10 +22,10 @@
*/
/**
- \file htdocs/compta/prelevement/fiche.php
- \ingroup prelevement
- \brief Fiche prelevement
- \version $Revision$
+ \file htdocs/compta/prelevement/fiche.php
+ \ingroup prelevement
+ \brief Fiche prelevement
+ \version $Revision$
*/
require("./pre.inc.php");
@@ -56,7 +56,7 @@ if ($_POST["action"] == 'infotrans')
if ($_FILES['userfile']['name'] && basename($_FILES['userfile']['name'],".ps") == $bon->ref)
{
- $dir = DOL_DATA_ROOT.'/prelevement/bon/';
+ $dir = $conf->prelevement->dir_output.'/bon/';
if (doliMoveFileUpload($_FILES['userfile']['tmp_name'], $dir . "/" . $_FILES['userfile']['name']))
{
@@ -99,12 +99,15 @@ $head[$h][1] = $langs->trans("Card");
$hselected = $h;
$h++;
-$head[$h][0] = DOL_URL_ROOT.'/compta/prelevement/bon.php?id='.$_GET["id"];
-$head[$h][1] = $langs->trans("Bon");
-$h++;
+if ($conf->use_preview_tabs)
+{
+ $head[$h][0] = DOL_URL_ROOT.'/compta/prelevement/bon.php?id='.$_GET["id"];
+ $head[$h][1] = $langs->trans("Preview");
+ $h++;
+}
$head[$h][0] = DOL_URL_ROOT.'/compta/prelevement/lignes.php?id='.$_GET["id"];
-$head[$h][1] = $langs->trans("Lignes");
+$head[$h][1] = $langs->trans("Lines");
$h++;
$head[$h][0] = DOL_URL_ROOT.'/compta/prelevement/factures.php?id='.$_GET["id"];
@@ -112,7 +115,7 @@ $head[$h][1] = $langs->trans("Bills");
$h++;
$head[$h][0] = DOL_URL_ROOT.'/compta/prelevement/fiche-rejet.php?id='.$_GET["id"];
-$head[$h][1] = $langs->trans("Rejets");
+$head[$h][1] = $langs->trans("Rejects");
$h++;
$head[$h][0] = DOL_URL_ROOT.'/compta/prelevement/fiche-stat.php?id='.$_GET["id"];
diff --git a/htdocs/compta/prelevement/index.php b/htdocs/compta/prelevement/index.php
index 37e3320dfca..860789af161 100644
--- a/htdocs/compta/prelevement/index.php
+++ b/htdocs/compta/prelevement/index.php
@@ -84,7 +84,7 @@ if ($result)
print"\n\n";
print '';
- print '| '.$langs->trans("Receipt").' | '.$langs->trans("Date").' | ';
+ print '
| '.$langs->trans("WithdrawalReceiptShort").' | '.$langs->trans("Date").' | ';
print ''.$langs->trans("Amount").' | ';
print '
';
@@ -99,9 +99,9 @@ if ($result)
print ''.$obj->ref."\n";
- print ''.strftime("%d/%m/%Y %H:%M",$obj->datec)." | \n";
+ print ''.dolibarr_print_date($obj->datec,"%d/%m/%Y %H:%M")." | \n";
- print ''.price($obj->amount)." ".$langs->trans("Currency".$conf->monnaie)." | \n";
+ print ''.price($obj->amount)." | \n";
print "\n";
$i++;
@@ -147,9 +147,9 @@ if ( $db->query($sql) )
$obj = $db->fetch_object();
$var=!$var;
print '| ';
- print ''.img_file().' ';
- print ''.$obj->facnumber.' | ';
- print ''.$obj->nom.' |
';
+ print ''.img_file().' '.$obj->facnumber.'';
+ print ''.img_object($langs->trans("ShowCompany"),'company').' '.$obj->nom.' | ';
+ print '';
$i++;
}
diff --git a/htdocs/compta/prelevement/ligne.php b/htdocs/compta/prelevement/ligne.php
index 9649646408f..6cbd1f14add 100644
--- a/htdocs/compta/prelevement/ligne.php
+++ b/htdocs/compta/prelevement/ligne.php
@@ -17,19 +17,17 @@
*
* $Id$
* $Source$
- *
*/
+
require("./pre.inc.php");
-require_once DOL_DOCUMENT_ROOT."/compta/prelevement/ligne-prelevement.class.php";
-require_once DOL_DOCUMENT_ROOT."/compta/prelevement/rejet-prelevement.class.php";
-require_once DOL_DOCUMENT_ROOT."/paiement.class.php";
-require_once DOL_DOCUMENT_ROOT."/lib/dolibarrmail.class.php";
+require_once(DOL_DOCUMENT_ROOT."/compta/prelevement/ligne-prelevement.class.php");
+require_once(DOL_DOCUMENT_ROOT."/compta/prelevement/rejet-prelevement.class.php");
+require_once(DOL_DOCUMENT_ROOT."/paiement.class.php");
-/*
- * Sécurité accés client
- */
+// Sécurité accés client
if ($user->societe_id > 0) accessforbidden();
+
if ($_POST["action"] == 'confirm_rejet')
{
if ( $_POST["confirm"] == 'yes')
@@ -285,5 +283,5 @@ if ($_GET["id"])
print "";
}
-llxFooter("Dernière modification $Date$ révision $Revision$");
+llxFooter('$Date$ - $Revision$');
?>
diff --git a/htdocs/compta/prelevement/lignes.php b/htdocs/compta/prelevement/lignes.php
index 47a70e11ba6..2651ada8ecf 100644
--- a/htdocs/compta/prelevement/lignes.php
+++ b/htdocs/compta/prelevement/lignes.php
@@ -1,5 +1,6 @@
+ * Copyright (C) 2005 Laurent Destailleur
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@ -17,41 +18,44 @@
*
* $Id$
* $Source$
- *
*/
+
require("./pre.inc.php");
+require_once(DOL_DOCUMENT_ROOT."/compta/prelevement/rejet-prelevement.class.php");
+require_once(DOL_DOCUMENT_ROOT."/paiement.class.php");
-require_once DOL_DOCUMENT_ROOT."/compta/prelevement/rejet-prelevement.class.php";
-require_once DOL_DOCUMENT_ROOT."/paiement.class.php";
-require_once DOL_DOCUMENT_ROOT."/lib/dolibarrmail.class.php";
-
-/*
- * Sécurité accés client
- */
+// Sécurité accés client
if ($user->societe_id > 0) accessforbidden();
llxHeader('','Bon de prélèvement');
$h = 0;
$head[$h][0] = DOL_URL_ROOT.'/compta/prelevement/fiche.php?id='.$_GET["id"];
-$head[$h][1] = $langs->trans("Fiche");
+$head[$h][1] = $langs->trans("Card");
$h++;
+if ($conf->use_preview_tabs)
+{
+ $head[$h][0] = DOL_URL_ROOT.'/compta/prelevement/bon.php?id='.$_GET["id"];
+ $head[$h][1] = $langs->trans("Preview");
+ $h++;
+}
+
$head[$h][0] = DOL_URL_ROOT.'/compta/prelevement/lignes.php?id='.$_GET["id"];
-$head[$h][1] = $langs->trans("Lignes");
+$head[$h][1] = $langs->trans("Lines");
$hselected = $h;
$h++;
$head[$h][0] = DOL_URL_ROOT.'/compta/prelevement/factures.php?id='.$_GET["id"];
-$head[$h][1] = $langs->trans("Factures");
+$head[$h][1] = $langs->trans("Bills");
$h++;
$head[$h][0] = DOL_URL_ROOT.'/compta/prelevement/fiche-rejet.php?id='.$_GET["id"];
-$head[$h][1] = $langs->trans("Rejets");
+$head[$h][1] = $langs->trans("Rejects");
$h++;
$head[$h][0] = DOL_URL_ROOT.'/compta/prelevement/fiche-stat.php?id='.$_GET["id"];
-$head[$h][1] = $langs->trans("Statistiques");
+$head[$h][1] = $langs->trans("Statistics");
$h++;
$prev_id = $_GET["id"];
@@ -192,5 +196,5 @@ else
$db->close();
-llxFooter("Dernière modification $Date$ révision $Revision$");
+llxFooter('$Date$ - $Revision$');
?>
diff --git a/htdocs/compta/prelevement/liste.php b/htdocs/compta/prelevement/liste.php
index 2f32a400828..3973a5cca11 100644
--- a/htdocs/compta/prelevement/liste.php
+++ b/htdocs/compta/prelevement/liste.php
@@ -103,7 +103,7 @@ if ($result)
print '';
print '| '.$langs->trans("Line").' | ';
- print_liste_field_titre($langs->trans("Receipt"),"liste.php","p.ref");
+ print_liste_field_titre($langs->trans("WithdrawalReceipt"),"liste.php","p.ref");
print_liste_field_titre($langs->trans("Company"),"liste.php","s.nom");
print_liste_field_titre($langs->trans("Date"),"liste.php","p.datec","","",'align="center"');
print_liste_field_titre($langs->trans("Amount"),"liste.php","pl.amount");
diff --git a/htdocs/compta/prelevement/liste_factures.php b/htdocs/compta/prelevement/liste_factures.php
index df45a94e68b..f76edc7518d 100644
--- a/htdocs/compta/prelevement/liste_factures.php
+++ b/htdocs/compta/prelevement/liste_factures.php
@@ -28,16 +28,13 @@
*/
require("./pre.inc.php");
-
require_once(DOL_DOCUMENT_ROOT."/compta/prelevement/rejet-prelevement.class.php");
require_once(DOL_DOCUMENT_ROOT."/paiement.class.php");
-require_once(DOL_DOCUMENT_ROOT."/lib/dolibarrmail.class.php");
-/*
- * Sécurité accés client
- */
+// Sécurité accés client
if ($user->societe_id > 0) accessforbidden();
+
llxHeader('','Bon de prélèvement');
$page = $_GET["page"];
@@ -99,7 +96,7 @@ if ($result)
print_liste_field_titre($langs->trans("Bill"),"liste_factures.php","f.facnumber",'',$urladd);
print_liste_field_titre($langs->trans("Company"),"liste_factures.php","s.nom",'',$urladd);
print_liste_field_titre($langs->trans("Amount"),"liste_factures.php","f.total_ttc","",$urladd,'align="right"');
- print_liste_field_titre($langs->trans("Receipt"),"liste_factures.php","p.rowid","",$urladd,'align="center"');
+ print_liste_field_titre($langs->trans("WithdrawalReceipt"),"liste_factures.php","p.rowid","",$urladd,'align="center"');
print '
';
print '';
- $var=True;
+ $var=false;
$total = 0;
@@ -128,7 +125,6 @@ if ($result)
print '';
print substr('000000'.$obj->rowid_ligne, -6).'';
-
print '';
print img_object($langs->trans("ShowBill"),"bill");
print ' ';
diff --git a/htdocs/compta/prelevement/pre.inc.php b/htdocs/compta/prelevement/pre.inc.php
index 5e788a4b020..29e9bbffd00 100644
--- a/htdocs/compta/prelevement/pre.inc.php
+++ b/htdocs/compta/prelevement/pre.inc.php
@@ -61,7 +61,7 @@ function llxHeader($head = "", $title="", $help_url='')
$menu->add_submenu(DOL_URL_ROOT."/compta/prelevement/rejets.php",$langs->trans("Rejects"));
$menu->add_submenu(DOL_URL_ROOT."/compta/prelevement/stats.php",$langs->trans("Statistics"));
- $menu->add_submenu(DOL_URL_ROOT."/compta/prelevement/config.php",$langs->trans("Config"));
+ $menu->add_submenu(DOL_URL_ROOT."/compta/prelevement/config.php",$langs->trans("Setup"));
$menu->add(DOL_URL_ROOT."/compta/prelevement/demandes.php",$langs->trans("Demandes"));
$menu->add_submenu(DOL_URL_ROOT."/compta/prelevement/demandes.php",$langs->trans("StandingOrderToProcess"));
diff --git a/htdocs/compta/prelevement/rejet-prelevement.class.php b/htdocs/compta/prelevement/rejet-prelevement.class.php
index 0d0c80329e9..a6aa26fd87a 100644
--- a/htdocs/compta/prelevement/rejet-prelevement.class.php
+++ b/htdocs/compta/prelevement/rejet-prelevement.class.php
@@ -157,79 +157,75 @@ class RejetPrelevement
}
- /**
- *
- *
- *
- */
- function _send_email($fac)
- {
- $userid = 0;
-
- $sql = "SELECT fk_user_demande";
- $sql .= " FROM ".MAIN_DB_PREFIX."prelevement_facture_demande as pfd";
- $sql .= " WHERE pfd.fk_prelevement_bons = ".$this->bon_id;
- $sql .= " AND pfd.fk_facture = ".$fac->id;
-
- $result=$this->db->query($sql);
- if ($result)
- {
- $num = $this->db->num_rows();
- if ($num > 0)
- {
- $row = $this->db->fetch_row();
- $userid = $row[0];
- }
- }
- else
- {
- dolibarr_syslog("RejetPrelevement::_send_email Erreur lecture user");
- }
-
- if ($userid > 0)
- {
- $emuser = new User($this->db, $userid);
- $emuser->fetch();
-
- $subject = "Prélèvement rejeté";
-
- $soc = new Societe($this->db);
- $soc->fetch($fac->socidp);
-
- $sendto = $emuser->fullname." <".$emuser->email.">";
- $from = $this->user->fullname." <".$this->user->email.">";
-
- $message = "Bonjour,\n";
- //$message .= "\nLe prélèvement de la facture ".$fac->ref." pour le compte de la société ".$soc->nom." d'un montant de ".price($fac->total_ttc).' '.$langs->trans("Currency".$conf->monnaie)." a été rejeté par la banque.";
- // $langs n'est pas accessible ici !!!
- // Inutile de traduire la monnaie si le reste du message n'est pas traduit
- // TODO LATER
-
- $message .= "\nLe prélèvement de la facture ".$fac->ref." pour le compte de la société ".$soc->nom." d'un montant de ".price($fac->total_ttc)." a été rejeté par la banque.";
-
- $message .= "\n\n--\n".$this->user->fullname;
-
- $mailfile = new DolibarrMail($subject,
- $sendto,
- $from,
- $message);
-
- $mailfile->errors_to = $this->user->email;
-
- if ( $mailfile->sendfile() )
- {
- dolibarr_syslog("RejetPrelevement::_send_email email envoyé");
- }
- else
- {
- dolibarr_syslog("RejetPrelevement::_send_email Erreur envoi email");
- }
- }
- else
- {
- dolibarr_syslog("RejetPrelevement::_send_email Userid invalide");
- }
- }
+ /**
+ * \brief Envoi mail
+ *
+ */
+ function _send_email($fac)
+ {
+ $userid = 0;
+
+ $sql = "SELECT fk_user_demande";
+ $sql .= " FROM ".MAIN_DB_PREFIX."prelevement_facture_demande as pfd";
+ $sql .= " WHERE pfd.fk_prelevement_bons = ".$this->bon_id;
+ $sql .= " AND pfd.fk_facture = ".$fac->id;
+
+ $resql=$this->db->query($sql);
+ if ($resql)
+ {
+ $num = $this->db->num_rows($resql);
+ if ($num > 0)
+ {
+ $row = $this->db->fetch_row($resql);
+ $userid = $row[0];
+ }
+ }
+ else
+ {
+ dolibarr_syslog("RejetPrelevement::_send_email Erreur lecture user");
+ }
+
+ if ($userid > 0)
+ {
+ $emuser = new User($this->db, $userid);
+ $emuser->fetch();
+
+ $soc = new Societe($this->db);
+ $soc->fetch($fac->socidp);
+
+ require_once(DOL_DOCUMENT_ROOT."/lib/CMailFile.class.php");
+
+ $subject = "Prélèvement rejeté";
+ $sendto = $emuser->fullname." <".$emuser->email.">";
+ $from = $this->user->fullname." <".$this->user->email.">";
+
+ $arr_file = array();
+ $arr_mime = array();
+ $arr_name = array();
+
+ $message = "Bonjour,\n";
+ $message .= "\nLe prélèvement de la facture ".$fac->ref." pour le compte de la société ".$soc->nom." d'un montant de ".price($fac->total_ttc)." a été rejeté par la banque.";
+ $message .= "\n\n--\n".$this->user->fullname;
+
+ $mailfile = new CMailFile($subject,$sendto,$from,$message,
+ $arr_file,$arr_mime,$arr_name);
+ $mailfile->errors_to = $this->user->email;
+
+ $result=$mailfile->sendfile();
+ if ($result)
+ {
+ dolibarr_syslog("RejetPrelevement::_send_email email envoyé");
+ }
+ else
+ {
+ dolibarr_syslog("RejetPrelevement::_send_email Erreur envoi email");
+ }
+ }
+ else
+ {
+ dolibarr_syslog("RejetPrelevement::_send_email Userid invalide");
+ }
+ }
/**
diff --git a/htdocs/compta/prelevement/rejets.php b/htdocs/compta/prelevement/rejets.php
index e9c8502e814..77fe163f49b 100644
--- a/htdocs/compta/prelevement/rejets.php
+++ b/htdocs/compta/prelevement/rejets.php
@@ -17,41 +17,37 @@
*
* $Id$
* $Source$
- *
*/
+
require("./pre.inc.php");
+require_once(DOL_DOCUMENT_ROOT."/compta/prelevement/rejet-prelevement.class.php");
+require_once(DOL_DOCUMENT_ROOT."/paiement.class.php");
if (!$user->rights->prelevement->bons->lire)
accessforbidden();
-require_once DOL_DOCUMENT_ROOT."/compta/prelevement/rejet-prelevement.class.php";
-require_once DOL_DOCUMENT_ROOT."/paiement.class.php";
-require_once DOL_DOCUMENT_ROOT."/lib/dolibarrmail.class.php";
-
-/*
- * Sécurité accés client
- */
+// Sécurité accés client
if ($user->societe_id > 0) accessforbidden();
+
llxHeader('','Bon de prélèvement - Rejet');
$h = 0;
$head[$h][0] = DOL_URL_ROOT.'/compta/prelevement/fiche.php?id='.$_GET["id"];
-$head[$h][1] = $langs->trans("Fiche");
+$head[$h][1] = $langs->trans("Card");
$h++;
$head[$h][0] = DOL_URL_ROOT.'/compta/prelevement/factures.php?id='.$_GET["id"];
-$head[$h][1] = $langs->trans("Factures");
+$head[$h][1] = $langs->trans("Bills");
$h++;
$head[$h][0] = DOL_URL_ROOT.'/compta/prelevement/rejets.php?id='.$_GET["id"];
-$head[$h][1] = $langs->trans("Rejets");
+$head[$h][1] = $langs->trans("Rejects");
$hselected = $h;
$h++;
-
$head[$h][0] = DOL_URL_ROOT.'/compta/prelevement/fiche-stat.php?id='.$_GET["id"];
-$head[$h][1] = $langs->trans("Statistiques");
+$head[$h][1] = $langs->trans("Statistics");
$h++;
$prev_id = $_GET["id"];
@@ -72,7 +68,6 @@ $rej = new RejetPrelevement($db, $user);
/*
* Liste des factures
*
- *
*/
$sql = "SELECT pl.rowid, pr.motif, p.ref, pl.statut";
$sql .= " , s.idp, s.nom";
@@ -138,5 +133,5 @@ else
$db->close();
-llxFooter("Dernière modification $Date$ révision $Revision$");
+llxFooter('$Date$ - $Revision$');
?>
diff --git a/htdocs/facture.class.php b/htdocs/facture.class.php
index d18f02b494f..20eb6148d51 100644
--- a/htdocs/facture.class.php
+++ b/htdocs/facture.class.php
@@ -1446,19 +1446,20 @@ class Facture
/**
- * \brief Créé une demande de prélèvement
- * \param user utilisateur créant la demande
+ * \brief Créé une demande de prélèvement
+ * \param user Utilisateur créant la demande
+ * \return int <0 si ko, >0 si ok
*/
function demande_prelevement($user)
{
- //dolibarr_syslog("Facture::DemandePrelevement");
+ dolibarr_syslog("Facture::demande_prelevement");
$soc = new Societe($this->db);
$soc->id = $this->socidp;
$soc->rib();
- if ($this->statut > 0 && $this->paye == 0 && $this->mode_reglement == 3)
+ if ($this->statut > 0 && $this->paye == 0 && $this->mode_reglement_id == 3)
{
$sql = "SELECT count(*) FROM ".MAIN_DB_PREFIX."prelevement_facture_demande";
$sql .= " WHERE fk_facture=".$this->id;
@@ -1482,28 +1483,32 @@ class Facture
if ( $this->db->query( $sql) )
{
- return 0;
+ return 1;
}
else
{
+ $this->error=$this->db->error();
dolibarr_syslog("Facture::DemandePrelevement Erreur");
return -1;
}
}
else
{
+ $this->error="Une demande existe déjà";
dolibarr_syslog("Facture::DemandePrelevement Impossible de créer une demande, demande déja en cours");
}
}
else
{
+ $this->error=$this->db->error();
dolibarr_syslog("Facture::DemandePrelevement Erreur -2");
return -2;
}
}
else
{
- dolibarr_syslog("Facture::DemandePrelevement Impossible de créer une demande, etat facture incompatible");
+ $this->error="Etat facture incompatible avec l'action";
+ dolibarr_syslog("Facture::DemandePrelevement Etat facture incompatible $this->statut, $this->paye, $this->mode_reglement_id");
return -3;
}
}
diff --git a/htdocs/master.inc.php b/htdocs/master.inc.php
index 09e5d1ebf85..d3c495b90c8 100644
--- a/htdocs/master.inc.php
+++ b/htdocs/master.inc.php
@@ -295,27 +295,23 @@ $conf->actionscomm->dir_output=DOL_DATA_ROOT."/action";
/*
* Modification de quelques variable de conf en fonction des Constantes
*/
+
+// conf->use_preview_tabs
+$conf->use_preview_tabs=1;
+if (isset($conf->global->USE_PREVIEW_TABS)) $conf->use_preview_tabs=$conf->global->USE_PREVIEW_TABS;
+
+// conf->monnaie
if (! $conf->global->MAIN_MONNAIE) $conf->global->MAIN_MONNAIE='EUR';
$conf->monnaie=$conf->global->MAIN_MONNAIE;
-/*
- * Option du module Compta: Defini le mode de calcul des etats comptables (CA,...)
- */
+// $conf->compta->mode = Option du module Compta: Defini le mode de calcul des etats comptables (CA,...)
$conf->compta->mode = 'RECETTES-DEPENSES'; // Par défaut
if (defined('COMPTA_MODE') && COMPTA_MODE) {
// Peut etre 'RECETTES-DEPENSES' ou 'CREANCES-DETTES'
$conf->compta->mode = COMPTA_MODE;
}
-/* \todo Ajouter une option Gestion de la TVA dans le module compta qui permet de désactiver la fonction TVA
- * (pour particuliers ou libéraux en franchise)
- * En attendant, valeur forcée à 1
- */
-$conf->compta->tva=1;
-
-/*
- * Option du module Facture
- */
+// $conf->defaulttx
if (defined('FACTURE_TVAOPTION') && FACTURE_TVAOPTION == 'franchise') {
$conf->defaulttx='0'; // Taux par défaut des factures clients
}
@@ -323,15 +319,11 @@ else {
$conf->defaulttx=''; // Pas de taux par défaut des factures clients, le premier sera pris
}
-/*
- * SIZE_LISTE_LIMIT : constante de taille maximale des listes
- */
+// $conf->liste_limit = constante de taille maximale des listes
if (! $conf->global->SIZE_LISTE_LIMIT) $conf->global->SIZE_LISTE_LIMIT=20;
$conf->liste_limit=$conf->global->SIZE_LISTE_LIMIT;
-/*
- * MAIN_THEME : theme
- */
+// $conf->theme et $conf->css
if (! $conf->global->MAIN_THEME) $conf->global->MAIN_THEME="eldy";
$conf->theme=$conf->global->MAIN_THEME;
$conf->css = "theme/".$conf->theme."/".$conf->theme.".css";
@@ -349,6 +341,7 @@ if (defined('MAILING_EMAIL_FROM'))
}
else $conf->mailing->email_from=$conf->email_from;
+// $conf->adherent->email_resil, ...
if (defined("MAIN_MAIL_RESIL"))
{
$conf->adherent->email_resil=MAIN_MAIL_RESIL;
@@ -382,6 +375,12 @@ if (defined("MAIN_MAIL_NEW_SUBJECT"))
$conf->adherent->email_new_subject=MAIN_MAIL_NEW_SUBJECT;
}
+/* \todo Ajouter une option Gestion de la TVA dans le module compta qui permet de désactiver la fonction TVA
+ * (pour particuliers ou libéraux en franchise)
+ * En attendant, valeur forcée à 1
+ */
+$conf->compta->tva=1;
+
// Delai de tolerance des alertes
$conf->actions->warning_delay=7*24*60*60; // 1 semaine
$conf->commande->traitement->warning_delay=2*24*60*60;
|