diff --git a/htdocs/admin/stock.php b/htdocs/admin/stock.php
index 72ff0f17a1b19..050e00e6278a4 100644
--- a/htdocs/admin/stock.php
+++ b/htdocs/admin/stock.php
@@ -434,7 +434,7 @@
print '
';
-if ($conf->global->MAIN_LEVEL_FEATURES >= 2)
+if ($conf->global->MAIN_FEATURES_LEVEL >= 2)
{
$var=false;
print '
';
diff --git a/htdocs/core/class/commonobject.class.php b/htdocs/core/class/commonobject.class.php
index 29dcc413221bc..947d99af54566 100644
--- a/htdocs/core/class/commonobject.class.php
+++ b/htdocs/core/class/commonobject.class.php
@@ -4938,25 +4938,33 @@ public function fetchCommon($id, $ref = null)
if(!empty($id)) $sql.= ' WHERE rowid = '.$id;
else $sql.= ' WHERE ref = \''.$this->quote($ref).'\'';
-
+
$res = $this->db->query($sql);
- if($obj = $this->db->fetch_object($res))
+ if ($res)
{
- $this->id = $id;
- $this->set_vars_by_db($obj);
-
- $this->datec = $this->db->idate($obj->datec);
- $this->tms = $this->db->idate($obj->tms);
-
- return $this->id;
+ if ($obj = $this->db->fetch_object($res))
+ {
+ $this->id = $id;
+ $this->set_vars_by_db($obj);
+
+ $this->datec = $this->db->idate($obj->datec);
+ $this->tms = $this->db->idate($obj->tms);
+
+ return $this->id;
+ }
+ else
+ {
+ $this->error = $this->db->lasterror();
+ $this->errors[] = $this->error;
+ return -1;
+ }
}
else
{
- $this->error = $this->db->lasterror();
- $this->errors[] = $this->error;
- return -1;
+ $this->error = $this->db->lasterror();
+ $this->errors[] = $this->error;
+ return -1;
}
-
}
/**
diff --git a/htdocs/core/class/coreobject.class.php b/htdocs/core/class/coreobject.class.php
index 021213594f7a5..1456fb991c2fa 100644
--- a/htdocs/core/class/coreobject.class.php
+++ b/htdocs/core/class/coreobject.class.php
@@ -106,14 +106,12 @@ private function checkFieldType($field, $type)
*/
public function fetch($id, $loadChild = true)
{
-
$res = $this->fetchCommon($id);
if($res>0) {
if ($loadChild) $this->fetchChild();
}
return $res;
-
}
diff --git a/htdocs/core/menus/standard/eldy.lib.php b/htdocs/core/menus/standard/eldy.lib.php
index b51292a0bb81c..b7a372e50bda6 100644
--- a/htdocs/core/menus/standard/eldy.lib.php
+++ b/htdocs/core/menus/standard/eldy.lib.php
@@ -1265,7 +1265,7 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu
}
// Inventory
- if ($conf->global->MAIN_LEVEL_FEATURES >= 2)
+ if ($conf->global->MAIN_FEATURES_LEVEL >= 2)
{
if (! empty($conf->stock->enabled))
{
diff --git a/htdocs/core/modules/modStock.class.php b/htdocs/core/modules/modStock.class.php
index e80966afb8160..be6817062b65d 100644
--- a/htdocs/core/modules/modStock.class.php
+++ b/htdocs/core/modules/modStock.class.php
@@ -117,32 +117,37 @@ function __construct($db)
$this->rights[4][4] = 'mouvement';
$this->rights[4][5] = 'creer';
- if ($conf->global->MAIN_LEVEL_FEATURES >= 2) {
+ if ($conf->global->MAIN_FEATURES_LEVEL >= 2) {
- $this->rights[5][0] = 1006;
+ $this->rights[5][0] = 1011;
$this->rights[5][1] = 'inventoryReadPermission'; // Permission label
$this->rights[5][3] = 0; // Permission by default for new user (0/1)
- $this->rights[5][4] = 'read'; // In php code, permission will be checked by test if ($user->rights->permkey->level1->level2)
+ $this->rights[5][4] = 'advance_inventory'; // In php code, permission will be checked by test if ($user->rights->permkey->level1->level2)
+ $this->rights[5][5] = 'read'; // In php code, permission will be checked by test if ($user->rights->permkey->level1->level2)
- $this->rights[6][0] = 1007;
+ $this->rights[6][0] = 1012;
$this->rights[6][1] = 'inventoryCreatePermission'; // Permission label
$this->rights[6][3] = 0; // Permission by default for new user (0/1)
- $this->rights[6][4] = 'create'; // In php code, permission will be checked by test if ($user->rights->permkey->level1->level2)
+ $this->rights[6][4] = 'advance_inventory'; // In php code, permission will be checked by test if ($user->rights->permkey->level1->level2)
+ $this->rights[6][5] = 'create'; // In php code, permission will be checked by test if ($user->rights->permkey->level1->level2)
- $this->rights[7][0] = 1008;
+ $this->rights[7][0] = 1013;
$this->rights[7][1] = 'inventoryWritePermission'; // Permission label
$this->rights[7][3] = 0; // Permission by default for new user (0/1)
- $this->rights[7][4] = 'write'; // In php code, permission will be checked by test if ($user->rights->permkey->level1->level2)
+ $this->rights[7][4] = 'advance_inventory'; // In php code, permission will be checked by test if ($user->rights->permkey->level1->level2)
+ $this->rights[7][5] = 'write'; // In php code, permission will be checked by test if ($user->rights->permkey->level1->level2)
- $this->rights[7][0] = 1009;
- $this->rights[7][1] = 'inventoryValidatePermission'; // Permission label
- $this->rights[7][3] = 0; // Permission by default for new user (0/1)
- $this->rights[7][4] = 'validate'; // In php code, permission will be checked by test if ($user->rights->permkey->level1->level2)
+ $this->rights[8][0] = 1014;
+ $this->rights[8][1] = 'inventoryValidatePermission'; // Permission label
+ $this->rights[8][3] = 0; // Permission by default for new user (0/1)
+ $this->rights[8][4] = 'advance_inventory'; // In php code, permission will be checked by test if ($user->rights->permkey->level1->level2)
+ $this->rights[8][5] = 'validate'; // In php code, permission will be checked by test if ($user->rights->permkey->level1->level2)
- $this->rights[7][0] = 1010;
- $this->rights[7][1] = 'inventoryChangePMPPermission'; // Permission label
- $this->rights[7][3] = 0; // Permission by default for new user (0/1)
- $this->rights[7][4] = 'changePMP'; // In php code, permission will be checked by test if ($user->rights->permkey->level1->level2)
+ $this->rights[9][0] = 1015;
+ $this->rights[9][1] = 'inventoryChangePMPPermission'; // Permission label
+ $this->rights[9][3] = 0; // Permission by default for new user (0/1)
+ $this->rights[9][4] = 'advance_inventory'; // In php code, permission will be checked by test if ($user->rights->permkey->level1->level2)
+ $this->rights[9][5] = 'changePMP'; // In php code, permission will be checked by test if ($user->rights->permkey->level1->level2)
}
diff --git a/htdocs/install/mysql/tables/llx_fichinter.sql b/htdocs/install/mysql/tables/llx_fichinter.sql
index b3e2001f9c33f..926a05a738ee2 100644
--- a/htdocs/install/mysql/tables/llx_fichinter.sql
+++ b/htdocs/install/mysql/tables/llx_fichinter.sql
@@ -43,5 +43,4 @@ create table llx_fichinter
note_public text,
model_pdf varchar(255),
extraparams varchar(255) -- for stock other parameters with json format
-
)ENGINE=innodb;
diff --git a/htdocs/install/mysql/tables/llx_inventory.sql b/htdocs/install/mysql/tables/llx_inventory.sql
index f906699f5ddd7..ce1a2c9374483 100644
--- a/htdocs/install/mysql/tables/llx_inventory.sql
+++ b/htdocs/install/mysql/tables/llx_inventory.sql
@@ -1,6 +1,6 @@
-- ===================================================================
--- Copyright (C) 2012 Laurent Destailleur
--- Copyright (C) 2017 ATM Consulting
+-- Copyright (C) 2017 Laurent Destailleur
+-- Copyright (C) 2017 ATM Consulting
--
-- 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
@@ -19,13 +19,18 @@
CREATE TABLE llx_inventory
(
-rowid integer NOT NULL AUTO_INCREMENT PRIMARY KEY,
-datec datetime DEFAULT NULL,
-tms timestamp,
-fk_warehouse integer DEFAULT 0,
-entity integer DEFAULT 0,
-status integer DEFAULT 0,
-title varchar(255) NOT NULL,
-date_inventory datetime DEFAULT NULL
+ rowid integer NOT NULL AUTO_INCREMENT PRIMARY KEY,
+ entity integer DEFAULT 0,
+ ref varchar(48),
+ datec datetime DEFAULT NULL,
+ tms timestamp,
+ fk_user_author integer, -- user making creation
+ fk_user_modif integer, -- user making last change
+ fk_user_valid integer, -- valideur de la fiche
+ fk_warehouse integer DEFAULT 0,
+ status integer DEFAULT 0,
+ title varchar(255) NOT NULL,
+ date_inventory datetime DEFAULT NULL,
+ import_key varchar(14) -- import key
)
ENGINE=InnoDB;
diff --git a/htdocs/product/inventory/card.php b/htdocs/product/inventory/card.php
index 34e79da8a696c..e47891a6d089f 100644
--- a/htdocs/product/inventory/card.php
+++ b/htdocs/product/inventory/card.php
@@ -361,9 +361,9 @@
dol_fiche_end();
print '';
- print '';
+ print '';
print ' ';
- print '';
+ print '';
print '
';
echo '';
@@ -373,8 +373,14 @@
if ($action == 'view' || $action == 'edit' || empty($action))
{
$object = new Inventory($db);
- $object->fetch($id);
-
+ $result = $object->fetch($id);
+ if ($result < 0) dol_print_error($db, $object->error, $object->errors);
+
+ $warehouse = new Entrepot($db);
+ $warehouse->fetch($object->fk_warehouse);
+
+
+
if($action == 'changePMP')
{
print $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id, $langs->trans('ApplyNewPMP'), $langs->trans('ConfirmApplyNewPMP', $object->getTitle()), 'confirm_changePMP', array(),'no',1);
@@ -396,18 +402,17 @@
print $form->formconfirm($_SERVER["PHP_SELF"].'?id='.$object->id,$langs->trans('RegulateStock'),$langs->trans('ConfirmRegulateStock',$object->getTitle()),'confirm_regulate',array(),'no',1);
}
- $warehouse = new Entrepot($db);
- $warehouse->fetch($object->fk_warehouse);
-
print dol_get_fiche_head(inventoryPrepareHead($object, $langs->trans('inventoryOfWarehouse', $warehouse->libelle), empty($action) ? '': '&action='.$action));
$lines = array();
card_line($object, $lines, $action);
- print ''.$langs->trans('inventoryOnDate')." ".$object->getDate('date_inventory').'
';
+ print $langs->trans('Ref')." ".$object->ref.'
';
+ print $langs->trans('Date')." ".$object->getDate('date_inventory').'
';
$objectTPL = array(
- 'id'=> $object->id
+ 'id'=> $object->id
+ ,'ref'=> $object->ref
,'date_cre' => $object->getDate('date_cre', 'd/m/Y')
,'date_maj' => $object->getDate('date_maj', 'd/m/Y H:i')
,'fk_warehouse' => $object->fk_warehouse
@@ -608,8 +613,8 @@ function _headerList($view)
?>
- Produit |
- trans('Warehouse'); ?> |
+ trans('Product'); ?> |
+ trans('Warehouse'); ?> |
barcode->enabled)) { ?>
trans('Barcode'); ?> |
diff --git a/htdocs/product/inventory/class/inventory.class.php b/htdocs/product/inventory/class/inventory.class.php
index 93bbb38f6e7b7..8cb1f56eb9d2f 100644
--- a/htdocs/product/inventory/class/inventory.class.php
+++ b/htdocs/product/inventory/class/inventory.class.php
@@ -69,6 +69,7 @@ class Inventory extends CoreObject
*/
protected $fields=array(
'fk_warehouse'=>array('type'=>'integer','index'=>true)
+ ,'ref'=>array('type'=>'string','index'=>true)
,'entity'=>array('type'=>'integer','index'=>true)
,'status'=>array('type'=>'integer','index'=>true)
,'date_inventory'=>array('type'=>'date')
@@ -113,7 +114,8 @@ public function fetch($id, $loadChild = true)
if(!$loadChild) $this->withChild = false;
$res = parent::fetch($id, $loadChild);
- if($res > 0)
+
+ if ($res > 0)
{
$this->sortDet();
$this->amount = 0;
diff --git a/htdocs/product/inventory/tpl/inventory.tpl.php b/htdocs/product/inventory/tpl/inventory.tpl.php
index 2a1c3bc3ee444..05de0f4c0025d 100644
--- a/htdocs/product/inventory/tpl/inventory.tpl.php
+++ b/htdocs/product/inventory/tpl/inventory.tpl.php
@@ -80,7 +80,7 @@ function hide_save_button() {
-
+