2004-10-19 20:58:50 +02:00
< ? php
2005-01-09 19:22:15 +01:00
/* Copyright ( C ) 2004 Rodolphe Quiedeville < rodolphe @ quiedeville . org >
2011-05-03 11:26:48 +02:00
* Copyright ( C ) 2004 - 2011 Laurent Destailleur < eldy @ users . sourceforge . net >
2005-01-09 19:22:15 +01:00
* Copyright ( C ) 2004 Benoit Mortier < benoit . mortier @ opensides . be >
2010-01-26 20:30:44 +01:00
* Copyright ( C ) 2005 - 2010 Regis Houssin < regis @ dolibarr . fr >
2010-02-28 12:45:49 +01:00
* Copyright ( C ) 2010 Juanjo Menent < jmenent @ 2 byte . es >
2011-04-26 19:12:10 +02:00
* Copyright ( C ) 2011 Philippe Grand < philippe . grand @ atoo - net . com >
2004-02-16 13:22:32 +01:00
*
* 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 2 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
2011-08-01 00:21:57 +02:00
* along with this program . If not , see < http :// www . gnu . org / licenses />.
2004-02-16 13:22:32 +01:00
*/
2004-08-29 14:01:58 +02:00
2005-04-07 02:10:34 +02:00
/**
2008-10-25 19:27:15 +02:00
* \file htdocs / admin / dict . php
* \ingroup setup
* \brief Page to administer data tables
*/
2004-08-29 14:01:58 +02:00
2010-03-01 10:20:41 +01:00
require ( " ../main.inc.php " );
2010-05-03 10:22:35 +02:00
require_once ( DOL_DOCUMENT_ROOT . " /core/class/html.formadmin.class.php " );
2010-05-10 06:50:39 +02:00
require_once ( DOL_DOCUMENT_ROOT . " /core/class/html.formcompany.class.php " );
2011-01-23 20:51:29 +01:00
require_once ( DOL_DOCUMENT_ROOT . " /lib/admin.lib.php " );
2004-02-16 13:22:32 +01:00
2006-01-18 21:10:08 +01:00
$langs -> load ( " other " );
2004-08-08 20:22:01 +02:00
$langs -> load ( " admin " );
2004-08-20 03:29:39 +02:00
$langs -> load ( " companies " );
2004-08-08 20:22:01 +02:00
2011-09-21 18:40:52 +02:00
if ( ! $user -> admin ) accessforbidden ();
2004-08-08 20:22:01 +02:00
$acts [ 0 ] = " activate " ;
$acts [ 1 ] = " disable " ;
2010-01-31 11:20:17 +01:00
//$actl[0] = $langs->trans("Activate");
//$actl[1] = $langs->trans("Disable");
$actl [ 0 ] = img_picto ( $langs -> trans ( " Disabled " ), 'off' );
$actl [ 1 ] = img_picto ( $langs -> trans ( " Activated " ), 'on' );
2004-02-16 13:22:32 +01:00
2011-05-29 12:57:38 +02:00
$listoffset = GETPOST ( 'listoffset' );
$listlimit = GETPOST ( 'listlimit' ) > 0 ? GETPOST ( 'listlimit' ) : 1000 ;
2004-06-09 20:37:17 +02:00
$active = 1 ;
2011-05-29 12:57:38 +02:00
$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 ;
2009-05-04 12:27:01 +02:00
// Cette page est une page d'edition generique des dictionnaires de donnees
// Mettre ici tous les caracteristiques des dictionnaires
2004-06-26 19:13:30 +02:00
2004-10-31 14:00:04 +01:00
// Ordres d'affichage des dictionnaires (0 pour espace)
2011-04-18 21:39:14 +02:00
$taborder = array ( 9 , 0 , 4 , 3 , 2 , 0 , 1 , 8 , 19 , 16 , 0 , 5 , 11 , 0 , 6 , 0 , 10 , 12 , 13 , 0 , 14 , 0 , 7 , 17 , 0 , 22 , 20 , 18 , 21 , 0 , 15 );
2004-10-31 14:00:04 +01:00
2004-06-26 19:13:30 +02:00
// Nom des tables des dictionnaires
2004-08-08 20:22:01 +02:00
$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 " ;
2004-10-03 20:31:51 +02:00
$tabname [ 7 ] = MAIN_DB_PREFIX . " c_chargesociales " ;
2005-05-14 02:54:19 +02:00
$tabname [ 8 ] = MAIN_DB_PREFIX . " c_typent " ;
2005-07-09 14:18:42 +02:00
$tabname [ 9 ] = MAIN_DB_PREFIX . " c_currencies " ;
2005-08-20 00:32:32 +02:00
$tabname [ 10 ] = MAIN_DB_PREFIX . " c_tva " ;
2005-09-08 00:43:44 +02:00
$tabname [ 11 ] = MAIN_DB_PREFIX . " c_type_contact " ;
2010-09-06 01:39:37 +02:00
$tabname [ 12 ] = MAIN_DB_PREFIX . " c_payment_term " ;
2006-02-25 02:26:19 +01:00
$tabname [ 13 ] = MAIN_DB_PREFIX . " c_paiement " ;
2007-07-24 17:14:12 +02:00
$tabname [ 14 ] = MAIN_DB_PREFIX . " c_ecotaxe " ;
2007-09-30 19:55:29 +02:00
$tabname [ 15 ] = MAIN_DB_PREFIX . " c_paper_format " ;
2008-03-02 20:55:43 +01:00
$tabname [ 16 ] = MAIN_DB_PREFIX . " c_prospectlevel " ;
2008-05-28 00:30:52 +02:00
$tabname [ 17 ] = MAIN_DB_PREFIX . " c_type_fees " ;
2010-09-06 02:02:55 +02:00
$tabname [ 18 ] = MAIN_DB_PREFIX . " c_shipment_mode " ;
2009-11-19 17:13:39 +01:00
$tabname [ 19 ] = MAIN_DB_PREFIX . " c_effectif " ;
2011-04-24 15:20:55 +02:00
$tabname [ 20 ] = MAIN_DB_PREFIX . " c_input_method " ;
2011-04-01 12:49:57 +02:00
$tabname [ 21 ] = MAIN_DB_PREFIX . " c_availability " ;
2011-05-07 13:36:47 +02:00
$tabname [ 22 ] = MAIN_DB_PREFIX . " c_input_reason " ;
2004-02-16 13:22:32 +01:00
2009-01-22 23:55:51 +01:00
// Dictionary labels
2011-01-23 22:24:47 +01:00
$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 " ;
2011-02-23 16:23:42 +01:00
$tablib [ 20 ] = " DictionnaryOrderMethods " ;
2011-04-01 12:49:57 +02:00
$tablib [ 21 ] = " DictionnaryAvailability " ;
2011-04-18 21:39:14 +02:00
$tablib [ 22 ] = " DictionnarySource " ;
2004-02-16 13:22:32 +01:00
2009-01-22 23:55:51 +01:00
// Requete pour extraction des donnees des dictionnaires
2009-08-28 23:51:54 +02:00
$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 " ;
2009-07-04 00:52:49 +02:00
$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 " ;
2005-09-08 00:43:44 +02:00
$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 " ;
2011-02-02 14:29:54 +01:00
$tabsql [ 6 ] = " SELECT a.id as rowid, a.code as code, a.libelle AS libelle, a.type, a.active, a.module, a.position FROM " . MAIN_DB_PREFIX . " c_actioncomm AS a " ;
2009-10-25 21:48:44 +01:00
$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 " ;
2005-09-08 00:43:44 +02:00
$tabsql [ 8 ] = " SELECT id as rowid, code, libelle, active FROM " . MAIN_DB_PREFIX . " c_typent " ;
2011-06-25 11:50:56 +02:00
//$tabsql[9] = "SELECT code, code_iso, label as libelle, symbole, active FROM ".MAIN_DB_PREFIX."c_currencies";
$tabsql [ 9 ] = " SELECT code, code_iso, label as libelle, active FROM " . MAIN_DB_PREFIX . " c_currencies " ;
2011-09-21 18:40:52 +02:00
$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, llx_c_pays as p WHERE t.fk_pays=p.rowid " ;
2005-09-17 19:38:02 +02:00
$tabsql [ 11 ] = " SELECT t.rowid as rowid, element, source, code, libelle, active FROM " . MAIN_DB_PREFIX . " c_type_contact AS t " ;
2010-09-06 01:39:37 +02:00
$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' ;
2006-02-25 02:26:19 +01:00
$tabsql [ 13 ] = " SELECT id as rowid, code, c.libelle, type, active FROM " . MAIN_DB_PREFIX . " c_paiement AS c " ;
2009-08-28 23:51:54 +02:00
$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 " ;
2007-09-30 19:55:29 +02:00
$tabsql [ 15 ] = " SELECT rowid as rowid, code, label as libelle, width, height, unit, active FROM " . MAIN_DB_PREFIX . " c_paper_format " ;
2008-03-02 20:55:43 +01:00
$tabsql [ 16 ] = " SELECT code, label as libelle, active FROM " . MAIN_DB_PREFIX . " c_prospectlevel " ;
2008-05-28 00:30:52 +02:00
$tabsql [ 17 ] = " SELECT id as rowid, code, libelle, active FROM " . MAIN_DB_PREFIX . " c_type_fees " ;
2010-09-06 02:02:55 +02:00
$tabsql [ 18 ] = " SELECT rowid as rowid, code, libelle, active FROM " . MAIN_DB_PREFIX . " c_shipment_mode " ;
2009-11-19 17:13:39 +01:00
$tabsql [ 19 ] = " SELECT id as rowid, code, libelle, active FROM " . MAIN_DB_PREFIX . " c_effectif " ;
2011-04-24 15:22:50 +02:00
$tabsql [ 20 ] = " SELECT rowid as rowid, code, libelle, active FROM " . MAIN_DB_PREFIX . " c_input_method " ;
2011-05-29 12:57:38 +02:00
$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 " ;
2004-06-26 19:13:30 +02:00
2006-08-12 19:53:18 +02:00
// Critere de tri du dictionnaire
2009-10-25 21:48:44 +01:00
$tabsqlsort [ 1 ] = " pays ASC, code ASC " ;
$tabsqlsort [ 2 ] = " pays ASC, code ASC " ;
$tabsqlsort [ 3 ] = " pays ASC, code ASC " ;
2009-07-04 00:52:49 +02:00
$tabsqlsort [ 4 ] = " code ASC " ;
2005-08-20 00:32:32 +02:00
$tabsqlsort [ 5 ] = " libelle ASC " ;
2011-02-02 14:29:54 +01:00
$tabsqlsort [ 6 ] = " a.type ASC, a.module, a.position, a.code ASC " ;
2009-10-25 21:48:44 +01:00
$tabsqlsort [ 7 ] = " pays ASC, code ASC, a.libelle ASC " ;
2005-08-20 00:32:32 +02:00
$tabsqlsort [ 8 ] = " libelle ASC " ;
$tabsqlsort [ 9 ] = " code ASC " ;
2010-02-28 12:45:49 +01:00
$tabsqlsort [ 10 ] = " pays ASC, taux ASC, recuperableonly ASC, localtax1 ASC, localtax2 ASC " ;
2005-09-17 19:38:02 +02:00
$tabsqlsort [ 11 ] = " element ASC, source ASC, code ASC " ;
2005-10-04 02:10:41 +02:00
$tabsqlsort [ 12 ] = " sortorder ASC, code ASC " ;
2006-02-25 02:26:19 +01:00
$tabsqlsort [ 13 ] = " code ASC " ;
2009-10-25 21:48:44 +01:00
$tabsqlsort [ 14 ] = " pays ASC, e.organization ASC, code ASC " ;
2007-09-30 19:55:29 +02:00
$tabsqlsort [ 15 ] = " rowid ASC " ;
2008-03-02 20:55:43 +01:00
$tabsqlsort [ 16 ] = " sortorder ASC " ;
2008-05-28 00:30:52 +02:00
$tabsqlsort [ 17 ] = " code ASC " ;
2009-01-22 23:55:51 +01:00
$tabsqlsort [ 18 ] = " code ASC, libelle ASC " ;
2009-11-19 17:13:39 +01:00
$tabsqlsort [ 19 ] = " id ASC " ;
2011-02-23 16:23:42 +01:00
$tabsqlsort [ 20 ] = " code ASC, libelle ASC " ;
2011-04-01 12:49:57 +02:00
$tabsqlsort [ 21 ] = " code ASC, label ASC " ;
2011-04-18 21:39:14 +02:00
$tabsqlsort [ 22 ] = " code ASC, label ASC " ;
2008-05-28 00:30:52 +02:00
2004-08-08 20:22:01 +02:00
// Nom des champs en resultat de select pour affichage du dictionnaire
2004-06-11 02:13:15 +02:00
$tabfield [ 1 ] = " code,libelle,pays " ;
2009-07-04 00:52:49 +02:00
$tabfield [ 2 ] = " code,libelle,region_id,region,pays " ; // "code,libelle,region,pays_code-pays"
2007-07-24 12:35:22 +02:00
$tabfield [ 3 ] = " code,libelle,pays_id,pays " ;
2004-06-09 20:37:17 +02:00
$tabfield [ 4 ] = " code,libelle " ;
2004-09-18 19:17:19 +02:00
$tabfield [ 5 ] = " code,libelle " ;
2011-02-02 14:29:54 +01:00
$tabfield [ 6 ] = " code,libelle,type,position " ;
2009-10-25 21:48:44 +01:00
$tabfield [ 7 ] = " code,libelle,pays_id,pays,deductible " ;
2005-05-14 02:54:19 +02:00
$tabfield [ 8 ] = " code,libelle " ;
2011-06-25 11:50:56 +02:00
//$tabfield[9] = "code,code_iso,libelle,symbole";
$tabfield [ 9 ] = " code,code_iso,libelle " ;
2011-09-20 08:47:55 +02:00
$tabfield [ 10 ] = " pays_id,pays,taux,recuperableonly,localtax1,localtax2,note,accountancy_code " ;
2005-09-17 19:38:02 +02:00
$tabfield [ 11 ] = " element,source,code,libelle " ;
2006-04-20 20:57:38 +02:00
$tabfield [ 12 ] = " code,libelle,libelle_facture,nbjour,fdm,decalage " ;
2006-02-25 02:26:19 +01:00
$tabfield [ 13 ] = " code,libelle,type " ;
2007-07-24 17:14:12 +02:00
$tabfield [ 14 ] = " code,libelle,price,organization,pays_id,pays " ;
2007-09-30 19:55:29 +02:00
$tabfield [ 15 ] = " code,libelle,width,height,unit " ;
2008-03-02 20:55:43 +01:00
$tabfield [ 16 ] = " code,libelle " ;
2008-05-28 00:30:52 +02:00
$tabfield [ 17 ] = " code,libelle " ;
2009-01-22 23:55:51 +01:00
$tabfield [ 18 ] = " code,libelle " ;
2009-11-19 17:13:39 +01:00
$tabfield [ 19 ] = " code,libelle " ;
2011-02-23 16:23:42 +01:00
$tabfield [ 20 ] = " code,libelle " ;
2011-04-01 12:49:57 +02:00
$tabfield [ 21 ] = " code,label " ;
2011-04-18 21:39:14 +02:00
$tabfield [ 22 ] = " code,label " ;
2004-02-16 13:22:32 +01:00
2009-07-04 00:52:49 +02:00
// Nom des champs d'edition pour modification d'un enregistrement
2007-07-24 12:35:22 +02:00
$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 " ;
2011-02-02 14:29:54 +01:00
$tabfieldvalue [ 6 ] = " code,libelle,type,position " ;
2009-10-25 21:48:44 +01:00
$tabfieldvalue [ 7 ] = " code,libelle,pays,deductible " ;
2007-07-24 12:35:22 +02:00
$tabfieldvalue [ 8 ] = " code,libelle " ;
2011-06-25 11:50:56 +02:00
//$tabfieldvalue[9] = "code,code_iso,libelle,symbole";
$tabfieldvalue [ 9 ] = " code,code_iso,libelle " ;
2011-09-20 08:47:55 +02:00
$tabfieldvalue [ 10 ] = " pays,taux,recuperableonly,localtax1,localtax2,note,accountancy_code " ;
2007-07-24 12:35:22 +02:00
$tabfieldvalue [ 11 ] = " element,source,code,libelle " ;
$tabfieldvalue [ 12 ] = " code,libelle,libelle_facture,nbjour,fdm,decalage " ;
$tabfieldvalue [ 13 ] = " code,libelle,type " ;
2007-07-24 17:14:12 +02:00
$tabfieldvalue [ 14 ] = " code,libelle,price,organization,pays " ;
2007-09-30 19:55:29 +02:00
$tabfieldvalue [ 15 ] = " code,libelle,width,height,unit " ;
2008-03-02 20:55:43 +01:00
$tabfieldvalue [ 16 ] = " code,libelle " ;
2008-05-28 00:30:52 +02:00
$tabfieldvalue [ 17 ] = " code,libelle " ;
2009-01-22 23:55:51 +01:00
$tabfieldvalue [ 18 ] = " code,libelle " ;
2009-11-19 17:13:39 +01:00
$tabfieldvalue [ 19 ] = " code,libelle " ;
2011-02-23 16:23:42 +01:00
$tabfieldvalue [ 20 ] = " code,libelle " ;
2011-04-01 12:49:57 +02:00
$tabfieldvalue [ 21 ] = " code,label " ;
2011-04-18 21:39:14 +02:00
$tabfieldvalue [ 22 ] = " code,label " ;
2007-07-24 12:35:22 +02:00
2004-08-08 20:22:01 +02:00
// Nom des champs dans la table pour insertion d'un enregistrement
$tabfieldinsert [ 1 ] = " code,libelle,fk_pays " ;
$tabfieldinsert [ 2 ] = " code_departement,nom,fk_region " ;
$tabfieldinsert [ 3 ] = " code_region,nom,fk_pays " ;
$tabfieldinsert [ 4 ] = " code,libelle " ;
2004-09-18 19:17:19 +02:00
$tabfieldinsert [ 5 ] = " code,civilite " ;
2011-02-02 14:29:54 +01:00
$tabfieldinsert [ 6 ] = " code,libelle,type,position " ;
2009-10-25 21:48:44 +01:00
$tabfieldinsert [ 7 ] = " code,libelle,fk_pays,deductible " ;
2005-05-14 02:54:19 +02:00
$tabfieldinsert [ 8 ] = " code,libelle " ;
2011-06-25 11:50:56 +02:00
//$tabfieldinsert[9] = "code,code_iso,label,symbole";
$tabfieldinsert [ 9 ] = " code,code_iso,label " ;
2011-09-20 08:47:55 +02:00
$tabfieldinsert [ 10 ] = " fk_pays,taux,recuperableonly,localtax1,localtax2,note,accountancy_code " ;
2005-09-17 19:38:02 +02:00
$tabfieldinsert [ 11 ] = " element,source,code,libelle " ;
2006-04-20 20:57:38 +02:00
$tabfieldinsert [ 12 ] = " code,libelle,libelle_facture,nbjour,fdm,decalage " ;
2006-03-16 10:40:49 +01:00
$tabfieldinsert [ 13 ] = " code,libelle,type " ;
2007-07-24 17:14:12 +02:00
$tabfieldinsert [ 14 ] = " code,libelle,price,organization,fk_pays " ;
2007-09-30 19:55:29 +02:00
$tabfieldinsert [ 15 ] = " code,label,width,height,unit " ;
2008-03-02 20:55:43 +01:00
$tabfieldinsert [ 16 ] = " code,label " ;
2008-05-28 00:30:52 +02:00
$tabfieldinsert [ 17 ] = " code,libelle " ;
2009-01-22 23:55:51 +01:00
$tabfieldinsert [ 18 ] = " code,libelle " ;
2009-11-19 17:13:39 +01:00
$tabfieldinsert [ 19 ] = " code,libelle " ;
2011-02-23 16:23:42 +01:00
$tabfieldinsert [ 20 ] = " code,libelle " ;
2011-04-01 12:49:57 +02:00
$tabfieldinsert [ 21 ] = " code,label " ;
2011-04-18 21:39:14 +02:00
$tabfieldinsert [ 22 ] = " code,label " ;
2004-06-26 19:13:30 +02:00
2009-01-22 23:55:51 +01:00
// Nom du rowid si le champ n'est pas de type autoincrement
2011-02-02 14:29:54 +01:00
// Example: "" if id field is "rowid" and has autoincrement on
// "nameoffield" if id field is not "rowid" or has not autoincrement on
2004-08-08 20:22:01 +02:00
$tabrowid [ 1 ] = " " ;
$tabrowid [ 2 ] = " " ;
$tabrowid [ 3 ] = " " ;
$tabrowid [ 4 ] = " rowid " ;
$tabrowid [ 5 ] = " rowid " ;
$tabrowid [ 6 ] = " id " ;
2005-07-09 14:18:42 +02:00
$tabrowid [ 7 ] = " id " ;
2005-05-14 02:54:19 +02:00
$tabrowid [ 8 ] = " id " ;
2006-01-19 23:28:42 +01:00
$tabrowid [ 9 ] = " code " ;
2005-08-20 00:32:32 +02:00
$tabrowid [ 10 ] = " " ;
2005-09-08 00:43:44 +02:00
$tabrowid [ 11 ] = " rowid " ;
2005-10-04 02:10:41 +02:00
$tabrowid [ 12 ] = " rowid " ;
2006-02-25 02:26:19 +01:00
$tabrowid [ 13 ] = " id " ;
2007-07-24 17:14:12 +02:00
$tabrowid [ 14 ] = " " ;
2007-09-30 19:55:29 +02:00
$tabrowid [ 15 ] = " " ;
2008-03-02 20:55:43 +01:00
$tabrowid [ 16 ] = " code " ;
2008-05-28 00:30:52 +02:00
$tabrowid [ 17 ] = " id " ;
2009-01-22 23:55:51 +01:00
$tabrowid [ 18 ] = " rowid " ;
2009-11-19 17:13:39 +01:00
$tabrowid [ 19 ] = " id " ;
2011-02-23 16:23:42 +01:00
$tabrowid [ 20 ] = " " ;
2011-04-06 17:36:45 +02:00
$tabrowid [ 21 ] = " rowid " ;
2011-04-18 21:39:14 +02:00
$tabrowid [ 22 ] = " rowid " ;
2004-06-26 19:13:30 +02:00
2006-08-12 19:53:18 +02:00
// Condition to show dictionnary in setup page
2008-01-14 19:56:33 +01:00
$tabcond [ 1 ] = true ;
2006-08-12 19:53:18 +02:00
$tabcond [ 2 ] = true ;
$tabcond [ 3 ] = true ;
$tabcond [ 4 ] = true ;
2011-06-05 12:32:21 +02:00
$tabcond [ 5 ] = $conf -> societe -> enabled || $conf -> adherent -> enabled ;
2008-01-14 19:56:33 +01:00
$tabcond [ 6 ] = $conf -> agenda -> enabled ;
2006-08-12 19:53:18 +02:00
$tabcond [ 7 ] = $conf -> tax -> enabled ;
$tabcond [ 8 ] = $conf -> societe -> enabled ;
$tabcond [ 9 ] = true ;
$tabcond [ 10 ] = true ;
$tabcond [ 11 ] = true ;
2010-08-23 22:32:11 +02:00
$tabcond [ 12 ] = $conf -> commande -> enabled || $conf -> propale -> enabled || $conf -> facture -> enabled || $conf -> fournisseur -> enabled ;
$tabcond [ 13 ] = $conf -> commande -> enabled || $conf -> propale -> enabled || $conf -> facture -> enabled || $conf -> fournisseur -> enabled ;
2010-07-14 01:36:53 +02:00
$tabcond [ 14 ] = $conf -> product -> enabled && $conf -> ecotax -> enabled ;
2007-09-30 19:55:29 +02:00
$tabcond [ 15 ] = true ;
2011-01-31 21:31:55 +01:00
$tabcond [ 16 ] = $conf -> societe -> enabled && empty ( $conf -> global -> SOCIETE_DISABLE_PROSPECTS );
2008-05-28 00:30:52 +02:00
$tabcond [ 17 ] = $conf -> deplacement -> enabled ;
2009-01-22 23:55:51 +01:00
$tabcond [ 18 ] = $conf -> expedition -> enabled ;
2009-11-19 17:13:39 +01:00
$tabcond [ 19 ] = $conf -> societe -> enabled ;
2011-02-23 16:23:42 +01:00
$tabcond [ 20 ] = $conf -> fournisseur -> enabled ;
2011-04-01 12:04:49 +02:00
$tabcond [ 21 ] = $conf -> propale -> enabled ;
2011-04-18 21:39:14 +02:00
$tabcond [ 22 ] = $conf -> commande -> enabled || $conf -> propale -> enabled ;
2004-02-21 00:37:42 +01:00
2011-01-23 20:51:29 +01:00
complete_dictionnary_with_modules ( $taborder , $tabname , $tablib , $tabsql , $tabsqlsort , $tabfield , $tabfieldvalue , $tabfieldinsert , $tabrowid , $tabcond );
2011-05-03 11:26:48 +02:00
// Define elementList and sourceList (used for dictionnary "type of contacts")
$elementList = array ();
$sourceList = array ();
if ( GETPOST ( " id " ) == 11 )
{
$langs -> load ( " orders " );
$langs -> load ( " contracts " );
$langs -> load ( " projects " );
$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 " ),
" 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 " ));
}
2011-01-23 20:51:29 +01:00
2004-08-08 20:22:01 +02:00
$msg = '' ;
2004-10-31 14:00:04 +01:00
2004-10-03 20:31:51 +02:00
/*
2008-05-28 00:30:52 +02:00
* Actions ajout ou modification d ' une entree dans un dictionnaire de donnee
2004-10-03 20:31:51 +02:00
*/
2007-07-23 20:07:27 +02:00
if ( $_POST [ " actionadd " ] || $_POST [ " actionmodify " ])
2005-08-20 00:32:32 +02:00
{
2011-01-23 22:24:47 +01:00
$listfield = explode ( ',' , $tabfield [ $_POST [ " id " ]]);
$listfieldinsert = explode ( ',' , $tabfieldinsert [ $_POST [ " id " ]]);
$listfieldmodify = explode ( ',' , $tabfieldinsert [ $_POST [ " id " ]]);
$listfieldvalue = explode ( ',' , $tabfieldvalue [ $_POST [ " 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 ] == '' )
2011-02-02 14:29:54 +01:00
&& $listfield [ $f ] != 'decalage' // Fields that are not mandatory
2011-09-20 08:47:55 +02:00
&& $listfield [ $f ] != 'module' // Fields that are not mandatory
&& $listfield [ $f ] != 'accountancy_code' ) // Fields that are not mandatory
2011-01-23 22:24:47 +01:00
{
$ok = 0 ;
$fieldnamekey = $listfield [ $f ];
// We take translate key of field
2011-02-02 14:29:54 +01:00
if ( $fieldnamekey == 'libelle' ) $fieldnamekey = 'Label' ;
if ( $fieldnamekey == 'nbjour' ) $fieldnamekey = 'NbOfDays' ;
2010-08-24 11:39:17 +02:00
if ( $fieldnamekey == 'decalage' ) $fieldnamekey = 'Offset' ;
2011-02-02 14:29:54 +01:00
if ( $fieldnamekey == 'module' ) $fieldnamekey = 'Module' ;
2011-01-23 22:24:47 +01:00
$msg .= $langs -> trans ( " ErrorFieldRequired " , $langs -> transnoentities ( $fieldnamekey )) . '<br>' ;
}
}
// Autres verif
2011-02-02 14:29:54 +01:00
if ( $tabname [ $_POST [ " 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> " ;
}
2011-01-23 22:24:47 +01:00
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 [ $_POST [ " id " ]])
{
// Recupere id libre pour insertion
$newid = 0 ;
$sql = " SELECT max( " . $tabrowid [ $_POST [ " id " ]] . " ) newid from " . $tabname [ $_POST [ " 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 [ $_POST [ " id " ]] . " ( " ;
// List of fields
if ( $tabrowid [ $_POST [ " id " ]] &&
! in_array ( $tabrowid [ $_POST [ " id " ]], $listfieldinsert )) $sql .= $tabrowid [ $_POST [ " id " ]] . " , " ;
$sql .= $tabfieldinsert [ $_POST [ " id " ]];
$sql .= " ,active) " ;
$sql .= " VALUES( " ;
// List of values
if ( $tabrowid [ $_POST [ " id " ]] &&
! in_array ( $tabrowid [ $_POST [ " id " ]], $listfieldinsert )) $sql .= $newid . " , " ;
$i = 0 ;
foreach ( $listfieldinsert as $f => $value )
{
if ( $value == 'price' ) { $_POST [ $listfieldvalue [ $i ]] = price2num ( $_POST [ $listfieldvalue [ $i ]], 'MU' ); }
if ( $i ) $sql .= " , " ;
2010-08-24 11:39:17 +02:00
if ( $_POST [ $listfieldvalue [ $i ]] == '' ) $sql .= " null " ;
else $sql .= " ' " . $db -> escape ( $_POST [ $listfieldvalue [ $i ]]) . " ' " ;
2011-01-23 22:24:47 +01:00
$i ++ ;
}
$sql .= " ,1) " ;
dol_syslog ( " actionadd sql= " . $sql );
$result = $db -> query ( $sql );
if ( $result ) // Add is ok
{
$oldid = $_POST [ " 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 && $_POST [ " actionmodify " ])
{
if ( $tabrowid [ $_POST [ " id " ]]) { $rowidcol = $tabrowid [ $_POST [ " id " ]]; }
else { $rowidcol = " rowid " ; }
// Modify entry
$sql = " UPDATE " . $tabname [ $_POST [ " id " ]] . " SET " ;
// Modifie valeur des champs
if ( $tabrowid [ $_POST [ " id " ]] && ! in_array ( $tabrowid [ $_POST [ " id " ]], $listfieldmodify ))
{
$sql .= $tabrowid [ $_POST [ " id " ]] . " = " ;
2011-02-24 19:22:24 +01:00
$sql .= " ' " . $db -> escape ( $_POST [ " rowid " ]) . " ', " ;
2011-01-23 22:24:47 +01:00
}
$i = 0 ;
foreach ( $listfieldmodify as $field )
{
if ( $field == 'price' ) { $_POST [ $listfieldvalue [ $i ]] = price2num ( $_POST [ $listfieldvalue [ $i ]], 'MU' ); }
if ( $i ) $sql .= " , " ;
$sql .= $field . " = " ;
if ( $_POST [ $listfieldvalue [ $i ]] == '' ) $sql .= " null " ;
else $sql .= " ' " . $db -> escape ( $_POST [ $listfieldvalue [ $i ]]) . " ' " ;
$i ++ ;
}
$sql .= " WHERE " . $rowidcol . " = ' " . $_POST [ " 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
2004-08-08 20:22:01 +02:00
}
2007-07-25 14:00:15 +02:00
if ( $_POST [ " actioncancel " ])
{
2011-01-23 22:24:47 +01:00
$_GET [ " id " ] = $_POST [ " id " ]; // Force affichage dictionnaire en cours d'edition
2007-07-25 14:00:15 +02:00
}
2009-05-06 17:45:50 +02:00
if ( $_REQUEST [ 'action' ] == 'confirm_delete' && $_REQUEST [ 'confirm' ] == 'yes' ) // delete
2004-08-08 20:22:01 +02:00
{
2011-01-23 22:24:47 +01:00
if ( $tabrowid [ $_GET [ " id " ]]) { $rowidcol = $tabrowid [ $_GET [ " id " ]]; }
else { $rowidcol = " rowid " ; }
$sql = " DELETE from " . $tabname [ $_GET [ " id " ]] . " WHERE " . $rowidcol . " =' " . $_GET [ " 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 );
}
}
2004-08-08 20:22:01 +02:00
}
2004-02-16 13:22:32 +01:00
2004-08-08 20:22:01 +02:00
if ( $_GET [ " action " ] == $acts [ 0 ]) // activate
2004-06-09 20:37:17 +02:00
{
2011-01-23 22:24:47 +01:00
if ( $tabrowid [ $_GET [ " id " ]]) { $rowidcol = $tabrowid [ $_GET [ " id " ]]; }
else { $rowidcol = " rowid " ; }
if ( $_GET [ " rowid " ]) {
$sql = " UPDATE " . $tabname [ $_GET [ " id " ]] . " SET active = 1 WHERE " . $rowidcol . " =' " . $_GET [ " rowid " ] . " ' " ;
}
elseif ( $_GET [ " code " ]) {
$sql = " UPDATE " . $tabname [ $_GET [ " id " ]] . " SET active = 1 WHERE code=' " . $_GET [ " code " ] . " ' " ;
}
$result = $db -> query ( $sql );
if ( ! $result )
{
dol_print_error ( $db );
}
2004-06-09 20:37:17 +02:00
}
2004-08-08 20:22:01 +02:00
if ( $_GET [ " action " ] == $acts [ 1 ]) // disable
2004-02-16 13:22:32 +01:00
{
2011-01-23 22:24:47 +01:00
if ( $tabrowid [ $_GET [ " id " ]]) { $rowidcol = $tabrowid [ $_GET [ " id " ]]; }
else { $rowidcol = " rowid " ; }
if ( $_GET [ " rowid " ]) {
$sql = " UPDATE " . $tabname [ $_GET [ " id " ]] . " SET active = 0 WHERE " . $rowidcol . " =' " . $_GET [ " rowid " ] . " ' " ;
}
elseif ( $_GET [ " code " ]) {
$sql = " UPDATE " . $tabname [ $_GET [ " id " ]] . " SET active = 0 WHERE code=' " . $_GET [ " code " ] . " ' " ;
}
$result = $db -> query ( $sql );
if ( ! $result )
{
dol_print_error ( $db );
}
2004-02-16 13:22:32 +01:00
}
2008-05-28 00:30:52 +02:00
/*
* View
*/
2004-02-16 13:22:32 +01:00
2007-09-30 19:55:29 +02:00
$html = new Form ( $db );
2008-10-25 19:27:15 +02:00
$formadmin = new FormAdmin ( $db );
2007-09-30 19:55:29 +02:00
2008-05-28 00:30:52 +02:00
llxHeader ();
2006-08-12 19:53:18 +02:00
$titre = $langs -> trans ( " DictionnarySetup " );
2008-05-28 00:30:52 +02:00
$linkback = '' ;
2006-08-12 19:53:18 +02:00
if ( $_GET [ " id " ])
{
2011-01-23 22:24:47 +01:00
$titre .= ' - ' . $langs -> trans ( $tablib [ $_GET [ " id " ]]);
$linkback = '<a href="' . DOL_URL_ROOT . '/admin/dict.php">' . $langs -> trans ( " BackToDictionnaryList " ) . '</a>' ;
2006-08-12 19:53:18 +02:00
}
2008-05-28 00:30:52 +02:00
print_fiche_titre ( $titre , $linkback , 'setup' );
2006-08-12 19:53:18 +02:00
2008-05-28 00:30:52 +02:00
if ( empty ( $_GET [ " id " ]))
{
2011-01-23 22:24:47 +01:00
print $langs -> trans ( " DictionnaryDesc " );
print " " . $langs -> trans ( " OnlyActiveElementsAreShown " ) . " <br> \n " ;
2008-05-28 00:30:52 +02:00
}
2009-05-06 15:39:43 +02:00
print " <br> \n " ;
/*
* Confirmation de la suppression de la ligne
*/
if ( $_GET [ 'action' ] == 'delete' )
{
2011-05-29 12:57:38 +02:00
$ret = $html -> form_confirm ( $_SERVER [ " PHP_SELF " ] . '?' . ( $page ? 'page=' . $page . '&' : '' ) . 'sortfield=' . $sortfield . '&sortorder=' . $sortorder . '&rowid=' . $_GET [ " rowid " ] . '&code=' . $_GET [ " code " ] . '&id=' . $_GET [ " id " ], $langs -> trans ( 'DeleteLine' ), $langs -> trans ( 'ConfirmDeleteLine' ), 'confirm_delete' , '' , 0 , 1 );
2011-01-23 22:24:47 +01:00
if ( $ret == 'html' ) print '<br>' ;
2009-05-06 15:39:43 +02:00
}
2005-04-28 02:26:34 +02:00
2004-10-31 14:00:04 +01:00
/*
2011-05-29 12:57:38 +02:00
* Show a dictionnary
2004-10-31 14:00:04 +01:00
*/
2004-06-09 20:37:17 +02:00
if ( $_GET [ " id " ])
2004-02-16 13:22:32 +01:00
{
2011-01-23 22:24:47 +01:00
if ( $msg )
{
print $msg . '<br>' ;
}
// Complete requete recherche valeurs avec critere de tri
$sql = $tabsql [ $_GET [ " id " ]];
if ( $_GET [ " 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 [ $_GET [ " id " ]] = preg_replace ( '/' . $_GET [ " sortfield " ] . ' ' . $_GET [ " sortorder " ] . ',/i' , '' , $tabsqlsort [ $_GET [ " id " ]]);
$tabsqlsort [ $_GET [ " id " ]] = preg_replace ( '/' . $_GET [ " sortfield " ] . ',/i' , '' , $tabsqlsort [ $_GET [ " id " ]]);
}
else {
$sql .= " ORDER BY " ;
}
$sql .= $tabsqlsort [ $_GET [ " id " ]];
2011-05-29 12:57:38 +02:00
$sql .= $db -> plimit ( $listlimit + 1 , $offset );
2011-01-23 22:24:47 +01:00
//print $sql;
$fieldlist = explode ( ',' , $tabfield [ $_GET [ " id " ]]);
print '<form action="dict.php" 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 [ $_GET [ " id " ]])
{
$alabelisused = 0 ;
$var = false ;
$fieldlist = explode ( ',' , $tabfield [ $_GET [ " id " ]]);
// print '<table class="noborder" width="100%">';
// 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
if ( $fieldlist [ $field ] == 'source' ) { $valuetoshow = $langs -> trans ( " Contact " ); }
if ( $fieldlist [ $field ] == 'price' ) { $valuetoshow = $langs -> trans ( " PriceUHT " ); }
2010-12-23 02:53:51 +01:00
if ( $fieldlist [ $field ] == 'taux' ) { $valuetoshow = $langs -> trans ( " Rate " ); }
2011-01-23 22:24:47 +01:00
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 = '' ; }
2011-09-21 18:40:52 +02:00
if ( $fieldlist [ $field ] == 'accountancy_code' ){ $valuetoshow = $langs -> trans ( " AccountancyCode " ); }
2011-01-23 22:24:47 +01:00
if ( $valuetoshow != '' )
{
print '<td>' ;
print $valuetoshow ;
print '</td>' ;
}
if ( $fieldlist [ $field ] == 'libelle' || $fieldlist [ $field ] == 'label' ) $alabelisused = 1 ;
}
print '<td colspan="3">' ;
print '<input type="hidden" name="id" value="' . $_GET [ " 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 ( $_POST [ " actionadd " ])
{
foreach ( $fieldlist as $key => $val )
{
if ( ! empty ( $_POST [ $val ])) $obj -> $val = $_POST [ $val ];
}
}
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 )
{
2011-05-29 12:57:38 +02:00
// There is several pages
if ( $num > $listlimit )
{
2011-09-14 23:50:17 +02:00
print '<tr class="none"><td align="right" colspan="' . ( 3 + count ( $fieldlist )) . '">' ;
2011-05-29 12:57:38 +02:00
print_fleche_navigation ( $page , $_SERVER [ " PHP_SELF " ], '&id=' . GETPOST ( 'id' ),( $num > $listlimit ), $langs -> trans ( " Page " ) . ' ' . ( $page + 1 ));
print '</td></tr>' ;
}
// Title of lines
2011-01-23 22:24:47 +01:00
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
if ( $fieldlist [ $field ] == 'source' ) { $valuetoshow = $langs -> trans ( " Contact " ); }
if ( $fieldlist [ $field ] == 'price' ) { $valuetoshow = $langs -> trans ( " PriceUHT " ); }
2010-12-23 02:53:51 +01:00
if ( $fieldlist [ $field ] == 'taux' ) { $valuetoshow = $langs -> trans ( " Rate " ); }
2011-01-23 22:24:47 +01:00
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 ; }
2011-09-21 18:40:52 +02:00
if ( $fieldlist [ $field ] == 'accountancy_code' ){ $valuetoshow = $langs -> trans ( " AccountancyCode " ); }
2011-01-23 22:24:47 +01:00
// Affiche nom du champ
if ( $showfield )
{
2011-05-29 12:57:38 +02:00
print_liste_field_titre ( $valuetoshow , " dict.php " , $fieldlist [ $field ],( $page ? 'page=' . $page . '&' : '' ) . '&id=' . GETPOST ( " id " ), " " , " " , $sortfield , $sortorder );
2011-01-23 22:24:47 +01:00
}
}
2011-05-29 12:57:38 +02:00
print_liste_field_titre ( $langs -> trans ( " Status " ), " dict.php " , " active " ,( $page ? 'page=' . $page . '&' : '' ) . '&id=' . GETPOST ( " id " ), " " , 'align="center"' , $sortfield , $sortorder );
2011-01-23 22:24:47 +01:00
print '<td colspan="2" class="liste_titre"> </td>' ;
print '</tr>' ;
// Lines with values
while ( $i < $num )
{
$obj = $db -> fetch_object ( $resql );
$var =! $var ;
//print_r($obj);
2011-05-29 12:57:38 +02:00
print " <tr " . $bc [ $var ] . " > " ;
2011-01-23 22:24:47 +01:00
if ( $_GET [ " action " ] == 'modify' && ( $_GET [ " rowid " ] == ( $obj -> rowid ? $obj -> rowid : $obj -> code )))
{
print '<form action="dict.php" method="post">' ;
print '<input type="hidden" name="token" value="' . $_SESSION [ 'newtoken' ] . '">' ;
2011-05-29 12:57:38 +02:00
print '<input type="hidden" name="id" value="' . GETPOST ( " id " ) . '">' ;
print '<input type="hidden" name="page" value="' . $page . '">' ;
2011-01-23 22:24:47 +01:00
print '<input type="hidden" name="rowid" value="' . $_GET [ " rowid " ] . '">' ;
fieldList ( $fieldlist , $obj );
print '<td colspan="3" align="right"><a name="' . ( $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
{
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' ) {
$valuetoshow = price ( $valuetoshow );
}
else if ( $fieldlist [ $field ] == 'price' ) {
$valuetoshow = price ( $valuetoshow );
}
2010-08-24 11:39:17 +02:00
else if ( $fieldlist [ $field ] == 'libelle_facture' ) {
$valuetoshow = nl2br ( $valuetoshow );
}
2011-01-23 22:24:47 +01:00
else if ( $fieldlist [ $field ] == 'libelle' && $tabname [ $_GET [ " id " ]] == 'llx_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 ] == 'region_id' || $fieldlist [ $field ] == 'pays_id' ) {
$showfield = 0 ;
}
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 ( $obj -> type && $obj -> type == 'system' ) $iserasable = 0 ;
if ( $iserasable ) {
2011-05-29 12:57:38 +02:00
print '<a href="' . $_SERVER [ " PHP_SELF " ] . '?' . ( $page ? 'page=' . $page . '&' : '' ) . 'sortfield=' . $sortfield . '&sortorder=' . $sortorder . '&rowid=' . ( $obj -> rowid ? $obj -> rowid : $obj -> code ) . '&code=' . $obj -> code . '&id=' . $_GET [ " id " ] . '&action=' . $acts [ $obj -> active ] . '">' . $actl [ $obj -> active ] . '</a>' ;
2011-01-23 22:24:47 +01:00
} else {
print $langs -> trans ( " AlwaysActive " );
}
print " </td> " ;
// Modify link
if ( $iserasable ) {
2011-05-29 12:57:38 +02:00
print '<td align="center"><a href="' . $_SERVER [ " PHP_SELF " ] . '?' . ( $page ? 'page=' . $page . '&' : '' ) . 'sortfield=' . $sortfield . '&sortorder=' . $sortorder . '&rowid=' . ( $obj -> rowid ? $obj -> rowid : $obj -> code ) . '&code=' . $obj -> code . '&id=' . $_GET [ " id " ] . '&action=modify#' . ( $obj -> rowid ? $obj -> rowid : $obj -> code ) . '">' . img_edit () . '</a></td>' ;
2011-01-23 22:24:47 +01:00
} else {
print '<td> </td>' ;
}
// Delete link
if ( $iserasable ) {
2011-05-29 12:57:38 +02:00
print '<td align="center"><a href="' . $_SERVER [ " PHP_SELF " ] . '?' . ( $page ? 'page=' . $page . '&' : '' ) . 'sortfield=' . $sortfield . '&sortorder=' . $sortorder . '&rowid=' . ( $obj -> rowid ? $obj -> rowid : $obj -> code ) . '&code=' . $obj -> code . '&id=' . $_GET [ " id " ] . '&action=delete">' . img_delete () . '</a></td>' ;
2011-01-23 22:24:47 +01:00
} else {
print '<td> </td>' ;
}
print " </tr> \n " ;
}
$i ++ ;
}
}
}
else {
dol_print_error ( $db );
}
print '</table>' ;
print '</form>' ;
2004-02-16 13:22:32 +01:00
}
2004-06-09 20:37:17 +02:00
else
{
2011-01-23 22:24:47 +01:00
/*
* Show list of dictionnary to show
*/
$var = true ;
$lastlineisempty = false ;
print '<table class="noborder" width="100%">' ;
print '<tr class="liste_titre">' ;
//print '<td>'.$langs->trans("Module").'</td>';
print '<td colspan="2">' . $langs -> trans ( " Dictionnary " ) . '</td>' ;
print '<td>' . $langs -> trans ( " Table " ) . '</td>' ;
print '</tr>' ;
foreach ( $taborder as $i )
{
if ( $tabname [ $i ] && empty ( $tabcond [ $i ])) continue ;
if ( $i )
{
$var =! $var ;
$value = $tabname [ $i ];
print '<tr ' . $bc [ $var ] . '><td width="30%">' ;
2010-08-23 22:32:11 +02:00
if ( ! empty ( $tabcond [ $i ]))
{
2011-01-23 22:24:47 +01:00
print '<a href="dict.php?id=' . $i . '">' . $langs -> trans ( $tablib [ $i ]) . '</a>' ;
2010-08-23 22:32:11 +02:00
}
else
{
2011-01-23 22:24:47 +01:00
print $langs -> trans ( $tablib [ $i ]);
2010-08-23 22:32:11 +02:00
}
2011-01-23 22:24:47 +01:00
print '</td>' ;
2010-08-23 22:32:11 +02:00
print '<td>' ;
/* if ( empty ( $tabcond [ $i ]))
2011-01-23 22:24:47 +01:00
{
print info_admin ( $langs -> trans ( " DictionnaryDisabledSinceNoModuleNeedIt " ), 1 );
} */
2010-08-23 22:32:11 +02:00
print '</td>' ;
2011-01-23 22:24:47 +01:00
print '<td>' . $tabname [ $i ] . '</td></tr>' ;
$lastlineisempty = false ;
}
else
{
if ( ! $lastlineisempty )
{
$var =! $var ;
print '<tr ' . $bc [ $var ] . '><td width="30%"> </td><td> </td><td> </td></tr>' ;
$lastlineisempty = true ;
}
}
}
print '</table>' ;
2004-06-09 20:37:17 +02:00
}
print '<br>' ;
$db -> close ();
2011-08-27 16:24:16 +02:00
llxFooter ();
2007-07-23 20:07:27 +02:00
2009-07-04 00:52:49 +02:00
2007-07-23 20:07:27 +02:00
/**
2011-09-14 23:50:17 +02:00
* Show field
*
* @ param array $fieldlist Array of fields
* @ param Object $obj If we show a particular record , obj is filled with record fields
2011-09-21 18:40:52 +02:00
* @ return void
2009-05-06 15:39:43 +02:00
*/
2007-07-24 12:35:22 +02:00
function fieldList ( $fieldlist , $obj = '' )
2007-07-23 20:07:27 +02:00
{
2011-01-23 22:24:47 +01:00
global $conf , $langs , $db ;
global $region_id ;
2011-05-03 11:26:48 +02:00
global $elementList , $sourceList ;
2011-01-23 22:24:47 +01:00
$html = new Form ( $db );
$formadmin = new FormAdmin ( $db );
$formcompany = new FormCompany ( $db );
foreach ( $fieldlist as $field => $value )
{
2011-04-21 20:23:05 +02:00
2011-01-23 22:24:47 +01:00
if ( $fieldlist [ $field ] == 'pays' ) {
if ( in_array ( 'region_id' , $fieldlist )) { print '<td> </td>' ; continue ; } // For region page, we do not show the country input
print '<td>' ;
$html -> select_pays ( $obj -> pays , 'pays' );
print '</td>' ;
}
elseif ( $fieldlist [ $field ] == 'pays_id' ) {
$pays_id = ( ! empty ( $obj -> $fieldlist [ $field ])) ? $obj -> $fieldlist [ $field ] : 0 ;
print '<input type="hidden" name="' . $fieldlist [ $field ] . '" value="' . $pays_id . '">' ;
}
elseif ( $fieldlist [ $field ] == 'region' ) {
print '<td>' ;
$formcompany -> select_region ( $region_id , 'region' );
print '</td>' ;
}
elseif ( $fieldlist [ $field ] == 'region_id' ) {
$region_id = $obj -> $fieldlist [ $field ] ? $obj -> $fieldlist [ $field ] : 0 ;
print '<input type="hidden" name="' . $fieldlist [ $field ] . '" value="' . $region_id . '">' ;
}
elseif ( $fieldlist [ $field ] == 'lang' ) {
print '<td>' ;
print $formadmin -> select_language ( $conf -> global -> MAIN_LANG_DEFAULT , 'lang' );
print '</td>' ;
}
// Le type de l'element (pour les type de contact).'
elseif ( $fieldlist [ $field ] == 'element' )
{
print '<td>' ;
print $html -> selectarray ( 'element' , $elementList , $obj -> $fieldlist [ $field ]);
print '</td>' ;
}
// La source de l'element (pour les type de contact).'
elseif ( $fieldlist [ $field ] == 'source' )
{
print '<td>' ;
2011-05-03 11:26:48 +02:00
print $html -> selectarray ( 'source' , $sourceList , $obj -> $fieldlist [ $field ]);
2011-01-23 22:24:47 +01:00
print '</td>' ;
}
elseif ( $fieldlist [ $field ] == 'type' && $tabname [ $_GET [ " id " ]] == MAIN_DB_PREFIX . " c_actioncomm " )
{
print '<td>' ;
print 'user<input type="hidden" name="type" value="user">' ;
print '</td>' ;
}
elseif ( $fieldlist [ $field ] == 'recuperableonly' || $fieldlist [ $field ] == 'fdm' ) {
print '<td>' ;
print $html -> selectyesno ( $fieldlist [ $field ], $obj -> $fieldlist [ $field ], 1 );
print '</td>' ;
}
elseif ( $fieldlist [ $field ] == 'nbjour' || $fieldlist [ $field ] == 'decalage' || $fieldlist [ $field ] == 'taux' ) {
print '<td><input type="text" class="flat" value="' . $obj -> $fieldlist [ $field ] . '" size="3" name="' . $fieldlist [ $field ] . '"></td>' ;
}
2010-08-24 11:39:17 +02:00
elseif ( $fieldlist [ $field ] == 'libelle_facture' ) {
print '<td><textarea cols="30" rows="' . ROWS_2 . '" class="flat" name="' . $fieldlist [ $field ] . '">' . $obj -> $fieldlist [ $field ] . '</textarea></td>' ;
}
2011-01-23 22:24:47 +01:00
elseif ( $fieldlist [ $field ] == 'price' ) {
print '<td><input type="text" class="flat" value="' . price ( $obj -> $fieldlist [ $field ]) . '" size="8" name="' . $fieldlist [ $field ] . '"></td>' ;
}
elseif ( $fieldlist [ $field ] == 'code' ) {
print '<td><input type="text" class="flat" value="' . $obj -> $fieldlist [ $field ] . '" size="10" name="' . $fieldlist [ $field ] . '"></td>' ;
}
elseif ( $fieldlist [ $field ] == 'unit' ) {
print '<td>' ;
print $html -> selectarray ( 'unit' , array ( 'mm' , 'cm' , 'point' , 'inch' ), $obj -> $fieldlist [ $field ], 0 , 0 , 1 );
print '</td>' ;
}
else
{
print '<td>' ;
print '<input type="text" ' . ( $fieldlist [ $field ] == 'libelle' ? 'size="32" ' : '' ) . ' class="flat" value="' . $obj -> $fieldlist [ $field ] . '" name="' . $fieldlist [ $field ] . '">' ;
print '</td>' ;
}
}
2007-07-23 20:07:27 +02:00
}
2011-06-24 19:32:28 +02:00
?>