From c953a04687bd17f2f51e47718117d144d7ff4edc Mon Sep 17 00:00:00 2001 From: cla <c.aschieri@19.coop> Date: Thu, 22 Jan 2015 14:18:33 +0100 Subject: [PATCH] Added files for Extrafields in Order/Invoice Supplier Line. New files sql added in install/mysql folder and 2 new pages to insert extrafields in admin folder --- .../admin/supplierinvoicedet_extrafields.php | 162 ++++++++++++++++++ htdocs/admin/supplierorderdet_extrafields.php | 159 +++++++++++++++++ ...ommande_fournisseurdet_extrafields.key.sql | 19 ++ ...lx_commande_fournisseurdet_extrafields.sql | 30 ++++ .../llx_facture_fourndet_extrafields.key.sql | 20 +++ .../llx_facture_fourndet_extrafields.sql | 26 +++ 6 files changed, 416 insertions(+) create mode 100644 htdocs/admin/supplierinvoicedet_extrafields.php create mode 100644 htdocs/admin/supplierorderdet_extrafields.php create mode 100644 htdocs/install/mysql/tables/llx_commande_fournisseurdet_extrafields.key.sql create mode 100644 htdocs/install/mysql/tables/llx_commande_fournisseurdet_extrafields.sql create mode 100644 htdocs/install/mysql/tables/llx_facture_fourndet_extrafields.key.sql create mode 100644 htdocs/install/mysql/tables/llx_facture_fourndet_extrafields.sql diff --git a/htdocs/admin/supplierinvoicedet_extrafields.php b/htdocs/admin/supplierinvoicedet_extrafields.php new file mode 100644 index 00000000000..b8525601a61 --- /dev/null +++ b/htdocs/admin/supplierinvoicedet_extrafields.php @@ -0,0 +1,162 @@ +<?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 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/>. + */ + +/** + * \file htdocs/admin/supplierinvoicedet_extrafields.php + * \ingroup fourn + * \brief Page to setup extra fields of supplierinvoice line + */ + +require '../main.inc.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/fourn.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; + + +if (!$user->admin) + accessforbidden(); + +$langs->load("admin"); +$langs->load("other"); +$langs->load("bills"); +$langs->load("orders"); +$langs->load("suppliers"); + +$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='facture_fourndet'; //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("BillsSuppliers"); + +llxHeader('',$langs->trans("SuppliersSetup")); + +$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php">'.$langs->trans("BackToModuleList").'</a>'; +print_fiche_titre($langs->trans("SuppliersSetup"),$linkback,'setup'); +print "<br>\n"; + +$head = supplierorder_admin_prepare_head(); + +dol_fiche_head($head, 'supplierinvoicedet', $langs->trans("Suppliers"), 0, 'company'); + + +print $langs->trans("DefineHereComplementaryAttributes",$textobject).'<br>'."\n"; +print '<br>'; + +// Load attribute_label +$extrafields->fetch_name_optionals_label($elementtype); + +print "<table summary=\"listofattributes\" class=\"noborder\" width=\"100%\">"; + +print '<tr class="liste_titre">'; +print '<td>'.$langs->trans("Label").'</td>'; +print '<td>'.$langs->trans("AttributeCode").'</td>'; +print '<td>'.$langs->trans("Type").'</td>'; +print '<td align="right">'.$langs->trans("Size").'</td>'; +print '<td align="center">'.$langs->trans("Unique").'</td>'; +print '<td align="center">'.$langs->trans("Required").'</td>'; +print '<td width="80"> </td>'; +print "</tr>\n"; + +$var=True; +foreach($extrafields->attribute_type as $key => $value) +{ + $var=!$var; + print "<tr ".$bc[$var].">"; + print "<td>".$extrafields->attribute_label[$key]."</td>\n"; + print "<td>".$key."</td>\n"; + print "<td>".$type2label[$extrafields->attribute_type[$key]]."</td>\n"; + print '<td align="right">'.$extrafields->attribute_size[$key]."</td>\n"; + print '<td align="center">'.yn($extrafields->attribute_unique[$key])."</td>\n"; + print '<td align="center">'.yn($extrafields->attribute_required[$key])."</td>\n"; + print '<td align="right"><a href="'.$_SERVER["PHP_SELF"].'?action=edit&attrname='.$key.'">'.img_edit().'</a>'; + print " <a href=\"".$_SERVER["PHP_SELF"]."?action=delete&attrname=$key\">".img_delete()."</a></td>\n"; + print "</tr>"; +} + +print "</table>"; + +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_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_titre($langs->trans("FieldEdition", $attrname)); + + require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_edit.tpl.php'; +} + +llxFooter(); + +$db->close(); diff --git a/htdocs/admin/supplierorderdet_extrafields.php b/htdocs/admin/supplierorderdet_extrafields.php new file mode 100644 index 00000000000..20066aafab1 --- /dev/null +++ b/htdocs/admin/supplierorderdet_extrafields.php @@ -0,0 +1,159 @@ +<?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/supplierorder_extrafields.php + * \ingroup fourn + * \brief Page to setup extra fields of supplierorder line + */ + +require '../main.inc.php'; +require_once DOL_DOCUMENT_ROOT.'/core/lib/fourn.lib.php'; +require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php'; + + +if (!$user->admin) + accessforbidden(); + +$langs->load("admin"); +$langs->load("other"); +$langs->load("orders"); + +$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='commande_fournisseurdet'; //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("SuppliersOrders"); + +llxHeader('',$langs->trans("SuppliersSetup")); + +$linkback='<a href="'.DOL_URL_ROOT.'/admin/modules.php">'.$langs->trans("BackToModuleList").'</a>'; +print_fiche_titre($langs->trans("SuppliersSetup"),$linkback,'setup'); +print "<br>\n"; + +$head = supplierorder_admin_prepare_head(); + +dol_fiche_head($head, 'supplierorderdet', $langs->trans("Suppliers"), 0, 'company'); + + +print $langs->trans("DefineHereComplementaryAttributes",$textobject).'<br>'."\n"; +print '<br>'; + +// Load attribute_label +$extrafields->fetch_name_optionals_label($elementtype); + +print "<table summary=\"listofattributes\" class=\"noborder\" width=\"100%\">"; + +print '<tr class="liste_titre">'; +print '<td>'.$langs->trans("Label").'</td>'; +print '<td>'.$langs->trans("AttributeCode").'</td>'; +print '<td>'.$langs->trans("Type").'</td>'; +print '<td align="right">'.$langs->trans("Size").'</td>'; +print '<td align="center">'.$langs->trans("Unique").'</td>'; +print '<td align="center">'.$langs->trans("Required").'</td>'; +print '<td width="80"> </td>'; +print "</tr>\n"; + +$var=True; +foreach($extrafields->attribute_type as $key => $value) +{ + $var=!$var; + print "<tr ".$bc[$var].">"; + print "<td>".$extrafields->attribute_label[$key]."</td>\n"; + print "<td>".$key."</td>\n"; + print "<td>".$type2label[$extrafields->attribute_type[$key]]."</td>\n"; + print '<td align="right">'.$extrafields->attribute_size[$key]."</td>\n"; + print '<td align="center">'.yn($extrafields->attribute_unique[$key])."</td>\n"; + print '<td align="center">'.yn($extrafields->attribute_required[$key])."</td>\n"; + print '<td align="right"><a href="'.$_SERVER["PHP_SELF"].'?action=edit&attrname='.$key.'">'.img_edit().'</a>'; + print " <a href=\"".$_SERVER["PHP_SELF"]."?action=delete&attrname=$key\">".img_delete()."</a></td>\n"; + print "</tr>"; +} + +print "</table>"; + +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_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_titre($langs->trans("FieldEdition", $attrname)); + + require DOL_DOCUMENT_ROOT.'/core/tpl/admin_extrafields_edit.tpl.php'; +} + +llxFooter(); + +$db->close(); diff --git a/htdocs/install/mysql/tables/llx_commande_fournisseurdet_extrafields.key.sql b/htdocs/install/mysql/tables/llx_commande_fournisseurdet_extrafields.key.sql new file mode 100644 index 00000000000..81e177d4aa3 --- /dev/null +++ b/htdocs/install/mysql/tables/llx_commande_fournisseurdet_extrafields.key.sql @@ -0,0 +1,19 @@ +-- ============================================================================ +-- 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_commande_fournisseurdet_extrafields ADD INDEX idx_commande_fournisseurdet_extrafields (fk_object); diff --git a/htdocs/install/mysql/tables/llx_commande_fournisseurdet_extrafields.sql b/htdocs/install/mysql/tables/llx_commande_fournisseurdet_extrafields.sql new file mode 100644 index 00000000000..c1ef550b761 --- /dev/null +++ b/htdocs/install/mysql/tables/llx_commande_fournisseurdet_extrafields.sql @@ -0,0 +1,30 @@ +-- =================================================================== +-- Copyright (C) 2004 Rodolphe Quiedeville <rodolphe@quiedeville.org> +-- Copyright (C) 2005-2012 Regis Houssin <regis.houssin@capnetworks.com> +-- Copyright (C) 2007 Laurent Destailleur <eldy@users.sourceforge.net> +-- Copyright (C) 2010 Juanjo Menent <jmenent@2byte.es> +-- 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/>. +-- +-- =================================================================== + +create table llx_commande_fournisseurdet_extrafields +( + rowid integer AUTO_INCREMENT PRIMARY KEY, + tms timestamp, + fk_object integer NOT NULL, + import_key varchar(14) +) ENGINE=innodb; diff --git a/htdocs/install/mysql/tables/llx_facture_fourndet_extrafields.key.sql b/htdocs/install/mysql/tables/llx_facture_fourndet_extrafields.key.sql new file mode 100644 index 00000000000..11884f7c228 --- /dev/null +++ b/htdocs/install/mysql/tables/llx_facture_fourndet_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_facture_fourndet_extrafields ADD INDEX idx_facture_fourndet_extrafields (fk_object); diff --git a/htdocs/install/mysql/tables/llx_facture_fourndet_extrafields.sql b/htdocs/install/mysql/tables/llx_facture_fourndet_extrafields.sql new file mode 100644 index 00000000000..0f0ea67e52f --- /dev/null +++ b/htdocs/install/mysql/tables/llx_facture_fourndet_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_facture_fourndet_extrafields +( + rowid integer AUTO_INCREMENT PRIMARY KEY, + tms timestamp, + fk_object integer NOT NULL, + import_key varchar(14) -- import key +) ENGINE=innodb; + -- GitLab