2
0
forked from Wavyzz/dolibarr
This commit is contained in:
Laurent Destailleur
2012-01-28 17:34:42 +01:00
parent c2c8d1be3e
commit a9abc1bad4

View File

@@ -57,11 +57,13 @@ class Livraison extends CommonObject
/** /**
* Initialisation * Constructor
*
* @param DoliDB $db Database handler
*/ */
function Livraison($DB) function Livraison($db)
{ {
$this->db = $DB; $this->db = $db;
$this->lines = array(); $this->lines = array();
$this->products = array(); $this->products = array();
@@ -72,9 +74,10 @@ class Livraison extends CommonObject
} }
/** /**
* \brief Create delivery receipt in database * Create delivery receipt in database
* \param user Objet du user qui cree *
* \return int <0 si erreur, id livraison cree si ok * @param User $user Objet du user qui cree
* @return int <0 si erreur, id livraison cree si ok
*/ */
function create($user) function create($user)
{ {
@@ -146,7 +149,7 @@ class Livraison extends CommonObject
$origin_id=$this->lines[$i]->origin_line_id; $origin_id=$this->lines[$i]->origin_line_id;
if (! $origin_id) $origin_id=$this->lines[$i]->commande_ligne_id; // For backward compatibility if (! $origin_id) $origin_id=$this->lines[$i]->commande_ligne_id; // For backward compatibility
if (! $this->create_line(0, $origin_id, $this->lines[$i]->qty, $this->lines[$i]->fk_product, $this->lines[$i]->description)) if (! $this->create_line($origin_id, $this->lines[$i]->qty, $this->lines[$i]->fk_product, $this->lines[$i]->description))
{ {
$error++; $error++;
} }
@@ -205,10 +208,15 @@ class Livraison extends CommonObject
} }
/** /**
* Create a line
* *
* * @param string $origin_id Id of order
* @param string $qty Quantity
* @param string $fk_product Id of predefined product
* @param string $description Description
* @return int <0 if KO, >0 if OK
*/ */
function create_line($transaction, $commande_ligne_id, $qty, $fk_product=0, $description) function create_line($origin_id, $qty, $fk_product, $description)
{ {
$error = 0; $error = 0;
$idprod = $fk_product; $idprod = $fk_product;
@@ -216,12 +224,12 @@ class Livraison extends CommonObject
$sql = "INSERT INTO ".MAIN_DB_PREFIX."livraisondet (fk_livraison, fk_origin_line,"; $sql = "INSERT INTO ".MAIN_DB_PREFIX."livraisondet (fk_livraison, fk_origin_line,";
$sql.= " fk_product, description, qty)"; $sql.= " fk_product, description, qty)";
$sql.= " VALUES (".$this->id.",".$commande_ligne_id.","; $sql.= " VALUES (".$this->id.",".$origin_id.",";
$sql.= " ".($idprod>0?$idprod:"null").","; $sql.= " ".($idprod>0?$idprod:"null").",";
$sql.= " ".($description?"'".$this->db->escape($description)."'":"null").","; $sql.= " ".($description?"'".$this->db->escape($description)."'":"null").",";
$sql.= $qty.")"; $sql.= $qty.")";
dol_syslog("Livraison::create_line sql=".$sql, LOG_DEBUG); dol_syslog(get_class($this)."::create_line sql=".$sql, LOG_DEBUG);
if (! $this->db->query($sql) ) if (! $this->db->query($sql) )
{ {
$error++; $error++;
@@ -234,7 +242,10 @@ class Livraison extends CommonObject
} }
/** /**
* \brief Read a delivery receipt * Load a delivery receipt
*
* @param int $id Id of object to load
* @return void
*/ */
function fetch($id) function fetch($id)
{ {
@@ -248,7 +259,7 @@ class Livraison extends CommonObject
$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."element_element as el ON el.fk_target = l.rowid AND el.targettype = '".$this->element."'"; $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."element_element as el ON el.fk_target = l.rowid AND el.targettype = '".$this->element."'";
$sql.= " WHERE l.rowid = ".$id; $sql.= " WHERE l.rowid = ".$id;
dol_syslog("Livraison::fetch sql=".$sql, LOG_DEBUG); dol_syslog(get_class($this)."::fetch sql=".$sql, LOG_DEBUG);
$result = $this->db->query($sql); $result = $this->db->query($sql);
if ($result) if ($result)
{ {
@@ -294,13 +305,13 @@ class Livraison extends CommonObject
else else
{ {
$this->error='Delivery with id '.$id.' not found sql='.$sql; $this->error='Delivery with id '.$id.' not found sql='.$sql;
dol_syslog('Livraison::Fetch Error '.$this->error, LOG_ERR); dol_syslog(get_class($this).'::fetch Error '.$this->error, LOG_ERR);
return -2; return -2;
} }
} }
else else
{ {
dol_syslog('Livraison::Fetch Error '.$this->error, LOG_ERR); dol_syslog(get_class($this).'::fetch Error '.$this->error, LOG_ERR);
$this->error=$this->db->error(); $this->error=$this->db->error();
return -1; return -1;
} }
@@ -317,7 +328,7 @@ class Livraison extends CommonObject
global $conf, $langs; global $conf, $langs;
require_once(DOL_DOCUMENT_ROOT."/core/lib/files.lib.php"); require_once(DOL_DOCUMENT_ROOT."/core/lib/files.lib.php");
dol_syslog("livraison.class.php::valid begin"); dol_syslog(get_class($this)."::valid begin");
$this->db->begin(); $this->db->begin();
@@ -406,13 +417,13 @@ class Livraison extends CommonObject
$this->statut = 1; $this->statut = 1;
} }
dol_syslog("livraison.class.php::valid ok"); dol_syslog(get_class($this)."::valid ok");
} }
else else
{ {
$this->db->rollback(); $this->db->rollback();
$this->error=$this->db->error()." - sql=$sql"; $this->error=$this->db->error()." - sql=$sql";
dol_syslog("livraison.class.php::valid ".$this->error, LOG_ERR); dol_syslog(get_class($this)."::valid ".$this->error, LOG_ERR);
return -1; return -1;
} }
} }
@@ -421,7 +432,7 @@ class Livraison extends CommonObject
else else
{ {
$this->error="Non autorise"; $this->error="Non autorise";
dol_syslog("livraison.class.php::valid ".$this->error, LOG_ERR); dol_syslog(get_class($this)."::valid ".$this->error, LOG_ERR);
return -1; return -1;
} }
@@ -434,20 +445,22 @@ class Livraison extends CommonObject
{ {
$this->db->rollback(); $this->db->rollback();
$this->error = $interface->errors; $this->error = $interface->errors;
dol_syslog("livraison.class.php::valid ".$this->error, LOG_ERR); dol_syslog(get_class($this)."::valid ".$this->error, LOG_ERR);
return -1; return -1;
} }
else else
{ {
$this->db->commit(); $this->db->commit();
dol_syslog("livraison.class.php::valid commit");
return 1; return 1;
} }
} }
/** \brief Cree le bon de livraison depuis une expedition existante /**
* \param user Utilisateur qui cree * Cree le bon de livraison depuis une expedition existante
* \param sending_id Id de l'expedition qui sert de modele *
* @param User $user Utilisateur qui cree
* @param int $sending_id Id de l'expedition qui sert de modele
* @return void
*/ */
function create_from_sending($user, $sending_id) function create_from_sending($user, $sending_id)
{ {
@@ -484,23 +497,28 @@ class Livraison extends CommonObject
/** /**
* Ajoute une ligne * Add line
* *
* @param int $origin_id Origin id
* @param int $qty Qty
* @return void
*/ */
function addline( $id, $qty ) function addline($origin_id, $qty)
{ {
$num = count($this->lines); $num = count($this->lines);
$line = new LivraisonLigne($this->db); $line = new LivraisonLigne($this->db);
$line->commande_ligne_id = $id; $line->origin_id = $origin_id;
$line->qty = $qty; $line->qty = $qty;
$this->lines[$num] = $line; $this->lines[$num] = $line;
} }
/** /**
* Delete line
* *
* * @param int $lineid Line id
* @return void
*/ */
function deleteline($lineid) function deleteline($lineid)
{ {
@@ -523,7 +541,9 @@ class Livraison extends CommonObject
} }
/** /**
* Supprime la fiche * Delete object
*
* @return void
*/ */
function delete() function delete()
{ {
@@ -594,9 +614,10 @@ class Livraison extends CommonObject
} }
/** /**
* \brief Renvoie nom clicable (avec eventuellement le picto) * Renvoie nom clicable (avec eventuellement le picto)
* \param withpicto 0=Pas de picto, 1=Inclut le picto dans le lien, 2=Picto seul *
* \return string Chaine avec URL * @param int $withpicto 0=Pas de picto, 1=Inclut le picto dans le lien, 2=Picto seul
* @return string Chaine avec URL
*/ */
function getNomUrl($withpicto=0) function getNomUrl($withpicto=0)
{ {
@@ -619,8 +640,9 @@ class Livraison extends CommonObject
} }
/** /**
* Load lines
* *
* * @return void
*/ */
function fetch_lines() function fetch_lines()
{ {
@@ -634,7 +656,7 @@ class Livraison extends CommonObject
$sql.= " WHERE ld.fk_origin_line = cd.rowid"; $sql.= " WHERE ld.fk_origin_line = cd.rowid";
$sql.= " AND ld.fk_livraison = ".$this->id; $sql.= " AND ld.fk_livraison = ".$this->id;
dol_syslog("Livraison::fetch_lines sql=".$sql); dol_syslog(get_class($this)."::fetch_lines sql=".$sql);
$resql = $this->db->query($sql); $resql = $this->db->query($sql);
if ($resql) if ($resql)
{ {
@@ -672,8 +694,10 @@ class Livraison extends CommonObject
/** /**
* \brief Retourne le libelle du statut d'une expedition * Retourne le libelle du statut d'une expedition
* \return string Libelle *
* @param int $mode Mode
* @return string Label
*/ */
function getLibStatut($mode=0) function getLibStatut($mode=0)
{ {
@@ -681,10 +705,11 @@ class Livraison extends CommonObject
} }
/** /**
* \brief Renvoi le libelle d'un statut donne * Renvoi le libelle d'un statut donne
* \param statut Id statut *
* \param mode 0=libelle long, 1=libelle court, 2=Picto + Libelle court, 3=Picto, 4=Picto + Libelle long, 5=Libelle court + Picto * @param int $statut Id statut
* \return string Libelle * @param int $mode 0=libelle long, 1=libelle court, 2=Picto + Libelle court, 3=Picto, 4=Picto + Libelle long, 5=Libelle court + Picto
* @return string Label
*/ */
function LibStatut($statut,$mode) function LibStatut($statut,$mode)
{ {
@@ -766,8 +791,9 @@ class Livraison extends CommonObject
} }
/** /**
* \brief Renvoie la quantite de produit restante a livrer pour une commande * Renvoie la quantite de produit restante a livrer pour une commande
* \return array Product remaining to be delivered *
* @return array Product remaining to be delivered
* TODO use new function * TODO use new function
*/ */
function getRemainingDelivered() function getRemainingDelivered()
@@ -847,8 +873,7 @@ class Livraison extends CommonObject
/** /**
* \class LivraisonLigne * Classe de gestion des lignes de bons de livraison
* \brief Classe de gestion des lignes de bons de livraison
*/ */
class LivraisonLigne class LivraisonLigne
{ {
@@ -860,14 +885,19 @@ class LivraisonLigne
var $qty_shipped; var $qty_shipped;
var $price; var $price;
var $fk_product; var $fk_product;
var $commande_ligne_id; var $origin_id;
var $label; // Label produit var $label; // Label produit
var $description; // Description produit var $description; // Description produit
var $ref; var $ref;
function LivraisonLigne($DB) /**
* Constructor
*
* @param DoliDB $db Database handler
*/
function LivraisonLigne($db)
{ {
$this->db=$DB; $this->db=$db;
} }
} }