diff --git a/htdocs/admin/confexped.php b/htdocs/admin/confexped.php
index f8d13421b2406646d387ab706a1d1322dc13c2f5..059915df3d8152ea319757419e939c99365d3f6e 100644
--- a/htdocs/admin/confexped.php
+++ b/htdocs/admin/confexped.php
@@ -2,7 +2,8 @@
/* Copyright (C) 2004-2010 Laurent Destailleur <eldy@users.sourceforge.net>
* Copyright (C) 2005-2009 Regis Houssin <regis.houssin@capnetworks.com>
* Copyright (C) 2006 Andre Cianfarani <acianfa@free.fr>
- * Copyright (C) 2011-2015 Juanjo Menent <jmenent@2byte.es>
+ * Copyright (C) 2011-2015 Juanjo Menent <jmenent@2byte.es>ù
+ * Copyright (C) 2015 Claudio Aschieri <c.aschieri@19.coop>
*
* 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
@@ -26,6 +27,7 @@
require '../main.inc.php';
require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php';
+require_once DOL_DOCUMENT_ROOT.'/core/lib/expedition.lib.php';
$langs->load("admin");
$langs->load("sendings");
@@ -76,29 +78,9 @@ llxHeader("","");
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php">'.$langs->trans("BackToModuleList").'</a>';
print load_fiche_titre($langs->trans("SendingsSetup"),$linkback,'title_setup');
print '<br>';
+$head = expedition_admin_prepare_head();
-$h = 0;
-
-$head[$h][0] = DOL_URL_ROOT."/admin/confexped.php";
-$head[$h][1] = $langs->trans("Setup");
-$hselected=$h;
-$h++;
-
-if (! empty($conf->global->MAIN_SUBMODULE_EXPEDITION))
-{
- $head[$h][0] = DOL_URL_ROOT."/admin/expedition.php";
- $head[$h][1] = $langs->trans("Shipment");
- $h++;
-}
-
-if (! empty($conf->global->MAIN_SUBMODULE_LIVRAISON))
-{
- $head[$h][0] = DOL_URL_ROOT."/admin/livraison.php";
- $head[$h][1] = $langs->trans("Receivings");
- $h++;
-}
-
-dol_fiche_head($head, $hselected, $langs->trans("ModuleSetup"));
+dol_fiche_head($head, 'general', $langs->trans("ModuleSetup"), 0, 'sending');
/*
* Formulaire parametres divers
diff --git a/htdocs/admin/expedition.php b/htdocs/admin/expedition.php
index 555badf11d82dbe279b22c257db19203a4680504..42741b49c7ae7aad54b302f8b05a541b4bf0b19c 100644
--- a/htdocs/admin/expedition.php
+++ b/htdocs/admin/expedition.php
@@ -30,6 +30,7 @@
require '../main.inc.php';
require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php';
+require_once DOL_DOCUMENT_ROOT.'/core/lib/expedition.lib.php';
require_once DOL_DOCUMENT_ROOT.'/expedition/class/expedition.class.php';
$langs->load("admin");
@@ -219,30 +220,9 @@ llxHeader("","");
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php">'.$langs->trans("BackToModuleList").'</a>';
print load_fiche_titre($langs->trans("SendingsSetup"),$linkback,'title_setup');
print '<br>';
+$head = expedition_admin_prepare_head();
-
-//if ($mesg) print $mesg.'<br>';
-
-
-$h = 0;
-
-$head[$h][0] = DOL_URL_ROOT."/admin/confexped.php";
-$head[$h][1] = $langs->trans("Setup");
-$h++;
-
-$head[$h][0] = DOL_URL_ROOT."/admin/expedition.php";
-$head[$h][1] = $langs->trans("Shipment");
-$hselected=$h;
-$h++;
-
-if (! empty($conf->global->MAIN_SUBMODULE_LIVRAISON))
-{
- $head[$h][0] = DOL_URL_ROOT."/admin/livraison.php";
- $head[$h][1] = $langs->trans("Receivings");
- $h++;
-}
-
-dol_fiche_head($head, $hselected, $langs->trans("ModuleSetup"));
+dol_fiche_head($head, 'shipment', $langs->trans("Sendings"), 0, 'sending');
/*
* Expedition numbering model
diff --git a/htdocs/admin/expedition_extrafields.php b/htdocs/admin/expedition_extrafields.php
new file mode 100644
index 0000000000000000000000000000000000000000..7db9a8f2526648ca14b305848c46857698878d6d
--- /dev/null
+++ b/htdocs/admin/expedition_extrafields.php
@@ -0,0 +1,126 @@
+<?php
+/* Copyright (C) 2001-2002 Rodolphe Quiedeville <rodolphe@quiedeville.org>
+ * Copyright (C) 2003 Jean-Louis Bergamo <jlb@j1b.org>
+ * Copyright (C) 2004-2013 Laurent Destailleur <eldy@users.sourceforge.net>
+ * Copyright (C) 2012 Regis Houssin <regis.houssin@capnetworks.com>
+ * Copyright (C) 2012 Florian Henry <florian.henry@open-concept.pro>
+ * Copyright (C) 2013 Philippe Grand <philippe.grand@atoo-net.com>
+ * Copyright (C) 2015 Claudio Aschieri <c.aschieri@19.coop>
+ *
+ * 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
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/**
+ * \file htdocs/admin/expedition_extrafields.php
+ * \ingroup expedition
+ * \brief Page to setup extra fields of expedition
+ */
+
+require '../main.inc.php';
+require_once DOL_DOCUMENT_ROOT.'/core/lib/expedition.lib.php';
+require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php';
+
+
+if (!$user->admin)
+ accessforbidden();
+
+$langs->load("admin");
+$langs->load("other");
+$langs->load("sendings");
+$langs->load("deliveries");
+
+
+$extrafields = new ExtraFields($db);
+$form = new Form($db);
+
+// List of supported format
+$tmptype2label=ExtraFields::$type2label;
+$type2label=array('');
+foreach ($tmptype2label as $key => $val) $type2label[$key]=$langs->trans($val);
+
+$action=GETPOST('action', 'alpha');
+$attrname=GETPOST('attrname', 'alpha');
+$elementtype='expedition'; //Must be the $table_element of the class that manage extrafield
+
+if (!$user->admin) accessforbidden();
+
+
+/*
+ * Actions
+ */
+
+require DOL_DOCUMENT_ROOT.'/core/actions_extrafields.inc.php';
+
+
+
+/*
+ * View
+ */
+
+$textobject=$langs->transnoentitiesnoconv("Sendings");
+
+llxHeader('',$langs->trans("SendingsSetup"));
+
+$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php">'.$langs->trans("BackToModuleList").'</a>';
+print load_fiche_titre($langs->trans("SendingsSetup"),$linkback,'title_setup');
+print "<br>\n";
+
+$head = expedition_admin_prepare_head();
+
+dol_fiche_head($head, 'attributes_shipment', $langs->trans("Sendings"), 0, 'sending');
+
+require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_view.tpl.php';
+
+dol_fiche_end();
+
+
+// Buttons
+if ($action != 'create' && $action != 'edit')
+{
+ print '<div class="tabsAction">';
+ print "<a class=\"butAction\" href=\"".$_SERVER["PHP_SELF"]."?action=create\">".$langs->trans("NewAttribute")."</a>";
+ print "</div>";
+}
+
+
+/* ************************************************************************** */
+/* */
+/* Creation d'un champ optionnel */
+/* */
+/* ************************************************************************** */
+
+if ($action == 'create')
+{
+ print "<br>";
+ print load_fiche_titre($langs->trans('NewAttribute'));
+
+ require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_add.tpl.php';
+}
+
+/* ************************************************************************** */
+/* */
+/* Edition d'un champ optionnel */
+/* */
+/* ************************************************************************** */
+if ($action == 'edit' && ! empty($attrname))
+{
+ print "<br>";
+ print load_fiche_titre($langs->trans("FieldEdition", $attrname));
+
+ require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_edit.tpl.php';
+}
+
+llxFooter();
+
+$db->close();
diff --git a/htdocs/admin/expeditiondet_extrafields.php b/htdocs/admin/expeditiondet_extrafields.php
new file mode 100644
index 0000000000000000000000000000000000000000..caddf621db5eb29ede74e47737b6f920d040ff5f
--- /dev/null
+++ b/htdocs/admin/expeditiondet_extrafields.php
@@ -0,0 +1,126 @@
+<?php
+/* Copyright (C) 2001-2002 Rodolphe Quiedeville <rodolphe@quiedeville.org>
+ * Copyright (C) 2003 Jean-Louis Bergamo <jlb@j1b.org>
+ * Copyright (C) 2004-2013 Laurent Destailleur <eldy@users.sourceforge.net>
+ * Copyright (C) 2012 Regis Houssin <regis.houssin@capnetworks.com>
+ * Copyright (C) 2012 Florian Henry <florian.henry@open-concept.pro>
+ * Copyright (C) 2013 Philippe Grand <philippe.grand@atoo-net.com>
+ * Copyright (C) 2013 Florian Henry <florian.henry@open-concept.pro>
+ * Copyright (C) 2015 Claudio Aschieri <c.aschieri@19.coop>
+ *
+ *
+ * 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
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/**
+ * \file htdocs/admin/expeditiondet_extrafields.php
+ * \ingroup expedition
+ * \brief Page to setup extra fields of expedition
+ */
+
+require '../main.inc.php';
+require_once DOL_DOCUMENT_ROOT.'/core/lib/expedition.lib.php';
+require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php';
+
+
+if (!$user->admin)
+ accessforbidden();
+
+$langs->load("admin");
+$langs->load("other");
+$langs->load("sendings");
+
+$extrafields = new ExtraFields($db);
+$form = new Form($db);
+
+// List of supported format
+$tmptype2label=ExtraFields::$type2label;
+$type2label=array('');
+foreach ($tmptype2label as $key => $val) $type2label[$key]=$langs->trans($val);
+
+$action=GETPOST('action', 'alpha');
+$attrname=GETPOST('attrname', 'alpha');
+$elementtype='expeditiondet'; //Must be the $table_element of the class that manage extrafield
+
+if (!$user->admin) accessforbidden();
+
+
+/*
+ * Actions
+ */
+
+require DOL_DOCUMENT_ROOT.'/core/actions_extrafields.inc.php';
+
+
+
+/*
+ * View
+ */
+
+$textobject=$langs->transnoentitiesnoconv("Sendings");
+
+llxHeader('',$langs->trans("SendingsSetup"));
+
+$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php">'.$langs->trans("BackToModuleList").'</a>';
+print load_fiche_titre($langs->trans("SendingsSetup"),$linkback,'title_setup');
+print "<br>\n";
+
+$head = expedition_admin_prepare_head();
+
+dol_fiche_head($head, 'attributeslines_shipment', $langs->trans("Sendings"), 0, 'sending');
+
+require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_view.tpl.php';
+
+dol_fiche_end();
+
+
+// Buttons
+if ($action != 'create' && $action != 'edit')
+{
+ print '<div class="tabsAction">';
+ print "<a class=\"butAction\" href=\"".$_SERVER["PHP_SELF"]."?action=create\">".$langs->trans("NewAttribute")."</a>";
+ print "</div>";
+}
+
+
+/* ************************************************************************** */
+/* */
+/* Creation d'un champ optionnel */
+/* */
+/* ************************************************************************** */
+
+if ($action == 'create')
+{
+ print "<br>";
+ print load_fiche_titre($langs->trans('NewAttribute'));
+
+ require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_add.tpl.php';
+}
+
+/* ************************************************************************** */
+/* */
+/* Edition d'un champ optionnel */
+/* */
+/* ************************************************************************** */
+if ($action == 'edit' && ! empty($attrname))
+{
+ print "<br>";
+ print load_fiche_titre($langs->trans("FieldEdition", $attrname));
+
+ require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_edit.tpl.php';
+}
+
+llxFooter();
+
+$db->close();
diff --git a/htdocs/admin/livraison.php b/htdocs/admin/livraison.php
index ec00cc7233caa3cb4a32e8ff083c321f4ec71d11..e7112d1fbfe55f095d9663a0a47bb74475ee04f1 100644
--- a/htdocs/admin/livraison.php
+++ b/htdocs/admin/livraison.php
@@ -7,6 +7,7 @@
* Copyright (C) 2005-2014 Regis Houssin <regis.houssin@capnetworks.com>
* Copyright (C) 2011-2013 Juanjo Menent <jmenent@2byte.es>
* Copyright (C) 2011-2015 Philippe Grand <philippe.grand@atoo-net.com>
+ * Copyright (C) 2015 Claudio Aschieri <c.aschieri@19.coop>
*
* 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
@@ -29,6 +30,7 @@
*/
require '../main.inc.php';
require_once DOL_DOCUMENT_ROOT.'/core/lib/admin.lib.php';
+require_once DOL_DOCUMENT_ROOT.'/core/lib/expedition.lib.php';
require_once DOL_DOCUMENT_ROOT.'/livraison/class/livraison.class.php';
$langs->load("admin");
@@ -210,28 +212,10 @@ $form=new Form($db);
$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php">'.$langs->trans("BackToModuleList").'</a>';
print load_fiche_titre($langs->trans("SendingsSetup"),$linkback,'title_setup');
print '<br>';
+$head = expedition_admin_prepare_head();
+dol_fiche_head($head, 'receivings', $langs->trans("Receivings"), 0, 'sending');
-$h = 0;
-
-$head[$h][0] = DOL_URL_ROOT."/admin/confexped.php";
-$head[$h][1] = $langs->trans("Setup");
-$h++;
-
-if (! empty($conf->global->MAIN_SUBMODULE_EXPEDITION))
-{
- $head[$h][0] = DOL_URL_ROOT."/admin/expedition.php";
- $head[$h][1] = $langs->trans("Shipment");
- $h++;
-}
-
-$head[$h][0] = DOL_URL_ROOT."/admin/livraison.php";
-$head[$h][1] = $langs->trans("Receivings");
-$hselected=$h;
-$h++;
-
-
-dol_fiche_head($head, $hselected, $langs->trans("ModuleSetup"));
/*
* Livraison numbering model
@@ -503,7 +487,7 @@ print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
print '<input type="hidden" name="action" value="set_DELIVERY_FREE_TEXT">';
print '<tr '.$bc[$var].'><td colspan="2">';
print $langs->trans("FreeLegalTextOnDeliveryReceipts").' ('.$langs->trans("AddCRIfTooLong").')<br>';
-print '<textarea name="DELIVERY_FREE_TEXT" class="flat" cols="120">'.$conf->global->DELIVERY_FREE_TEXT.'</textarea>';
+$variablename='DELIVERY_FREE_TEXT';
if (empty($conf->global->PDF_ALLOW_HTML_FOR_FREE_TEXT))
{
print '<textarea name="'.$variablename.'" class="flat" cols="120">'.$conf->global->$variablename.'</textarea>';
diff --git a/htdocs/admin/livraison_extrafields.php b/htdocs/admin/livraison_extrafields.php
new file mode 100644
index 0000000000000000000000000000000000000000..a236e4954cf7665a2f71cdc6dd7d049c7e1947ec
--- /dev/null
+++ b/htdocs/admin/livraison_extrafields.php
@@ -0,0 +1,126 @@
+<?php
+/* Copyright (C) 2001-2002 Rodolphe Quiedeville <rodolphe@quiedeville.org>
+ * Copyright (C) 2003 Jean-Louis Bergamo <jlb@j1b.org>
+ * Copyright (C) 2004-2013 Laurent Destailleur <eldy@users.sourceforge.net>
+ * Copyright (C) 2012 Regis Houssin <regis.houssin@capnetworks.com>
+ * Copyright (C) 2012 Florian Henry <florian.henry@open-concept.pro>
+ * Copyright (C) 2013 Philippe Grand <philippe.grand@atoo-net.com>
+ * Copyright (C) 2015 Claudio Aschieri <c.aschieri@19.coop>
+ *
+ * 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
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/**
+ * \file htdocs/admin/livraison_extrafields.php
+ * \ingroup livraison
+ * \brief Page to setup extra fields of livraison
+ */
+
+require '../main.inc.php';
+require_once DOL_DOCUMENT_ROOT.'/core/lib/expedition.lib.php';
+require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php';
+
+
+if (!$user->admin)
+ accessforbidden();
+
+$langs->load("admin");
+$langs->load("other");
+$langs->load("sendings");
+$langs->load("deliveries");
+
+
+$extrafields = new ExtraFields($db);
+$form = new Form($db);
+
+// List of supported format
+$tmptype2label=ExtraFields::$type2label;
+$type2label=array('');
+foreach ($tmptype2label as $key => $val) $type2label[$key]=$langs->trans($val);
+
+$action=GETPOST('action', 'alpha');
+$attrname=GETPOST('attrname', 'alpha');
+$elementtype='livraison'; //Must be the $table_element of the class that manage extrafield
+
+if (!$user->admin) accessforbidden();
+
+
+/*
+ * Actions
+ */
+
+require DOL_DOCUMENT_ROOT.'/core/actions_extrafields.inc.php';
+
+
+
+/*
+ * View
+ */
+
+$textobject=$langs->transnoentitiesnoconv("Receivings");
+
+llxHeader('',$langs->trans("SendingsSetup"));
+
+$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php">'.$langs->trans("BackToModuleList").'</a>';
+print load_fiche_titre($langs->trans("SendingsSetup"),$linkback,'title_setup');
+print "<br>\n";
+
+$head = expedition_admin_prepare_head();
+
+dol_fiche_head($head, 'attributes_receivings', $langs->trans("Receivings"), 0, 'sending');
+
+require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_view.tpl.php';
+
+dol_fiche_end();
+
+
+// Buttons
+if ($action != 'create' && $action != 'edit')
+{
+ print '<div class="tabsAction">';
+ print "<a class=\"butAction\" href=\"".$_SERVER["PHP_SELF"]."?action=create\">".$langs->trans("NewAttribute")."</a>";
+ print "</div>";
+}
+
+
+/* ************************************************************************** */
+/* */
+/* Creation d'un champ optionnel */
+/* */
+/* ************************************************************************** */
+
+if ($action == 'create')
+{
+ print "<br>";
+ print load_fiche_titre($langs->trans('NewAttribute'));
+
+ require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_add.tpl.php';
+}
+
+/* ************************************************************************** */
+/* */
+/* Edition d'un champ optionnel */
+/* */
+/* ************************************************************************** */
+if ($action == 'edit' && ! empty($attrname))
+{
+ print "<br>";
+ print load_fiche_titre($langs->trans("FieldEdition", $attrname));
+
+ require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_edit.tpl.php';
+}
+
+llxFooter();
+
+$db->close();
diff --git a/htdocs/admin/livraisondet_extrafields.php b/htdocs/admin/livraisondet_extrafields.php
new file mode 100644
index 0000000000000000000000000000000000000000..ffa00ecf2be926fe2d748640a4379a8ded33fdf0
--- /dev/null
+++ b/htdocs/admin/livraisondet_extrafields.php
@@ -0,0 +1,126 @@
+<?php
+/* Copyright (C) 2001-2002 Rodolphe Quiedeville <rodolphe@quiedeville.org>
+ * Copyright (C) 2003 Jean-Louis Bergamo <jlb@j1b.org>
+ * Copyright (C) 2004-2013 Laurent Destailleur <eldy@users.sourceforge.net>
+ * Copyright (C) 2012 Regis Houssin <regis.houssin@capnetworks.com>
+ * Copyright (C) 2012 Florian Henry <florian.henry@open-concept.pro>
+ * Copyright (C) 2013 Philippe Grand <philippe.grand@atoo-net.com>
+ * Copyright (C) 2013 Florian Henry <florian.henry@open-concept.pro>
+ * Copyright (C) 2015 Claudio Aschieri <c.aschieri@19.coop>
+ *
+ *
+ * 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
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+/**
+ * \file htdocs/admin/livraisondet_extrafields.php
+ * \ingroup livraison
+ * \brief Page to setup extra fields of livraison
+ */
+
+require '../main.inc.php';
+require_once DOL_DOCUMENT_ROOT.'/core/lib/expedition.lib.php';
+require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php';
+
+
+if (!$user->admin)
+ accessforbidden();
+
+$langs->load("admin");
+$langs->load("other");
+$langs->load("sendings");
+
+$extrafields = new ExtraFields($db);
+$form = new Form($db);
+
+// List of supported format
+$tmptype2label=ExtraFields::$type2label;
+$type2label=array('');
+foreach ($tmptype2label as $key => $val) $type2label[$key]=$langs->trans($val);
+
+$action=GETPOST('action', 'alpha');
+$attrname=GETPOST('attrname', 'alpha');
+$elementtype='livraisondet'; //Must be the $table_element of the class that manage extrafield
+
+if (!$user->admin) accessforbidden();
+
+
+/*
+ * Actions
+ */
+
+require DOL_DOCUMENT_ROOT.'/core/actions_extrafields.inc.php';
+
+
+
+/*
+ * View
+ */
+
+$textobject=$langs->transnoentitiesnoconv("Receivings");
+
+llxHeader('',$langs->trans("SendingsSetup"));
+
+$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php">'.$langs->trans("BackToModuleList").'</a>';
+print load_fiche_titre($langs->trans("SendingsSetup"),$linkback,'title_setup');
+print "<br>\n";
+
+$head = expedition_admin_prepare_head();
+
+dol_fiche_head($head, 'attributeslines_receivings', $langs->trans("Receivings"), 0, 'sending');
+
+require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_view.tpl.php';
+
+dol_fiche_end();
+
+
+// Buttons
+if ($action != 'create' && $action != 'edit')
+{
+ print '<div class="tabsAction">';
+ print "<a class=\"butAction\" href=\"".$_SERVER["PHP_SELF"]."?action=create\">".$langs->trans("NewAttribute")."</a>";
+ print "</div>";
+}
+
+
+/* ************************************************************************** */
+/* */
+/* Creation d'un champ optionnel */
+/* */
+/* ************************************************************************** */
+
+if ($action == 'create')
+{
+ print "<br>";
+ print load_fiche_titre($langs->trans('NewAttribute'));
+
+ require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_add.tpl.php';
+}
+
+/* ************************************************************************** */
+/* */
+/* Edition d'un champ optionnel */
+/* */
+/* ************************************************************************** */
+if ($action == 'edit' && ! empty($attrname))
+{
+ print "<br>";
+ print load_fiche_titre($langs->trans("FieldEdition", $attrname));
+
+ require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_edit.tpl.php';
+}
+
+llxFooter();
+
+$db->close();
diff --git a/htdocs/core/lib/expedition.lib.php b/htdocs/core/lib/expedition.lib.php
new file mode 100644
index 0000000000000000000000000000000000000000..0fa5f0ae64365c6105920d3d532939604b8cc4da
--- /dev/null
+++ b/htdocs/core/lib/expedition.lib.php
@@ -0,0 +1,142 @@
+<?php
+/* Copyright (C) 2006-2012 Laurent Destailleur <eldy@users.sourceforge.net>
+ * Copyright (C) 2007 Rodolphe Quiedeville <rodolphe@quiedeville.org>
+ * Copyright (C) 2010-2012 Regis Houssin <regis.houssin@capnetworks.com>
+ * Copyright (C) 2010 Juanjo Menent <jmenent@2byte.es>
+ * Copyright (C) 2015 Claudio Aschieri <c.aschieri@19.coop>
+ *
+ * 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
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ * or see http://www.gnu.org/
+ */
+
+/**
+ * \file htdocs/core/lib/expedition.lib.php
+ * \brief Function for expedition module
+ * \ingroup expedition
+ */
+
+/**
+ * Prepare array with list of tabs
+ *
+ * @param Expedition $object Object related to tabs
+ * @return array Array of tabs to show
+ */
+function expedition_prepare_head(Expedition $object)
+{
+ global $langs, $conf, $user;
+ if (! empty($conf->expedition->enabled)) $langs->load("sendings");
+ $langs->load("orders");
+
+ $h = 0;
+ $head = array();
+ $h = 0;
+
+ $head[$h][0] = DOL_URL_ROOT."/admin/confexped.php";
+ $head[$h][1] = $langs->trans("Setup");
+ $h++;
+
+ $head[$h][0] = DOL_URL_ROOT."/admin/expedition.php";
+ $head[$h][1] = $langs->trans("Shipment");
+ $hselected=$h;
+ $h++;
+
+ if (! empty($conf->global->MAIN_SUBMODULE_LIVRAISON))
+ {
+ $head[$h][0] = DOL_URL_ROOT."/admin/livraison.php";
+ $head[$h][1] = $langs->trans("Receivings");
+ $h++;
+ }
+
+
+ complete_head_from_modules($conf,$langs,$object,$head,$h,'order','remove');
+
+ return $head;
+}
+
+/**
+ * Return array head with list of tabs to view object informations.
+ *
+ * @return array head array with tabs
+ */
+function expedition_admin_prepare_head()
+{
+ global $langs, $conf, $user;
+ $langs->load("sendings");
+
+ $h = 0;
+ $head = array();
+
+ $head[$h][0] = DOL_URL_ROOT."/admin/confexped.php";
+ $head[$h][1] = $langs->trans("Setup");
+ $head[$h][2] = 'general';
+ $h++;
+
+
+ if (! empty($conf->global->MAIN_SUBMODULE_EXPEDITION))
+ {
+ $head[$h][0] = DOL_URL_ROOT."/admin/expedition.php";
+ $head[$h][1] = $langs->trans("Shipment");
+ $head[$h][2] = 'shipment';
+ $h++;
+ }
+
+
+ if (! empty($conf->global->MAIN_SUBMODULE_EXPEDITION))
+ {
+ $head[$h][0] = DOL_URL_ROOT.'/admin/expedition_extrafields.php';
+ $head[$h][1] = $langs->trans("ExtraFields");
+ $head[$h][2] = 'attributes_shipment';
+ $h++;
+ }
+
+ if (! empty($conf->global->MAIN_SUBMODULE_EXPEDITION))
+ {
+ $head[$h][0] = DOL_URL_ROOT.'/admin/expeditiondet_extrafields.php';
+ $head[$h][1] = $langs->trans("ExtraFieldsLines");
+ $head[$h][2] = 'attributeslines_shipment';
+ $h++;
+ }
+
+ if (! empty($conf->global->MAIN_SUBMODULE_LIVRAISON))
+ {
+ $head[$h][0] = DOL_URL_ROOT."/admin/livraison.php";
+ $head[$h][1] = $langs->trans("Receivings");
+ $head[$h][2] = 'receivings';
+ $h++;
+ }
+
+ if (! empty($conf->global->MAIN_SUBMODULE_LIVRAISON))
+ {
+ $head[$h][0] = DOL_URL_ROOT.'/admin/livraison_extrafields.php';
+ $head[$h][1] = $langs->trans("ExtraFields");
+ $head[$h][2] = 'attributes_receivings';
+ $h++;
+ }
+
+ if (! empty($conf->global->MAIN_SUBMODULE_LIVRAISON))
+ {
+ $head[$h][0] = DOL_URL_ROOT.'/admin/livraisondet_extrafields.php';
+ $head[$h][1] = $langs->trans("ExtraFieldsLines");
+ $head[$h][2] = 'attributeslines_receivings';
+ $h++;
+ }
+
+
+
+ complete_head_from_modules($conf,$langs,null,$head,$h,'expedition_admin','remove');
+
+ return $head;
+}
+
+
diff --git a/htdocs/core/tpl/extrafields_view.tpl.php b/htdocs/core/tpl/extrafields_view.tpl.php
index b29016ac28ba13866603226f4f2f6ede850b97f6..8b38cbc552068b48759140f5d4303598c86996f2 100644
--- a/htdocs/core/tpl/extrafields_view.tpl.php
+++ b/htdocs/core/tpl/extrafields_view.tpl.php
@@ -59,6 +59,8 @@ if (empty($reshook) && ! empty($extrafields->attribute_label))
if (isset($user->rights->$keyforperm)) $permok=$user->rights->$keyforperm->creer||$user->rights->$keyforperm->create||$user->rights->$keyforperm->write;
if ($object->element=='order_supplier') $permok=$user->rights->fournisseur->commande->creer;
if ($object->element=='invoice_supplier') $permok=$user->rights->fournisseur->facture->creer;
+ if ($object->element=='shipping') $permok=$user->rights->expedition->creer;
+ if ($object->element=='delivery') $permok=$user->rights->expedition->livraison->creer;
if (($object->statut == 0 || $extrafields->attribute_alwayseditable[$key])
&& $permok && ($action != 'edit_extras' || GETPOST('attribute') != $key))
diff --git a/htdocs/expedition/card.php b/htdocs/expedition/card.php
index 6a236ab534e128d2ba5e3391bd9857e336bdd8b4..b3db0a40e12f679377d4c0d0cae9f7e31227d983 100644
--- a/htdocs/expedition/card.php
+++ b/htdocs/expedition/card.php
@@ -8,6 +8,7 @@
* Copyright (C) 2013 Marcos García <marcosgdf@gmail.com>
* Copyright (C) 2014 Cedric GROSS <c.gross@kreiz-it.fr>
* Copyright (C) 2014 Francis Appels <francis.appels@yahoo.com>
+ * Copyright (C) 2015 Claudio Aschieri <c.aschieri@19.coop>
*
* 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
@@ -37,6 +38,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/product.lib.php';
require_once DOL_DOCUMENT_ROOT.'/core/lib/sendings.lib.php';
require_once DOL_DOCUMENT_ROOT.'/core/modules/expedition/modules_expedition.php';
require_once DOL_DOCUMENT_ROOT.'/core/class/doleditor.class.php';
+require_once DOL_DOCUMENT_ROOT . '/core/class/extrafields.class.php';
if (! empty($conf->product->enabled) || ! empty($conf->service->enabled)) require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php';
if (! empty($conf->propal->enabled)) require_once DOL_DOCUMENT_ROOT.'/comm/propal/class/propal.class.php';
if (! empty($conf->commande->enabled)) require_once DOL_DOCUMENT_ROOT.'/commande/class/commande.class.php';
@@ -75,6 +77,15 @@ $hidedesc = (GETPOST('hidedesc','int') ? GETPOST('hidedesc','int') : (! empty(
$hideref = (GETPOST('hideref','int') ? GETPOST('hideref','int') : (! empty($conf->global->MAIN_GENERATE_DOCUMENTS_HIDE_REF) ? 1 : 0));
$object = new Expedition($db);
+$extrafields = new ExtraFields($db);
+$extrafieldsline = new ExtraFields($db);
+
+// fetch optionals attributes and labels
+$extralabels = $extrafields->fetch_name_optionals_label($object->table_element);
+
+// fetch optionals attributes lines and labels
+$extralabelslines=$extrafieldsline->fetch_name_optionals_label($object->table_element_line);
+
// Load object. Make an object->fetch
include DOL_DOCUMENT_ROOT.'/core/actions_fetchobject.inc.php'; // Must be include, not include_once
@@ -111,6 +122,33 @@ if ($action == 'set_incoterms' && !empty($conf->incoterm->enabled))
$result = $object->setIncoterms(GETPOST('incoterm_id', 'int'), GETPOST('location_incoterms', 'alpha'));
}
+if ($action == 'update_extras')
+{
+ // Fill array 'array_options' with data from update form
+ $extralabels = $extrafields->fetch_name_optionals_label($object->table_element);
+ $ret = $extrafields->setOptionalsFromPost($extralabels, $object, GETPOST('attribute'));
+ if ($ret < 0) $error++;
+
+ if (! $error)
+ {
+ // Actions on extra fields (by external module or standard code)
+ // TODO le hook fait double emploi avec le trigger !!
+ $hookmanager->initHooks(array('expeditiondao'));
+ $parameters = array('id' => $object->id);
+ $reshook = $hookmanager->executeHooks('insertExtraFields', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks
+ if (empty($reshook)) {
+ $result = $object->insertExtraFields();
+ if ($result < 0) {
+ $error++;
+ }
+ } else if ($reshook < 0)
+ $error++;
+ }
+
+ if ($error)
+ $action = 'edit_extras';
+}
+
$parameters=array();
$reshook=$hookmanager->executeHooks('doActions',$parameters,$object,$action); // Note that $action and $object may have been modified by some hooks
if ($reshook < 0) setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
@@ -119,9 +157,10 @@ if (empty($reshook))
{
include DOL_DOCUMENT_ROOT.'/core/actions_dellink.inc.php'; // Must be include, not include_once
- if ($action == 'add')
+ if ($action == 'add' && $user->rights->expedition->creer)
{
$error=0;
+ $predef='';
$db->begin();
@@ -157,7 +196,8 @@ if (empty($reshook))
$object->location_incoterms = GETPOST('location_incoterms', 'alpha');
$batch_line = array();
-
+ $array_options=array();
+
$num=count($objectsrc->lines);
$totalqty=0;
@@ -201,8 +241,20 @@ if (empty($reshook))
//shipment line for product with no batch management
if (GETPOST($qty,'int') > 0) $totalqty+=GETPOST($qty,'int');
}
+
+ // Extrafields
+ $extralabelsline = $extrafieldsline->fetch_name_optionals_label($object->table_element_line);
+ $array_options[$i] = $extrafieldsline->getOptionalsFromPost($extralabelsline, $i);
+ // Unset extrafield
+ if (is_array($extralabelsline)) {
+ // Get extra fields
+ foreach ($extralabelsline as $key => $value) {
+ unset($_POST["options_" . $key]);
+ }
+ }
+
}
-
+
//var_dump($batch_line[2]);
if ($totalqty > 0) // There is at least one thing to ship
@@ -220,8 +272,8 @@ if (empty($reshook))
$idl = "idl".$i;
$entrepot_id = is_numeric(GETPOST($ent,'int'))?GETPOST($ent,'int'):GETPOST('entrepot_id','int');
if ($entrepot_id < 0) $entrepot_id='';
-
- $ret=$object->addline($entrepot_id,GETPOST($idl,'int'),GETPOST($qty,'int'));
+
+ $ret=$object->addline($entrepot_id,GETPOST($idl,'int'),GETPOST($qty,'int'),$array_options[$i]);
if ($ret < 0)
{
$mesg='<div class="error">'.$object->error.'</div>';
@@ -234,7 +286,7 @@ if (empty($reshook))
// batch mode
if ($batch_line[$i]['qty']>0)
{
- $ret=$object->addline_batch($batch_line[$i]);
+ $ret=$object->addline_batch($batch_line[$i],$array_options[$i]);
if ($ret < 0)
{
$mesg='<div class="error">'.$object->error.'</div>';
@@ -242,8 +294,11 @@ if (empty($reshook))
}
}
}
- }
-
+ }
+ // Fill array 'array_options' with data from add form
+ $ret = $extrafields->setOptionalsFromPost($extralabels, $object);
+ if ($ret < 0) $error++;
+
if (! $error)
{
$ret=$object->create($user); // This create shipment (like Odoo picking) and line of shipments. Stock movement will when validating shipment.
@@ -606,6 +661,15 @@ if ($action == 'create')
print '<td colspan="3">';
print '<input name="tracking_number" size="20" value="'.GETPOST('tracking_number','alpha').'">';
print "</td></tr>\n";
+
+ // Other attributes
+ $parameters = array('objectsrc' => $objectsrc, 'colspan' => ' colspan="3"', 'socid'=>$socid);
+ $reshook=$hookmanager->executeHooks('formObjectOptions',$parameters,$expe,$action); // Note that $action and $object may have been modified by hook
+
+ if (empty($reshook) && ! empty($extrafields->attribute_label)) {
+ print $expe->showOptionals($extrafields, 'edit');
+ }
+
// Incoterms
if (!empty($conf->incoterm->enabled))
@@ -624,17 +688,13 @@ if ($action == 'create')
$liste = ModelePdfExpedition::liste_modeles($db);
print $form->selectarray('model', $liste, $conf->global->EXPEDITION_ADDON_PDF);
print "</td></tr>\n";
-
- // Other attributes
- $parameters=array('colspan' => ' colspan="3"');
- $reshook=$hookmanager->executeHooks('formObjectOptions',$parameters,$expe,$action); // Note that $action and $object may have been modified by hook
-
+
print "</table>";
dol_fiche_end();
/*
- * Lignes de commandes
+ * Expedition Lines
*/
$numAsked = count($object->lines);
@@ -898,6 +958,17 @@ if ($action == 'create')
print img_warning().' '.$langs->trans("NoProductToShipFoundIntoStock", $staticwarehouse->libelle);
}
}
+
+
+ //Display lines extrafields
+ if (is_array($extralabelslines) && count($extralabelslines)>0) {
+ $colspan=5;
+ $line = new ExpeditionLigne($db);
+ $line->fetch_optionals($object->id,$extralabelslines);
+ print '<tr '.$bc[$var].'>';
+ print $line->showOptionals($extrafieldsline, 'edit', array('style'=>$bc[$var], 'colspan'=>$colspan),$indiceAsked);
+ print '</tr>';
+ }
$indiceAsked++;
}
@@ -939,6 +1010,8 @@ else if ($id || $ref)
$soc = new Societe($db);
$soc->fetch($object->socid);
+
+ $res = $object->fetch_optionals($object->id, $extralabels);
$head=shipping_prepare_head($object);
dol_fiche_head($head, 'shipping', $langs->trans("Shipment"), 0, 'sending');
@@ -1259,9 +1332,9 @@ else if ($id || $ref)
}
// Other attributes
- $parameters=array('colspan' => ' colspan="3"');
- $reshook=$hookmanager->executeHooks('formObjectOptions',$parameters,$object,$action); // Note that $action and $object may have been modified by hook
-
+ $cols = 3;
+ include DOL_DOCUMENT_ROOT . '/core/tpl/extrafields_view.tpl.php';
+
print "</table>\n";
/*
@@ -1444,6 +1517,16 @@ else if ($id || $ref)
}
}
print "</tr>";
+
+ //Display lines extrafields
+ if (is_array($extralabelslines) && count($extralabelslines)>0) {
+ $colspan= empty($conf->productbatch->enabled) ? 5 : 6;
+ $line = new ExpeditionLigne($db);
+ $line->fetch_optionals($lines[$i]->id,$extralabelslines);
+ print '<tr '.$bc[$var].'>';
+ print $line->showOptionals($extrafieldsline, 'view', array('style'=>$bc[$var], 'colspan'=>$colspan),$indiceAsked);
+ print '</tr>';
+ }
$var=!$var;
}
diff --git a/htdocs/expedition/class/expedition.class.php b/htdocs/expedition/class/expedition.class.php
index d7bfc9aed9873c17a52eeb30e7d071349d0d1948..39b69ffb4474471da770725d7f46cd00237b7a98 100644
--- a/htdocs/expedition/class/expedition.class.php
+++ b/htdocs/expedition/class/expedition.class.php
@@ -8,6 +8,7 @@
* Copyright (C) 2014 Cedric GROSS <c.gross@kreiz-it.fr>
* Copyright (C) 2014-2015 Marcos García <marcosgdf@gmail.com>
* Copyright (C) 2014-2015 Francis Appels <francis.appels@yahoo.com>
+ * Copyright (C) 2015 Claudio Aschieri <c.aschieri@19.coop>
*
* 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
@@ -30,6 +31,7 @@
*/
require_once DOL_DOCUMENT_ROOT.'/core/class/commonobject.class.php';
+require_once DOL_DOCUMENT_ROOT."/core/class/commonobjectline.class.php";
if (! empty($conf->propal->enabled)) require_once DOL_DOCUMENT_ROOT.'/comm/propal/class/propal.class.php';
if (! empty($conf->commande->enabled)) require_once DOL_DOCUMENT_ROOT.'/commande/class/commande.class.php';
if (! empty($conf->productbatch->enabled)) require_once DOL_DOCUMENT_ROOT.'/expedition/class/expeditionbatch.class.php';
@@ -43,6 +45,7 @@ class Expedition extends CommonObject
public $element="shipping";
public $fk_element="fk_expedition";
public $table_element="expedition";
+ public $table_element_line="expeditiondet";
protected $ismultientitymanaged = 1; // 0=No test on entity, 1=Test with field entity, 2=Test with link by societe
var $socid;
@@ -167,11 +170,12 @@ class Expedition extends CommonObject
* Create expedition en base
*
* @param User $user Objet du user qui cree
+ * @param int $notrigger 1=Does not execute triggers, 0= execuete triggers
* @return int <0 si erreur, id expedition creee si ok
*/
- function create($user)
+ function create($user, $notrigger=0)
{
- global $conf, $langs;
+ global $conf, $langs, $hookmanager;
$now=dol_now();
@@ -255,14 +259,14 @@ class Expedition extends CommonObject
{
if (! isset($this->lines[$i]->detail_batch))
{ // no batch management
- if (! $this->create_line($this->lines[$i]->entrepot_id, $this->lines[$i]->origin_line_id, $this->lines[$i]->qty) > 0)
+ if (! $this->create_line($this->lines[$i]->entrepot_id, $this->lines[$i]->origin_line_id, $this->lines[$i]->qty, $this->lines[$i]->array_options) > 0)
{
$error++;
}
}
else
{ // with batch management
- if (! $this->create_line_batch($this->lines[$i]) > 0)
+ if (! $this->create_line_batch($this->lines[$i],$this->lines[$i]->array_options) > 0)
{
$error++;
}
@@ -284,8 +288,26 @@ class Expedition extends CommonObject
$error++;
}
}
+
+ // Actions on extra fields (by external module or standard code)
+ // TODO le hook fait double emploi avec le trigger !!
+ $hookmanager->initHooks(array('expeditiondao'));
+ $parameters=array('socid'=>$this->id);
+ $reshook=$hookmanager->executeHooks('insertExtraFields',$parameters,$this,$action); // Note that $action and $object may have been modified by some hooks
+ if (empty($reshook))
+ {
+ if (empty($conf->global->MAIN_EXTRAFIELDS_DISABLED)) // For avoid conflicts if trigger used
+ {
+ $result=$this->insertExtraFields();
+ if ($result < 0)
+ {
+ $error++;
+ }
+ }
+ }
+ else if ($reshook < 0) $error++;
- if (! $error)
+ if (! $error && ! $notrigger)
{
// Call trigger
$result=$this->call_trigger('SHIPPING_CREATE',$user);
@@ -340,10 +362,12 @@ class Expedition extends CommonObject
* @param int $entrepot_id Id of warehouse
* @param int $origin_line_id Id of source line
* @param int $qty Quantity
+ * @param array $array_options extrafields array
* @return int <0 if KO, >0 if OK
*/
- function create_line($entrepot_id, $origin_line_id, $qty)
+ function create_line($entrepot_id, $origin_line_id, $qty,$array_options=0)
{
+ global $conf;
$error = 0;
$sql = "INSERT INTO ".MAIN_DB_PREFIX."expeditiondet (";
@@ -363,6 +387,19 @@ class Expedition extends CommonObject
{
$error++;
}
+
+ if (!$error && empty($conf->global->MAIN_EXTRAFIELDS_DISABLED) && is_array($array_options) && count($array_options)>0) // For avoid conflicts if trigger used
+ {
+ $expeditionline = new ExpeditionLigne($this->db);
+ $expeditionline->array_options=$array_options;
+ $expeditionline->id= $this->db->last_insert_id(MAIN_DB_PREFIX.$expeditionline->table_element);
+ $result=$expeditionline->insertExtraFields();
+ if ($result < 0)
+ {
+ $this->error[]=$expeditionline->error;
+ $error++;
+ }
+ }
if (! $error) return 1;
else return -1;
@@ -373,13 +410,14 @@ class Expedition extends CommonObject
* Create the detail (eat-by date) of the expedition line
*
* @param object $line_ext full line informations
+ * @param array $array_options extrafields array
* @return int <0 if KO, >0 if OK
*/
- function create_line_batch($line_ext)
+ function create_line_batch($line_ext,$array_options=0)
{
$error = 0;
- if ($this->create_line(($line_ext->entrepot_id?$line_ext->entrepot_id:'null'),$line_ext->origin_line_id,$line_ext->qty) < 0)
+ if ($this->create_line(($line_ext->entrepot_id?$line_ext->entrepot_id:'null'),$line_ext->origin_line_id,$line_ext->qty,$array_options) < 0)
{
$error++;
}
@@ -500,6 +538,13 @@ class Expedition extends CommonObject
* Thirparty
*/
$result=$this->fetch_thirdparty();
+
+ // Retrieve all extrafields for expedition
+ // fetch optionals attributes and labels
+ require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php';
+ $extrafields=new ExtraFields($this->db);
+ $extralabels=$extrafields->fetch_name_optionals_label($this->table_element,true);
+ $this->fetch_optionals($this->id,$extralabels);
/*
* Lines
@@ -784,9 +829,10 @@ class Expedition extends CommonObject
* @param int $entrepot_id Id of warehouse
* @param int $id Id of source line (order line)
* @param int $qty Quantity
+ * @param array $array_options extrafields array
* @return int <0 if KO, >0 if OK
*/
- function addline($entrepot_id, $id, $qty)
+ function addline($entrepot_id, $id, $qty,$array_options=0)
{
global $conf, $langs;
@@ -824,7 +870,11 @@ class Expedition extends CommonObject
}
}
}
-
+
+ // extrafields
+ if (empty($conf->global->MAIN_EXTRAFIELDS_DISABLED) && is_array($array_options) && count($array_options)>0) // For avoid conflicts if trigger used
+ $line->array_options = $array_options;
+
$this->lines[$num] = $line;
}
@@ -832,10 +882,13 @@ class Expedition extends CommonObject
* Add a shipment line with batch record
*
* @param array $dbatch Array of value (key 'detail' -> Array, key 'qty' total quantity for line, key ix_l : original line index)
+ * @param array $array_options extrafields array
* @return int <0 if KO, >0 if OK
*/
- function addline_batch($dbatch)
+ function addline_batch($dbatch,$array_options=0)
{
+ global $conf;
+
$num = count($this->lines);
if ($dbatch['qty']>0)
{
@@ -872,6 +925,10 @@ class Expedition extends CommonObject
$line->qty = $dbatch['qty'];
$line->detail_batch=$tab;
+ // extrafields
+ if (empty($conf->global->MAIN_EXTRAFIELDS_DISABLED) && is_array($array_options) && count($array_options)>0) // For avoid conflicts if trigger used
+ $line->array_options = $array_options;
+
//var_dump($line);
$this->lines[$num] = $line;
}
@@ -1765,7 +1822,7 @@ class Expedition extends CommonObject
/**
* Classe de gestion des lignes de bons d'expedition
*/
-class ExpeditionLigne
+class ExpeditionLigne extends CommonObjectLine
{
var $db;
@@ -1790,6 +1847,9 @@ class ExpeditionLigne
var $total_localtax1; // Total Local tax 1
var $total_localtax2; // Total Local tax 2
+ public $element='expeditiondet';
+ public $table_element='expeditiondet';
+
public $fk_origin_line;
// Deprecated
diff --git a/htdocs/install/mysql/migration/3.8.0-3.9.0.sql b/htdocs/install/mysql/migration/3.8.0-3.9.0.sql
index 99a042c8c31becf3dfeb3639ea1ea929004c6eb7..6def2432254c4de25002950b6860dab1db9115f8 100755
--- a/htdocs/install/mysql/migration/3.8.0-3.9.0.sql
+++ b/htdocs/install/mysql/migration/3.8.0-3.9.0.sql
@@ -315,6 +315,54 @@ create table llx_categorie_project
import_key varchar(14)
)ENGINE=innodb;
+
+
+
+-- Extrafields Expedition (shipment)
+create table llx_expedition_extrafields
+(
+ rowid integer AUTO_INCREMENT PRIMARY KEY,
+ tms timestamp,
+ fk_object integer NOT NULL,
+ import_key varchar(14) -- import key
+) ENGINE=innodb;
+
+ALTER TABLE llx_expedition_extrafields ADD INDEX idx_expedition_extrafields (fk_object);
+
+create table llx_expeditiondet_extrafields
+(
+ rowid integer AUTO_INCREMENT PRIMARY KEY,
+ tms timestamp,
+ fk_object integer NOT NULL, -- object id
+ import_key varchar(14) -- import key
+)ENGINE=innodb;
+
+ALTER TABLE llx_expeditiondet_extrafields ADD INDEX idx_expeditiondet_extrafields (fk_object);
+
+
+
+-- Extrafields Expedition (delivery receipts)
+create table llx_livraison_extrafields
+(
+ rowid integer AUTO_INCREMENT PRIMARY KEY,
+ tms timestamp,
+ fk_object integer NOT NULL,
+ import_key varchar(14) -- import key
+) ENGINE=innodb;
+
+ALTER TABLE llx_livraison_extrafields ADD INDEX idx_livraison_extrafields (fk_object);
+
+create table llx_livraisondet_extrafields
+(
+ rowid integer AUTO_INCREMENT PRIMARY KEY,
+ tms timestamp,
+ fk_object integer NOT NULL, -- object id
+ import_key varchar(14) -- import key
+)ENGINE=innodb;
+
+ALTER TABLE llx_livraisondet_extrafields ADD INDEX idx_livraisondet_extrafields (fk_object);
+
+
ALTER TABLE llx_categorie_project ADD PRIMARY KEY pk_categorie_project (fk_categorie, fk_project);
ALTER TABLE llx_categorie_project ADD INDEX idx_categorie_project_fk_categorie (fk_categorie);
ALTER TABLE llx_categorie_project ADD INDEX idx_categorie_project_fk_project (fk_project);
diff --git a/htdocs/install/mysql/tables/llx_expedition_extrafields.key.sql b/htdocs/install/mysql/tables/llx_expedition_extrafields.key.sql
new file mode 100644
index 0000000000000000000000000000000000000000..b539f460a08738467322c8ee0ed3ebecbf146402
--- /dev/null
+++ b/htdocs/install/mysql/tables/llx_expedition_extrafields.key.sql
@@ -0,0 +1,20 @@
+-- ===================================================================
+-- Copyright (C) 2015 Claudio Aschieri <c.aschieri@19.coop>
+--
+-- 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
+-- the Free Software Foundation; either version 3 of the License, or
+-- (at your option) any later version.
+--
+-- This program is distributed in the hope that it will be useful,
+-- but WITHOUT ANY WARRANTY; without even the implied warranty of
+-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+-- GNU General Public License for more details.
+--
+-- You should have received a copy of the GNU General Public License
+-- along with this program. If not, see <http://www.gnu.org/licenses/>.
+--
+-- ===================================================================
+
+
+ALTER TABLE llx_expedition_extrafields ADD INDEX idx_expedition_extrafields (fk_object);
diff --git a/htdocs/install/mysql/tables/llx_expedition_extrafields.sql b/htdocs/install/mysql/tables/llx_expedition_extrafields.sql
new file mode 100644
index 0000000000000000000000000000000000000000..eff8465fbf66061703152a9772d016e235feed56
--- /dev/null
+++ b/htdocs/install/mysql/tables/llx_expedition_extrafields.sql
@@ -0,0 +1,26 @@
+-- ========================================================================
+-- Copyright (C) 2015 Claudio Aschieri <c.aschieri@19.coop>
+--
+-- 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
+-- the Free Software Foundation; either version 3 of the License, or
+-- (at your option) any later version.
+--
+-- This program is distributed in the hope that it will be useful,
+-- but WITHOUT ANY WARRANTY; without even the implied warranty of
+-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+-- GNU General Public License for more details.
+--
+-- You should have received a copy of the GNU General Public License
+-- along with this program. If not, see <http://www.gnu.org/licenses/>.
+--
+-- ========================================================================
+
+create table llx_expedition_extrafields
+(
+ rowid integer AUTO_INCREMENT PRIMARY KEY,
+ tms timestamp,
+ fk_object integer NOT NULL,
+ import_key varchar(14) -- import key
+) ENGINE=innodb;
+
diff --git a/htdocs/install/mysql/tables/llx_expeditiondet_extrafields.key.sql b/htdocs/install/mysql/tables/llx_expeditiondet_extrafields.key.sql
new file mode 100644
index 0000000000000000000000000000000000000000..11e133442d50af2a6e2fd7d320062f6b4c42a1fb
--- /dev/null
+++ b/htdocs/install/mysql/tables/llx_expeditiondet_extrafields.key.sql
@@ -0,0 +1,20 @@
+-- ===================================================================
+-- Copyright (C) 2015 Claudio Aschieri <c.aschieri@19.coop>
+--
+-- 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
+-- the Free Software Foundation; either version 3 of the License, or
+-- (at your option) any later version.
+--
+-- This program is distributed in the hope that it will be useful,
+-- but WITHOUT ANY WARRANTY; without even the implied warranty of
+-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+-- GNU General Public License for more details.
+--
+-- You should have received a copy of the GNU General Public License
+-- along with this program. If not, see <http://www.gnu.org/licenses/>.
+--
+-- ===================================================================
+
+
+ALTER TABLE llx_expeditiondet_extrafields ADD INDEX idx_expeditiondet_extrafields (fk_object);
diff --git a/htdocs/install/mysql/tables/llx_expeditiondet_extrafields.sql b/htdocs/install/mysql/tables/llx_expeditiondet_extrafields.sql
new file mode 100644
index 0000000000000000000000000000000000000000..e27c7f3e5054386c53bb71f26a4802ea5301e106
--- /dev/null
+++ b/htdocs/install/mysql/tables/llx_expeditiondet_extrafields.sql
@@ -0,0 +1,25 @@
+-- ===================================================================
+-- Copyright (C) 2015 Claudio Aschieri <c.aschieri@19.coop>
+--
+-- 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
+-- the Free Software Foundation; either version 3 of the License, or
+-- (at your option) any later version.
+--
+-- This program is distributed in the hope that it will be useful,
+-- but WITHOUT ANY WARRANTY; without even the implied warranty of
+-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+-- GNU General Public License for more details.
+--
+-- You should have received a copy of the GNU General Public License
+-- along with this program. If not, see <http://www.gnu.org/licenses/>.
+--
+-- ===================================================================
+
+create table llx_expeditiondet_extrafields
+(
+ rowid integer AUTO_INCREMENT PRIMARY KEY,
+ tms timestamp,
+ fk_object integer NOT NULL, -- object id
+ import_key varchar(14) -- import key
+)ENGINE=innodb;
diff --git a/htdocs/install/mysql/tables/llx_livraison_extrafields.key.sql b/htdocs/install/mysql/tables/llx_livraison_extrafields.key.sql
new file mode 100644
index 0000000000000000000000000000000000000000..68e1f30bd1544d590cbf4de2b40384fbe08982ca
--- /dev/null
+++ b/htdocs/install/mysql/tables/llx_livraison_extrafields.key.sql
@@ -0,0 +1,20 @@
+-- ===================================================================
+-- Copyright (C) 2015 Claudio Aschieri <c.aschieri@19.coop>
+--
+-- 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
+-- the Free Software Foundation; either version 3 of the License, or
+-- (at your option) any later version.
+--
+-- This program is distributed in the hope that it will be useful,
+-- but WITHOUT ANY WARRANTY; without even the implied warranty of
+-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+-- GNU General Public License for more details.
+--
+-- You should have received a copy of the GNU General Public License
+-- along with this program. If not, see <http://www.gnu.org/licenses/>.
+--
+-- ===================================================================
+
+
+ALTER TABLE llx_livraison_extrafields ADD INDEX idx_livraison_extrafields (fk_object);
diff --git a/htdocs/install/mysql/tables/llx_livraison_extrafields.sql b/htdocs/install/mysql/tables/llx_livraison_extrafields.sql
new file mode 100644
index 0000000000000000000000000000000000000000..8a140496016ac39883055a942de6765497293667
--- /dev/null
+++ b/htdocs/install/mysql/tables/llx_livraison_extrafields.sql
@@ -0,0 +1,26 @@
+-- ========================================================================
+-- Copyright (C) 2015 Claudio Aschieri <c.aschieri@19.coop>
+--
+-- 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
+-- the Free Software Foundation; either version 3 of the License, or
+-- (at your option) any later version.
+--
+-- This program is distributed in the hope that it will be useful,
+-- but WITHOUT ANY WARRANTY; without even the implied warranty of
+-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+-- GNU General Public License for more details.
+--
+-- You should have received a copy of the GNU General Public License
+-- along with this program. If not, see <http://www.gnu.org/licenses/>.
+--
+-- ========================================================================
+
+create table llx_livraison_extrafields
+(
+ rowid integer AUTO_INCREMENT PRIMARY KEY,
+ tms timestamp,
+ fk_object integer NOT NULL,
+ import_key varchar(14) -- import key
+) ENGINE=innodb;
+
diff --git a/htdocs/install/mysql/tables/llx_livraisondet_extrafields.key.sql b/htdocs/install/mysql/tables/llx_livraisondet_extrafields.key.sql
new file mode 100644
index 0000000000000000000000000000000000000000..e3fcb9a0f237c6439358dee8f3b0f81fa85d1b70
--- /dev/null
+++ b/htdocs/install/mysql/tables/llx_livraisondet_extrafields.key.sql
@@ -0,0 +1,20 @@
+-- ===================================================================
+-- Copyright (C) 2015 Claudio Aschieri <c.aschieri@19.coop>
+--
+-- 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
+-- the Free Software Foundation; either version 3 of the License, or
+-- (at your option) any later version.
+--
+-- This program is distributed in the hope that it will be useful,
+-- but WITHOUT ANY WARRANTY; without even the implied warranty of
+-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+-- GNU General Public License for more details.
+--
+-- You should have received a copy of the GNU General Public License
+-- along with this program. If not, see <http://www.gnu.org/licenses/>.
+--
+-- ===================================================================
+
+
+ALTER TABLE llx_livraisondet_extrafields ADD INDEX idx_livraisondet_extrafields (fk_object);
diff --git a/htdocs/install/mysql/tables/llx_livraisondet_extrafields.sql b/htdocs/install/mysql/tables/llx_livraisondet_extrafields.sql
new file mode 100644
index 0000000000000000000000000000000000000000..18295a90f5a71b1a7fe92c51d57c4efb1ab13056
--- /dev/null
+++ b/htdocs/install/mysql/tables/llx_livraisondet_extrafields.sql
@@ -0,0 +1,25 @@
+-- ===================================================================
+-- Copyright (C) 2015 Claudio Aschieri <c.aschieri@19.coop>
+--
+-- 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
+-- the Free Software Foundation; either version 3 of the License, or
+-- (at your option) any later version.
+--
+-- This program is distributed in the hope that it will be useful,
+-- but WITHOUT ANY WARRANTY; without even the implied warranty of
+-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+-- GNU General Public License for more details.
+--
+-- You should have received a copy of the GNU General Public License
+-- along with this program. If not, see <http://www.gnu.org/licenses/>.
+--
+-- ===================================================================
+
+create table llx_livraisondet_extrafields
+(
+ rowid integer AUTO_INCREMENT PRIMARY KEY,
+ tms timestamp,
+ fk_object integer NOT NULL, -- object id
+ import_key varchar(14) -- import key
+)ENGINE=innodb;
diff --git a/htdocs/livraison/card.php b/htdocs/livraison/card.php
index ec4feeb6bf998672f4ab27723a583a3ae03d8a48..c08c80536d7b77a6021dc5457b79f2157b05f44d 100644
--- a/htdocs/livraison/card.php
+++ b/htdocs/livraison/card.php
@@ -5,6 +5,7 @@
* Copyright (C) 2005-2014 Regis Houssin <regis.houssin@capnetworks.com>
* Copyright (C) 2007 Franky Van Liedekerke <franky.van.liedekerke@telenet.be>
* Copyright (C) 2013 Florian Henry <florian.henry@open-concept.pro>
+ * Copyright (C) 2015 Claudio Aschieri <c.aschieri@19.coop>
*
* 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
@@ -31,6 +32,7 @@ require_once DOL_DOCUMENT_ROOT.'/livraison/class/livraison.class.php';
require_once DOL_DOCUMENT_ROOT.'/core/modules/livraison/modules_livraison.php';
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php';
require_once DOL_DOCUMENT_ROOT.'/core/lib/sendings.lib.php';
+require_once DOL_DOCUMENT_ROOT . '/core/class/extrafields.class.php';
if (! empty($conf->product->enabled) || ! empty($conf->service->enabled))
require_once DOL_DOCUMENT_ROOT.'/product/class/product.class.php';
if (! empty($conf->expedition_bon->enabled))
@@ -55,15 +57,17 @@ if ($user->societe_id) $socid=$user->societe_id;
$result=restrictedArea($user,'expedition',$id,'livraison','livraison');
$object = new Livraison($db);
+$extrafields = new ExtraFields($db);
+$extrafieldsline = new ExtraFields($db);
-// Load object
-if ($id > 0 || ! empty($ref)) {
- $ret = $object->fetch($id, $ref);
- if ($ret > 0)
- $ret = $object->fetch_thirdparty();
- if ($ret < 0)
- dol_print_error('', $object->error);
-}
+// fetch optionals attributes and labels
+$extralabels = $extrafields->fetch_name_optionals_label($object->table_element);
+
+// fetch optionals attributes lines and labels
+$extralabelslines=$extrafieldsline->fetch_name_optionals_label($object->table_element_line);
+
+// Load object. Make an object->fetch
+include DOL_DOCUMENT_ROOT.'/core/actions_fetchobject.inc.php'; // Must be include, not include_once
// Initialize technical object to manage hooks of thirdparties. Note that conf->hooks_modules contains array array
$hookmanager->initHooks(array('deliverycard','globalcard'));
@@ -181,6 +185,64 @@ elseif ($action == 'set_incoterms' && !empty($conf->incoterm->enabled))
$result = $object->setIncoterms(GETPOST('incoterm_id', 'int'), GETPOST('location_incoterms', 'alpha'));
}
+// Update extrafields
+if ($action == 'update_extras')
+{
+ // Fill array 'array_options' with data from update form
+ $extralabels = $extrafields->fetch_name_optionals_label($object->table_element);
+ $ret = $extrafields->setOptionalsFromPost($extralabels, $object, GETPOST('attribute'));
+ if ($ret < 0) $error++;
+
+ if (! $error)
+ {
+ // Actions on extra fields (by external module or standard code)
+ // TODO le hook fait double emploi avec le trigger !!
+ $hookmanager->initHooks(array('livraisondao'));
+ $parameters = array('id' => $object->id);
+ $reshook = $hookmanager->executeHooks('insertExtraFields', $parameters, $object, $action); // Note that $action and $object may have been modified by some hooks
+ if (empty($reshook)) {
+ $result = $object->insertExtraFields();
+ if ($result < 0) {
+ $error++;
+ }
+ } else if ($reshook < 0)
+ $error++;
+ }
+
+ if ($error)
+ $action = 'edit_extras';
+}
+
+// Extrafields line
+if ($action == 'update_extras_line')
+{
+ $array_options=array();
+ $num=count($object->lines);
+
+ for ($i = 0; $i < $num; $i++)
+ {
+ // Extrafields
+ $extralabelsline = $extrafieldsline->fetch_name_optionals_label($object->table_element_line);
+ $array_options[$i] = $extrafieldsline->getOptionalsFromPost($extralabelsline, $i);
+ // Unset extrafield
+ if (is_array($extralabelsline)) {
+ // Get extra fields
+ foreach ($extralabelsline as $key => $value) {
+ unset($_POST["options_" . $key]);
+ }
+ }
+
+ $ret = $object->update_line($object->lines[$i]->id,$array_options[$i]); // extrafields update
+ if ($ret < 0)
+ {
+ $mesg='<div class="error">'.$object->error.'</div>';
+ $error++;
+ }
+ }
+
+}
+
+
/*
* Build document
*/
@@ -502,6 +564,14 @@ else
/*
* Livraison
*/
+
+ print '<form action="'.$_SERVER["PHP_SELF"].'" method="post">';
+ print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
+ print '<input type="hidden" name="action" value="update_extras_line">';
+ print '<input type="hidden" name="origin" value="'.$origin.'">';
+ print '<input type="hidden" name="id" value="'.$object->id.'">';
+ print '<input type="hidden" name="ref" value="'.$object->ref.'">';
+
print '<table class="border" width="100%">';
// Shipment
@@ -638,6 +708,10 @@ else
print '<td colspan="3"><a href="'.DOL_URL_ROOT.'/product/stock/card.php?id='.$entrepot->id.'">'.$entrepot->libelle.'</a></td>';
print '</tr>';
}
+
+ // Other attributes
+ $cols = 2;
+ include DOL_DOCUMENT_ROOT . '/core/tpl/extrafields_view.tpl.php';
print "</table><br>\n";
@@ -727,11 +801,29 @@ else
print '<td align="center">'.$object->lines[$i]->qty_shipped.'</td>';
print "</tr>";
+
+ //Display lines extrafields
+ if (is_array($extralabelslines) && count($extralabelslines)>0) {
+ $colspan=2;
+ $mode = ($object->statut == 0) ? 'edit' : 'view';
+ $line = new LivraisonLigne($db);
+ $line->fetch_optionals($object->lines[$i]->id,$extralabelslines);
+ print '<tr '.$bc[$var].'>';
+ print $line->showOptionals($extrafieldsline, $mode, array('style'=>$bc[$var], 'colspan'=>$colspan),$i);
+ print '</tr>';
+ }
$i++;
}
print "</table>\n";
+
+ if($object->statut == 0) // only if draft
+ print '<br><div class="center"><input type="submit" class="button" value="'.$langs->trans("Save").'"></div>';
+
+ print '</form>';
+
+
print "\n</div>\n";
diff --git a/htdocs/livraison/class/livraison.class.php b/htdocs/livraison/class/livraison.class.php
index f111d6b604d4d5ae40d38085fd6fadbd65c00036..faac4766337148920b16ea48f6fb7679fdf5b51b 100644
--- a/htdocs/livraison/class/livraison.class.php
+++ b/htdocs/livraison/class/livraison.class.php
@@ -42,6 +42,7 @@ class Livraison extends CommonObject
public $element="delivery";
public $fk_element="fk_livraison";
public $table_element="livraison";
+ public $table_element_line="livraisondet";
var $brouillon;
var $socid;
@@ -299,6 +300,14 @@ class Livraison extends CommonObject
$this->db->free($result);
if ($this->statut == 0) $this->brouillon = 1;
+
+
+ // Retrieve all extrafields for delivery
+ // fetch optionals attributes and labels
+ require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php';
+ $extrafields=new ExtraFields($this->db);
+ $extralabels=$extrafields->fetch_name_optionals_label($this->table_element,true);
+ $this->fetch_optionals($this->id,$extralabels);
/*
* Lignes
@@ -523,7 +532,37 @@ class Livraison extends CommonObject
return $this->create($user);
}
-
+ /**
+ * Update a livraison line (only extrafields)
+ *
+ * @param int $id Id of line (livraison line)
+ * @param array $array_options extrafields array
+ * @return int <0 if KO, >0 if OK
+ */
+ function update_line($id, $array_options=0)
+ {
+ global $conf;
+ $error = 0;
+
+ if ($id > 0 && !$error && empty($conf->global->MAIN_EXTRAFIELDS_DISABLED) && is_array($array_options) && count($array_options)>0) // For avoid conflicts if trigger used
+ {
+ $livraisonline = new LivraisonLigne($this->db);
+ $livraisonline->array_options=$array_options;
+ $livraisonline->id=$id;
+ $result=$livraisonline->insertExtraFields();
+
+ if ($result < 0)
+ {
+ $this->error[]=$livraisonline->error;
+ $error++;
+ }
+ }
+
+ if (! $error) return 1;
+ else return -1;
+ }
+
+
/**
* Add line
*
@@ -709,6 +748,7 @@ class Livraison extends CommonObject
$obj = $this->db->fetch_object($resql);
+ $line->id = $obj->rowid;
$line->label = $obj->custom_label;
$line->description = $obj->description;
$line->fk_product = $obj->fk_product;
@@ -1006,6 +1046,8 @@ class Livraison extends CommonObject
*/
class LivraisonLigne extends CommonObjectLine
{
+ var $db;
+
// From llx_expeditiondet
var $qty;
var $qty_asked;
@@ -1028,6 +1070,9 @@ class LivraisonLigne extends CommonObjectLine
public $product_ref;
public $product_label;
+
+ public $element='livraisondet';
+ public $table_element='livraisondet';
/**
* Constructor