50    $this->family = 
"technic";
 
   51    $this->module_position = 
'25';
 
   53    $this->
name = preg_replace(
'/^mod/i', 
'', get_class($this));
 
   54    $this->
description = 
"Gestion des categories (produits, clients, fournisseurs...)";
 
   57    $this->version = 
'dolibarr';
 
   59    $this->const_name = 
'MAIN_MODULE_'.strtoupper($this->
name);
 
   60    $this->picto = 
'category';
 
   63    $this->dirs = array();
 
   66    $this->depends = array();
 
   69    $this->config_page_url = array(
'categorie.php@categories');
 
   70    $this->langfiles = array(
"products", 
"companies", 
"categories", 
"members", 
"stocks", 
"website");
 
   73    $this->
const = array();
 
   75    $this->
const[$r][0] = 
"CATEGORIE_RECURSIV_ADD";
 
   76    $this->
const[$r][1] = 
"yesno";
 
   77    $this->
const[$r][2] = 
"0";
 
   78    $this->
const[$r][3] = 
'Affect parent categories';
 
   79    $this->
const[$r][4] = 0;
 
   83    $this->boxes = array();
 
   86    $this->rights = array();
 
   87    $this->rights_class = 
'categorie';
 
   91    $this->rights[$r][0] = 241; 
 
   92    $this->rights[$r][1] = 
'Lire les categories'; 
 
   93    $this->rights[$r][2] = 
'r'; 
 
   94    $this->rights[$r][3] = 0; 
 
   95    $this->rights[$r][4] = 
'lire';
 
   98    $this->rights[$r][0] = 242; 
 
   99    $this->rights[$r][1] = 
'Creer/modifier les categories'; 
 
  100    $this->rights[$r][2] = 
'w'; 
 
  101    $this->rights[$r][3] = 0; 
 
  102    $this->rights[$r][4] = 
'creer';
 
  105    $this->rights[$r][0] = 243; 
 
  106    $this->rights[$r][1] = 
'Supprimer les categories'; 
 
  107    $this->rights[$r][2] = 
'd'; 
 
  108    $this->rights[$r][3] = 0; 
 
  109    $this->rights[$r][4] = 
'supprimer';
 
  124    $this->export_code[$r] = $this->rights_class.
'_list';
 
  125    $this->export_label[$r] = 
'CatListAll';
 
  126    $this->export_icon[$r] = $this->picto;
 
  127    $this->export_enabled[$r] = 
'true';
 
  128    $this->export_permission[$r] = array(array(
"categorie", 
"lire"));
 
  131    if (isModEnabled(
"product") || isModEnabled(
"service")) {
 
  132      $typeexample .= ($typeexample ? 
" / " : 
"").
"0=Product-Service";
 
  134    if (isModEnabled(
"supplier_order") || isModEnabled(
"supplier_invoice")) {
 
  135      $typeexample .= ($typeexample ? 
"/" : 
"").
"1=Supplier";
 
  137    if (isModEnabled(
"societe")) {
 
  138      $typeexample .= ($typeexample ? 
" / " : 
"").
"2=Customer-Prospect";
 
  140    if (isModEnabled(
'member')) {
 
  141      $typeexample .= ($typeexample ? 
" / " : 
"").
"3=Member";
 
  143    if (isModEnabled(
"societe")) {
 
  144      $typeexample .= ($typeexample ? 
" / " : 
"").
"4=Contact";
 
  146    if (isModEnabled(
'bank')) {
 
  147      $typeexample .= ($typeexample ? 
" / " : 
"").
"5=Bank account";
 
  149    if (isModEnabled(
'project')) {
 
  150      $typeexample .= ($typeexample ? 
" / " : 
"").
"6=Project";
 
  152    if (isModEnabled(
'user')) {
 
  153      $typeexample .= ($typeexample ? 
" / " : 
"").
"7=User";
 
  155    if (isModEnabled(
'bank')) {
 
  156      $typeexample .= ($typeexample ? 
" / " : 
"").
"8=Bank line";
 
  158    if (isModEnabled(
'stock')) {
 
  159      $typeexample .= ($typeexample ? 
" / " : 
"").
"9=Warehouse";
 
  161    if (isModEnabled(
'agenda')) {
 
  162      $typeexample .= ($typeexample ? 
" / " : 
"").
"10=Agenda event";
 
  164    if (isModEnabled(
'website')) {
 
  165      $typeexample .= ($typeexample ? 
" / " : 
"").
"11=Website page";
 
  169    $this->export_fields_array[$r] = array(
'cat.rowid' => 
"CategId", 
'cat.label' => 
"Label", 
'cat.type' => 
"Type", 
'cat.description' => 
"Description", 
'cat.fk_parent' => 
"ParentCategoryID", 
'pcat.label' => 
"ParentCategoryLabel", 
'cat.color' => 
"Color", 
'cat.date_creation' => 
"DateCreation", 
'cat.tms' => 
"DateLastModification");
 
  170    $this->export_TypeFields_array[$r] = array(
'cat.rowid' => 
'Numeric', 
'cat.label' => 
"Text", 
'cat.type' => 
"Numeric", 
'cat.description' => 
"Text", 
'cat.fk_parent' => 
'Numeric', 
'pcat.label' => 
'Text');
 
  171    $this->export_entities_array[$r] = array(); 
 
  172    $this->export_help_array[$r] = array(
'cat.type' => $typeexample);
 
  174    $this->export_sql_start[$r] = 
'SELECT DISTINCT ';
 
  175    $this->export_sql_end[$r]  = 
' FROM '.MAIN_DB_PREFIX.
'categorie as cat';
 
  176    $this->export_sql_end[$r] .= 
' LEFT JOIN '.MAIN_DB_PREFIX.
'categorie as pcat ON pcat.rowid = cat.fk_parent';
 
  177    $this->export_sql_end[$r] .= 
' WHERE cat.entity IN ('.getEntity(
'category').
')';
 
  181    $this->export_code[$r] = $this->rights_class.
'_0_'.Categorie::$MAP_ID_TO_CODE[0];
 
  182    $this->export_label[$r] = 
'CatProdList';
 
  183    $this->export_icon[$r] = $this->picto;
 
  184    $this->export_enabled[$r] = 
'isModEnabled("product") || isModEnabled("service")';
 
  185    if (isModEnabled(
'product')) {
 
  186      $this->export_permission[$r] = array(array(
"categorie", 
"lire"), array(
"produit", 
"export"));
 
  187    } elseif (isModEnabled(
'service')) {
 
  188      $this->export_permission[$r] = array(array(
"categorie", 
"lire"), array(
"service", 
"export"));
 
  190    $this->export_fields_array[$r] = array(
'cat.rowid' => 
"CategId", 
'cat.label' => 
"Label", 
'cat.description' => 
"Description", 
'cat.fk_parent' => 
"ParentCategoryID", 
'pcat.label' => 
"ParentCategoryLabel", 
'cat.color' => 
"Color", 
'cat.date_creation' => 
"DateCreation", 
'cat.tms' => 
"DateLastModification", 
'p.rowid' => 
'ProductId', 
'p.ref' => 
'Ref', 
'p.label' => 
'Label');
 
  191    $this->export_TypeFields_array[$r] = array(
'cat.rowid' => 
'Numeric', 
'cat.label' => 
"Text", 
'cat.description' => 
"Text", 
'cat.fk_parent' => 
'Numeric', 
'pcat.label' => 
'Text', 
'p.rowid' => 
'Numeric', 
'p.ref' => 
'Text', 
'p.label' => 
'Text');
 
  192    $this->export_entities_array[$r] = array(
'p.rowid' => 
'product', 
'p.ref' => 
'product', 
'p.label' => 
'product'); 
 
  194    $keyforselect = 
'product';
 
  195    $keyforelement = 
'product';
 
  196    $keyforaliasextra = 
'extra';
 
  197    include DOL_DOCUMENT_ROOT.
'/core/extrafieldsinexport.inc.php';
 
  199    $this->export_sql_start[$r] = 
'SELECT DISTINCT ';
 
  200    $this->export_sql_end[$r]  = 
' FROM '.MAIN_DB_PREFIX.
'categorie as cat';
 
  201    $this->export_sql_end[$r] .= 
' LEFT JOIN '.MAIN_DB_PREFIX.
'categorie as pcat ON pcat.rowid = cat.fk_parent';
 
  202    $this->export_sql_end[$r] .= 
' INNER JOIN '.MAIN_DB_PREFIX.
'categorie_product as cp ON cp.fk_categorie = cat.rowid';
 
  203    $this->export_sql_end[$r] .= 
' INNER JOIN '.MAIN_DB_PREFIX.
'product as p ON p.rowid = cp.fk_product';
 
  204    $this->export_sql_end[$r] .= 
' LEFT JOIN '.MAIN_DB_PREFIX.
'product_extrafields as extra ON extra.fk_object = p.rowid';
 
  205    $this->export_sql_end[$r] .= 
' WHERE cat.entity IN ('.getEntity(
'category').
')';
 
  206    $this->export_sql_end[$r] .= 
' AND cat.type = 0';
 
  210    $this->export_code[$r] = $this->rights_class.
'_1_'.Categorie::$MAP_ID_TO_CODE[1];
 
  211    $this->export_label[$r] = 
'CatSupList';
 
  212    $this->export_icon[$r] = $this->picto;
 
  213    $this->export_enabled[$r] = 
'isModEnabled("supplier_order") || isModEnabled("supplier_invoice")';
 
  214    $this->export_permission[$r] = array(array(
"categorie", 
"lire"), array(
"fournisseur", 
"lire"));
 
  215    $this->export_fields_array[$r] = array(
 
  216      'cat.rowid' => 
"CategId", 
'cat.label' => 
"Label", 
'cat.description' => 
"Description", 
'cat.fk_parent' => 
"ParentCategoryID", 
'pcat.label' => 
"ParentCategoryLabel",
 
  217      'cat.color' => 
"Color", 
'cat.date_creation' => 
"DateCreation", 
'cat.tms' => 
"DateLastModification",
 
  218      's.rowid' => 
'IdThirdParty', 
's.nom' => 
'Name', 
's.prefix_comm' => 
"Prefix", 
's.fournisseur' => 
"Supplier", 
's.datec' => 
"DateCreation", 
's.tms' => 
"DateLastModification", 
's.code_fournisseur' => 
"SupplierCode",
 
  219      's.address' => 
"Address", 
's.zip' => 
"Zip", 
's.town' => 
"Town", 
'c.label' => 
"Country", 
'c.code' => 
"CountryCode",
 
  220      's.phone' => 
"Phone", 
's.fax' => 
"Fax", 
's.url' => 
"Url", 
's.email' => 
"Email",
 
  221      's.siret' => 
"ProfId1", 
's.siren' => 
"ProfId2", 
's.ape' => 
"ProfId3", 
's.idprof4' => 
"ProfId4", 
's.tva_intra' => 
"VATIntraShort", 
's.capital' => 
"Capital", 
's.note_public' => 
"NotePublic",
 
  222      't.libelle' => 
'ThirdPartyType' 
  224    $this->export_TypeFields_array[$r] = array(
 
  225      'cat.rowid' => 
'Numeric', 
'cat.label' => 
"Text", 
'cat.description' => 
"Text", 
'cat.fk_parent' => 
'Numeric', 
'pcat.label' => 
'Text',
 
  226      's.rowid' => 
'List:societe:nom', 
's.nom' => 
'Text', 
's.prefix_comm' => 
"Text", 
's.fournisseur' => 
"Text", 
's.datec' => 
"Date", 
's.tms' => 
"Date", 
's.code_fournisseur' => 
"Text",
 
  227      's.address' => 
"Text", 
's.zip' => 
"Text", 
's.town' => 
"Text", 
'c.label' => 
"List:c_country:label:label", 
'c.code' => 
"Text",
 
  228      's.phone' => 
"Text", 
's.fax' => 
"Text", 
's.url' => 
"Text", 
's.email' => 
"Text",
 
  229      's.siret' => 
"Text", 
's.siren' => 
"Text", 
's.ape' => 
"Text", 
's.idprof4' => 
"Text", 
's.tva_intra' => 
"Text", 
's.capital' => 
"Numeric", 
's.note_public' => 
"Text",
 
  230      't.libelle' => 
'List:c_typent:libelle:code' 
  232    $this->export_entities_array[$r] = array(
 
  233      's.rowid' => 
'company', 
's.nom' => 
'company', 
's.prefix_comm' => 
"company", 
's.fournisseur' => 
"company", 
's.datec' => 
"company", 
's.tms' => 
"company", 
's.code_fournisseur' => 
"company",
 
  234      's.address' => 
"company", 
's.zip' => 
"company", 
's.town' => 
"company", 
'c.label' => 
"company", 
'c.code' => 
"company",
 
  235      's.phone' => 
"company", 
's.fax' => 
"company", 
's.url' => 
"company", 
's.email' => 
"company",
 
  236      's.siret' => 
"company", 
's.siren' => 
"company", 
's.ape' => 
"company", 
's.idprof4' => 
"company", 
's.tva_intra' => 
"company", 
's.capital' => 
"company", 
's.note_public' => 
"company",
 
  237      't.libelle' => 
'company' 
  240    $keyforselect = 
'societe';
 
  241    $keyforelement = 
'company';
 
  242    $keyforaliasextra = 
'extra';
 
  243    include DOL_DOCUMENT_ROOT.
'/core/extrafieldsinexport.inc.php';
 
  245    $this->export_sql_start[$r] = 
'SELECT DISTINCT ';
 
  246    $this->export_sql_end[$r]  = 
' FROM '.MAIN_DB_PREFIX.
'categorie as cat';
 
  247    $this->export_sql_end[$r] .= 
' LEFT JOIN '.MAIN_DB_PREFIX.
'categorie as pcat ON pcat.rowid = cat.fk_parent';
 
  248    $this->export_sql_end[$r] .= 
' INNER JOIN '.MAIN_DB_PREFIX.
'categorie_fournisseur as cf ON cf.fk_categorie = cat.rowid';
 
  249    $this->export_sql_end[$r] .= 
' INNER JOIN '.MAIN_DB_PREFIX.
'societe as s ON s.rowid = cf.fk_soc';
 
  250    $this->export_sql_end[$r] .= 
' LEFT JOIN '.MAIN_DB_PREFIX.
'societe_extrafields as extra ON s.rowid = extra.fk_object';
 
  251    $this->export_sql_end[$r] .= 
' LEFT JOIN '.MAIN_DB_PREFIX.
'c_country as c ON s.fk_pays = c.rowid';
 
  252    $this->export_sql_end[$r] .= 
' LEFT JOIN '.MAIN_DB_PREFIX.
'c_typent as t ON s.fk_typent = t.id';
 
  253    $this->export_sql_end[$r] .= 
' WHERE cat.entity IN ('.getEntity(
'category').
')';
 
  254    $this->export_sql_end[$r] .= 
' AND cat.type = 1';
 
  258    $this->export_code[$r] = $this->rights_class.
'_2_'.Categorie::$MAP_ID_TO_CODE[2];
 
  259    $this->export_label[$r] = 
'CatCusList';
 
  260    $this->export_icon[$r] = $this->picto;
 
  261    $this->export_enabled[$r] = 
'isModEnabled("societe")';
 
  262    $this->export_permission[$r] = array(array(
"categorie", 
"lire"), array(
"societe", 
"export"));
 
  263    $this->export_fields_array[$r] = array(
 
  264      'cat.rowid' => 
"CategId", 
'cat.label' => 
"Label", 
'cat.description' => 
"Description", 
'cat.fk_parent' => 
"ParentCategoryID", 
'pcat.label' => 
"ParentCategoryLabel",
 
  265      'cat.color' => 
"Color", 
'cat.date_creation' => 
"DateCreation", 
'cat.tms' => 
"DateLastModification",
 
  266      's.rowid' => 
'IdThirdParty', 
's.nom' => 
'Name', 
's.prefix_comm' => 
"Prefix", 
's.client' => 
"Customer", 
's.datec' => 
"DateCreation", 
's.tms' => 
"DateLastModification", 
's.code_client' => 
"CustomerCode",
 
  267      's.address' => 
"Address", 
's.zip' => 
"Zip", 
's.town' => 
"Town", 
'c.label' => 
"Country", 
'c.code' => 
"CountryCode",
 
  268      's.phone' => 
"Phone", 
's.fax' => 
"Fax", 
's.url' => 
"Url", 
's.email' => 
"Email",
 
  269      's.siret' => 
"ProfId1", 
's.siren' => 
"ProfId2", 
's.ape' => 
"ProfId3", 
's.idprof4' => 
"ProfId4", 
's.tva_intra' => 
"VATIntraShort", 
's.capital' => 
"Capital", 
's.note_public' => 
"NotePublic",
 
  270      't.libelle' => 
'ThirdPartyType', 
'pl.code' => 
'ProspectLevel', 
'st.code' => 
'ProspectStatus' 
  272    $this->export_TypeFields_array[$r] = array(
 
  273      'cat.rowid' => 
'Numeric', 
'cat.label' => 
"Text", 
'cat.description' => 
"Text", 
'cat.fk_parent' => 
'Numeric', 
'pcat.label' => 
'Text',
 
  274      's.rowid' => 
'List:societe:nom', 
's.nom' => 
'Text', 
's.prefix_comm' => 
"Text", 
's.client' => 
"Text", 
's.datec' => 
"Date", 
's.tms' => 
"Date", 
's.code_client' => 
"Text",
 
  275      's.address' => 
"Text", 
's.zip' => 
"Text", 
's.town' => 
"Text", 
'c.label' => 
"List:c_country:label:label", 
'c.code' => 
"Text",
 
  276      's.phone' => 
"Text", 
's.fax' => 
"Text", 
's.url' => 
"Text", 
's.email' => 
"Text",
 
  277      's.siret' => 
"Text", 
's.siren' => 
"Text", 
's.ape' => 
"Text", 
's.idprof4' => 
"Text", 
's.tva_intra' => 
"Text", 
's.capital' => 
"Numeric", 
's.note_public' => 
"Text",
 
  278      't.libelle' => 
'List:c_typent:libelle:code', 
'pl.code' => 
'List:c_prospectlevel:label:code', 
'st.code' => 
'List:c_stcomm:libelle:code' 
  280    $this->export_entities_array[$r] = array(
 
  281      's.rowid' => 
'company', 
's.nom' => 
'company', 
's.prefix_comm' => 
"company", 
's.client' => 
"company", 
's.datec' => 
"company", 
's.tms' => 
"company", 
's.code_client' => 
"company",
 
  282      's.address' => 
"company", 
's.zip' => 
"company", 
's.town' => 
"company", 
'c.label' => 
"company", 
'c.code' => 
"company",
 
  283      's.phone' => 
"company", 
's.fax' => 
"company", 
's.url' => 
"company", 
's.email' => 
"company",
 
  284      's.siret' => 
"company", 
's.siren' => 
"company", 
's.ape' => 
"company", 
's.idprof4' => 
"company", 
's.tva_intra' => 
"company", 
's.capital' => 
"company", 
's.note_public' => 
"company",
 
  285      't.libelle' => 
'company', 
'pl.code' => 
'company', 
'st.code' => 
'company' 
  288    $keyforselect = 
'societe';
 
  289    $keyforelement = 
'company';
 
  290    $keyforaliasextra = 
'extra';
 
  291    include DOL_DOCUMENT_ROOT.
'/core/extrafieldsinexport.inc.php';
 
  293    $this->export_sql_start[$r] = 
'SELECT DISTINCT ';
 
  294    $this->export_sql_end[$r]  = 
' FROM '.MAIN_DB_PREFIX.
'categorie as cat';
 
  295    $this->export_sql_end[$r] .= 
' LEFT JOIN '.MAIN_DB_PREFIX.
'categorie as pcat ON pcat.rowid = cat.fk_parent';
 
  296    $this->export_sql_end[$r] .= 
' INNER JOIN '.MAIN_DB_PREFIX.
'categorie_societe as cs ON cs.fk_categorie = cat.rowid';
 
  297    $this->export_sql_end[$r] .= 
' INNER JOIN '.MAIN_DB_PREFIX.
'societe as s ON s.rowid = cs.fk_soc';
 
  298    $this->export_sql_end[$r] .= 
' LEFT JOIN '.MAIN_DB_PREFIX.
'societe_extrafields as extra ON s.rowid = extra.fk_object';
 
  299    $this->export_sql_end[$r] .= 
' LEFT JOIN '.MAIN_DB_PREFIX.
'c_country as c ON s.fk_pays = c.rowid';
 
  300    $this->export_sql_end[$r] .= 
' LEFT JOIN '.MAIN_DB_PREFIX.
'c_typent as t ON s.fk_typent = t.id';
 
  301    $this->export_sql_end[$r] .= 
' LEFT JOIN '.MAIN_DB_PREFIX.
'c_prospectlevel as pl ON s.fk_prospectlevel = pl.code';
 
  302    $this->export_sql_end[$r] .= 
' LEFT JOIN '.MAIN_DB_PREFIX.
'c_stcomm as st ON s.fk_stcomm = st.id';
 
  303    $this->export_sql_end[$r] .= 
' WHERE cat.entity IN ('.getEntity(
'category').
')';
 
  304    $this->export_sql_end[$r] .= 
' AND cat.type = 2';
 
  308    $this->export_code[$r] = $this->rights_class.
'_3_'.Categorie::$MAP_ID_TO_CODE[3];
 
  309    $this->export_label[$r] = 
'CatMemberList';
 
  310    $this->export_icon[$r] = $this->picto;
 
  311    $this->export_enabled[$r] = 
'isModEnabled("member")';
 
  312    $this->export_permission[$r] = array(array(
"categorie", 
"lire"), array(
"adherent", 
"export"));
 
  313    $this->export_fields_array[$r] = array(
'cat.rowid' => 
"CategId", 
'cat.label' => 
"Label", 
'cat.description' => 
"Description", 
'cat.fk_parent' => 
"ParentCategoryID", 
'pcat.label' => 
"ParentCategoryLabel", 
'p.rowid' => 
'MemberId', 
'p.lastname' => 
'LastName', 
'p.firstname' => 
'Firstname');
 
  314    $this->export_TypeFields_array[$r] = array(
'cat.rowid' => 
"Numeric", 
'cat.label' => 
"Text", 
'cat.description' => 
"Text", 
'cat.fk_parent' => 
'Numeric', 
'pcat.label' => 
'Text', 
'p.lastname' => 
'Text', 
'p.firstname' => 
'Text');
 
  315    $this->export_entities_array[$r] = array(
'p.rowid' => 
'member', 
'p.lastname' => 
'member', 
'p.firstname' => 
'member'); 
 
  317    $keyforselect = 
'adherent';
 
  318    $keyforelement = 
'member';
 
  319    $keyforaliasextra = 
'extra';
 
  320    include DOL_DOCUMENT_ROOT.
'/core/extrafieldsinexport.inc.php';
 
  322    $this->export_sql_start[$r] = 
'SELECT DISTINCT ';
 
  323    $this->export_sql_end[$r]  = 
' FROM '.MAIN_DB_PREFIX.
'categorie as cat';
 
  324    $this->export_sql_end[$r] .= 
' LEFT JOIN '.MAIN_DB_PREFIX.
'categorie as pcat ON pcat.rowid = cat.fk_parent';
 
  325    $this->export_sql_end[$r] .= 
' INNER JOIN '.MAIN_DB_PREFIX.
'categorie_member as cm ON cm.fk_categorie = cat.rowid';
 
  326    $this->export_sql_end[$r] .= 
' INNER JOIN '.MAIN_DB_PREFIX.
'adherent as p ON p.rowid = cm.fk_member';
 
  327    $this->export_sql_end[$r] .= 
' LEFT JOIN '.MAIN_DB_PREFIX.
'adherent_extrafields as extra ON cat.rowid = extra.fk_object ';
 
  328    $this->export_sql_end[$r] .= 
' WHERE cat.entity IN ('.getEntity(
'category').
')';
 
  329    $this->export_sql_end[$r] .= 
' AND cat.type = 3';
 
  333    $this->export_code[$r] = $this->rights_class.
'_4_'.Categorie::$MAP_ID_TO_CODE[4];
 
  334    $this->export_label[$r] = 
'CatContactList';
 
  335    $this->export_icon[$r] = $this->picto;
 
  336    $this->export_enabled[$r] = 
'isModEnabled("societe")';
 
  337    $this->export_permission[$r] = array(array(
"categorie", 
"lire"), array(
"societe", 
"contact", 
"export"));
 
  338    $this->export_fields_array[$r] = array(
 
  339      'cat.rowid' => 
"CategId", 
'cat.label' => 
"Label", 
'cat.description' => 
"Description", 
'cat.fk_parent' => 
"ParentCategoryID", 
'pcat.label' => 
"ParentCategoryLabel",
 
  340      'cat.color' => 
"Color", 
'cat.date_creation' => 
"DateCreation", 
'cat.tms' => 
"DateLastModification",
 
  341      'p.rowid' => 
'ContactId', 
'civ.label' => 
'UserTitle', 
'p.lastname' => 
'LastName', 
'p.firstname' => 
'Firstname',
 
  342      'p.address' => 
'Address', 
'p.zip' => 
'Zip', 
'p.town' => 
'Town', 
'c.code' => 
'CountryCode', 
'c.label' => 
'Country',
 
  343      'p.birthday' => 
'DateOfBirth', 
'p.poste' => 
'PostOrFunction',
 
  344      'p.phone' => 
'Phone', 
'p.phone_perso' => 
'PhonePerso', 
'p.phone_mobile' => 
'PhoneMobile', 
'p.fax' => 
'Fax', 
'p.email' => 
'Email',
 
  345      'p.note_private' => 
'NotePrivate', 
'p.note_public' => 
'NotePublic', 
'p.statut' => 
'Status',
 
  346      's.nom' => 
"Name", 
's.client' => 
"Customer", 
's.fournisseur' => 
"Supplier", 
's.status' => 
"Status",
 
  347      's.address' => 
"Address", 
's.zip' => 
"Zip", 
's.town' => 
"Town",
 
  348      's.phone' => 
"Phone", 
's.fax' => 
"Fax", 
's.url' => 
"Url", 
's.email' => 
"Email" 
  350    $this->export_TypeFields_array[$r] = array(
 
  351      'cat.rowid' => 
'Numeric', 
'cat.label' => 
"Text", 
'cat.description' => 
"Text", 
'cat.fk_parent' => 
'Numeric', 
'pcat.label' => 
'Text',
 
  352      'civ.label' => 
'List:c_civility:label:label', 
'p.rowid' => 
'Numeric', 
'p.lastname' => 
'Text', 
'p.firstname' => 
'Text',
 
  353      'p.address' => 
'Text', 
'p.zip' => 
'Text', 
'p.town' => 
'Text', 
'c.code' => 
'Text', 
'c.label' => 
'List:c_country:label:label',
 
  354      'p.birthday' => 
'Date', 
'p.poste' => 
'Text',
 
  355      'p.phone' => 
'Text', 
'p.phone_perso' => 
'Text', 
'p.phone_mobile' => 
'Text', 
'p.fax' => 
'Text', 
'p.email' => 
'Text',
 
  356      'p.note_private' => 
'Text', 
'p.note_public' => 
'Text', 
'p.statut' => 
'Boolean',
 
  357      's.nom' => 
"Text", 
's.client' => 
"Boolean", 
's.fournisseur' => 
"Boolean", 
's.status' => 
"Boolean",
 
  358      's.address' => 
"Text", 
's.zip' => 
"Text", 
's.town' => 
"Text",
 
  359      's.phone' => 
"Text", 
's.fax' => 
"Text", 
's.url' => 
"Text", 
's.email' => 
"Text" 
  361    $this->export_entities_array[$r] = array(
 
  362      'p.rowid' => 
'contact', 
'civ.label' => 
'contact', 
'p.lastname' => 
'contact', 
'p.firstname' => 
'contact',
 
  363      'p.address' => 
'contact', 
'p.zip' => 
'contact', 
'p.town' => 
'contact', 
'c.code' => 
'contact', 
'c.label' => 
'contact',
 
  364      'p.birthday' => 
'contact', 
'p.poste' => 
'contact',
 
  365      'p.phone' => 
'contact', 
'p.phone_perso' => 
'contact', 
'p.phone_mobile' => 
'contact', 
'p.fax' => 
'contact', 
'p.email' => 
'contact',
 
  366      'p.note_private' => 
'contact', 
'p.note_public' => 
'contact', 
'p.statut' => 
'contact',
 
  367      's.nom' => 
"company", 
's.client' => 
"company", 
's.fournisseur' => 
"company", 
's.status' => 
"company",
 
  368      's.address' => 
"company", 
's.zip' => 
"company", 
's.town' => 
"company",
 
  369      's.phone' => 
"company", 
's.fax' => 
"company", 
's.url' => 
"company", 
's.email' => 
"company" 
  372    $keyforselect = 
'socpeople';
 
  373    $keyforelement = 
'contact';
 
  374    $keyforaliasextra = 
'extra';
 
  375    include DOL_DOCUMENT_ROOT.
'/core/extrafieldsinexport.inc.php';
 
  377    $this->export_sql_start[$r] = 
'SELECT DISTINCT ';
 
  378    $this->export_sql_end[$r]  = 
' FROM '.MAIN_DB_PREFIX.
'categorie as cat';
 
  379    $this->export_sql_end[$r] .= 
' LEFT JOIN '.MAIN_DB_PREFIX.
'categorie as pcat ON pcat.rowid = cat.fk_parent';
 
  380    $this->export_sql_end[$r] .= 
' INNER JOIN '.MAIN_DB_PREFIX.
'categorie_contact as cc ON cc.fk_categorie = cat.rowid';
 
  381    $this->export_sql_end[$r] .= 
' INNER JOIN '.MAIN_DB_PREFIX.
'socpeople as p ON p.rowid = cc.fk_socpeople';
 
  382    $this->export_sql_end[$r] .= 
' LEFT JOIN '.MAIN_DB_PREFIX.
'socpeople_extrafields as extra ON extra.fk_object = p.rowid';
 
  383    $this->export_sql_end[$r] .= 
' LEFT JOIN '.MAIN_DB_PREFIX.
'c_civility as civ ON civ.code = p.civility';
 
  384    $this->export_sql_end[$r] .= 
' LEFT JOIN '.MAIN_DB_PREFIX.
'c_country as c ON c.rowid = p.fk_pays';
 
  385    $this->export_sql_end[$r] .= 
' LEFT JOIN '.MAIN_DB_PREFIX.
'societe as s ON s.rowid = p.fk_soc';
 
  386    $this->export_sql_end[$r] .= 
' WHERE cat.entity IN ('.getEntity(
'category').
')';
 
  387    $this->export_sql_end[$r] .= 
' AND cat.type = 4';
 
  393    $this->export_code[$r] = $this->rights_class.
'_6_'.Categorie::$MAP_ID_TO_CODE[6];
 
  394    $this->export_label[$r] = 
'CatProjectsList';
 
  395    $this->export_icon[$r] = $this->picto;
 
  396    $this->export_enabled[$r] = 
"isModEnabled('project')";
 
  397    $this->export_permission[$r] = array(array(
"categorie", 
"lire"), array(
"projet", 
"export"));
 
  398    $this->export_fields_array[$r] = array(
'cat.rowid' => 
"CategId", 
'cat.label' => 
"Label", 
'cat.description' => 
"Description", 
'cat.fk_parent' => 
"ParentCategory", 
'pcat.label' => 
"ParentCategoryLabel", 
'cat.color' => 
"Color", 
'cat.date_creation' => 
"DateCreation", 
'cat.tms' => 
"DateLastModification", 
'p.rowid' => 
'ProjectId', 
'p.ref' => 
'Ref', 
's.rowid' => 
"IdThirdParty", 
's.nom' => 
"Name");
 
  399    $this->export_TypeFields_array[$r] = array(
'cat.rowid' => 
'Numeric', 
'cat.label' => 
"Text", 
'cat.description' => 
"Text", 
'cat.fk_parent' => 
'Numeric', 
'pcat.label' => 
'Text', 
'p.rowid' => 
'Numeric', 
'p.ref' => 
'Text', 
's.rowid' => 
"Numeric", 
's.nom' => 
"Text");
 
  400    $this->export_entities_array[$r] = array(
'p.rowid' => 
'project', 
'p.ref' => 
'project', 
's.rowid' => 
"company", 
's.nom' => 
"company"); 
 
  402    $keyforselect = 
'projet';
 
  403    $keyforelement = 
'project';
 
  404    $keyforaliasextra = 
'extra';
 
  405    include DOL_DOCUMENT_ROOT.
'/core/extrafieldsinexport.inc.php';
 
  407    $this->export_sql_start[$r] = 
'SELECT DISTINCT ';
 
  408    $this->export_sql_end[$r]  = 
' FROM '.MAIN_DB_PREFIX.
'categorie as cat';
 
  409    $this->export_sql_end[$r] .= 
' LEFT JOIN '.MAIN_DB_PREFIX.
'categorie as pcat ON pcat.rowid = cat.fk_parent';
 
  410    $this->export_sql_end[$r] .= 
' INNER JOIN '.MAIN_DB_PREFIX.
'categorie_project as cp ON cp.fk_categorie = cat.rowid';
 
  411    $this->export_sql_end[$r] .= 
' INNER JOIN '.MAIN_DB_PREFIX.
'projet as p ON p.rowid = cp.fk_project';
 
  412    $this->export_sql_end[$r] .= 
' LEFT JOIN '.MAIN_DB_PREFIX.
'projet_extrafields as extra ON extra.fk_object = p.rowid';
 
  413    $this->export_sql_end[$r] .= 
' LEFT JOIN '.MAIN_DB_PREFIX.
'societe as s ON s.rowid = p.fk_soc';
 
  414    $this->export_sql_end[$r] .= 
' WHERE cat.entity IN ('.getEntity(
'category').
')';
 
  415    $this->export_sql_end[$r] .= 
' AND cat.type = 6';
 
  419    $this->export_code[$r] = $this->rights_class.
'_7_'.Categorie::$MAP_ID_TO_CODE[7];
 
  420    $this->export_label[$r] = 
'CatUsersList';
 
  421    $this->export_icon[$r] = $this->picto;
 
  422    $this->export_enabled[$r] = 
'isModEnabled("user")';
 
  423    $this->export_permission[$r] = array(array(
"categorie", 
"lire"), array(
"user", 
"export"));
 
  424    $this->export_fields_array[$r] = array(
'cat.rowid' => 
"CategId", 
'cat.label' => 
"Label", 
'cat.description' => 
"Description", 
'cat.fk_parent' => 
"ParentCategory", 
'pcat.label' => 
"ParentCategoryLabel", 
'cat.color' => 
"Color", 
'cat.date_creation' => 
"DateCreation", 
'cat.tms' => 
"DateLastModification", 
'p.rowid' => 
'UserID', 
'p.login' => 
'Login', 
'p.lastname' => 
'Lastname', 
'p.firstname' => 
'Firstname');
 
  425    $this->export_TypeFields_array[$r] = array(
'cat.rowid' => 
"Numeric", 
'cat.label' => 
"Text", 
'cat.description' => 
"Text", 
'cat.fk_parent' => 
'Numeric', 
'pcat.label' => 
'Text', 
'p.rowid' => 
'Numeric', 
'p.login' => 
'Text', 
'p.lastname' => 
'Text', 
'p.firstname' => 
'Text');
 
  426    $this->export_entities_array[$r] = array(
'p.rowid' => 
'user', 
'p.login' => 
'user', 
'p.lastname' => 
'user', 
'p.firstname' => 
'user'); 
 
  428    $keyforselect = 
'user';
 
  429    $keyforelement = 
'user';
 
  430    $keyforaliasextra = 
'extra';
 
  431    include DOL_DOCUMENT_ROOT.
'/core/extrafieldsinexport.inc.php';
 
  433    $this->export_sql_start[$r] = 
'SELECT DISTINCT ';
 
  434    $this->export_sql_end[$r]  = 
' FROM '.MAIN_DB_PREFIX.
'categorie as cat';
 
  435    $this->export_sql_end[$r] .= 
' LEFT JOIN '.MAIN_DB_PREFIX.
'categorie as pcat ON pcat.rowid = cat.fk_parent';
 
  436    $this->export_sql_end[$r] .= 
' INNER JOIN '.MAIN_DB_PREFIX.
'categorie_user as cu ON cu.fk_categorie = cat.rowid';
 
  437    $this->export_sql_end[$r] .= 
' INNER JOIN '.MAIN_DB_PREFIX.
'user as p ON p.rowid = cu.fk_user';
 
  438    $this->export_sql_end[$r] .= 
' LEFT JOIN '.MAIN_DB_PREFIX.
'user_extrafields as extra ON extra.fk_object = p.rowid';
 
  439    $this->export_sql_end[$r] .= 
' WHERE cat.entity IN ('.getEntity(
'category').
')';
 
  440    $this->export_sql_end[$r] .= 
' AND cat.type = 7';
 
  457    $this->import_code[$r] = $this->rights_class.
'_list';
 
  458    $this->import_label[$r] = 
"CatList"; 
 
  459    $this->import_icon[$r] = $this->picto;
 
  460    $this->import_entities_array[$r] = array(); 
 
  461    $this->import_tables_array[$r] = array(
'ca' => MAIN_DB_PREFIX.
'categorie');
 
  462    $this->import_fields_array[$r] = array(
 
  463      'ca.label' => 
"Label*", 
'ca.type' => 
"Type*", 
'ca.description' => 
"Description",
 
  464      'ca.fk_parent' => 
'ParentCategory' 
  466    $this->import_regex_array[$r] = array(
'ca.type' => 
'^(0|1|2|3|4|5|6|7|8|9|10|11)$');
 
  467    $this->import_convertvalue_array[$r] = array(
 
  468      'ca.fk_parent' => array(
 
  469        'rule'          => 
'fetchidfromcodeandlabel',
 
  470        'classfile'     => 
'/categories/class/categorie.class.php',
 
  471        'class'         => 
'Categorie',
 
  473        'element'       => 
'category',
 
  474        'codefromfield' => 
'ca.type' 
  478    $this->import_examplevalues_array[$r] = array(
 
  479      'ca.label' => 
"My Category Label", 
'ca.type' => $typeexample, 
'ca.description' => 
"My Category description", 
 
  480      'ca.fk_parent' => 
'rowid or label' 
  482    $this->import_updatekeys_array[$r] = array(
'ca.label' => 
'Label', 
'ca.type' => 
'Type');
 
  485    if (isModEnabled(
"product")) {
 
  487      $this->import_code[$r] = $this->rights_class.
'_0_'.Categorie::$MAP_ID_TO_CODE[0];
 
  488      $this->import_label[$r] = 
"CatProdLinks"; 
 
  489      $this->import_icon[$r] = $this->picto;
 
  490      $this->import_entities_array[$r] = array(); 
 
  491      $this->import_tables_array[$r] = array(
'cp' => MAIN_DB_PREFIX.
'categorie_product');
 
  492      $this->import_fields_array[$r] = array(
'cp.fk_categorie' => 
"Category*", 
'cp.fk_product' => 
"Product*");
 
  493      $this->import_regex_array[$r] = array(
'cp.fk_categorie' => 
'rowid@'.MAIN_DB_PREFIX.
'categorie:type=0');
 
  495      $this->import_convertvalue_array[$r] = array(
 
  496          'cp.fk_categorie' => array(
'rule' => 
'fetchidfromref', 
'classfile' => 
'/categories/class/categorie.class.php', 
'class' => 
'Categorie', 
'method' => 
'fetch', 
'element' => 
'category'),
 
  497          'cp.fk_product' => array(
'rule' => 
'fetchidfromref', 
'classfile' => 
'/product/class/product.class.php', 
'class' => 
'Product', 
'method' => 
'fetch', 
'element' => 
'Product')
 
  499      $this->import_examplevalues_array[$r] = array(
'cp.fk_categorie' => 
"rowid or label", 
'cp.fk_product' => 
"rowid or ref");
 
  500      $this->import_updatekeys_array[$r] = array(
'cp.fk_categorie' => 
'Category', 
'cp.fk_product' => 
'ProductRef');
 
  504    if (isModEnabled(
"supplier_order") || isModEnabled(
"supplier_invoice")) {
 
  506      $this->import_code[$r] = $this->rights_class.
'_1_'.Categorie::$MAP_ID_TO_CODE[1];
 
  507      $this->import_label[$r] = 
"CatSupLinks"; 
 
  508      $this->import_icon[$r] = $this->picto;
 
  509      $this->import_entities_array[$r] = array(); 
 
  510      $this->import_tables_array[$r] = array(
'cs' => MAIN_DB_PREFIX.
'categorie_fournisseur');
 
  511      $this->import_fields_array[$r] = array(
'cs.fk_categorie' => 
"Category*", 
'cs.fk_soc' => 
"Supplier*");
 
  512      $this->import_regex_array[$r] = array(
 
  513        'cs.fk_categorie' => 
'rowid@'.MAIN_DB_PREFIX.
'categorie:type=1',
 
  514        'cs.fk_soc' => 
'rowid@'.MAIN_DB_PREFIX.
'societe:fournisseur>0' 
  517      $this->import_convertvalue_array[$r] = array(
 
  518          'cs.fk_categorie' => array(
'rule' => 
'fetchidfromref', 
'classfile' => 
'/categories/class/categorie.class.php', 
'class' => 
'Categorie', 
'method' => 
'fetch', 
'element' => 
'category'),
 
  519          'cs.fk_soc' => array(
'rule' => 
'fetchidfromref', 
'classfile' => 
'/societe/class/societe.class.php', 
'class' => 
'Societe', 
'method' => 
'fetch', 
'element' => 
'ThirdParty')
 
  521      $this->import_examplevalues_array[$r] = array(
'cs.fk_categorie' => 
"rowid or label", 
'cs.fk_soc' => 
"rowid or name");
 
  525    if (isModEnabled(
"societe")) {
 
  527      $this->import_code[$r] = $this->rights_class.
'_2_'.Categorie::$MAP_ID_TO_CODE[2];
 
  528      $this->import_label[$r] = 
"CatCusLinks"; 
 
  529      $this->import_icon[$r] = $this->picto;
 
  530      $this->import_entities_array[$r] = array(); 
 
  531      $this->import_tables_array[$r] = array(
'cs' => MAIN_DB_PREFIX.
'categorie_societe');
 
  532      $this->import_fields_array[$r] = array(
'cs.fk_categorie' => 
"Category*", 
'cs.fk_soc' => 
"Customer*");
 
  533      $this->import_regex_array[$r] = array(
 
  534        'cs.fk_categorie' => 
'rowid@'.MAIN_DB_PREFIX.
'categorie:type=2',
 
  535        'cs.fk_soc' => 
'rowid@'.MAIN_DB_PREFIX.
'societe:client>0' 
  538      $this->import_convertvalue_array[$r] = array(
 
  539          'cs.fk_categorie' => array(
'rule' => 
'fetchidfromref', 
'classfile' => 
'/categories/class/categorie.class.php', 
'class' => 
'Categorie', 
'method' => 
'fetch', 
'element' => 
'category'),
 
  540          'cs.fk_soc' => array(
'rule' => 
'fetchidfromref', 
'classfile' => 
'/societe/class/societe.class.php', 
'class' => 
'Societe', 
'method' => 
'fetch', 
'element' => 
'ThirdParty')
 
  542      $this->import_examplevalues_array[$r] = array(
'cs.fk_categorie' => 
"rowid or label", 
'cs.fk_soc' => 
"rowid or name");
 
  546    if (isModEnabled(
'member')) {
 
  548      $this->import_code[$r] = $this->rights_class.
'_3_'.Categorie::$MAP_ID_TO_CODE[3];
 
  549      $this->import_label[$r] = 
"CatMembersLinks"; 
 
  550      $this->import_icon[$r] = $this->picto;
 
  551      $this->import_entities_array[$r] = array(); 
 
  552      $this->import_tables_array[$r] = array(
'cm' => MAIN_DB_PREFIX.
'categorie_member');
 
  553      $this->import_fields_array[$r] = array(
'cm.fk_categorie' => 
"Category*", 
'cm.fk_member' => 
"Member*");
 
  554      $this->import_regex_array[$r] = array(
'cm.fk_categorie' => 
'rowid@'.MAIN_DB_PREFIX.
'categorie:type=3');
 
  556      $this->import_convertvalue_array[$r] = array(
 
  557        'cs.fk_categorie' => array(
'rule' => 
'fetchidfromref', 
'classfile' => 
'/categories/class/categorie.class.php', 
'class' => 
'Categorie', 
'method' => 
'fetch', 
'element' => 
'category'),
 
  558        'cs.fk_member' => array(
'rule' => 
'fetchidfromref', 
'classfile' => 
'/adherents/class/adherent.class.php', 
'class' => 
'Adherent', 
'method' => 
'fetch', 
'element' => 
'Member')
 
  560      $this->import_examplevalues_array[$r] = array(
'cs.fk_categorie' => 
"rowid or label", 
'cs.fk_member' => 
"rowid or ref");
 
  564    if (isModEnabled(
"societe")) {
 
  566      $this->import_code[$r] = $this->rights_class.
'_4_'.Categorie::$MAP_ID_TO_CODE[4];
 
  567      $this->import_label[$r] = 
"CatContactsLinks"; 
 
  568      $this->import_icon[$r] = $this->picto;
 
  569      $this->import_entities_array[$r] = array(); 
 
  570      $this->import_tables_array[$r] = array(
'cc' => MAIN_DB_PREFIX.
'categorie_contact');
 
  571      $this->import_fields_array[$r] = array(
'cc.fk_categorie' => 
"Category*", 
'cc.fk_socpeople' => 
"IdContact*");
 
  572      $this->import_regex_array[$r] = array(
 
  573        'cc.fk_categorie' => 
'rowid@'.MAIN_DB_PREFIX.
'categorie:type=4' 
  577      $this->import_convertvalue_array[$r] = array(
 
  578        'cc.fk_categorie' => array(
'rule' => 
'fetchidfromref', 
'classfile' => 
'/categories/class/categorie.class.php', 
'class' => 
'Categorie', 
'method' => 
'fetch', 
'element' => 
'category'),
 
  581      $this->import_examplevalues_array[$r] = array(
'cc.fk_categorie' => 
"rowid or label", 
'cc.fk_socpeople' => 
"rowid");
 
  587    if (isModEnabled(
'project')) {
 
  589      $this->import_code[$r] = $this->rights_class.
'_6_'.Categorie::$MAP_ID_TO_CODE[6];
 
  590      $this->import_label[$r] = 
"CatProjectsLinks"; 
 
  591      $this->import_icon[$r] = $this->picto;
 
  592      $this->import_entities_array[$r] = array(); 
 
  593      $this->import_tables_array[$r] = array(
'cp' => MAIN_DB_PREFIX.
'categorie_project');
 
  594      $this->import_fields_array[$r] = array(
'cp.fk_categorie' => 
"Category*", 
'cp.fk_project' => 
"Project*");
 
  595      $this->import_regex_array[$r] = array(
'cp.fk_categorie' => 
'rowid@'.MAIN_DB_PREFIX.
'categorie:type=6');
 
  597      $this->import_convertvalue_array[$r] = array(
 
  598        'cs.fk_categorie' => array(
'rule' => 
'fetchidfromref', 
'classfile' => 
'/categories/class/categorie.class.php', 
'class' => 
'Categorie', 
'method' => 
'fetch', 
'element' => 
'category'),
 
  599        'cs.fk_project' => array(
'rule' => 
'fetchidfromref', 
'classfile' => 
'/projet/class/project.class.php', 
'class' => 
'Project', 
'method' => 
'fetch', 
'element' => 
'Project')
 
  601      $this->import_examplevalues_array[$r] = array(
'cp.fk_categorie' => 
"rowid or label", 
'cp.fk_project' => 
"rowid or ref");
 
  605    if (isModEnabled(
'user')) {
 
  607      $this->import_code[$r] = $this->rights_class.
'_7_'.Categorie::$MAP_ID_TO_CODE[7];
 
  608      $this->import_label[$r] = 
"CatUsersLinks"; 
 
  609      $this->import_icon[$r] = $this->picto;
 
  610      $this->import_entities_array[$r] = array(); 
 
  611      $this->import_tables_array[$r] = array(
'cu' => MAIN_DB_PREFIX.
'categorie_user');
 
  612      $this->import_fields_array[$r] = array(
'cu.fk_categorie' => 
"Category*", 
'cu.fk_user' => 
"User*");
 
  613      $this->import_regex_array[$r] = array(
'cu.fk_categorie' => 
'rowid@'.MAIN_DB_PREFIX.
'categorie:type=7');
 
  615      $this->import_convertvalue_array[$r] = array(
 
  616        'cu.fk_categorie' => array(
'rule' => 
'fetchidfromref', 
'classfile' => 
'/categories/class/categorie.class.php', 
'class' => 
'Categorie', 
'method' => 
'fetch', 
'element' => 
'category'),
 
  617        'cu.fk_user' => array(
'rule' => 
'fetchidfromref', 
'classfile' => 
'/user/class/user.class.php', 
'class' => 
'User', 
'method' => 
'fetch', 
'element' => 
'User')
 
  619      $this->import_examplevalues_array[$r] = array(
'cu.fk_categorie' => 
"rowid or label", 
'cu.fk_user' => 
"rowid or login");