Fix: compatibility with multicompany

This commit is contained in:
Regis Houssin 2012-07-02 12:07:42 +02:00
parent 761f841735
commit c69fa495fa
3 changed files with 24 additions and 18 deletions

View File

@ -138,7 +138,7 @@ class Product extends CommonObject
//! Contains detail of stock of product into each warehouse
var $stock_warehouse=array();
var $oldcopy;
@ -405,7 +405,7 @@ class Product extends CommonObject
global $langs, $conf;
$error=0;
$this->db->begin();
// Verification parametres
@ -508,7 +508,7 @@ class Product extends CommonObject
if ($result < 0) { $error++; $this->errors=$interface->errors; }
// Fin appel triggers
}
if (! $error && (is_object($this->oldcopy) && $this->oldcopy->ref != $this->ref))
{
// We remove directory
@ -527,7 +527,7 @@ class Product extends CommonObject
}
}
}
if (! $error)
{
$this->db->commit();
@ -618,7 +618,7 @@ class Product extends CommonObject
dol_syslog(get_class($this).'::delete error '.$this->error, LOG_ERR);
}
}
if (! $error)
{
// We remove directory
@ -2405,9 +2405,12 @@ class Product extends CommonObject
{
$this->stock_reel = 0;
$sql = "SELECT reel, fk_entrepot, pmp";
$sql.= " FROM ".MAIN_DB_PREFIX."product_stock";
$sql.= " WHERE fk_product = '".$this->id."'";
$sql = "SELECT ps.reel, ps.fk_entrepot, ps.pmp";
$sql.= " FROM ".MAIN_DB_PREFIX."product_stock as ps";
$sql.= ", ".MAIN_DB_PREFIX."entrepot as w";
$sql.= " WHERE w.entity = (".getEntity('warehouse', 1).")";
$sql.= " AND w.rowid = ps.fk_entrepot";
$sql.= " AND ps.fk_product = ".$this->id;
dol_syslog(get_class($this)."::load_stock sql=".$sql);
$result = $this->db->query($sql);

View File

@ -76,6 +76,8 @@ class Entrepot extends CommonObject
*/
function create($user)
{
global $conf;
// Si libelle non defini, erreur
if ($this->libelle == '')
{
@ -87,8 +89,8 @@ class Entrepot extends CommonObject
$this->db->begin();
$sql = "INSERT INTO ".MAIN_DB_PREFIX."entrepot (datec, fk_user_author, label)";
$sql .= " VALUES ('".$this->db->idate($now)."',".$user->id.",'".$this->db->escape($this->libelle)."')";
$sql = "INSERT INTO ".MAIN_DB_PREFIX."entrepot (entity, datec, fk_user_author, label)";
$sql .= " VALUES (".$conf->entity.",'".$this->db->idate($now)."',".$user->id.",'".$this->db->escape($this->libelle)."')";
dol_syslog(get_class($this)."::create sql=".$sql);
$result=$this->db->query($sql);
@ -99,7 +101,7 @@ class Entrepot extends CommonObject
{
$this->id = $id;
if ( $this->update($id, $user) > 0)
if ($this->update($id, $user) > 0)
{
$this->db->commit();
return $id;
@ -184,7 +186,6 @@ class Entrepot extends CommonObject
*/
function delete($user)
{
$this->db->begin();
$sql = "DELETE FROM ".MAIN_DB_PREFIX."stock_mouvement";
@ -338,7 +339,8 @@ class Entrepot extends CommonObject
$sql = "SELECT rowid, label";
$sql.= " FROM ".MAIN_DB_PREFIX."entrepot";
$sql.= " WHERE statut = ".$status;
$sql.= " WHERE entity IN (".getEntity('warehouse', 1).")";
$sql.= " AND statut = ".$status;
$result = $this->db->query($sql);
$i = 0;
@ -363,13 +365,13 @@ class Entrepot extends CommonObject
*/
function nb_products()
{
global $conf,$user;
$ret=array();
$sql = "SELECT sum(ps.reel) as nb, sum(ps.reel * ps.pmp) as value";
$sql .= " FROM ".MAIN_DB_PREFIX."product_stock as ps, ".MAIN_DB_PREFIX."product as p";
$sql .= " WHERE ps.fk_entrepot = ".$this->id." AND ps.fk_product=p.rowid";
$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);

View File

@ -44,7 +44,7 @@ $id = GETPOST('id')?GETPOST('id'):GETPOST('ref');
$ref = GETPOST('ref');
$fieldid = isset($_GET["ref"])?'ref':'rowid';
if ($user->societe_id) $socid=$user->societe_id;
$result=restrictedArea($user,'produit&stock',$id,'product','','',$fieldid);
$result=restrictedArea($user,'produit&stock',$id,'product&product','','',$fieldid);
$mesg = '';
@ -217,6 +217,7 @@ if ($_GET["id"] || $_GET["ref"])
print '</tr>';
// Real stock
$product->load_stock();
print '<tr><td>'.$langs->trans("PhysicalStock").'</td>';
print '<td>'.$product->stock_reel;
if ($product->seuil_stock_alerte && ($product->stock_reel < $product->seuil_stock_alerte)) print ' '.img_warning($langs->trans("StockTooLow"));