43require
'../main.inc.php';
44require_once DOL_DOCUMENT_ROOT.
'/core/lib/date.lib.php';
45require_once DOL_DOCUMENT_ROOT.
'/core/lib/company.lib.php';
46require_once DOL_DOCUMENT_ROOT.
'/core/class/discount.class.php';
47require_once DOL_DOCUMENT_ROOT.
'/core/class/html.formfile.class.php';
48require_once DOL_DOCUMENT_ROOT.
'/core/class/html.formother.class.php';
49require_once DOL_DOCUMENT_ROOT.
'/core/class/html.formcompany.class.php';
50if (isModEnabled(
'margin')) {
51 require_once DOL_DOCUMENT_ROOT.
'/core/class/html.formmargin.class.php';
53require_once DOL_DOCUMENT_ROOT.
'/commande/class/commande.class.php';
54require_once DOL_DOCUMENT_ROOT.
'/compta/facture/class/facture.class.php';
55require_once DOL_DOCUMENT_ROOT.
'/product/class/product.class.php';
56require_once DOL_DOCUMENT_ROOT.
'/projet/class/project.class.php';
59$langs->loadLangs(array(
'orders',
'sendings',
'deliveries',
'companies',
'compta',
'bills',
'stocks',
'products'));
62$action =
GETPOST(
'action',
'aZ09');
63$massaction =
GETPOST(
'massaction',
'alpha');
65$confirm =
GETPOST(
'confirm',
'alpha');
66$toselect =
GETPOST(
'toselect',
'array');
67$contextpage =
GETPOST(
'contextpage',
'aZ') ?
GETPOST(
'contextpage',
'aZ') :
'orderlist';
68$optioncss =
GETPOST(
'optioncss',
'alpha');
69$mode =
GETPOST(
'mode',
'alpha');
72 $userschilds = $user->getAllChildIds();
76$search_datecloture_start =
GETPOSTINT(
'search_datecloture_start');
77if (empty($search_datecloture_start)) {
80$search_datecloture_end =
GETPOSTINT(
'search_datecloture_end');
81if (empty($search_datecloture_end)) {
91$search_all = trim((
GETPOST(
'search_all',
'alphanohtml') !=
'') ?
GETPOST(
'search_all',
'alphanohtml') :
GETPOST(
'sall',
'alphanohtml'));
92$search_product_category =
GETPOST(
'search_product_category',
'intcomma');
93$search_id =
GETPOST(
'search_id',
'int');
94$search_ref =
GETPOST(
'search_ref',
'alpha') !=
'' ?
GETPOST(
'search_ref',
'alpha') :
GETPOST(
'sref',
'alpha');
95$search_ref_customer =
GETPOST(
'search_ref_customer',
'alpha');
96$search_company =
GETPOST(
'search_company',
'alpha');
97$search_company_alias =
GETPOST(
'search_company_alias',
'alpha');
98$search_parent_name = trim(
GETPOST(
'search_parent_name',
'alphanohtml'));
99$search_town =
GETPOST(
'search_town',
'alpha');
100$search_zip =
GETPOST(
'search_zip',
'alpha');
101$search_state =
GETPOST(
'search_state',
'alpha');
102$search_country =
GETPOST(
'search_country',
'aZ09');
103$search_type_thirdparty =
GETPOST(
'search_type_thirdparty',
'intcomma');
104$search_user =
GETPOST(
'search_user',
'intcomma');
105$search_sale =
GETPOST(
'search_sale',
'intcomma');
106$search_total_ht =
GETPOST(
'search_total_ht',
'alpha');
107$search_total_vat =
GETPOST(
'search_total_vat',
'alpha');
108$search_total_ttc =
GETPOST(
'search_total_ttc',
'alpha');
109$search_warehouse =
GETPOST(
'search_warehouse',
'intcomma');
111$search_multicurrency_code =
GETPOST(
'search_multicurrency_code',
'alpha');
112$search_multicurrency_tx =
GETPOST(
'search_multicurrency_tx',
'alpha');
113$search_multicurrency_montant_ht =
GETPOST(
'search_multicurrency_montant_ht',
'alpha');
114$search_multicurrency_montant_vat =
GETPOST(
'search_multicurrency_montant_vat',
'alpha');
115$search_multicurrency_montant_ttc =
GETPOST(
'search_multicurrency_montant_ttc',
'alpha');
117$search_login =
GETPOST(
'search_login',
'alpha');
118$search_categ_cus =
GETPOST(
"search_categ_cus",
'intcomma');
119$search_billed =
GETPOST(
'search_billed',
'intcomma');
120$search_status =
GETPOST(
'search_status',
'intcomma');
121$search_project_ref =
GETPOST(
'search_project_ref',
'alpha');
122$search_project =
GETPOST(
'search_project',
'alpha');
123$search_shippable =
GETPOST(
'search_shippable',
'aZ09');
125$search_fk_cond_reglement =
GETPOST(
'search_fk_cond_reglement',
'intcomma');
126$search_fk_shipping_method =
GETPOST(
'search_fk_shipping_method',
'intcomma');
127$search_fk_mode_reglement =
GETPOST(
'search_fk_mode_reglement',
'intcomma');
128$search_fk_input_reason =
GETPOST(
'search_fk_input_reason',
'intcomma');
130$search_option =
GETPOST(
'search_option',
'alpha');
131if ($search_option ==
'late') {
132 $search_status =
'-2';
135$diroutputmassaction = $conf->commande->multidir_output[$conf->entity].
'/temp/massgeneration/'.$user->id;
139$sortfield =
GETPOST(
'sortfield',
'aZ09comma');
140$sortorder =
GETPOST(
'sortorder',
'aZ09comma');
142if (empty($page) || $page < 0 ||
GETPOST(
'button_search',
'alpha') ||
GETPOST(
'button_removefilter',
'alpha')) {
146$offset = $limit * $page;
147$pageprev = $page - 1;
148$pagenext = $page + 1;
150 $sortfield =
'c.ref';
156$show_shippable_command =
GETPOST(
'show_shippable_command',
'aZ09');
160$hookmanager->initHooks(array(
'orderlist'));
164$extrafields->fetch_name_optionals_label(
$object->table_element);
165$search_array_options = $extrafields->getOptionalsFromPost(
$object->table_element,
'',
'search_');
168$fieldstosearchall = array(
170 'c.ref_client' =>
'RefCustomerOrder',
171 'pd.description' =>
'Description',
172 's.nom' =>
"ThirdParty",
173 's.name_alias' =>
"AliasNameShort",
176 'c.note_public' =>
'NotePublic',
178if (empty($user->socid)) {
179 $fieldstosearchall[
"c.note_private"] =
"NotePrivate";
182$checkedtypetiers = 0;
184 'c.rowid' => array(
'label' =>
"ID",
'checked' => 1,
'enabled' =>
getDolGlobalInt(
'MAIN_SHOW_TECHNICAL_ID'),
'position' => 1),
185 'c.ref' => array(
'label' =>
"Ref",
'checked' => 1,
'position' => 5,
'searchall' => 1),
186 'c.ref_client' => array(
'label' =>
"RefCustomerOrder",
'checked' => -1,
'position' => 10,
'searchall' => 1),
187 'p.ref' => array(
'label' =>
"ProjectRef",
'checked' => -1,
'enabled' => (!isModEnabled(
'project') ? 0 : 1),
'position' => 20),
188 'p.title' => array(
'label' =>
"ProjectLabel",
'checked' => 0,
'enabled' => (!isModEnabled(
'project') ? 0 : 1),
'position' => 25),
189 's.nom' => array(
'label' =>
"ThirdParty",
'checked' => 1,
'position' => 30,
'searchall' => 1),
190 's.name_alias' => array(
'label' =>
"AliasNameShort",
'checked' => -1,
'position' => 31,
'searchall' => 1),
191 's2.nom' => array(
'label' =>
'ParentCompany',
'position' => 32,
'checked' => 0),
192 's.town' => array(
'label' =>
"Town",
'checked' => -1,
'position' => 35,
'searchall' => 1),
193 's.zip' => array(
'label' =>
"Zip",
'checked' => -1,
'position' => 40,
'searchall' => 1),
194 'state.nom' => array(
'label' =>
"StateShort",
'checked' => 0,
'position' => 45),
195 'country.code_iso' => array(
'label' =>
"Country",
'checked' => 0,
'position' => 50),
196 'typent.code' => array(
'label' =>
"ThirdPartyType",
'checked' => $checkedtypetiers,
'position' => 55),
197 'c.date_commande' => array(
'label' =>
"OrderDateShort",
'checked' => 1,
'position' => 60,
'csslist' =>
'nowraponall'),
198 'c.date_delivery' => array(
'label' =>
"DateDeliveryPlanned",
'checked' => 1,
'enabled' => !
getDolGlobalString(
'ORDER_DISABLE_DELIVERY_DATE'),
'position' => 65,
'csslist' =>
'nowraponall'),
199 'c.fk_shipping_method' => array(
'label' =>
"SendingMethod",
'checked' => -1,
'position' => 66 ,
'enabled' => isModEnabled(
"shipping")),
200 'c.fk_cond_reglement' => array(
'label' =>
"PaymentConditionsShort",
'checked' => -1,
'position' => 67),
201 'c.fk_mode_reglement' => array(
'label' =>
"PaymentMode",
'checked' => -1,
'position' => 68),
202 'c.fk_input_reason' => array(
'label' =>
"Origin",
'checked' => -1,
'position' => 69),
203 'c.total_ht' => array(
'label' =>
"AmountHT",
'checked' => 1,
'position' => 75),
204 'c.total_vat' => array(
'label' =>
"AmountVAT",
'checked' => 0,
'position' => 80),
205 'c.total_ttc' => array(
'label' =>
"AmountTTC",
'checked' => 0,
'position' => 85),
206 'c.multicurrency_code' => array(
'label' =>
'Currency',
'checked' => 0,
'enabled' => (!isModEnabled(
"multicurrency") ? 0 : 1),
'position' => 90),
207 'c.multicurrency_tx' => array(
'label' =>
'CurrencyRate',
'checked' => 0,
'enabled' => (!isModEnabled(
"multicurrency") ? 0 : 1),
'position' => 95),
208 'c.multicurrency_total_ht' => array(
'label' =>
'MulticurrencyAmountHT',
'checked' => 0,
'enabled' => (!isModEnabled(
"multicurrency") ? 0 : 1),
'position' => 100),
209 'c.multicurrency_total_vat' => array(
'label' =>
'MulticurrencyAmountVAT',
'checked' => 0,
'enabled' => (!isModEnabled(
"multicurrency") ? 0 : 1),
'position' => 105),
210 'c.multicurrency_total_ttc' => array(
'label' =>
'MulticurrencyAmountTTC',
'checked' => 0,
'enabled' => (!isModEnabled(
"multicurrency") ? 0 : 1),
'position' => 110),
211 'u.login' => array(
'label' =>
"Author",
'checked' => 1,
'position' => 115),
212 'sale_representative' => array(
'label' =>
"SaleRepresentativesOfThirdParty",
'checked' => 0,
'position' => 116),
213 'total_pa' => array(
'label' => (
getDolGlobalString(
'MARGIN_TYPE') ==
'1' ?
'BuyingPrice' :
'CostPrice'),
'checked' => 0,
'position' => 300,
'enabled' => (!isModEnabled(
'margin') || !$user->hasRight(
"margins",
"liretous") ? 0 : 1)),
214 'total_margin' => array(
'label' =>
'Margin',
'checked' => 0,
'position' => 301,
'enabled' => (!isModEnabled(
'margin') || !$user->hasRight(
"margins",
"liretous") ? 0 : 1)),
215 'total_margin_rate' => array(
'label' =>
'MarginRate',
'checked' => 0,
'position' => 302,
'enabled' => (!isModEnabled(
'margin') || !$user->hasRight(
"margins",
"liretous") || !
getDolGlobalString(
'DISPLAY_MARGIN_RATES') ? 0 : 1)),
216 'total_mark_rate' => array(
'label' =>
'MarkRate',
'checked' => 0,
'position' => 303,
'enabled' => (!isModEnabled(
'margin') || !$user->hasRight(
"margins",
"liretous") || !
getDolGlobalString(
'DISPLAY_MARK_RATES') ? 0 : 1)),
217 'c.datec' => array(
'label' =>
"DateCreation",
'checked' => 0,
'position' => 120),
218 'c.tms' => array(
'label' =>
"DateModificationShort",
'checked' => 0,
'position' => 125),
219 'c.date_cloture' => array(
'label' =>
"DateClosing",
'checked' => 0,
'position' => 130),
220 'c.note_public' => array(
'label' =>
'NotePublic',
'checked' => 0,
'enabled' => (!
getDolGlobalInt(
'MAIN_LIST_HIDE_PUBLIC_NOTES')),
'position' => 135,
'searchall' => 1),
221 'c.note_private' => array(
'label' =>
'NotePrivate',
'checked' => 0,
'enabled' => (!
getDolGlobalInt(
'MAIN_LIST_HIDE_PRIVATE_NOTES')),
'position' => 140),
222 'shippable' => array(
'label' =>
"Shippable",
'checked' => 1,
'enabled' => (isModEnabled(
"shipping")),
'position' => 990),
223 'c.facture' => array(
'label' =>
"Billed",
'checked' => 1,
'enabled' => (!
getDolGlobalString(
'WORKFLOW_BILL_ON_SHIPMENT')),
'position' => 995),
224 'c.import_key' => array(
'type' =>
'varchar(14)',
'label' =>
'ImportId',
'enabled' => 1,
'visible' => -2,
'position' => 999),
225 'c.fk_statut' => array(
'label' =>
"Status",
'checked' => 1,
'position' => 1000)
228$parameters = array(
'fieldstosearchall' => $fieldstosearchall);
229$reshook = $hookmanager->executeHooks(
'completeFieldsToSearchAll', $parameters, $object, $action);
231 $fieldstosearchall = empty($hookmanager->resArray[
'fieldstosearchall']) ? array() : $hookmanager->resArray[
'fieldstosearchall'];
232} elseif ($reshook == 0) {
233 $fieldstosearchall = array_merge($fieldstosearchall, empty($hookmanager->resArray[
'fieldstosearchall']) ? array() : $hookmanager->resArray[
'fieldstosearchall']);
237include DOL_DOCUMENT_ROOT.
'/core/tpl/extrafields_list_array_fields.tpl.php';
242'@phan-var-force array<string,array{label:string,checked?:int<0,1>,position?:int,help?:string}> $arrayfields';
248 $socid = $user->socid;
251$permissiontoreadallthirdparty = $user->hasRight(
'societe',
'client',
'voir');
263if (
GETPOST(
'cancel',
'alpha')) {
267if (!
GETPOST(
'confirmmassaction',
'alpha') && $massaction !=
'presend' && $massaction !=
'confirm_presend' && $massaction !=
'confirm_createbills') {
271$parameters = array(
'socid' => $socid,
'arrayfields' => &$arrayfields);
272$reshook = $hookmanager->executeHooks(
'doActions', $parameters, $object, $action);
277if (empty($reshook)) {
279 include DOL_DOCUMENT_ROOT.
'/core/actions_changeselectedfields.inc.php';
282 if (
GETPOST(
'button_removefilter_x',
'alpha') ||
GETPOST(
'button_removefilter.x',
'alpha') ||
GETPOST(
'button_removefilter',
'alpha')) {
285 $search_product_category =
'';
288 $search_ref_customer =
'';
289 $search_company =
'';
290 $search_company_alias =
'';
291 $search_parent_name =
'';
296 $search_country =
'';
297 $search_type_thirdparty =
'';
298 $search_total_ht =
'';
299 $search_total_vat =
'';
300 $search_total_ttc =
'';
301 $search_warehouse =
'';
302 $search_multicurrency_code =
'';
303 $search_multicurrency_tx =
'';
304 $search_multicurrency_montant_ht =
'';
305 $search_multicurrency_montant_vat =
'';
306 $search_multicurrency_montant_ttc =
'';
308 $search_dateorder_start =
'';
309 $search_dateorder_end =
'';
310 $search_datedelivery_start =
'';
311 $search_datedelivery_end =
'';
312 $search_project_ref =
'';
313 $search_project =
'';
317 $search_array_options = array();
318 $search_categ_cus = 0;
319 $search_datecloture_start =
'';
320 $search_datecloture_end =
'';
321 $search_fk_cond_reglement =
'';
322 $search_fk_shipping_method =
'';
323 $search_fk_mode_reglement =
'';
324 $search_fk_input_reason =
'';
327 if (
GETPOST(
'button_removefilter_x',
'alpha') ||
GETPOST(
'button_removefilter.x',
'alpha') ||
GETPOST(
'button_removefilter',
'alpha')
328 ||
GETPOST(
'button_search_x',
'alpha') ||
GETPOST(
'button_search.x',
'alpha') ||
GETPOST(
'button_search',
'alpha')) {
333 $objectclass =
'Commande';
334 $objectlabel =
'Orders';
335 $permissiontoread = $user->hasRight(
"commande",
"lire");
336 $permissiontoadd = $user->hasRight(
"commande",
"creer");
337 $permissiontodelete = $user->hasRight(
"commande",
"supprimer");
339 $permissiontovalidate = $user->hasRight(
"commande",
"order_advance",
"validate");
340 $permissiontoclose = $user->hasRight(
"commande",
"order_advance",
"close");
341 $permissiontocancel = $user->hasRight(
"commande",
"order_advance",
"annuler");
342 $permissiontosendbymail = $user->hasRight(
"commande",
"order_advance",
"send");
344 $permissiontovalidate = $user->hasRight(
"commande",
"creer");
345 $permissiontoclose = $user->hasRight(
"commande",
"creer");
346 $permissiontocancel = $user->hasRight(
"commande",
"creer");
347 $permissiontosendbymail = $user->hasRight(
"commande",
"creer");
349 $uploaddir = $conf->commande->multidir_output[$conf->entity];
350 $triggersendname =
'ORDER_SENTBYMAIL';
353 include DOL_DOCUMENT_ROOT.
'/core/actions_massactions.inc.php';
355 if ($massaction ==
'confirm_createbills') {
356 $orders =
GETPOST(
'toselect',
'array');
357 $createbills_onebythird =
GETPOSTINT(
'createbills_onebythird');
358 $validate_invoices =
GETPOSTINT(
'validate_invoices');
363 $TFactThird = array();
364 $TFactThirdNbLines = array();
366 $nb_bills_created = 0;
372 $nbOrders = is_array($orders) ? count($orders) : 1;
374 foreach ($orders as $id_order) {
376 if ($cmd->fetch($id_order) <= 0) {
379 $cmd->fetch_thirdparty();
382 if (!empty($createbills_onebythird) && !empty($TFactThird[$cmd->socid])) {
384 $objecttmp = $TFactThird[$cmd->socid];
387 $objecttmp->socid = $cmd->socid;
388 $objecttmp->thirdparty = $cmd->thirdparty;
390 $objecttmp->type = $objecttmp::TYPE_STANDARD;
391 $objecttmp->cond_reglement_id = !empty($cmd->cond_reglement_id) ? $cmd->cond_reglement_id : $cmd->thirdparty->cond_reglement_id;
392 $objecttmp->mode_reglement_id = !empty($cmd->mode_reglement_id) ? $cmd->mode_reglement_id : $cmd->thirdparty->mode_reglement_id;
394 $objecttmp->fk_project = $cmd->fk_project;
395 $objecttmp->multicurrency_code = $cmd->multicurrency_code;
396 if (empty($createbills_onebythird)) {
397 $objecttmp->ref_client = $cmd->ref_client;
401 if (empty($datefacture)) {
405 $objecttmp->date = $datefacture;
406 $objecttmp->origin =
'commande';
407 $objecttmp->origin_id = $id_order;
409 $objecttmp->array_options = $cmd->array_options;
411 $res = $objecttmp->create($user);
415 $lastref = $objecttmp->ref;
416 $lastid = $objecttmp->id;
418 $TFactThird[$cmd->socid] = $objecttmp;
419 $TFactThirdNbLines[$cmd->socid] = 0;
421 $langs->load(
"errors");
422 $errors[] = $cmd->ref.
' : '.$langs->trans($objecttmp->errors[0]);
427 if ($objecttmp->id > 0) {
428 $res = $objecttmp->add_object_linked($objecttmp->origin, $id_order);
431 $errors[] = $cmd->ref.
' : '.$langs->trans($objecttmp->errors[0]);
436 $lines = $cmd->lines;
437 if (empty($lines) && method_exists($cmd,
'fetch_lines')) {
439 $lines = $cmd->lines;
443 $num = count($lines);
445 for ($i = 0; $i < $num; $i++) {
446 $desc = ($lines[$i]->desc ? $lines[$i]->desc :
'');
448 if (!empty($createbills_onebythird)) {
452 if ($lines[$i]->subprice < 0 && !
getDolGlobalString(
'INVOICE_KEEP_DISCOUNT_LINES_AS_IN_ORIGIN')) {
455 $discount->fk_soc = $objecttmp->socid;
456 $discount->socid = $objecttmp->socid;
457 $discount->amount_ht = abs($lines[$i]->total_ht);
458 $discount->amount_tva = abs($lines[$i]->total_tva);
459 $discount->amount_ttc = abs($lines[$i]->total_ttc);
460 $discount->tva_tx = $lines[$i]->tva_tx;
461 $discount->fk_user = $user->id;
462 $discount->description = $desc;
463 $discountid = $discount->create($user);
464 if ($discountid > 0) {
465 $result = $objecttmp->insert_discount($discountid);
474 $product_type = ($lines[$i]->product_type ? $lines[$i]->product_type : 0);
477 if ($lines[$i]->date_debut_prevue) {
478 $date_start = $lines[$i]->date_debut_prevue;
480 if ($lines[$i]->date_debut_reel) {
481 $date_start = $lines[$i]->date_debut_reel;
483 if ($lines[$i]->date_start) {
484 $date_start = $lines[$i]->date_start;
488 if ($lines[$i]->date_fin_prevue) {
489 $date_end = $lines[$i]->date_fin_prevue;
491 if ($lines[$i]->date_fin_reel) {
492 $date_end = $lines[$i]->date_fin_reel;
494 if ($lines[$i]->date_end) {
495 $date_end = $lines[$i]->date_end;
498 if (($lines[$i]->product_type != 9 && empty($lines[$i]->fk_parent_line)) || $lines[$i]->product_type == 9) {
503 if (method_exists($lines[$i],
'fetch_optionals')) {
504 $lines[$i]->fetch_optionals();
505 $array_options = $lines[$i]->array_options;
508 $objecttmp->context[
'createfromclone'] =
'createfromclone';
510 $rang = ($nbOrders > 1) ? -1 : $lines[$i]->rang;
512 if (!empty($createbills_onebythird)) {
513 $TFactThirdNbLines[$cmd->socid]++;
514 $rang = $TFactThirdNbLines[$cmd->socid];
517 $result = $objecttmp->addline(
519 $lines[$i]->subprice,
522 $lines[$i]->localtax1_tx,
523 $lines[$i]->localtax2_tx,
524 $lines[$i]->fk_product,
525 $lines[$i]->remise_percent,
529 $lines[$i]->info_bits,
530 $lines[$i]->fk_remise_except,
535 $lines[$i]->special_code,
539 $lines[$i]->fk_fournprice,
552 $errors[] = $objecttmp->error;
556 if ($result > 0 && $lines[$i]->product_type == 9) {
557 $fk_parent_line = $result;
566 if (!empty($createbills_onebythird) && empty($TFactThird[$cmd->socid])) {
567 $TFactThird[$cmd->socid] = $objecttmp;
569 $TFact[$objecttmp->id] = $objecttmp;
574 $TAllFact = empty($createbills_onebythird) ? $TFact : $TFactThird;
577 if (!$error && $validate_invoices) {
578 $massaction = $action =
'builddoc';
580 foreach ($TAllFact as &$objecttmp) {
581 $result = $objecttmp->validate($user);
588 $id = $objecttmp->id;
592 $upload_dir = $conf->facture->dir_output;
593 $permissiontoadd = $user->hasRight(
'facture',
'creer');
598 include DOL_DOCUMENT_ROOT.
'/core/actions_builddoc.inc.php';
602 $massaction = $action =
'confirm_createbills';
608 if ($nb_bills_created == 1) {
609 if (
getDolGlobalInt(
'MAIN_MASSACTION_CREATEBILLS_REDIRECT_IF_ONE') == 1) {
611 header(
'Location: '.DOL_URL_ROOT.
'/compta/facture/card.php?id='.urlencode((
string) $lastid));
614 $texttoshow = $langs->trans(
'BillXCreated',
'{s1}');
615 $texttoshow = str_replace(
'{s1}',
'<a href="'.DOL_URL_ROOT.
'/compta/facture/card.php?id='.urlencode((
string) ($lastid)).
'">'.$lastref.
'</a>', $texttoshow);
618 if (
getDolGlobalInt(
'MAIN_MASSACTION_CREATEBILLS_REDIRECT_IF_MANY') == 1) {
620 header(
"Location: ".DOL_URL_ROOT.
'/compta/facture/list.php?mainmenu=billing&leftmenu=customers_bills');
623 setEventMessages($langs->trans(
'BillCreated', $nb_bills_created),
null,
'mesgs');
629 $param .=
'&mode='.urlencode($mode);
631 if (!empty($contextpage) && $contextpage != $_SERVER[
"PHP_SELF"]) {
632 $param .=
'&contextpage='.urlencode($contextpage);
634 if ($limit > 0 && $limit != $conf->liste_limit) {
635 $param .=
'&limit='.((int) $limit);
637 if ($optioncss !=
'') {
638 $param .=
'&optioncss='.urlencode($optioncss);
641 $param .=
'&search_all='.urlencode($search_all);
644 $param .=
'&show_files='.urlencode((
string) ($show_files));
647 $param .=
'&socid='.urlencode((
string) ($socid));
649 if ($search_status !=
'') {
650 $param .=
'&search_status='.urlencode($search_status);
652 if ($search_option) {
653 $param .=
"&search_option=".urlencode($search_option);
655 if ($search_orderday) {
656 $param .=
'&search_orderday='.urlencode($search_orderday);
658 if ($search_ordermonth) {
659 $param .=
'&search_ordermonth='.urlencode($search_ordermonth);
661 if ($search_orderyear) {
662 $param .=
'&search_orderyear='.urlencode($search_orderyear);
664 if ($search_deliveryday) {
665 $param .=
'&search_deliveryday='.urlencode($search_deliveryday);
667 if ($search_deliverymonth) {
668 $param .=
'&search_deliverymonth='.urlencode($search_deliverymonth);
670 if ($search_deliveryyear) {
671 $param .=
'&search_deliveryyear='.urlencode($search_deliveryyear);
674 $param .=
'&search_id='.urlencode((
string) $search_id);
677 $param .=
'&search_ref='.urlencode($search_ref);
679 if ($search_company) {
680 $param .=
'&search_company='.urlencode($search_company);
682 if ($search_ref_customer) {
683 $param .=
'&search_ref_customer='.urlencode($search_ref_customer);
685 if ($search_user > 0) {
686 $param .=
'&search_user='.urlencode((
string) ($search_user));
688 if ($search_sale > 0) {
689 $param .=
'&search_sale='.urlencode((
string) ($search_sale));
691 if ($search_total_ht !=
'') {
692 $param .=
'&search_total_ht='.urlencode($search_total_ht);
694 if ($search_total_vat !=
'') {
695 $param .=
'&search_total_vat='.urlencode($search_total_vat);
697 if ($search_total_ttc !=
'') {
698 $param .=
'&search_total_ttc='.urlencode($search_total_ttc);
700 if ($search_project_ref >= 0) {
701 $param .=
"&search_project_ref=".urlencode($search_project_ref);
703 if ($search_billed !=
'') {
704 $param .=
'&search_billed='.urlencode($search_billed);
707 header(
"Location: ".$_SERVER[
'PHP_SELF'].
'?'.$param);
713 $_GET[
"origin"] = $_POST[
"origin"];
714 $_GET[
"originid"] = $_POST[
"originid"];
715 if (!empty($errors)) {
724if ($action ==
'validate' && $permissiontoadd) {
725 if (
GETPOST(
'confirm') ==
'yes') {
726 $objecttmp =
new $objectclass($db);
729 foreach ($toselect as $checked) {
730 if ($objecttmp->fetch($checked)) {
731 if ($objecttmp->statut == 0) {
732 if (!empty($objecttmp->fk_warehouse)) {
733 $idwarehouse = $objecttmp->fk_warehouse;
737 if ($objecttmp->valid($user, $idwarehouse)) {
738 setEventMessages($langs->trans(
'hasBeenValidated', $objecttmp->ref),
null,
'mesgs');
744 $langs->load(
"errors");
745 setEventMessages($langs->trans(
'ErrorIsNotADraft', $objecttmp->ref),
null,
'errors');
760if ($action ==
'shipped' && $permissiontoadd) {
761 if (
GETPOST(
'confirm') ==
'yes') {
762 $objecttmp =
new $objectclass($db);
765 foreach ($toselect as $checked) {
766 if ($objecttmp->fetch($checked)) {
767 if ($objecttmp->statut == 1 || $objecttmp->statut == 2) {
768 if ($objecttmp->cloture($user)) {
769 setEventMessages($langs->trans(
'StatusOrderDelivered', $objecttmp->ref),
null,
'mesgs');
771 setEventMessages($langs->trans(
'ErrorOrderStatusCantBeSetToDelivered'),
null,
'errors');
775 $langs->load(
"errors");
776 setEventMessages($langs->trans(
'ErrorIsNotADraft', $objecttmp->ref),
null,
'errors');
793if (!$error && $massaction ===
'setbilled' && $permissiontoclose) {
796 $objecttmp =
new $objectclass($db);
798 foreach ($toselect as $toselectid) {
799 $result = $objecttmp->fetch($toselectid);
801 $result = $objecttmp->classifyBilled($user, 0);
829$form =
new Form($db);
833if (isModEnabled(
'margin')) {
836$companystatic =
new Societe($db);
837$company_url_list = array();
839$projectstatic =
new Project($db);
843$varpage = empty($contextpage) ? $_SERVER[
"PHP_SELF"] : $contextpage;
844$selectedfields = $form->multiSelectArrayWithCheckbox(
'selectedfields', $arrayfields, $varpage);
846$title = $langs->trans(
"Orders");
847$help_url =
"EN:Module_Customers_Orders|FR:Module_Commandes_Clients|ES:Módulo_Pedidos_de_clientes";
853 $sql =
'SELECT DISTINCT';
855$sql .=
' s.rowid as socid, s.nom as name, s.name_alias as alias, s.email, s.phone, s.fax, s.address, s.town, s.zip, s.fk_pays, s.client, s.fournisseur, s.code_client,';
856$sql .=
" s.parent as fk_parent,";
857$sql .=
" s2.nom as name2,";
858$sql .=
" typent.code as typent_code,";
859$sql .=
" state.code_departement as state_code, state.nom as state_name,";
860$sql .=
" country.code as country_code,";
861$sql .=
' c.rowid, c.ref, c.total_ht, c.total_tva, c.total_ttc, c.ref_client, c.fk_user_author,';
862$sql .=
' c.fk_multicurrency, c.multicurrency_code, c.multicurrency_tx, c.multicurrency_total_ht, c.multicurrency_total_tva as multicurrency_total_vat, c.multicurrency_total_ttc,';
863$sql .=
' c.date_valid, c.date_commande, c.note_public, c.note_private, c.date_livraison as date_delivery, c.fk_statut, c.facture as billed,';
864$sql .=
' c.date_creation as date_creation, c.tms as date_modification, c.date_cloture as date_cloture,';
865$sql .=
' p.rowid as project_id, p.ref as project_ref, p.title as project_label,';
866$sql .=
' u.login, u.lastname, u.firstname, u.email as user_email, u.statut as user_statut, u.entity, u.photo, u.office_phone, u.office_fax, u.user_mobile, u.job, u.gender,';
867$sql .=
' c.fk_cond_reglement,c.deposit_percent,c.fk_mode_reglement,c.fk_shipping_method,';
868$sql .=
' c.fk_input_reason, c.import_key';
871if (!empty($extrafields->attributes[
$object->table_element][
'label'])) {
872 foreach ($extrafields->attributes[
$object->table_element][
'label'] as $key => $val) {
873 $sql .= ($extrafields->attributes[
$object->table_element][
'type'][$key] !=
'separate' ?
", ef.".$key.
" as options_".$key :
'');
878$parameters = array();
879$reshook = $hookmanager->executeHooks(
'printFieldListSelect', $parameters, $object, $action);
880$sql .= $hookmanager->resPrint;
881$sql = preg_replace(
'/,\s*$/',
'', $sql);
885$sql .=
' FROM '.MAIN_DB_PREFIX.
'societe as s';
886$sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"societe as s2 ON s2.rowid = s.parent";
887$sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"c_country as country on (country.rowid = s.fk_pays)";
888$sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"c_typent as typent on (typent.id = s.fk_typent)";
889$sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"c_departements as state on (state.rowid = s.fk_departement)";
890$sql .=
', '.MAIN_DB_PREFIX.
'commande as c';
891if (!empty($extrafields->attributes[
$object->table_element][
'label']) && is_array($extrafields->attributes[
$object->table_element][
'label']) && count($extrafields->attributes[
$object->table_element][
'label'])) {
892 $sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"commande_extrafields as ef on (c.rowid = ef.fk_object)";
895 $sql .=
' LEFT JOIN '.MAIN_DB_PREFIX.
'commandedet as pd ON c.rowid=pd.fk_commande';
897$sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"projet as p ON p.rowid = c.fk_projet";
898$sql .=
' LEFT JOIN '.MAIN_DB_PREFIX.
'user as u ON c.fk_user_author = u.rowid';
900$parameters = array();
901$reshook = $hookmanager->executeHooks(
'printFieldListFrom', $parameters, $object, $action);
902$sql .= $hookmanager->resPrint;
904$sql .=
' WHERE c.fk_soc = s.rowid';
905$sql .=
' AND c.entity IN ('.getEntity(
'commande').
')';
907 $sql .=
' AND s.rowid = '.((int) $socid);
910if (empty($user->socid) && !$permissiontoreadallthirdparty) {
911 $sql .=
" AND (EXISTS (SELECT sc.fk_soc FROM ".MAIN_DB_PREFIX.
"societe_commerciaux as sc WHERE sc.fk_soc = c.fk_soc AND sc.fk_user = ".((int) $user->id).
")";
913 $sql .=
" OR EXISTS (SELECT sc.fk_soc FROM ".MAIN_DB_PREFIX.
"societe_commerciaux as sc WHERE sc.fk_soc = c.fk_soc AND sc.fk_user IN (".$db->sanitize(implode(
',', $userschilds)).
"))";
924if ($search_ref_customer) {
928 $sql .=
natural_search(array_keys($fieldstosearchall), $search_all);
930if ($search_billed !=
'' && $search_billed >= 0) {
931 $sql .=
' AND c.facture = '.((int) $search_billed);
933if ($search_status !=
'') {
934 if ($search_status <= 3 && $search_status >= -1) {
935 if ($search_status == 1 && !isModEnabled(
'shipping')) {
936 $sql .=
' AND c.fk_statut IN (1,2)';
938 $sql .=
' AND c.fk_statut = '.((int) $search_status);
941 if ($search_status == -2) {
943 $sql .=
" AND (c.fk_statut IN (1,2))";
945 if ($search_status == -3) {
948 $sql .=
' AND (c.fk_statut IN (1,2,3))';
951if ($search_option ==
'late') {
952 $sql .=
" AND c.date_commande < '".$db->idate(
dol_now() - $conf->commande->client->warning_delay).
"'";
954if ($search_datecloture_start) {
955 $sql .=
" AND c.date_cloture >= '".$db->idate($search_datecloture_start).
"'";
957if ($search_datecloture_end) {
958 $sql .=
" AND c.date_cloture <= '".$db->idate($search_datecloture_end).
"'";
960if ($search_dateorder_start) {
961 $sql .=
" AND c.date_commande >= '".$db->idate($search_dateorder_start).
"'";
963if ($search_dateorder_end) {
964 $sql .=
" AND c.date_commande <= '".$db->idate($search_dateorder_end).
"'";
966if ($search_datedelivery_start) {
967 $sql .=
" AND c.date_livraison >= '".$db->idate($search_datedelivery_start).
"'";
969if ($search_datedelivery_end) {
970 $sql .=
" AND c.date_livraison <= '".$db->idate($search_datedelivery_end).
"'";
981if ($search_country) {
982 $sql .=
" AND s.fk_pays IN (".$db->sanitize($search_country).
')';
984if ($search_type_thirdparty && $search_type_thirdparty !=
'-1') {
985 $sql .=
" AND s.fk_typent IN (".$db->sanitize($search_type_thirdparty).
')';
987if (empty($arrayfields[
's.name_alias'][
'checked']) && $search_company) {
988 $sql .=
natural_search(array(
"s.nom",
"s.name_alias"), $search_company);
990 if ($search_company) {
993 if ($search_company_alias) {
997if ($search_parent_name) {
1000if ($search_total_ht !=
'') {
1003if ($search_total_vat !=
'') {
1006if ($search_total_ttc !=
'') {
1009if ($search_warehouse !=
'' && $search_warehouse > 0) {
1012if ($search_multicurrency_code !=
'') {
1013 $sql .=
" AND c.multicurrency_code = '".$db->escape($search_multicurrency_code).
"'";
1015if ($search_multicurrency_tx !=
'') {
1016 $sql .=
natural_search(
'c.multicurrency_tx', $search_multicurrency_tx, 1);
1018if ($search_multicurrency_montant_ht !=
'') {
1019 $sql .=
natural_search(
'c.multicurrency_total_ht', $search_multicurrency_montant_ht, 1);
1021if ($search_multicurrency_montant_vat !=
'') {
1022 $sql .=
natural_search(
'c.multicurrency_total_tva', $search_multicurrency_montant_vat, 1);
1024if ($search_multicurrency_montant_ttc !=
'') {
1025 $sql .=
natural_search(
'c.multicurrency_total_ttc', $search_multicurrency_montant_ttc, 1);
1028 $sql .=
natural_search(array(
"u.login",
"u.firstname",
"u.lastname"), $search_login);
1030if ($search_project_ref !=
'') {
1033if ($search_project !=
'') {
1036if ($search_fk_cond_reglement > 0) {
1037 $sql .=
" AND c.fk_cond_reglement = ".((int) $search_fk_cond_reglement);
1039if ($search_fk_shipping_method > 0) {
1040 $sql .=
" AND c.fk_shipping_method = ".((int) $search_fk_shipping_method);
1042if ($search_fk_mode_reglement > 0) {
1043 $sql .=
" AND c.fk_mode_reglement = ".((int) $search_fk_mode_reglement);
1045if ($search_fk_input_reason > 0) {
1046 $sql .=
" AND c.fk_input_reason = ".((int) $search_fk_input_reason);
1049if ($search_user > 0) {
1050 $sql .=
" AND EXISTS (";
1051 $sql .=
" SELECT ec.fk_c_type_contact, ec.element_id, ec.fk_socpeople";
1052 $sql .=
" FROM ".MAIN_DB_PREFIX.
"element_contact as ec";
1053 $sql .=
" INNER JOIN ".MAIN_DB_PREFIX.
"c_type_contact as tc";
1054 $sql .=
" ON ec.fk_c_type_contact = tc.rowid AND tc.element='commande' AND tc.source='internal'";
1055 $sql .=
" WHERE ec.element_id = c.rowid AND ec.fk_socpeople = ".((int) $search_user).
")";
1058if ($search_sale && $search_sale !=
'-1') {
1059 if ($search_sale == -2) {
1060 $sql .=
" AND NOT EXISTS (SELECT sc.fk_soc FROM ".MAIN_DB_PREFIX.
"societe_commerciaux as sc WHERE sc.fk_soc = c.fk_soc)";
1061 } elseif ($search_sale > 0) {
1062 $sql .=
" AND EXISTS (SELECT sc.fk_soc FROM ".MAIN_DB_PREFIX.
"societe_commerciaux as sc WHERE sc.fk_soc = c.fk_soc AND sc.fk_user = ".((int) $search_sale).
")";
1066$searchCategoryCustomerOperator = -1;
1067$searchCategoryCustomerList = array($search_categ_cus);
1068if (!empty($searchCategoryCustomerList)) {
1069 $searchCategoryCustomerSqlList = array();
1070 $listofcategoryid =
'';
1071 foreach ($searchCategoryCustomerList as $searchCategoryCustomer) {
1072 if (intval($searchCategoryCustomer) == -2) {
1073 $searchCategoryCustomerSqlList[] =
"NOT EXISTS (SELECT cs.fk_soc FROM ".MAIN_DB_PREFIX.
"categorie_societe as cs WHERE s.rowid = cs.fk_soc)";
1074 } elseif (intval($searchCategoryCustomer) > 0) {
1075 if ($searchCategoryCustomerOperator == 0) {
1076 $searchCategoryCustomerSqlList[] =
" EXISTS (SELECT cs.fk_soc FROM ".MAIN_DB_PREFIX.
"categorie_societe as cs WHERE s.rowid = cs.fk_soc AND cs.fk_categorie = ".((int) $searchCategoryCustomer).
")";
1078 $listofcategoryid .= ($listofcategoryid ?
', ' :
'') .((
int) $searchCategoryCustomer);
1082 if ($listofcategoryid) {
1083 $searchCategoryCustomerSqlList[] =
" EXISTS (SELECT cs.fk_soc FROM ".MAIN_DB_PREFIX.
"categorie_societe as cs WHERE s.rowid = cs.fk_soc AND cs.fk_categorie IN (".$db->sanitize($listofcategoryid).
"))";
1085 if ($searchCategoryCustomerOperator == 1) {
1086 if (!empty($searchCategoryCustomerSqlList)) {
1087 $sql .=
" AND (".implode(
' OR ', $searchCategoryCustomerSqlList).
")";
1090 if (!empty($searchCategoryCustomerSqlList)) {
1091 $sql .=
" AND (".implode(
' AND ', $searchCategoryCustomerSqlList).
")";
1096$searchCategoryProductOperator = -1;
1097$searchCategoryProductList = array($search_product_category);
1098if (!empty($searchCategoryProductList)) {
1099 $searchCategoryProductSqlList = array();
1100 $listofcategoryid =
'';
1101 foreach ($searchCategoryProductList as $searchCategoryProduct) {
1102 if (intval($searchCategoryProduct) == -2) {
1103 $searchCategoryProductSqlList[] =
"NOT EXISTS (SELECT ck.fk_product FROM ".MAIN_DB_PREFIX.
"categorie_product as ck, ".MAIN_DB_PREFIX.
"commandedet as cd WHERE cd.fk_commande = c.rowid AND cd.fk_product = ck.fk_product)";
1104 } elseif (intval($searchCategoryProduct) > 0) {
1105 if ($searchCategoryProductOperator == 0) {
1106 $searchCategoryProductSqlList[] =
" EXISTS (SELECT ck.fk_product FROM ".MAIN_DB_PREFIX.
"categorie_product as ck, ".MAIN_DB_PREFIX.
"commandedet as cd WHERE cd.fk_commande = c.rowid AND cd.fk_product = ck.fk_product AND ck.fk_categorie = ".((int) $searchCategoryProduct).
")";
1108 $listofcategoryid .= ($listofcategoryid ?
', ' :
'') .((
int) $searchCategoryProduct);
1112 if ($listofcategoryid) {
1113 $searchCategoryProductSqlList[] =
" EXISTS (SELECT ck.fk_product FROM ".MAIN_DB_PREFIX.
"categorie_product as ck, ".MAIN_DB_PREFIX.
"commandedet as cd WHERE cd.fk_commande = c.rowid AND cd.fk_product = ck.fk_product AND ck.fk_categorie IN (".$db->sanitize($listofcategoryid).
"))";
1115 if ($searchCategoryProductOperator == 1) {
1116 if (!empty($searchCategoryProductSqlList)) {
1117 $sql .=
" AND (".implode(
' OR ', $searchCategoryProductSqlList).
")";
1120 if (!empty($searchCategoryProductSqlList)) {
1121 $sql .=
" AND (".implode(
' AND ', $searchCategoryProductSqlList).
")";
1126include DOL_DOCUMENT_ROOT.
'/core/tpl/extrafields_list_search_sql.tpl.php';
1128$parameters = array();
1129$reshook = $hookmanager->executeHooks(
'printFieldListWhere', $parameters, $object, $action);
1130$sql .= $hookmanager->resPrint;
1133$parameters = array();
1134$reshook = $hookmanager->executeHooks(
'printFieldListHaving', $parameters, $object, $action);
1135$sql .= empty($hookmanager->resPrint) ?
"" :
" HAVING 1=1 ".$hookmanager->resPrint;
1139$nbtotalofrecords =
'';
1142 $sqlforcount = preg_replace(
'/^'.preg_quote($sqlfields,
'/').
'/',
'SELECT COUNT(*) as nbtotalofrecords', $sql);
1143 $sqlforcount = preg_replace(
'/GROUP BY .*$/',
'', $sqlforcount);
1144 $resql = $db->query($sqlforcount);
1146 $objforcount = $db->fetch_object($resql);
1147 $nbtotalofrecords = $objforcount->nbtotalofrecords;
1152 if (($page * $limit) > $nbtotalofrecords) {
1159$sql .= $db->order($sortfield, $sortorder);
1161 $sql .= $db->plimit($limit + 1, $offset);
1165$resql = $db->query($sql);
1173 $soc->fetch($socid);
1174 $title = $langs->trans(
'CustomersOrders').
' - '.$soc->name;
1175 if (empty($search_company)) {
1176 $search_company = $soc->name;
1179 $title = $langs->trans(
'CustomersOrders');
1181if (strval($search_status) ==
'0') {
1182 $title .=
' - '.$langs->trans(
'StatusOrderDraftShort');
1184if ($search_status == 1) {
1185 $title .=
' - '.$langs->trans(
'StatusOrderValidatedShort');
1187if ($search_status == 2) {
1188 $title .=
' - '.$langs->trans(
'StatusOrderSentShort');
1190if ($search_status == 3) {
1191 $title .=
' - '.$langs->trans(
'StatusOrderToBillShort');
1193if ($search_status == -1) {
1194 $title .=
' - '.$langs->trans(
'StatusOrderCanceledShort');
1196if ($search_status == -2) {
1197 $title .=
' - '.$langs->trans(
'StatusOrderToProcessShort');
1199if ($search_status == -3) {
1200 $title .=
' - '.$langs->trans(
'StatusOrderValidated').
', '.(!isModEnabled(
'shipping') ?
'' : $langs->trans(
"StatusOrderSent").
', ').$langs->trans(
'StatusOrderToBill');
1202if ($search_status == -4) {
1203 $title .=
' - '.$langs->trans(
"StatusOrderValidatedShort").
'+'.$langs->trans(
"StatusOrderSentShort");
1206$num = $db->num_rows($resql);
1208$arrayofselected = is_array($toselect) ? $toselect : array();
1210if ($num == 1 &&
getDolGlobalString(
'MAIN_SEARCH_DIRECT_OPEN_IF_ONLY_ONE') && $search_all) {
1211 $obj = $db->fetch_object($resql);
1213 header(
"Location: ".DOL_URL_ROOT.
'/commande/card.php?id='.$id);
1220llxHeader(
'', $title, $help_url,
'', 0, 0,
'',
'',
'',
'bodyforlist mod-order page-list');
1222$arrayofselected = is_array($toselect) ? $toselect : array();
1226 $param .=
'&mode='.urlencode($mode);
1228if (!empty($contextpage) && $contextpage != $_SERVER[
"PHP_SELF"]) {
1229 $param .=
'&contextpage='.urlencode($contextpage);
1231if ($limit > 0 && $limit != $conf->liste_limit) {
1232 $param .=
'&limit='.((int) $limit);
1235 $param .=
'&search_all='.urlencode($search_all);
1238 $param .=
'&socid='.((int) $socid);
1240if ($search_status !=
'') {
1241 $param .=
'&search_status='.urlencode($search_status);
1243if ($search_option) {
1244 $param .=
"&search_option=".urlencode($search_option);
1246if ($search_datecloture_start) {
1247 $param .=
'&search_datecloture_startday='.dol_print_date($search_datecloture_start,
'%d').
'&search_datecloture_startmonth='.
dol_print_date($search_datecloture_start,
'%m').
'&search_datecloture_startyear='.
dol_print_date($search_datecloture_start,
'%Y');
1249if ($search_datecloture_end) {
1250 $param .=
'&search_datecloture_endday='.dol_print_date($search_datecloture_end,
'%d').
'&search_datecloture_endmonth='.
dol_print_date($search_datecloture_end,
'%m').
'&search_datecloture_endyear='.
dol_print_date($search_datecloture_end,
'%Y');
1252if ($search_dateorder_start) {
1253 $param .=
'&search_dateorder_start_day='.dol_print_date($search_dateorder_start,
'%d').
'&search_dateorder_start_month='.
dol_print_date($search_dateorder_start,
'%m').
'&search_dateorder_start_year='.
dol_print_date($search_dateorder_start,
'%Y');
1255if ($search_dateorder_end) {
1256 $param .=
'&search_dateorder_end_day='.dol_print_date($search_dateorder_end,
'%d').
'&search_dateorder_end_month='.
dol_print_date($search_dateorder_end,
'%m').
'&search_dateorder_end_year='.
dol_print_date($search_dateorder_end,
'%Y');
1258if ($search_datedelivery_start) {
1259 $param .=
'&search_datedelivery_start_day='.dol_print_date($search_datedelivery_start,
'%d').
'&search_datedelivery_start_month='.
dol_print_date($search_datedelivery_start,
'%m').
'&search_datedelivery_start_year='.
dol_print_date($search_datedelivery_start,
'%Y');
1261if ($search_datedelivery_end) {
1262 $param .=
'&search_datedelivery_end_day='.dol_print_date($search_datedelivery_end,
'%d').
'&search_datedelivery_end_month='.
dol_print_date($search_datedelivery_end,
'%m').
'&search_datedelivery_end_year='.
dol_print_date($search_datedelivery_end,
'%Y');
1265 $param .=
'&search_id='.urlencode((
string) $search_id);
1268 $param .=
'&search_ref='.urlencode($search_ref);
1270if ($search_company) {
1271 $param .=
'&search_company='.urlencode($search_company);
1273if ($search_company_alias) {
1274 $param .=
'&search_company_alias='.urlencode($search_company_alias);
1276if ($search_parent_name !=
'') {
1277 $param .=
'&search_parent_name='.urlencode($search_parent_name);
1279if ($search_ref_customer) {
1280 $param .=
'&search_ref_customer='.urlencode($search_ref_customer);
1282if ($search_user > 0) {
1283 $param .=
'&search_user='.urlencode((
string) ($search_user));
1285if ($search_sale > 0) {
1286 $param .=
'&search_sale='.urlencode((
string) ($search_sale));
1288if ($search_total_ht !=
'') {
1289 $param .=
'&search_total_ht='.urlencode($search_total_ht);
1291if ($search_total_vat !=
'') {
1292 $param .=
'&search_total_vat='.urlencode($search_total_vat);
1294if ($search_total_ttc !=
'') {
1295 $param .=
'&search_total_ttc='.urlencode($search_total_ttc);
1297if ($search_warehouse !=
'') {
1298 $param .=
'&search_warehouse='.urlencode((
string) ($search_warehouse));
1301 $param .=
'&search_login='.urlencode($search_login);
1303if ($search_multicurrency_code !=
'') {
1304 $param .=
'&search_multicurrency_code='.urlencode($search_multicurrency_code);
1306if ($search_multicurrency_tx !=
'') {
1307 $param .=
'&search_multicurrency_tx='.urlencode($search_multicurrency_tx);
1309if ($search_multicurrency_montant_ht !=
'') {
1310 $param .=
'&search_multicurrency_montant_ht='.urlencode($search_multicurrency_montant_ht);
1312if ($search_multicurrency_montant_vat !=
'') {
1313 $param .=
'&search_multicurrency_montant_vat='.urlencode($search_multicurrency_montant_vat);
1315if ($search_multicurrency_montant_ttc !=
'') {
1316 $param .=
'&search_multicurrency_montant_ttc='.urlencode($search_multicurrency_montant_ttc);
1318if ($search_project_ref >= 0) {
1319 $param .=
"&search_project_ref=".urlencode($search_project_ref);
1321if ($search_town !=
'') {
1322 $param .=
'&search_town='.urlencode($search_town);
1324if ($search_zip !=
'') {
1325 $param .=
'&search_zip='.urlencode($search_zip);
1327if ($search_state !=
'') {
1328 $param .=
'&search_state='.urlencode($search_state);
1330if ($search_country !=
'') {
1331 $param .=
'&search_country='.urlencode((
string) ($search_country));
1333if ($search_type_thirdparty && $search_type_thirdparty !=
'-1') {
1334 $param .=
'&search_type_thirdparty='.urlencode((
string) ($search_type_thirdparty));
1336if ($search_product_category !=
'') {
1337 $param .=
'&search_product_category='.urlencode((
string) ($search_product_category));
1339if (($search_categ_cus > 0) || ($search_categ_cus == -2)) {
1340 $param .=
'&search_categ_cus='.urlencode((
string) ($search_categ_cus));
1343 $param .=
'&show_files='.urlencode((
string) ($show_files));
1345if ($optioncss !=
'') {
1346 $param .=
'&optioncss='.urlencode($optioncss);
1348if ($search_billed !=
'') {
1349 $param .=
'&search_billed='.urlencode($search_billed);
1351if ($search_fk_cond_reglement > 0) {
1352 $param .=
'&search_fk_cond_reglement='.urlencode((
string) ($search_fk_cond_reglement));
1354if ($search_fk_shipping_method > 0) {
1355 $param .=
'&search_fk_shipping_method='.urlencode((
string) ($search_fk_shipping_method));
1357if ($search_fk_mode_reglement > 0) {
1358 $param .=
'&search_fk_mode_reglement='.urlencode((
string) ($search_fk_mode_reglement));
1360if ($search_fk_input_reason > 0) {
1361 $param .=
'&search_fk_input_reason='.urlencode((
string) ($search_fk_input_reason));
1365include DOL_DOCUMENT_ROOT.
'/core/tpl/extrafields_list_search_param.tpl.php';
1368$parameters = array();
1369$reshook = $hookmanager->executeHooks(
'printFieldListSearchParam', $parameters, $object, $action);
1370$param .= $hookmanager->resPrint;
1373$arrayofmassactions = array(
1374 'generate_doc' =>
img_picto(
'',
'pdf',
'class="pictofixedwidth"').$langs->trans(
"ReGeneratePDF"),
1375 'builddoc' =>
img_picto(
'',
'pdf',
'class="pictofixedwidth"').$langs->trans(
"PDFMerge"),
1377if ($permissiontovalidate) {
1378 $arrayofmassactions[
'prevalidate'] =
img_picto(
'',
'check',
'class="pictofixedwidth"').$langs->trans(
"Validate");
1380if ($permissiontoclose) {
1381 $arrayofmassactions[
'preshipped'] =
img_picto(
'',
'dolly',
'class="pictofixedwidth"').$langs->trans(
"ClassifyShipped");
1383if (isModEnabled(
'invoice') && $user->hasRight(
"facture",
"creer")) {
1384 $arrayofmassactions[
'createbills'] =
img_picto(
'',
'bill',
'class="pictofixedwidth"').$langs->trans(
"CreateInvoiceForThisCustomer");
1386if ($permissiontoclose) {
1387 $arrayofmassactions[
'setbilled'] =
img_picto(
'',
'bill',
'class="pictofixedwidth"').$langs->trans(
"ClassifyBilled");
1389if ($permissiontocancel) {
1390 $arrayofmassactions[
'cancelorders'] =
img_picto(
'',
'close_title',
'class="pictofixedwidth"').$langs->trans(
"CancelOrder");
1392if (!empty($permissiontodelete)) {
1393 $arrayofmassactions[
'predelete'] =
img_picto(
'',
'delete',
'class="pictofixedwidth"').$langs->trans(
"Delete");
1395if ($permissiontosendbymail) {
1396 $arrayofmassactions[
'presend'] =
img_picto(
'',
'email',
'class="pictofixedwidth"').$langs->trans(
"SendByMail");
1398if (in_array($massaction, array(
'presend',
'predelete',
'createbills'))) {
1399 $arrayofmassactions = array();
1401$massactionbutton = $form->selectMassAction(
'', $arrayofmassactions);
1403$url = DOL_URL_ROOT.
'/commande/card.php?action=create';
1404if (!empty($socid)) {
1405 $url .=
'&socid='.$socid;
1408$newcardbutton .=
dolGetButtonTitle($langs->trans(
'ViewList'),
'',
'fa fa-bars imgforviewmode', $_SERVER[
"PHP_SELF"].
'?mode=common'.preg_replace(
'/(&|\?)*mode=[^&]+/',
'', $param),
'', ((empty($mode) || $mode ==
'common') ? 2 : 1), array(
'morecss' =>
'reposition'));
1409$newcardbutton .=
dolGetButtonTitle($langs->trans(
'ViewKanban'),
'',
'fa fa-th-list imgforviewmode', $_SERVER[
"PHP_SELF"].
'?mode=kanban'.preg_replace(
'/(&|\?)*mode=[^&]+/',
'', $param),
'', ($mode ==
'kanban' ? 2 : 1), array(
'morecss' =>
'reposition'));
1411$newcardbutton .=
dolGetButtonTitle($langs->trans(
'NewOrder'),
'',
'fa fa-plus-circle', $url,
'', ($contextpage ==
'orderlist' || $contextpage ==
'billableorders') && $permissiontoadd);
1414print
'<form method="POST" id="searchFormList" action="'.$_SERVER[
"PHP_SELF"].
'">'.
"\n";
1415if ($optioncss !=
'') {
1416 print
'<input type="hidden" name="optioncss" value="'.$optioncss.
'">';
1418print
'<input type="hidden" name="token" value="'.newToken().
'">';
1419print
'<input type="hidden" name="formfilteraction" id="formfilteraction" value="list">';
1420print
'<input type="hidden" name="action" value="list">';
1421print
'<input type="hidden" name="sortfield" value="'.$sortfield.
'">';
1422print
'<input type="hidden" name="sortorder" value="'.$sortorder.
'">';
1423print
'<input type="hidden" name="contextpage" value="'.$contextpage.
'">';
1424print
'<input type="hidden" name="search_status" value="'.$search_status.
'">';
1425print
'<input type="hidden" name="socid" value="'.$socid.
'">';
1426print
'<input type="hidden" name="page_y" value="">';
1427print
'<input type="hidden" name="mode" value="'.$mode.
'">';
1430print_barre_liste($title, $page, $_SERVER[
"PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords,
'order', 0, $newcardbutton,
'', $limit, 0, 0, 1);
1432$topicmail =
"SendOrderRef";
1433$modelmail =
"order_send";
1435$trackid =
'ord'.$object->id;
1436include DOL_DOCUMENT_ROOT.
'/core/tpl/massactions_pre.tpl.php';
1438if ($massaction ==
'prevalidate') {
1439 print $form->formconfirm($_SERVER[
"PHP_SELF"], $langs->trans(
"ConfirmMassValidation"), $langs->trans(
"ConfirmMassValidationQuestion"),
"validate",
null,
'', 0, 200, 500, 1);
1441if ($massaction ==
'preshipped') {
1442 print $form->formconfirm($_SERVER[
"PHP_SELF"], $langs->trans(
"CloseOrder"), $langs->trans(
"ConfirmCloseOrder"),
"shipped",
null,
'', 0, 200, 500, 1);
1445if ($massaction ==
'createbills') {
1446 print
'<input type="hidden" name="massaction" value="confirm_createbills">';
1448 print
'<table class="noborder centpercent">';
1451 print $langs->trans(
'DateInvoice');
1454 print $form->selectDate(
'',
'', 0, 0, 0,
'', 1, 1);
1459 print $langs->trans(
'CreateOneBillByThird');
1462 print $form->selectyesno(
'createbills_onebythird',
getDolGlobalString(
'MAIN_ORDERLIST_CREATEBILLS_ONEBYTHIRD',
'no'), 1);
1467 print $langs->trans(
'ValidateInvoices');
1471 print $form->selectyesno(
'validate_invoices', 0, 1, 1);
1472 $langs->load(
"errors");
1473 print
' ('.$langs->trans(
"WarningAutoValNotPossibleWhenStockIsDecreasedOnInvoiceVal").
')';
1475 print $form->selectyesno(
'validate_invoices', 0, 1);
1477 if (!empty($conf->workflow->enabled) &&
getDolGlobalString(
'WORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER')) {
1478 print
' <span class="opacitymedium">'.$langs->trans(
"IfValidateInvoiceIsNoOrderStayUnbilled").
'</span>';
1480 print
' <span class="opacitymedium">'.$langs->trans(
"OptionToSetOrderBilledNotEnabled").
'</span>';
1486 print
'<div class="center">';
1487 print
'<input type="submit" class="button" id="createbills" name="createbills" value="'.$langs->trans(
'CreateInvoiceForThisCustomer').
'"> ';
1488 print
'<input type="submit" class="button button-cancel" id="cancel" name="cancel" value="'.$langs->trans(
"Cancel").
'">';
1495 foreach ($fieldstosearchall as $key => $val) {
1496 $fieldstosearchall[$key] = $langs->trans($val);
1497 $setupstring .= $key.
"=".$val.
";";
1499 print
'<!-- Search done like if MYOBJECT_QUICKSEARCH_ON_FIELDS = '.$setupstring.
' -->'.
"\n";
1500 print
'<div class="divsearchfieldfilter">'.$langs->trans(
"FilterOnInto", $search_all).implode(
', ', $fieldstosearchall).
'</div>';
1506if ($user->hasRight(
"user",
"user",
"lire")) {
1507 $langs->load(
"commercial");
1508 $moreforfilter .=
'<div class="divsearchfield">';
1509 $tmptitle = $langs->trans(
'ThirdPartiesOfSaleRepresentative');
1510 $moreforfilter .=
img_picto($tmptitle,
'user',
'class="pictofixedwidth"').$formother->select_salesrepresentatives($search_sale,
'search_sale', $user, 0, $tmptitle,
'maxwidth250 widthcentpercentminusx');
1511 $moreforfilter .=
'</div>';
1514if ($user->hasRight(
"user",
"user",
"lire")) {
1515 $moreforfilter .=
'<div class="divsearchfield">';
1516 $tmptitle = $langs->trans(
'LinkedToSpecificUsers');
1517 $moreforfilter .=
img_picto($tmptitle,
'user',
'class="pictofixedwidth"').$form->select_dolusers($search_user,
'search_user', $tmptitle,
'', 0,
'',
'', 0, 0, 0,
'', 0,
'',
'maxwidth250 widthcentpercentminusx');
1518 $moreforfilter .=
'</div>';
1522if (isModEnabled(
'category') && $user->hasRight(
"categorie",
"lire") && ($user->hasRight(
"produit",
"lire") || $user->hasRight(
"service",
"lire"))) {
1523 include_once DOL_DOCUMENT_ROOT.
'/categories/class/categorie.class.php';
1524 $moreforfilter .=
'<div class="divsearchfield">';
1525 $tmptitle = $langs->trans(
'IncludingProductWithTag');
1526 $cate_arbo = $form->select_all_categories(Categorie::TYPE_PRODUCT,
null,
'parent',
null,
null, 1);
1527 $moreforfilter .=
img_picto($tmptitle,
'category',
'class="pictofixedwidth"').$form->selectarray(
'search_product_category', $cate_arbo, $search_product_category, $tmptitle, 0, 0,
'', 0, 0, 0, 0,
'maxwidth300 widthcentpercentminusx', 1);
1528 $moreforfilter .=
'</div>';
1531if (isModEnabled(
'category') && $user->hasRight(
"categorie",
"lire")) {
1532 require_once DOL_DOCUMENT_ROOT.
'/categories/class/categorie.class.php';
1533 $moreforfilter .=
'<div class="divsearchfield">';
1534 $tmptitle = $langs->trans(
'CustomersProspectsCategoriesShort');
1535 $moreforfilter .=
img_picto($tmptitle,
'category',
'class="pictofixedwidth"').$formother->select_categories(
'customer', $search_categ_cus,
'search_categ_cus', 1, $tmptitle,
'maxwidth300 widthcentpercentminusx');
1536 $moreforfilter .=
'</div>';
1539if (isModEnabled(
'stock') &&
getDolGlobalString(
'WAREHOUSE_ASK_WAREHOUSE_DURING_ORDER')) {
1540 require_once DOL_DOCUMENT_ROOT.
'/product/class/html.formproduct.class.php';
1542 $moreforfilter .=
'<div class="divsearchfield">';
1543 $tmptitle = $langs->trans(
'Warehouse');
1544 $moreforfilter .=
img_picto($tmptitle,
'stock',
'class="pictofixedwidth"').$formproduct->selectWarehouses($search_warehouse,
'search_warehouse',
'', 1, 0, 0, $tmptitle, 0, 0, array(),
'maxwidth250 widthcentpercentminusx');
1545 $moreforfilter .=
'</div>';
1548$parameters = array();
1549$reshook = $hookmanager->executeHooks(
'printFieldPreListTitle', $parameters, $object, $action);
1550if (empty($reshook)) {
1551 $moreforfilter .= $hookmanager->resPrint;
1553 $moreforfilter = $hookmanager->resPrint;
1556if (!empty($moreforfilter)) {
1557 print
'<div class="liste_titre liste_titre_bydiv centpercent">';
1558 print $moreforfilter;
1562$varpage = empty($contextpage) ? $_SERVER[
"PHP_SELF"] : $contextpage;
1563$htmlofselectarray = $form->multiSelectArrayWithCheckbox(
'selectedfields', $arrayfields, $varpage,
getDolGlobalString(
'MAIN_CHECKBOX_LEFT_COLUMN'));
1564$selectedfields = ($mode !=
'kanban' ? $htmlofselectarray :
'');
1565$selectedfields .= (count($arrayofmassactions) ? $form->showCheckAddButtons(
'checkforselect', 1) :
'');
1568 $selectedfields .=
'<script>';
1569 $selectedfields .=
' $(document).ready(function() {';
1570 $selectedfields .=
' console.log("Autoclick on checkforselects");';
1571 $selectedfields .=
' $("#checkforselects").click();';
1572 $selectedfields .=
' $("#massaction").val("createbills").change();';
1573 $selectedfields .=
' });';
1574 $selectedfields .=
'</script>';
1577print
'<div class="div-table-responsive">';
1578print
'<table class="tagtable nobottomiftotal liste'.($moreforfilter ?
" listwithfilterbefore" :
"").
'">'.
"\n";
1582print
'<tr class="liste_titre_filter">';
1585 print
'<td class="liste_titre center maxwidthsearch">';
1586 $searchpicto = $form->showFilterButtons(
'left');
1592if (!empty($arrayfields[
'c.rowid'][
'checked'])) {
1593 print
'<td class="liste_titre">';
1594 print
'<input class="flat" size="6" type="text" name="search_id" value="'.dol_escape_htmltag($search_id).
'">';
1599if (!empty($arrayfields[
'c.ref'][
'checked'])) {
1600 print
'<td class="liste_titre">';
1601 print
'<input class="flat" size="6" type="text" name="search_ref" value="'.dol_escape_htmltag($search_ref).
'">';
1605if (!empty($arrayfields[
'c.ref_client'][
'checked'])) {
1606 print
'<td class="liste_titre" align="left">';
1607 print
'<input class="flat" type="text" size="6" name="search_ref_customer" value="'.dol_escape_htmltag($search_ref_customer).
'">';
1611if (!empty($arrayfields[
'p.ref'][
'checked'])) {
1612 print
'<td class="liste_titre"><input type="text" class="flat" size="6" name="search_project_ref" value="'.dol_escape_htmltag($search_project_ref).
'"></td>';
1615if (!empty($arrayfields[
'p.title'][
'checked'])) {
1616 print
'<td class="liste_titre"><input type="text" class="flat" size="6" name="search_project" value="'.dol_escape_htmltag($search_project).
'"></td>';
1619if (!empty($arrayfields[
's.nom'][
'checked'])) {
1620 print
'<td class="liste_titre" align="left">';
1621 print
'<input class="flat maxwidth100" type="text" name="search_company" value="'.dol_escape_htmltag($search_company).
'"'.(!empty($user->socid) ?
" disabled" :
"").
'>';
1625if (!empty($arrayfields[
's.name_alias'][
'checked'])) {
1626 print
'<td class="liste_titre" align="left">';
1627 print
'<input class="flat maxwidth100" type="text" name="search_company_alias" value="'.dol_escape_htmltag($search_company_alias).
'">';
1631if (!empty($arrayfields[
's2.nom'][
'checked'])) {
1632 print
'<td class="liste_titre">';
1633 print
'<input class="flat maxwidth100" type="text" name="search_parent_name" value="'.dol_escape_htmltag($search_parent_name).
'">';
1637if (!empty($arrayfields[
's.town'][
'checked'])) {
1638 print
'<td class="liste_titre"><input class="flat width50" type="text" name="search_town" value="'.dol_escape_htmltag($search_town).
'"></td>';
1641if (!empty($arrayfields[
's.zip'][
'checked'])) {
1642 print
'<td class="liste_titre"><input class="flat width50" type="text" name="search_zip" value="'.dol_escape_htmltag($search_zip).
'"></td>';
1645if (!empty($arrayfields[
'state.nom'][
'checked'])) {
1646 print
'<td class="liste_titre">';
1647 print
'<input class="flat width50" type="text" name="search_state" value="'.dol_escape_htmltag($search_state).
'">';
1651if (!empty($arrayfields[
'country.code_iso'][
'checked'])) {
1652 print
'<td class="liste_titre" align="center">';
1653 print $form->select_country($search_country,
'search_country',
'', 0,
'minwidth100imp maxwidth100');
1657if (!empty($arrayfields[
'typent.code'][
'checked'])) {
1658 print
'<td class="liste_titre maxwidthonsmartphone" align="center">';
1659 print $form->selectarray(
"search_type_thirdparty", $formcompany->typent_array(0), $search_type_thirdparty, 1, 0, 0,
'', 0, 0, 0, (!
getDolGlobalString(
'SOCIETE_SORT_ON_TYPEENT') ?
'ASC' : $conf->global->SOCIETE_SORT_ON_TYPEENT),
'', 1);
1663if (!empty($arrayfields[
'c.date_commande'][
'checked'])) {
1664 print
'<td class="liste_titre center">';
1665 print
'<div class="nowrapfordate">';
1666 print $form->selectDate($search_dateorder_start ? $search_dateorder_start : -1,
'search_dateorder_start_', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
'From'));
1668 print
'<div class="nowrapfordate">';
1669 print $form->selectDate($search_dateorder_end ? $search_dateorder_end : -1,
'search_dateorder_end_', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
'to'));
1673if (!empty($arrayfields[
'c.date_delivery'][
'checked'])) {
1674 print
'<td class="liste_titre center">';
1675 print
'<div class="nowrapfordate">';
1676 print $form->selectDate($search_datedelivery_start ? $search_datedelivery_start : -1,
'search_datedelivery_start_', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
'From'));
1678 print
'<div class="nowrapfordate">';
1679 print $form->selectDate($search_datedelivery_end ? $search_datedelivery_end : -1,
'search_datedelivery_end_', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
'to'));
1684if (!empty($arrayfields[
'c.fk_shipping_method'][
'checked'])) {
1685 print
'<td class="liste_titre">';
1686 $form->selectShippingMethod($search_fk_shipping_method,
'search_fk_shipping_method',
'', 1,
'', 1);
1690if (!empty($arrayfields[
'c.fk_cond_reglement'][
'checked'])) {
1691 print
'<td class="liste_titre">';
1692 print $form->getSelectConditionsPaiements($search_fk_cond_reglement,
'search_fk_cond_reglement', 1, 1, 1);
1696if (!empty($arrayfields[
'c.fk_mode_reglement'][
'checked'])) {
1697 print
'<td class="liste_titre">';
1698 print $form->select_types_paiements($search_fk_mode_reglement,
'search_fk_mode_reglement',
'', 0, 1, 1, 0, -1,
'', 1);
1702if (!empty($arrayfields[
'c.fk_input_reason'][
'checked'])) {
1703 print
'<td class="liste_titre">';
1704 $form->selectInputReason($search_fk_input_reason,
'search_fk_input_reason',
'', 1,
'', 1);
1708if (!empty($arrayfields[
'c.total_ht'][
'checked'])) {
1709 print
'<td class="liste_titre right">';
1710 print
'<input class="flat" type="text" size="4" name="search_total_ht" value="'.dol_escape_htmltag($search_total_ht).
'">';
1714if (!empty($arrayfields[
'c.total_vat'][
'checked'])) {
1715 print
'<td class="liste_titre right">';
1716 print
'<input class="flat" type="text" size="4" name="search_total_vat" value="'.dol_escape_htmltag($search_total_vat).
'">';
1720if (!empty($arrayfields[
'c.total_ttc'][
'checked'])) {
1721 print
'<td class="liste_titre right">';
1722 print
'<input class="flat" type="text" size="5" name="search_total_ttc" value="'.$search_total_ttc.
'">';
1726if (!empty($arrayfields[
'c.multicurrency_code'][
'checked'])) {
1727 print
'<td class="liste_titre">';
1728 print $form->selectMultiCurrency($search_multicurrency_code,
'search_multicurrency_code', 1);
1732if (!empty($arrayfields[
'c.multicurrency_tx'][
'checked'])) {
1733 print
'<td class="liste_titre">';
1734 print
'<input class="flat" type="text" size="4" name="search_multicurrency_tx" value="'.dol_escape_htmltag($search_multicurrency_tx).
'">';
1738if (!empty($arrayfields[
'c.multicurrency_total_ht'][
'checked'])) {
1739 print
'<td class="liste_titre right">';
1740 print
'<input class="flat" type="text" size="4" name="search_multicurrency_montant_ht" value="'.dol_escape_htmltag($search_multicurrency_montant_ht).
'">';
1744if (!empty($arrayfields[
'c.multicurrency_total_vat'][
'checked'])) {
1745 print
'<td class="liste_titre right">';
1746 print
'<input class="flat" type="text" size="4" name="search_multicurrency_montant_vat" value="'.dol_escape_htmltag($search_multicurrency_montant_vat).
'">';
1750if (!empty($arrayfields[
'c.multicurrency_total_ttc'][
'checked'])) {
1751 print
'<td class="liste_titre right">';
1752 print
'<input class="flat width75" type="text" name="search_multicurrency_montant_ttc" value="'.dol_escape_htmltag($search_multicurrency_montant_ttc).
'">';
1756if (!empty($arrayfields[
'u.login'][
'checked'])) {
1757 print
'<td class="liste_titre">';
1758 print
'<input class="flat width75" type="text" name="search_login" value="'.dol_escape_htmltag($search_login).
'">';
1762if (!empty($arrayfields[
'sale_representative'][
'checked'])) {
1763 print
'<td class="liste_titre"></td>';
1765if (!empty($arrayfields[
'total_pa'][
'checked'])) {
1766 print
'<td class="liste_titre right">';
1769if (!empty($arrayfields[
'total_margin'][
'checked'])) {
1770 print
'<td class="liste_titre right">';
1773if (!empty($arrayfields[
'total_margin_rate'][
'checked'])) {
1774 print
'<td class="liste_titre right">';
1777if (!empty($arrayfields[
'total_mark_rate'][
'checked'])) {
1778 print
'<td class="liste_titre right">';
1783if (!empty($arrayfields[
'c.datec'][
'checked'])) {
1784 print
'<td class="liste_titre">';
1788if (!empty($arrayfields[
'c.tms'][
'checked'])) {
1789 print
'<td class="liste_titre">';
1793if (!empty($arrayfields[
'c.date_cloture'][
'checked'])) {
1794 print
'<td class="liste_titre center">';
1795 print
'<div class="nowrapfordate">';
1796 print $form->selectDate($search_datecloture_start ? $search_datecloture_start : -1,
'search_datecloture_start', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
'From'));
1798 print
'<div class="nowrapfordate">';
1799 print $form->selectDate($search_datecloture_end ? $search_datecloture_end : -1,
'search_datecloture_end', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
'to'));
1804if (!empty($arrayfields[
'c.note_public'][
'checked'])) {
1805 print
'<td class="liste_titre">';
1809if (!empty($arrayfields[
'c.note_private'][
'checked'])) {
1810 print
'<td class="liste_titre">';
1814if (!empty($arrayfields[
'shippable'][
'checked'])) {
1815 print
'<td class="liste_titre maxwidthonsmartphone" align="center">';
1818 print
'<input type="checkbox" name="show_shippable_command" value="1"'.($show_shippable_command ?
' checked' :
'').
'>';
1819 print $langs->trans(
'ShowShippableStatus');
1821 $show_shippable_command = 1;
1827include DOL_DOCUMENT_ROOT.
'/core/tpl/extrafields_list_search_input.tpl.php';
1830$parameters = array(
'arrayfields' => $arrayfields);
1831$reshook = $hookmanager->executeHooks(
'printFieldListOption', $parameters, $object, $action);
1832print $hookmanager->resPrint;
1835if (!empty($arrayfields[
'c.facture'][
'checked'])) {
1836 print
'<td class="liste_titre maxwidthonsmartphone center">';
1837 print $form->selectyesno(
'search_billed', $search_billed, 1, 0, 1, 1);
1842if (!empty($arrayfields[
'c.import_key'][
'checked'])) {
1843 print
'<td class="liste_titre maxwidthonsmartphone center">';
1848if (!empty($arrayfields[
'c.fk_statut'][
'checked'])) {
1849 print
'<td class="liste_titre center parentonrightofpage">';
1850 $liststatus = array(
1854 -2 => $langs->trans(
"StatusOrderValidatedShort").
'+'.$langs->trans(
"StatusOrderSentShort"),
1855 -3 => $langs->trans(
"StatusOrderValidatedShort").
'+'.$langs->trans(
"StatusOrderSentShort").
'+'.$langs->trans(
"StatusOrderDelivered"),
1860 print $form->selectarray(
'search_status', $liststatus, $search_status, -5, 0, 0,
'', 0, 0, 0,
'',
'search_status width100 onrightofpage', 1);
1865 print
'<td class="liste_titre center maxwidthsearch">';
1866 $searchpicto = $form->showFilterButtons();
1885print
'<tr class="liste_titre">';
1889 print_liste_field_titre($selectedfields, $_SERVER[
"PHP_SELF"],
"",
'', $param,
'', $sortfield, $sortorder,
'maxwidthsearch center ');
1890 $totalarray[
'nbfield']++;
1892if (!empty($arrayfields[
'c.rowid'][
'checked'])) {
1893 print_liste_field_titre($arrayfields[
'c.rowid'][
'label'], $_SERVER[
"PHP_SELF"],
'c.rowid',
'', $param,
'', $sortfield, $sortorder,
'center ');
1894 $totalarray[
'nbfield']++;
1896if (!empty($arrayfields[
'c.ref'][
'checked'])) {
1897 print_liste_field_titre($arrayfields[
'c.ref'][
'label'], $_SERVER[
"PHP_SELF"],
'c.ref',
'', $param,
'', $sortfield, $sortorder);
1898 $totalarray[
'nbfield']++;
1900if (!empty($arrayfields[
'c.ref_client'][
'checked'])) {
1901 print_liste_field_titre($arrayfields[
'c.ref_client'][
'label'], $_SERVER[
"PHP_SELF"],
'c.ref_client',
'', $param,
'', $sortfield, $sortorder);
1902 $totalarray[
'nbfield']++;
1904if (!empty($arrayfields[
'p.ref'][
'checked'])) {
1905 print_liste_field_titre($arrayfields[
'p.ref'][
'label'], $_SERVER[
"PHP_SELF"],
"p.ref",
"", $param,
'', $sortfield, $sortorder);
1906 $totalarray[
'nbfield']++;
1908if (!empty($arrayfields[
'p.title'][
'checked'])) {
1909 print_liste_field_titre($arrayfields[
'p.title'][
'label'], $_SERVER[
"PHP_SELF"],
"p.title",
"", $param,
'', $sortfield, $sortorder);
1910 $totalarray[
'nbfield']++;
1912if (!empty($arrayfields[
's.nom'][
'checked'])) {
1913 print_liste_field_titre($arrayfields[
's.nom'][
'label'], $_SERVER[
"PHP_SELF"],
's.nom',
'', $param,
'', $sortfield, $sortorder);
1914 $totalarray[
'nbfield']++;
1916if (!empty($arrayfields[
's.name_alias'][
'checked'])) {
1917 print_liste_field_titre($arrayfields[
's.name_alias'][
'label'], $_SERVER[
"PHP_SELF"],
's.name_alias',
'', $param,
'', $sortfield, $sortorder);
1918 $totalarray[
'nbfield']++;
1920if (!empty($arrayfields[
's2.nom'][
'checked'])) {
1921 print_liste_field_titre($arrayfields[
's2.nom'][
'label'], $_SERVER[
'PHP_SELF'],
's2.nom',
'', $param,
'', $sortfield, $sortorder);
1922 $totalarray[
'nbfield']++;
1924if (!empty($arrayfields[
's.town'][
'checked'])) {
1925 print_liste_field_titre($arrayfields[
's.town'][
'label'], $_SERVER[
"PHP_SELF"],
's.town',
'', $param,
'', $sortfield, $sortorder);
1926 $totalarray[
'nbfield']++;
1928if (!empty($arrayfields[
's.zip'][
'checked'])) {
1929 print_liste_field_titre($arrayfields[
's.zip'][
'label'], $_SERVER[
"PHP_SELF"],
's.zip',
'', $param,
'', $sortfield, $sortorder);
1930 $totalarray[
'nbfield']++;
1932if (!empty($arrayfields[
'state.nom'][
'checked'])) {
1933 print_liste_field_titre($arrayfields[
'state.nom'][
'label'], $_SERVER[
"PHP_SELF"],
"state.nom",
"", $param,
'', $sortfield, $sortorder);
1934 $totalarray[
'nbfield']++;
1936if (!empty($arrayfields[
'country.code_iso'][
'checked'])) {
1937 print_liste_field_titre($arrayfields[
'country.code_iso'][
'label'], $_SERVER[
"PHP_SELF"],
"country.code_iso",
"", $param,
'', $sortfield, $sortorder,
'center ');
1938 $totalarray[
'nbfield']++;
1940if (!empty($arrayfields[
'typent.code'][
'checked'])) {
1941 print_liste_field_titre($arrayfields[
'typent.code'][
'label'], $_SERVER[
"PHP_SELF"],
"typent.code",
"", $param,
'', $sortfield, $sortorder,
'center ');
1942 $totalarray[
'nbfield']++;
1944if (!empty($arrayfields[
'c.date_commande'][
'checked'])) {
1945 print_liste_field_titre($arrayfields[
'c.date_commande'][
'label'], $_SERVER[
"PHP_SELF"],
'c.date_commande',
'', $param,
'', $sortfield, $sortorder,
'center ');
1946 $totalarray[
'nbfield']++;
1948if (!empty($arrayfields[
'c.date_delivery'][
'checked'])) {
1949 print_liste_field_titre($arrayfields[
'c.date_delivery'][
'label'], $_SERVER[
"PHP_SELF"],
'c.date_livraison',
'', $param,
'', $sortfield, $sortorder,
'center ');
1950 $totalarray[
'nbfield']++;
1952if (!empty($arrayfields[
'c.fk_shipping_method'][
'checked'])) {
1953 print_liste_field_titre($arrayfields[
'c.fk_shipping_method'][
'label'], $_SERVER[
"PHP_SELF"],
"c.fk_shipping_method",
"", $param,
'', $sortfield, $sortorder);
1954 $totalarray[
'nbfield']++;
1956if (!empty($arrayfields[
'c.fk_cond_reglement'][
'checked'])) {
1957 print_liste_field_titre($arrayfields[
'c.fk_cond_reglement'][
'label'], $_SERVER[
"PHP_SELF"],
"c.fk_cond_reglement",
"", $param,
'', $sortfield, $sortorder);
1958 $totalarray[
'nbfield']++;
1960if (!empty($arrayfields[
'c.fk_mode_reglement'][
'checked'])) {
1961 print_liste_field_titre($arrayfields[
'c.fk_mode_reglement'][
'label'], $_SERVER[
"PHP_SELF"],
"c.fk_mode_reglement",
"", $param,
'', $sortfield, $sortorder);
1962 $totalarray[
'nbfield']++;
1964if (!empty($arrayfields[
'c.fk_input_reason'][
'checked'])) {
1965 print_liste_field_titre($arrayfields[
'c.fk_input_reason'][
'label'], $_SERVER[
"PHP_SELF"],
"c.fk_input_reason",
"", $param,
'', $sortfield, $sortorder);
1966 $totalarray[
'nbfield']++;
1968if (!empty($arrayfields[
'c.total_ht'][
'checked'])) {
1969 print_liste_field_titre($arrayfields[
'c.total_ht'][
'label'], $_SERVER[
"PHP_SELF"],
'c.total_ht',
'', $param,
'', $sortfield, $sortorder,
'right ');
1970 $totalarray[
'nbfield']++;
1972if (!empty($arrayfields[
'c.total_vat'][
'checked'])) {
1973 print_liste_field_titre($arrayfields[
'c.total_vat'][
'label'], $_SERVER[
"PHP_SELF"],
'c.total_tva',
'', $param,
'', $sortfield, $sortorder,
'right ');
1974 $totalarray[
'nbfield']++;
1976if (!empty($arrayfields[
'c.total_ttc'][
'checked'])) {
1977 print_liste_field_titre($arrayfields[
'c.total_ttc'][
'label'], $_SERVER[
"PHP_SELF"],
'c.total_ttc',
'', $param,
'', $sortfield, $sortorder,
'right ');
1978 $totalarray[
'nbfield']++;
1980if (!empty($arrayfields[
'c.multicurrency_code'][
'checked'])) {
1981 print_liste_field_titre($arrayfields[
'c.multicurrency_code'][
'label'], $_SERVER[
'PHP_SELF'],
'c.multicurrency_code',
'', $param,
'', $sortfield, $sortorder);
1982 $totalarray[
'nbfield']++;
1984if (!empty($arrayfields[
'c.multicurrency_tx'][
'checked'])) {
1985 print_liste_field_titre($arrayfields[
'c.multicurrency_tx'][
'label'], $_SERVER[
'PHP_SELF'],
'c.multicurrency_tx',
'', $param,
'', $sortfield, $sortorder);
1986 $totalarray[
'nbfield']++;
1988if (!empty($arrayfields[
'c.multicurrency_total_ht'][
'checked'])) {
1989 print_liste_field_titre($arrayfields[
'c.multicurrency_total_ht'][
'label'], $_SERVER[
'PHP_SELF'],
'c.multicurrency_total_ht',
'', $param,
'class="right"', $sortfield, $sortorder);
1990 $totalarray[
'nbfield']++;
1992if (!empty($arrayfields[
'c.multicurrency_total_vat'][
'checked'])) {
1993 print_liste_field_titre($arrayfields[
'c.multicurrency_total_vat'][
'label'], $_SERVER[
'PHP_SELF'],
'c.multicurrency_total_tva',
'', $param,
'class="right"', $sortfield, $sortorder);
1994 $totalarray[
'nbfield']++;
1996if (!empty($arrayfields[
'c.multicurrency_total_ttc'][
'checked'])) {
1997 print_liste_field_titre($arrayfields[
'c.multicurrency_total_ttc'][
'label'], $_SERVER[
'PHP_SELF'],
'c.multicurrency_total_ttc',
'', $param,
'class="right"', $sortfield, $sortorder);
1998 $totalarray[
'nbfield']++;
2000if (!empty($arrayfields[
'u.login'][
'checked'])) {
2001 print_liste_field_titre($arrayfields[
'u.login'][
'label'], $_SERVER[
"PHP_SELF"],
'u.login',
'', $param,
'', $sortfield, $sortorder);
2002 $totalarray[
'nbfield']++;
2004if (!empty($arrayfields[
'sale_representative'][
'checked'])) {
2005 print_liste_field_titre($arrayfields[
'sale_representative'][
'label'], $_SERVER[
"PHP_SELF"],
"",
"",
"$param",
'', $sortfield, $sortorder);
2006 $totalarray[
'nbfield']++;
2008if (!empty($arrayfields[
'total_pa'][
'checked'])) {
2009 print_liste_field_titre($arrayfields[
'total_pa'][
'label'], $_SERVER[
'PHP_SELF'],
'',
'', $param,
'class="right"', $sortfield, $sortorder);
2010 $totalarray[
'nbfield']++;
2012if (!empty($arrayfields[
'total_margin'][
'checked'])) {
2013 print_liste_field_titre($arrayfields[
'total_margin'][
'label'], $_SERVER[
'PHP_SELF'],
'',
'', $param,
'class="right"', $sortfield, $sortorder);
2014 $totalarray[
'nbfield']++;
2016if (!empty($arrayfields[
'total_margin_rate'][
'checked'])) {
2017 print_liste_field_titre($arrayfields[
'total_margin_rate'][
'label'], $_SERVER[
'PHP_SELF'],
'',
'', $param,
'class="right"', $sortfield, $sortorder);
2018 $totalarray[
'nbfield']++;
2020if (!empty($arrayfields[
'total_mark_rate'][
'checked'])) {
2021 print_liste_field_titre($arrayfields[
'total_mark_rate'][
'label'], $_SERVER[
'PHP_SELF'],
'',
'', $param,
'class="right"', $sortfield, $sortorder);
2022 $totalarray[
'nbfield']++;
2025if (!empty($arrayfields[
'c.datec'][
'checked'])) {
2026 print_liste_field_titre($arrayfields[
'c.datec'][
'label'], $_SERVER[
"PHP_SELF"],
"c.date_creation",
"", $param,
'', $sortfield, $sortorder,
'center nowrap ');
2027 $totalarray[
'nbfield']++;
2029if (!empty($arrayfields[
'c.tms'][
'checked'])) {
2030 print_liste_field_titre($arrayfields[
'c.tms'][
'label'], $_SERVER[
"PHP_SELF"],
"c.tms",
"", $param,
'', $sortfield, $sortorder,
'center nowrap ');
2031 $totalarray[
'nbfield']++;
2033if (!empty($arrayfields[
'c.date_cloture'][
'checked'])) {
2034 print_liste_field_titre($arrayfields[
'c.date_cloture'][
'label'], $_SERVER[
"PHP_SELF"],
"c.date_cloture",
"", $param,
'', $sortfield, $sortorder,
'center nowrap ');
2035 $totalarray[
'nbfield']++;
2037if (!empty($arrayfields[
'c.note_public'][
'checked'])) {
2038 print_liste_field_titre($arrayfields[
'c.note_public'][
'label'], $_SERVER[
"PHP_SELF"],
"c.note_public",
"", $param,
'', $sortfield, $sortorder,
'right ');
2039 $totalarray[
'nbfield']++;
2041if (!empty($arrayfields[
'c.note_private'][
'checked'])) {
2042 print_liste_field_titre($arrayfields[
'c.note_private'][
'label'], $_SERVER[
"PHP_SELF"],
"c.note_private",
"", $param,
'', $sortfield, $sortorder,
'right ');
2043 $totalarray[
'nbfield']++;
2045if (!empty($arrayfields[
'shippable'][
'checked'])) {
2046 print_liste_field_titre($arrayfields[
'shippable'][
'label'], $_SERVER[
"PHP_SELF"],
'',
'', $param,
'', $sortfield, $sortorder,
'center ');
2047 $totalarray[
'nbfield']++;
2050include DOL_DOCUMENT_ROOT.
'/core/tpl/extrafields_list_search_title.tpl.php';
2053$parameters = array(
'arrayfields' => $arrayfields,
'param' => $param,
'sortfield' => $sortfield,
'sortorder' => $sortorder,
'totalarray' => &$totalarray);
2054$reshook = $hookmanager->executeHooks(
'printFieldListTitle', $parameters, $object, $action);
2055print $hookmanager->resPrint;
2057if (!empty($arrayfields[
'c.facture'][
'checked'])) {
2058 print_liste_field_titre($arrayfields[
'c.facture'][
'label'], $_SERVER[
"PHP_SELF"],
'c.facture',
'', $param,
'', $sortfield, $sortorder,
'center ');
2059 $totalarray[
'nbfield']++;
2061if (!empty($arrayfields[
'c.import_key'][
'checked'])) {
2062 print_liste_field_titre($arrayfields[
'c.import_key'][
'label'], $_SERVER[
"PHP_SELF"],
"c.import_key",
"", $param,
'', $sortfield, $sortorder,
'center ');
2063 $totalarray[
'nbfield']++;
2065if (!empty($arrayfields[
'c.fk_statut'][
'checked'])) {
2066 print_liste_field_titre($arrayfields[
'c.fk_statut'][
'label'], $_SERVER[
"PHP_SELF"],
"c.fk_statut",
"", $param,
'', $sortfield, $sortorder,
'center ');
2067 $totalarray[
'nbfield']++;
2071 print_liste_field_titre($selectedfields, $_SERVER[
"PHP_SELF"],
"",
'', $param,
'', $sortfield, $sortorder,
'maxwidthsearch center ');
2072 $totalarray[
'nbfield']++;
2078$productstat_cache = array();
2079$productstat_cachevirtual = array();
2080$getNomUrl_cache = array();
2082$generic_commande =
new Commande($db);
2083$generic_product =
new Product($db);
2084$userstatic =
new User($db);
2086$with_margin_info =
false;
2087if (isModEnabled(
'margin') && (
2088 !empty($arrayfields[
'total_pa'][
'checked'])
2089 || !empty($arrayfields[
'total_margin'][
'checked'])
2090 || !empty($arrayfields[
'total_margin_rate'][
'checked'])
2091 || !empty($arrayfields[
'total_mark_rate'][
'checked'])
2094 $with_margin_info =
true;
2103$savnbfield = $totalarray[
'nbfield'];
2104$totalarray = array();
2105$totalarray[
'nbfield'] = 0;
2106$imaxinloop = ($limit ? min($num, $limit) : $num);
2107while ($i < $imaxinloop) {
2108 $obj = $db->fetch_object($resql);
2119 $companystatic->id = $obj->socid;
2120 $companystatic->name = $obj->name;
2121 $companystatic->name_alias = $obj->alias;
2122 $companystatic->client = $obj->client;
2123 $companystatic->fournisseur = $obj->fournisseur;
2124 $companystatic->code_client = $obj->code_client;
2125 $companystatic->email = $obj->email;
2126 $companystatic->phone = $obj->phone;
2127 $companystatic->address = $obj->address;
2128 $companystatic->zip = $obj->zip;
2129 $companystatic->town = $obj->town;
2130 $companystatic->country_code = $obj->country_code;
2131 if (!isset($getNomUrl_cache[$obj->socid])) {
2132 $getNomUrl_cache[$obj->socid] = $companystatic->getNomUrl(1,
'customer', 100, 0, 1, empty($arrayfields[
's.name_alias'][
'checked']) ? 0 : 1);
2135 $generic_commande->id = $obj->rowid;
2136 $generic_commande->ref = $obj->ref;
2137 $generic_commande->statut = $obj->fk_statut;
2138 $generic_commande->billed = $obj->billed;
2139 $generic_commande->date = $db->jdate($obj->date_commande);
2140 $generic_commande->delivery_date = $db->jdate($obj->date_delivery);
2141 $generic_commande->ref_client = $obj->ref_client;
2142 $generic_commande->total_ht = $obj->total_ht;
2143 $generic_commande->total_tva = $obj->total_tva;
2144 $generic_commande->total_ttc = $obj->total_ttc;
2145 $generic_commande->note_public = $obj->note_public;
2146 $generic_commande->note_private = $obj->note_private;
2148 $generic_commande->thirdparty = $companystatic;
2151 $projectstatic->id = $obj->project_id;
2152 $projectstatic->ref = $obj->project_ref;
2153 $projectstatic->title = $obj->project_label;
2155 $marginInfo = array();
2156 if ($with_margin_info ===
true) {
2157 $generic_commande->fetch_lines();
2158 $marginInfo = $formmargin->getMarginInfosArray($generic_commande);
2159 $total_ht += $obj->total_ht;
2160 $total_margin += $marginInfo[
'total_margin'];
2163 if ($mode ==
'kanban') {
2165 print
'<tr class="trkanban"><td colspan="'.$savnbfield.
'">';
2166 print
'<div class="box-flex-container kanban">';
2171 if ($massactionbutton || $massaction) {
2173 if (in_array(
$object->id, $arrayofselected)) {
2177 print $generic_commande->getKanbanView(
'', array(
'selected' => $selected));
2178 if ($i == ($imaxinloop - 1)) {
2185 print
'<tr data-rowid="'.$object->id.
'" class="oddeven">';
2189 print
'<td class="nowrap center">';
2190 if ($massactionbutton || $massaction) {
2192 if (in_array($obj->rowid, $arrayofselected)) {
2195 print
'<input id="cb'.$obj->rowid.
'" class="flat checkforselect" type="checkbox" name="toselect[]" value="'.$obj->rowid.
'"'.($selected ?
' checked="checked"' :
'').
'>';
2199 $totalarray[
'nbfield']++;
2204 if (!empty($arrayfields[
'c.rowid'][
'checked'])) {
2205 print
'<td class="center" data-key="id">'.$obj->rowid.
'</td>';
2207 $totalarray[
'nbfield']++;
2212 if (!empty($arrayfields[
'c.ref'][
'checked'])) {
2213 print
'<td class="nowraponall">';
2214 $getNomUrlOption = $search_status != 2 ? 0 : $obj->fk_statut;
2220 $getNomUrlOption =
'';
2222 print $generic_commande->getNomUrl(1, $getNomUrlOption, 0, 0, 0, 1, 1);
2225 $filedir = $conf->commande->multidir_output[$conf->entity].
'/'.
dol_sanitizeFileName($obj->ref);
2226 $urlsource = $_SERVER[
'PHP_SELF'].
'?id='.$obj->rowid;
2227 print $formfile->getDocumentsLink($generic_commande->element, $filename, $filedir);
2231 $totalarray[
'nbfield']++;
2236 if (!empty($arrayfields[
'c.ref_client'][
'checked'])) {
2237 print
'<td class="nowrap tdoverflowmax150" title="'.dol_escape_htmltag($obj->ref_client).
'">';
2241 $totalarray[
'nbfield']++;
2246 if (!empty($arrayfields[
'p.ref'][
'checked'])) {
2247 print
'<td class="nowrap">';
2248 if ($obj->project_id > 0) {
2249 print $projectstatic->getNomUrl(1);
2253 $totalarray[
'nbfield']++;
2258 if (!empty($arrayfields[
'p.title'][
'checked'])) {
2259 print
'<td class="nowrap">';
2260 if ($obj->project_id > 0) {
2261 print $projectstatic->title;
2265 $totalarray[
'nbfield']++;
2270 if (!empty($arrayfields[
's.nom'][
'checked'])) {
2271 print
'<td class="tdoverflowmax150">';
2273 print $companystatic->getNomUrl(1,
'customer', 100, 0, 1, empty($arrayfields[
's.name_alias'][
'checked']) ? 0 : 1);
2275 print $getNomUrl_cache[$obj->socid];
2280 if ($user->hasRight(
'facture',
'creer')) {
2281 if (($obj->fk_statut > 0 && $obj->fk_statut < 3) || ($obj->fk_statut == 3 && $obj->billed == 0)) {
2282 print
' <a href="'.DOL_URL_ROOT.
'/commande/list.php?socid='.$companystatic->id.
'&search_billed=0&autoselectall=1">';
2283 print
img_picto($langs->trans(
"CreateInvoiceForThisCustomer").
' : '.$companystatic->name,
'object_bill',
'hideonsmartphone').
'</a>';
2289 $totalarray[
'nbfield']++;
2294 if (!empty($arrayfields[
's.name_alias'][
'checked'])) {
2295 print
'<td class="nocellnopadd tdoverflowmax100" title="'.dolPrintHTMLForTextArea($obj->alias).
'">';
2299 $totalarray[
'nbfield']++;
2304 if (!empty($arrayfields[
's2.nom'][
'checked'])) {
2305 print
'<td class="tdoverflowmax200">';
2306 if ($obj->fk_parent > 0) {
2307 if (!isset($company_url_list[$obj->fk_parent])) {
2308 $companyparent =
new Societe($db);
2309 $res = $companyparent->fetch($obj->fk_parent);
2311 $company_url_list[$obj->fk_parent] = $companyparent->getNomUrl(1);
2314 if (isset($company_url_list[$obj->fk_parent])) {
2315 print $company_url_list[$obj->fk_parent];
2320 $totalarray[
'nbfield']++;
2325 if (!empty($arrayfields[
's.town'][
'checked'])) {
2326 print
'<td class="tdoverflowmax100" title="'.dolPrintHTMLForTextArea($obj->town).
'">';
2330 $totalarray[
'nbfield']++;
2335 if (!empty($arrayfields[
's.zip'][
'checked'])) {
2336 print
'<td class="tdoverflowmax100" title="'.dolPrintHTMLForTextArea($obj->zip).
'">';
2340 $totalarray[
'nbfield']++;
2345 if (!empty($arrayfields[
'state.nom'][
'checked'])) {
2346 print
'<td class="tdoverflowmax100" title="'.dolPrintHTMLForTextArea($obj->state_name).
'">'.
dolPrintLabel($obj->state_name).
"</td>\n";
2348 $totalarray[
'nbfield']++;
2353 if (!empty($arrayfields[
'country.code_iso'][
'checked'])) {
2354 print
'<td class="center">';
2355 $tmparray =
getCountry($obj->fk_pays,
'all');
2356 print $tmparray[
'label'];
2359 $totalarray[
'nbfield']++;
2364 if (!empty($arrayfields[
'typent.code'][
'checked'])) {
2365 print
'<td class="center">';
2366 if (empty($typenArray)) {
2367 $typenArray = $formcompany->typent_array(1);
2369 print $typenArray[$obj->typent_code]??
'';
2372 $totalarray[
'nbfield']++;
2377 if (!empty($arrayfields[
'c.date_commande'][
'checked'])) {
2378 print
'<td class="center nowraponall">';
2381 if ($generic_commande->hasDelay()) {
2382 print
img_picto($langs->trans(
"Late").
' : '.$generic_commande->showDelay(),
"warning");
2386 $totalarray[
'nbfield']++;
2391 if (!empty($arrayfields[
'c.date_delivery'][
'checked'])) {
2392 print
'<td class="center nowraponall">';
2393 print
dol_print_date($db->jdate($obj->date_delivery),
'dayhour');
2396 $totalarray[
'nbfield']++;
2401 if (!empty($arrayfields[
'c.fk_shipping_method'][
'checked'])) {
2403 $form->formSelectShippingMethod(
'', $obj->fk_shipping_method,
'none', 1);
2406 $totalarray[
'nbfield']++;
2411 if (!empty($arrayfields[
'c.fk_cond_reglement'][
'checked'])) {
2413 $form->form_conditions_reglement($_SERVER[
'PHP_SELF'], $obj->fk_cond_reglement,
'none', 0,
'', 1, $obj->deposit_percent);
2416 $totalarray[
'nbfield']++;
2421 if (!empty($arrayfields[
'c.fk_mode_reglement'][
'checked'])) {
2423 $form->form_modes_reglement($_SERVER[
'PHP_SELF'], $obj->fk_mode_reglement,
'none',
'', -1);
2426 $totalarray[
'nbfield']++;
2431 if (!empty($arrayfields[
'c.fk_input_reason'][
'checked'])) {
2433 $form->formInputReason($_SERVER[
'PHP_SELF'], $obj->fk_input_reason,
'none',
'');
2436 $totalarray[
'nbfield']++;
2441 if (!empty($arrayfields[
'c.total_ht'][
'checked'])) {
2442 print
'<td class="nowrap right"><span class="amount">'.price($obj->total_ht).
"</span></td>\n";
2444 $totalarray[
'nbfield']++;
2447 $totalarray[
'pos'][$totalarray[
'nbfield']] =
'c.total_ht';
2449 if (isset($totalarray[
'val'][
'c.total_ht'])) {
2450 $totalarray[
'val'][
'c.total_ht'] += $obj->total_ht;
2452 $totalarray[
'val'][
'c.total_ht'] = $obj->total_ht;
2457 if (!empty($arrayfields[
'c.total_vat'][
'checked'])) {
2458 print
'<td class="nowrap right"><span class="amount">'.price($obj->total_tva).
"</span></td>\n";
2460 $totalarray[
'nbfield']++;
2463 $totalarray[
'pos'][$totalarray[
'nbfield']] =
'c.total_tva';
2465 if (isset($totalarray[
'val'][
'c.total_tva'])) {
2466 $totalarray[
'val'][
'c.total_tva'] += $obj->total_tva;
2468 $totalarray[
'val'][
'c.total_tva'] = $obj->total_tva;
2473 if (!empty($arrayfields[
'c.total_ttc'][
'checked'])) {
2474 print
'<td class="nowrap right"><span class="amount">'.price($obj->total_ttc).
"</span></td>\n";
2476 $totalarray[
'nbfield']++;
2479 $totalarray[
'pos'][$totalarray[
'nbfield']] =
'c.total_ttc';
2481 if (isset($totalarray[
'val'][
'c.total_ttc'])) {
2482 $totalarray[
'val'][
'c.total_ttc'] += $obj->total_ttc;
2484 $totalarray[
'val'][
'c.total_ttc'] = $obj->total_ttc;
2489 if (!empty($arrayfields[
'c.multicurrency_code'][
'checked'])) {
2490 print
'<td class="nowrap">'.$obj->multicurrency_code.
' - '.$langs->trans(
'Currency'.$obj->multicurrency_code).
"</td>\n";
2492 $totalarray[
'nbfield']++;
2497 if (!empty($arrayfields[
'c.multicurrency_tx'][
'checked'])) {
2498 print
'<td class="nowrap">';
2499 $form->form_multicurrency_rate($_SERVER[
'PHP_SELF'].
'?id='.$obj->rowid, $obj->multicurrency_tx,
'none', $obj->multicurrency_code);
2502 $totalarray[
'nbfield']++;
2507 if (!empty($arrayfields[
'c.multicurrency_total_ht'][
'checked'])) {
2508 print
'<td class="right nowrap"><span class="amount">'.price($obj->multicurrency_total_ht).
"</span></td>\n";
2510 $totalarray[
'nbfield']++;
2514 if (!empty($arrayfields[
'c.multicurrency_total_vat'][
'checked'])) {
2515 print
'<td class="right nowrap"><span class="amount">'.price($obj->multicurrency_total_vat).
"</span></td>\n";
2517 $totalarray[
'nbfield']++;
2521 if (!empty($arrayfields[
'c.multicurrency_total_ttc'][
'checked'])) {
2522 print
'<td class="right nowrap"><span class="amount">'.price($obj->multicurrency_total_ttc).
"</span></td>\n";
2524 $totalarray[
'nbfield']++;
2528 $userstatic->id = $obj->fk_user_author;
2529 $userstatic->login = $obj->login;
2530 $userstatic->lastname = $obj->lastname;
2531 $userstatic->firstname = $obj->firstname;
2532 $userstatic->email = $obj->user_email;
2533 $userstatic->status = $obj->user_statut;
2534 $userstatic->entity = $obj->entity;
2535 $userstatic->photo = $obj->photo;
2536 $userstatic->office_phone = $obj->office_phone;
2537 $userstatic->office_fax = $obj->office_fax;
2538 $userstatic->user_mobile = $obj->user_mobile;
2539 $userstatic->job = $obj->job;
2540 $userstatic->gender = $obj->gender;
2543 if (!empty($arrayfields[
'u.login'][
'checked'])) {
2544 print
'<td class="tdoverflowmax150">';
2545 if ($userstatic->id) {
2546 print $userstatic->getNomUrl(-1);
2552 $totalarray[
'nbfield']++;
2557 if (!empty($arrayfields[
'sale_representative'][
'checked'])) {
2559 if ($obj->socid > 0) {
2560 $listsalesrepresentatives = $companystatic->getSalesRepresentatives($user);
2561 if ($listsalesrepresentatives < 0) {
2564 $nbofsalesrepresentative = count($listsalesrepresentatives);
2565 if ($nbofsalesrepresentative > 6) {
2567 print $nbofsalesrepresentative;
2568 } elseif ($nbofsalesrepresentative > 0) {
2570 foreach ($listsalesrepresentatives as $val) {
2571 $userstatic->id = $val[
'id'];
2572 $userstatic->lastname = $val[
'lastname'];
2573 $userstatic->firstname = $val[
'firstname'];
2574 $userstatic->email = $val[
'email'];
2575 $userstatic->status = $val[
'statut'];
2576 $userstatic->entity = $val[
'entity'];
2577 $userstatic->photo = $val[
'photo'];
2578 $userstatic->login = $val[
'login'];
2579 $userstatic->office_phone = $val[
'office_phone'];
2580 $userstatic->office_fax = $val[
'office_fax'];
2581 $userstatic->user_mobile = $val[
'user_mobile'];
2582 $userstatic->job = $val[
'job'];
2583 $userstatic->gender = $val[
'gender'];
2585 print ($nbofsalesrepresentative < 2) ? $userstatic->getNomUrl(-1,
'', 0, 0, 12) : $userstatic->getNomUrl(-2);
2587 if ($j < $nbofsalesrepresentative) {
2599 $totalarray[
'nbfield']++;
2604 if (!empty($arrayfields[
'total_pa'][
'checked'])) {
2605 print
'<td class="right nowrap">'.price($marginInfo[
'pa_total']).
'</td>';
2607 $totalarray[
'nbfield']++;
2612 if (!empty($arrayfields[
'total_margin'][
'checked'])) {
2613 print
'<td class="right nowrap">'.price($marginInfo[
'total_margin']).
'</td>';
2615 $totalarray[
'nbfield']++;
2618 $totalarray[
'pos'][$totalarray[
'nbfield']] =
'total_margin';
2621 if (!isset($totalarray[
'val'][
'total_margin'])) {
2622 $totalarray[
'val'][
'total_margin'] = 0;
2625 $totalarray[
'val'][
'total_margin'] += $marginInfo[
'total_margin'];
2629 if (!empty($arrayfields[
'total_margin_rate'][
'checked'])) {
2630 print
'<td class="right nowrap">'.(($marginInfo[
'total_margin_rate'] ==
'') ?
'' :
price($marginInfo[
'total_margin_rate'], 0,
'', 0, 0, 2).
'%').
'</td>';
2632 $totalarray[
'nbfield']++;
2637 if (!empty($arrayfields[
'total_mark_rate'][
'checked'])) {
2638 print
'<td class="right nowrap">'.(($marginInfo[
'total_mark_rate'] ==
'') ?
'' :
price($marginInfo[
'total_mark_rate'], 0,
'', 0, 0, 2).
'%').
'</td>';
2640 $totalarray[
'nbfield']++;
2643 $totalarray[
'pos'][$totalarray[
'nbfield']] =
'total_mark_rate';
2645 if ($i >= $imaxinloop - 1) {
2646 if (!empty($total_ht)) {
2647 $totalarray[
'val'][
'total_mark_rate'] =
price2num($total_margin * 100 / $total_ht,
'MT');
2649 $totalarray[
'val'][
'total_mark_rate'] =
'';
2655 if (!empty($arrayfields[
'c.datec'][
'checked'])) {
2656 print
'<td align="center" class="nowrap">';
2657 print
dol_print_date($db->jdate($obj->date_creation),
'dayhour',
'tzuser');
2660 $totalarray[
'nbfield']++;
2665 if (!empty($arrayfields[
'c.tms'][
'checked'])) {
2666 print
'<td align="center" class="nowrap">';
2667 print
dol_print_date($db->jdate($obj->date_modification),
'dayhour',
'tzuser');
2670 $totalarray[
'nbfield']++;
2675 if (!empty($arrayfields[
'c.date_cloture'][
'checked'])) {
2676 print
'<td align="center" class="nowrap">';
2677 print
dol_print_date($db->jdate($obj->date_cloture),
'dayhour',
'tzuser');
2680 $totalarray[
'nbfield']++;
2685 if (!empty($arrayfields[
'c.note_public'][
'checked'])) {
2686 print
'<td class="sensiblehtmlcontent center">';
2690 $totalarray[
'nbfield']++;
2695 if (!empty($arrayfields[
'c.note_private'][
'checked'])) {
2696 print
'<td class="sensiblehtmlcontent center">';
2700 $totalarray[
'nbfield']++;
2705 if (!empty($arrayfields[
'shippable'][
'checked'])) {
2706 print
'<td class="center">';
2707 if (!empty($show_shippable_command) && isModEnabled(
'stock')) {
2708 if (($obj->fk_statut > $generic_commande::STATUS_DRAFT) && ($obj->fk_statut < $generic_commande::STATUS_CLOSED)) {
2709 $generic_commande->getLinesArray();
2710 $generic_commande->loadExpeditions();
2712 $numlines = count($generic_commande->lines);
2713 for ($lig = 0; $lig < $numlines; $lig++) {
2714 if (isset($generic_commande->expeditions[$generic_commande->lines[$lig]->id])) {
2715 $reliquat = $generic_commande->lines[$lig]->qty - $generic_commande->expeditions[$generic_commande->lines[$lig]->id];
2717 $reliquat = $generic_commande->lines[$lig]->qty;
2719 if ($generic_commande->lines[$lig]->product_type == 0 && $generic_commande->lines[$lig]->fk_product > 0) {
2721 $generic_product->id = $generic_commande->lines[$lig]->fk_product;
2724 if (empty($productstat_cache[$generic_commande->lines[$lig]->fk_product])) {
2725 $generic_product->load_stock(
'nobatch,warehouseopen');
2726 $productstat_cache[$generic_commande->lines[$lig]->fk_product][
'stock_reel'] = $generic_product->stock_reel;
2727 $productstat_cachevirtual[$generic_commande->lines[$lig]->fk_product][
'stock_reel'] = $generic_product->stock_theorique;
2729 $generic_product->stock_reel = $productstat_cache[$generic_commande->lines[$lig]->fk_product][
'stock_reel'];
2730 $generic_product->stock_theorique = $productstat_cachevirtual[$generic_commande->lines[$lig]->fk_product][
'stock_reel'];
2733 if ($reliquat > $generic_product->stock_reel) {
2737 $text_info .= $reliquat.
' x '.$generic_commande->lines[$lig]->product_ref.
' '.
dol_trunc($generic_commande->lines[$lig]->product_label, 20);
2738 $text_info .=
' - '.$langs->trans(
"Stock").
': <span class="'.($generic_product->stock_reel > 0 ?
'ok' :
'error').
'">'.$generic_product->stock_reel.
'</span>';
2739 $text_info .=
' - '.$langs->trans(
"VirtualStock").
': <span class="'.($generic_product->stock_theorique > 0 ?
'ok' :
'error').
'">'.$generic_product->stock_theorique.
'</span>';
2740 $text_info .= ($reliquat != $generic_commande->lines[$lig]->qty ?
' <span class="opacitymedium">('.$langs->trans(
"QtyInOtherShipments").
' '.($generic_commande->lines[$lig]->qty - $reliquat).
')</span>' :
'');
2741 $text_info .=
'<br>';
2748 $stock_order_supplier = 0;
2750 if (isModEnabled(
'order')) {
2751 if (empty($productstat_cache[$generic_commande->lines[$lig]->fk_product][
'stats_order_customer'])) {
2752 $generic_product->load_stats_commande(0,
'1,2');
2753 $productstat_cache[$generic_commande->lines[$lig]->fk_product][
'stats_order_customer'] = $generic_product->stats_commande[
'qty'];
2755 $generic_product->stats_commande[
'qty'] = $productstat_cache[$generic_commande->lines[$lig]->fk_product][
'stats_order_customer'];
2757 $stock_order = $generic_product->stats_commande[
'qty'];
2759 if (isModEnabled(
"supplier_order")) {
2760 if (empty($productstat_cache[$generic_commande->lines[$lig]->fk_product][
'stats_order_supplier'])) {
2761 $generic_product->load_stats_commande_fournisseur(0,
'3');
2762 $productstat_cache[$generic_commande->lines[$lig]->fk_product][
'stats_order_supplier'] = $generic_product->stats_commande_fournisseur[
'qty'];
2764 $generic_product->stats_commande_fournisseur[
'qty'] = $productstat_cache[$generic_commande->lines[$lig]->fk_product][
'stats_order_supplier'];
2766 $stock_order_supplier = $generic_product->stats_commande_fournisseur[
'qty'];
2769 $text_info .= $reliquat.
' x '.$generic_commande->lines[$lig]->ref.
' '.
dol_trunc($generic_commande->lines[$lig]->product_label, 20);
2770 $text_stock_reel = $generic_product->stock_reel.
'/'.$stock_order;
2771 if ($stock_order > $generic_product->stock_reel && !($generic_product->stock_reel < $generic_commande->lines[$lig]->qty)) {
2773 $text_warning .=
'<span class="warning">'.$langs->trans(
'Available').
' : '.$text_stock_reel.
'</span>';
2775 if ($reliquat > $generic_product->stock_reel) {
2776 $text_info .=
'<span class="warning">'.$langs->trans(
'Available').
' : '.$text_stock_reel.
'</span>';
2778 $text_info .=
'<span class="ok">'.$langs->trans(
'Available').
' : '.$text_stock_reel.
'</span>';
2780 if (isModEnabled(
"supplier_order")) {
2781 $text_info .=
' '.$langs->trans(
'SupplierOrder').
' : '.$stock_order_supplier;
2783 $text_info .= ($reliquat != $generic_commande->lines[$lig]->qty ?
' <span class="opacitymedium">('.$langs->trans(
"QtyInOtherShipments").
' '.($generic_commande->lines[$lig]->qty - $reliquat).
')</span>' :
'');
2784 $text_info .=
'<br>';
2788 if ($notshippable == 0) {
2789 $text_icon =
img_picto(
'',
'dolly',
'',
false, 0, 0,
'',
'green paddingleft');
2790 $text_info = $text_icon.
' '.$langs->trans(
'Shippable').
'<br>'.$text_info;
2792 $text_icon =
img_picto(
'',
'dolly',
'',
false, 0, 0,
'',
'error paddingleft');
2793 $text_info = $text_icon.
' '.$langs->trans(
'NonShippable').
'<br>'.$text_info;
2798 print $form->textwithtooltip(
'', $text_info, 2, 1, $text_icon,
'', 2);
2801 print $form->textwithtooltip(
'', $langs->trans(
'NotEnoughForAllOrders').
'<br>'.$text_warning, 2, 1,
img_picto(
'',
'error'),
'', 2);
2806 $totalarray[
'nbfield']++;
2811 include DOL_DOCUMENT_ROOT.
'/core/tpl/extrafields_list_print_fields.tpl.php';
2813 $parameters = array(
'arrayfields' => $arrayfields,
'obj' => $obj,
'i' => $i,
'totalarray' => &$totalarray);
2814 $reshook = $hookmanager->executeHooks(
'printFieldListValue', $parameters, $object, $action);
2815 print $hookmanager->resPrint;
2818 if (!empty($arrayfields[
'c.facture'][
'checked'])) {
2819 print
'<td class="center">';
2821 print
yn($obj->billed, 4);
2825 $totalarray[
'nbfield']++;
2830 if (!empty($arrayfields[
'c.import_key'][
'checked'])) {
2831 print
'<td class="nowrap center">'.dol_escape_htmltag($obj->import_key).
'</td>';
2833 $totalarray[
'nbfield']++;
2838 if (!empty($arrayfields[
'c.fk_statut'][
'checked'])) {
2839 print
'<td class="nowrap center">'.$generic_commande->LibStatut($obj->fk_statut, $obj->billed, 5, 1).
'</td>';
2841 $totalarray[
'nbfield']++;
2847 print
'<td class="nowrap center">';
2848 if ($massactionbutton || $massaction) {
2850 if (in_array($obj->rowid, $arrayofselected)) {
2853 print
'<input id="cb'.$obj->rowid.
'" class="flat checkforselect" type="checkbox" name="toselect[]" value="'.$obj->rowid.
'"'.($selected ?
' checked="checked"' :
'').
'>';
2857 $totalarray[
'nbfield']++;
2863 $total += $obj->total_ht;
2864 $subtotal += $obj->total_ht;
2870include DOL_DOCUMENT_ROOT.
'/core/tpl/list_print_total.tpl.php';
2875 foreach ($arrayfields as $key => $val) {
2876 if (!empty($val[
'checked'])) {
2880 print
'<tr><td colspan="'.$colspan.
'"><span class="opacitymedium">'.$langs->trans(
"NoRecordFound").
'</span></td></tr>';
2885$parameters = array(
'arrayfields' => $arrayfields,
'sql' => $sql);
2886$reshook = $hookmanager->executeHooks(
'printFieldListFooter', $parameters, $object, $action);
2887print $hookmanager->resPrint;
2889print
'</table>'.
"\n";
2892print
'</form>'.
"\n";
2894if (in_array(
'builddoc', array_keys($arrayofmassactions)) && ($nbtotalofrecords ===
'' || $nbtotalofrecords)) {
2895 $hidegeneratedfilelistifempty = 1;
2896 if ($massaction ==
'builddoc' || $action ==
'remove_file' || $show_files) {
2897 $hidegeneratedfilelistifempty = 0;
2901 $urlsource = $_SERVER[
'PHP_SELF'].
'?sortfield='.$sortfield.
'&sortorder='.$sortorder;
2902 $urlsource .= str_replace(
'&',
'&', $param);
2904 $filedir = $diroutputmassaction;
2905 $genallowed = $permissiontoread;
2906 $delallowed = $permissiontoadd;
2908 print $formfile->showdocuments(
'massfilesarea_orders',
'', $filedir, $urlsource, 0, $delallowed,
'', 1, 1, 0, 48, 1, $param, $title,
'',
'',
'',
null, $hidegeneratedfilelistifempty);
if( $user->socid > 0) if(! $user->hasRight('accounting', 'chartofaccount')) $object
if(!defined('NOREQUIRESOC')) if(!defined( 'NOREQUIRETRAN')) if(!defined('NOTOKENRENEWAL')) if(!defined( 'NOREQUIREMENU')) if(!defined('NOREQUIREHTML')) if(!defined( 'NOREQUIREAJAX')) llxHeader()
Empty header.
Class to manage customers orders.
const STATUS_SHIPMENTONPROCESS
Shipment on process.
const STATUS_CLOSED
Closed (Sent, billed or not)
const STATUS_CANCELED
Canceled status.
const STATUS_DRAFT
Draft status.
const STATUS_VALIDATED
Validated status.
Class to manage absolute discounts.
Class to manage invoices.
Class to manage products or services.
Class to manage projects.
Class to manage third parties objects (customers, suppliers, prospects...)
Class to manage Dolibarr users.
getCountry($searchkey, $withcode='', $dbtouse=null, $outputlangs=null, $entconv=1, $searchlabel='')
Return country label, code or id from an id, code or label.
dol_mktime($hour, $minute, $second, $month, $day, $year, $gm='auto', $check=1)
Return a timestamp date built from detailed information (by default a local PHP server timestamp) Rep...
img_picto($titlealt, $picto, $moreatt='', $pictoisfullpath=0, $srconly=0, $notitle=0, $alt='', $morecss='', $marginleftonlyshort=2)
Show picto whatever it's its name (generic function)
GETPOSTINT($paramname, $method=0)
Return the value of a $_GET or $_POST supervariable, converted into integer.
yn($yesno, $case=1, $color=0)
Return yes or no in current language.
dolPrintHTML($s, $allowiframe=0)
Return a string (that can be on several lines) ready to be output on a HTML page.
price2num($amount, $rounding='', $option=0)
Function that return a number with universal decimal format (decimal separator is '.
dolGetButtonTitle($label, $helpText='', $iconClass='fa fa-file', $url='', $id='', $status=1, $params=array())
Function dolGetButtonTitle : this kind of buttons are used in title in list.
natural_search($fields, $value, $mode=0, $nofirstand=0)
Generate natural SQL search string for a criteria (this criteria can be tested on one or several fiel...
price($amount, $form=0, $outlangs='', $trunc=1, $rounding=-1, $forcerounding=-1, $currency_code='')
Function to format a value into an amount for visual output Function used into PDF and HTML pages.
dol_now($mode='auto')
Return date for now.
getDolGlobalInt($key, $default=0)
Return a Dolibarr global constant int value.
dol_print_date($time, $format='', $tzoutput='auto', $outputlangs=null, $encodetooutput=false)
Output date in a string format according to outputlangs (or langs if not defined).
dol_sort_array(&$array, $index, $order='asc', $natsort=0, $case_sensitive=0, $keepindex=0)
Advanced sort array by the value of a given key, which produces ascending (default) or descending out...
print_liste_field_titre($name, $file="", $field="", $begin="", $moreparam="", $moreattrib="", $sortfield="", $sortorder="", $prefix="", $tooltip="", $forcenowrapcolumntitle=0)
Show title line of an array.
dol_concatdesc($text1, $text2, $forxml=false, $invert=false)
Concat 2 descriptions with a new line between them (second operand after first one with appropriate n...
dolGetButtonTitleSeparator($moreClass="")
Add space between dolGetButtonTitle.
print_barre_liste($title, $page, $file, $options='', $sortfield='', $sortorder='', $morehtmlcenter='', $num=-1, $totalnboflines='', $picto='generic', $pictoisfullpath=0, $morehtmlright='', $morecss='', $limit=-1, $hideselectlimit=0, $hidenavigation=0, $pagenavastextinput=0, $morehtmlrightbeforearrow='')
Print a title with navigation controls for pagination.
GETPOST($paramname, $check='alphanohtml', $method=0, $filter=null, $options=null, $noreplace=0)
Return value of a param into GET or POST supervariable.
setEventMessages($mesg, $mesgs, $style='mesgs', $messagekey='', $noduplicate=0)
Set event messages in dol_events session object.
dol_sanitizeFileName($str, $newstr='_', $unaccent=1)
Clean a string to use it as a file name.
dol_print_error($db=null, $error='', $errors=null)
Displays error message system with all the information to facilitate the diagnosis and the escalation...
dol_trunc($string, $size=40, $trunc='right', $stringencoding='UTF-8', $nodot=0, $display=0)
Truncate a string to a particular length adding '…' if string larger than length.
getDolGlobalString($key, $default='')
Return dolibarr global constant string value.
dolPrintLabel($s)
Return a string label (so on 1 line only and that should not contains any HTML) ready to be output on...
dol_escape_htmltag($stringtoescape, $keepb=0, $keepn=0, $noescapetags='', $escapeonlyhtmltags=0, $cleanalsojavascript=0)
Returns text escaped for inclusion in HTML alt or title or value tags, or into values of HTML input f...
restrictedArea(User $user, $features, $object=0, $tableandshare='', $feature2='', $dbt_keyfield='fk_soc', $dbt_select='rowid', $isdraft=0, $mode=0)
Check permissions of a user to show a page and an object.