From 46ff62fc871948f00ef1dceea973c9c79bee58bb Mon Sep 17 00:00:00 2001 From: Laurent Destailleur Date: Sat, 6 May 2017 22:28:07 +0200 Subject: [PATCH] Work on inventory module debug --- htdocs/admin/stock.php | 2 +- htdocs/core/class/commonobject.class.php | 34 +++++++++++------- htdocs/core/class/coreobject.class.php | 2 -- htdocs/core/menus/standard/eldy.lib.php | 2 +- htdocs/core/modules/modStock.class.php | 35 +++++++++++-------- htdocs/install/mysql/tables/llx_fichinter.sql | 1 - htdocs/install/mysql/tables/llx_inventory.sql | 25 +++++++------ htdocs/product/inventory/card.php | 27 ++++++++------ .../inventory/class/inventory.class.php | 4 ++- .../product/inventory/tpl/inventory.tpl.php | 4 +-- 10 files changed, 79 insertions(+), 57 deletions(-) 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) ?>
- - + + barcode->enabled)) { ?> 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() { - +
@@ -92,7 +92,7 @@ function hide_save_button() { -
  Produittrans('Warehouse'); ?>trans('Product'); ?>trans('Warehouse'); ?> trans('Barcode'); ?>
+