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_contact');
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");