/htdocs/admin/dict.php
PHP | 1288 lines | 1109 code | 90 blank | 89 comment | 369 complexity | d67fa4015f7eeec7dddafbee76d4ddf9 MD5 | raw file
Possible License(s): LGPL-3.0, LGPL-2.1, GPL-3.0, MIT
Large files files are truncated, but you can click here to view the full file
- <?php
- /* Copyright (C) 2004 Rodolphe Quiedeville <rodolphe@quiedeville.org>
- * Copyright (C) 2004-2012 Laurent Destailleur <eldy@users.sourceforge.net>
- * Copyright (C) 2004 Benoit Mortier <benoit.mortier@opensides.be>
- * Copyright (C) 2005-2010 Regis Houssin <regis.houssin@capnetworks.com>
- * Copyright (C) 2010-2011 Juanjo Menent <jmenent@2byte.es>
- * Copyright (C) 2011 Philippe Grand <philippe.grand@atoo-net.com>
- * Copyright (C) 2011-2012 Herve Prot <herve.prot@symeos.com>
- * Copyright (C) 2011 Remy Younes <ryounes@gmail.com>
- * Copyright (C) 2012 Marcos García <marcosgdf@gmail.com>
- * Copyright (C) 2012 Christophe Battarel <christophe.battarel@ltairis.fr>
- * Copyright (C) 2011-2012 Alexandre Spangaro <alexandre.spangaro@gmail.com>
- *
- * 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/dict.php
- * \ingroup setup
- * \brief Page to administer data tables
- */
- require '../main.inc.php';
- require_once DOL_DOCUMENT_ROOT . '/core/class/html.formadmin.class.php';
- require_once DOL_DOCUMENT_ROOT . '/core/class/html.formcompany.class.php';
- require_once DOL_DOCUMENT_ROOT . '/core/lib/admin.lib.php';
- $langs->load("errors");
- $langs->load("admin");
- $langs->load("companies");
- $action = GETPOST('action', 'alpha') ? GETPOST('action', 'alpha') : 'view';
- $confirm = GETPOST('confirm', 'alpha');
- $id = GETPOST('id', 'int');
- $rowid = GETPOST('rowid', 'alpha');
- if (!$user->admin)
- accessforbidden();
- $acts[0] = "activate";
- $acts[1] = "disable";
- $actl[0] = img_picto($langs->trans("Disabled"), 'switch_off');
- $actl[1] = img_picto($langs->trans("Activated"), 'switch_on');
- $listoffset = GETPOST('listoffset');
- $listlimit = GETPOST('listlimit') > 0 ? GETPOST('listlimit') : 1000;
- $active = 1;
- $sortfield = GETPOST("sortfield", 'alpha');
- $sortorder = GETPOST("sortorder", 'alpha');
- $page = GETPOST("page", 'int');
- if ($page == -1) {
- $page = 0;
- }
- $offset = $listlimit * $page;
- $pageprev = $page - 1;
- $pagenext = $page + 1;
- // Initialize technical object to manage hooks of thirdparties. Note that conf->hooks_modules contains array array
- $hookmanager->initHooks(array('admin'));
- // This page is a generic page to edit dictionnaries
- // Put here declaration of dictionnaries properties
- // Sort order to show dictionnary (0 is space). All other dictionnaries (added by modules) will be at end of this.
- $taborder = array(9, 0, 4, 3, 2, 0, 1, 8, 19, 16, 0, 28, 16, 26, 27, 0, 5, 11, 0, 6, 0, 10, 12, 13, 0, 14, 0, 7, 17, 0, 22, 20, 18, 21, 0, 15);
- // Name of SQL tables of dictionnaries
- $tabname = array();
- $tabname[1] = MAIN_DB_PREFIX . "c_forme_juridique";
- $tabname[2] = MAIN_DB_PREFIX . "c_departements";
- $tabname[3] = MAIN_DB_PREFIX . "c_regions";
- $tabname[4] = MAIN_DB_PREFIX . "c_pays";
- $tabname[5] = MAIN_DB_PREFIX . "c_civilite";
- $tabname[6] = MAIN_DB_PREFIX . "c_actioncomm";
- $tabname[7] = MAIN_DB_PREFIX . "c_chargesociales";
- $tabname[8] = MAIN_DB_PREFIX . "c_typent";
- $tabname[9] = MAIN_DB_PREFIX . "c_currencies";
- $tabname[10] = MAIN_DB_PREFIX . "c_tva";
- $tabname[11] = MAIN_DB_PREFIX . "c_type_contact";
- $tabname[12] = MAIN_DB_PREFIX . "c_payment_term";
- $tabname[13] = MAIN_DB_PREFIX . "c_paiement";
- $tabname[14] = MAIN_DB_PREFIX . "c_ecotaxe";
- $tabname[15] = MAIN_DB_PREFIX . "c_paper_format";
- $tabname[16] = MAIN_DB_PREFIX . "c_prospectlevel";
- $tabname[17] = MAIN_DB_PREFIX . "c_type_fees";
- $tabname[18] = MAIN_DB_PREFIX . "c_shipment_mode";
- $tabname[19] = MAIN_DB_PREFIX . "c_effectif";
- $tabname[20] = MAIN_DB_PREFIX . "c_input_method";
- $tabname[21] = MAIN_DB_PREFIX . "c_availability";
- $tabname[22] = MAIN_DB_PREFIX . "c_input_reason";
- $tabname[26] = MAIN_DB_PREFIX . "c_lead_ca_level";
- $tabname[27] = MAIN_DB_PREFIX . "c_leadlevel";
- $tabname[28] = MAIN_DB_PREFIX . "c_stcomm";
- // Dictionary labels
- $tablib = array();
- $tablib[1] = "DictionnaryCompanyJuridicalType";
- $tablib[2] = "DictionnaryCanton";
- $tablib[3] = "DictionnaryRegion";
- $tablib[4] = "DictionnaryCountry";
- $tablib[5] = "DictionnaryCivility";
- $tablib[6] = "DictionnaryActions";
- $tablib[7] = "DictionnarySocialContributions";
- $tablib[8] = "DictionnaryCompanyType";
- $tablib[9] = "DictionnaryCurrency";
- $tablib[10] = "DictionnaryVAT";
- $tablib[11] = "DictionnaryTypeContact";
- $tablib[12] = "DictionnaryPaymentConditions";
- $tablib[13] = "DictionnaryPaymentModes";
- $tablib[14] = "DictionnaryEcotaxe";
- $tablib[15] = "DictionnaryPaperFormat";
- $tablib[16] = "DictionnaryProspectLevel";
- $tablib[17] = "DictionnaryFees";
- $tablib[18] = "DictionnarySendingMethods";
- $tablib[19] = "DictionnaryStaff";
- $tablib[20] = "DictionnaryOrderMethods";
- $tablib[21] = "DictionnaryAvailability";
- $tablib[22] = "DictionnarySource";
- $tablib[26] = $langs->trans("DictionnaryCAlevel");
- $tablib[27] = $langs->trans("DictionnaryLeadlevel");
- $tablib[28] = $langs->trans("DictionnaryProspectStatus");
- // Requete pour extraction des donnees des dictionnaires
- $tabsql = array();
- $tabsql[1] = "SELECT f.rowid as rowid, f.code, f.libelle, p.code as pays_code, p.libelle as pays, f.active FROM " . MAIN_DB_PREFIX . "c_forme_juridique as f, " . MAIN_DB_PREFIX . "c_pays as p WHERE f.fk_pays=p.rowid";
- $tabsql[2] = "SELECT d.rowid as rowid, d.code_departement as code, d.nom as libelle, d.fk_region as region_id, r.nom as region, p.code as pays_code, p.libelle as pays, d.active FROM " . MAIN_DB_PREFIX . "c_departements as d, " . MAIN_DB_PREFIX . "c_regions as r, " . MAIN_DB_PREFIX . "c_pays as p WHERE d.fk_region=r.code_region and r.fk_pays=p.rowid and r.active=1 and p.active=1";
- $tabsql[3] = "SELECT r.rowid as rowid, code_region as code, nom as libelle, r.fk_pays as pays_id, p.code as pays_code, p.libelle as pays, r.active FROM " . MAIN_DB_PREFIX . "c_regions as r, " . MAIN_DB_PREFIX . "c_pays as p WHERE r.fk_pays=p.rowid and p.active=1";
- $tabsql[4] = "SELECT rowid as rowid, code, libelle, active FROM " . MAIN_DB_PREFIX . "c_pays";
- $tabsql[5] = "SELECT c.rowid as rowid, c.code as code, c.civilite AS libelle, c.active FROM " . MAIN_DB_PREFIX . "c_civilite AS c";
- $tabsql[6] = "SELECT a.id as rowid, a.code as code, a.libelle AS libelle, a.type, a.active, a.module, a.position, a.priority FROM " . MAIN_DB_PREFIX . "c_actioncomm AS a";
- $tabsql[7] = "SELECT a.id as rowid, a.code as code, a.libelle AS libelle, a.deductible, p.code as pays_code, p.libelle as pays, a.fk_pays as pays_id, a.active FROM " . MAIN_DB_PREFIX . "c_chargesociales AS a, " . MAIN_DB_PREFIX . "c_pays as p WHERE a.fk_pays=p.rowid and p.active=1";
- $tabsql[8] = "SELECT id as rowid, code, libelle, active FROM " . MAIN_DB_PREFIX . "c_typent";
- $tabsql[9] = "SELECT code_iso as code, label as libelle, unicode, active FROM " . MAIN_DB_PREFIX . "c_currencies";
- $tabsql[10] = "SELECT t.rowid, t.taux, t.localtax1, t.localtax2, p.libelle as pays, p.code as pays_code, t.fk_pays as pays_id, t.recuperableonly, t.note, t.active, t.accountancy_code FROM " . MAIN_DB_PREFIX . "c_tva as t, " . MAIN_DB_PREFIX . "c_pays as p WHERE t.fk_pays=p.rowid";
- $tabsql[11] = "SELECT t.rowid as rowid, element, source, code, libelle, active FROM " . MAIN_DB_PREFIX . "c_type_contact AS t";
- $tabsql[12] = "SELECT c.rowid as rowid, code, sortorder, c.libelle, c.libelle_facture, nbjour, fdm, decalage, active FROM " . MAIN_DB_PREFIX . 'c_payment_term AS c';
- $tabsql[13] = "SELECT id as rowid, code, c.libelle, type, active FROM " . MAIN_DB_PREFIX . "c_paiement AS c";
- $tabsql[14] = "SELECT e.rowid as rowid, e.code as code, e.libelle, e.price, e.organization, e.fk_pays as pays_id, p.code as pays_code, p.libelle as pays, e.active FROM " . MAIN_DB_PREFIX . "c_ecotaxe AS e, " . MAIN_DB_PREFIX . "c_pays as p WHERE e.fk_pays=p.rowid and p.active=1";
- $tabsql[15] = "SELECT rowid as rowid, code, label as libelle, width, height, unit, active FROM " . MAIN_DB_PREFIX . "c_paper_format";
- $tabsql[16] = "SELECT code, label as libelle, active FROM " . MAIN_DB_PREFIX . "c_prospectlevel";
- $tabsql[17] = "SELECT id as rowid, code, libelle, active FROM " . MAIN_DB_PREFIX . "c_type_fees";
- $tabsql[18] = "SELECT rowid as rowid, code, libelle, active FROM " . MAIN_DB_PREFIX . "c_shipment_mode";
- $tabsql[19] = "SELECT id as rowid, code, libelle, active FROM " . MAIN_DB_PREFIX . "c_effectif";
- $tabsql[20] = "SELECT rowid as rowid, code, libelle, active FROM " . MAIN_DB_PREFIX . "c_input_method";
- $tabsql[21] = "SELECT c.rowid as rowid, code, label, active FROM " . MAIN_DB_PREFIX . "c_availability AS c";
- $tabsql[22] = "SELECT rowid as rowid, code, label, active FROM " . MAIN_DB_PREFIX . "c_input_reason";
- $tabsql[26] = "SELECT id as rowid, code, libelle, active FROM " . $tabname[26];
- $tabsql[27] = "SELECT id as rowid, code, picto, libelle, type, active FROM " . $tabname[27];
- $tabsql[28] = "SELECT id as rowid, code, libelle, active, type FROM " . $tabname[28];
- // Critere de tri du dictionnaire
- $tabsqlsort = array();
- $tabsqlsort[1] = "pays ASC, code ASC";
- $tabsqlsort[2] = "pays ASC, code ASC";
- $tabsqlsort[3] = "pays ASC, code ASC";
- $tabsqlsort[4] = "code ASC";
- $tabsqlsort[5] = "libelle ASC";
- $tabsqlsort[6] = "a.type ASC, a.module, a.position, a.priority ASC";
- $tabsqlsort[7] = "pays ASC, code ASC, a.libelle ASC";
- $tabsqlsort[8] = "libelle ASC";
- $tabsqlsort[9] = "libelle ASC";
- $tabsqlsort[10] = "pays ASC, taux ASC, recuperableonly ASC, localtax1 ASC, localtax2 ASC";
- $tabsqlsort[11] = "element ASC, source ASC, code ASC";
- $tabsqlsort[12] = "sortorder ASC, code ASC";
- $tabsqlsort[13] = "code ASC";
- $tabsqlsort[14] = "pays ASC, e.organization ASC, code ASC";
- $tabsqlsort[15] = "rowid ASC";
- $tabsqlsort[16] = "sortorder ASC";
- $tabsqlsort[17] = "code ASC";
- $tabsqlsort[18] = "code ASC, libelle ASC";
- $tabsqlsort[19] = "id ASC";
- $tabsqlsort[20] = "code ASC, libelle ASC";
- $tabsqlsort[21] = "code ASC, label ASC";
- $tabsqlsort[22] = "code ASC, label ASC";
- $tabsqlsort[26] = "id ASC";
- $tabsqlsort[27] = "id ASC";
- $tabsqlsort[28] = "id ASC";
- // Nom des champs en resultat de select pour affichage du dictionnaire
- $tabfield = array();
- $tabfield[1] = "code,libelle,pays";
- $tabfield[2] = "code,libelle,region_id,region,pays"; // "code,libelle,region,pays_code-pays"
- $tabfield[3] = "code,libelle,pays_id,pays";
- $tabfield[4] = "code,libelle";
- $tabfield[5] = "code,libelle";
- $tabfield[6] = "code,libelle,priority,type,position";
- $tabfield[7] = "code,libelle,pays_id,pays,deductible";
- $tabfield[8] = "code,libelle";
- $tabfield[9] = "code,libelle,unicode";
- $tabfield[10] = "pays_id,pays,taux,recuperableonly,localtax1,localtax2,accountancy_code,note";
- $tabfield[11] = "element,source,code,libelle";
- $tabfield[12] = "code,libelle,libelle_facture,nbjour,fdm,decalage";
- $tabfield[13] = "code,libelle,type";
- $tabfield[14] = "code,libelle,price,organization,pays_id,pays";
- $tabfield[15] = "code,libelle,width,height,unit";
- $tabfield[16] = "code,libelle";
- $tabfield[17] = "code,libelle";
- $tabfield[18] = "code,libelle";
- $tabfield[19] = "code,libelle";
- $tabfield[20] = "code,libelle";
- $tabfield[21] = "code,label";
- $tabfield[22] = "code,label";
- $tabfield[26] = "code,libelle";
- $tabfield[27] = "code,libelle,picto";
- $tabfield[28] = "code,libelle,type";
- // Nom des champs d'edition pour modification d'un enregistrement
- $tabfieldvalue = array();
- $tabfieldvalue[1] = "code,libelle,pays";
- $tabfieldvalue[2] = "code,libelle,region"; // "code,libelle,region"
- $tabfieldvalue[3] = "code,libelle,pays";
- $tabfieldvalue[4] = "code,libelle";
- $tabfieldvalue[5] = "code,libelle";
- $tabfieldvalue[6] = "code,libelle,priority,type,position";
- $tabfieldvalue[7] = "code,libelle,pays,deductible";
- $tabfieldvalue[8] = "code,libelle";
- $tabfieldvalue[9] = "code,libelle,unicode";
- $tabfieldvalue[10] = "pays,taux,recuperableonly,localtax1,localtax2,accountancy_code,note";
- $tabfieldvalue[11] = "element,source,code,libelle";
- $tabfieldvalue[12] = "code,libelle,libelle_facture,nbjour,fdm,decalage";
- $tabfieldvalue[13] = "code,libelle,type";
- $tabfieldvalue[14] = "code,libelle,price,organization,pays";
- $tabfieldvalue[15] = "code,libelle,width,height,unit";
- $tabfieldvalue[16] = "code,libelle";
- $tabfieldvalue[17] = "code,libelle";
- $tabfieldvalue[18] = "code,libelle";
- $tabfieldvalue[19] = "code,libelle";
- $tabfieldvalue[20] = "code,libelle";
- $tabfieldvalue[21] = "code,label";
- $tabfieldvalue[22] = "code,label";
- $tabfieldvalue[26] = "code,libelle";
- $tabfieldvalue[27] = "code,libelle,picto";
- $tabfieldvalue[28] = "code,libelle,type";
- // Nom des champs dans la table pour insertion d'un enregistrement
- $tabfieldinsert = array();
- $tabfieldinsert[1] = "code,libelle,fk_pays";
- $tabfieldinsert[2] = "code_departement,nom,fk_region";
- $tabfieldinsert[3] = "code_region,nom,fk_pays";
- $tabfieldinsert[4] = "code,libelle";
- $tabfieldinsert[5] = "code,civilite";
- $tabfieldinsert[6] = "code,libelle,priority,type,position";
- $tabfieldinsert[7] = "code,libelle,fk_pays,deductible";
- $tabfieldinsert[8] = "code,libelle";
- $tabfieldinsert[9] = "code_iso,label,unicode";
- $tabfieldinsert[10] = "fk_pays,taux,recuperableonly,localtax1,localtax2,accountancy_code,note";
- $tabfieldinsert[11] = "element,source,code,libelle";
- $tabfieldinsert[12] = "code,libelle,libelle_facture,nbjour,fdm,decalage";
- $tabfieldinsert[13] = "code,libelle,type";
- $tabfieldinsert[14] = "code,libelle,price,organization,fk_pays";
- $tabfieldinsert[15] = "code,label,width,height,unit";
- $tabfieldinsert[16] = "code,label";
- $tabfieldinsert[17] = "code,libelle";
- $tabfieldinsert[18] = "code,libelle";
- $tabfieldinsert[19] = "code,libelle";
- $tabfieldinsert[20] = "code,libelle";
- $tabfieldinsert[21] = "code,label";
- $tabfieldinsert[22] = "code,label";
- $tabfieldinsert[26] = "code,libelle";
- $tabfieldinsert[27] = "code,libelle,picto";
- $tabfieldinsert[28] = "code, libelle,type";
- // Nom du rowid si le champ n'est pas de type autoincrement
- // Example: "" if id field is "rowid" and has autoincrement on
- // "nameoffield" if id field is not "rowid" or has not autoincrement on
- $tabrowid = array();
- $tabrowid[1] = "";
- $tabrowid[2] = "";
- $tabrowid[3] = "";
- $tabrowid[4] = "rowid";
- $tabrowid[5] = "rowid";
- $tabrowid[6] = "id";
- $tabrowid[7] = "id";
- $tabrowid[8] = "id";
- $tabrowid[9] = "code_iso";
- $tabrowid[10] = "";
- $tabrowid[11] = "rowid";
- $tabrowid[12] = "rowid";
- $tabrowid[13] = "id";
- $tabrowid[14] = "";
- $tabrowid[15] = "";
- $tabrowid[16] = "code";
- $tabrowid[17] = "id";
- $tabrowid[18] = "rowid";
- $tabrowid[19] = "id";
- $tabrowid[20] = "";
- $tabrowid[21] = "rowid";
- $tabrowid[22] = "rowid";
- $tabrowid[26] = "id";
- $tabrowid[27] = "id";
- $tabrowid[28] = "id";
- // Condition to show dictionnary in setup page
- $tabcond = array();
- $tabcond[1] = true;
- $tabcond[2] = true;
- $tabcond[3] = true;
- $tabcond[4] = true;
- $tabcond[5] = $conf->societe->enabled || $conf->adherent->enabled;
- $tabcond[6] = $conf->agenda->enabled;
- $tabcond[7] = $conf->tax->enabled;
- $tabcond[8] = $conf->societe->enabled;
- $tabcond[9] = true;
- $tabcond[10] = true;
- $tabcond[11] = true;
- $tabcond[12] = $conf->commande->enabled || $conf->propal->enabled || $conf->facture->enabled || $conf->fournisseur->enabled;
- $tabcond[13] = $conf->commande->enabled || $conf->propal->enabled || $conf->facture->enabled || $conf->fournisseur->enabled;
- $tabcond[14] = $conf->product->enabled && $conf->ecotax->enabled;
- $tabcond[15] = true;
- $tabcond[16] = $conf->societe->enabled && empty($conf->global->SOCIETE_DISABLE_PROSPECTS);
- $tabcond[17] = $conf->deplacement->enabled;
- $tabcond[18] = $conf->expedition->enabled;
- $tabcond[19] = $conf->societe->enabled;
- $tabcond[20] = $conf->fournisseur->enabled;
- $tabcond[21] = $conf->propal->enabled;
- $tabcond[22] = $conf->commande->enabled || $conf->propal->enabled;
- $tabcond[26] = $conf->lead->enabled;
- $tabcond[27] = $conf->lead->enabled;
- $tabcond[28] = $conf->societe->enabled;
- // List of help for fields
- $tabhelp = array();
- $tabhelp[1] = array();
- $tabhelp[2] = array();
- $tabhelp[3] = array();
- $tabhelp[4] = array();
- $tabhelp[5] = array();
- $tabhelp[6] = array();
- $tabhelp[7] = array();
- $tabhelp[8] = array();
- $tabhelp[9] = array();
- $tabhelp[10] = array();
- $tabhelp[11] = array();
- $tabhelp[12] = array();
- $tabhelp[13] = array();
- $tabhelp[14] = array();
- $tabhelp[15] = array();
- $tabhelp[16] = array();
- $tabhelp[17] = array();
- $tabhelp[18] = array();
- $tabhelp[19] = array();
- $tabhelp[20] = array();
- $tabhelp[21] = array();
- $tabhelp[22] = array();
- // Complete all arrays with entries found into modules
- complete_dictionnary_with_modules($taborder, $tabname, $tablib, $tabsql, $tabsqlsort, $tabfield, $tabfieldvalue, $tabfieldinsert, $tabrowid, $tabcond, $tabhelp);
- // Define elementList and sourceList (used for dictionnary "type of contacts")
- $elementList = array();
- $sourceList = array();
- if ($id == 11) {
- $langs->load("orders");
- $langs->load("contracts");
- $langs->load("projects");
- $langs->load("lead@lead");
- $langs->load("propal");
- $langs->load("bills");
- $langs->load("interventions");
- $elementList = array("commande" => $langs->trans("Order"),
- "order_supplier" => $langs->trans("SupplierOrder"),
- "contrat" => $langs->trans("Contract"),
- "project" => $langs->trans("Project"),
- "lead" => $langs->trans("Lead"),
- "project_task" => $langs->trans("Task"),
- "propal" => $langs->trans("Propal"),
- "facture" => $langs->trans("Bill"),
- "facture_fourn" => $langs->trans("SupplierBill"),
- "fichinter" => $langs->trans("InterventionCard"));
- if ($conf->global->MAIN_SUPPORT_CONTACT_TYPE_FOR_THIRDPARTIES)
- $elementList["societe"] = $langs->trans("ThirdParty");
- $sourceList = array("internal" => $langs->trans("Internal"),
- "external" => $langs->trans("External"));
- }
- $msg = '';
- // Actions ajout ou modification d'une entree dans un dictionnaire de donnee
- if ($_POST["actionadd"] || $_POST["actionmodify"]) {
- $listfield = explode(',', $tabfield[$id]);
- $listfieldinsert = explode(',', $tabfieldinsert[$id]);
- $listfieldmodify = explode(',', $tabfieldinsert[$id]);
- $listfieldvalue = explode(',', $tabfieldvalue[$id]);
- // Check that all fields are filled
- $ok = 1;
- foreach ($listfield as $f => $value) {
- if ($value == 'pays') {
- if (in_array('region_id', $listfield)) {
- continue;
- } // For region page, we do not require the country input
- }
- if ((!isset($_POST[$value]) || $_POST[$value] == '')
- && $listfield[$f] != 'decalage' // Fields that are not mandatory
- && $listfield[$f] != 'module' // Fields that are not mandatory
- && $listfield[$f] != 'accountancy_code') { // Fields that are not mandatory
- $ok = 0;
- $fieldnamekey = $listfield[$f];
- // We take translate key of field
- if ($fieldnamekey == 'libelle')
- $fieldnamekey = 'Label';
- if ($fieldnamekey == 'nbjour')
- $fieldnamekey = 'NbOfDays';
- if ($fieldnamekey == 'decalage')
- $fieldnamekey = 'Offset';
- if ($fieldnamekey == 'module')
- $fieldnamekey = 'Module';
- $msg.=$langs->trans("ErrorFieldRequired", $langs->transnoentities($fieldnamekey)) . '<br>';
- }
- }
- // Autres verif
- if ($tabname[$id] == MAIN_DB_PREFIX . "c_actioncomm" && isset($_POST["type"]) && $_POST["type"] == 'system') {
- $ok = 0;
- $msg.="Value 'system' for type is reserved. You can use 'user' as value to add your own record.<br>";
- }
- if (isset($_POST["code"]) && $_POST["code"] == '0') {
- $ok = 0;
- $msg.="Code can't contains value 0<br>";
- }
- if (isset($_POST["pays"]) && $_POST["pays"] == '0') {
- $ok = 0;
- $msg.=$langs->trans("ErrorFieldRequired", $langs->trans("Country")) . '<br>';
- }
- // Si verif ok et action add, on ajoute la ligne
- if ($ok && $_POST["actionadd"]) {
- if ($tabrowid[$id]) {
- // Recupere id libre pour insertion
- $newid = 0;
- $sql = "SELECT max(" . $tabrowid[$id] . ") newid from " . $tabname[$id];
- $result = $db->query($sql);
- if ($result) {
- $obj = $db->fetch_object($result);
- $newid = ($obj->newid + 1);
- } else {
- dol_print_error($db);
- }
- }
- // Add new entry
- $sql = "INSERT INTO " . $tabname[$id] . " (";
- // List of fields
- if ($tabrowid[$id] &&
- !in_array($tabrowid[$id], $listfieldinsert))
- $sql.= $tabrowid[$id] . ",";
- $sql.= $tabfieldinsert[$id];
- $sql.=",active)";
- $sql.= " VALUES(";
- // List of values
- if ($tabrowid[$id] &&
- !in_array($tabrowid[$id], $listfieldinsert))
- $sql.= $newid . ",";
- $i = 0;
- foreach ($listfieldinsert as $f => $value) {
- if ($value == 'price' || preg_match('/^amount/i', $value)) {
- $_POST[$listfieldvalue[$i]] = price2num($_POST[$listfieldvalue[$i]], 'MU');
- } else if ($value == 'entity') {
- $_POST[$listfieldvalue[$i]] = $conf->entity;
- }
- if ($i)
- $sql.=",";
- if ($_POST[$listfieldvalue[$i]] == '')
- $sql.="null";
- else
- $sql.="'" . $db->escape($_POST[$listfieldvalue[$i]]) . "'";
- $i++;
- }
- $sql.=",1)";
- dol_syslog("actionadd sql=" . $sql);
- $result = $db->query($sql);
- if ($result) { // Add is ok
- $oldid = $id;
- $_POST = array('id' => $oldid); // Clean $_POST array, we keep only
- $_GET["id"] = $_POST["id"]; // Force affichage dictionnaire en cours d'edition
- } else {
- if ($db->errno() == 'DB_ERROR_RECORD_ALREADY_EXISTS') {
- $msg = $langs->trans("ErrorRecordAlreadyExists") . '<br>';
- } else {
- dol_print_error($db);
- }
- }
- }
- // Si verif ok et action modify, on modifie la ligne
- if ($ok && GETPOST('actionmodify')) {
- if ($tabrowid[$id]) {
- $rowidcol = $tabrowid[$id];
- } else {
- $rowidcol = "rowid";
- }
- // Modify entry
- $sql = "UPDATE " . $tabname[$id] . " SET ";
- // Modifie valeur des champs
- if ($tabrowid[$id] && !in_array($tabrowid[$id], $listfieldmodify)) {
- $sql.= $tabrowid[$id] . "=";
- $sql.= "'" . $db->escape($rowid) . "', ";
- }
- $i = 0;
- foreach ($listfieldmodify as $field) {
- if ($field == 'price' || preg_match('/^amount/i', $field)) {
- $_POST[$listfieldvalue[$i]] = price2num($_POST[$listfieldvalue[$i]], 'MU');
- } else if ($field == 'entity') {
- $_POST[$listfieldvalue[$i]] = $conf->entity;
- }
- if ($i)
- $sql.=",";
- $sql.= $field . "=";
- if ($_POST[$listfieldvalue[$i]] == '')
- $sql.="null";
- else
- $sql.="'" . $db->escape($_POST[$listfieldvalue[$i]]) . "'";
- $i++;
- }
- $sql.= " WHERE " . $rowidcol . " = '" . $rowid . "'";
- dol_syslog("actionmodify sql=" . $sql);
- //print $sql;
- $resql = $db->query($sql);
- if (!$resql) {
- $msg = $db->error();
- }
- }
- if ($msg)
- $msg = '<div class="error">' . $msg . '</div>';
- $_GET["id"] = $_POST["id"]; // Force affichage dictionnaire en cours d'edition
- }
- if (GETPOST('actioncancel')) {
- $_GET["id"] = $_POST["id"]; // Force affichage dictionnaire en cours d'edition
- }
- if ($action == 'confirm_delete' && $confirm == 'yes') { // delete
- if ($tabrowid[$id]) {
- $rowidcol = $tabrowid[$id];
- } else {
- $rowidcol = "rowid";
- }
- $sql = "DELETE from " . $tabname[$id] . " WHERE " . $rowidcol . "='" . $rowid . "'";
- dol_syslog("delete sql=" . $sql);
- $result = $db->query($sql);
- if (!$result) {
- if ($db->errno() == 'DB_ERROR_CHILD_EXISTS') {
- $msg = '<div class="error">' . $langs->trans("ErrorRecordIsUsedByChild") . '</div>';
- } else {
- dol_print_error($db);
- }
- }
- }
- // activate
- if ($action == $acts[0]) {
- if ($tabrowid[$id]) {
- $rowidcol = $tabrowid[$id];
- } else {
- $rowidcol = "rowid";
- }
- if ($rowid) {
- $sql = "UPDATE " . $tabname[$id] . " SET active = 1 WHERE " . $rowidcol . "='" . $rowid . "'";
- } elseif ($_GET["code"]) {
- $sql = "UPDATE " . $tabname[$id] . " SET active = 1 WHERE code='" . $_GET["code"] . "'";
- }
- $result = $db->query($sql);
- if (!$result) {
- dol_print_error($db);
- }
- }
- // disable
- if ($action == $acts[1]) {
- if ($tabrowid[$id]) {
- $rowidcol = $tabrowid[$id];
- } else {
- $rowidcol = "rowid";
- }
- if ($rowid) {
- $sql = "UPDATE " . $tabname[$id] . " SET active = 0 WHERE " . $rowidcol . "='" . $rowid . "'";
- } elseif ($_GET["code"]) {
- $sql = "UPDATE " . $tabname[$id] . " SET active = 0 WHERE code='" . $_GET["code"] . "'";
- }
- $result = $db->query($sql);
- if (!$result) {
- dol_print_error($db);
- }
- }
- /*
- * View
- */
- $form = new Form($db);
- $formadmin = new FormAdmin($db);
- llxHeader();
- $titre = $langs->trans("DictionnarySetup");
- $linkback = '';
- if ($id) {
- $titre.=' - ' . $langs->trans($tablib[$id]);
- $linkback = '<a href="' . DOL_URL_ROOT . '/admin/dict.php">' . $langs->trans("BackToDictionnaryList") . '</a>';
- }
- print_fiche_titre($titre);
- print '<div class="with-padding">';
- print '<div class="columns">';
- print start_box($titre, "twelve", "16-Cog-3.png", false);
- if (empty($id)) {
- print $langs->trans("DictionnaryDesc");
- print " " . $langs->trans("OnlyActiveElementsAreShown") . "<br>\n";
- }
- print "<br>\n";
- // Confirmation de la suppression de la ligne
- if ($action == 'delete') {
- $ret = $form->form_confirm($_SERVER["PHP_SELF"] . '?' . ($page ? 'page=' . $page . '&' : '') . 'sortfield=' . $sortfield . '&sortorder=' . $sortorder . '&rowid=' . $rowid . '&code=' . $_GET["code"] . '&id=' . $id, $langs->trans('DeleteLine'), $langs->trans('ConfirmDeleteLine'), 'confirm_delete', '', 0, 1);
- if ($ret == 'html')
- print '<br>';
- }
- /*
- * Show a dictionnary
- */
- if ($id) {
- dol_htmloutput_mesg($msg);
- // Complete requete recherche valeurs avec critere de tri
- $sql = $tabsql[$id];
- if (GETPOST('sortfield')) {
- // If sort order is "pays", we use pays_code instead
- if ($_GET["sortfield"] == 'pays')
- $_GET["sortfield"] = 'pays_code';
- $sql.= " ORDER BY " . $_GET["sortfield"];
- if ($_GET["sortorder"]) {
- $sql.=" " . strtoupper($_GET["sortorder"]);
- }
- $sql.=", ";
- // Remove from default sort order the choosed order
- $tabsqlsort[$id] = preg_replace('/' . $_GET["sortfield"] . ' ' . $_GET["sortorder"] . ',/i', '', $tabsqlsort[$id]);
- $tabsqlsort[$id] = preg_replace('/' . $_GET["sortfield"] . ',/i', '', $tabsqlsort[$id]);
- } else {
- $sql.=" ORDER BY ";
- }
- $sql.=$tabsqlsort[$id];
- $sql.=$db->plimit($listlimit + 1, $offset);
- //print $sql;
- $fieldlist = explode(',', $tabfield[$id]);
- print '<form action="' . $_SERVER["PHP_SELF"] . '" method="post">';
- print '<input type="hidden" name="token" value="' . $_SESSION['newtoken'] . '">';
- print '<table class="noborder" width="100%">';
- // Form to add a new line
- if ($tabname[$id]) {
- $alabelisused = 0;
- $var = false;
- $fieldlist = explode(',', $tabfield[$id]);
- // Line for title
- print '<tr class="liste_titre">';
- foreach ($fieldlist as $field => $value) {
- // Determine le nom du champ par rapport aux noms possibles
- // dans les dictionnaires de donnees
- $valuetoshow = ucfirst($fieldlist[$field]); // Par defaut
- $valuetoshow = $langs->trans($valuetoshow); // try to translate
- if ($fieldlist[$field] == 'source') {
- $valuetoshow = $langs->trans("Contact");
- }
- if ($fieldlist[$field] == 'price') {
- $valuetoshow = $langs->trans("PriceUHT");
- }
- if ($fieldlist[$field] == 'taux') {
- $valuetoshow = $langs->trans("Rate");
- }
- if ($fieldlist[$field] == 'organization') {
- $valuetoshow = $langs->trans("Organization");
- }
- if ($fieldlist[$field] == 'lang') {
- $valuetoshow = $langs->trans("Language");
- }
- if ($fieldlist[$field] == 'type') {
- $valuetoshow = $langs->trans("Type");
- }
- if ($fieldlist[$field] == 'code') {
- $valuetoshow = $langs->trans("Code");
- }
- if ($fieldlist[$field] == 'libelle' || $fieldlist[$field] == 'label') {
- $valuetoshow = $langs->trans("Label") . "*";
- }
- if ($fieldlist[$field] == 'libelle_facture') {
- $valuetoshow = $langs->trans("LabelOnDocuments") . "*";
- }
- if ($fieldlist[$field] == 'pays') {
- if (in_array('region_id', $fieldlist)) {
- print '<td> </td>';
- continue;
- } // For region page, we do not show the country input
- $valuetoshow = $langs->trans("Country");
- }
- if ($fieldlist[$field] == 'recuperableonly') {
- $valuetoshow = MAIN_LABEL_MENTION_NPR;
- }
- if ($fieldlist[$field] == 'nbjour') {
- $valuetoshow = $langs->trans("NbOfDays");
- }
- if ($fieldlist[$field] == 'fdm') {
- $valuetoshow = $langs->trans("AtEndOfMonth");
- }
- if ($fieldlist[$field] == 'decalage') {
- $valuetoshow = $langs->trans("Offset");
- }
- if ($fieldlist[$field] == 'width') {
- $valuetoshow = $langs->trans("Width");
- }
- if ($fieldlist[$field] == 'height') {
- $valuetoshow = $langs->trans("Height");
- }
- if ($fieldlist[$field] == 'unit') {
- $valuetoshow = $langs->trans("MeasuringUnit");
- }
- if ($fieldlist[$field] == 'region_id' || $fieldlist[$field] == 'pays_id') {
- $valuetoshow = '';
- }
- if ($fieldlist[$field] == 'accountancy_code') {
- $valuetoshow = $langs->trans("AccountancyCode");
- }
- if ($valuetoshow != '') {
- print '<td>';
- if (!empty($tabhelp[$id][$value]) && preg_match('/http:/i', $tabhelp[$id][$value]))
- print '<a href="' . $tabhelp[$id][$value] . '" target="_blank">' . $valuetoshow . '</a>';
- else if (!empty($tabhelp[$id][$value]))
- print $form->textwithpicto($valuetoshow, $tabhelp[$id][$value]);
- else
- print $valuetoshow;
- print '</td>';
- }
- if ($fieldlist[$field] == 'libelle' || $fieldlist[$field] == 'label')
- $alabelisused = 1;
- }
- print '<td colspan="3">';
- print '<input type="hidden" name="id" value="' . $id . '">';
- print ' </td>';
- print '</tr>';
- // Line to type new values
- print "<tr " . $bc[$var] . ">";
- $obj = '';
- // If data was already input, we define them in obj to populate input fields.
- if (GETPOST('actionadd')) {
- foreach ($fieldlist as $key => $val) {
- if (!empty($_POST[$val]))
- $obj->$val = $_POST[$val];
- }
- }
- $tmpaction = 'create';
- $parameters = array('fieldlist' => $fieldlist, 'tabname' => $tabname[$_GET["id"]]);
- $reshook = $hookmanager->executeHooks('createDictionaryFieldlist', $parameters, $obj, $tmpaction); // Note that $action and $object may have been modified by some hooks
- $error = $hookmanager->error;
- $errors = $hookmanager->errors;
- if (empty($reshook))
- fieldList($fieldlist, $obj);
- print '<td colspan="3" align="right"><input type="submit" class="button" name="actionadd" value="' . $langs->trans("Add") . '"></td>';
- print "</tr>";
- if ($alabelisused) { // Si un des champs est un libelle
- print '<tr><td colspan="' . (count($fieldlist) + 2) . '">* ' . $langs->trans("LabelUsedByDefault") . '.</td></tr>';
- }
- print '<tr><td colspan="' . (count($fieldlist) + 2) . '"> </td></tr>';
- }
- // List of available values in database
- dol_syslog("htdocs/admin/dict sql=" . $sql, LOG_DEBUG);
- $resql = $db->query($sql);
- if ($resql) {
- $num = $db->num_rows($resql);
- $i = 0;
- $var = true;
- if ($num) {
- // There is several pages
- if ($num > $listlimit) {
- print '<tr class="none"><td align="right" colspan="' . (3 + count($fieldlist)) . '">';
- print_fleche_navigation($page, $_SERVER["PHP_SELF"], '&id=' . $id, ($num > $listlimit), $langs->trans("Page") . ' ' . ($page + 1));
- print '</td></tr>';
- }
- // Title of lines
- print '<tr class="liste_titre">';
- foreach ($fieldlist as $field => $value) {
- // Determine le nom du champ par rapport aux noms possibles
- // dans les dictionnaires de donnees
- $showfield = 1; // Par defaut
- $valuetoshow = ucfirst($fieldlist[$field]); // Par defaut
- $valuetoshow = $langs->trans($valuetoshow); // try to translate
- if ($fieldlist[$field] == 'source') {
- $valuetoshow = $langs->trans("Contact");
- }
- if ($fieldlist[$field] == 'price') {
- $valuetoshow = $langs->trans("PriceUHT");
- }
- if ($fieldlist[$field] == 'taux') {
- $valuetoshow = $langs->trans("Rate");
- }
- if ($fieldlist[$field] == 'organization') {
- $valuetoshow = $langs->trans("Organization");
- }
- if ($fieldlist[$field] == 'lang') {
- $valuetoshow = $langs->trans("Language");
- }
- if ($fieldlist[$field] == 'type') {
- $valuetoshow = $langs->trans("Type");
- }
- if ($fieldlist[$field] == 'code') {
- $valuetoshow = $langs->trans("Code");
- }
- if ($fieldlist[$field] == 'libelle' || $fieldlist[$field] == 'label') {
- $valuetoshow = $langs->trans("Label") . "*";
- }
- if ($fieldlist[$field] == 'libelle_facture') {
- $valuetoshow = $langs->trans("LabelOnDocuments") . "*";
- }
- if ($fieldlist[$field] == 'pays') {
- $valuetoshow = $langs->trans("Country");
- }
- if ($fieldlist[$field] == 'recuperableonly') {
- $valuetoshow = MAIN_LABEL_MENTION_NPR;
- }
- if ($fieldlist[$field] == 'nbjour') {
- $valuetoshow = $langs->trans("NbOfDays");
- }
- if ($fieldlist[$field] == 'fdm') {
- $valuetoshow = $langs->trans("AtEndOfMonth");
- }
- if ($fieldlist[$field] == 'decalage') {
- $valuetoshow = $langs->trans("Offset");
- }
- if ($fieldlist[$field] == 'width') {
- $valuetoshow = $langs->trans("Width");
- }
- if ($fieldlist[$field] == 'height') {
- $valuetoshow = $langs->trans("Height");
- }
- if ($fieldlist[$field] == 'unit') {
- $valuetoshow = $langs->trans("MeasuringUnit");
- }
- if ($fieldlist[$field] == 'region_id' || $fieldlist[$field] == 'pays_id') {
- $showfield = 0;
- }
- if ($fieldlist[$field] == 'accountancy_code') {
- $valuetoshow = $langs->trans("AccountancyCode");
- }
- // Affiche nom du champ
- if ($showfield) {
- print_liste_field_titre($valuetoshow, $_SERVER["PHP_SELF"], $fieldlist[$field], ($page ? 'page=' . $page . '&' : '') . '&id=' . $id, "", "", $sortfield, $sortorder);
- }
- }
- print_liste_field_titre($langs->trans("Status"), $_SERVER["PHP_SELF"], "active", ($page ? 'page=' . $page . '&' : '') . '&id=' . $id, "", 'align="center"', $sortfield, $sortorder);
- print '<td colspan="2" class="liste_titre"> </td>';
- print '</tr>';
- $dict = new stdClass(); // for couchdb
- // Lines with values
- while ($i < $num) {
- $obj = $db->fetch_object($resql);
- $var = !$var;
- //print_r($obj);
- print "<tr " . $bc[$var] . ">";
- if ($action == 'edit' && ($rowid == (!empty($obj->rowid) ? $obj->rowid : $obj->code))) {
- print '<form action="dict.php" method="post">';
- print '<input type="hidden" name="token" value="' . $_SESSION['newtoken'] . '">';
- print '<input type="hidden" name="id" value="' . $id . '">';
- print '<input type="hidden" name="page" value="' . $page . '">';
- print '<input type="hidden" name="rowid" value="' . $rowid . '">';
- $tmpaction = 'edit';
- $parameters = array('fieldlist' => $fieldlist, 'tabname' => $tabname[$id]);
- $reshook = $hookmanager->executeHooks('editDictionaryFieldlist', $parameters, $obj, $tmpaction); // Note that $action and $object may have been modified by some hooks
- $error = $hookmanager->error;
- $errors = $hookmanager->errors;
- if (empty($reshook))
- fieldList($fieldlist, $obj, $tabname[$id]);
- print '<td colspan="3" align="right"><a name="' . (!empty($obj->rowid) ? $obj->rowid : $obj->code) . '"> </a><input type="submit" class="button" name="actionmodify" value="' . $langs->trans("Modify") . '">';
- print ' <input type="submit" class="button" name="actioncancel" value="' . $langs->trans("Cancel") . '"></td>';
- }
- else {
- $tmpaction = 'view';
- $parameters = array('fieldlist' => $fieldlist, 'tabname' => $tabname[$id]);
- $reshook = $hookmanager->executeHooks('viewDictionaryFieldlist', $parameters, $obj, $tmpaction); // Note that $action and $object may have been modified by some hooks
- $error = $hookmanager->error;
- $errors = $hookmanager->errors;
- if (empty($reshook)) {
- foreach ($fieldlist as $field => $value) {
- $showfield = 1;
- $valuetoshow = $obj->$fieldlist[$field];
- if ($valuetoshow == 'all') {
- $valuetoshow = $langs->trans('All');
- } else if ($fieldlist[$field] == 'pays') {
- if (empty($obj->pays_code)) {
- $valuetoshow = '-';
- } else {
- $key = $langs->trans("Country" . strtoupper($obj->pays_code));
- $valuetoshow = ($key != "Country" . strtoupper($obj->pays_code)) ? $obj->pays_code . " - " . $key : $obj->pays;
- }
- } else if ($fieldlist[$field] == 'recuperableonly' || $fieldlist[$field] == 'fdm') {
- $valuetoshow = yn($valuetoshow);
- } else if ($fieldlist[$field] == 'price' || preg_match('/^amount/i', $fieldlist[$field])) {
- $valuetoshow = price($valuetoshow);
- } else if ($fieldlist[$field] == 'libelle_facture') {
- $langs->load("bills");
- $key = $langs->trans("PaymentCondition" . strtoupper($obj->code));
- $valuetoshow = ($obj->code && $key != "PaymentCondition" . strtoupper($obj->code)) ? $key : $obj->$fieldlist[$field];
- $valuetoshow = nl2br($valuetoshow);
- } else if ($fieldlist[$field] == 'libelle' && $tabname[$_GET["id"]] == MAIN_DB_PREFIX . 'c_pays') {
- $key = $langs->trans("Country" . strtoupper($obj->code));
- $valuetoshow = ($obj->code && $key != "Country" . strtoupper($obj->code)) ? $key : $obj->$fieldlist[$field];
- } else if ($fieldlist[$field] == 'label' && $tabname[$_GET["id"]] == MAIN_DB_PREFIX . 'c_availability') {
- $langs->load("propal");
- $key = $langs->trans("AvailabilityType" . strtoupper($obj->code));
- $valuetoshow = ($obj->code && $key != "AvailabilityType" . strtoupper($obj->code)) ? $key : $obj->$fieldlist[$field];
- } else if ($fieldlist[$field] == 'libelle' && $tabname[$_GET["id"]] == MAIN_DB_PREFIX . 'c_actioncomm') {
- $key = $langs->trans("Action" . strtoupper($obj->code));
- $valuetoshow = ($obj->code && $key != "Action" . strtoupper($obj->code)) ? $key : $obj->$fieldlist[$field];
- } else if (!empty($obj->code_iso) && $fieldlist[$field] == 'libelle' && $tabname[$_GET["id"]] == MAIN_DB_PREFIX . 'c_currencies') {
- $key = $langs->trans("Currency" . strtoupper($obj->code_iso));
- $valuetoshow = ($obj->code_iso && $key != "Currency" . strtoupper($obj->code_iso)) ? $key : $obj->$fieldlist[$field];
- } else if ($fieldlist[$field] == 'libelle' && $tabname[$_GET["id"]] == MAIN_DB_PREFIX . 'c_typent') {
- $key = $langs->trans(strtoupper($obj->code));
- $valuetoshow = ($key != strtoupper($obj->code)) ? $key : $obj->$fieldlist[$field];
- } else if ($fieldlist[$field] == 'libelle' && $tabname[$_GET["id"]] == MAIN_DB_PREFIX . 'c_prospectlevel') {
- $key = $langs->trans(strtoupper($obj->code));
- $valuetoshow = ($key != strtoupper($obj->code)) ? $key : $obj->$fieldlist[$field];
- } else if ($fieldlist[$field] == 'libelle' && $tabname[$_GET["id"]] == MAIN_DB_PREFIX . 'c_civilite') {
- $key = $langs->trans("Civility" . strtoupper($obj->code));
- $valuetoshow = ($obj->code && $key != "Civility" . strtoupper($obj->code)) ? $key : $obj->$fieldlist[$field];
- } else if ($fieldlist[$field] == 'libelle' && $tabname[$_GET["id"]] == MAIN_DB_PREFIX . 'c_type_contact') {
- $key = $langs->trans("TypeContact_" . $obj->element . "_" . $obj->source . "_" . strtoupper($obj->code));
- $valuetoshow = ($obj->code && $key != "TypeContact_" . $obj->element . "_" . $obj->source . "_" . strtoupper($obj->code)) ? $key : $obj->$fieldlist[$field];
- } else if ($fieldlist[$field] == 'libelle' && $tabname[$_GET["id"]] == MAIN_DB_PREFIX . 'c_payment_term') {
- $langs->load("bills");
- $key = $langs->trans("PaymentConditionShort" . strtoupper($obj->code));
- $valuetoshow = ($obj->code && $key != "PaymentConditionShort" . strtoupper($obj->code)) ? $key : $obj->$fieldlist[$field];
- } else if ($fieldlist[$field] == 'libelle' && $tabname[$_GET["id"]] == MAIN_DB_PREFIX . 'c_paiement') {
- $langs->load("bills");
- $key = $langs->trans("PaymentType" . strtoupper($obj->code));
- $valuetoshow = ($obj->code && $key != "PaymentType" . strtoupper($obj->code)) ? $key : $obj->$fieldlist[$field];
- } else if ($fieldlist[$field] == 'label' && $tabname[$_GET["id"]] == MAIN_DB_PREFIX . 'c_input_reason') {
- $key = $langs->trans("DemandReasonType" . strtoupper($obj->code));
- $valuetoshow = ($obj->code && $key != "DemandReasonType" . strtoupper($obj->code)) ? $key : $obj->$fieldlist[$field];
- } else if ($fieldlist[$field] == 'libelle' && $tabname[$_GET["id"]] == MAIN_DB_PREFIX . 'c_input_method') {
- $langs->load("orders");
- $key = $langs->trans($obj->code);
- $valuetoshow = ($obj->code && $key != $obj->code) ? $key : $obj->$fieldlist[$field];
- } else if ($fieldlist[$field] == 'libelle' && $tabname[$_GET["id"]] == MAIN_DB_PREFIX . 'c_shipment_mode') {
- $langs->load("sendings");
- $key = $langs->trans("SendingMethod" . strtoupper($obj->code));
- $valuetoshow = ($obj->code && $key != "SendingMethod" . strtoupper($obj->code)) ? $key : $obj->$fieldlist[$field];
- } else if ($fieldlist[$field] == 'region_id' || $fieldlist[$field] == 'pays_id') {
- $showfield = 0;
- } else if ($fieldlist[$field] == 'unicode') {
- $valuetoshow = $langs->getCurrencySymbol($obj->code);
- }
- if ($showfield)
- print '<td>' . $valuetoshow . '</td>';
- }
- }
- print '<td align="center" nowrap="nowrap">';
- // Est-ce une entree du dictionnaire qui peut etre desactivee ?
- $iserasable = 1; // Oui par defaut
- if (isset($obj->code) && ($obj->code == '0' || $obj->code == '' || preg_match('/unknown/i', $obj->code)))
- $iserasable = 0;
- if (isset($obj->code) && $obj->code == 'RECEP')
- $iserasable = 0;
- if (isset($obj->code) && $obj->code == 'EF0')
- $iserasable = 0;
- if (isset($obj->type) && $obj->type == 'system')
- $iserasable = 0;
- if ($iserasable)
- print '<a href="' . $_SERVER["PHP_SELF"] . '?' . ($page ? 'page=' . $page . '&' : '') . 'sortfield=' . $sortfield . '&sortorder=' . $sortorder . '&rowid=' . (!empty($obj->rowid) ? $obj->rowid : (!empty($obj->code) ? $obj->code : '')) . '&code=' . (!empty($obj->code) ? $obj->code : '') . '&id=' . $id . '&action=' . $acts[$obj->active] . '">' . $actl[$obj->active] . '</a>';
- else
- print $langs->trans("AlwaysActive");
- print "</td>";
- // Modify link
- if ($iserasable)
- print '<td align="center"><a href="' . $_SERVER["PHP_SELF"] . '?' . ($page ? 'page=' . $page . '&' : '') . 'sortfield=' . $sortfield . '&sortorder=' . $sortorder . '&rowid=' . (!empty($obj->rowid) ? $obj->rowid : (!empty($obj->code) ? $obj->code : '')) . '&code=' . (!empty($obj->code) ? $obj->code : '') . '&id=' . $id . '&action=edit#' . (!empty($obj->rowid) ? $obj->rowid : (!empty($obj->code) ? $obj->code : '')) . '">' . img_edit() . '</a></td>';
- else
- print '<td> </td>';
- // Delete link
- if ($iserasable)
- print '<td align="center"><a href="' . $_SERVER["PHP_SELF"] . '?' . ($page ? 'page=' . $page . '&' : '') . 'sortfield=' . $sortfield . '&sortorder=' . $sortorder . '&rowid=' . (!empty($obj->rowid) ? $obj->rowid : (!empty($obj->code) ? $obj->code : '')) . '&code=' . (!empty($obj->code) ? $obj->code : '') . '&id=' . $id . '&action=delete">' . img_delete() . '</a></td>';
- else
- print '<td> </td>';
- print "</tr>\n";
- }
- // for export couchdb
- $values = new stdClass();
- $values->enable = (bool) $obj->active;
- $values->label = $obj->libelle;
- $code = $obj->code;
- if (!empty($obj->pays_code))
- $values->pays_code = $obj->pays_code;
- switch ($id) {
- case 6:
- $values->priority = (int) $obj->priority;
- if ($valu…
Large files files are truncated, but you can click here to view the full file