diff --git a/htdocs/commande/fiche.php b/htdocs/commande/fiche.php index edb085343e2..a60fce0f556 100644 --- a/htdocs/commande/fiche.php +++ b/htdocs/commande/fiche.php @@ -1886,21 +1886,26 @@ else } // Ship - if ($commande->statut > 0 && $commande->statut < 3 && $user->rights->expedition->creer - && $commande->getNbOfProductsLines() > 0) + if ($commande->statut > 0 && $commande->statut < 3 && $commande->getNbOfProductsLines() > 0) { - - // Chargement des permissions - $error = $user->load_entrepots(); - if (sizeof($user->entrepots) === 1) + if ($user->rights->expedition->creer) { - print ''; - print $langs->trans('ShipProduct').''; - + // Chargement des permissions + $error = $user->load_entrepots(); + if (sizeof($user->entrepots) === 1) + { + print ''; + print $langs->trans('ShipProduct').''; + + } + else + { + print ''.$langs->trans('ShipProduct').''; + } } else { - print ''.$langs->trans('ShipProduct').''; + print ''.$langs->trans('ShipProduct').''; } } diff --git a/htdocs/expedition/expedition.class.php b/htdocs/expedition/expedition.class.php index b2c55608c08..8de3a00e3e8 100644 --- a/htdocs/expedition/expedition.class.php +++ b/htdocs/expedition/expedition.class.php @@ -2,7 +2,7 @@ /* Copyright (C) 2003-2008 Rodolphe Quiedeville * Copyright (C) 2005-2008 Régis Houssin * Copyright (C) 2007 Franky Van Liedekerke - * Copyright (C) 2006 Laurent Destailleur + * Copyright (C) 2006-2008 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 @@ -36,486 +36,486 @@ if ($conf->commande->enabled) require_once(DOL_DOCUMENT_ROOT."/commande/commande */ class Expedition extends CommonObject { - var $db; - var $error; - var $element="expedition"; - var $table_element="expedition"; - - var $id; - var $socid; - var $brouillon; - var $entrepot_id; - var $modelpdf; - var $origin; - var $origin_id; - - var $meths; - /** - * Initialisation - * - */ - function Expedition($DB) - { - global $langs; - - $this->db = $DB; - $this->lignes = array(); - - $this->statuts[-1] = $langs->trans("Canceled"); - $this->statuts[0] = $langs->trans("Draft"); - $this->statuts[1] = $langs->trans("Validated"); - - $this->products = array(); - } - - /** - * \brief Créé expédition en base - * \param user Objet du user qui cré - * \return int <0 si erreur, id expédition créée si ok - */ - function create($user) - { - global $conf; - - require_once DOL_DOCUMENT_ROOT ."/product/stock/mouvementstock.class.php"; - $error = 0; - /* On positionne en mode brouillon l'expedition */ - $this->brouillon = 1; - - $this->user = $user; - - $this->expedition_method = sanitize_string($this->expedition_method); - $this->tracking_number = sanitize_string($this->tracking_number); + var $db; + var $error; + var $element="expedition"; + var $table_element="expedition"; - $this->db->begin(); - - $sql = "INSERT INTO ".MAIN_DB_PREFIX."expedition (ref, date_creation, fk_user_author, date_expedition"; - $sql.= ", fk_soc, fk_expedition_methode, tracking_number"; - $sql.= ")"; - $sql.= " VALUES ('(PROV)', ".$this->db->idate(mktime()).", $user->id, ".$this->db->idate($this->date_expedition); - $sql.= ", ".$this->socid.",'". $this->expedition_method_id."','". $this->tracking_number."'"; - $sql.= ")"; - - $resql=$this->db->query($sql); - if ($resql) - { - $this->id = $this->db->last_insert_id(MAIN_DB_PREFIX."expedition"); - - $sql = "UPDATE ".MAIN_DB_PREFIX."expedition SET ref='(PROV".$this->id.")' WHERE rowid=".$this->id; - if ($this->db->query($sql)) + var $id; + var $socid; + var $brouillon; + var $entrepot_id; + var $modelpdf; + var $origin; + var $origin_id; + + var $meths; + /** + * Initialisation + * + */ + function Expedition($DB) + { + global $langs; + + $this->db = $DB; + $this->lignes = array(); + + $this->statuts[-1] = $langs->trans("Canceled"); + $this->statuts[0] = $langs->trans("Draft"); + $this->statuts[1] = $langs->trans("Validated"); + + $this->products = array(); + } + + /** + * \brief Créé expédition en base + * \param user Objet du user qui cré + * \return int <0 si erreur, id expédition créée si ok + */ + function create($user) + { + global $conf; + + require_once DOL_DOCUMENT_ROOT ."/product/stock/mouvementstock.class.php"; + $error = 0; + /* On positionne en mode brouillon l'expedition */ + $this->brouillon = 1; + + $this->user = $user; + + $this->expedition_method = sanitize_string($this->expedition_method); + $this->tracking_number = sanitize_string($this->tracking_number); + + $this->db->begin(); + + $sql = "INSERT INTO ".MAIN_DB_PREFIX."expedition (ref, date_creation, fk_user_author, date_expedition"; + $sql.= ", fk_soc, fk_expedition_methode, tracking_number"; + $sql.= ")"; + $sql.= " VALUES ('(PROV)', ".$this->db->idate(mktime()).", $user->id, ".$this->db->idate($this->date_expedition); + $sql.= ", ".$this->socid.",'". $this->expedition_method_id."','". $this->tracking_number."'"; + $sql.= ")"; + + $resql=$this->db->query($sql); + if ($resql) + { + $this->id = $this->db->last_insert_id(MAIN_DB_PREFIX."expedition"); + + $sql = "UPDATE ".MAIN_DB_PREFIX."expedition SET ref='(PROV".$this->id.")' WHERE rowid=".$this->id; + if ($this->db->query($sql)) { - // Insertion des lignes - for ($i = 0 ; $i < sizeof($this->lignes) ; $i++) - { - if (! $this->create_line($this->lignes[$i]->entrepot_id, $this->lignes[$i]->origin_line_id, $this->lignes[$i]->qty) > 0) - { + // Insertion des lignes + for ($i = 0 ; $i < sizeof($this->lignes) ; $i++) + { + if (! $this->create_line($this->lignes[$i]->entrepot_id, $this->lignes[$i]->origin_line_id, $this->lignes[$i]->qty) > 0) + { $error++; - } - } + } + } - if (! $error && $this->id && $this->origin_id) - { - if ($conf->commande->enabled) - { + if (! $error && $this->id && $this->origin_id) + { + if ($conf->commande->enabled) + { $sql = 'INSERT INTO '.MAIN_DB_PREFIX.'co_exp (fk_expedition, fk_commande) VALUES ('.$this->id.','.$this->origin_id.')'; if (!$this->db->query($sql)) - { - $error++; - } - + { + $error++; + } + $sql = "UPDATE ".MAIN_DB_PREFIX."commande SET fk_statut = 2 WHERE rowid=".$this->origin_id; if (! $this->db->query($sql)) - { - $error++; - } - } - else - { + { + $error++; + } + } + else + { $sql = 'INSERT INTO '.MAIN_DB_PREFIX.'pr_exp (fk_expedition, fk_propal) VALUES ('.$this->id.','.$this->origin_id.')'; if (!$this->db->query($sql)) - { - $error++; - } - + { + $error++; + } + //Todo: definir un statut $sql = "UPDATE ".MAIN_DB_PREFIX."propal SET fk_statut = 9 WHERE rowid=".$this->origin_id; if (! $this->db->query($sql)) - { + { + $error++; + } + } + } + + if (! $error) + { + $this->db->commit(); + return $this->id; + } + else + { + $error++; + $this->error=$this->db->lasterror()." - sql=$sql"; + $this->db->rollback(); + return -3; + } + } + else + { + $error++; + $this->error=$this->db->lasterror()." - sql=$sql"; + $this->db->rollback(); + return -2; + } + } + else + { $error++; - } - } - } - - if (! $error) - { - $this->db->commit(); - return $this->id; - } - else - { - $error++; - $this->error=$this->db->lasterror()." - sql=$sql"; - $this->db->rollback(); - return -3; - } - } - else - { - $error++; - $this->error=$this->db->lasterror()." - sql=$sql"; - $this->db->rollback(); - return -2; - } - } - else - { - $error++; - $this->error=$this->db->error()." - sql=$sql"; - $this->db->rollback(); - return -1; - } - } - - /** - * - * - */ - function create_line($entrepot_id, $origin_line_id, $qty) - { - $error = 0; - - $sql = "INSERT INTO ".MAIN_DB_PREFIX."expeditiondet (fk_expedition, fk_entrepot, fk_origin_line, qty)"; - $sql .= " VALUES (".$this->id.", ".($entrepot_id?$entrepot_id:'null').", ".$origin_line_id.", ".$qty.")"; - //print 'x'.$sql; - if (! $this->db->query($sql)) - { - $error++; - } - - if (! $error) return 1; - else return -1; - } - - /** - * \brief Lit une expedition - * \param id - */ - function fetch ($id) - { - global $conf; - - $sql = "SELECT e.rowid, e.fk_soc as socid, e.date_creation, e.ref, e.fk_user_author, e.fk_statut"; - $sql.= ", ".$this->db->pdate("e.date_expedition")." as date_expedition, e.model_pdf, e.fk_adresse_livraison"; - $sql.= ", e.fk_expedition_methode, e.tracking_number"; - if ($conf->commande->enabled) - { - $sql.=", ce.fk_commande as origin_id"; - } - else - { - $sql.=", pe.fk_propal as origin_id"; - } - if ($conf->livraison_bon->enabled) $sql.=", l.rowid as livraison_id"; - $sql.= " FROM ".MAIN_DB_PREFIX."expedition as e"; - if ($conf->commande->enabled) - { - $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."co_exp as ce ON e.rowid = ce.fk_expedition"; - $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."commande as c ON ce.fk_commande = c.rowid"; - } - else - { - $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."pr_exp as pe ON e.rowid = pe.fk_expedition"; - $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."propal as p ON pe.fk_propal = p.rowid"; - } - if ($conf->livraison_bon->enabled) $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."livraison as l ON e.rowid = l.fk_expedition"; - $sql.= " WHERE e.rowid = ".$id; - - $result = $this->db->query($sql) ; - - if ($result) - { - if ($this->db->num_rows($result)) - { - $obj = $this->db->fetch_object($result); - - $this->id = $obj->rowid; - $this->ref = $obj->ref; - $this->socid = $obj->socid; - $this->statut = $obj->fk_statut; - $this->origin_id = $obj->origin_id; - $this->livraison_id = $obj->livraison_id; - $this->user_author_id = $obj->fk_user_author; - $this->date = $obj->date_expedition; - $this->adresse_livraison_id = $obj->fk_adresse_livraison; - $this->modelpdf = $obj->model_pdf; - $this->expedition_method_id = $obj->fk_expedition_methode; - $this->tracking_number = $obj->tracking_number; - - if ($conf->commande->enabled) - { - $this->origin = "commande"; - } - else - { - $this->origin = "propal"; - } - - $this->db->free($result); + $this->error=$this->db->error()." - sql=$sql"; + $this->db->rollback(); + return -1; + } + } - if ($this->statut == 0) $this->brouillon = 1; - - $this->lignes = array(); - - $file = $conf->expedition->dir_output . "/" .get_exdir($expedition->id,2) . "/" . $this->id.".pdf"; - $this->pdf_filename = $file; - - /* - * Lignes - */ - $result=$this->fetch_lines(); - if ($result < 0) - { - return -3; - } - - return 1; - } - else + /** + * + * + */ + function create_line($entrepot_id, $origin_line_id, $qty) + { + $error = 0; + + $sql = "INSERT INTO ".MAIN_DB_PREFIX."expeditiondet (fk_expedition, fk_entrepot, fk_origin_line, qty)"; + $sql .= " VALUES (".$this->id.", ".($entrepot_id?$entrepot_id:'null').", ".$origin_line_id.", ".$qty.")"; + //print 'x'.$sql; + if (! $this->db->query($sql)) + { + $error++; + } + + if (! $error) return 1; + else return -1; + } + + /** + * \brief Lit une expedition + * \param id + */ + function fetch ($id) + { + global $conf; + + $sql = "SELECT e.rowid, e.fk_soc as socid, e.date_creation, e.ref, e.fk_user_author, e.fk_statut"; + $sql.= ", ".$this->db->pdate("e.date_expedition")." as date_expedition, e.model_pdf, e.fk_adresse_livraison"; + $sql.= ", e.fk_expedition_methode, e.tracking_number"; + if ($conf->commande->enabled) + { + $sql.=", ce.fk_commande as origin_id"; + } + else + { + $sql.=", pe.fk_propal as origin_id"; + } + if ($conf->livraison_bon->enabled) $sql.=", l.rowid as livraison_id"; + $sql.= " FROM ".MAIN_DB_PREFIX."expedition as e"; + if ($conf->commande->enabled) + { + $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."co_exp as ce ON e.rowid = ce.fk_expedition"; + $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."commande as c ON ce.fk_commande = c.rowid"; + } + else + { + $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."pr_exp as pe ON e.rowid = pe.fk_expedition"; + $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."propal as p ON pe.fk_propal = p.rowid"; + } + if ($conf->livraison_bon->enabled) $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."livraison as l ON e.rowid = l.fk_expedition"; + $sql.= " WHERE e.rowid = ".$id; + + $result = $this->db->query($sql) ; + + if ($result) + { + if ($this->db->num_rows($result)) { - dolibarr_syslog('Expedition::Fetch Error rowid='.$rowid.' numrows=0 sql='.$sql); - $this->error='Delivery with id '.$rowid.' not found sql='.$sql; - return -2; + $obj = $this->db->fetch_object($result); + + $this->id = $obj->rowid; + $this->ref = $obj->ref; + $this->socid = $obj->socid; + $this->statut = $obj->fk_statut; + $this->origin_id = $obj->origin_id; + $this->livraison_id = $obj->livraison_id; + $this->user_author_id = $obj->fk_user_author; + $this->date = $obj->date_expedition; + $this->adresse_livraison_id = $obj->fk_adresse_livraison; + $this->modelpdf = $obj->model_pdf; + $this->expedition_method_id = $obj->fk_expedition_methode; + $this->tracking_number = $obj->tracking_number; + + if ($conf->commande->enabled) + { + $this->origin = "commande"; + } + else + { + $this->origin = "propal"; + } + + $this->db->free($result); + + if ($this->statut == 0) $this->brouillon = 1; + + $this->lignes = array(); + + $file = $conf->expedition->dir_output . "/" .get_exdir($expedition->id,2) . "/" . $this->id.".pdf"; + $this->pdf_filename = $file; + + /* + * Lignes + */ + $result=$this->fetch_lines(); + if ($result < 0) + { + return -3; + } + + return 1; } - } - else - { - dolibarr_syslog('Expedition::Fetch Error rowid='.$rowid.' Erreur dans fetch de l\'expedition'); - $this->error=$this->db->error(); - return -1; - } - } - - /** - * \brief Valide l'expedition, et met a jour le stock si stock géré - * \param user Objet de l'utilisateur qui valide - * \return int - */ - function valid($user) - { - global $conf; - - require_once DOL_DOCUMENT_ROOT ."/product/stock/mouvementstock.class.php"; - - dolibarr_syslog("Expedition::valid"); - - $this->db->begin(); - - $error = 0; - $provref = $this->ref; - - if ($user->rights->expedition->valider) - { - $this->ref = "EXP".$this->id; - - // Tester si non dejà au statut validé. Si oui, on arrete afin d'éviter - // de décrémenter 2 fois le stock. - $sql = "SELECT ref FROM ".MAIN_DB_PREFIX."expedition where ref='".$this->ref."' AND fk_statut <> '0'"; - $resql=$this->db->query($sql); - if ($resql) + else { - $num = $this->db->num_rows($resql); - if ($num > 0) - { - dolibarr_syslog("Expedition::valid already validated", LOG_WARNING); - $this->db->rollback(); - return 0; - } + dolibarr_syslog('Expedition::Fetch Error rowid='.$rowid.' numrows=0 sql='.$sql); + $this->error='Delivery with id '.$rowid.' not found sql='.$sql; + return -2; } - - $sql = "UPDATE ".MAIN_DB_PREFIX."expedition"; - $sql.= " SET ref='".$this->ref."', fk_statut = 1, date_valid = ".$this->db->idate(mktime()).", fk_user_valid = ".$user->id; - $sql.= " WHERE rowid = ".$this->id." AND fk_statut = 0"; - - dolibarr_syslog("Expedition::valid update expedition sql=".$sql); - $resql=$this->db->query($sql); - if ($resql) + } + else + { + dolibarr_syslog('Expedition::Fetch Error rowid='.$rowid.' Erreur dans fetch de l\'expedition'); + $this->error=$this->db->error(); + return -1; + } + } + + /** + * \brief Valide l'expedition, et met a jour le stock si stock géré + * \param user Objet de l'utilisateur qui valide + * \return int + */ + function valid($user) + { + global $conf; + + require_once DOL_DOCUMENT_ROOT ."/product/stock/mouvementstock.class.php"; + + dolibarr_syslog("Expedition::valid"); + + $this->db->begin(); + + $error = 0; + $provref = $this->ref; + + if ($user->rights->expedition->valider) + { + $this->ref = "EXP".$this->id; + + // Tester si non dejà au statut validé. Si oui, on arrete afin d'éviter + // de décrémenter 2 fois le stock. + $sql = "SELECT ref FROM ".MAIN_DB_PREFIX."expedition where ref='".$this->ref."' AND fk_statut <> '0'"; + $resql=$this->db->query($sql); + if ($resql) { - // If stock increment is done on sending (recommanded choice) - if ($conf->stock->enabled && $conf->global->STOCK_CALCULATE_ON_SHIPMENT) - { - /* - * Enregistrement d'un mouvement de stock pour chaque produit de l'expedition - */ - $sql = "SELECT cd.fk_product, ed.qty, ed.fk_entrepot"; - $sql.= " FROM ".MAIN_DB_PREFIX."commandedet as cd, ".MAIN_DB_PREFIX."expeditiondet as ed"; - $sql.= " WHERE ed.fk_expedition = $this->id AND cd.rowid = ed.fk_origin_line"; - - dolibarr_syslog("Expedition::valid select details sql=".$sql); - $resql=$this->db->query($sql); - if ($resql) - { + $num = $this->db->num_rows($resql); + if ($num > 0) + { + dolibarr_syslog("Expedition::valid already validated", LOG_WARNING); + $this->db->rollback(); + return 0; + } + } + + $sql = "UPDATE ".MAIN_DB_PREFIX."expedition"; + $sql.= " SET ref='".$this->ref."', fk_statut = 1, date_valid = ".$this->db->idate(mktime()).", fk_user_valid = ".$user->id; + $sql.= " WHERE rowid = ".$this->id." AND fk_statut = 0"; + + dolibarr_syslog("Expedition::valid update expedition sql=".$sql); + $resql=$this->db->query($sql); + if ($resql) + { + // If stock increment is done on sending (recommanded choice) + if ($conf->stock->enabled && $conf->global->STOCK_CALCULATE_ON_SHIPMENT) + { + /* + * Enregistrement d'un mouvement de stock pour chaque produit de l'expedition + */ + $sql = "SELECT cd.fk_product, ed.qty, ed.fk_entrepot"; + $sql.= " FROM ".MAIN_DB_PREFIX."commandedet as cd, ".MAIN_DB_PREFIX."expeditiondet as ed"; + $sql.= " WHERE ed.fk_expedition = $this->id AND cd.rowid = ed.fk_origin_line"; + + dolibarr_syslog("Expedition::valid select details sql=".$sql); + $resql=$this->db->query($sql); + if ($resql) + { $num = $this->db->num_rows($resql); $i=0; while($i < $num) - { - dolibarr_syslog("Expedition::valid movment nb ".$i); - - $obj = $this->db->fetch_object($resql); - - $mouvS = new MouvementStock($this->db); - $result=$mouvS->livraison($user, $obj->fk_product, $obj->fk_entrepot, $obj->qty); - if ($result < 0) - { - $this->db->rollback(); - $this->error=$this->db->error()." - sql=$sql"; - dolibarr_syslog("Expedition::valid ".$this->error); - return -3; - } - - $i++; - } - - } - else - { + { + dolibarr_syslog("Expedition::valid movment nb ".$i); + + $obj = $this->db->fetch_object($resql); + + $mouvS = new MouvementStock($this->db); + $result=$mouvS->livraison($user, $obj->fk_product, $obj->fk_entrepot, $obj->qty); + if ($result < 0) + { + $this->db->rollback(); + $this->error=$this->db->error()." - sql=$sql"; + dolibarr_syslog("Expedition::valid ".$this->error); + return -3; + } + + $i++; + } + + } + else + { $this->db->rollback(); $this->error=$this->db->error()." - sql=$sql"; dolibarr_syslog("Expedition::valid ".$this->error); return -2; - } - } - - // On efface le répertoire de pdf provisoire - $expeditionref = sanitize_string($provref); - if ($conf->expedition->dir_output) - { - $dir = $conf->expedition->dir_output . "/" . $expeditionref; - $file = $dir . "/" . $expeditionref . ".pdf"; - if (file_exists($file)) - { + } + } + + // On efface le répertoire de pdf provisoire + $expeditionref = sanitize_string($provref); + if ($conf->expedition->dir_output) + { + $dir = $conf->expedition->dir_output . "/" . $expeditionref; + $file = $dir . "/" . $expeditionref . ".pdf"; + if (file_exists($file)) + { if (!dol_delete_file($file)) - { - $this->error=$langs->trans("ErrorCanNotDeleteFile",$file); - } - } - if (file_exists($dir)) - { + { + $this->error=$langs->trans("ErrorCanNotDeleteFile",$file); + } + } + if (file_exists($dir)) + { if (!dol_delete_dir($dir)) - { - $this->error=$langs->trans("ErrorCanNotDeleteDir",$dir); - } - } - } - + { + $this->error=$langs->trans("ErrorCanNotDeleteDir",$dir); + } + } + } + } - else + else { - $this->db->rollback(); - $this->error=$this->db->error(); - dolibarr_syslog("Expedition::valid ".$this->error); - return -1; + $this->db->rollback(); + $this->error=$this->db->error(); + dolibarr_syslog("Expedition::valid ".$this->error); + return -1; } - } - else - { - $this->db->rollback(); - $this->error="Non autorise"; - dolibarr_syslog("Expedition::valid ".$this->error); - return -1; - } - - $this->db->commit(); - //dolibarr_syslog("Expedition::valid commit"); - return 1; - } - - - /** - * \brief Crée un bon de livraison à partir de l'expédition - * \param user Utilisateur - * \return int <0 si ko, >=0 si ok - */ - function create_delivery($user) - { - global $conf; - - if ($conf->livraison_bon->enabled) - { - if ($this->statut == 1) + } + else + { + $this->db->rollback(); + $this->error="Non autorise"; + dolibarr_syslog("Expedition::valid ".$this->error); + return -1; + } + + $this->db->commit(); + //dolibarr_syslog("Expedition::valid commit"); + return 1; + } + + + /** + * \brief Crée un bon de livraison à partir de l'expédition + * \param user Utilisateur + * \return int <0 si ko, >=0 si ok + */ + function create_delivery($user) + { + global $conf; + + if ($conf->livraison_bon->enabled) + { + if ($this->statut == 1) { - // Expédition validée - include_once(DOL_DOCUMENT_ROOT."/livraison/livraison.class.php"); - $livraison = new Livraison($this->db); - $result=$livraison->create_from_sending($user, $this->id); - if ($result > 0) - { - return $result; - } - else - { - $this->error=$livraison->error; - return $result; - } + // Expédition validée + include_once(DOL_DOCUMENT_ROOT."/livraison/livraison.class.php"); + $livraison = new Livraison($this->db); + $result=$livraison->create_from_sending($user, $this->id); + if ($result > 0) + { + return $result; + } + else + { + $this->error=$livraison->error; + return $result; + } } - else return 0; - } - else return 0; - } - - /** - * Ajoute une ligne - * - */ - function addline( $entrepot_id, $id, $qty ) - { - $num = sizeof($this->lignes); - $ligne = new ExpeditionLigne($this->db); - - $ligne->entrepot_id = $entrepot_id; - $ligne->origin_line_id = $id; - $ligne->qty = $qty; - - $this->lignes[$num] = $ligne; - } - - /** - * - * - */ - function delete_line($idligne) - { - if ($this->statut == 0) - { - $sql = "DELETE FROM ".MAIN_DB_PREFIX."commandedet WHERE rowid = $idligne"; - - if ($this->db->query($sql) ) + else return 0; + } + else return 0; + } + + /** + * Ajoute une ligne + * + */ + function addline( $entrepot_id, $id, $qty ) + { + $num = sizeof($this->lignes); + $ligne = new ExpeditionLigne($this->db); + + $ligne->entrepot_id = $entrepot_id; + $ligne->origin_line_id = $id; + $ligne->qty = $qty; + + $this->lignes[$num] = $ligne; + } + + /** + * + * + */ + function delete_line($idligne) + { + if ($this->statut == 0) + { + $sql = "DELETE FROM ".MAIN_DB_PREFIX."commandedet WHERE rowid = $idligne"; + + if ($this->db->query($sql) ) { - $this->update_price(); - return 1; + $this->update_price(); + return 1; } - else + else { - return 0; + return 0; } - } - } - - /** - * Supprime la fiche - * - */ - function delete() - { - $this->db->begin(); - - $sql = "DELETE FROM ".MAIN_DB_PREFIX."expeditiondet WHERE fk_expedition = ".$this->id; - if ( $this->db->query($sql) ) - { - $sql = "DELETE FROM ".MAIN_DB_PREFIX."expedition WHERE rowid = ".$this->id; - if ( $this->db->query($sql) ) + } + } + + /** + * Supprime la fiche + * + */ + function delete() + { + $this->db->begin(); + + $sql = "DELETE FROM ".MAIN_DB_PREFIX."expeditiondet WHERE fk_expedition = ".$this->id; + if ( $this->db->query($sql) ) + { + $sql = "DELETE FROM ".MAIN_DB_PREFIX."expedition WHERE rowid = ".$this->id; + if ( $this->db->query($sql) ) { - $this->db->commit(); - + $this->db->commit(); + // On efface le répertoire de pdf provisoire $expref = sanitize_string($this->ref); if ($conf->expedition->dir_output) @@ -630,7 +630,7 @@ class Expedition extends CommonObject /** * \brief Renvoi le libellé d'un statut donné * \param statut Id statut - * \param mode 0=libellé long, 1=libellé court, 2=Picto + Libellé court, 3=Picto, 4=Picto + Libellé long, 5=Libellé court + Picto + * \param mode 0=libellé long, 1=libellé court, 2=Picto + Libellé court, 3=Picto, 4=Picto + Libellé long, 5=Libellé court + Pict * \return string Libellé */ function LibStatut($statut,$mode) @@ -661,14 +661,14 @@ class Expedition extends CommonObject /** * \brief Initialise la facture avec valeurs fictives aléatoire - * Sert à générer une facture pour l'aperu des modèles ou demo + * Sert à générer une facture pour l'aperu des modèles ou dem */ function initAsSpecimen() { global $user,$langs; dolibarr_syslog("Expedition::initAsSpecimen"); - + // Charge tableau des id de société socids $socids = array(); $sql = "SELECT rowid FROM ".MAIN_DB_PREFIX."societe WHERE client=1 LIMIT 10"; @@ -738,54 +738,54 @@ class Expedition extends CommonObject $xnbp++; } } - /* - Fetch deliveries method and return an array - */ - function fetch_delivery_methods() - { - $meths = array(); - - $sql = "SELECT em.rowid, em.libelle"; - $sql.= " FROM ".MAIN_DB_PREFIX."expedition_methode as em"; - $sql.= " WHERE em.statut = 1 ORDER BY em.libelle ASC"; - - $resql = $this->db->query($sql); - if ($resql) - { - while ($obj = $this->db->fetch_object($resql)) - { - $this->meths[$obj->rowid] = $obj->libelle; - } - } - } - /* - Get tracking url status + /* + Fetch deliveries method and return an array */ - function GetUrlTrackingStatus() - { - $sql = "SELECT em.code"; - $sql.= " FROM ".MAIN_DB_PREFIX."expedition_methode as em"; - $sql.= " WHERE em.rowid = ".$this->expedition_method_id; - - $resql = $this->db->query($sql); - if ($resql) - { - if ($obj = $this->db->fetch_object($resql)) - { - $code = $obj->code; - } - } + function fetch_delivery_methods() + { + $meths = array(); - if ($code) { - $classe = "methode_expedition_".strtolower($code); - include "./mods/methode_expedition_".strtolower($code).".modules.php"; - $obj = new $classe; - $url = $obj->provider_url_status($this->tracking_number); - $this->tracking_url = sprintf('url',$url,$url); - } else { - $this->tracking_url = ''; - } - } + $sql = "SELECT em.rowid, em.libelle"; + $sql.= " FROM ".MAIN_DB_PREFIX."expedition_methode as em"; + $sql.= " WHERE em.statut = 1 ORDER BY em.libelle ASC"; + + $resql = $this->db->query($sql); + if ($resql) + { + while ($obj = $this->db->fetch_object($resql)) + { + $this->meths[$obj->rowid] = $obj->libelle; + } + } + } + /* + Get tracking url status + */ + function GetUrlTrackingStatus() + { + $sql = "SELECT em.code"; + $sql.= " FROM ".MAIN_DB_PREFIX."expedition_methode as em"; + $sql.= " WHERE em.rowid = ".$this->expedition_method_id; + + $resql = $this->db->query($sql); + if ($resql) + { + if ($obj = $this->db->fetch_object($resql)) + { + $code = $obj->code; + } + } + + if ($code) { + $classe = "methode_expedition_".strtolower($code); + require_once(DOL_DOCUMENT_ROOT."/includes/modules/expedition/methode_expedition_".strtolower($code).".modules.php"); + $obj = new $classe; + $url = $obj->provider_url_status($this->tracking_number); + $this->tracking_url = sprintf('url',$url,$url); + } else { + $this->tracking_url = ''; + } + } } diff --git a/htdocs/expedition/fiche.php b/htdocs/expedition/fiche.php index 434499f590c..316d194e317 100644 --- a/htdocs/expedition/fiche.php +++ b/htdocs/expedition/fiche.php @@ -2,7 +2,7 @@ /* Copyright (C) 2003-2008 Rodolphe Quiedeville * Copyright (C) 2005-2008 Laurent Destailleur * Copyright (C) 2005 Simon TOSSER - * Copyright (C) 2005-2008 Régis Houssin + * Copyright (C) 2005-2008 Regis Houssin * * 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 @@ -29,7 +29,6 @@ require("./pre.inc.php"); require_once(DOL_DOCUMENT_ROOT."/html.formfile.class.php"); -require_once(DOL_DOCUMENT_ROOT."/expedition/mods/pdf/ModelePdfExpedition.class.php"); require_once(DOL_DOCUMENT_ROOT."/lib/sendings.lib.php"); if ($conf->produit->enabled) require_once(DOL_DOCUMENT_ROOT."/product.class.php"); if ($conf->propal->enabled) require_once(DOL_DOCUMENT_ROOT."/propal.class.php"); @@ -73,8 +72,8 @@ if ($_POST["action"] == 'add') $expedition->origin = $origin; $expedition->origin_id = $origin_id; - // On boucle sur chaque ligne du document d'origine pour compléter objet expedition - // avec qté à livrer + // On boucle sur chaque ligne du document d'origine pour compl�ter objet expedition + // avec qt� � livrer $class = ucfirst($expedition->origin); $object = new $class($db); $object->fetch($expedition->origin_id); @@ -113,7 +112,7 @@ if ($_POST["action"] == 'add') } /* - * Génère un bon de livraison + * G�n�re un bon de livraison */ if ($_GET["action"] == 'create_delivery' && $conf->livraison_bon->enabled && $user->rights->expedition->livraison->creer) { @@ -152,11 +151,13 @@ if ($_POST["action"] == 'confirm_delete' && $_POST["confirm"] == 'yes') } /* - * Générer ou regénérer le PDF + * Build doc */ if ($_REQUEST['action'] == 'builddoc') // En get ou en post { - // Sauvegarde le dernier modèle choisi pour générer un document + require_once(DOL_DOCUMENT_ROOT."/includes/modules/expedition/pdf/ModelePdfExpedition.class.php"); + + // Sauvegarde le dernier modele choisi pour generer un document $expedition = new Expedition($db, 0, $_REQUEST['id']); $expedition->fetch($_REQUEST['id']); @@ -269,7 +270,7 @@ if ($_GET["action"] == 'create') print "".$langs->trans("Date").""; print ''.dolibarr_print_date($object->date,"day")."\n"; - // Entrepot (si forcé) + // Entrepot (si forc�) if ($conf->stock->enabled && $_GET["entrepot_id"]) { print ''.$langs->trans("Warehouse").''; @@ -307,7 +308,7 @@ if ($_GET["action"] == 'create') //$lignes = $object->fetch_lines(1); $numAsked = sizeof($object->lignes); - /* Lecture des expeditions déjà effectuées */ + /* Lecture des expeditions d�j� effectu�es */ $object->loadExpeditions(); if ($numAsked) @@ -370,12 +371,12 @@ if ($_GET["action"] == 'create') if ($_GET["entrepot_id"]) { $stock = $product->stock_entrepot[$_GET["entrepot_id"]]; - $stock+=0; // Convertit en numérique + $stock+=0; // Convertit en num�rique $defaultqty=min($quantityToBeDelivered, $stock); if ($defaultqty < 0) $defaultqty=0; } - // Quantité à livrer + // Quantit� � livrer print ''; print ''; print ''; @@ -428,7 +429,7 @@ if ($_GET["action"] == 'create') } else { - // Quantité à livrer + // Quantit� � livrer print ''; print ''; print ''; @@ -543,7 +544,7 @@ else } // calcul du poids total et du volume total des produits - //TODO: ajouter conversion pour le poids et le volume et selection de l'unité de mesure la plus utilisée + //TODO: ajouter conversion pour le poids et le volume et selection de l'unit� de mesure la plus utilis�e $totalWeight = ''; $totalVolume = ''; for ($i = 0 ; $i < $num_prod ; $i++) @@ -565,7 +566,7 @@ else print ''.$soc->getNomUrl(1).''; print ""; - // Document liée + // Document li�e print ''; if ($conf->commande->enabled) { @@ -661,7 +662,7 @@ else print "".nl2br($lignes[$i]->description)."\n"; } - // Qte commandé + // Qte command� print ''.$lignes[$i]->qty_asked.''; // Qte a expedier ou expedier @@ -758,7 +759,7 @@ else } else { - print "Expedition inexistante ou accés refusé"; + print "Expedition inexistante ou acc�s refus�"; } } diff --git a/htdocs/expedition/mods/pdf/README b/htdocs/expedition/mods/pdf/README deleted file mode 100644 index df5ded01383..00000000000 --- a/htdocs/expedition/mods/pdf/README +++ /dev/null @@ -1,18 +0,0 @@ -Classification des modules - -Les noms de modules dans ce répertoire doivent être sélectionnés -dans la liste des Perciformes - -Voir : http://fr.wikipedia.org/wiki/Perciformes - -Pris - -- rouget -- dorade -- mérou - -Disponibles - -- ombrine -- mulet -- maquereau \ No newline at end of file diff --git a/htdocs/html.formfile.class.php b/htdocs/html.formfile.class.php index 98547800a2d..4c395b5d738 100644 --- a/htdocs/html.formfile.class.php +++ b/htdocs/html.formfile.class.php @@ -18,14 +18,14 @@ /** * \file htdocs/html.formfile.class.php - * \brief Fichier de la classe des fonctions prédéfinie de composants html fichiers + * \brief Fichier de la classe des fonctions pr�d�finie de composants html fichiers * \version $Id$ */ /** * \class FormFile - * \brief Classe permettant la génération de composants html fichiers + * \brief Classe permettant la g�n�ration de composants html fichiers */ class FormFile { @@ -35,7 +35,7 @@ class FormFile /** * \brief Constructeur - * \param DB handler d'accès base de donnée + * \param DB handler d'acc�s base de donn�e */ function FormFile($DB) { @@ -110,20 +110,20 @@ class FormFile /** * \brief Affiche la cartouche de la liste des documents d'une propale, facture... * \param modulepart propal=propal, facture=facture, ... - * \param filename Sous rep à scanner (vide si filedir deja complet) - * \param filedir Repertoire à scanner + * \param filename Sous rep � scanner (vide si filedir deja complet) + * \param filedir Repertoire � scanner * \param urlsource Url page origine (pour retour) - * \param genallowed Génération autorisée (1/0 ou array des formats) - * \param delallowed Suppression autorisée (1/0) - * \param modelselected Modele à pré-sélectionner par défaut + * \param genallowed G�n�ration autoris�e (1/0 ou array des formats) + * \param delallowed Suppression autoris�e (1/0) + * \param modelselected Modele � pr�-s�lectionner par d�faut * \param modelliste Tableau des modeles possibles. Use '' to hide combo select list. - * \param forcenomultilang N'affiche pas option langue meme si MAIN_MULTILANGS défini + * \param forcenomultilang N'affiche pas option langue meme si MAIN_MULTILANGS d�fini * \param iconPDF N'affiche que l'icone PDF avec le lien (1/0) * \param maxfilenamelength Max length for filename shown * \param noform Do not output html form start and end - * \remarks Le fichier de facture détaillée est de la forme + * \remarks Le fichier de facture d�taill�e est de la forme * REFFACTURE-XXXXXX-detail.pdf ou XXXXX est une forme diverse - * \return int <0 si ko, nbre de fichiers affichés si ok + * \return int <0 si ko, nbre de fichiers affich�s si ok */ function show_documents($modulepart,$filename,$filedir,$urlsource,$genallowed,$delallowed=0,$modelselected='',$modelliste=array(),$forcenomultilang=0,$iconPDF=0,$maxfilenamelength=28,$noform=0) { @@ -178,7 +178,7 @@ class FormFile if (is_array($genallowed)) $modellist=$genallowed; else { - include_once(DOL_DOCUMENT_ROOT.'/expedition/mods/pdf/ModelePdfExpedition.class.php'); + include_once(DOL_DOCUMENT_ROOT.'/includes/modules/expedition/pdf/ModelePdfExpedition.class.php'); $model=new ModelePDFExpedition(); $modellist=$model->liste_modeles($this->db); } @@ -188,7 +188,7 @@ class FormFile if (is_array($genallowed)) $modellist=$genallowed; else { - include_once(DOL_DOCUMENT_ROOT.'/livraison/mods/modules_livraison.php'); + include_once(DOL_DOCUMENT_ROOT.'/includes/modules/livraison/modules_livraison.php'); $model=new ModelePDFDeliveryOrder(); $modellist=$model->liste_modeles($this->db); } @@ -310,7 +310,7 @@ class FormFile } $file_list=dol_dir_list($filedir,'files',0,$filter,'\.meta$'.$png,'date',SORT_DESC); - // Affiche en-tete tableau si non deja affiché + // Affiche en-tete tableau si non deja affich� if (sizeof($file_list) && ! $headershown && !$iconPDF) { $headershown=1; @@ -318,12 +318,12 @@ class FormFile print ''; } - // Boucle sur chaque ligne trouvée + // Boucle sur chaque ligne trouv�e foreach($file_list as $i => $file) { $var=!$var; - // Défini chemin relatif par rapport au module pour lien download + // D�fini chemin relatif par rapport au module pour lien download $relativepath=$file["name"]; // Cas general if ($filename) $relativepath=$filename."/".$file["name"]; // Cas propal, facture... // Autre cas diff --git a/htdocs/includes/modules/expedition/README b/htdocs/includes/modules/expedition/README deleted file mode 100644 index fa6fed9dc22..00000000000 --- a/htdocs/includes/modules/expedition/README +++ /dev/null @@ -1,2 +0,0 @@ -Deplace dans htdocs/expedition/mods pour les modules -et htdocs/expedition/mods/pdf pour les modeles pdf \ No newline at end of file diff --git a/htdocs/expedition/mods/methode_expedition.modules.php b/htdocs/includes/modules/expedition/methode_expedition.modules.php similarity index 95% rename from htdocs/expedition/mods/methode_expedition.modules.php rename to htdocs/includes/modules/expedition/methode_expedition.modules.php index 66b39efc020..21d5ac27dac 100644 --- a/htdocs/expedition/mods/methode_expedition.modules.php +++ b/htdocs/includes/modules/expedition/methode_expedition.modules.php @@ -16,24 +16,22 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * or see http://www.gnu.org/ - * - * $Id$ - * $Source$ */ /** - \file htdocs/expedition/mods/methode_expedition.modules.php - \ingroup expedition - \brief Fichier contenant la classe m�re de generation de bon de livraison en PDF - et la classe m�re de num�rotation des bons de livraisons - \version $Revision$ + * \file htdocs/includes/modules/expedition/methode_expedition.modules.php + * \ingroup expedition + * \brief Fichier contenant la classe mere de generation de bon de livraison en PDF + * et la classe mere de numerotation des bons de livraisons + * \version $Id$ */ require_once(DOL_DOCUMENT_ROOT.'/includes/fpdf/fpdfi/fpdi_protection.php'); + /** - \class methode_expedition - \brief Classe m�re des methodes expeditions + * \class methode_expedition + * \brief Classe mere des methodes expeditions */ class methode_expedition { diff --git a/htdocs/expedition/mods/methode_expedition_colsui.modules.php b/htdocs/includes/modules/expedition/methode_expedition_colsui.modules.php similarity index 94% rename from htdocs/expedition/mods/methode_expedition_colsui.modules.php rename to htdocs/includes/modules/expedition/methode_expedition_colsui.modules.php index ab76d98ab97..cb3133d6563 100644 --- a/htdocs/expedition/mods/methode_expedition_colsui.modules.php +++ b/htdocs/includes/modules/expedition/methode_expedition_colsui.modules.php @@ -14,17 +14,19 @@ * * You should have received a copy of the GNU General Public License * along with this program. If not, see . - * - * $Id$ - * $Source$ + */ + +/* + * \version $Id$ */ include_once "methode_expedition.modules.php"; + Class methode_expedition_colsui extends methode_expedition { - Function methode_expedition_colsui($db=0) + function methode_expedition_colsui($db=0) { $this->db = $db; $this->id = 3; // Do not change this value diff --git a/htdocs/expedition/mods/methode_expedition_enl.modules.php b/htdocs/includes/modules/expedition/methode_expedition_enl.modules.php similarity index 75% rename from htdocs/expedition/mods/methode_expedition_enl.modules.php rename to htdocs/includes/modules/expedition/methode_expedition_enl.modules.php index 33bc9a2a8aa..d98e02ca7b4 100644 --- a/htdocs/expedition/mods/methode_expedition_enl.modules.php +++ b/htdocs/includes/modules/expedition/methode_expedition_enl.modules.php @@ -13,24 +13,27 @@ * * You should have received a copy of the GNU General Public License * along with this program. If not, see . - * - * $Id$ - * $Source$ - * */ + +/* + * \version $Id$ + */ + include_once "methode_expedition.modules.php"; + Class methode_expedition_enl extends methode_expedition { - Function methode_expedition_enl($db=0) - { - $this->db = $db; - $this->id = 1; // Do not change this value - $this->name = "Enlèvement"; - $this->code = "ENL"; - $this->description = "Enlèvement sur place par le client"; - } + function methode_expedition_enl($db=0) + { + global $langs; + $this->db = $db; + $this->id = 1; // Do not change this value + $this->name = "Enlevement"; + $this->code = "ENL"; + $this->description = $langs->trans("Enlevement"); + } } ?> diff --git a/htdocs/expedition/mods/methode_expedition_trans.modules.php b/htdocs/includes/modules/expedition/methode_expedition_trans.modules.php similarity index 75% rename from htdocs/expedition/mods/methode_expedition_trans.modules.php rename to htdocs/includes/modules/expedition/methode_expedition_trans.modules.php index ef0f1dff32e..59b4b133fc6 100644 --- a/htdocs/expedition/mods/methode_expedition_trans.modules.php +++ b/htdocs/includes/modules/expedition/methode_expedition_trans.modules.php @@ -13,25 +13,28 @@ * * You should have received a copy of the GNU General Public License * along with this program. If not, see . - * - * $Id$ - * $Source$ - * + */ + +/* + * \version $Id$ */ include_once "methode_expedition.modules.php"; + Class methode_expedition_trans extends methode_expedition { - Function methode_expedition_trans($db=0) - { - $this->db = $db; - $this->id = 2; // Ne pas changer cette valeur - $this->code = "TRANS"; - $this->name = "Transporteur"; - $this->description = "Transporteur générique"; - } + function methode_expedition_trans($db=0) + { + global $langs; + + $this->db = $db; + $this->id = 2; // Ne pas changer cette valeur + $this->code = "TRANS"; + $this->name = "Transporteur"; + $this->description = $langs->trans("GenericTransport"); + } } ?> diff --git a/htdocs/expedition/mods/pdf/ModelePdfExpedition.class.php b/htdocs/includes/modules/expedition/pdf/ModelePdfExpedition.class.php similarity index 83% rename from htdocs/expedition/mods/pdf/ModelePdfExpedition.class.php rename to htdocs/includes/modules/expedition/pdf/ModelePdfExpedition.class.php index 1f153fb8d45..28dd9c9d13b 100644 --- a/htdocs/expedition/mods/pdf/ModelePdfExpedition.class.php +++ b/htdocs/includes/modules/expedition/pdf/ModelePdfExpedition.class.php @@ -20,11 +20,11 @@ */ /** - \file htdocs/expedition/mods/pdf/ModelePdfExpedition.class.php - \ingroup shipping - \brief Fichier contenant la classe mère de generation des expeditions - \version $Id$ -*/ + * \file htdocs/includes/module/expedition/pdf/ModelePdfExpedition.class.php + * \ingroup shipping + * \brief Fichier contenant la classe mere de generation des expeditions + * \version $Id$ + */ require_once(DOL_DOCUMENT_ROOT.'/lib/functions.lib.php'); require_once DOL_DOCUMENT_ROOT.'/includes/fpdf/DolibarrPdfBarCode.class.php'; @@ -32,7 +32,7 @@ require_once DOL_DOCUMENT_ROOT.'/includes/fpdf/DolibarrPdfBarCode.class.php'; /** \class ModelePdfExpedition - \brief Classe mère des modèles de bon d'expedition + \brief Classe m�re des mod�les de bon d'expedition */ class ModelePdfExpedition extends DolibarrPdfBarCode @@ -41,7 +41,7 @@ class ModelePdfExpedition extends DolibarrPdfBarCode /** - \brief Renvoi le dernier message d'erreur de création de PDF de commande + \brief Renvoi le dernier message d'erreur de cr�ation de PDF de commande */ function pdferror() { @@ -50,7 +50,7 @@ class ModelePdfExpedition extends DolibarrPdfBarCode /** - * \brief Renvoi la liste des modèles actifs + * \brief Renvoi la liste des mod�les actifs * \return array Tableau des modeles (cle=id, valeur=libelle) */ function liste_modeles($db) @@ -84,11 +84,11 @@ class ModelePdfExpedition extends DolibarrPdfBarCode } -/* - \brief Crée un bon d'expedition sur disque - \param db objet base de donnée - \param id id de la expedition à créer - \param modele force le modele à utiliser ('' par defaut) +/** + \brief Cree un bon d'expedition sur disque + \param db objet base de donnee + \param id id de la expedition a creer + \param modele force le modele a utiliser ('' par defaut) \param outputlangs objet lang a utiliser pour traduction */ function expedition_pdf_create($db, $id, $modele='', $outputlangs='') @@ -96,10 +96,10 @@ function expedition_pdf_create($db, $id, $modele='', $outputlangs='') global $conf,$langs; $langs->load("sendings"); - $dir = DOL_DOCUMENT_ROOT."/expedition/mods/pdf/"; + $dir = DOL_DOCUMENT_ROOT."/includes/modules/expedition/pdf/"; $modelisok=0; - // Positionne modele sur le nom du modele de commande à utiliser + // Positionne modele sur le nom du modele de commande a utiliser $file = "pdf_expedition_".$modele.".modules.php"; if ($modele && file_exists($dir.$file)) $modelisok=1; @@ -117,7 +117,7 @@ function expedition_pdf_create($db, $id, $modele='', $outputlangs='') $liste=array(); $model=new ModelePDFExpedition(); $liste=$model->liste_modeles($db); - $modele=key($liste); // Renvoie premiere valeur de clé trouvé dans le tableau + $modele=key($liste); // Renvoie premiere valeur de cl� trouv� dans le tableau $file = "pdf_expedition_".$modele.".modules.php"; if (file_exists($dir.$file)) $modelisok=1; } diff --git a/htdocs/expedition/mods/pdf/pdf_expedition_merou.modules.php b/htdocs/includes/modules/expedition/pdf/pdf_expedition_merou.modules.php similarity index 93% rename from htdocs/expedition/mods/pdf/pdf_expedition_merou.modules.php rename to htdocs/includes/modules/expedition/pdf/pdf_expedition_merou.modules.php index e34e2976fb2..503cf88f859 100644 --- a/htdocs/expedition/mods/pdf/pdf_expedition_merou.modules.php +++ b/htdocs/includes/modules/expedition/pdf/pdf_expedition_merou.modules.php @@ -20,18 +20,18 @@ */ /** - * \file htdocs/expedition/mods/pdf/pdf_expedition_merou.modules.php + * \file htdocs/includes/modules/expedition/pdf/pdf_expedition_merou.modules.php * \ingroup expedition - * \brief Fichier de la classe permettant de générer les bordereaux envoi au modèle Merou + * \brief Fichier de la classe permettant de generer les bordereaux envoi au mod�le Merou * \version $Id$ */ -require_once DOL_DOCUMENT_ROOT."/expedition/mods/pdf/ModelePdfExpedition.class.php"; +require_once DOL_DOCUMENT_ROOT."/includes/modules/expedition/pdf/ModelePdfExpedition.class.php"; require_once DOL_DOCUMENT_ROOT."/contact.class.php"; /** - * \class pdf_expedition_dorade - * \brief Classe permettant de générer les borderaux envoi au modèle Merou + * \class pdf_expedition_merou + * \brief Classe permettant de generer les borderaux envoi au modele Merou */ Class pdf_expedition_merou extends ModelePdfExpedition { @@ -40,7 +40,7 @@ Class pdf_expedition_merou extends ModelePdfExpedition /** \brief Constructeur - \param db Handler accès base de donnée + \param db Handler acc�s base de donn�e */ function pdf_expedition_merou($db=0) { @@ -49,7 +49,7 @@ Class pdf_expedition_merou extends ModelePdfExpedition $this->db = $db; $this->name = "Merou"; $this->description = "Modele Merou 2xA5 \n - Attention !! Il est nécessaire de creer 4 nouveaux types de contact : \n + Attention !! Il est necessaire de creer 4 nouveaux types de contact : \n |element->commande,source->internal,code->LIVREUR \n |element->commande,source->external,code->LIVREUR \n |element->commande,source->external,code->EXPEDITEUR \n @@ -65,13 +65,13 @@ Class pdf_expedition_merou extends ModelePdfExpedition // Recupere emmetteur $this->emetteur=$mysoc; - if (! $this->emetteur->pays_code) $this->emetteur->pays_code=substr($langs->defaultlang,-2); // Par defaut, si n'était pas défini + if (! $this->emetteur->pays_code) $this->emetteur->pays_code=substr($langs->defaultlang,-2); // Par defaut, si n'�tait pas d�fini } /** - * \brief Fonction générant le document sur le disque - * \param obj Objet expedition à générer (ou id si ancienne methode) + * \brief Fonction generant le document sur le disque + * \param obj Objet expedition a generer (ou id si ancienne methode) * \return int 1=ok, 0=ko */ function write_file(&$obj, $outputlangs='') @@ -116,7 +116,7 @@ Class pdf_expedition_merou extends ModelePdfExpedition if ($idcontact[0]) $this->livreur->fetch(); - // Définition de $dir et $file + // D�finition de $dir et $file if ($this->expe->specimen) { $dir = $conf->expedition_bon->dir_output; @@ -149,7 +149,7 @@ Class pdf_expedition_merou extends ModelePdfExpedition { $pdfrights = array('print'); // Ne permet que l'impression du document $pdfuserpass = ''; // Mot de passe pour l'utilisateur final - $pdfownerpass = NULL; // Mot de passe du propriétaire, créé aléatoirement si pas défini + $pdfownerpass = NULL; // Mot de passe du propri�taire, cr�� al�atoirement si pas d�fini $pdf->SetProtection($pdfrights,$pdfuserpass,$pdfownerpass); } @@ -168,7 +168,7 @@ Class pdf_expedition_merou extends ModelePdfExpedition //Insertion de l entete $this->_pagehead($pdf, $this->expe, $outputlangs); - //Initialisation des coordonnées + //Initialisation des coordonn�es $tab_top = 53; $tab_height = 70; $pdf->SetFillColor(240,240,240); @@ -188,7 +188,7 @@ Class pdf_expedition_merou extends ModelePdfExpedition //Generation du produit $Prod = new Product($this->db); $Prod->fetch($Produits[$i]->fk_product); - //Creation des cases à cocher + //Creation des cases � cocher $pdf->rect(10+3, $curY+1, 3, 3); $pdf->rect(20+3, $curY+1, 3, 3); //Insertion de la reference du produit @@ -199,11 +199,11 @@ Class pdf_expedition_merou extends ModelePdfExpedition $pdf->SetFont('Arial','', 7); $pdf->SetXY (50, $curY ); $pdf->MultiCell(90, 5, $Prod->libelle, 0, 'L', 0); - //Insertion de la quantite commandée + //Insertion de la quantite command�e $pdf->SetFont('Arial','', 7); $pdf->SetXY (140, $curY ); $pdf->MultiCell(30, 5, $this->expe->lignes[$i]->qty_asked, 0, 'C', 0); - //Insertion de la quantite à envoyer + //Insertion de la quantite � envoyer $pdf->SetFont('Arial','', 7); $pdf->SetXY (170, $curY ); $pdf->MultiCell(30, 5, $this->expe->lignes[$i]->qty_shipped, 0, 'C', 0); diff --git a/htdocs/expedition/mods/pdf/pdf_expedition_rouget.modules.php b/htdocs/includes/modules/expedition/pdf/pdf_expedition_rouget.modules.php similarity index 90% rename from htdocs/expedition/mods/pdf/pdf_expedition_rouget.modules.php rename to htdocs/includes/modules/expedition/pdf/pdf_expedition_rouget.modules.php index 1c2d5618a59..b681f53bd0f 100644 --- a/htdocs/expedition/mods/pdf/pdf_expedition_rouget.modules.php +++ b/htdocs/includes/modules/expedition/pdf/pdf_expedition_rouget.modules.php @@ -19,18 +19,18 @@ */ /** - * \file htdocs/expedition/mods/pdf/pdf_expedition_rouget.modules.php + * \file htdocs/includes/modules/expedition/pdf/pdf_expedition_rouget.modules.php * \ingroup expedition - * \brief Fichier de la classe permettant de générer les bordereaux envoi au modèle Rouget + * \brief Fichier de la classe permettant de generer les bordereaux envoi au mod�le Rouget * \version $Id$ */ -require_once DOL_DOCUMENT_ROOT."/expedition/mods/pdf/ModelePdfExpedition.class.php"; +require_once DOL_DOCUMENT_ROOT."/includes/modules/expedition/pdf/ModelePdfExpedition.class.php"; /** * \class pdf_expedition_dorade - * \brief Classe permettant de générer les borderaux envoi au modèle Rouget + * \brief Classe permettant de generer les borderaux envoi au modele Rouget */ Class pdf_expedition_rouget extends ModelePdfExpedition { @@ -39,7 +39,7 @@ Class pdf_expedition_rouget extends ModelePdfExpedition /** \brief Constructeur - \param db Handler accès base de donnée + \param db Handler acc�s base de donn�e */ function pdf_expedition_rouget($db=0) { @@ -47,7 +47,7 @@ Class pdf_expedition_rouget extends ModelePdfExpedition $this->db = $db; $this->name = "rouget"; - $this->description = "Modèle simple."; + $this->description = $langs->trans("DocumentModelSimple"); $this->type = 'pdf'; $this->page_largeur = 210; @@ -62,7 +62,7 @@ Class pdf_expedition_rouget extends ModelePdfExpedition // Recupere emmetteur $this->emetteur=$mysoc; - if (! $this->emetteur->pays_code) $this->emetteur->pays_code=substr($langs->defaultlang,-2); // Par defaut, si n'était pas défini + if (! $this->emetteur->pays_code) $this->emetteur->pays_code=substr($langs->defaultlang,-2); // Par defaut, si n'�tait pas d�fini } /* @@ -112,8 +112,8 @@ Class pdf_expedition_rouget extends ModelePdfExpedition /** - * \brief Fonction générant le document sur le disque - * \param obj Objet expedition à générer (ou id si ancienne methode) + * \brief Fonction g�n�rant le document sur le disque + * \param obj Objet expedition � g�n�rer (ou id si ancienne methode) * \return int 1=ok, 0=ko */ function write_file(&$obj, $outputlangs='') @@ -136,7 +136,7 @@ Class pdf_expedition_rouget extends ModelePdfExpedition { $this->expe = $obj; - // Définition de $dir et $file + // D�finition de $dir et $file if ($this->expe->specimen) { $dir = $conf->expedition_bon->dir_output; @@ -220,7 +220,7 @@ Class pdf_expedition_rouget extends ModelePdfExpedition if ($libelleproduitservice) $libelleproduitservice.="
"; $libelleproduitservice.=dol_htmlentitiesbr($this->expe->lignes[$i]->description,1); } - // Si ligne associée à un code produit + // Si ligne associ�e � un code produit if ($this->expe->lignes[$i]->fk_product) { $prodser = new Product($this->db); @@ -240,7 +240,7 @@ Class pdf_expedition_rouget extends ModelePdfExpedition } - $pdf->SetFont('Arial','', 9); // Dans boucle pour gérer multi-page + $pdf->SetFont('Arial','', 9); // Dans boucle pour g�rer multi-page $pdf->writeHTMLCell(150, 3, $this->posxdesc, $curY, $libelleproduitservice, 0, 1); diff --git a/htdocs/includes/modules/livraison/README b/htdocs/includes/modules/livraison/README deleted file mode 100644 index 004ffd88286..00000000000 --- a/htdocs/includes/modules/livraison/README +++ /dev/null @@ -1,2 +0,0 @@ -Deplace dans htdocs/livraison/mods pour les modules -et htdocs/livraison/mods/pdf pour les modeles pdf \ No newline at end of file diff --git a/htdocs/livraison/mods/mod_livraison_jade.php b/htdocs/includes/modules/livraison/mod_livraison_jade.php similarity index 76% rename from htdocs/livraison/mods/mod_livraison_jade.php rename to htdocs/includes/modules/livraison/mod_livraison_jade.php index 96f2e90179a..6ddce177de5 100644 --- a/htdocs/livraison/mods/mod_livraison_jade.php +++ b/htdocs/includes/modules/livraison/mod_livraison_jade.php @@ -20,18 +20,18 @@ */ /** - \file htdocs/includes/modules/commande/mod_livraison_jade.php + \file htdocs/includes/modules/livraison/mod_livraison_jade.php \ingroup livraison - \brief Fichier contenant la classe du modèle de numérotation de référence de bon de livraison Jade + \brief Fichier contenant la classe du modele de numerotation de reference de bon de livraison Jade \version $Id$ */ -require_once(DOL_DOCUMENT_ROOT ."/livraison/mods/modules_livraison.php"); +require_once(DOL_DOCUMENT_ROOT ."/includes/modules/livraison/modules_livraison.php"); /** \class mod_livraison_jade - \brief Classe du modèle de numérotation de référence de bon de livraison Jade + \brief Classe du modele de numerotation de reference de bon de livraison Jade */ class mod_livraison_jade extends ModeleNumRefDeliveryOrder @@ -41,15 +41,16 @@ class mod_livraison_jade extends ModeleNumRefDeliveryOrder var $nom = "Jade"; - /** \brief Renvoi la description du modele de numérotation + /** \brief Renvoi la description du modele de numerotation * \return string Texte descripif */ function info() { - return "Renvoie le numéro sous la forme numérique BLYY00001, BLYY00002, BLYY00003, ... où YY représente l'année. Le numéro d'incrément qui suit l'année n'est PAS remis à zéro en début d'année."; + global $langs; + return $langs->trans("NumRefModelJade"); } - /** \brief Renvoi un exemple de numérotation + /** \brief Renvoi un exemple de numerotation * \return string Example */ function getExample() @@ -66,7 +67,7 @@ class mod_livraison_jade extends ModeleNumRefDeliveryOrder { global $db; - // D'abord on récupère la valeur max (réponse immédiate car champ indéxé) + // D'abord on r�cup�re la valeur max (r�ponse imm�diate car champ ind�x�) $blyy=''; $sql = "SELECT MAX(ref)"; $sql.= " FROM ".MAIN_DB_PREFIX."livraison"; @@ -77,10 +78,10 @@ class mod_livraison_jade extends ModeleNumRefDeliveryOrder if ($row) $blyy = substr($row[0],0,4); } - // Si au moins un champ respectant le modèle a été trouvée + // Si au moins un champ respectant le mod�le a �t� trouv�e if (eregi('BL[0-9][0-9]',$blyy)) { - // Recherche rapide car restreint par un like sur champ indexé + // Recherche rapide car restreint par un like sur champ index� $posindice=5; $sql = "SELECT MAX(0+SUBSTRING(ref,$posindice))"; $sql.= " FROM ".MAIN_DB_PREFIX."livraison"; @@ -105,8 +106,8 @@ class mod_livraison_jade extends ModeleNumRefDeliveryOrder } - /** \brief Renvoie la référence de commande suivante non utilisée - * \param objsoc Objet société + /** \brief Renvoie la r�f�rence de commande suivante non utilis�e + * \param objsoc Objet soci�t� * \param livraison Objet livraison * \return string Texte descripif */ diff --git a/htdocs/livraison/mods/mod_livraison_saphir.php b/htdocs/includes/modules/livraison/mod_livraison_saphir.php similarity index 86% rename from htdocs/livraison/mods/mod_livraison_saphir.php rename to htdocs/includes/modules/livraison/mod_livraison_saphir.php index 068c5f3a676..4a4a6de9a39 100644 --- a/htdocs/livraison/mods/mod_livraison_saphir.php +++ b/htdocs/includes/modules/livraison/mod_livraison_saphir.php @@ -20,17 +20,17 @@ */ /** - \file htdocs/includes/modules/commande/mod_livraison_saphir.php + \file htdocs/includes/modules/livraison/mod_livraison_saphir.php \ingroup expedition - \brief Fichier contenant la classe du modèle de numérotation de référence de livraison Saphir + \brief Fichier contenant la classe du modele de numerotation de reference de livraison Saphir \version $Id$ */ -require_once(DOL_DOCUMENT_ROOT ."/livraison/mods/modules_livraison.php"); +require_once(DOL_DOCUMENT_ROOT ."/includes/modules/livraison/modules_livraison.php"); /** \class mod_livraison_saphir - \brief Classe du modèle de numérotation de référence de livraison Saphir + \brief Classe du mod�le de num�rotation de r�f�rence de livraison Saphir */ class mod_livraison_saphir extends ModeleNumRefDeliveryOrder { @@ -39,7 +39,7 @@ class mod_livraison_saphir extends ModeleNumRefDeliveryOrder var $nom = 'Saphir'; - /** \brief Renvoi la description du modele de numérotation + /** \brief Renvoi la description du modele de numerotation * \return string Texte descripif */ function info() @@ -70,7 +70,7 @@ class mod_livraison_saphir extends ModeleNumRefDeliveryOrder return $texte; } - /** \brief Renvoi un exemple de numérotation + /** \brief Renvoi un exemple de num�rotation * \return string Example */ function getExample() @@ -101,7 +101,7 @@ class mod_livraison_saphir extends ModeleNumRefDeliveryOrder require_once(DOL_DOCUMENT_ROOT ."/lib/functions2.lib.php"); - // On défini critere recherche compteur + // On d�fini critere recherche compteur $mask=$conf->global->LIVRAISON_SAPHIR_MASK; if (! $mask) @@ -127,8 +127,8 @@ class mod_livraison_saphir extends ModeleNumRefDeliveryOrder } - /** \brief Renvoie la référence de commande suivante non utilisée - * \param objsoc Objet société + /** \brief Renvoie la r�f�rence de commande suivante non utilis�e + * \param objsoc Objet soci�t� * \param livraison Objet livraison * \return string Texte descripif */ diff --git a/htdocs/includes/modules/livraison/modules_livraison.php b/htdocs/includes/modules/livraison/modules_livraison.php new file mode 100644 index 00000000000..a825f0f88b4 --- /dev/null +++ b/htdocs/includes/modules/livraison/modules_livraison.php @@ -0,0 +1,234 @@ + + * Copyright (C) 2004-2008 Laurent Destailleur + * Copyright (C) 2004 Eric Seigne + * Copyright (C) 2006 Regis Houssin + * + * 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 + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + * or see http://www.gnu.org/ + */ + +/** + * \file htdocs/includes/livraison/modules_livraison.php + * \ingroup expedition + * \brief Fichier contenant la classe mere de generation de bon de livraison en PDF + * et la classe mere de numerotation des bons de livraisons + * \version $Id$ + */ + +require_once(DOL_DOCUMENT_ROOT.'/lib/functions.lib.php'); +require_once(DOL_DOCUMENT_ROOT.'/includes/fpdf/fpdfi/fpdi_protection.php'); + + +/** + \class ModelePDFDeliveryOrder + \brief Classe m�re des mod�les de bon de livraison + */ +class ModelePDFDeliveryOrder extends FPDF +{ + var $error=''; + + /** + \brief Renvoi le dernier message d'erreur de cr�ation de PDF de bon de livraison + */ + function pdferror() + { + return $this->error; + } + + /** + * \brief Renvoi la liste des mod�les actifs + */ + function liste_modeles($db) + { + $type='delivery'; + $liste=array(); + $sql ="SELECT nom as id, nom as lib"; + $sql.=" FROM ".MAIN_DB_PREFIX."document_model"; + $sql.=" WHERE type = '".$type."'"; + + $resql = $db->query($sql); + if ($resql) + { + $num = $db->num_rows($resql); + $i = 0; + while ($i < $num) + { + $row = $db->fetch_row($resql); + $liste[$row[0]]=$row[1]; + $i++; + } + } + else + { + $this->error=$db->error(); + return -1; + } + return $liste; + } + +} + + + +/** + \class ModeleNumRefDeliveryOrder + \brief Classe m�re des mod�les de num�rotation des r�f�rences de bon de livraison + */ + +class ModeleNumRefDeliveryOrder +{ + var $error=''; + + /** \brief Return if a module can be used or not + * \return boolean true if module can be used + */ + function isEnabled() + { + return true; + } + + /** \brief Renvoi la description par defaut du modele de num�rotation + * \return string Texte descripif + */ + function info() + { + global $langs; + $langs->load("deliveries"); + return $langs->trans("NoDescription"); + } + + /** \brief Renvoi un exemple de num�rotation + * \return string Example + */ + function getExample() + { + global $langs; + $langs->load("deliveries"); + return $langs->trans("NoExample"); + } + + /** \brief Test si les num�ros d�j� en vigueur dans la base ne provoquent pas d + * de conflits qui empechera cette num�rotation de fonctionner. + * \return boolean false si conflit, true si ok + */ + function canBeActivated() + { + return true; + } + + /** \brief Renvoi prochaine valeur attribu�e + * \return string Valeur + */ + function getNextValue() + { + global $langs; + return $langs->trans("NotAvailable"); + } + + /** \brief Renvoi version du module numerotation + * \return string Valeur + */ + function getVersion() + { + global $langs; + $langs->load("admin"); + + if ($this->version == 'development') return $langs->trans("VersionDevelopment"); + if ($this->version == 'experimental') return $langs->trans("VersionExperimental"); + if ($this->version == 'dolibarr') return DOL_VERSION; + return $langs->trans("NotAvailable"); + } +} + + + + +function delivery_order_pdf_create($db, $deliveryid, $modele='', $outputlangs='') +{ + global $langs; + $langs->load("deliveries"); + + $dir = DOL_DOCUMENT_ROOT."/includes/modules/livraison/pdf/"; + + // Positionne modele sur le nom du modele de bon de livraison a utiliser + if (! strlen($modele)) + { + if (defined("LIVRAISON_ADDON_PDF") && LIVRAISON_ADDON_PDF) + { + $modele = LIVRAISON_ADDON_PDF; + } + else + { + print $langs->trans("Error")." ".$langs->trans("Error_LIVRAISON_ADDON_PDF_NotDefined"); + return 0; + } + } + // Charge le modele + $file = "pdf_".$modele.".modules.php"; + if (file_exists($dir.$file)) + { + $classname = "pdf_".$modele; + require_once($dir.$file); + + $obj = new $classname($db); + + if ($obj->write_file($deliveryid,$outputlangs) > 0) + { + // on supprime l'image correspondant au preview + delivery_order_delete_preview($db, $deliveryid); + return 1; + } + else + { + dolibarr_syslog("Erreur dans delivery_order_pdf_create"); + dolibarr_print_error($db,$obj->pdferror()); + return 0; + } + } + else + { + print $langs->trans("Error")." ".$langs->trans("ErrorFileDoesNotExists",$dir.$file); + return 0; + } +} + + +function delivery_order_delete_preview($db, $deliveryid) +{ + global $langs,$conf; + + $delivery = new Livraison($db,"",$deliveryid); + $delivery->fetch($deliveryid); + $client = new Societe($db); + $client->fetch($delivery->socid); + + if ($conf->livraison->dir_output) + { + $deliveryref = sanitize_string($delivery->ref); + $dir = $conf->livraison->dir_output . "/" . $deliveryref ; + $file = $dir . "/" . $deliveryref . ".pdf.png"; + + if ( file_exists( $file ) && is_writable( $file ) ) + { + if ( ! unlink($file) ) + { + $this->error=$langs->trans("ErrorFailedToOpenFile",$file); + return 0; + } + } + } +} +?> diff --git a/htdocs/livraison/mods/pdf/pdf_sirocco.modules.php b/htdocs/includes/modules/livraison/pdf/pdf_sirocco.modules.php similarity index 95% rename from htdocs/livraison/mods/pdf/pdf_sirocco.modules.php rename to htdocs/includes/modules/livraison/pdf/pdf_sirocco.modules.php index 05f6cdb245e..5ed929c883c 100644 --- a/htdocs/livraison/mods/pdf/pdf_sirocco.modules.php +++ b/htdocs/includes/modules/livraison/pdf/pdf_sirocco.modules.php @@ -21,18 +21,18 @@ */ /** - \file htdocs/livraison/mods/pdf/pdf_sirocco.modules.php - \ingroup livraison - \brief Fichier de la classe permettant de g�n�rer les bons de livraison au mod�le Sirocco - \version $Id$ + * \file htdocs/includes/modules/livraison/pdf/pdf_sirocco.modules.php + * \ingroup livraison + * \brief Fichier de la classe permettant de generer les bons de livraison au mod�le Sirocco + * \version $Id$ */ -require_once(DOL_DOCUMENT_ROOT."/livraison/mods/modules_livraison.php"); +require_once(DOL_DOCUMENT_ROOT."/includes/modules/livraison/modules_livraison.php"); /** - \class pdf_sirocco - \brief Classe permettant de g�n�rer les bons de livraison au mod�le Sirocco + * \class pdf_sirocco + * \brief Classe permettant de generer les bons de livraison au modele Sirocco */ class pdf_sirocco extends ModelePDFDeliveryOrder @@ -50,8 +50,8 @@ class pdf_sirocco extends ModelePDFDeliveryOrder $this->db = $db; $this->name = "sirocco"; - $this->description = "Modele de bon de r�ception livraison simple"; - + $this->description = $langs->trans("DocumentModelSirocco"); + // Dimension page pour format A4 $this->type = 'pdf'; $this->page_largeur = 210; diff --git a/htdocs/livraison/mods/pdf/pdf_typhon.modules.php b/htdocs/includes/modules/livraison/pdf/pdf_typhon.modules.php similarity index 98% rename from htdocs/livraison/mods/pdf/pdf_typhon.modules.php rename to htdocs/includes/modules/livraison/pdf/pdf_typhon.modules.php index f860c1e0483..165386fbe12 100644 --- a/htdocs/livraison/mods/pdf/pdf_typhon.modules.php +++ b/htdocs/includes/modules/livraison/pdf/pdf_typhon.modules.php @@ -21,14 +21,14 @@ */ /** - * \file htdocs/livraison/mods/pdf/pdf_typhon.modules.php + * \file htdocs/includes/modules/livraison/pdf/pdf_typhon.modules.php * \ingroup livraison - * \brief Fichier de la classe permettant de g�n�rer les bons de livraison au mod�le Typho + * \brief Fichier de la classe permettant de generer les bons de livraison au mod�le Typho * \author Laurent Destailleur * \version $Id$ */ -require_once(DOL_DOCUMENT_ROOT."/livraison/mods/modules_livraison.php"); +require_once(DOL_DOCUMENT_ROOT."/includes/modules/livraison/modules_livraison.php"); require_once(DOL_DOCUMENT_ROOT."/livraison/livraison.class.php"); require_once(DOL_DOCUMENT_ROOT."/lib/company.lib.php"); @@ -55,7 +55,7 @@ class pdf_typhon extends ModelePDFDeliveryOrder $this->db = $db; $this->name = "typhon"; - $this->description = "Modele de bon de r�ception livraison complet (logo...)"; + $this->description = $langs->trans("DocumentModelTyphon"); // Dimension page pour format A4 $this->type = 'pdf'; diff --git a/htdocs/install/upgrade2.php b/htdocs/install/upgrade2.php index 3ab40c31033..8bef87ca030 100644 --- a/htdocs/install/upgrade2.php +++ b/htdocs/install/upgrade2.php @@ -1526,7 +1526,7 @@ function migrate_modeles($db,$langs,$conf) if ($conf->expedition->enabled) { - include_once(DOL_DOCUMENT_ROOT.'/expedition/mods/pdf/ModelePdfExpedition.class.php'); + include_once(DOL_DOCUMENT_ROOT.'/includes/modules/expedition/pdf/ModelePdfExpedition.class.php'); $model=new ModelePDFExpedition(); $modellist=$model->liste_modeles($db); if (sizeof($modellist)==0) diff --git a/htdocs/langs/en_US/sendings.lang b/htdocs/langs/en_US/sendings.lang index 10b1ecd8068..ce7aef31ad3 100644 --- a/htdocs/langs/en_US/sendings.lang +++ b/htdocs/langs/en_US/sendings.lang @@ -38,3 +38,9 @@ NewCarrier=New carrier ConfirmDeleteSending=Are you sure you want to delete this sending ? ConfirmValidateSending=Are you sure you want to valdate this sending ? ConfirmCancelSending=Are you sure you want to cancel this sending ? +GenericTransport=Generic transport +Enlevement=Gotten by customer +DocumentModelSimple=Simple document model + +# NumRef +NumRefModelJade=Return a reference number with format BLYY00001, ... where YY is year. Number at end is never reset to zero. diff --git a/htdocs/langs/fr_FR/sendings.lang b/htdocs/langs/fr_FR/sendings.lang index 438e7af4e53..2b03d9f53b1 100644 --- a/htdocs/langs/fr_FR/sendings.lang +++ b/htdocs/langs/fr_FR/sendings.lang @@ -38,3 +38,12 @@ NewCarrier=Nouveau transporteur ConfirmDeleteSending=Etes-vous sûr de vouloir supprimer cette expedition ? ConfirmValidateSending=Etes-vous sûr de vouloir valider cette expédition ? ConfirmCancelSending=Etes-vous sûr de vouloir annuler cette expédition ? +GenericTransport=Transporteur générique +Enlevement=Enlèvement sur place par le client +DocumentModelSimple=Modèle simple + +# NumRef +NumRefModelJade=Renvoie un numéro de référence sous la forme numérique BLYY00001, ... où YY représente l'année. Le numéro d'incrément qui suit l'année n'est PAS remis à zéro en début d'année. +# ModelDocument +DocumentModelSirocco=Modèle de bon de réception livraison simple +DocumentModelTyphon=Modèle de bon de réception livraison complet (logo...) diff --git a/htdocs/livraison/fiche.php b/htdocs/livraison/fiche.php index c7a6430cfee..91f16f4b082 100644 --- a/htdocs/livraison/fiche.php +++ b/htdocs/livraison/fiche.php @@ -28,7 +28,7 @@ */ require("./pre.inc.php"); -require_once(DOL_DOCUMENT_ROOT."/livraison/mods/modules_livraison.php"); +require_once(DOL_DOCUMENT_ROOT."/includes/modules/livraison/modules_livraison.php"); require_once(DOL_DOCUMENT_ROOT."/html.formfile.class.php"); require_once(DOL_DOCUMENT_ROOT."/lib/sendings.lib.php"); if ($conf->produit->enabled) require_once(DOL_DOCUMENT_ROOT."/product.class.php"); diff --git a/htdocs/livraison/livraison.class.php b/htdocs/livraison/livraison.class.php index 6a865afa62d..126b2660a98 100644 --- a/htdocs/livraison/livraison.class.php +++ b/htdocs/livraison/livraison.class.php @@ -336,9 +336,9 @@ class Livraison extends CommonObject { if (defined('LIVRAISON_ADDON')) { - if (is_readable(DOL_DOCUMENT_ROOT .'/livraison/mods/'.LIVRAISON_ADDON.'.php')) + if (is_readable(DOL_DOCUMENT_ROOT .'/includes/modules/livraison/'.LIVRAISON_ADDON.'.php')) { - require_once DOL_DOCUMENT_ROOT .'/livraison/mods/'.LIVRAISON_ADDON.'.php'; + require_once DOL_DOCUMENT_ROOT .'/includes/modules/livraison/'.LIVRAISON_ADDON.'.php'; // Definition du nom de module de numerotation de commande $modName=LIVRAISON_ADDON; @@ -348,14 +348,14 @@ class Livraison extends CommonObject $soc = new Societe($this->db); $soc->fetch($this->socid); - // on verifie si le bon de livraison est en numérotation provisoire + // on verifie si le bon de livraison est en num�rotation provisoire $livref = substr($this->ref, 1, 4); if ($livref == 'PROV') { $this->ref = $objMod->livraison_get_num($soc,$this); } - // Tester si non dejà au statut validé. Si oui, on arrete afin d'éviter + // Tester si non dej� au statut valid�. Si oui, on arrete afin d'�viter // de decrementer 2 fois le stock. $sql = "SELECT ref FROM ".MAIN_DB_PREFIX."livraison where ref='".$this->ref."' AND fk_statut <> 0"; $resql=$this->db->query($sql); @@ -374,7 +374,7 @@ class Livraison extends CommonObject $resql=$this->db->query($sql); if ($resql) { - // Si module stock géré et que expedition faite depuis un entrepot + // Si module stock g�r� et que expedition faite depuis un entrepot if (!$conf->expedition->enabled && $conf->stock->enabled && $this->entrepot_id && $conf->global->STOCK_CALCULATE_ON_SHIPMENT == 1) { @@ -469,9 +469,9 @@ class Livraison extends CommonObject return 1; } - /** \brief Créé le bon de livraison depuis une expédition existante - * \param user Utilisateur qui crée - * \param sending_id Id de l'expédition qui sert de modèle + /** \brief Cr�� le bon de livraison depuis une exp�dition existante + * \param user Utilisateur qui cr�e + * \param sending_id Id de l'exp�dition qui sert de mod�le */ function create_from_sending($user, $sending_id) { @@ -671,8 +671,8 @@ class Livraison extends CommonObject /** - * \brief Retourne le libellé du statut d'une expedition - * \return string Libellé + * \brief Retourne le libell� du statut d'une expedition + * \return string Libell� */ function getLibStatut($mode=0) { @@ -680,10 +680,10 @@ class Livraison extends CommonObject } /** - * \brief Renvoi le libellé d'un statut donné + * \brief Renvoi le libell� d'un statut donn� * \param statut Id statut - * \param mode 0=libellé long, 1=libellé court, 2=Picto + Libellé court, 3=Picto, 4=Picto + Libellé long, 5=Libellé court + Picto - * \return string Libellé + * \param mode 0=libell� long, 1=libell� court, 2=Picto + Libell� court, 3=Picto, 4=Picto + Libell� long, 5=Libell� court + Picto + * \return string Libell� */ function LibStatut($statut,$mode) { diff --git a/htdocs/livraison/mods/modules_livraison.php b/htdocs/livraison/mods/modules_livraison.php deleted file mode 100644 index 5c0d51f1afe..00000000000 --- a/htdocs/livraison/mods/modules_livraison.php +++ /dev/null @@ -1,234 +0,0 @@ - - * Copyright (C) 2004-2008 Laurent Destailleur - * Copyright (C) 2004 Eric Seigne - * Copyright (C) 2006 Regis Houssin - * - * 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 - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - * or see http://www.gnu.org/ - */ - -/** - \file htdocs/livraison/mods/modules_livraison.php - \ingroup expedition - \brief Fichier contenant la classe mère de generation de bon de livraison en PDF - et la classe mère de numérotation des bons de livraisons - \version $Id$ -*/ - -require_once(DOL_DOCUMENT_ROOT.'/lib/functions.lib.php'); -require_once(DOL_DOCUMENT_ROOT.'/includes/fpdf/fpdfi/fpdi_protection.php'); - - -/** - \class ModelePDFDeliveryOrder - \brief Classe mère des modèles de bon de livraison -*/ -class ModelePDFDeliveryOrder extends FPDF -{ - var $error=''; - - /** - \brief Renvoi le dernier message d'erreur de création de PDF de bon de livraison - */ - function pdferror() - { - return $this->error; - } - - /** - * \brief Renvoi la liste des modèles actifs - */ - function liste_modeles($db) - { - $type='delivery'; - $liste=array(); - $sql ="SELECT nom as id, nom as lib"; - $sql.=" FROM ".MAIN_DB_PREFIX."document_model"; - $sql.=" WHERE type = '".$type."'"; - - $resql = $db->query($sql); - if ($resql) - { - $num = $db->num_rows($resql); - $i = 0; - while ($i < $num) - { - $row = $db->fetch_row($resql); - $liste[$row[0]]=$row[1]; - $i++; - } - } - else - { - $this->error=$db->error(); - return -1; - } - return $liste; - } - -} - - - -/** - \class ModeleNumRefDeliveryOrder - \brief Classe mère des modèles de numérotation des références de bon de livraison -*/ - -class ModeleNumRefDeliveryOrder -{ - var $error=''; - - /** \brief Return if a module can be used or not - * \return boolean true if module can be used - */ - function isEnabled() - { - return true; - } - - /** \brief Renvoi la description par defaut du modele de numérotation - * \return string Texte descripif - */ - function info() - { - global $langs; - $langs->load("deliveries"); - return $langs->trans("NoDescription"); - } - - /** \brief Renvoi un exemple de numérotation - * \return string Example - */ - function getExample() - { - global $langs; - $langs->load("deliveries"); - return $langs->trans("NoExample"); - } - - /** \brief Test si les numéros déjà en vigueur dans la base ne provoquent pas de - * de conflits qui empechera cette numérotation de fonctionner. - * \return boolean false si conflit, true si ok - */ - function canBeActivated() - { - return true; - } - - /** \brief Renvoi prochaine valeur attribuée - * \return string Valeur - */ - function getNextValue() - { - global $langs; - return $langs->trans("NotAvailable"); - } - - /** \brief Renvoi version du module numerotation - * \return string Valeur - */ - function getVersion() - { - global $langs; - $langs->load("admin"); - - if ($this->version == 'development') return $langs->trans("VersionDevelopment"); - if ($this->version == 'experimental') return $langs->trans("VersionExperimental"); - if ($this->version == 'dolibarr') return DOL_VERSION; - return $langs->trans("NotAvailable"); - } -} - - - - -function delivery_order_pdf_create($db, $deliveryid, $modele='', $outputlangs='') -{ - global $langs; - $langs->load("deliveries"); - - $dir = DOL_DOCUMENT_ROOT."/livraison/mods/pdf/"; - - // Positionne modele sur le nom du modele de bon de livraison à utiliser - if (! strlen($modele)) - { - if (defined("LIVRAISON_ADDON_PDF") && LIVRAISON_ADDON_PDF) - { - $modele = LIVRAISON_ADDON_PDF; - } - else - { - print $langs->trans("Error")." ".$langs->trans("Error_LIVRAISON_ADDON_PDF_NotDefined"); - return 0; - } - } - // Charge le modele - $file = "pdf_".$modele.".modules.php"; - if (file_exists($dir.$file)) - { - $classname = "pdf_".$modele; - require_once($dir.$file); - - $obj = new $classname($db); - - if ($obj->write_file($deliveryid,$outputlangs) > 0) - { - // on supprime l'image correspondant au preview - delivery_order_delete_preview($db, $deliveryid); - return 1; - } - else - { - dolibarr_syslog("Erreur dans delivery_order_pdf_create"); - dolibarr_print_error($db,$obj->pdferror()); - return 0; - } - } - else - { - print $langs->trans("Error")." ".$langs->trans("ErrorFileDoesNotExists",$dir.$file); - return 0; - } -} - - -function delivery_order_delete_preview($db, $deliveryid) -{ - global $langs,$conf; - - $delivery = new Livraison($db,"",$deliveryid); - $delivery->fetch($deliveryid); - $client = new Societe($db); - $client->fetch($delivery->socid); - - if ($conf->livraison->dir_output) - { - $deliveryref = sanitize_string($delivery->ref); - $dir = $conf->livraison->dir_output . "/" . $deliveryref ; - $file = $dir . "/" . $deliveryref . ".pdf.png"; - - if ( file_exists( $file ) && is_writable( $file ) ) - { - if ( ! unlink($file) ) - { - $this->error=$langs->trans("ErrorFailedToOpenFile",$file); - return 0; - } - } - } -} -?>