New: Add total of unique different product into warehouse

This commit is contained in:
Laurent Destailleur 2013-10-02 12:49:28 +02:00
parent cf89a8e96a
commit 3fb890e9b7
5 changed files with 52 additions and 6 deletions

View File

@ -27,6 +27,7 @@ ListOfStockMovements=List of stock movements
StocksArea=Stocks area
Location=Location
LocationSummary=Short name location
NumberOfDifferentProducts=Number of different products
NumberOfProducts=Total number of products
LastMovement=Last movement
LastMovements=Last movements

View File

@ -27,6 +27,7 @@ ListOfStockMovements=Liste des mouvements de stock
StocksArea=Espace stocks
Location=Lieu
LocationSummary=Nom court du lieu
NumberOfDifferentProducts=Nombre de produits différents
NumberOfProducts=Nombre total de produits
LastMovement=Dernier mouvement
LastMovements=Derniers mouvements

View File

@ -243,15 +243,15 @@ class Entrepot extends CommonObject
function fetch($id, $ref='')
{
global $conf;
$sql = "SELECT rowid, label, description, statut, lieu, address, zip, town, fk_pays as country_id";
$sql .= " FROM ".MAIN_DB_PREFIX."entrepot";
if ($id)
if ($id)
{
$sql.= " WHERE rowid = '".$id."'";
}
else
{
$sql.= " WHERE entity = " .$conf->entity;
@ -276,12 +276,12 @@ class Entrepot extends CommonObject
$this->zip = $obj->zip;
$this->town = $obj->town;
$this->country_id = $obj->country_id;
include_once DOL_DOCUMENT_ROOT.'/core/lib/company.lib.php';
$tmp=getCountry($this->country_id,'all');
$this->country=$tmp['label'];
$this->country_code=$tmp['code'];
return 1;
}
else
@ -377,6 +377,38 @@ class Entrepot extends CommonObject
return $liste;
}
/**
* Return number of unique different product into a warehosue
*
* @return Array Array('nb'=>Nb, 'value'=>Value)
*/
function nb_different_products()
{
$ret=array();
$sql = "SELECT count(distinct p.rowid) as nb";
$sql.= " FROM ".MAIN_DB_PREFIX."product_stock as ps";
$sql.= ", ".MAIN_DB_PREFIX."product as p";
$sql.= " WHERE ps.fk_entrepot = ".$this->id;
$sql.= " AND ps.fk_product = p.rowid";
//print $sql;
$result = $this->db->query($sql);
if ($result)
{
$obj = $this->db->fetch_object($result);
$ret['nb']=$obj->nb;
$this->db->free($result);
}
else
{
$this->error=$this->db->lasterror();
return -1;
}
return $ret;
}
/**
* Return stock and value of warehosue
*

View File

@ -276,8 +276,14 @@ else
// Status
print '<tr><td>'.$langs->trans("Status").'</td><td colspan="3">'.$object->getLibStatut(4).'</td></tr>';
$calcproductsunique=$object->nb_different_products();
$calcproducts=$object->nb_products();
// Total nb of different products
print '<tr><td valign="top">'.$langs->trans("NumberOfDifferentProducts").'</td><td colspan="3">';
print empty($calcproductsunique['nb'])?'0':$calcproductsunique['nb'];
print "</td></tr>";
// Nb of products
print '<tr><td valign="top">'.$langs->trans("NumberOfProducts").'</td><td colspan="3">';
print empty($calcproducts['nb'])?'0':$calcproducts['nb'];

View File

@ -236,8 +236,14 @@ if ($resql)
// Status
print '<tr><td>'.$langs->trans("Status").'</td><td colspan="3">'.$entrepot->getLibStatut(4).'</td></tr>';
$calcproductsunique=$entrepot->nb_different_products();
$calcproducts=$entrepot->nb_products();
// Total nb of different products
print '<tr><td valign="top">'.$langs->trans("NumberOfDifferentProducts").'</td><td colspan="3">';
print empty($calcproductsunique['nb'])?'0':$calcproductsunique['nb'];
print "</td></tr>";
// Nb of products
print '<tr><td valign="top">'.$langs->trans("NumberOfProducts").'</td><td colspan="3">';
print empty($calcproducts['nb'])?'0':$calcproducts['nb'];