From 6ab140f169a06a4c2a3d801715911447b7987d56 Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 25 Oct 2008 18:33:32 +0000 Subject: [PATCH] Add navigation next/previous in warehous cards --- htdocs/product/stock/entrepot.class.php | 444 ++++++++++++------------ htdocs/product/stock/fiche-valo.php | 10 +- htdocs/product/stock/fiche.php | 21 +- htdocs/product/stock/mouvement.php | 13 +- 4 files changed, 253 insertions(+), 235 deletions(-) diff --git a/htdocs/product/stock/entrepot.class.php b/htdocs/product/stock/entrepot.class.php index d4be94bb2de..63c9e6697bf 100644 --- a/htdocs/product/stock/entrepot.class.php +++ b/htdocs/product/stock/entrepot.class.php @@ -19,53 +19,57 @@ */ /** - \file htdocs/product/stock/entrepot.class.php - \ingroup stock - \brief Fichier de la classe de gestion des entrepots - \version $Id$ -*/ + * \file htdocs/product/stock/entrepot.class.php + * \ingroup stock + * \brief Fichier de la classe de gestion des entrepots + * \version $Id$ + */ + +require_once(DOL_DOCUMENT_ROOT."/commonobject.class.php"); -/** - \class Entrepot - \brief Classe permettant la gestion des entrepots -*/ +/** + * \class Entrepot + * \brief Classe permettant la gestion des entrepots + */ -class Entrepot +class Entrepot extends CommonObject { - var $db; - var $error; - - var $id; - var $libelle; - var $description; - //! Statut 1 pour ouvert, 0 pour ferme - var $statut; - var $lieu; - var $address; - //! Code Postal - var $cp; - var $ville; - var $pays_id; + var $db; + var $error; + var $element='label'; + var $table_element='entrepot'; - /* - * \brief Constructeur de l'objet entrepot - * \param DB Handler d'accès à la base de donnée - */ - function Entrepot($DB) - { - global $langs; - $this->db = $DB; - - $this->statuts[0] = $langs->trans("Closed2"); - $this->statuts[1] = $langs->trans("Opened"); - } + var $id; + var $libelle; + var $description; + //! Statut 1 pour ouvert, 0 pour ferme + var $statut; + var $lieu; + var $address; + //! Code Postal + var $cp; + var $ville; + var $pays_id; /* - * \brief Creation d'un entrepot en base - * \param Objet user qui crée l'entrepot - */ - function create($user) + * \brief Constructeur de l'objet entrepot + * \param DB Handler d'accès à la base de donnée + */ + function Entrepot($DB) + { + global $langs; + $this->db = $DB; + + $this->statuts[0] = $langs->trans("Closed2"); + $this->statuts[1] = $langs->trans("Opened"); + } + + /* + * \brief Creation d'un entrepot en base + * \param Objet user qui crée l'entrepot + */ + function create($user) { // Si libelle non defini, erreur if ($this->libelle == '') @@ -73,21 +77,21 @@ class Entrepot $this->error = "ErrorFieldRequired"; return 0; } - + $this->db->begin(); - + $sql = "INSERT INTO ".MAIN_DB_PREFIX."entrepot (datec, fk_user_author, label)"; $sql .= " VALUES (".$this->db->idate(mktime()).",".$user->id.",'".addslashes($this->libelle)."')"; - + dolibarr_syslog("Entrepot::create sql=".$sql); $result=$this->db->query($sql); if ($result) { - $id = $this->db->last_insert_id(MAIN_DB_PREFIX."entrepot"); + $id = $this->db->last_insert_id(MAIN_DB_PREFIX."entrepot"); if ($id > 0) { $this->id = $id; - + if ( $this->update($id, $user) > 0) { $this->db->commit(); @@ -113,212 +117,212 @@ class Entrepot $this->db->rollback(); return -1; } - - } - - /* - * \brief Mise a jour des information d'un entrepot - * \param id id de l'entrepot à modifier - * \param user - */ - function update($id, $user) - { - $this->libelle=addslashes(trim($this->libelle)); - $this->description=addslashes(trim($this->description)); - $this->lieu=addslashes(trim($this->lieu)); - $this->address=addslashes(trim($this->address)); - $this->cp=trim($this->cp); - $this->ville=addslashes(trim($this->ville)); - $this->pays_id=trim($this->pays_id?$this->pays_id:0); - - $sql = "UPDATE ".MAIN_DB_PREFIX."entrepot "; - $sql .= " SET label = '" . $this->libelle ."'"; - $sql .= ",description = '" . $this->description ."'"; - $sql .= ",statut = " . $this->statut ; - $sql .= ",lieu = '" . $this->lieu ."'"; - $sql .= ",address = '" . $this->address ."'"; - $sql .= ",cp = '" . $this->cp ."'"; - $sql .= ",ville = '" . $this->ville ."'"; - $sql .= ",fk_pays = " . $this->pays_id; - $sql .= " WHERE rowid = " . $id; - - if ( $this->db->query($sql) ) - { - return 1; } - else + + /* + * \brief Mise a jour des information d'un entrepot + * \param id id de l'entrepot à modifier + * \param user + */ + function update($id, $user) { + $this->libelle=addslashes(trim($this->libelle)); + $this->description=addslashes(trim($this->description)); + + $this->lieu=addslashes(trim($this->lieu)); + $this->address=addslashes(trim($this->address)); + $this->cp=trim($this->cp); + $this->ville=addslashes(trim($this->ville)); + $this->pays_id=trim($this->pays_id?$this->pays_id:0); + + $sql = "UPDATE ".MAIN_DB_PREFIX."entrepot "; + $sql .= " SET label = '" . $this->libelle ."'"; + $sql .= ",description = '" . $this->description ."'"; + $sql .= ",statut = " . $this->statut ; + $sql .= ",lieu = '" . $this->lieu ."'"; + $sql .= ",address = '" . $this->address ."'"; + $sql .= ",cp = '" . $this->cp ."'"; + $sql .= ",ville = '" . $this->ville ."'"; + $sql .= ",fk_pays = " . $this->pays_id; + $sql .= " WHERE rowid = " . $id; + + if ( $this->db->query($sql) ) + { + return 1; + } + else + { $this->error=$this->db->error()." sql=$sql";; dolibarr_syslog("Entrepot::Update return -1"); dolibarr_syslog("Entrepot::Update ".$this->error); return -1; + } } - } - - - /** - * \brief Recupéeration de la base d'un entrepot - * \param id id de l'entrepot a récupérer - */ - function fetch ($id) - { - $sql = "SELECT rowid, label, description, statut, lieu, address, cp, ville, fk_pays"; - $sql .= " FROM ".MAIN_DB_PREFIX."entrepot"; - $sql .= " WHERE rowid = $id"; - - $result = $this->db->query($sql); - if ($result) - { + + + /** + * \brief Recupéeration de la base d'un entrepot + * \param id id de l'entrepot a récupérer + */ + function fetch ($id) + { + $sql = "SELECT rowid, label, description, statut, lieu, address, cp, ville, fk_pays"; + $sql .= " FROM ".MAIN_DB_PREFIX."entrepot"; + $sql .= " WHERE rowid = $id"; + + $result = $this->db->query($sql); + if ($result) + { $obj=$this->db->fetch_object($result); - + $this->id = $obj->rowid; $this->ref = $obj->rowid; $this->libelle = $obj->label; $this->description = $obj->description; $this->statut = $obj->statut; - $this->lieu = $obj->lieu; + $this->lieu = $obj->lieu; $this->address = $obj->address; $this->cp = $obj->cp; $this->ville = $obj->ville; $this->pays_id = $obj->fk_pays; - + if ($this->pays_id) - { - $sqlp = "SELECT libelle from ".MAIN_DB_PREFIX."c_pays where rowid = ".$this->pays_id; - $resql=$this->db->query($sqlp); - if ($resql) - { - $objp = $this->db->fetch_object($resql); - } - else - { - dolibarr_print_error($db); - } - $this->pays=$objp->libelle; - } - + { + $sqlp = "SELECT libelle from ".MAIN_DB_PREFIX."c_pays where rowid = ".$this->pays_id; + $resql=$this->db->query($sqlp); + if ($resql) + { + $objp = $this->db->fetch_object($resql); + } + else + { + dolibarr_print_error($db); + } + $this->pays=$objp->libelle; + } + $this->db->free($result); return 1; - } - else - { + } + else + { $this->error=$this->db->error(); return -1; - } - } - - - /* - * \brief Charge les informations d'ordre info dans l'objet entrepot - * \param id id de l'entrepot a charger - */ - function info($id) - { - $sql = "SELECT e.rowid, ".$this->db->pdate("datec")." as datec,"; - $sql .= " ".$this->db->pdate("tms")." as datem,"; - $sql .= " fk_user_author"; - $sql .= " FROM ".MAIN_DB_PREFIX."entrepot as e"; - $sql .= " WHERE e.rowid = ".$id; - - $result=$this->db->query($sql); - if ($result) + } + } + + + /* + * \brief Charge les informations d'ordre info dans l'objet entrepot + * \param id id de l'entrepot a charger + */ + function info($id) { - if ($this->db->num_rows($result)) - { - $obj = $this->db->fetch_object($result); + $sql = "SELECT e.rowid, ".$this->db->pdate("datec")." as datec,"; + $sql .= " ".$this->db->pdate("tms")." as datem,"; + $sql .= " fk_user_author"; + $sql .= " FROM ".MAIN_DB_PREFIX."entrepot as e"; + $sql .= " WHERE e.rowid = ".$id; - $this->id = $obj->rowid; + $result=$this->db->query($sql); + if ($result) + { + if ($this->db->num_rows($result)) + { + $obj = $this->db->fetch_object($result); - if ($obj->fk_user_author) { - $cuser = new User($this->db, $obj->fk_user_author); - $cuser->fetch(); - $this->user_creation = $cuser; - } - - if ($obj->fk_user_valid) { - $vuser = new User($this->db, $obj->fk_user_valid); - $vuser->fetch(); - $this->user_validation = $vuser; - } - - $this->date_creation = $obj->datec; - $this->date_modification = $obj->datem; + $this->id = $obj->rowid; - } - + if ($obj->fk_user_author) { + $cuser = new User($this->db, $obj->fk_user_author); + $cuser->fetch(); + $this->user_creation = $cuser; + } + + if ($obj->fk_user_valid) { + $vuser = new User($this->db, $obj->fk_user_valid); + $vuser->fetch(); + $this->user_validation = $vuser; + } + + $this->date_creation = $obj->datec; + $this->date_modification = $obj->datem; + + } + $this->db->free($result); - } - else - { + } + else + { dolibarr_print_error($this->db); + } } - } - /** - * \brief Renvoie la liste des entrepôts ouverts - */ - function list_array() - { - $liste = array(); + /** + * \brief Renvoie la liste des entrepôts ouverts + */ + function list_array() + { + $liste = array(); - $sql = "SELECT rowid, label"; - $sql.= " FROM ".MAIN_DB_PREFIX."entrepot"; - $sql.= " WHERE statut = 1"; + $sql = "SELECT rowid, label"; + $sql.= " FROM ".MAIN_DB_PREFIX."entrepot"; + $sql.= " WHERE statut = 1"; - $result = $this->db->query($sql) ; - $i = 0; - $num = $this->db->num_rows(); - - if ( $result ) - { - while ($i < $num) - { - $row = $this->db->fetch_row($i); - $liste[$row[0]] = $row[1]; - $i++; - } - $this->db->free(); - } - return $liste; - } + $result = $this->db->query($sql) ; + $i = 0; + $num = $this->db->num_rows(); - /** - * \brief Renvoie le stock (nombre de produits) de l'entrepot - */ - function nb_products() - { - global $conf,$user; - - $sql = "SELECT sum(ps.reel)"; - $sql .= " FROM llx_product_stock as ps"; - if ($conf->categorie->enabled && !$user->rights->categorie->voir) - { - $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."categorie_product as cp ON cp.fk_product = p.rowid"; - $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."categorie as c ON cp.fk_categorie = c.rowid"; - } - $sql .= " WHERE ps.fk_entrepot = ".$this->id; - if ($conf->categorie->enabled && !$user->rights->categorie->voir) - { - $sql.= ' AND IFNULL(c.visible,1)=1'; - } - - $result = $this->db->query($sql) ; - - if ( $result ) - { - $row = $this->db->fetch_row(0); - return $row[0]; - - $this->db->free(); - } - else - { - return 0; - } - } + if ( $result ) + { + while ($i < $num) + { + $row = $this->db->fetch_row($i); + $liste[$row[0]] = $row[1]; + $i++; + } + $this->db->free(); + } + return $liste; + } + + /** + * \brief Renvoie le stock (nombre de produits) de l'entrepot + */ + function nb_products() + { + global $conf,$user; + + $sql = "SELECT sum(ps.reel)"; + $sql .= " FROM llx_product_stock as ps"; + if ($conf->categorie->enabled && !$user->rights->categorie->voir) + { + $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."categorie_product as cp ON cp.fk_product = p.rowid"; + $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."categorie as c ON cp.fk_categorie = c.rowid"; + } + $sql .= " WHERE ps.fk_entrepot = ".$this->id; + if ($conf->categorie->enabled && !$user->rights->categorie->voir) + { + $sql.= ' AND IFNULL(c.visible,1)=1'; + } + + $result = $this->db->query($sql) ; + + if ( $result ) + { + $row = $this->db->fetch_row(0); + return $row[0]; + + $this->db->free(); + } + else + { + return 0; + } + } /** * \brief Retourne le libellé du statut d'un entrepot (ouvert, ferme) @@ -329,7 +333,7 @@ class Entrepot { return $this->LibStatut($this->statut,$mode); } - + /** * \brief Renvoi le libellé d'un statut donné * \param statut Id statut @@ -378,7 +382,7 @@ class Entrepot } } - + /** * \brief Renvoie nom clicable (avec eventuellement le picto) * \param withpicto Inclut le picto dans le lien @@ -388,9 +392,9 @@ class Entrepot function getNomUrl($withpicto=0,$option='') { global $langs; - + $result=''; - + $lien=''; $lienfin=''; @@ -398,6 +402,6 @@ class Entrepot $result.=$lien.$this->libelle.$lienfin; return $result; } - + } ?> diff --git a/htdocs/product/stock/fiche-valo.php b/htdocs/product/stock/fiche-valo.php index 3fa84aa4828..077e96a0142 100644 --- a/htdocs/product/stock/fiche-valo.php +++ b/htdocs/product/stock/fiche-valo.php @@ -37,6 +37,8 @@ $mesg = ''; * View */ +$form=new Form($db); + llxHeader("","",$langs->trans("WarehouseCard")); if ($_GET["id"]) @@ -82,13 +84,15 @@ if ($_GET["id"]) $head[$h][1] = $langs->trans("Info"); $h++; - dolibarr_fiche_head($head, $hselected, $langs->trans("Warehouse").': '.$entrepot->libelle); + dolibarr_fiche_head($head, $hselected, $langs->trans("Warehouse")); print ''; // Ref - print ''; - + print ''; + print ''; // Description diff --git a/htdocs/product/stock/fiche.php b/htdocs/product/stock/fiche.php index ab257ad6f6f..02b952703cf 100644 --- a/htdocs/product/stock/fiche.php +++ b/htdocs/product/stock/fiche.php @@ -20,10 +20,10 @@ */ /** - \file htdocs/product/stock/fiche.php - \ingroup stock - \brief Page fiche entrepot - \version $Id$ + * \file htdocs/product/stock/fiche.php + * \ingroup stock + * \brief Page fiche entrepot + * \version $Id$ */ require("./pre.inc.php"); @@ -123,9 +123,10 @@ if ($_POST["cancel"] == $langs->trans("Cancel")) * View */ +$form=new Form($db); + llxHeader("","",$langs->trans("WarehouseCard")); -$form=new Form($db); if ($_GET["action"] == 'create') { @@ -143,7 +144,7 @@ if ($_GET["action"] == 'create') // Ref print ''; - + print ''; // Description @@ -235,13 +236,15 @@ else $head[$h][1] = $langs->trans("Info"); $h++; - dolibarr_fiche_head($head, $hselected, $langs->trans("Warehouse").': '.$entrepot->libelle); + dolibarr_fiche_head($head, $hselected, $langs->trans("Warehouse")); print '
'.$langs->trans("Ref").''.$entrepot->libelle.'
'.$langs->trans("Ref").''; + print $form->showrefnav($entrepot,'id','',1,'rowid','libelle'); + print '
'.$langs->trans("LocationSummary").''.$entrepot->lieu.'
'.$langs->trans("Ref").'
'.$langs->trans("LocationSummary").'
'; // Ref - print ''; - + print ''; + print ''; // Description diff --git a/htdocs/product/stock/mouvement.php b/htdocs/product/stock/mouvement.php index 6a9005dc8c9..e66fbbdf8e3 100644 --- a/htdocs/product/stock/mouvement.php +++ b/htdocs/product/stock/mouvement.php @@ -41,6 +41,11 @@ if (! $sortfield) $sortfield="m.datem"; if (! $sortorder) $sortorder="DESC"; +/* + * View + */ + +$form=new Form($db); $sql = "SELECT p.rowid, p.label as produit,"; $sql.= " s.label as stock, s.rowid as entrepot_id,"; @@ -116,13 +121,15 @@ if ($resql) $head[$h][1] = $langs->trans("Info"); $h++; - dolibarr_fiche_head($head, $hselected, $langs->trans("Warehouse").': '.$entrepot->libelle); + dolibarr_fiche_head($head, $hselected, $langs->trans("Warehouse")); print '
'.$langs->trans("Ref").''.$entrepot->libelle.'
'.$langs->trans("Ref").''; + print $form->showrefnav($entrepot,'id','',1,'rowid','libelle'); + print '
'.$langs->trans("LocationSummary").''.$entrepot->lieu.'
'; // Ref - print ''; - + print ''; + print ''; // Statut
'.$langs->trans("Ref").''.$entrepot->libelle.'
'.$langs->trans("Ref").''; + print $form->showrefnav($entrepot,'id','',1,'rowid','libelle'); + print '
'.$langs->trans("LocationSummary").''.$entrepot->lieu.'