48 global
$conf, $langs, $user, $mysoc;
55 $this->family =
"srm";
56 $this->module_position =
'12';
58 $this->
name = preg_replace(
'/^mod/i',
'', get_class($this));
62 $this->version =
'dolibarr';
64 $this->const_name =
'MAIN_MODULE_'.strtoupper($this->
name);
65 $this->picto =
'company';
70 "/fournisseur/commande",
71 "/fournisseur/commande/temp",
72 "/fournisseur/facture",
73 "/fournisseur/facture/temp"
77 $this->depends = array(
"modSociete");
78 $this->requiredby = array(
"modSupplierProposal");
79 $this->langfiles = array(
'bills',
'companies',
'suppliers',
'orders',
'sendings');
82 $this->config_page_url = array(
"supplier_order.php");
85 $this->
const = array();
88 $this->
const[$r][0] =
"COMMANDE_SUPPLIER_ADDON_PDF";
89 $this->
const[$r][1] =
"chaine";
90 $this->
const[$r][2] =
"cornas";
91 $this->
const[$r][3] =
'Nom du gestionnaire de generation des bons de commande en PDF';
92 $this->
const[$r][4] = 0;
95 $this->
const[$r][0] =
"COMMANDE_SUPPLIER_ADDON_NUMBER";
96 $this->
const[$r][1] =
"chaine";
97 $this->
const[$r][2] =
"mod_commande_fournisseur_muguet";
98 $this->
const[$r][3] =
'Nom du gestionnaire de numerotation des commandes fournisseur';
99 $this->
const[$r][4] = 0;
111 $this->
const[$r][0] =
"INVOICE_SUPPLIER_ADDON_NUMBER";
112 $this->
const[$r][1] =
"chaine";
113 $this->
const[$r][2] =
"mod_facture_fournisseur_cactus";
114 $this->
const[$r][3] =
'Nom du gestionnaire de numerotation des factures fournisseur';
115 $this->
const[$r][4] = 0;
119 $this->
const[$r][0] =
"SUPPLIER_ORDER_ADDON_PDF_ODT_PATH";
120 $this->
const[$r][1] =
"chaine";
121 $this->
const[$r][2] =
"DOL_DATA_ROOT/doctemplates/supplier_orders";
122 $this->
const[$r][3] =
'';
123 $this->
const[$r][4] = 0;
127 $this->
const[$r][0] =
"SUPPLIER_INVOICE_ADDON_PDF_ODT_PATH";
128 $this->
const[$r][1] =
"chaine";
129 $this->
const[$r][2] =
"";
130 $this->
const[$r][3] =
"";
131 $this->
const[$r][4] = 0;
135 $this->boxes = array(
136 0 => array(
'file' =>
'box_graph_invoices_supplier_permonth.php',
'enabledbydefaulton' =>
'Home'),
137 1 => array(
'file' =>
'box_graph_orders_supplier_permonth.php',
'enabledbydefaulton' =>
'Home'),
138 2 => array(
'file' =>
'box_fournisseurs.php',
'enabledbydefaulton' =>
'Home'),
139 3 => array(
'file' =>
'box_factures_fourn_imp.php',
'enabledbydefaulton' =>
'Home'),
140 4 => array(
'file' =>
'box_factures_fourn.php',
'enabledbydefaulton' =>
'Home'),
141 5 => array(
'file' =>
'box_supplier_orders.php',
'enabledbydefaulton' =>
'Home'),
142 6 => array(
'file' =>
'box_supplier_orders_awaiting_reception.php',
'enabledbydefaulton' =>
'Home'),
146 $datestart =
dol_mktime(23, 0, 0, $arraydate[
'mon'], $arraydate[
'mday'], $arraydate[
'year']);
147 $this->cronjobs = array(
149 'label' =>
'RecurringSupplierInvoicesJob',
150 'jobtype' =>
'method',
151 'class' =>
'fourn/class/fournisseur.facture-rec.class.php',
152 'objectname' =>
'FactureFournisseurRec',
153 'method' =>
'createRecurringInvoices',
155 'comment' =>
'Generate recurring supplier invoices',
157 'unitfrequency' => 3600 * 24,
160 'test' =>
'isModEnabled("supplier_invoice")',
161 'datestart' => $datestart
164 'label' =>
'SendEmailsRemindersOnSupplierInvoiceDueDate',
165 'jobtype' =>
'method',
166 'class' =>
'fourn/class/fournisseur.facture.class.php',
167 'objectname' =>
'FactureFournisseur',
168 'method' =>
'sendEmailsRemindersOnSupplierInvoiceDueDate',
169 'parameters' =>
'10,all,EmailTemplateCode,duedate',
170 'comment' =>
'Send an email when we reach the supplier invoice due date (or supplier invoice date) - n days. First param is n, the number of days before due date (or supplier invoice date) to send the remind (or after if value is negative), second parameter is "all" or a payment mode code, third parameter is the code of the email template to use (an email template with the EmailTemplateCode must exists. The version of the email template in the language of the thirdparty will be used in priority. Language of the thirdparty will be also used to update the PDF of the sent supplier invoice). The fourth parameter is the string "duedate" (default) or "invoicedate" to define which date of the supplier invoice to use.',
172 'unitfrequency' => 3600 * 24,
175 'test' =>
'isModEnabled("supplier_invoice")',
176 'datestart' => $datestart
181 $this->rights = array();
182 $this->rights_class =
'fournisseur';
186 $this->rights[$r][0] = 1181;
187 $this->rights[$r][1] =
'Consulter les fournisseurs';
188 $this->rights[$r][2] =
'r';
189 $this->rights[$r][3] = 0;
190 $this->rights[$r][4] =
'lire';
193 $this->rights[$r][0] = 1182;
194 $this->rights[$r][1] =
'Consulter les commandes fournisseur';
195 $this->rights[$r][2] =
'r';
196 $this->rights[$r][3] = 0;
197 $this->rights[$r][4] =
'commande';
198 $this->rights[$r][5] =
'lire';
201 $this->rights[$r][0] = 1183;
202 $this->rights[$r][1] =
'Creer une commande fournisseur';
203 $this->rights[$r][2] =
'w';
204 $this->rights[$r][3] = 0;
205 $this->rights[$r][4] =
'commande';
206 $this->rights[$r][5] =
'creer';
209 $this->rights[$r][0] = 1184;
210 $this->rights[$r][1] =
'Valider une commande fournisseur';
211 $this->rights[$r][2] =
'w';
212 $this->rights[$r][3] = 0;
213 $this->rights[$r][4] =
'supplier_order_advance';
214 $this->rights[$r][5] =
'validate';
217 $this->rights[$r][0] = 1185;
218 $this->rights[$r][1] =
'Approuver une commande fournisseur';
219 $this->rights[$r][2] =
'w';
220 $this->rights[$r][3] = 0;
221 $this->rights[$r][4] =
'commande';
222 $this->rights[$r][5] =
'approuver';
225 $this->rights[$r][0] = 1186;
226 $this->rights[$r][1] =
'Commander une commande fournisseur';
227 $this->rights[$r][2] =
'w';
228 $this->rights[$r][3] = 0;
229 $this->rights[$r][4] =
'commande';
230 $this->rights[$r][5] =
'commander';
233 $this->rights[$r][0] = 1187;
234 $this->rights[$r][1] =
'Receptionner une commande fournisseur';
235 $this->rights[$r][2] =
'd';
236 $this->rights[$r][3] = 0;
237 $this->rights[$r][4] =
'commande';
238 $this->rights[$r][5] =
'receptionner';
241 $this->rights[$r][0] = 1189;
242 $this->rights[$r][1] =
'Check/Uncheck a supplier order reception';
243 $this->rights[$r][2] =
'w';
244 $this->rights[$r][3] = 0;
245 $this->rights[$r][4] =
'commande_advance';
246 $this->rights[$r][5] =
'check';
249 $this->rights[$r][0] = 1188;
250 $this->rights[$r][1] =
'Supprimer une commande fournisseur';
251 $this->rights[$r][2] =
'd';
252 $this->rights[$r][3] = 0;
253 $this->rights[$r][4] =
'commande';
254 $this->rights[$r][5] =
'supprimer';
258 $this->rights[$r][0] = 1190;
259 $this->rights[$r][1] =
'Approve supplier order (second level)';
260 $this->rights[$r][2] =
'w';
261 $this->rights[$r][3] = 0;
262 $this->rights[$r][4] =
'commande';
263 $this->rights[$r][5] =
'approve2';
267 $this->rights[$r][0] = 1191;
268 $this->rights[$r][1] =
'Exporter les commande fournisseurs, attributs';
269 $this->rights[$r][2] =
'r';
270 $this->rights[$r][3] = 0;
271 $this->rights[$r][4] =
'commande';
272 $this->rights[$r][5] =
'export';
275 $this->rights[$r][0] = 1231;
276 $this->rights[$r][1] =
'Consulter les factures fournisseur';
277 $this->rights[$r][2] =
'r';
278 $this->rights[$r][3] = 0;
279 $this->rights[$r][4] =
'facture';
280 $this->rights[$r][5] =
'lire';
283 $this->rights[$r][0] = 1232;
284 $this->rights[$r][1] =
'Creer une facture fournisseur';
285 $this->rights[$r][2] =
'w';
286 $this->rights[$r][3] = 0;
287 $this->rights[$r][4] =
'facture';
288 $this->rights[$r][5] =
'creer';
291 $this->rights[$r][0] = 1233;
292 $this->rights[$r][1] =
'Valider une facture fournisseur';
293 $this->rights[$r][2] =
'w';
294 $this->rights[$r][3] = 0;
295 $this->rights[$r][4] =
'supplier_invoice_advance';
296 $this->rights[$r][5] =
'validate';
299 $this->rights[$r][0] = 1234;
300 $this->rights[$r][1] =
'Supprimer une facture fournisseur';
301 $this->rights[$r][2] =
'd';
302 $this->rights[$r][3] = 0;
303 $this->rights[$r][4] =
'facture';
304 $this->rights[$r][5] =
'supprimer';
307 $this->rights[$r][0] = 1235;
308 $this->rights[$r][1] =
'Envoyer les factures par mail';
309 $this->rights[$r][2] =
'a';
310 $this->rights[$r][3] = 0;
311 $this->rights[$r][4] =
'supplier_invoice_advance';
312 $this->rights[$r][5] =
'send';
315 $this->rights[$r][0] = 1236;
316 $this->rights[$r][1] =
'Exporter les factures fournisseurs, attributes et reglements';
317 $this->rights[$r][2] =
'r';
318 $this->rights[$r][3] = 0;
319 $this->rights[$r][4] =
'facture';
320 $this->rights[$r][5] =
'export';
330 $uselocaltax1 = (is_object($mysoc) && $mysoc->localtax1_assuj) ? $mysoc->localtax1_assuj : 0;
331 $uselocaltax2 = (is_object($mysoc) && $mysoc->localtax2_assuj) ? $mysoc->localtax2_assuj : 0;
335 $langs->loadLangs(array(
"suppliers",
"compta",
"multicurrency",
"bills"));
337 $alias_product_perentity = !
getDolGlobalString(
'MAIN_PRODUCT_PERENTITY_SHARED') ?
"p" :
"ppe";
340 $this->export_code[$r] = $this->rights_class.
'_'.$r;
341 $this->export_label[$r] =
'Vendor invoices and lines of invoices';
342 $this->export_icon[$r] =
'invoice';
343 $this->export_permission[$r] = array(array(
"fournisseur",
"facture",
"export"));
344 $this->export_fields_array[$r] = array(
345 's.rowid'=>
"IdCompany",
's.nom'=>
'CompanyName',
'ps.nom'=>
'ParentCompany',
's.address'=>
'Address',
's.zip'=>
'Zip',
's.town'=>
'Town',
'c.code'=>
'CountryCode',
's.phone'=>
'Phone',
346 's.siren'=>
'ProfId1',
's.siret'=>
'ProfId2',
's.ape'=>
'ProfId3',
's.idprof4'=>
'ProfId4',
's.idprof5'=>
'ProfId5',
's.idprof6'=>
'ProfId6',
347 's.code_compta'=>
'CustomerAccountancyCode',
's.code_compta_fournisseur'=>
'SupplierAccountancyCode',
's.tva_intra'=>
'VATIntra',
348 'f.rowid'=>
"InvoiceId",
'f.ref'=>
"InvoiceRef",
'f.ref_supplier'=>
"RefSupplier",
'f.datec'=>
"InvoiceDateCreation",
'f.datef'=>
"DateInvoice",
'f.date_lim_reglement'=>
'DateMaxPayment',
349 'f.fk_cond_reglement'=>
'IdPaymentTerm',
'f.fk_mode_reglement'=>
'IdPaymentMode',
350 'f.total_ht'=>
"TotalHT",
'f.total_ttc'=>
"TotalTTC",
'f.total_tva'=>
"TotalVAT",
351 'f.localtax1'=>
"TotalLT1",
'f.localtax2'=>
"TotalLT2",
352 'f.paye'=>
"InvoicePaid",
'f.fk_statut'=>
'InvoiceStatus',
'f.note_public'=>
"InvoiceNote",
353 'fd.rowid'=>
'LineId',
'fd.description'=>
"LineDescription",
'fd.qty'=>
"LineQty",
'fd.remise_percent'=>
"Discount",
354 'fd.tva_tx'=>
"LineVATRate",
'fd.total_ht'=>
"LineTotalHT",
'fd.total_ttc'=>
"LineTotalTTC",
'fd.tva'=>
"LineTotalVAT",
355 'fd.localtax1_tx'=>
"LineLT1Rate",
'fd.localtax1_type'=>
"LineLT1Type",
'fd.total_localtax1'=>
"LineTotalLT1",
356 'fd.localtax2_tx'=>
"LineLT2Rate",
'fd.localtax2_type'=>
"LineLT2Type",
'fd.total_localtax2'=>
"LineTotalLT2",
357 'fd.date_start'=>
"DateStart",
'fd.date_end'=>
"DateEnd",
'fd.special_code'=>
'SpecialCode',
358 'fd.product_type'=>
'TypeOfLineServiceOrProduct',
'fd.fk_product'=>
'ProductId',
359 'p.ref'=>
'ProductRef',
'p.label'=>
'ProductLabel', $alias_product_perentity.
'.accountancy_code_buy'=>
'ProductAccountancyBuyCode',
'project.rowid'=>
'ProjectId',
360 'project.ref'=>
'ProjectRef',
'project.title'=>
'ProjectLabel'
362 if (!$uselocaltax1) {
363 unset($this->export_fields_array[$r][
'fd.localtax1_tx']);
364 unset($this->export_fields_array[$r][
'fd.localtax1_type']);
365 unset($this->export_fields_array[$r][
'fd.total_localtax1']);
367 if (!$uselocaltax2) {
368 unset($this->export_fields_array[$r][
'fd.localtax2_tx']);
369 unset($this->export_fields_array[$r][
'fd.localtax2_type']);
370 unset($this->export_fields_array[$r][
'fd.total_localtax2']);
373 if (isModEnabled(
"multicurrency")) {
374 $this->export_fields_array[$r][
'f.multicurrency_code'] =
'Currency';
375 $this->export_fields_array[$r][
'f.multicurrency_tx'] =
'CurrencyRate';
376 $this->export_fields_array[$r][
'f.multicurrency_total_ht'] =
'MulticurrencyAmountHT';
377 $this->export_fields_array[$r][
'f.multicurrency_total_tva'] =
'MulticurrencyAmountVAT';
378 $this->export_fields_array[$r][
'f.multicurrency_total_ttc'] =
'MulticurrencyAmountTTC';
380 if (!$uselocaltax1) {
381 unset($this->export_fields_array[$r][
'f.localtax1']);
383 if (!$uselocaltax2) {
384 unset($this->export_fields_array[$r][
'f.localtax2']);
393 $this->export_TypeFields_array[$r] = array(
394 's.rowid' =>
'Numeric',
's.nom'=>
'Text',
'ps.nom'=>
'Text',
's.address'=>
'Text',
's.zip'=>
'Text',
's.town'=>
'Text',
'c.code'=>
'Text',
's.phone'=>
'Text',
's.siren'=>
'Text',
's.siret'=>
'Text',
's.ape'=>
'Text',
's.idprof4'=>
'Text',
's.idprof5'=>
'Text',
's.idprof6'=>
'Text',
395 's.code_compta'=>
'Text',
's.code_compta_fournisseur'=>
'Text',
's.tva_intra'=>
'Text',
396 'f.rowid'=>
'Numeric',
'f.ref'=>
"Text",
'f.ref_supplier'=>
"Text",
'f.datec'=>
"Date",
'f.datef'=>
"Date",
'f.date_lim_reglement'=>
'Date',
397 'f.fk_cond_reglement'=>
'Numeric',
'f.fk_mode_reglement'=>
'Numeric',
398 'f.total_ht'=>
"Numeric",
'f.total_ttc'=>
"Numeric",
'f.total_tva'=>
"Numeric",
'f.localtax1'=>
"Numeric",
'f.localtax2'=>
"Numeric",
399 'f.paye'=>
"Boolean",
'f.fk_statut'=>
'Status',
'f.note_public'=>
"Text",
400 'fd.rowid'=>
'Numeric',
'fd.description'=>
"Text",
'fd.tva_tx'=>
"Text",
401 'fd.qty'=>
"Numeric",
'fd.remise_percent'=>
"Numeric",
402 'fd.total_ht'=>
"Numeric",
'fd.total_ttc'=>
"Numeric",
'fd.tva'=>
"Numeric",
'fd.total_localtax1'=>
"Numeric",
'fd.total_localtax2'=>
"Numeric",
403 'fd.localtax1_tx'=>
'Numeric',
'fd.localtax2_tx'=>
'Numeric',
'fd.localtax1_type'=>
'Numeric',
'fd.localtax2_type'=>
'Numeric',
404 'fd.date_start'=>
"Date",
'fd.date_end'=>
"Date",
'fd.special_code'=>
"Numeric",
405 'fd.product_type'=>
'Numeric',
'fd.fk_product'=>
'List:product:label', $alias_product_perentity .
'.accountancy_code_buy'=>
'Text',
406 'p.ref'=>
'Text',
'p.label'=>
'Text',
'project.ref'=>
'Text',
'project.title'=>
'Text',
407 'f.multicurrency_code' =>
'Text',
408 'f.multicurrency_tx' =>
'Number',
'f.multicurrency_total_ht' =>
'Number',
'f.multicurrency_total_tva' =>
'Number',
'f.multicurrency_total_ttc' =>
'Number'
410 $this->export_entities_array[$r] = array(
411 's.rowid'=>
"company",
's.nom'=>
'company',
'ps.nom'=>
'company',
's.address'=>
'company',
's.zip'=>
'company',
's.town'=>
'company',
'c.code'=>
'company',
's.phone'=>
'company',
's.siren'=>
'company',
's.siret'=>
'company',
412 's.ape'=>
'company',
's.idprof4'=>
'company',
's.idprof5'=>
'company',
's.idprof6'=>
'company',
's.code_compta'=>
'company',
's.code_compta_fournisseur'=>
'company',
's.tva_intra'=>
'company',
'f.rowid'=>
"invoice",
413 'f.ref'=>
"invoice",
'f.ref_supplier'=>
"invoice",
'f.datec'=>
"invoice",
'f.datef'=>
"invoice",
'f.date_lim_reglement'=>
'invoice',
414 'f.fk_cond_reglement'=>
'invoice',
'f.fk_mode_reglement'=>
'invoice',
415 'f.total_ht'=>
"invoice",
'f.total_ttc'=>
"invoice",
'f.total_tva'=>
"invoice",
416 'f.paye'=>
"invoice",
'f.fk_statut'=>
'invoice',
'f.note_public'=>
"invoice",
'fd.rowid'=>
'invoice_line',
'fd.description'=>
"invoice_line",
'fd.qty'=>
"invoice_line",
417 'fd.total_ht'=>
"invoice_line",
'fd.tva'=>
"invoice_line",
'fd.total_ttc'=>
"invoice_line",
'fd.total_localtax1'=>
"invoice_line",
'fd.total_localtax2'=>
"invoice_line",
418 'fd.tva_tx'=>
"invoice_line",
'fd.localtax1_tx'=>
"invoice_line",
'fd.localtax2_tx'=>
"invoice_line",
'fd.localtax1_type'=>
"invoice_line",
'fd.localtax2_type'=>
"invoice_line",
419 'fd.remise_percent'=>
"invoice_line",
420 'fd.date_start'=>
"invoice_line",
'fd.date_end'=>
"invoice_line",
'fd.special_code'=>
"invoice_line",
421 'fd.product_type'=>
'invoice_line',
'fd.fk_product'=>
'product',
422 'p.ref'=>
'product',
'p.label'=>
'product', $alias_product_perentity.
'.accountancy_code_buy'=>
'product',
'project.rowid'=>
'project',
'project.ref'=>
'project',
'project.title'=>
'project'
424 $this->export_dependencies_array[$r] = array(
'invoice_line' =>
'fd.rowid',
'product' =>
'fd.rowid');
426 $keyforselect =
'facture_fourn';
427 $keyforelement =
'invoice';
428 $keyforaliasextra =
'extra';
429 include DOL_DOCUMENT_ROOT.
'/core/extrafieldsinexport.inc.php';
430 $keyforselect =
'facture_fourn_det';
431 $keyforelement =
'invoice_line';
432 $keyforaliasextra =
'extraline';
433 include DOL_DOCUMENT_ROOT.
'/core/extrafieldsinexport.inc.php';
435 $this->export_sql_start[$r] =
'SELECT DISTINCT ';
436 $this->export_sql_end[$r] =
' FROM '.MAIN_DB_PREFIX.
'societe as s';
437 $this->export_sql_end[$r] .=
' LEFT JOIN '.MAIN_DB_PREFIX.
'societe as ps ON ps.rowid = s.parent';
438 if (is_object($user) && !$user->hasRight(
'societe',
'client',
'voir')) {
439 $this->export_sql_end[$r] .=
' LEFT JOIN '.MAIN_DB_PREFIX.
'societe_commerciaux as sc ON sc.fk_soc = s.rowid';
441 $this->export_sql_end[$r] .=
' LEFT JOIN '.MAIN_DB_PREFIX.
'c_country as c ON s.fk_pays = c.rowid,';
442 $this->export_sql_end[$r] .=
' '.MAIN_DB_PREFIX.
'facture_fourn as f';
443 $this->export_sql_end[$r] .=
' LEFT JOIN '.MAIN_DB_PREFIX.
'projet as project on (f.fk_projet = project.rowid)';
444 $this->export_sql_end[$r] .=
' LEFT JOIN '.MAIN_DB_PREFIX.
'facture_fourn_extrafields as extra ON f.rowid = extra.fk_object';
445 $this->export_sql_end[$r] .=
' LEFT JOIN '.MAIN_DB_PREFIX.
'c_paiement as cp ON f.fk_mode_reglement = cp.id';
446 $this->export_sql_end[$r] .=
' LEFT JOIN '.MAIN_DB_PREFIX.
'c_payment_term as cpt ON f.fk_cond_reglement = cpt.rowid,';
447 $this->export_sql_end[$r] .=
' '.MAIN_DB_PREFIX.
'facture_fourn_det as fd';
448 $this->export_sql_end[$r] .=
' LEFT JOIN '.MAIN_DB_PREFIX.
'facture_fourn_det_extrafields as extraline ON fd.rowid = extraline.fk_object';
449 $this->export_sql_end[$r] .=
' LEFT JOIN '.MAIN_DB_PREFIX.
'product as p on (fd.fk_product = p.rowid)';
450 $this->export_sql_end[$r] .=
' WHERE f.fk_soc = s.rowid AND f.rowid = fd.fk_facture_fourn';
451 $this->export_sql_end[$r] .=
' AND f.entity IN ('.getEntity(
'supplier_invoice').
')';
452 if (is_object($user) && !$user->hasRight(
'societe',
'client',
'voir')) {
453 $this->export_sql_end[$r] .=
' AND sc.fk_user = '.((int) $user->id);
458 $this->export_code[$r] = $this->rights_class.
'_'.$r;
459 $this->export_label[$r] =
'Factures fournisseurs et reglements';
460 $this->export_icon[$r] =
'invoice';
461 $this->export_permission[$r] = array(array(
"fournisseur",
"facture",
"export"));
462 $this->export_fields_array[$r] = array(
463 's.rowid'=>
"IdCompany",
's.nom'=>
'CompanyName',
's.address'=>
'Address',
's.zip'=>
'Zip',
's.town'=>
'Town',
'c.code'=>
'CountryCode',
's.phone'=>
'Phone',
464 's.siren'=>
'ProfId1',
's.siret'=>
'ProfId2',
's.ape'=>
'ProfId3',
's.idprof4'=>
'ProfId4',
's.idprof5'=>
'ProfId5',
's.idprof6'=>
'ProfId6',
465 's.code_compta'=>
'CustomerAccountancyCode',
's.code_compta_fournisseur'=>
'SupplierAccountancyCode',
's.tva_intra'=>
'VATIntra',
466 'f.rowid'=>
"InvoiceId",
'f.ref'=>
"InvoiceRef",
'f.ref_supplier'=>
"RefSupplier",
'f.datec'=>
"InvoiceDateCreation",
'f.datef'=>
"DateInvoice",
'f.date_lim_reglement'=>
"DateMaxPayment",
467 'f.fk_cond_reglement'=>
'IdPaymentTerm',
'f.fk_mode_reglement'=>
'IdPaymentMode',
468 'f.total_ht'=>
"TotalHT",
'f.total_ttc'=>
"TotalTTC",
'f.total_tva'=>
"TotalVAT",
469 'f.localtax1'=>
"TotalLT1",
'f.localtax2'=>
"TotalLT2",
470 'f.paye'=>
"InvoicePaid",
471 'f.fk_statut'=>
'InvoiceStatus',
'f.note_public'=>
"InvoiceNote",
'p.rowid'=>
'PaymentId',
'pf.amount'=>
'AmountPayment',
472 'p.datep'=>
'DatePayment',
'p.num_paiement'=>
'PaymentNumber',
'p.fk_bank'=>
'IdTransaction',
'project.rowid'=>
'ProjectId',
'project.ref'=>
'ProjectRef',
'project.title'=>
'ProjectLabel'
474 if (!$uselocaltax1) {
475 unset($this->export_fields_array[$r][
'f.localtax1']);
477 if (!$uselocaltax2) {
478 unset($this->export_fields_array[$r][
'f.localtax2']);
480 if (isModEnabled(
"multicurrency")) {
481 $this->export_fields_array[$r][
'f.multicurrency_code'] =
'Currency';
482 $this->export_fields_array[$r][
'f.multicurrency_tx'] =
'CurrencyRate';
483 $this->export_fields_array[$r][
'f.multicurrency_total_ht'] =
'MulticurrencyAmountHT';
484 $this->export_fields_array[$r][
'f.multicurrency_total_tva'] =
'MulticurrencyAmountVAT';
485 $this->export_fields_array[$r][
'f.multicurrency_total_ttc'] =
'MulticurrencyAmountTTC';
493 $this->export_TypeFields_array[$r] = array(
494 's.rowid'=>
'Numeric',
's.nom'=>
'Text',
's.address'=>
'Text',
's.zip'=>
'Text',
's.town'=>
'Text',
'c.code'=>
'Text',
's.phone'=>
'Text',
's.siren'=>
'Text',
's.siret'=>
'Text',
's.ape'=>
'Text',
495 's.idprof4'=>
'Text',
's.idprof5'=>
'Text',
's.idprof6'=>
'Text',
's.code_compta'=>
'Text',
's.code_compta_fournisseur'=>
'Text',
's.tva_intra'=>
'Text',
496 'f.rowid'=>
'Numeric',
'f.ref'=>
"Text",
'f.ref_supplier'=>
"Text",
497 'f.datec'=>
"Date",
'f.datef'=>
"Date",
'f.date_lim_reglement'=>
'Date',
498 'f.fk_cond_reglement'=>
'Numeric',
'f.fk_mode_reglement'=>
'Numeric',
499 'f.total_ht'=>
"Numeric",
'f.total_ttc'=>
"Numeric",
'f.total_tva'=>
"Numeric",
'f.localtax1'=>
"Numeric",
'f.localtax2'=>
"Numeric",
500 'f.paye'=>
"Boolean",
'f.fk_statut'=>
'Status',
'f.note_public'=>
"Text",
'pf.amount'=>
'Numeric',
501 'p.rowid'=>
'Numeric',
'p.datep'=>
'Date',
'p.num_paiement'=>
'Numeric',
'p.fk_bank'=>
'Numeric',
'project.rowid'=>
'Numeric',
'project.ref'=>
'Text',
'project.title'=>
'Text',
502 'f.multicurrency_code' =>
'Text',
503 'f.multicurrency_tx' =>
'Number',
'f.multicurrency_total_ht' =>
'Number',
'f.multicurrency_total_tva' =>
'Number',
'f.multicurrency_total_ttc' =>
'Number'
505 $this->export_entities_array[$r] = array(
506 's.rowid' =>
"company",
's.nom' =>
'company',
's.address' =>
'company',
's.zip' =>
'company',
's.town' =>
'company',
'c.code' =>
'company',
's.phone' =>
'company',
507 's.siren' =>
'company',
's.siret' =>
'company',
's.ape' =>
'company',
's.idprof4' =>
'company',
's.idprof5' =>
'company',
's.idprof6' =>
'company',
508 's.code_compta' =>
'company',
's.code_compta_fournisseur' =>
'company',
's.tva_intra' =>
'company',
509 'f.rowid' =>
"invoice",
'f.ref' =>
"invoice",
'f.ref_supplier' =>
"invoice",
'f.datec' =>
"invoice",
'f.datef' =>
"invoice",
'f.date_lim_reglement' =>
'invoice',
510 'f.fk_cond_reglement' =>
'invoice',
'f.fk_mode_reglement' =>
'invoice',
511 'f.total_ht' =>
"invoice",
'f.total_ttc' =>
"invoice",
'f.total_tva' =>
"invoice",
'f.paye' =>
"invoice",
'f.fk_statut' =>
'invoice',
'f.note_public' =>
"invoice",
'p.rowid' =>
'payment',
'pf.amount' =>
'payment',
512 'p.datep' =>
'payment',
'p.num_paiement' =>
'payment',
'p.fk_bank' =>
'account',
'project.rowid' =>
'project',
'project.ref' =>
'project',
'project.title' =>
'project');
513 $this->export_dependencies_array[$r] = array(
'payment' =>
'p.rowid');
515 $keyforselect =
'facture_fourn';
516 $keyforelement =
'invoice';
517 $keyforaliasextra =
'extra';
518 include DOL_DOCUMENT_ROOT.
'/core/extrafieldsinexport.inc.php';
520 $this->export_sql_start[$r] =
'SELECT DISTINCT ';
521 $this->export_sql_end[$r] =
' FROM '.MAIN_DB_PREFIX.
'societe as s';
522 if (is_object($user) && !$user->hasRight(
'societe',
'client',
'voir')) {
523 $this->export_sql_end[$r] .=
' LEFT JOIN '.MAIN_DB_PREFIX.
'societe_commerciaux as sc ON sc.fk_soc = s.rowid';
525 $this->export_sql_end[$r] .=
' LEFT JOIN '.MAIN_DB_PREFIX.
'c_country as c ON s.fk_pays = c.rowid,';
526 $this->export_sql_end[$r] .=
' '.MAIN_DB_PREFIX.
'facture_fourn as f';
527 $this->export_sql_end[$r] .=
' LEFT JOIN '.MAIN_DB_PREFIX.
'projet as project on (f.fk_projet = project.rowid)';
528 $this->export_sql_end[$r] .=
' LEFT JOIN '.MAIN_DB_PREFIX.
'facture_fourn_extrafields as extra ON f.rowid = extra.fk_object';
529 $this->export_sql_end[$r] .=
' LEFT JOIN '.MAIN_DB_PREFIX.
'paiementfourn_facturefourn as pf ON pf.fk_facturefourn = f.rowid';
530 $this->export_sql_end[$r] .=
' LEFT JOIN '.MAIN_DB_PREFIX.
'paiementfourn as p ON pf.fk_paiementfourn = p.rowid';
531 $this->export_sql_end[$r] .=
' LEFT JOIN '.MAIN_DB_PREFIX.
'c_paiement as cp ON f.fk_mode_reglement = cp.id';
532 $this->export_sql_end[$r] .=
' LEFT JOIN '.MAIN_DB_PREFIX.
'c_payment_term as cpt ON f.fk_cond_reglement = cpt.rowid';
533 $this->export_sql_end[$r] .=
' WHERE f.fk_soc = s.rowid';
534 $this->export_sql_end[$r] .=
' AND f.entity IN ('.getEntity(
'supplier_invoice').
')';
535 if (is_object($user) && !$user->hasRight(
'societe',
'client',
'voir')) {
536 $this->export_sql_end[$r] .=
' AND sc.fk_user = '.((int) $user->id);
541 $this->export_code[$r] = $this->rights_class.
'_'.$r;
542 $this->export_label[$r] =
'Purchase Orders and lines of purchase orders';
543 $this->export_icon[$r] =
'order';
544 $this->export_permission[$r] = array(array(
"fournisseur",
"commande",
"export"));
545 $this->export_fields_array[$r] = array(
546 's.rowid' =>
"IdCompany",
's.nom' =>
'CompanyName',
'ps.nom' =>
'ParentCompany',
's.address' =>
'Address',
's.zip' =>
'Zip',
's.town' =>
'Town',
'c.code' =>
'CountryCode',
's.phone' =>
'Phone',
547 's.siren' =>
'ProfId1',
's.siret' =>
'ProfId2',
's.ape' =>
'ProfId3',
's.idprof4' =>
'ProfId4',
's.idprof5' =>
'ProfId5',
's.idprof6' =>
'ProfId6',
's.tva_intra' =>
'VATIntra',
548 'f.rowid' =>
"OrderId",
'f.ref' =>
"Ref",
'f.ref_supplier' =>
"RefSupplier",
'f.date_creation' =>
"DateCreation",
'f.date_commande' =>
"OrderDate",
'f.date_livraison' =>
"DateDeliveryPlanned",
549 'f.total_ht' =>
"TotalHT",
'f.total_ttc' =>
"TotalTTC",
'f.total_tva' =>
"TotalVAT",
'f.fk_statut' =>
'Status',
'f.date_valid' =>
'DateValidation',
'f.date_approve' =>
'DateApprove',
'f.date_approve2' =>
'DateApprove2',
550 'f.note_public' =>
"NotePublic",
'f.note_private' =>
"NotePrivate",
'uv.login' =>
'UserValidation',
'ua1.login' =>
'ApprovedBy',
'ua2.login' =>
'ApprovedBy2',
'fd.rowid' =>
'LineId',
'fd.description' =>
"LineDescription",
551 'fd.tva_tx' =>
"LineVATRate",
'fd.qty' =>
"LineQty",
'fd.remise_percent' =>
"Discount",
'fd.total_ht' =>
"LineTotalHT",
'fd.total_ttc' =>
"LineTotalTTC",
552 'fd.total_tva' =>
"LineTotalVAT",
'fd.date_start' =>
"DateStart",
'fd.date_end' =>
"DateEnd",
'fd.special_code' =>
'SpecialCode',
553 'fd.product_type' =>
'TypeOfLineServiceOrProduct',
'fd.ref' =>
'SupplierRef',
'fd.fk_product' =>
'ProductId',
554 'p.ref' =>
'ProductRef',
'p.label' =>
'ProductLabel',
'project.rowid' =>
'ProjectId',
'project.ref' =>
'ProjectRef',
'project.title' =>
'ProjectLabel'
556 if (isModEnabled(
"multicurrency")) {
557 $this->export_fields_array[$r][
'f.multicurrency_code'] =
'Currency';
558 $this->export_fields_array[$r][
'f.multicurrency_tx'] =
'CurrencyRate';
559 $this->export_fields_array[$r][
'f.multicurrency_total_ht'] =
'MulticurrencyAmountHT';
560 $this->export_fields_array[$r][
'f.multicurrency_total_tva'] =
'MulticurrencyAmountVAT';
561 $this->export_fields_array[$r][
'f.multicurrency_total_ttc'] =
'MulticurrencyAmountTTC';
564 unset($this->export_fields_array[
'f.date_approve2']);
565 unset($this->export_fields_array[
'ua2.login']);
567 $this->export_TypeFields_array[$r] = array(
568 's.rowid' =>
"company",
's.nom' =>
'Text',
'ps.nom' =>
'Text',
's.address' =>
'Text',
's.cp' =>
'Text',
's.ville' =>
'Text',
'c.code' =>
'Text',
's.tel' =>
'Text',
's.siren' =>
'Text',
569 's.siret' =>
'Text',
's.ape' =>
'Text',
's.idprof4' =>
'Text',
's.idprof5' =>
'Text',
's.idprof6' =>
'Text',
's.tva_intra' =>
'Text',
'f.ref' =>
"Text",
'f.ref_supplier' =>
"Text",
570 'f.date_creation' =>
"Date",
'f.date_commande' =>
"Date",
'f.date_livraison' =>
"Date",
'f.total_ht' =>
"Numeric",
'f.total_ttc' =>
"Numeric",
'f.total_tva' =>
"Numeric",
571 'f.fk_statut' =>
'Status',
'f.date_valid' =>
'Date',
'f.date_approve' =>
'Date',
'f.date_approve2' =>
'Date',
'f.note_public' =>
"Text",
'f.note_private' =>
"Text",
'fd.description' =>
"Text",
572 'fd.tva_tx' =>
"Numeric",
'fd.qty' =>
"Numeric",
'fd.remise_percent' =>
"Numeric",
'fd.total_ht' =>
"Numeric",
'fd.total_ttc' =>
"Numeric",
'fd.total_tva' =>
"Numeric",
573 'fd.date_start' =>
"Date",
'fd.date_end' =>
"Date",
'fd.special_code' =>
"Numeric",
574 'fd.product_type' =>
'Numeric',
'fd.ref' =>
'Text',
'fd.fk_product' =>
'List:product:label',
'p.ref' =>
'Text',
'p.label' =>
'Text',
'project.ref' =>
'Text',
'project.title' =>
'Text'
576 $this->export_entities_array[$r] = array(
577 's.rowid' =>
"company",
's.nom' =>
'company',
'ps.nom' =>
'company',
's.address' =>
'company',
's.zip' =>
'company',
's.town' =>
'company',
'c.code' =>
'company',
's.phone' =>
'company',
's.siren' =>
'company',
578 's.siret' =>
'company',
's.ape' =>
'company',
's.idprof4' =>
'company',
's.idprof5' =>
'company',
's.idprof6' =>
'company',
's.tva_intra' =>
'company',
'uv.login' =>
'user',
'ua1.login' =>
'user',
579 'ua2.login' =>
'user',
'fd.rowid' =>
'order_line',
'fd.description' =>
"order_line",
'fd.tva_tx' =>
"order_line",
'fd.qty' =>
"order_line",
'fd.remise_percent' =>
"order_line",
580 'fd.total_ht' =>
"order_line",
'fd.total_ttc' =>
"order_line",
'fd.total_tva' =>
"order_line",
'fd.date_start' =>
"order_line",
'fd.date_end' =>
"order_line",
'fd.special_code' =>
"order_line",
581 'fd.product_type' =>
'order_line',
'fd.ref' =>
'order_line',
'fd.fk_product' =>
'product',
582 'p.ref' =>
'product',
'p.label' =>
'product',
'project.rowid' =>
'project',
'project.ref' =>
'project',
'project.title' =>
'project'
584 $this->export_dependencies_array[$r] = array(
'order_line' =>
'fd.rowid',
'product' =>
'fd.rowid');
586 $keyforselect =
'commande_fournisseur';
587 $keyforelement =
'order';
588 $keyforaliasextra =
'extra';
589 include DOL_DOCUMENT_ROOT.
'/core/extrafieldsinexport.inc.php';
592 $keyforselect =
'commande_fournisseurdet';
593 $keyforelement =
'order_line';
594 $keyforaliasextra =
'extraline';
595 include DOL_DOCUMENT_ROOT.
'/core/extrafieldsinexport.inc.php';
597 $this->export_sql_start[$r] =
'SELECT DISTINCT ';
598 $this->export_sql_end[$r] =
' FROM '.MAIN_DB_PREFIX.
'societe as s';
599 $this->export_sql_end[$r] .=
' LEFT JOIN '.MAIN_DB_PREFIX.
'societe as ps ON ps.rowid = s.parent';
600 if (is_object($user) && !$user->hasRight(
'societe',
'client',
'voir')) {
601 $this->export_sql_end[$r] .=
' LEFT JOIN '.MAIN_DB_PREFIX.
'societe_commerciaux as sc ON sc.fk_soc = s.rowid';
603 $this->export_sql_end[$r] .=
' LEFT JOIN '.MAIN_DB_PREFIX.
'c_country as c ON s.fk_pays = c.rowid,';
604 $this->export_sql_end[$r] .=
' '.MAIN_DB_PREFIX.
'commande_fournisseur as f';
605 $this->export_sql_end[$r] .=
' LEFT JOIN '.MAIN_DB_PREFIX.
'projet as project on (f.fk_projet = project.rowid)';
606 $this->export_sql_end[$r] .=
' LEFT JOIN '.MAIN_DB_PREFIX.
'user as uv ON uv.rowid = f.fk_user_valid';
607 $this->export_sql_end[$r] .=
' LEFT JOIN '.MAIN_DB_PREFIX.
'user as ua1 ON ua1.rowid = f.fk_user_approve';
608 $this->export_sql_end[$r] .=
' LEFT JOIN '.MAIN_DB_PREFIX.
'user as ua2 ON ua2.rowid = f.fk_user_approve2';
609 $this->export_sql_end[$r] .=
' LEFT JOIN '.MAIN_DB_PREFIX.
'commande_fournisseur_extrafields as extra ON f.rowid = extra.fk_object,';
610 $this->export_sql_end[$r] .=
' '.MAIN_DB_PREFIX.
'commande_fournisseurdet as fd';
611 $this->export_sql_end[$r] .=
' LEFT JOIN '.MAIN_DB_PREFIX.
'commande_fournisseurdet_extrafields as extraline ON fd.rowid = extraline.fk_object';
612 $this->export_sql_end[$r] .=
' LEFT JOIN '.MAIN_DB_PREFIX.
'product as p on (fd.fk_product = p.rowid)';
613 $this->export_sql_end[$r] .=
' WHERE f.fk_soc = s.rowid AND f.rowid = fd.fk_commande';
614 $this->export_sql_end[$r] .=
' AND f.entity IN ('.getEntity(
'supplier_order').
')';
615 if (is_object($user) && !$user->hasRight(
'societe',
'client',
'voir')) {
616 $this->export_sql_end[$r] .=
' AND sc.fk_user = '.((int) $user->id);
624 $this->import_code[$r] = $this->rights_class.
'_'.$r;
625 $this->import_label[$r] =
"SupplierInvoices";
626 $this->import_icon[$r] = $this->picto;
627 $this->import_entities_array[$r] = array();
628 $this->import_tables_array[$r] = array(
'f' => MAIN_DB_PREFIX.
'facture_fourn',
'extra' => MAIN_DB_PREFIX.
'facture_fourn_extrafields');
629 $this->import_tables_creator_array[$r] = array(
'f' =>
'fk_user_author');
630 $this->import_fields_array[$r] = array(
631 'f.ref' =>
'InvoiceRef*',
632 'f.ref_supplier' =>
'RefSupplier',
634 'f.fk_soc' =>
'Supplier/Vendor*',
635 'f.datec' =>
'InvoiceDateCreation',
636 'f.datef' =>
'DateInvoice',
637 'f.date_lim_reglement' =>
'DateMaxPayment',
638 'f.total_ht' =>
'TotalHT',
639 'f.total_ttc' =>
'TotalTTC',
640 'f.total_tva' =>
'TotalVAT',
641 'f.paye' =>
'InvoicePaid',
642 'f.fk_statut' =>
'InvoiceStatus',
643 'f.fk_user_modif' =>
'Modifier Id',
644 'f.fk_user_valid' =>
'Validator Id',
645 'f.fk_facture_source' =>
'Invoice Source Id',
646 'f.fk_projet' =>
'Project Id',
647 'f.fk_account' =>
'Bank Account*',
648 'f.note_public' =>
'InvoiceNote',
649 'f.note_private' =>
'NotePrivate',
650 'f.fk_cond_reglement' =>
'PaymentTerm',
651 'f.fk_mode_reglement' =>
'PaymentMode',
652 'f.model_pdf' =>
'Model',
653 'f.date_valid' =>
'DateValidation'
655 if (isModEnabled(
"multicurrency")) {
656 $this->import_fields_array[$r][
'f.multicurrency_code'] =
'Currency';
657 $this->import_fields_array[$r][
'f.multicurrency_tx'] =
'CurrencyRate';
658 $this->import_fields_array[$r][
'f.multicurrency_total_ht'] =
'MulticurrencyAmountHT';
659 $this->import_fields_array[$r][
'f.multicurrency_total_tva'] =
'MulticurrencyAmountVAT';
660 $this->import_fields_array[$r][
'f.multicurrency_total_ttc'] =
'MulticurrencyAmountTTC';
663 $import_extrafield_sample = array();
664 $sql =
"SELECT name, label, fieldrequired FROM ".MAIN_DB_PREFIX.
"extrafields WHERE type <> 'separate' AND elementtype = 'facture_fourn' AND entity IN (0, ".
$conf->entity.
")";
665 $resql = $this->db->query($sql);
667 while ($obj = $this->db->fetch_object($resql)) {
668 $fieldname =
'extra.'.$obj->name;
669 $fieldlabel = ucfirst($obj->label);
670 $this->import_fields_array[$r][$fieldname] = $fieldlabel.($obj->fieldrequired ?
'*' :
'');
671 $import_extrafield_sample[$fieldname] = $fieldlabel;
675 $this->import_fieldshidden_array[$r] = array(
'extra.fk_object' =>
'lastrowid-'.MAIN_DB_PREFIX.
'facture_fourn');
676 if (empty(
$conf->multicurrency->enabled)) {
677 $this->import_fieldshidden_array[$r][
'f.multicurrency_code'] =
'const-'.$conf->currency;
679 $this->import_regex_array[$r] = array(
'f.multicurrency_code' =>
'code@'.MAIN_DB_PREFIX.
'multicurrency');
680 $import_sample = array(
681 'f.ref' =>
'(PROV001)',
682 'f.ref_supplier' =>
'Supplier1',
684 'f.fk_soc' =>
'Vendor1',
685 'f.datec' =>
'2021-01-01',
687 'f.date_lim_reglement' =>
'2021-01-30',
688 'f.total_ht' =>
'1000',
689 'f.total_ttc' =>
'1000',
690 'f.total_tva' =>
'0',
692 'f.fk_statut' =>
'0',
693 'f.fk_user_modif' =>
'',
694 'f.fk_user_valid' =>
'',
695 'f.fk_facture_source' =>
'',
697 'f.fk_account' =>
'BANK1',
698 'f.note_public' =>
'Note: ',
699 'f.note_private' =>
'',
700 'f.fk_cond_reglement' =>
'1',
701 'f.fk_mode_reglement' =>
'2',
702 'f.model_pdf' =>
'crab',
703 'f.date_valid' =>
'',
704 'f.multicurrency_code' =>
'USD',
705 'f.multicurrency_tx' =>
'1',
706 'f.multicurrency_total_ht' =>
'1000',
707 'f.multicurrency_total_tva' =>
'0',
708 'f.multicurrency_total_ttc' =>
'1000'
710 $this->import_examplevalues_array[$r] = array_merge($import_sample, $import_extrafield_sample);
711 $this->import_updatekeys_array[$r] = array(
'f.ref' =>
'Ref');
712 $this->import_convertvalue_array[$r] = array(
714 'rule' =>
'getrefifauto',
715 'class' => (!
getDolGlobalString(
'INVOICE_SUPPLIER_ADDON_NUMBER') ?
'mod_facture_fournisseur_cactus' :
$conf->global->INVOICE_SUPPLIER_ADDON_NUMBER),
716 'path' =>
"/core/modules/supplier_invoice/".(!
getDolGlobalString(
'INVOICE_SUPPLIER_ADDON_NUMBER') ?
'mod_facture_fournisseur_cactus' :
$conf->global->INVOICE_SUPPLIER_ADDON_NUMBER).
'.php',
717 'classobject' =>
'FactureFournisseur',
718 'pathobject' =>
'/fourn/class/fournisseur.facture.class.php',
720 'f.fk_soc' => array(
'rule' =>
'fetchidfromref',
'file' =>
'/societe/class/societe.class.php',
'class' =>
'Societe',
'method' =>
'fetch',
'element' =>
'ThirdParty'),
721 'f.fk_account' => array(
'rule' =>
'fetchidfromref',
'file' =>
'/compta/bank/class/account.class.php',
'class' =>
'Account',
'method' =>
'fetch',
'element' =>
'bank_account'),
726 $this->import_code[$r] = $this->rights_class.
'_'.$r;
727 $this->import_label[$r] =
"SupplierInvoiceLines";
728 $this->import_icon[$r] = $this->picto;
729 $this->import_entities_array[$r] = array();
730 $this->import_tables_array[$r] = array(
'fd' => MAIN_DB_PREFIX.
'facture_fourn_det',
'extra' => MAIN_DB_PREFIX.
'facture_fourn_det_extrafields');
731 $this->import_fields_array[$r] = array(
732 'fd.fk_facture_fourn' =>
'InvoiceRef*',
733 'fd.fk_parent_line' =>
'ParentLine',
734 'fd.fk_product' =>
'IdProduct',
735 'fd.description' =>
'LineDescription',
736 'fd.pu_ht' =>
'PriceUHT',
737 'fd.pu_ttc' =>
'PriceUTTC',
738 'fd.qty' =>
'LineQty',
739 'fd.remise_percent' =>
'Reduc.',
740 'fd.vat_src_code' =>
'Vat Source Code',
741 'fd.product_type' =>
'TypeOfLineServiceOrProduct',
742 'fd.tva_tx' =>
'LineVATRate',
743 'fd.total_ht' =>
'LineTotalHT',
744 'fd.tva' =>
'LineTotalVAT',
745 'fd.total_ttc' =>
'LineTotalTTC',
746 'fd.date_start' =>
'Start Date',
747 'fd.date_end' =>
'End Date',
748 'fd.fk_unit' =>
'Unit'
750 if (isModEnabled(
"multicurrency")) {
751 $this->import_fields_array[$r][
'fd.multicurrency_code'] =
'Currency';
752 $this->import_fields_array[$r][
'fd.multicurrency_subprice'] =
'CurrencyRate';
753 $this->import_fields_array[$r][
'fd.multicurrency_total_ht'] =
'MulticurrencyAmountHT';
754 $this->import_fields_array[$r][
'fd.multicurrency_total_tva'] =
'MulticurrencyAmountVAT';
755 $this->import_fields_array[$r][
'fd.multicurrency_total_ttc'] =
'MulticurrencyAmountTTC';
758 $import_extrafield_sample = array();
759 $sql =
"SELECT name, label, fieldrequired FROM ".MAIN_DB_PREFIX.
"extrafields WHERE type <> 'separate' AND elementtype = 'facture_fourn_det' AND entity IN (0, ".
$conf->entity.
")";
760 $resql = $this->db->query($sql);
762 while ($obj = $this->db->fetch_object($resql)) {
763 $fieldname =
'extra.'.$obj->name;
764 $fieldlabel = ucfirst($obj->label);
765 $this->import_fields_array[$r][$fieldname] = $fieldlabel.($obj->fieldrequired ?
'*' :
'');
766 $import_extrafield_sample[$fieldname] = $fieldlabel;
770 $this->import_fieldshidden_array[$r] = array(
'extra.fk_object' =>
'lastrowid-'.MAIN_DB_PREFIX.
'facture_fourn_det');
771 $this->import_regex_array[$r] = array(
'fd.product_type' =>
'[0|1]$',
'fd.fk_product' =>
'rowid@'.MAIN_DB_PREFIX.
'product',
'fd.multicurrency_code' =>
'code@'.MAIN_DB_PREFIX.
'multicurrency');
772 $import_sample = array(
773 'fd.fk_facture_fourn' =>
'(PROV001)',
774 'fd.fk_parent_line' =>
'',
775 'fd.fk_product' =>
'',
776 'fd.description' =>
'Test Product',
777 'fd.pu_ht' =>
'50000',
778 'fd.pu_ttc' =>
'50000',
780 'fd.remise_percent' =>
'0',
781 'fd.vat_src_code' =>
'',
782 'fd.product_type' =>
'0',
784 'fd.total_ht' =>
'50000',
786 'fd.total_ttc' =>
'50000',
787 'fd.date_start' =>
'',
790 'fd.multicurrency_code' =>
'USD',
791 'fd.multicurrency_tx' =>
'0',
792 'fd.multicurrency_total_ht' =>
'50000',
793 'fd.multicurrency_total_tva' =>
'0',
794 'fd.multicurrency_total_ttc' =>
'50000'
796 $this->import_examplevalues_array[$r] = array_merge($import_sample, $import_extrafield_sample);
797 $this->import_updatekeys_array[$r] = array(
'fd.rowid' =>
'Row Id',
'fd.fk_facture_fourn' =>
'Invoice Id',
'fd.fk_product' =>
'Product Id');
798 $this->import_convertvalue_array[$r] = array(
799 'fd.fk_facture_fourn' => array(
'rule' =>
'fetchidfromref',
'file' =>
'/fourn/class/fournisseur.facture.class.php',
'class' =>
'FactureFournisseur',
'method' =>
'fetch'),
804 $this->import_code[$r] =
'commande_fournisseur_'.$r;
805 $this->import_label[$r] =
'SuppliersOrders';
806 $this->import_icon[$r] = $this->picto;
807 $this->import_entities_array[$r] = array();
808 $this->import_tables_array[$r] = array(
'c' => MAIN_DB_PREFIX.
'commande_fournisseur',
'extra' => MAIN_DB_PREFIX.
'commande_fournisseur_extrafields');
809 $this->import_tables_creator_array[$r] = array(
'c' =>
'fk_user_author');
810 $this->import_fields_array[$r] = array(
812 'c.ref_supplier' =>
'RefSupplier',
813 'c.fk_soc' =>
'ThirdPartyName*',
814 'c.fk_projet' =>
'ProjectId',
815 'c.date_creation' =>
'DateCreation',
816 'c.date_valid' =>
'DateValidation',
817 'c.date_approve' =>
'DateApprove',
818 'c.date_commande' =>
'DateOrder',
819 'c.fk_user_modif' =>
'ModifiedById',
820 'c.fk_user_valid' =>
'ValidatedById',
821 'c.fk_user_approve' =>
'ApprovedById',
822 'c.source' =>
'Source',
823 'c.fk_statut' =>
'Status*',
824 'c.billed' =>
'Billed',
825 'c.total_tva' =>
'TotalTVA',
826 'c.total_ht' =>
'TotalHT',
827 'c.total_ttc' =>
'TotalTTC',
828 'c.note_private' =>
'NotePrivate',
829 'c.note_public' =>
'Note',
830 'c.date_livraison' =>
'DeliveryDate',
831 'c.fk_cond_reglement' =>
'Payment Condition',
832 'c.fk_mode_reglement' =>
'Payment Mode',
833 'c.model_pdf' =>
'Model'
836 if (isModEnabled(
"multicurrency")) {
837 $this->import_fields_array[$r][
'c.multicurrency_code'] =
'Currency';
838 $this->import_fields_array[$r][
'c.multicurrency_tx'] =
'CurrencyRate';
839 $this->import_fields_array[$r][
'c.multicurrency_total_ht'] =
'MulticurrencyAmountHT';
840 $this->import_fields_array[$r][
'c.multicurrency_total_tva'] =
'MulticurrencyAmountVAT';
841 $this->import_fields_array[$r][
'c.multicurrency_total_ttc'] =
'MulticurrencyAmountTTC';
845 $import_extrafield_sample = array();
846 $sql =
"SELECT name, label, fieldrequired FROM ".MAIN_DB_PREFIX.
"extrafields WHERE type <> 'separate' AND elementtype = 'commande_fournisseur' AND entity IN (0, ".
$conf->entity.
")";
847 $resql = $this->db->query($sql);
850 while ($obj = $this->db->fetch_object($resql)) {
851 $fieldname =
'extra.'.$obj->name;
852 $fieldlabel = ucfirst($obj->label);
853 $this->import_fields_array[$r][$fieldname] = $fieldlabel.($obj->fieldrequired ?
'*' :
'');
854 $import_extrafield_sample[$fieldname] = $fieldlabel;
859 $this->import_fieldshidden_array[$r] = array(
'extra.fk_object' =>
'lastrowid-'.MAIN_DB_PREFIX.
'commande_fournisseur');
860 $this->import_regex_array[$r] = array(
861 'c.multicurrency_code' =>
'code@'.MAIN_DB_PREFIX.
'multicurrency'
864 $this->import_updatekeys_array[$r] = array(
'c.ref' =>
'Ref');
865 $this->import_convertvalue_array[$r] = array(
867 'rule' =>
'getrefifauto',
868 'class' => (!
getDolGlobalString(
'COMMANDE_SUPPLIER_ADDON_NUMBER') ?
'mod_commande_fournisseur_muguet' :
$conf->global->COMMANDE_SUPPLIER_ADDON_NUMBER),
869 'path' =>
"/core/modules/supplier_order/".(!
getDolGlobalString(
'COMMANDE_SUPPLIER_ADDON_NUMBER') ?
'mod_commande_fournisseur_muguet' :
$conf->global->COMMANDE_SUPPLIER_ADDON_NUMBER).
'.php',
870 'classobject' =>
'CommandeFournisseur',
871 'pathobject' =>
'/fourn/class/fournisseur.commande.class.php',
874 'rule' =>
'fetchidfromref',
875 'file' =>
'/societe/class/societe.class.php',
876 'class' =>
'Societe',
878 'element' =>
'ThirdParty'
880 'c.fk_mode_reglement' => array(
881 'rule' =>
'fetchidfromcodeorlabel',
882 'file' =>
'/compta/paiement/class/cpaiement.class.php',
883 'class' =>
'Cpaiement',
885 'element' =>
'cpayment'
887 'c.source' => array(
'rule' =>
'zeroifnull'),
892 $this->import_code[$r] =
'commande_fournisseurdet_'.$r;
893 $this->import_label[$r] =
'PurchaseOrderLines';
894 $this->import_icon[$r] = $this->picto;
895 $this->import_entities_array[$r] = array();
896 $this->import_tables_array[$r] = array(
'cd' => MAIN_DB_PREFIX.
'commande_fournisseurdet',
'extra' => MAIN_DB_PREFIX.
'commande_fournisseurdet_extrafields');
897 $this->import_fields_array[$r] = array(
898 'cd.fk_commande' =>
'PurchaseOrder*',
899 'cd.fk_parent_line' =>
'ParentLine',
900 'cd.fk_product' =>
'IdProduct',
901 'cd.ref' =>
'SupplierRef',
902 'cd.description' =>
'LineDescription',
903 'cd.tva_tx' =>
'LineVATRate',
904 'cd.qty' =>
'LineQty',
905 'cd.remise_percent' =>
'Reduc. Percent',
906 'cd.subprice' =>
'Sub Price',
907 'cd.total_ht' =>
'LineTotalHT',
908 'cd.total_tva' =>
'LineTotalVAT',
909 'cd.total_ttc' =>
'LineTotalTTC',
910 'cd.product_type' =>
'TypeOfLineServiceOrProduct',
911 'cd.date_start' =>
'Start Date',
912 'cd.date_end' =>
'End Date',
913 'cd.info_bits' =>
'InfoBits',
914 'cd.special_code' =>
'Special Code',
915 'cd.rang' =>
'LinePosition',
916 'cd.fk_unit' =>
'Unit'
919 if (isModEnabled(
"multicurrency")) {
920 $this->import_fields_array[$r][
'cd.multicurrency_code'] =
'Currency';
921 $this->import_fields_array[$r][
'cd.multicurrency_subprice'] =
'CurrencyRate';
922 $this->import_fields_array[$r][
'cd.multicurrency_total_ht'] =
'MulticurrencyAmountHT';
923 $this->import_fields_array[$r][
'cd.multicurrency_total_tva'] =
'MulticurrencyAmountVAT';
924 $this->import_fields_array[$r][
'cd.multicurrency_total_ttc'] =
'MulticurrencyAmountTTC';
928 $sql =
"SELECT name, label, fieldrequired FROM ".MAIN_DB_PREFIX.
"extrafields WHERE type <> 'separate' AND elementtype = 'commande_fournisseurdet' AND entity IN (0, ".
$conf->entity.
")";
929 $resql = $this->db->query($sql);
931 while ($obj = $this->db->fetch_object($resql)) {
932 $fieldname =
'extra.'.$obj->name;
933 $fieldlabel = ucfirst($obj->label);
934 $this->import_fields_array[$r][$fieldname] = $fieldlabel.($obj->fieldrequired ?
'*' :
'');
939 $this->import_fieldshidden_array[$r] = array(
'extra.fk_object' =>
'lastrowid-'.MAIN_DB_PREFIX.
'commande_fournisseurdet');
940 $this->import_regex_array[$r] = array(
941 'cd.product_type' =>
'[0|1]$',
942 'cd.fk_product' =>
'rowid@'.MAIN_DB_PREFIX.
'product',
943 'cd.multicurrency_code' =>
'code@'.MAIN_DB_PREFIX.
'multicurrency'
945 $this->import_updatekeys_array[$r] = array(
'cd.fk_commande' =>
'Purchase Order Id');
946 $this->import_convertvalue_array[$r] = array(
947 'cd.fk_commande' => array(
948 'rule' =>
'fetchidfromref',
949 'file' =>
'/fourn/class/fournisseur.commande.class.php',
950 'class' =>
'CommandeFournisseur',
952 'element' =>
'order_supplier'
954 'cd.info_bits' => array(
'rule' =>
'zeroifnull'),
955 'cd.special_code' => array(
'rule' =>
'zeroifnull'),