diff --git a/htdocs/core/actions_addupdatedelete.inc.php b/htdocs/core/actions_addupdatedelete.inc.php
index 6318e4d5c54..b8ede4d7d14 100644
--- a/htdocs/core/actions_addupdatedelete.inc.php
+++ b/htdocs/core/actions_addupdatedelete.inc.php
@@ -93,8 +93,16 @@ if ($action == 'update' && ! empty($permissiontoadd))
if (in_array($key, array('rowid', 'entity', 'date_creation', 'tms', 'fk_user_creat', 'fk_user_modif', 'import_key'))) continue; // Ignore special fields
// Set value to update
- if (in_array($object->fields[$key]['type'], array('text', 'html'))) $value = GETPOST($key,'none');
- else $value = GETPOST($key,'alpha');
+ if (in_array($object->fields[$key]['type'], array('text', 'html'))) {
+ $value = GETPOST($key,'none');
+ }
+ elseif ($object->fields[$key]['type']=='date') {
+ $value = dol_mktime(12, 0, 0, GETPOST($key.'month'), GETPOST($key.'day'), GETPOST($key.'year'));
+ } elseif ($object->fields[$key]['type']=='datetime') {
+ $value = dol_mktime(GETPOST($key.'hour'), GETPOST($key.'min'), 0, GETPOST($key.'month'), GETPOST($key.'day'), GETPOST($key.'year'));
+ } else {
+ $value = GETPOST($key,'alpha');
+ }
if (preg_match('/^integer:/i', $object->fields[$key]['type']) && $value == '-1') $value=''; // This is an implicit foreign key field
if (! empty($object->fields[$key]['foreignkey']) && $value == '-1') $value=''; // This is an explicit foreign key field
diff --git a/htdocs/core/menus/standard/eldy.lib.php b/htdocs/core/menus/standard/eldy.lib.php
index 077b6c8ba64..15a262654f4 100644
--- a/htdocs/core/menus/standard/eldy.lib.php
+++ b/htdocs/core/menus/standard/eldy.lib.php
@@ -1257,9 +1257,18 @@ function print_left_eldy_menu($db,$menu_array_before,$menu_array_after,&$tabMenu
if (! empty($conf->stock->enabled))
{
$langs->load("stocks");
- $newmenu->add("/product/inventory/list.php?leftmenu=stock", $langs->trans("Inventory"), 0, $user->rights->stock->lire, '', $mainmenu, 'stock');
- $newmenu->add("/product/inventory/card.php?action=create", $langs->trans("NewInventory"), 1, $user->rights->stock->creer);
- $newmenu->add("/product/inventory/list.php", $langs->trans("List"), 1, $user->rights->stock->lire);
+ if (empty($conf->global->MAIN_USE_ADVANCED_PERMS))
+ {
+ $newmenu->add("/product/inventory/list.php?leftmenu=stock", $langs->trans("Inventory"), 0, $user->rights->stock->lire, '', $mainmenu, 'stock');
+ $newmenu->add("/product/inventory/card.php?action=create", $langs->trans("NewInventory"), 1, $user->rights->stock->creer);
+ $newmenu->add("/product/inventory/list.php", $langs->trans("List"), 1, $user->rights->stock->lire);
+ }
+ else
+ {
+ $newmenu->add("/product/inventory/list.php?leftmenu=stock", $langs->trans("Inventory"), 0, $user->rights->stock->advance_inventory->read, '', $mainmenu, 'stock');
+ $newmenu->add("/product/inventory/card.php?action=create", $langs->trans("NewInventory"), 1, $user->rights->stock->advance_inventory->write);
+ $newmenu->add("/product/inventory/list.php", $langs->trans("List"), 1, $user->rights->stock->advance_inventory->read);
+ }
}
}
diff --git a/htdocs/product/inventory/card.php b/htdocs/product/inventory/card.php
index e393721c47d..30bb3312576 100644
--- a/htdocs/product/inventory/card.php
+++ b/htdocs/product/inventory/card.php
@@ -36,6 +36,15 @@ $action = GETPOST('action', 'alpha');
$cancel = GETPOST('cancel', 'aZ09');
$backtopage = GETPOST('backtopage', 'alpha');
+if (empty($conf->global->MAIN_USE_ADVANCED_PERMS))
+{
+ $result = restrictedArea($user, 'stock', $id);
+}
+else
+{
+ $result = restrictedArea($user, 'stock', $id, '', 'advance_inventory');
+}
+
// Initialize technical objects
$object=new Inventory($db);
$extrafields = new ExtraFields($db);
@@ -66,6 +75,16 @@ $extralabels = $extrafields->fetch_name_optionals_label($object->table_element);
// Load object
include DOL_DOCUMENT_ROOT.'/core/actions_fetchobject.inc.php'; // Must be include, not include_once // Must be include, not include_once. Include fetch and fetch_thirdparty but not fetch_optionals
+if (empty($conf->global->MAIN_USE_ADVANCED_PERMS))
+{
+ $permissiontoadd = $user->rights->stock->write;
+ $permissiontodelete = $user->rights->stock->write;
+}
+else
+{
+ $permissiontoadd = $user->rights->stock->advance_inventory->create;
+ $permissiontodelete = $user->rights->stock->advance_inventory->write;
+}
/*
@@ -80,8 +99,6 @@ if (empty($reshook))
{
$error=0;
- $permissiontoadd = $user->rights->stock->creer;
- $permissiontodelete = $user->rights->stock->supprimer;
$backurlforlist = DOL_URL_ROOT.'/product/inventory/list.php';
// Actions cancel, add, update or delete
@@ -327,7 +344,7 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea
// Send
print 'id . '&action=presend&mode=init#formmailbeforetitle">' . $langs->trans('SendMail') . ''."\n";
- if ($user->rights->inventory->write)
+ if ($permissiontoadd)
{
print 'id.'&action=edit">'.$langs->trans("Modify").''."\n";
}
@@ -336,7 +353,7 @@ if ($object->id > 0 && (empty($action) || ($action != 'edit' && $action != 'crea
print ''.$langs->trans('Modify').''."\n";
}
- if ($user->rights->inventory->delete)
+ if ($permissiontodelete)
{
print 'id.'&action=delete">'.$langs->trans('Delete').''."\n";
}
diff --git a/htdocs/product/inventory/list.php b/htdocs/product/inventory/list.php
index cb67168b214..f3089099efe 100644
--- a/htdocs/product/inventory/list.php
+++ b/htdocs/product/inventory/list.php
@@ -72,6 +72,14 @@ if ($user->societe_id > 0)
//$socid = $user->societe_id;
accessforbidden();
}
+if (empty($conf->global->MAIN_USE_ADVANCED_PERMS))
+{
+ $result = restrictedArea($user, 'stock', $objectid);
+}
+else
+{
+ $result = restrictedArea($user, 'stock', $objectid, '', 'advance_inventory');
+}
// Initialize array of search criterias
$search_all=trim(GETPOST("search_all",'alpha'));