44require
'../main.inc.php';
54require_once DOL_DOCUMENT_ROOT.
'/core/lib/date.lib.php';
55require_once DOL_DOCUMENT_ROOT.
'/core/lib/company.lib.php';
56require_once DOL_DOCUMENT_ROOT.
'/core/class/discount.class.php';
57require_once DOL_DOCUMENT_ROOT.
'/core/class/html.formfile.class.php';
58require_once DOL_DOCUMENT_ROOT.
'/core/class/html.formother.class.php';
59require_once DOL_DOCUMENT_ROOT.
'/core/class/html.formcompany.class.php';
61 require_once DOL_DOCUMENT_ROOT.
'/core/class/html.formmargin.class.php';
63require_once DOL_DOCUMENT_ROOT.
'/commande/class/commande.class.php';
64require_once DOL_DOCUMENT_ROOT.
'/compta/facture/class/facture.class.php';
65require_once DOL_DOCUMENT_ROOT.
'/product/class/product.class.php';
66require_once DOL_DOCUMENT_ROOT.
'/product/class/html.formproduct.class.php';
67require_once DOL_DOCUMENT_ROOT.
'/projet/class/project.class.php';
70 require_once DOL_DOCUMENT_ROOT.
'/categories/class/categorie.class.php';
71 require_once DOL_DOCUMENT_ROOT.
'/core/class/html.formcategory.class.php';
75$langs->loadLangs(array(
'orders',
'sendings',
'companies',
'compta',
'bills',
'stocks',
'products'));
78$action =
GETPOST(
'action',
'aZ09');
79$massaction =
GETPOST(
'massaction',
'alpha');
81$confirm =
GETPOST(
'confirm',
'alpha');
82$toselect =
GETPOST(
'toselect',
'array:int');
83$contextpage =
GETPOST(
'contextpage',
'aZ') ?
GETPOST(
'contextpage',
'aZ') :
'orderlist';
84$optioncss =
GETPOST(
'optioncss',
'alpha');
88 $userschilds = $user->getAllChildIds();
90 $userschilds = array();
94$search_datecloture_start =
GETPOSTINT(
'search_datecloture_start');
95if (empty($search_datecloture_start)) {
98$search_datecloture_end =
GETPOSTINT(
'search_datecloture_end');
99if (empty($search_datecloture_end)) {
109$search_all = trim(
GETPOST(
'search_all',
'alphanohtml'));
110$searchCategoryOrderOperator = 0;
112 $searchCategoryOrderOperator =
GETPOSTINT(
'search_category_order_operator');
116$searchCategoryOrderList =
GETPOST(
'search_category_order_list',
'array');
117$search_product_category =
GETPOST(
'search_product_category',
'intcomma');
118$search_id =
GETPOST(
'search_id',
'int');
119$search_ref =
GETPOST(
'search_ref',
'alpha') !=
'' ?
GETPOST(
'search_ref',
'alpha') :
GETPOST(
'sref',
'alpha');
120$search_ref_ext =
GETPOST(
'search_ref_ext',
'alpha');
121$search_ref_customer =
GETPOST(
'search_ref_customer',
'alpha');
122$search_company =
GETPOST(
'search_company',
'alpha');
123$search_company_alias =
GETPOST(
'search_company_alias',
'alpha');
124$search_parent_name = trim(
GETPOST(
'search_parent_name',
'alphanohtml'));
125$search_town =
GETPOST(
'search_town',
'alpha');
126$search_zip =
GETPOST(
'search_zip',
'alpha');
127$search_state =
GETPOST(
'search_state',
'alpha');
128$search_country =
GETPOST(
'search_country',
'aZ09');
129$search_type_thirdparty =
GETPOST(
'search_type_thirdparty',
'intcomma');
130$search_user =
GETPOST(
'search_user',
'intcomma');
131$search_sale =
GETPOST(
'search_sale',
'intcomma');
132$search_total_ht =
GETPOST(
'search_total_ht',
'alpha');
133$search_total_vat =
GETPOST(
'search_total_vat',
'alpha');
134$search_total_ttc =
GETPOST(
'search_total_ttc',
'alpha');
135$search_warehouse =
GETPOST(
'search_warehouse',
'intcomma');
136$search_note_public =
GETPOST(
'search_note_public',
'alphanohtml');
137$search_note_private =
GETPOST(
'search_note_private',
'alphanohtml');
139$search_module_source =
GETPOST(
'search_module_source',
'alphanohtml');
140$search_pos_source =
GETPOST(
'search_pos_source',
'alphanohtml');
142$search_multicurrency_code =
GETPOST(
'search_multicurrency_code',
'alpha');
143$search_multicurrency_tx =
GETPOST(
'search_multicurrency_tx',
'alpha');
144$search_multicurrency_montant_ht =
GETPOST(
'search_multicurrency_montant_ht',
'alpha');
145$search_multicurrency_montant_vat =
GETPOST(
'search_multicurrency_montant_vat',
'alpha');
146$search_multicurrency_montant_ttc =
GETPOST(
'search_multicurrency_montant_ttc',
'alpha');
148$search_login =
GETPOST(
'search_login',
'alpha');
149$search_categ_cus =
GETPOST(
"search_categ_cus",
'intcomma');
150$search_billed =
GETPOST(
'search_billed',
'intcomma');
151$search_status =
GETPOST(
'search_status',
'intcomma');
152$search_project_ref =
GETPOST(
'search_project_ref',
'alpha');
153$search_project =
GETPOST(
'search_project',
'alpha');
154$search_shippable =
GETPOST(
'search_shippable',
'aZ09');
156$search_fk_cond_reglement =
GETPOST(
'search_fk_cond_reglement',
'intcomma');
157$search_fk_shipping_method =
GETPOST(
'search_fk_shipping_method',
'intcomma');
158$search_fk_mode_reglement =
GETPOST(
'search_fk_mode_reglement',
'intcomma');
159$search_fk_input_reason =
GETPOST(
'search_fk_input_reason',
'intcomma');
161$search_option =
GETPOST(
'search_option',
'alpha');
162if ($search_option ==
'late') {
163 $search_status =
'-2';
165$search_orderday =
'';
166$search_ordermonth =
'';
167$search_orderyear =
'';
168$search_deliveryday =
'';
169$search_deliverymonth =
'';
170$search_deliveryyear =
'';
172$search_import_key = trim(
GETPOST(
"search_import_key",
"alpha"));
174$diroutputmassaction =
$conf->order->multidir_output[
$conf->entity].
'/temp/massgeneration/'.$user->id;
178$sortfield =
GETPOST(
'sortfield',
'aZ09comma');
179$sortorder =
GETPOST(
'sortorder',
'aZ09comma');
181if (empty($page) || $page < 0 ||
GETPOST(
'button_search',
'alpha') ||
GETPOST(
'button_removefilter',
'alpha')) {
185$offset = $limit * $page;
186$pageprev = $page - 1;
187$pagenext = $page + 1;
189 $sortfield =
'c.ref';
195$show_shippable_command =
GETPOST(
'show_shippable_command',
'aZ09');
199$hookmanager->initHooks(array(
'orderlist'));
202$extrafields->fetch_name_optionals_label(
$object->table_element);
203$search_array_options = $extrafields->getOptionalsFromPost(
$object->table_element,
'',
'search_');
206$fieldstosearchall = array(
208 'c.ref_client' =>
'RefCustomerOrder',
209 'pd.description' =>
'ProductDescription',
210 's.nom' =>
"ThirdParty",
211 's.name_alias' =>
"AliasNameShort",
214 'c.note_public' =>
'NotePublic',
216if (empty($user->socid)) {
217 $fieldstosearchall[
"c.note_private"] =
"NotePrivate";
223$checkedtypetiers =
'0';
225 'c.rowid' => array(
'label' =>
"ID",
'checked' =>
'1',
'enabled' => (
string)
getDolGlobalInt(
'MAIN_SHOW_TECHNICAL_ID'),
'position' => 1),
226 'c.ref' => array(
'label' =>
"Ref",
'checked' =>
'1',
'position' => 5,
'searchall' => 1),
227 'c.ref_ext' => array(
'label' =>
"RefExt",
'checked' =>
'1',
'position' => 5,
'visible' => 0,
'searchall' => 1),
228 'c.ref_client' => array(
'label' =>
"RefCustomerOrder",
'checked' =>
'-1',
'position' => 10,
'searchall' => 1),
229 'p.ref' => array(
'label' =>
"ProjectRef",
'langfile' =>
'projects',
'checked' =>
'-1',
'enabled' => (!
isModEnabled(
'project') ?
'0' :
'1'),
'position' => 20),
230 'p.title' => array(
'label' =>
"ProjectLabel",
'langfile' =>
'projects',
'checked' =>
'0',
'enabled' => (!
isModEnabled(
'project') ?
'0' :
'1'),
'position' => 25),
231 's.nom' => array(
'label' =>
"ThirdParty",
'checked' =>
'1',
'position' => 30,
'searchall' => 1),
232 's.name_alias' => array(
'label' =>
"AliasNameShort",
'checked' =>
'-1',
'position' => 31,
'searchall' => 1),
233 's2.nom' => array(
'label' =>
'ParentCompany',
'position' => 32,
'checked' =>
'0'),
234 's.town' => array(
'label' =>
"Town",
'checked' =>
'-1',
'position' => 35,
'searchall' => 1),
235 's.zip' => array(
'label' =>
"Zip",
'checked' =>
'-1',
'position' => 40,
'searchall' => 1),
236 'state.nom' => array(
'label' =>
"StateShort",
'checked' =>
'0',
'position' => 45),
237 'country.code_iso' => array(
'label' =>
"Country",
'checked' =>
'0',
'position' => 50),
238 'typent.code' => array(
'label' =>
"ThirdPartyType",
'checked' => (
string) $checkedtypetiers,
'position' => 55),
239 'c.date_commande' => array(
'label' =>
"OrderDateShort",
'checked' =>
'1',
'position' => 60,
'csslist' =>
'nowraponall'),
240 'c.delivery_date' => array(
'label' =>
"DateDeliveryPlanned",
'checked' =>
'1',
'enabled' => (
string) (int) !
getDolGlobalString(
'ORDER_DISABLE_DELIVERY_DATE'),
'position' => 65,
'csslist' =>
'nowraponall'),
241 'c.fk_shipping_method' => array(
'label' =>
"SendingMethod",
'checked' =>
'-1',
'position' => 66 ,
'enabled' => (
string) (int)
isModEnabled(
"shipping")),
242 'c.fk_cond_reglement' => array(
'label' =>
"PaymentConditionsShort",
'checked' =>
'-1',
'position' => 67),
243 'c.fk_mode_reglement' => array(
'label' =>
"PaymentMode",
'checked' =>
'-1',
'position' => 68),
244 'c.fk_input_reason' => array(
'label' =>
"Origin",
'checked' =>
'-1',
'position' => 69),
245 'c.module_source' => array(
'label' =>
"POSModule",
'langfile' =>
'cashdesk',
'checked' => ($contextpage ==
'poslist' ?
'1' :
'0'),
'enabled' => $showpos,
'position' => 90),
246 'c.pos_source' => array(
'label' =>
"POSTerminal",
'langfile' =>
'cashdesk',
'checked' => ($contextpage ==
'poslist' ?
'1' :
'0'),
'enabled' => $showpos,
'position' => 91),
247 'c.total_ht' => array(
'label' =>
"AmountHT",
'checked' =>
'1',
'position' => 75),
248 'c.total_vat' => array(
'label' =>
"AmountVAT",
'checked' =>
'0',
'position' => 80),
249 'c.total_ttc' => array(
'label' =>
"AmountTTC",
'checked' =>
'0',
'position' => 85),
250 'c.multicurrency_code' => array(
'label' =>
'Currency',
'checked' =>
'0',
'enabled' => (!
isModEnabled(
"multicurrency") ?
'0' :
'1'),
'position' => 92),
251 'c.multicurrency_tx' => array(
'label' =>
'CurrencyRate',
'checked' =>
'0',
'enabled' => (!
isModEnabled(
"multicurrency") ?
'0' :
'1'),
'position' => 95),
252 'c.multicurrency_total_ht' => array(
'label' =>
'MulticurrencyAmountHT',
'checked' =>
'0',
'enabled' => (!
isModEnabled(
"multicurrency") ?
'0' :
'1'),
'position' => 100),
253 'c.multicurrency_total_vat' => array(
'label' =>
'MulticurrencyAmountVAT',
'checked' =>
'0',
'enabled' => (!
isModEnabled(
"multicurrency") ?
'0' :
'1'),
'position' => 105),
254 'c.multicurrency_total_ttc' => array(
'label' =>
'MulticurrencyAmountTTC',
'checked' =>
'0',
'enabled' => (!
isModEnabled(
"multicurrency") ?
'0' :
'1'),
'position' => 110),
255 'u.login' => array(
'label' =>
"Author",
'checked' =>
'-1',
'position' => 115),
256 'sale_representative' => array(
'label' =>
"SaleRepresentativesOfThirdParty",
'checked' =>
'0',
'position' => 116),
257 'total_pa' => array(
'label' => (
getDolGlobalString(
'MARGIN_TYPE') ==
'1' ?
'BuyingPrice' :
'CostPrice'),
'checked' =>
'0',
'position' => 300,
'enabled' => (
string) (int) (!
isModEnabled(
'margin') || !$user->hasRight(
"margins",
"liretous") ? 0 : 1)),
258 'total_margin' => array(
'label' =>
'Margin',
'checked' =>
'0',
'position' => 301,
'enabled' => (
string) (int) (!
isModEnabled(
'margin') || !$user->hasRight(
"margins",
"liretous") ? 0 : 1)),
259 'total_margin_rate' => array(
'label' =>
'MarginRate',
'checked' =>
'0',
'position' => 302,
'enabled' => (
string) (int) (!
isModEnabled(
'margin') || !$user->hasRight(
"margins",
"liretous") || !
getDolGlobalString(
'DISPLAY_MARGIN_RATES') ? 0 : 1)),
260 'total_mark_rate' => array(
'label' =>
'MarkRate',
'checked' =>
'0',
'position' => 303,
'enabled' => (
string) (int) (!
isModEnabled(
'margin') || !$user->hasRight(
"margins",
"liretous") || !
getDolGlobalString(
'DISPLAY_MARK_RATES') ? 0 : 1)),
261 'c.datec' => array(
'label' =>
"DateCreation",
'checked' =>
'0',
'position' => 120),
262 'c.tms' => array(
'label' =>
"DateModificationShort",
'checked' =>
'0',
'position' => 125),
263 'c.date_cloture' => array(
'label' =>
"DateClosing",
'checked' =>
'0',
'position' => 130),
264 'c.note_public' => array(
'label' =>
'NotePublic',
'checked' =>
'0',
'enabled' => (
string) (int) (!
getDolGlobalInt(
'MAIN_LIST_HIDE_PUBLIC_NOTES')),
'position' => 135,
'searchall' => 1),
265 'c.note_private' => array(
'label' =>
'NotePrivate',
'checked' =>
'0',
'enabled' => (
string) (int) (!
getDolGlobalInt(
'MAIN_LIST_HIDE_PRIVATE_NOTES')),
'position' => 140),
266 'shippable' => array(
'label' =>
"Shippable",
'checked' =>
'1',
'enabled' => (
string) (int) (
isModEnabled(
"shipping")),
'position' => 990),
267 'c.facture' => array(
'label' =>
"Billed",
'checked' =>
'1',
'enabled' => (
string) (int) (!
getDolGlobalString(
'WORKFLOW_BILL_ON_SHIPMENT')),
'position' => 995),
268 'c.import_key' => array(
'type' =>
'varchar(14)',
'label' =>
'ImportId',
'enabled' =>
'1',
'visible' => -2,
'position' => 999),
269 'c.fk_statut' => array(
'label' =>
"Status",
'checked' =>
'1',
'position' => 1000)
272$parameters = array(
'fieldstosearchall' => $fieldstosearchall);
273$reshook = $hookmanager->executeHooks(
'completeFieldsToSearchAll', $parameters, $object, $action);
275 $fieldstosearchall = empty($hookmanager->resArray[
'fieldstosearchall']) ? array() : $hookmanager->resArray[
'fieldstosearchall'];
276} elseif ($reshook == 0) {
277 $fieldstosearchall = array_merge($fieldstosearchall, empty($hookmanager->resArray[
'fieldstosearchall']) ? array() : $hookmanager->resArray[
'fieldstosearchall']);
281include DOL_DOCUMENT_ROOT.
'/core/tpl/extrafields_list_array_fields.tpl.php';
291 $socid = $user->socid;
294$permissiontoreadallthirdparty = $user->hasRight(
'societe',
'client',
'voir');
295$permissiontoread =
false;
296$permissiontovalidate =
false;
297$permissiontoclose =
false;
298$permissiontocancel =
false;
299$permissiontosendbymail =
false;
305$permissiontoread = $user->hasRight(
"commande",
"lire");
306$permissiontoadd = $user->hasRight(
"commande",
"creer");
307$permissiontodelete = $user->hasRight(
"commande",
"supprimer");
309 $permissiontovalidate = $user->hasRight(
"commande",
"order_advance",
"validate");
310 $permissiontoclose = $user->hasRight(
"commande",
"order_advance",
"close");
311 $permissiontocancel = $user->hasRight(
"commande",
"order_advance",
"annuler");
312 $permissiontosendbymail = $user->hasRight(
"commande",
"order_advance",
"send");
314 $permissiontovalidate = $user->hasRight(
"commande",
"creer");
315 $permissiontoclose = $user->hasRight(
"commande",
"creer");
316 $permissiontocancel = $user->hasRight(
"commande",
"creer");
317 $permissiontosendbymail = $user->hasRight(
"commande",
"creer");
327if (
GETPOST(
'cancel',
'alpha')) {
331if (!
GETPOST(
'confirmmassaction',
'alpha') && $massaction !=
'presend' && $massaction !=
'confirm_presend' && $massaction !=
'confirm_createbills') {
335$parameters = array(
'socid' => $socid,
'arrayfields' => &$arrayfields);
336$reshook = $hookmanager->executeHooks(
'doActions', $parameters, $object, $action);
341if (empty($reshook)) {
343 include DOL_DOCUMENT_ROOT.
'/core/actions_changeselectedfields.inc.php';
346 if (
GETPOST(
'button_removefilter_x',
'alpha') ||
GETPOST(
'button_removefilter.x',
'alpha') ||
GETPOST(
'button_removefilter',
'alpha')) {
349 $search_product_category =
'';
350 $searchCategoryOrderList = array();
353 $search_ref_ext =
'';
354 $search_ref_customer =
'';
355 $search_company =
'';
356 $search_company_alias =
'';
357 $search_parent_name =
'';
358 $search_module_source =
'';
359 $search_pos_source =
'';
364 $search_country =
'';
365 $search_type_thirdparty =
'';
366 $search_total_ht =
'';
367 $search_total_vat =
'';
368 $search_total_ttc =
'';
369 $search_warehouse =
'';
370 $search_note_public =
'';
371 $search_note_private =
'';
372 $search_multicurrency_code =
'';
373 $search_multicurrency_tx =
'';
374 $search_multicurrency_montant_ht =
'';
375 $search_multicurrency_montant_vat =
'';
376 $search_multicurrency_montant_ttc =
'';
378 $search_dateorder_start =
'';
379 $search_dateorder_end =
'';
380 $search_datedelivery_start =
'';
381 $search_datedelivery_end =
'';
382 $search_project_ref =
'';
383 $search_project =
'';
386 $search_datecloture_start =
'';
387 $search_datecloture_end =
'';
388 $search_fk_cond_reglement =
'';
389 $search_fk_shipping_method =
'';
390 $search_fk_mode_reglement =
'';
391 $search_fk_input_reason =
'';
393 $search_import_key =
'';
394 $search_categ_cus = 0;
398 $search_array_options = array();
400 if (
GETPOST(
'button_removefilter_x',
'alpha') ||
GETPOST(
'button_removefilter.x',
'alpha') ||
GETPOST(
'button_removefilter',
'alpha')
401 ||
GETPOST(
'button_search_x',
'alpha') ||
GETPOST(
'button_search.x',
'alpha') ||
GETPOST(
'button_search',
'alpha')) {
406 $objectclass =
'Commande';
407 $objectlabel =
'Orders';
408 $uploaddir =
$conf->order->multidir_output[
$conf->entity];
409 $triggersendname =
'ORDER_SENTBYMAIL';
412 include DOL_DOCUMENT_ROOT.
'/core/actions_massactions.inc.php';
414 if ($massaction ==
'confirm_createbills' && $user->hasRight(
'facture',
'creer')) {
415 $orders =
GETPOST(
'toselect',
'array:int');
416 $createbills_onebythird =
GETPOSTINT(
'createbills_onebythird');
417 $validate_invoices =
GETPOSTINT(
'validate_invoices');
422 $TFactThird = array();
423 $TFactThirdNbLines = array();
425 $nb_bills_created = 0;
431 $nbOrders = is_array($orders) ? count($orders) : 1;
434 foreach ($orders as $id_order) {
436 if ($cmd->fetch($id_order) <= 0) {
444 setEventMessages($langs->trans(
'WarningOrderNotEligibleForInvoicing', $cmd->ref),
null,
'warnings');
448 $cmd->fetch_thirdparty();
451 if (!empty($createbills_onebythird) && !empty($TFactThird[$cmd->socid])) {
454 $objecttmp = $TFactThird[$cmd->socid];
457 $objecttmp->socid = $cmd->socid;
458 $objecttmp->thirdparty = $cmd->thirdparty;
460 $objecttmp->type = $objecttmp::TYPE_STANDARD;
461 $objecttmp->cond_reglement_id = !empty($cmd->cond_reglement_id) ? $cmd->cond_reglement_id : $cmd->thirdparty->cond_reglement_id;
462 $objecttmp->mode_reglement_id = !empty($cmd->mode_reglement_id) ? $cmd->mode_reglement_id : $cmd->thirdparty->mode_reglement_id;
463 $objecttmp->demand_reason_id = !empty($cmd->demand_reason_id) ? $cmd->demand_reason_id : $cmd->thirdparty->demand_reason_id;
465 $objecttmp->fk_project = $cmd->fk_project;
466 $objecttmp->multicurrency_code = $cmd->multicurrency_code;
467 if (empty($createbills_onebythird)) {
468 $objecttmp->ref_client = $cmd->ref_client;
471 if (empty($objecttmp->note_public) &&
getDolGlobalInt(
"MAXREFONDOC", 10)>0) {
472 $objecttmp->note_public = $langs->transnoentities(
"Orders");
476 if (empty($datefacture)) {
480 $objecttmp->date = $datefacture;
481 $objecttmp->origin =
'commande';
482 $objecttmp->origin_id = (int) $id_order;
484 $objecttmp->array_options = $cmd->array_options;
486 $res = $objecttmp->create($user);
490 $lastref = $objecttmp->ref;
491 $lastid = $objecttmp->id;
493 $TFactThird[$cmd->socid] = $objecttmp;
494 $TFactThirdNbLines[$cmd->socid] = 0;
496 $langs->load(
"errors");
497 $errors[] = $cmd->ref.
' : '.$langs->trans($objecttmp->errors[0]);
502 if ($objecttmp->id > 0) {
503 $res = $objecttmp->add_object_linked($objecttmp->origin, $id_order);
506 $errors[] = $cmd->ref.
' : '.$langs->trans($objecttmp->errors[0]);
512 $cmd->fetchObjectLinked();
514 if (!$error && $cmd->id && !empty($cmd->linkedObjectsIds[
'shipping']) && is_array($cmd->linkedObjectsIds[
'shipping'])) {
515 $cmd->linked_objects = $cmd->linkedObjectsIds;
516 foreach ($cmd->linked_objects as $origin_type => $tmp_origin_id) {
518 if ($origin_type ==
'shipping') {
519 if (is_array($tmp_origin_id)) {
520 foreach ($tmp_origin_id as $origin_id) {
521 $res = $objecttmp->add_object_linked($origin_type, $origin_id);
523 $errors[] = $cmd->ref.
' : '.$langs->trans($objecttmp->errors[0]);
528 $origin_id = $tmp_origin_id;
529 $res = $objecttmp->add_object_linked($origin_type, $origin_id);
531 $errors[] = $cmd->ref.
' : '.$langs->trans($objecttmp->errors[0]);
541 $lines = $cmd->lines;
542 if (empty($lines) && method_exists($cmd,
'fetch_lines')) {
544 $lines = $cmd->lines;
548 $num = count($lines);
549 $array_options = array();
551 for ($i = 0; $i < $num; $i++) {
552 $desc = ($lines[$i]->desc ? $lines[$i]->desc :
'');
554 if (!empty($createbills_onebythird)) {
558 if ($lines[$i]->subprice < 0 && !
getDolGlobalString(
'INVOICE_KEEP_DISCOUNT_LINES_AS_IN_ORIGIN')) {
561 $discount->fk_soc = $objecttmp->socid;
562 $discount->socid = $objecttmp->socid;
563 $discount->amount_ht = abs($lines[$i]->total_ht);
564 $discount->amount_tva = abs($lines[$i]->total_tva);
565 $discount->amount_ttc = abs($lines[$i]->total_ttc);
566 $discount->tva_tx = $lines[$i]->tva_tx;
567 $discount->fk_user = $user->id;
568 $discount->description = $desc;
569 $discountid = $discount->create($user);
570 if ($discountid > 0) {
571 $result = $objecttmp->insert_discount($discountid);
580 $product_type = ($lines[$i]->product_type ? $lines[$i]->product_type : 0);
583 if ($lines[$i]->date_debut_prevue) {
586 if ($lines[$i]->date_debut_reel) {
589 if ($lines[$i]->date_start) {
594 if ($lines[$i]->date_fin_prevue) {
595 $date_end = $lines[$i]->date_fin_prevue;
597 if ($lines[$i]->date_fin_reel) {
598 $date_end = $lines[$i]->date_fin_reel;
600 if ($lines[$i]->date_end) {
601 $date_end = $lines[$i]->date_end;
604 if (($lines[$i]->product_type != 9 && empty($lines[$i]->fk_parent_line)) || $lines[$i]->product_type == 9) {
609 if (method_exists($lines[$i],
'fetch_optionals')) {
610 $lines[$i]->fetch_optionals();
611 $array_options = $lines[$i]->array_options;
614 $objecttmp->context[
'createfromclone'] =
'createfromclone';
616 $rang = ($nbOrders > 1) ? -1 : $lines[$i]->rang;
618 if (!empty($createbills_onebythird)) {
619 $TFactThirdNbLines[$cmd->socid]++;
620 $rang = $TFactThirdNbLines[$cmd->socid];
623 $result = $objecttmp->addline(
625 $lines[$i]->subprice,
628 $lines[$i]->localtax1_tx,
629 $lines[$i]->localtax2_tx,
630 $lines[$i]->fk_product,
631 $lines[$i]->remise_percent,
635 $lines[$i]->info_bits,
636 $lines[$i]->fk_remise_except,
641 $lines[$i]->special_code,
645 $lines[$i]->fk_fournprice,
654 if (!empty($lines[$i]->extraparams)) {
656 $factureLine->id = $result;
657 $factureLine->extraparams = $lines[$i]->extraparams;
658 $factureLine->setExtraParameters();
665 $errors[] = $objecttmp->error;
669 if ($result > 0 && $lines[$i]->product_type == 9) {
670 $fk_parent_line = $result;
678 $objecttmp->note_public =
dol_concatdesc($objecttmp->note_public, $langs->transnoentities($cmd->ref).(empty($cmd->ref_client) ?
'' :
' ('.$cmd->ref_client.
')'));
679 $objecttmp->update($user);
684 if (!empty($createbills_onebythird) && empty($TFactThird[$cmd->socid])) {
685 $TFactThird[$cmd->socid] = $objecttmp;
687 $TFact[$objecttmp->id] = $objecttmp;
692 $TAllFact = empty($createbills_onebythird) ? $TFact : $TFactThird;
695 if (!$error && $validate_invoices) {
696 $massaction = $action =
'builddoc';
698 foreach ($TAllFact as &$objecttmp) {
699 $result = $objecttmp->validate($user);
706 $id = $objecttmp->id;
707 $lastref = $objecttmp->ref;
711 $upload_dir =
$conf->facture->dir_output;
712 $permissiontoadd = $user->hasRight(
'facture',
'creer');
717 include DOL_DOCUMENT_ROOT.
'/core/actions_builddoc.inc.php';
721 $massaction = $action =
'confirm_createbills';
727 if ($nb_bills_created == 1) {
728 if (
getDolGlobalInt(
'MAIN_MASSACTION_CREATEBILLS_REDIRECT_IF_ONE') == 1) {
730 header(
'Location: '.DOL_URL_ROOT.
'/compta/facture/card.php?id='.urlencode((
string) $lastid));
733 $texttoshow = $langs->trans(
'BillXCreated',
'{s1}');
734 $texttoshow = str_replace(
'{s1}',
'<a href="'.DOL_URL_ROOT.
'/compta/facture/card.php?id='.urlencode((
string) ($lastid)).
'">'.$lastref.
'</a>', $texttoshow);
737 if (
getDolGlobalInt(
'MAIN_MASSACTION_CREATEBILLS_REDIRECT_IF_MANY') == 1) {
739 header(
"Location: ".DOL_URL_ROOT.
'/compta/facture/list.php?mainmenu=billing&leftmenu=customers_bills');
742 setEventMessages($langs->trans(
'BillCreated', $nb_bills_created),
null,
'mesgs');
748 $param .=
'&mode='.urlencode($mode);
750 if (!empty($contextpage) && $contextpage != $_SERVER[
"PHP_SELF"]) {
751 $param .=
'&contextpage='.urlencode($contextpage);
753 if ($limit > 0 && $limit !=
$conf->liste_limit) {
754 $param .=
'&limit='.((int) $limit);
756 if ($optioncss !=
'') {
757 $param .=
'&optioncss='.urlencode($optioncss);
760 $param .=
'&search_all='.urlencode($search_all);
763 $param .=
'&show_files='.urlencode((
string) ($show_files));
766 $param .=
'&socid='.urlencode((
string) ($socid));
768 if ($search_status !=
'') {
769 $param .=
'&search_status='.urlencode($search_status);
771 if ($search_option) {
772 $param .=
"&search_option=".urlencode($search_option);
774 if ($search_orderday) {
775 $param .=
'&search_orderday='.urlencode($search_orderday);
777 if ($search_ordermonth) {
778 $param .=
'&search_ordermonth='.urlencode($search_ordermonth);
780 if ($search_orderyear) {
781 $param .=
'&search_orderyear='.urlencode($search_orderyear);
783 if ($search_deliveryday) {
784 $param .=
'&search_deliveryday='.urlencode($search_deliveryday);
786 if ($search_deliverymonth) {
787 $param .=
'&search_deliverymonth='.urlencode($search_deliverymonth);
789 if ($search_deliveryyear) {
790 $param .=
'&search_deliveryyear='.urlencode($search_deliveryyear);
793 $param .=
'&search_id='.urlencode((
string) $search_id);
796 $param .=
'&search_ref='.urlencode($search_ref);
798 if ($search_ref_ext) {
799 $param .=
'&search_ref_ext='.urlencode($search_ref_ext);
801 if ($search_company) {
802 $param .=
'&search_company='.urlencode($search_company);
804 if ($search_ref_customer) {
805 $param .=
'&search_ref_customer='.urlencode($search_ref_customer);
807 if ($search_user > 0) {
808 $param .=
'&search_user='.urlencode((
string) ($search_user));
810 if ($search_sale > 0) {
811 $param .=
'&search_sale='.urlencode((
string) ($search_sale));
813 if ($search_total_ht !=
'') {
814 $param .=
'&search_total_ht='.urlencode($search_total_ht);
816 if ($search_total_vat !=
'') {
817 $param .=
'&search_total_vat='.urlencode($search_total_vat);
819 if ($search_total_ttc !=
'') {
820 $param .=
'&search_total_ttc='.urlencode($search_total_ttc);
822 if ($search_project_ref >= 0) {
823 $param .=
"&search_project_ref=".urlencode($search_project_ref);
825 if ($search_project !=
'') {
826 $param .=
"&search_project=".urlencode($search_project);
828 if ($search_billed !=
'') {
829 $param .=
'&search_billed='.urlencode($search_billed);
832 header(
"Location: ".$_SERVER[
'PHP_SELF'].
'?'.$param);
838 $_GET[
"origin"] =
GETPOST(
"origin",
'alpha');
840 if (!empty($errors)) {
850if ($action ==
'validate' && $permissiontoadd && $objectclass !==
null) {
851 if (
GETPOST(
'confirm') ==
'yes') {
853 $objecttmp =
new $objectclass(
$db);
856 foreach ($toselect as $checked) {
857 if ($objecttmp->fetch($checked)) {
858 if ($objecttmp->status == $objecttmp::STATUS_DRAFT) {
859 if (!empty($objecttmp->fk_warehouse)) {
860 $idwarehouse = $objecttmp->fk_warehouse;
864 if ($objecttmp->valid($user, $idwarehouse) > 0) {
865 setEventMessages($langs->trans(
'hasBeenValidated', $objecttmp->ref),
null,
'mesgs');
871 $langs->load(
"errors");
872 setEventMessages($langs->trans(
'ErrorIsNotADraft', $objecttmp->ref),
null,
'errors');
887if ($action ==
'shipped' && $permissiontoadd && $objectclass !==
null) {
888 if (
GETPOST(
'confirm') ==
'yes') {
890 $objecttmp =
new $objectclass(
$db);
893 foreach ($toselect as $checked) {
894 if ($objecttmp->fetch($checked)) {
895 if ($objecttmp->status == $objecttmp::STATUS_VALIDATED || $objecttmp->status == $objecttmp::STATUS_SHIPMENTONPROCESS || $objecttmp->status == $objecttmp::STATUS_CLOSED) {
896 $result = $objecttmp->cloture($user);
898 setEventMessages($langs->trans(
'StatusOrderDelivered', $objecttmp->ref),
null,
'mesgs');
899 } elseif ($result < 0) {
900 setEventMessages($langs->trans(
'ErrorOrderStatusCantBeSetToDelivered'),
null,
'errors');
904 $langs->load(
"errors");
905 setEventMessages($langs->trans(
'ErrorObjectHasWrongStatus', $objecttmp->ref),
null,
'errors');
922if (!$error && $massaction ===
'setbilled' && $permissiontoclose && $objectclass !==
null) {
925 $objecttmp =
new $objectclass(
$db);
927 foreach ($toselect as $toselectid) {
928 $result = $objecttmp->fetch($toselectid);
930 $result = $objecttmp->classifyBilled($user, 0);
967$company_url_list = array();
973$varpage = empty($contextpage) ? $_SERVER[
"PHP_SELF"] : $contextpage;
974$selectedfields = $form->multiSelectArrayWithCheckbox(
'selectedfields', $arrayfields, $varpage);
976$title = $langs->trans(
"Orders");
977$help_url =
"EN:Module_Customers_Orders|FR:Module_Commandes_Clients|ES:Módulo_Pedidos_de_clientes";
982$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,';
983$sql .=
" s.parent as fk_parent,";
984$sql .=
" s2.nom as name2,";
985$sql .=
" typent.code as typent_code,";
986$sql .=
" state.code_departement as state_code, state.nom as state_name,";
987$sql .=
" country.code as country_code,";
988$sql .=
' c.rowid, c.ref, c.ref_ext, c.total_ht, c.total_tva, c.total_ttc, c.ref_client, c.fk_user_author,';
989$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,';
990$sql .=
' c.date_valid, c.date_commande, c.note_public, c.note_private, c.date_livraison as delivery_date, c.fk_statut, c.facture as billed,';
991$sql .=
' c.date_creation as date_creation, c.tms as date_modification, c.date_cloture as date_cloture,';
992$sql .=
' c.fk_cond_reglement,c.deposit_percent,c.fk_mode_reglement,c.fk_shipping_method,';
993$sql .=
' c.fk_input_reason, c.import_key,';
994$sql .=
" c.module_source, c.pos_source,";
995$sql .=
' p.rowid as project_id, p.ref as project_ref, p.title as project_label,';
996$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';
999if (!empty($extrafields->attributes[
$object->table_element][
'label'])) {
1000 foreach ($extrafields->attributes[
$object->table_element][
'label'] as $key => $val) {
1001 $sql .= ($extrafields->attributes[
$object->table_element][
'type'][$key] !=
'separate' ?
", ef.".$key.
" as options_".$key :
'');
1006$parameters = array();
1007$reshook = $hookmanager->executeHooks(
'printFieldListSelect', $parameters, $object, $action);
1008$sql .= $hookmanager->resPrint;
1009$sql = preg_replace(
'/,\s*$/',
'', $sql);
1013$sql .=
' FROM '.MAIN_DB_PREFIX.
'societe as s';
1014$sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"societe as s2 ON s2.rowid = s.parent";
1015$sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"c_country as country on (country.rowid = s.fk_pays)";
1016$sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"c_typent as typent on (typent.id = s.fk_typent)";
1017$sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"c_departements as state on (state.rowid = s.fk_departement)";
1018$sql .=
', '.MAIN_DB_PREFIX.
'commande as c';
1019if (!empty($extrafields->attributes[
$object->table_element][
'label']) && is_array($extrafields->attributes[
$object->table_element][
'label']) && count($extrafields->attributes[
$object->table_element][
'label'])) {
1020 $sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"commande_extrafields as ef on (c.rowid = ef.fk_object)";
1022$sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"projet as p ON p.rowid = c.fk_projet";
1023$sql .=
' LEFT JOIN '.MAIN_DB_PREFIX.
'user as u ON c.fk_user_author = u.rowid';
1025$parameters = array();
1026$reshook = $hookmanager->executeHooks(
'printFieldListFrom', $parameters, $object, $action);
1027$sql .= $hookmanager->resPrint;
1029$sql .=
' WHERE c.fk_soc = s.rowid';
1030$sql .=
' AND c.entity IN ('.getEntity(
'commande').
')';
1032 $sql .=
' AND s.rowid = '.((int) $socid);
1035if (empty($user->socid) && !$permissiontoreadallthirdparty) {
1036 $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).
")";
1038 $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)).
"))";
1043if ($search_id > 0) {
1049if ($search_ref_ext) {
1052if ($search_ref_customer) {
1055if ($search_billed !=
'' && $search_billed >= 0) {
1056 $sql .=
' AND c.facture = '.((int) $search_billed);
1058if ($search_status !=
'') {
1059 if ($search_status <= 3 && $search_status >= -1) {
1060 if ($search_status == 1 && !
isModEnabled(
'shipping')) {
1061 $sql .=
' AND c.fk_statut IN (1,2)';
1063 $sql .=
' AND c.fk_statut = '.((int) $search_status);
1066 if ($search_status == -2) {
1068 $sql .=
" AND (c.fk_statut IN (1,2))";
1070 if ($search_status == -3) {
1073 $sql .=
' AND (c.fk_statut IN (1,2,3))';
1076if ($search_option ==
'late') {
1079 $sql .=
" AND ((c.date_livraison IS NOT NULL AND c.date_livraison < '".$db->idate(
dol_now() -
$conf->order->client->warning_delay).
"') OR (c.date_livraison IS NULL AND c.date_commande < '".
$db->idate(
dol_now() -
$conf->order->client->warning_delay).
"'))";
1081 $sql .=
" AND c.date_commande < '".$db->idate(
dol_now() -
$conf->order->client->warning_delay).
"'";
1084if ($search_datecloture_start) {
1085 $sql .=
" AND c.date_cloture >= '".$db->idate($search_datecloture_start).
"'";
1087if ($search_datecloture_end) {
1088 $sql .=
" AND c.date_cloture <= '".$db->idate($search_datecloture_end).
"'";
1090if ($search_dateorder_start) {
1091 $sql .=
" AND c.date_commande >= '".$db->idate($search_dateorder_start).
"'";
1093if ($search_dateorder_end) {
1094 $sql .=
" AND c.date_commande <= '".$db->idate($search_dateorder_end).
"'";
1096if ($search_datedelivery_start) {
1097 $sql .=
" AND c.date_livraison >= '".$db->idate($search_datedelivery_start).
"'";
1099if ($search_datedelivery_end) {
1100 $sql .=
" AND c.date_livraison <= '".$db->idate($search_datedelivery_end).
"'";
1111if ($search_country) {
1112 $sql .=
" AND s.fk_pays IN (".$db->sanitize($search_country).
')';
1114if ($search_type_thirdparty && $search_type_thirdparty !=
'-1') {
1115 $sql .=
" AND s.fk_typent IN (".$db->sanitize($search_type_thirdparty).
')';
1117if (empty($arrayfields[
's.name_alias'][
'checked']) && $search_company) {
1118 $sql .=
natural_search(array(
"s.nom",
"s.name_alias"), $search_company);
1120 if ($search_company) {
1123 if ($search_company_alias) {
1127if ($search_parent_name) {
1130if ($search_total_ht !=
'') {
1133if ($search_total_vat !=
'') {
1136if ($search_total_ttc !=
'') {
1139if ($search_warehouse !=
'' && $search_warehouse > 0) {
1142if ($search_note_public !=
'') {
1145if ($search_note_private !=
'') {
1148if ($search_multicurrency_code !=
'') {
1149 $sql .=
" AND c.multicurrency_code = '".$db->escape($search_multicurrency_code).
"'";
1151if ($search_multicurrency_tx !=
'') {
1152 $sql .=
natural_search(
'c.multicurrency_tx', $search_multicurrency_tx, 1);
1154if ($search_multicurrency_montant_ht !=
'') {
1155 $sql .=
natural_search(
'c.multicurrency_total_ht', $search_multicurrency_montant_ht, 1);
1157if ($search_multicurrency_montant_vat !=
'') {
1158 $sql .=
natural_search(
'c.multicurrency_total_tva', $search_multicurrency_montant_vat, 1);
1160if ($search_multicurrency_montant_ttc !=
'') {
1161 $sql .=
natural_search(
'c.multicurrency_total_ttc', $search_multicurrency_montant_ttc, 1);
1164 $sql .=
natural_search(array(
"u.login",
"u.firstname",
"u.lastname"), $search_login);
1166if ($search_project_ref !=
'') {
1169if ($search_project !=
'') {
1172if ($search_fk_cond_reglement > 0) {
1173 $sql .=
" AND c.fk_cond_reglement = ".((int) $search_fk_cond_reglement);
1175if ($search_fk_shipping_method > 0) {
1176 $sql .=
" AND c.fk_shipping_method = ".((int) $search_fk_shipping_method);
1178if ($search_fk_mode_reglement > 0) {
1179 $sql .=
" AND c.fk_mode_reglement = ".((int) $search_fk_mode_reglement);
1181if ($search_fk_input_reason > 0) {
1182 $sql .=
" AND c.fk_input_reason = ".((int) $search_fk_input_reason);
1184if ($search_module_source) {
1185 $sql .=
natural_search(
"c.module_source", $search_module_source);
1187if ($search_pos_source) {
1190if ($search_import_key) {
1194if ($search_user > 0) {
1195 $sql .=
" AND EXISTS (";
1196 $sql .=
" SELECT ec.fk_c_type_contact, ec.element_id, ec.fk_socpeople";
1197 $sql .=
" FROM ".MAIN_DB_PREFIX.
"element_contact as ec";
1198 $sql .=
" INNER JOIN ".MAIN_DB_PREFIX.
"c_type_contact as tc";
1199 $sql .=
" ON ec.fk_c_type_contact = tc.rowid AND tc.element = 'commande' AND tc.source = 'internal'";
1200 $sql .=
" WHERE ec.element_id = c.rowid AND ec.fk_socpeople = ".((int) $search_user).
")";
1203if ($search_sale && $search_sale !=
'-1') {
1204 if ($search_sale == -2) {
1205 $sql .=
" AND NOT EXISTS (SELECT sc.fk_soc FROM ".MAIN_DB_PREFIX.
"societe_commerciaux as sc WHERE sc.fk_soc = c.fk_soc)";
1206 } elseif ($search_sale > 0) {
1207 $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).
")";
1212if (!empty($searchCategoryOrderList)) {
1213 $searchCategoryOrderSqlList = array();
1214 $listofcategoryid =
'';
1215 foreach ($searchCategoryOrderList as $searchCategoryOrder) {
1216 if (intval($searchCategoryOrder) == -2) {
1217 $searchCategoryOrderSqlList[] =
"NOT EXISTS (SELECT ck.fk_order FROM ".MAIN_DB_PREFIX.
"categorie_order as ck WHERE c.rowid = ck.fk_order)";
1218 } elseif (intval($searchCategoryOrder) > 0) {
1219 if ($searchCategoryOrderOperator == 0) {
1220 $searchCategoryOrderSqlList[] =
" EXISTS (SELECT ck.fk_order FROM ".MAIN_DB_PREFIX.
"categorie_order as ck WHERE c.rowid = ck.fk_order AND ck.fk_categorie = ".((int) $searchCategoryOrder).
")";
1222 $listofcategoryid .= ($listofcategoryid ?
', ' :
'') .((
int) $searchCategoryOrder);
1226 if ($listofcategoryid) {
1227 $searchCategoryOrderSqlList[] =
" EXISTS (SELECT ck.fk_order FROM ".MAIN_DB_PREFIX.
"categorie_order as ck WHERE c.rowid = ck.fk_order AND ck.fk_categorie IN (".
$db->sanitize($listofcategoryid).
"))";
1229 if ($searchCategoryOrderOperator == 1) {
1230 if (!empty($searchCategoryOrderSqlList)) {
1231 $sql .=
" AND (".implode(
' OR ', $searchCategoryOrderSqlList).
")";
1234 if (!empty($searchCategoryOrderSqlList)) {
1235 $sql .=
" AND (".implode(
' AND ', $searchCategoryOrderSqlList).
")";
1241$searchCategoryCustomerOperator =
GETPOSTINT(
'search_category_customer_operator');
1242$searchCategoryCustomerList = array($search_categ_cus);
1243if (!empty($searchCategoryCustomerList)) {
1244 $searchCategoryCustomerSqlList = array();
1245 $listofcategoryid =
'';
1246 foreach ($searchCategoryCustomerList as $searchCategoryCustomer) {
1247 if (intval($searchCategoryCustomer) == -2) {
1248 $searchCategoryCustomerSqlList[] =
"NOT EXISTS (SELECT cs.fk_soc FROM ".MAIN_DB_PREFIX.
"categorie_societe as cs WHERE s.rowid = cs.fk_soc)";
1249 } elseif (intval($searchCategoryCustomer) > 0) {
1250 if ($searchCategoryCustomerOperator == 0) {
1251 $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).
")";
1253 $listofcategoryid .= ($listofcategoryid ?
', ' :
'') .((
int) $searchCategoryCustomer);
1257 if ($listofcategoryid) {
1258 $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).
"))";
1260 if ($searchCategoryCustomerOperator == 1) {
1261 if (!empty($searchCategoryCustomerSqlList)) {
1262 $sql .=
" AND (".implode(
' OR ', $searchCategoryCustomerSqlList).
")";
1265 if (!empty($searchCategoryCustomerSqlList)) {
1266 $sql .=
" AND (".implode(
' AND ', $searchCategoryCustomerSqlList).
")";
1271$searchCategoryProductOperator =
GETPOSTINT(
'search_category_product_operator');
1272$searchCategoryProductList = array($search_product_category);
1273if (!empty($searchCategoryProductList)) {
1274 $searchCategoryProductSqlList = array();
1275 $listofcategoryid =
'';
1276 foreach ($searchCategoryProductList as $searchCategoryProduct) {
1277 if (intval($searchCategoryProduct) == -2) {
1278 $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)";
1279 } elseif (intval($searchCategoryProduct) > 0) {
1280 if ($searchCategoryProductOperator == 0) {
1281 $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).
")";
1283 $listofcategoryid .= ($listofcategoryid ?
', ' :
'') .((
int) $searchCategoryProduct);
1287 if ($listofcategoryid) {
1288 $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).
"))";
1290 if ($searchCategoryProductOperator == 1) {
1291 if (!empty($searchCategoryProductSqlList)) {
1292 $sql .=
" AND (".implode(
' OR ', $searchCategoryProductSqlList).
")";
1295 if (!empty($searchCategoryProductSqlList)) {
1296 $sql .=
" AND (".implode(
' AND ', $searchCategoryProductSqlList).
")";
1301include DOL_DOCUMENT_ROOT.
'/core/tpl/extrafields_list_search_sql.tpl.php';
1303$parameters = array();
1304$reshook = $hookmanager->executeHooks(
'printFieldListWhere', $parameters, $object, $action);
1305$sql .= $hookmanager->resPrint;
1310 $fieldstosearchallwithoutpd = array();
1311 $fieldstosearchallwithpd = array();
1312 foreach ($fieldstosearchall as $key => $val) {
1313 if (!preg_match(
'/^pd\./', $key)) {
1314 $fieldstosearchallwithoutpd[$key] = $val;
1316 $fieldstosearchallwithpd[$key] = $val;
1320 if (count($fieldstosearchallwithpd) > 0) {
1321 $sqltoadd .=
" OR EXISTS (SELECT pd.rowid FROM ".MAIN_DB_PREFIX.
"commandedet as pd WHERE pd.fk_commande = c.rowid";
1322 $sqltoadd .=
natural_search(array_keys($fieldstosearchallwithpd),
'__KEYTOSEARCH__');
1326 $sql .=
natural_search(array_keys($fieldstosearchallwithoutpd), $search_all, 0, 0, $sqltoadd);
1330$parameters = array();
1331$reshook = $hookmanager->executeHooks(
'printFieldListHaving', $parameters, $object, $action);
1332if (empty($reshook)) {
1333 $sql .= empty($hookmanager->resPrint) ?
"" :
" HAVING 1=1 ".$hookmanager->resPrint;
1335 $sql = $hookmanager->resPrint;
1340$nbtotalofrecords =
'';
1343 $sqlforcount = preg_replace(
'/^'.preg_quote($sqlfields,
'/').
'/',
'SELECT COUNT(*) as nbtotalofrecords', $sql);
1344 $sqlforcount = preg_replace(
'/GROUP BY .*$/',
'', $sqlforcount);
1345 $resql =
$db->query($sqlforcount);
1347 $objforcount =
$db->fetch_object($resql);
1348 $nbtotalofrecords = $objforcount->nbtotalofrecords;
1353 if (($page * $limit) > (
int) $nbtotalofrecords) {
1361$sql .=
$db->order($sortfield, $sortorder);
1363 $sql .=
$db->plimit($limit + 1, $offset);
1367$resql =
$db->query($sql);
1375 $soc->fetch($socid);
1376 $title = $langs->trans(
'CustomersOrders').
' - '.$soc->name;
1377 if (empty($search_company)) {
1378 $search_company = $soc->name;
1381 $title = $langs->trans(
'CustomersOrders');
1383if (strval($search_status) ==
'0') {
1384 $title .=
' - '.$langs->trans(
'StatusOrderDraftShort');
1386if ($search_status == 1) {
1387 $title .=
' - '.$langs->trans(
'StatusOrderValidatedShort');
1389if ($search_status == 2) {
1390 $title .=
' - '.$langs->trans(
'StatusOrderSentShort');
1392if ($search_status == 3) {
1393 $title .=
' - '.$langs->trans(
'StatusOrderToBillShort');
1395if ($search_status == -1) {
1396 $title .=
' - '.$langs->trans(
'StatusOrderCanceledShort');
1398if ($search_status == -2) {
1399 $title .=
' - '.$langs->trans(
'StatusOrderToProcessShort');
1401if ($search_status == -3) {
1402 $title .=
' - '.$langs->trans(
'StatusOrderValidated').
', '.(!
isModEnabled(
'shipping') ?
'' : $langs->trans(
"StatusOrderSent").
', ').$langs->trans(
'StatusOrderToBill');
1404if ($search_status == -4) {
1405 $title .=
' - '.$langs->trans(
"StatusOrderValidatedShort").
'+'.$langs->trans(
"StatusOrderSentShort");
1408$num =
$db->num_rows($resql);
1410$arrayofselected = is_array($toselect) ? $toselect : array();
1412if ($num == 1 &&
getDolGlobalString(
'MAIN_SEARCH_DIRECT_OPEN_IF_ONLY_ONE') && $search_all) {
1413 $obj =
$db->fetch_object($resql);
1415 header(
"Location: ".DOL_URL_ROOT.
'/commande/card.php?id='.
$id);
1422llxHeader(
'', $title, $help_url,
'', 0, 0,
'',
'',
'',
'bodyforlist mod-order page-list');
1424$arrayofselected = is_array($toselect) ? $toselect : array();
1428 $param .=
'&mode='.urlencode($mode);
1430if (!empty($contextpage) && $contextpage != $_SERVER[
"PHP_SELF"]) {
1431 $param .=
'&contextpage='.urlencode($contextpage);
1433if ($limit > 0 && $limit !=
$conf->liste_limit) {
1434 $param .=
'&limit='.((int) $limit);
1436if ($optioncss !=
'') {
1437 $param .=
'&optioncss='.urlencode($optioncss);
1440 $param .=
'&show_files='.urlencode((
string) ($show_files));
1443 $param .=
'&search_all='.urlencode($search_all);
1446 $param .=
'&socid='.((int) $socid);
1448if ($search_status !=
'') {
1449 $param .=
'&search_status='.urlencode($search_status);
1451if ($search_option) {
1452 $param .=
"&search_option=".urlencode($search_option);
1454if ($search_datecloture_start) {
1455 $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');
1457if ($search_datecloture_end) {
1458 $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');
1460if ($search_dateorder_start) {
1461 $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');
1463if ($search_dateorder_end) {
1464 $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');
1466if ($search_datedelivery_start) {
1467 $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');
1469if ($search_datedelivery_end) {
1470 $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');
1473 $param .=
'&search_id='.urlencode((
string) $search_id);
1476 $param .=
'&search_ref='.urlencode($search_ref);
1478if ($search_ref_ext) {
1479 $param .=
'&search_ref_ext='.urlencode($search_ref_ext);
1481if ($search_company) {
1482 $param .=
'&search_company='.urlencode($search_company);
1484if ($search_company_alias) {
1485 $param .=
'&search_company_alias='.urlencode($search_company_alias);
1487if ($search_parent_name !=
'') {
1488 $param .=
'&search_parent_name='.urlencode($search_parent_name);
1490if ($search_ref_customer) {
1491 $param .=
'&search_ref_customer='.urlencode($search_ref_customer);
1493if ($search_user > 0) {
1494 $param .=
'&search_user='.urlencode((
string) ($search_user));
1496if ($search_sale > 0) {
1497 $param .=
'&search_sale='.urlencode((
string) ($search_sale));
1499if ($search_total_ht !=
'') {
1500 $param .=
'&search_total_ht='.urlencode($search_total_ht);
1502if ($search_total_vat !=
'') {
1503 $param .=
'&search_total_vat='.urlencode($search_total_vat);
1505if ($search_total_ttc !=
'') {
1506 $param .=
'&search_total_ttc='.urlencode($search_total_ttc);
1508if ($search_warehouse !=
'') {
1509 $param .=
'&search_warehouse='.urlencode((
string) ($search_warehouse));
1512 $param .=
'&search_login='.urlencode($search_login);
1514if ($search_multicurrency_code !=
'') {
1515 $param .=
'&search_multicurrency_code='.urlencode($search_multicurrency_code);
1517if ($search_multicurrency_tx !=
'') {
1518 $param .=
'&search_multicurrency_tx='.urlencode($search_multicurrency_tx);
1520if ($search_multicurrency_montant_ht !=
'') {
1521 $param .=
'&search_multicurrency_montant_ht='.urlencode($search_multicurrency_montant_ht);
1523if ($search_multicurrency_montant_vat !=
'') {
1524 $param .=
'&search_multicurrency_montant_vat='.urlencode($search_multicurrency_montant_vat);
1526if ($search_multicurrency_montant_ttc !=
'') {
1527 $param .=
'&search_multicurrency_montant_ttc='.urlencode($search_multicurrency_montant_ttc);
1529if ($search_project_ref >= 0) {
1530 $param .=
"&search_project_ref=".urlencode($search_project_ref);
1532if ($search_project !=
'') {
1533 $param .=
"&search_project=".urlencode($search_project);
1535if ($search_town !=
'') {
1536 $param .=
'&search_town='.urlencode($search_town);
1538if ($search_zip !=
'') {
1539 $param .=
'&search_zip='.urlencode($search_zip);
1541if ($search_state !=
'') {
1542 $param .=
'&search_state='.urlencode($search_state);
1544if ($search_country !=
'') {
1545 $param .=
'&search_country='.urlencode((
string) ($search_country));
1547if ($search_type_thirdparty && $search_type_thirdparty !=
'-1') {
1548 $param .=
'&search_type_thirdparty='.urlencode((
string) ($search_type_thirdparty));
1550if ($searchCategoryOrderOperator == 1) {
1551 $param .=
"&search_category_order_operator=".urlencode((
string) ($searchCategoryOrderOperator));
1553foreach ($searchCategoryOrderList as $searchCategoryOrder) {
1554 $param .=
"&search_category_order_list[]=".urlencode($searchCategoryOrder);
1556if ($search_product_category !=
'') {
1557 $param .=
'&search_product_category='.urlencode((
string) ($search_product_category));
1559if (($search_categ_cus > 0) || ($search_categ_cus == -2)) {
1560 $param .=
'&search_categ_cus='.urlencode((
string) ($search_categ_cus));
1562if ($search_billed !=
'') {
1563 $param .=
'&search_billed='.urlencode($search_billed);
1565if ($search_fk_cond_reglement > 0) {
1566 $param .=
'&search_fk_cond_reglement='.urlencode((
string) ($search_fk_cond_reglement));
1568if ($search_fk_shipping_method > 0) {
1569 $param .=
'&search_fk_shipping_method='.urlencode((
string) ($search_fk_shipping_method));
1571if ($search_fk_mode_reglement > 0) {
1572 $param .=
'&search_fk_mode_reglement='.urlencode((
string) ($search_fk_mode_reglement));
1574if ($search_fk_input_reason > 0) {
1575 $param .=
'&search_fk_input_reason='.urlencode((
string) ($search_fk_input_reason));
1577if ($search_module_source) {
1578 $param .=
'&search_module_source='.urlencode($search_module_source);
1580if ($search_pos_source) {
1581 $param .=
'&search_pos_source='.urlencode($search_pos_source);
1583if ($search_import_key !=
'') {
1584 $param .=
'&search_import_key='.urlencode($search_import_key);
1588include DOL_DOCUMENT_ROOT.
'/core/tpl/extrafields_list_search_param.tpl.php';
1591$parameters = array();
1592$reshook = $hookmanager->executeHooks(
'printFieldListSearchParam', $parameters, $object, $action);
1593$param .= $hookmanager->resPrint;
1596$arrayofmassactions = array(
1597 'generate_doc' =>
img_picto(
'',
'pdf',
'class="pictofixedwidth"').$langs->trans(
"ReGeneratePDF"),
1598 'builddoc' =>
img_picto(
'',
'pdf',
'class="pictofixedwidth"').$langs->trans(
"PDFMerge"),
1600if (
isModEnabled(
'category') && $user->hasRight(
"commande",
"lire")) {
1601 $arrayofmassactions[
'preaffecttag'] =
img_picto(
'',
'category',
'class="pictofixedwidth"').$langs->trans(
"AffectTag");
1603if ($permissiontovalidate) {
1604 $arrayofmassactions[
'prevalidate'] =
img_picto(
'',
'check',
'class="pictofixedwidth"').$langs->trans(
"Validate");
1606if ($permissiontoclose) {
1607 $arrayofmassactions[
'preshipped'] =
img_picto(
'',
'dolly',
'class="pictofixedwidth"').$langs->trans(
"ClassifyShipped");
1609if (
isModEnabled(
'invoice') && $user->hasRight(
"facture",
"creer")) {
1610 $arrayofmassactions[
'createbills'] =
img_picto(
'',
'bill',
'class="pictofixedwidth"').$langs->trans(
"CreateInvoiceForThisCustomer");
1612if ($permissiontoclose) {
1613 $arrayofmassactions[
'setbilled'] =
img_picto(
'',
'bill',
'class="pictofixedwidth"').$langs->trans(
"ClassifyBilled");
1615if ($permissiontocancel) {
1616 $arrayofmassactions[
'cancelorders'] =
img_picto(
'',
'close_title',
'class="pictofixedwidth"').$langs->trans(
"CancelOrder");
1618if (!empty($permissiontodelete)) {
1619 $arrayofmassactions[
'predelete'] =
img_picto(
'',
'delete',
'class="pictofixedwidth"').$langs->trans(
"Delete");
1621if ($permissiontosendbymail) {
1622 $arrayofmassactions[
'presend'] =
img_picto(
'',
'email',
'class="pictofixedwidth"').$langs->trans(
"SendByMail");
1624if (in_array($massaction, array(
'presend',
'predelete',
'createbills'))) {
1625 $arrayofmassactions = array();
1627$massactionbutton = $form->selectMassAction(
'', $arrayofmassactions);
1629$url = DOL_URL_ROOT.
'/commande/card.php?action=create';
1630if (!empty($socid)) {
1631 $url .=
'&socid='.$socid;
1634$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'));
1635$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'));
1636$newcardbutton .=
dolGetButtonTitle($langs->trans(
'Statistics'),
'',
'fa fa-chart-bar imgforviewmode', DOL_URL_ROOT.
'/commande/stats/index.php?'.preg_replace(
'/(&|\?)*(mode|groupby)=[^&]+/',
'', $param),
'', ($mode ==
'statistics' ? 2 : 1), array(
'morecss' =>
'reposition'));
1638$newcardbutton .=
dolGetButtonTitle($langs->trans(
'NewOrder'),
'',
'fa fa-plus-circle', $url,
'', (
int) (($contextpage ==
'orderlist' || $contextpage ==
'billableorders') && $permissiontoadd));
1641print
'<form method="POST" id="searchFormList" name="searchFormList" action="'.$_SERVER[
"PHP_SELF"].
'">'.
"\n";
1642if ($optioncss !=
'') {
1643 print
'<input type="hidden" name="optioncss" value="'.$optioncss.
'">';
1645print
'<input type="hidden" name="token" value="'.newToken().
'">';
1646print
'<input type="hidden" name="formfilteraction" id="formfilteraction" value="list">';
1647print
'<input type="hidden" name="action" value="list">';
1648print
'<input type="hidden" name="sortfield" value="'.$sortfield.
'">';
1649print
'<input type="hidden" name="sortorder" value="'.$sortorder.
'">';
1650print
'<input type="hidden" name="contextpage" value="'.$contextpage.
'">';
1651print
'<input type="hidden" name="search_status" value="'.$search_status.
'">';
1652print
'<input type="hidden" name="socid" value="'.$socid.
'">';
1653print
'<input type="hidden" name="page_y" value="">';
1654print
'<input type="hidden" name="mode" value="'.$mode.
'">';
1657print_barre_liste($title, $page, $_SERVER[
"PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords,
'order', 0, $newcardbutton,
'', $limit, 0, 0, 1);
1659$topicmail =
"SendOrderRef";
1660$modelmail =
"order_send";
1662$trackid =
'ord'.$object->id;
1663include DOL_DOCUMENT_ROOT.
'/core/tpl/massactions_pre.tpl.php';
1665if ($massaction ==
'prevalidate') {
1666 print $form->formconfirm($_SERVER[
"PHP_SELF"], $langs->trans(
"ConfirmMassValidation"), $langs->trans(
"ConfirmMassValidationQuestion"),
"validate",
null,
'', 0, 200, 500, 1);
1668if ($massaction ==
'preshipped') {
1669 print $form->formconfirm($_SERVER[
"PHP_SELF"], $langs->trans(
"CloseOrder"), $langs->trans(
"ConfirmCloseOrder"),
"shipped",
null,
'', 0, 200, 500, 1);
1672if ($massaction ==
'createbills') {
1673 print
'<input type="hidden" name="massaction" value="confirm_createbills">';
1675 print
'<table class="noborder centpercent">';
1678 print $langs->trans(
'DateInvoice');
1681 print $form->selectDate(
'',
'', 0, 0, 0,
'', 1, 1);
1686 print $langs->trans(
'CreateOneBillByThird');
1689 print $form->selectyesno(
'createbills_onebythird',
getDolGlobalString(
'MAIN_ORDERLIST_CREATEBILLS_ONEBYTHIRD',
'no'), 1);
1694 print $langs->trans(
'ValidateInvoices');
1698 print $form->selectyesno(
'validate_invoices', 0, 1, 1);
1699 $langs->load(
"errors");
1700 print
' ('.$langs->trans(
"WarningAutoValNotPossibleWhenStockIsDecreasedOnInvoiceVal").
')';
1702 print $form->selectyesno(
'validate_invoices', 0, 1);
1704 if (!empty(
$conf->workflow->enabled) &&
getDolGlobalString(
'WORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER')) {
1705 print
' <span class="opacitymedium">'.$langs->trans(
"IfValidateInvoiceIsNoOrderStayUnbilled").
'</span>';
1707 print
' <span class="opacitymedium">'.$langs->trans(
"OptionToSetOrderBilledNotEnabled").
'</span>';
1713 print
'<div class="center">';
1714 print
'<input type="submit" class="button" id="createbills" name="createbills" value="'.$langs->trans(
'CreateInvoiceForThisCustomer').
'"> ';
1715 print
'<input type="submit" class="button button-cancel" id="cancel" name="cancel" value="'.$langs->trans(
"Cancel").
'">';
1722 foreach ($fieldstosearchall as $key => $val) {
1723 $fieldstosearchall[$key] = $langs->trans($val);
1724 $setupstring .= $key.
"=".$val.
";";
1726 print
'<!-- Search done like if MYOBJECT_QUICKSEARCH_ON_FIELDS = '.$setupstring.
' -->'.
"\n";
1727 print
'<div class="divsearchfieldfilter">'.$langs->trans(
"FilterOnInto", $search_all).implode(
', ', $fieldstosearchall).
'</div>';
1732if (
isModEnabled(
'category') && $user->hasRight(
'categorie',
'read')) {
1734 $moreforfilter .= $formcategory->getFilterBox(Categorie::TYPE_ORDER, $searchCategoryOrderList,
'minwidth300', $searchCategoryOrderOperator ? $searchCategoryOrderOperator : 0);
1738if ($user->hasRight(
"user",
"user",
"lire")) {
1739 $langs->load(
"commercial");
1740 $moreforfilter .=
'<div class="divsearchfield">';
1741 $tmptitle = $langs->trans(
'ThirdPartiesOfSaleRepresentative');
1742 $moreforfilter .=
img_picto($tmptitle,
'user',
'class="pictofixedwidth"').$formother->select_salesrepresentatives($search_sale,
'search_sale', $user, 0, $tmptitle,
'maxwidth250 widthcentpercentminusx');
1743 $moreforfilter .=
'</div>';
1746if ($user->hasRight(
"user",
"user",
"lire")) {
1747 $moreforfilter .=
'<div class="divsearchfield">';
1748 $tmptitle = $langs->trans(
'LinkedToSpecificUsers');
1749 $moreforfilter .=
img_picto($tmptitle,
'user',
'class="pictofixedwidth"').$form->select_dolusers($search_user,
'search_user', $tmptitle,
null, 0,
'',
'',
'0', 0, 0,
'', 0,
'',
'maxwidth250 widthcentpercentminusx');
1750 $moreforfilter .=
'</div>';
1754if (
isModEnabled(
'category') && $user->hasRight(
"categorie",
"lire") && ($user->hasRight(
"produit",
"lire") || $user->hasRight(
"service",
"lire"))) {
1755 include_once DOL_DOCUMENT_ROOT.
'/categories/class/categorie.class.php';
1756 $moreforfilter .=
'<div class="divsearchfield">';
1757 $tmptitle = $langs->trans(
'IncludingProductWithTag');
1758 $cate_arbo = $form->select_all_categories(Categorie::TYPE_PRODUCT,
'',
'parent', 0, array(), 1);
1759 $moreforfilter .=
img_picto($tmptitle,
'category',
'class="pictofixedwidth"').$form->selectarray(
'search_product_category', $cate_arbo, $search_product_category, $tmptitle, 0, 0,
'', 0, 0, 0,
'',
'maxwidth300 widthcentpercentminusx', 1);
1760 $moreforfilter .=
'</div>';
1763if (
isModEnabled(
'category') && $user->hasRight(
"categorie",
"lire")) {
1764 require_once DOL_DOCUMENT_ROOT.
'/categories/class/categorie.class.php';
1765 $moreforfilter .=
'<div class="divsearchfield">';
1766 $tmptitle = $langs->trans(
'CustomersProspectsCategoriesShort');
1767 $moreforfilter .=
img_picto($tmptitle,
'category',
'class="pictofixedwidth"').$formother->select_categories(
'customer', $search_categ_cus,
'search_categ_cus', 1, $tmptitle,
'maxwidth300 widthcentpercentminusx');
1768 $moreforfilter .=
'</div>';
1772 $moreforfilter .=
'<div class="divsearchfield">';
1773 $tmptitle = $langs->trans(
'Warehouse');
1774 $moreforfilter .=
img_picto($tmptitle,
'stock',
'class="pictofixedwidth"').$formproduct->selectWarehouses($search_warehouse,
'search_warehouse',
'', 1, 0, 0, $tmptitle, 0, 0, array(),
'maxwidth250 widthcentpercentminusx');
1775 $moreforfilter .=
'</div>';
1778$parameters = array();
1779$reshook = $hookmanager->executeHooks(
'printFieldPreListTitle', $parameters, $object, $action);
1780if (empty($reshook)) {
1781 $moreforfilter .= $hookmanager->resPrint;
1783 $moreforfilter = $hookmanager->resPrint;
1786if (!empty($moreforfilter)) {
1787 print
'<div class="liste_titre liste_titre_bydiv centpercent">';
1788 print $moreforfilter;
1792$varpage = empty($contextpage) ? $_SERVER[
"PHP_SELF"] : $contextpage;
1793$htmlofselectarray = $form->multiSelectArrayWithCheckbox(
'selectedfields', $arrayfields, $varpage,
$conf->main_checkbox_left_column);
1794$selectedfields = ($mode !=
'kanban' ? $htmlofselectarray :
'');
1795$selectedfields .= (count($arrayofmassactions) ? $form->showCheckAddButtons(
'checkforselect', 1) :
'');
1798 $selectedfields .=
'<script>';
1799 $selectedfields .=
' $(document).ready(function() {';
1800 $selectedfields .=
' console.log("Autoclick on checkforselects");';
1801 $selectedfields .=
' $("#checkforselects").click();';
1802 $selectedfields .=
' $("#massaction").val("createbills").change();';
1803 $selectedfields .=
' });';
1804 $selectedfields .=
'</script>';
1807print
'<div class="div-table-responsive">';
1808print
'<table class="tagtable nobottomiftotal liste'.($moreforfilter ?
" listwithfilterbefore" :
"").
'">'.
"\n";
1812print
'<tr class="liste_titre_filter">';
1814if (
$conf->main_checkbox_left_column) {
1815 print
'<td class="liste_titre center maxwidthsearch actioncolumn">';
1816 $searchpicto = $form->showFilterButtons(
'left');
1822if (!empty($arrayfields[
'c.rowid'][
'checked'])) {
1823 print
'<td class="liste_titre">';
1824 print
'<input class="flat" size="6" type="text" name="search_id" value="'.dol_escape_htmltag($search_id).
'">';
1829if (!empty($arrayfields[
'c.ref'][
'checked'])) {
1830 print
'<td class="liste_titre">';
1831 print
'<input class="flat maxwidth50imp" type="text" name="search_ref" value="'.dol_escape_htmltag($search_ref).
'">';
1835if (!empty($arrayfields[
'c.ref_ext'][
'checked'])) {
1836 print
'<td class="liste_titre">';
1837 print
'<input class="flat maxwidth50imp" type="text" name="search_ref_ext" value="'.dol_escape_htmltag($search_ref_ext).
'">';
1841if (!empty($arrayfields[
'c.ref_client'][
'checked'])) {
1842 print
'<td class="liste_titre" align="left">';
1843 print
'<input class="flat" type="text" size="6" name="search_ref_customer" value="'.dol_escape_htmltag($search_ref_customer).
'">';
1847if (!empty($arrayfields[
'p.ref'][
'checked'])) {
1848 print
'<td class="liste_titre"><input type="text" class="flat" size="6" name="search_project_ref" value="'.dol_escape_htmltag($search_project_ref).
'"></td>';
1851if (!empty($arrayfields[
'p.title'][
'checked'])) {
1852 print
'<td class="liste_titre"><input type="text" class="flat" size="6" name="search_project" value="'.dol_escape_htmltag($search_project).
'"></td>';
1855if (!empty($arrayfields[
's.nom'][
'checked'])) {
1856 print
'<td class="liste_titre">';
1857 print
'<input class="flat maxwidth75imp" type="text" name="search_company" value="'.dol_escape_htmltag((
string) $search_company).
'"'.(!empty($user->socid) ?
" disabled" :
"").
'>';
1861if (!empty($arrayfields[
's.name_alias'][
'checked'])) {
1862 print
'<td class="liste_titre">';
1863 print
'<input class="flat maxwidth75imp" type="text" name="search_company_alias" value="'.dol_escape_htmltag($search_company_alias).
'">';
1867if (!empty($arrayfields[
's2.nom'][
'checked'])) {
1868 print
'<td class="liste_titre">';
1869 print
'<input class="flat maxwidth100" type="text" name="search_parent_name" value="'.dol_escape_htmltag($search_parent_name).
'">';
1873if (!empty($arrayfields[
's.town'][
'checked'])) {
1874 print
'<td class="liste_titre"><input class="flat maxwidth75imp" type="text" name="search_town" value="'.dol_escape_htmltag($search_town).
'"></td>';
1877if (!empty($arrayfields[
's.zip'][
'checked'])) {
1878 print
'<td class="liste_titre"><input class="flat maxwidth50imp" type="text" name="search_zip" value="'.dol_escape_htmltag($search_zip).
'"></td>';
1881if (!empty($arrayfields[
'state.nom'][
'checked'])) {
1882 print
'<td class="liste_titre">';
1883 print
'<input class="flat maxwidth50imp" type="text" name="search_state" value="'.dol_escape_htmltag($search_state).
'">';
1887if (!empty($arrayfields[
'country.code_iso'][
'checked'])) {
1888 print
'<td class="liste_titre" align="center">';
1889 print $form->select_country($search_country,
'search_country',
'', 0,
'minwidth100imp maxwidth100');
1893if (!empty($arrayfields[
'typent.code'][
'checked'])) {
1894 print
'<td class="liste_titre maxwidthonsmartphone center">';
1895 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'),
'', 1);
1899if (!empty($arrayfields[
'c.date_commande'][
'checked'])) {
1900 print
'<td class="liste_titre center">';
1901 print
'<div class="nowrapfordate">';
1902 print $form->selectDate($search_dateorder_start ? $search_dateorder_start : -1,
'search_dateorder_start_', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
'From'));
1904 print
'<div class="nowrapfordate">';
1905 print $form->selectDate($search_dateorder_end ? $search_dateorder_end : -1,
'search_dateorder_end_', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
'to'));
1909if (!empty($arrayfields[
'c.delivery_date'][
'checked'])) {
1910 print
'<td class="liste_titre center">';
1911 print
'<div class="nowrapfordate">';
1912 print $form->selectDate($search_datedelivery_start ? $search_datedelivery_start : -1,
'search_datedelivery_start_', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
'From'));
1914 print
'<div class="nowrapfordate">';
1915 print $form->selectDate($search_datedelivery_end ? $search_datedelivery_end : -1,
'search_datedelivery_end_', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
'to'));
1920if (!empty($arrayfields[
'c.fk_shipping_method'][
'checked'])) {
1921 print
'<td class="liste_titre">';
1922 $form->selectShippingMethod($search_fk_shipping_method,
'search_fk_shipping_method',
'', 1,
'', 1);
1926if (!empty($arrayfields[
'c.fk_cond_reglement'][
'checked'])) {
1927 print
'<td class="liste_titre">';
1928 print $form->getSelectConditionsPaiements((
int) $search_fk_cond_reglement,
'search_fk_cond_reglement', 1, 1, 1);
1932if (!empty($arrayfields[
'c.fk_mode_reglement'][
'checked'])) {
1933 print
'<td class="liste_titre">';
1934 print $form->select_types_paiements($search_fk_mode_reglement,
'search_fk_mode_reglement',
'', 0, 1, 1, 0, -1,
'', 1);
1938if (!empty($arrayfields[
'c.fk_input_reason'][
'checked'])) {
1939 print
'<td class="liste_titre">';
1940 $form->selectInputReason($search_fk_input_reason,
'search_fk_input_reason',
'', 1,
'', 1);
1944if (!empty($arrayfields[
'c.module_source'][
'checked'])) {
1945 print
'<td class="liste_titre">';
1946 print
'<input class="flat maxwidth75" type="text" name="search_module_source" value="'.dol_escape_htmltag($search_module_source).
'">';
1950if (!empty($arrayfields[
'c.pos_source'][
'checked'])) {
1951 print
'<td class="liste_titre">';
1952 print
'<input class="flat maxwidth50" type="text" name="search_pos_source" value="'.dol_escape_htmltag($search_pos_source).
'">';
1956if (!empty($arrayfields[
'c.total_ht'][
'checked'])) {
1957 print
'<td class="liste_titre right">';
1958 print
'<input class="flat" type="text" size="4" name="search_total_ht" value="'.dol_escape_htmltag($search_total_ht).
'">';
1962if (!empty($arrayfields[
'c.total_vat'][
'checked'])) {
1963 print
'<td class="liste_titre right">';
1964 print
'<input class="flat" type="text" size="4" name="search_total_vat" value="'.dol_escape_htmltag($search_total_vat).
'">';
1968if (!empty($arrayfields[
'c.total_ttc'][
'checked'])) {
1969 print
'<td class="liste_titre right">';
1970 print
'<input class="flat" type="text" size="5" name="search_total_ttc" value="'.$search_total_ttc.
'">';
1974if (!empty($arrayfields[
'c.multicurrency_code'][
'checked'])) {
1975 print
'<td class="liste_titre">';
1976 print $form->selectMultiCurrency($search_multicurrency_code,
'search_multicurrency_code', 1);
1980if (!empty($arrayfields[
'c.multicurrency_tx'][
'checked'])) {
1981 print
'<td class="liste_titre">';
1982 print
'<input class="flat" type="text" size="4" name="search_multicurrency_tx" value="'.dol_escape_htmltag($search_multicurrency_tx).
'">';
1986if (!empty($arrayfields[
'c.multicurrency_total_ht'][
'checked'])) {
1987 print
'<td class="liste_titre right">';
1988 print
'<input class="flat" type="text" size="4" name="search_multicurrency_montant_ht" value="'.dol_escape_htmltag($search_multicurrency_montant_ht).
'">';
1992if (!empty($arrayfields[
'c.multicurrency_total_vat'][
'checked'])) {
1993 print
'<td class="liste_titre right">';
1994 print
'<input class="flat" type="text" size="4" name="search_multicurrency_montant_vat" value="'.dol_escape_htmltag($search_multicurrency_montant_vat).
'">';
1998if (!empty($arrayfields[
'c.multicurrency_total_ttc'][
'checked'])) {
1999 print
'<td class="liste_titre right">';
2000 print
'<input class="flat width75" type="text" name="search_multicurrency_montant_ttc" value="'.dol_escape_htmltag($search_multicurrency_montant_ttc).
'">';
2004if (!empty($arrayfields[
'u.login'][
'checked'])) {
2005 print
'<td class="liste_titre">';
2006 print
'<input class="flat width75" type="text" name="search_login" value="'.dol_escape_htmltag($search_login).
'">';
2010if (!empty($arrayfields[
'sale_representative'][
'checked'])) {
2011 print
'<td class="liste_titre"></td>';
2013if (!empty($arrayfields[
'total_pa'][
'checked'])) {
2014 print
'<td class="liste_titre right">';
2017if (!empty($arrayfields[
'total_margin'][
'checked'])) {
2018 print
'<td class="liste_titre right">';
2021if (!empty($arrayfields[
'total_margin_rate'][
'checked'])) {
2022 print
'<td class="liste_titre right">';
2025if (!empty($arrayfields[
'total_mark_rate'][
'checked'])) {
2026 print
'<td class="liste_titre right">';
2031if (!empty($arrayfields[
'c.datec'][
'checked'])) {
2032 print
'<td class="liste_titre">';
2036if (!empty($arrayfields[
'c.tms'][
'checked'])) {
2037 print
'<td class="liste_titre">';
2041if (!empty($arrayfields[
'c.date_cloture'][
'checked'])) {
2042 print
'<td class="liste_titre center">';
2043 print
'<div class="nowrapfordate">';
2044 print $form->selectDate($search_datecloture_start ? $search_datecloture_start : -1,
'search_datecloture_start', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
'From'));
2046 print
'<div class="nowrapfordate">';
2047 print $form->selectDate($search_datecloture_end ? $search_datecloture_end : -1,
'search_datecloture_end', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
'to'));
2052if (!empty($arrayfields[
'c.note_public'][
'checked'])) {
2053 print
'<td class="liste_titre">';
2054 print
'<input class="flat width75" type="text" name="search_note_public" value="'.dolPrintHTMLForAttribute($search_note_public).
'">';
2058if (!empty($arrayfields[
'c.note_private'][
'checked'])) {
2059 print
'<td class="liste_titre">';
2060 print
'<input class="flat width75" type="text" name="search_note_private" value="'.dolPrintHTMLForAttribute($search_note_private).
'">';
2064if (!empty($arrayfields[
'shippable'][
'checked'])) {
2065 print
'<td class="liste_titre maxwidthonsmartphone" align="center">';
2068 print
'<input type="checkbox" name="show_shippable_command" value="1"'.($show_shippable_command ?
' checked' :
'').
'>';
2069 print $langs->trans(
'ShowShippableStatus');
2071 $show_shippable_command = 1;
2077include DOL_DOCUMENT_ROOT.
'/core/tpl/extrafields_list_search_input.tpl.php';
2080$parameters = array(
'arrayfields' => $arrayfields);
2081$reshook = $hookmanager->executeHooks(
'printFieldListOption', $parameters, $object, $action);
2082print $hookmanager->resPrint;
2085if (!empty($arrayfields[
'c.facture'][
'checked'])) {
2086 print
'<td class="liste_titre maxwidthonsmartphone center">';
2087 print $form->selectyesno(
'search_billed', $search_billed, 1, 0, 1, 1);
2092if (!empty($arrayfields[
'c.import_key'][
'checked'])) {
2093 print
'<td class="liste_titre maxwidthonsmartphone center">';
2094 print
'<input class="flat searchstring maxwidth50" type="text" name="search_import_key" value="'.dol_escape_htmltag($search_import_key).
'">';
2099if (!empty($arrayfields[
'c.fk_statut'][
'checked'])) {
2100 print
'<td class="liste_titre center parentonrightofpage">';
2101 $liststatus = array(
2105 -2 => $langs->trans(
"StatusOrderValidatedShort").
'+'.$langs->trans(
"StatusOrderSentShort"),
2106 -3 => $langs->trans(
"StatusOrderValidatedShort").
'+'.$langs->trans(
"StatusOrderSentShort").
'+'.$langs->trans(
"StatusOrderDelivered"),
2111 print $form->selectarray(
'search_status', $liststatus, $search_status, -5, 0, 0,
'', 0, 0, 0,
'',
'search_status width100 onrightofpage', 1);
2115if (!
$conf->main_checkbox_left_column) {
2116 print
'<td class="liste_titre center maxwidthsearch">';
2117 $searchpicto = $form->showFilterButtons();
2136print
'<tr class="liste_titre">';
2139if (
$conf->main_checkbox_left_column) {
2140 print_liste_field_titre($selectedfields, $_SERVER[
"PHP_SELF"],
"",
'', $param,
'', $sortfield, $sortorder,
'maxwidthsearch center ');
2143if (!empty($arrayfields[
'c.rowid'][
'checked'])) {
2144 print_liste_field_titre($arrayfields[
'c.rowid'][
'label'], $_SERVER[
"PHP_SELF"],
'c.rowid',
'', $param,
'', $sortfield, $sortorder,
'center ');
2147if (!empty($arrayfields[
'c.ref'][
'checked'])) {
2148 print_liste_field_titre($arrayfields[
'c.ref'][
'label'], $_SERVER[
"PHP_SELF"],
'c.ref',
'', $param,
'', $sortfield, $sortorder);
2151if (!empty($arrayfields[
'c.ref_ext'][
'checked'])) {
2152 print_liste_field_titre($arrayfields[
'c.ref_ext'][
'label'], $_SERVER[
"PHP_SELF"],
'c.ref_ext',
'', $param,
'', $sortfield, $sortorder);
2155if (!empty($arrayfields[
'c.ref_client'][
'checked'])) {
2156 print_liste_field_titre($arrayfields[
'c.ref_client'][
'label'], $_SERVER[
"PHP_SELF"],
'c.ref_client',
'', $param,
'', $sortfield, $sortorder);
2159if (!empty($arrayfields[
'p.ref'][
'checked'])) {
2160 print_liste_field_titre($arrayfields[
'p.ref'][
'label'], $_SERVER[
"PHP_SELF"],
"p.ref",
"", $param,
'', $sortfield, $sortorder);
2163if (!empty($arrayfields[
'p.title'][
'checked'])) {
2164 print_liste_field_titre($arrayfields[
'p.title'][
'label'], $_SERVER[
"PHP_SELF"],
"p.title",
"", $param,
'', $sortfield, $sortorder);
2167if (!empty($arrayfields[
's.nom'][
'checked'])) {
2168 print_liste_field_titre($arrayfields[
's.nom'][
'label'], $_SERVER[
"PHP_SELF"],
's.nom',
'', $param,
'', $sortfield, $sortorder);
2171if (!empty($arrayfields[
's.name_alias'][
'checked'])) {
2173 print_liste_field_titre($arrayfields[
's.name_alias'][
'label'], $_SERVER[
"PHP_SELF"],
's.name_alias',
'', $param,
'', $sortfield, $sortorder);
2176if (!empty($arrayfields[
's2.nom'][
'checked'])) {
2177 print_liste_field_titre($arrayfields[
's2.nom'][
'label'], $_SERVER[
'PHP_SELF'],
's2.nom',
'', $param,
'', $sortfield, $sortorder);
2180if (!empty($arrayfields[
's.town'][
'checked'])) {
2181 print_liste_field_titre($arrayfields[
's.town'][
'label'], $_SERVER[
"PHP_SELF"],
's.town',
'', $param,
'', $sortfield, $sortorder);
2184if (!empty($arrayfields[
's.zip'][
'checked'])) {
2185 print_liste_field_titre($arrayfields[
's.zip'][
'label'], $_SERVER[
"PHP_SELF"],
's.zip',
'', $param,
'', $sortfield, $sortorder);
2188if (!empty($arrayfields[
'state.nom'][
'checked'])) {
2189 print_liste_field_titre($arrayfields[
'state.nom'][
'label'], $_SERVER[
"PHP_SELF"],
"state.nom",
"", $param,
'', $sortfield, $sortorder);
2192if (!empty($arrayfields[
'country.code_iso'][
'checked'])) {
2193 print_liste_field_titre($arrayfields[
'country.code_iso'][
'label'], $_SERVER[
"PHP_SELF"],
"country.code_iso",
"", $param,
'', $sortfield, $sortorder,
'center ');
2196if (!empty($arrayfields[
'typent.code'][
'checked'])) {
2197 print_liste_field_titre($arrayfields[
'typent.code'][
'label'], $_SERVER[
"PHP_SELF"],
"typent.code",
"", $param,
'', $sortfield, $sortorder,
'center ');
2200if (!empty($arrayfields[
'c.date_commande'][
'checked'])) {
2201 print_liste_field_titre($arrayfields[
'c.date_commande'][
'label'], $_SERVER[
"PHP_SELF"],
'c.date_commande',
'', $param,
'', $sortfield, $sortorder,
'center ');
2204if (!empty($arrayfields[
'c.delivery_date'][
'checked'])) {
2205 print_liste_field_titre($arrayfields[
'c.delivery_date'][
'label'], $_SERVER[
"PHP_SELF"],
'c.date_livraison',
'', $param,
'', $sortfield, $sortorder,
'center ');
2208if (!empty($arrayfields[
'c.fk_shipping_method'][
'checked'])) {
2209 print_liste_field_titre($arrayfields[
'c.fk_shipping_method'][
'label'], $_SERVER[
"PHP_SELF"],
"c.fk_shipping_method",
"", $param,
'', $sortfield, $sortorder);
2212if (!empty($arrayfields[
'c.fk_cond_reglement'][
'checked'])) {
2213 print_liste_field_titre($arrayfields[
'c.fk_cond_reglement'][
'label'], $_SERVER[
"PHP_SELF"],
"c.fk_cond_reglement",
"", $param,
'', $sortfield, $sortorder);
2216if (!empty($arrayfields[
'c.fk_mode_reglement'][
'checked'])) {
2217 print_liste_field_titre($arrayfields[
'c.fk_mode_reglement'][
'label'], $_SERVER[
"PHP_SELF"],
"c.fk_mode_reglement",
"", $param,
'', $sortfield, $sortorder);
2220if (!empty($arrayfields[
'c.fk_input_reason'][
'checked'])) {
2221 print_liste_field_titre($arrayfields[
'c.fk_input_reason'][
'label'], $_SERVER[
"PHP_SELF"],
"c.fk_input_reason",
"", $param,
'', $sortfield, $sortorder);
2224if (!empty($arrayfields[
'c.module_source'][
'checked'])) {
2225 print_liste_field_titre($arrayfields[
'c.module_source'][
'label'], $_SERVER[
"PHP_SELF"],
"f.module_source",
"", $param,
"", $sortfield, $sortorder);
2228if (!empty($arrayfields[
'c.pos_source'][
'checked'])) {
2229 print_liste_field_titre($arrayfields[
'c.pos_source'][
'label'], $_SERVER[
"PHP_SELF"],
"f.pos_source",
"", $param,
"", $sortfield, $sortorder);
2232if (!empty($arrayfields[
'c.total_ht'][
'checked'])) {
2233 print_liste_field_titre($arrayfields[
'c.total_ht'][
'label'], $_SERVER[
"PHP_SELF"],
'c.total_ht',
'', $param,
'', $sortfield, $sortorder,
'right ');
2236if (!empty($arrayfields[
'c.total_vat'][
'checked'])) {
2237 print_liste_field_titre($arrayfields[
'c.total_vat'][
'label'], $_SERVER[
"PHP_SELF"],
'c.total_tva',
'', $param,
'', $sortfield, $sortorder,
'right ');
2240if (!empty($arrayfields[
'c.total_ttc'][
'checked'])) {
2241 print_liste_field_titre($arrayfields[
'c.total_ttc'][
'label'], $_SERVER[
"PHP_SELF"],
'c.total_ttc',
'', $param,
'', $sortfield, $sortorder,
'right ');
2244if (!empty($arrayfields[
'c.multicurrency_code'][
'checked'])) {
2245 print_liste_field_titre($arrayfields[
'c.multicurrency_code'][
'label'], $_SERVER[
'PHP_SELF'],
'c.multicurrency_code',
'', $param,
'', $sortfield, $sortorder);
2248if (!empty($arrayfields[
'c.multicurrency_tx'][
'checked'])) {
2249 print_liste_field_titre($arrayfields[
'c.multicurrency_tx'][
'label'], $_SERVER[
'PHP_SELF'],
'c.multicurrency_tx',
'', $param,
'', $sortfield, $sortorder);
2252if (!empty($arrayfields[
'c.multicurrency_total_ht'][
'checked'])) {
2253 print_liste_field_titre($arrayfields[
'c.multicurrency_total_ht'][
'label'], $_SERVER[
'PHP_SELF'],
'c.multicurrency_total_ht',
'', $param,
'class="right"', $sortfield, $sortorder);
2256if (!empty($arrayfields[
'c.multicurrency_total_vat'][
'checked'])) {
2257 print_liste_field_titre($arrayfields[
'c.multicurrency_total_vat'][
'label'], $_SERVER[
'PHP_SELF'],
'c.multicurrency_total_tva',
'', $param,
'class="right"', $sortfield, $sortorder);
2260if (!empty($arrayfields[
'c.multicurrency_total_ttc'][
'checked'])) {
2261 print_liste_field_titre($arrayfields[
'c.multicurrency_total_ttc'][
'label'], $_SERVER[
'PHP_SELF'],
'c.multicurrency_total_ttc',
'', $param,
'class="right"', $sortfield, $sortorder);
2264if (!empty($arrayfields[
'u.login'][
'checked'])) {
2265 print_liste_field_titre($arrayfields[
'u.login'][
'label'], $_SERVER[
"PHP_SELF"],
'u.login',
'', $param,
'', $sortfield, $sortorder);
2268if (!empty($arrayfields[
'sale_representative'][
'checked'])) {
2269 print_liste_field_titre($arrayfields[
'sale_representative'][
'label'], $_SERVER[
"PHP_SELF"],
"",
"",
"$param",
'', $sortfield, $sortorder);
2272if (!empty($arrayfields[
'total_pa'][
'checked'])) {
2273 print_liste_field_titre($arrayfields[
'total_pa'][
'label'], $_SERVER[
'PHP_SELF'],
'',
'', $param,
'class="right"', $sortfield, $sortorder);
2276if (!empty($arrayfields[
'total_margin'][
'checked'])) {
2277 print_liste_field_titre($arrayfields[
'total_margin'][
'label'], $_SERVER[
'PHP_SELF'],
'',
'', $param,
'class="right"', $sortfield, $sortorder);
2280if (!empty($arrayfields[
'total_margin_rate'][
'checked'])) {
2281 print_liste_field_titre($arrayfields[
'total_margin_rate'][
'label'], $_SERVER[
'PHP_SELF'],
'',
'', $param,
'class="right"', $sortfield, $sortorder);
2284if (!empty($arrayfields[
'total_mark_rate'][
'checked'])) {
2285 print_liste_field_titre($arrayfields[
'total_mark_rate'][
'label'], $_SERVER[
'PHP_SELF'],
'',
'', $param,
'class="right"', $sortfield, $sortorder);
2289if (!empty($arrayfields[
'c.datec'][
'checked'])) {
2290 print_liste_field_titre($arrayfields[
'c.datec'][
'label'], $_SERVER[
"PHP_SELF"],
"c.date_creation",
"", $param,
'', $sortfield, $sortorder,
'center nowrap ');
2293if (!empty($arrayfields[
'c.tms'][
'checked'])) {
2294 print_liste_field_titre($arrayfields[
'c.tms'][
'label'], $_SERVER[
"PHP_SELF"],
"c.tms",
"", $param,
'', $sortfield, $sortorder,
'center nowrap ');
2297if (!empty($arrayfields[
'c.date_cloture'][
'checked'])) {
2298 print_liste_field_titre($arrayfields[
'c.date_cloture'][
'label'], $_SERVER[
"PHP_SELF"],
"c.date_cloture",
"", $param,
'', $sortfield, $sortorder,
'center nowrap ');
2301if (!empty($arrayfields[
'c.note_public'][
'checked'])) {
2302 print_liste_field_titre($arrayfields[
'c.note_public'][
'label'], $_SERVER[
"PHP_SELF"],
"c.note_public",
"", $param,
'', $sortfield, $sortorder,
'');
2305if (!empty($arrayfields[
'c.note_private'][
'checked'])) {
2306 print_liste_field_titre($arrayfields[
'c.note_private'][
'label'], $_SERVER[
"PHP_SELF"],
"c.note_private",
"", $param,
'', $sortfield, $sortorder,
'');
2309if (!empty($arrayfields[
'shippable'][
'checked'])) {
2310 print_liste_field_titre($arrayfields[
'shippable'][
'label'], $_SERVER[
"PHP_SELF"],
'',
'', $param,
'', $sortfield, $sortorder,
'center ');
2314include DOL_DOCUMENT_ROOT.
'/core/tpl/extrafields_list_search_title.tpl.php';
2317$parameters = array(
'arrayfields' => $arrayfields,
'param' => $param,
'sortfield' => $sortfield,
'sortorder' => $sortorder,
'totalarray' => &
$totalarray);
2318$reshook = $hookmanager->executeHooks(
'printFieldListTitle', $parameters, $object, $action);
2319print $hookmanager->resPrint;
2322if (!empty($arrayfields[
'c.facture'][
'checked'])) {
2323 print_liste_field_titre($arrayfields[
'c.facture'][
'label'], $_SERVER[
"PHP_SELF"],
'c.facture',
'', $param,
'', $sortfield, $sortorder,
'center ');
2327if (!empty($arrayfields[
'c.import_key'][
'checked'])) {
2328 print_liste_field_titre($arrayfields[
'c.import_key'][
'label'], $_SERVER[
"PHP_SELF"],
"c.import_key",
"", $param,
'', $sortfield, $sortorder,
'center ');
2332if (!empty($arrayfields[
'c.fk_statut'][
'checked'])) {
2333 print_liste_field_titre($arrayfields[
'c.fk_statut'][
'label'], $_SERVER[
"PHP_SELF"],
"c.fk_statut",
"", $param,
'', $sortfield, $sortorder,
'center ');
2337if (!
$conf->main_checkbox_left_column) {
2338 print_liste_field_titre($selectedfields, $_SERVER[
"PHP_SELF"],
"",
'', $param,
'', $sortfield, $sortorder,
'maxwidthsearch center ');
2345$productstat_cache = array();
2346$productstat_cachevirtual = array();
2347$getNomUrl_cache = array();
2353$with_margin_info =
false;
2355 !empty($arrayfields[
'total_pa'][
'checked'])
2356 || !empty($arrayfields[
'total_margin'][
'checked'])
2357 || !empty($arrayfields[
'total_margin_rate'][
'checked'])
2358 || !empty($arrayfields[
'total_mark_rate'][
'checked'])
2361 $with_margin_info =
true;
2373$imaxinloop = ($limit ? min($num, $limit) : $num);
2374while ($i < $imaxinloop) {
2375 $obj =
$db->fetch_object($resql);
2380 $typenArray = $formcompany->typent_array(1);
2388 $companystatic->id = $obj->socid;
2389 $companystatic->name = $obj->name;
2390 $companystatic->name_alias = $obj->alias;
2391 $companystatic->client = $obj->client;
2392 $companystatic->fournisseur = $obj->fournisseur;
2393 $companystatic->code_client = $obj->code_client;
2394 $companystatic->email = $obj->email;
2395 $companystatic->phone = $obj->phone;
2396 $companystatic->address = $obj->address;
2397 $companystatic->zip = $obj->zip;
2398 $companystatic->town = $obj->town;
2399 $companystatic->country_code = $obj->country_code;
2400 if (!isset($getNomUrl_cache[$obj->socid])) {
2401 $getNomUrl_cache[$obj->socid] = $companystatic->getNomUrl(1,
'customer', 100, 0, 1, empty($arrayfields[
's.name_alias'][
'checked']) ? 0 : 1);
2404 $generic_commande->id = $obj->rowid;
2405 $generic_commande->ref = $obj->ref;
2406 $generic_commande->status = $obj->fk_statut;
2407 $generic_commande->statut = $obj->fk_statut;
2408 $generic_commande->status = $obj->fk_statut;
2409 $generic_commande->billed = $obj->billed;
2410 $generic_commande->date =
$db->jdate($obj->date_commande);
2411 $generic_commande->delivery_date =
$db->jdate($obj->delivery_date);
2412 $generic_commande->ref_client = $obj->ref_client;
2413 $generic_commande->total_ht = $obj->total_ht;
2414 $generic_commande->total_tva = $obj->total_tva;
2415 $generic_commande->total_ttc = $obj->total_ttc;
2416 $generic_commande->note_public = $obj->note_public;
2417 $generic_commande->note_private = $obj->note_private;
2419 $generic_commande->thirdparty = $companystatic;
2422 $projectstatic->id = $obj->project_id;
2423 $projectstatic->ref = $obj->project_ref;
2424 $projectstatic->title = $obj->project_label;
2426 $marginInfo = array();
2427 if ($with_margin_info) {
2428 $generic_commande->fetch_lines();
2429 $marginInfo = $formmargin->getMarginInfosArray($generic_commande);
2430 $total_ht += $obj->total_ht;
2431 $total_margin += $marginInfo[
'total_margin'];
2434 if ($mode ==
'kanban') {
2436 print
'<tr class="trkanban"><td colspan="'.$savnbfield.
'">';
2437 print
'<div class="box-flex-container kanban">';
2442 if ($massactionbutton || $massaction) {
2444 if (in_array(
$object->id, $arrayofselected)) {
2448 print $generic_commande->getKanbanView(
'', array(
'selected' => $selected));
2449 if ($i == ($imaxinloop - 1)) {
2456 print
'<tr data-rowid="'.$object->id.
'" class="oddeven row-with-select status'.$generic_commande->status.((getDolGlobalInt(
'MAIN_FINISHED_LINES_OPACITY') == 1 && $obj->status > 1) ?
' opacitymedium' :
'').
'">';
2459 if (
$conf->main_checkbox_left_column) {
2460 print
'<td class="nowrap center">';
2461 if ($massactionbutton || $massaction) {
2463 if (in_array($obj->rowid, $arrayofselected)) {
2466 print
'<input id="cb'.$obj->rowid.
'" class="flat checkforselect" type="checkbox" name="toselect[]" value="'.$obj->rowid.
'"'.($selected ?
' checked="checked"' :
'').
'>';
2475 if (!empty($arrayfields[
'c.rowid'][
'checked'])) {
2476 print
'<td class="center" data-key="id">'.$obj->rowid.
'</td>';
2483 if (!empty($arrayfields[
'c.ref'][
'checked'])) {
2484 print
'<td class="nowraponall">';
2485 $getNomUrlOption = $search_status != 2 ? 0 : $obj->fk_statut;
2491 $getNomUrlOption =
'';
2493 print $generic_commande->getNomUrl(1, $getNomUrlOption, 0, 0, 0, 1, 1);
2497 $urlsource = $_SERVER[
'PHP_SELF'].
'?id='.$obj->rowid;
2498 print $formfile->getDocumentsLink($generic_commande->element, $filename, $filedir);
2507 if (!empty($arrayfields[
'c.ref_ext'][
'checked'])) {
2508 print
'<td class="nowrap tdoverflowmax75" title="'.dol_escape_htmltag($obj->ref_ext).
'">';
2517 if (!empty($arrayfields[
'c.ref_client'][
'checked'])) {
2518 print
'<td class="nowrap tdoverflowmax150" title="'.dol_escape_htmltag($obj->ref_client).
'">';
2527 if (!empty($arrayfields[
'p.ref'][
'checked'])) {
2528 print
'<td class="nocellnopadd nowraponall">';
2529 if ($obj->project_id > 0) {
2530 print $projectstatic->getNomUrl(1);
2539 if (!empty($arrayfields[
'p.title'][
'checked'])) {
2540 print
'<td class="nowraponall">';
2541 if ($obj->project_id > 0) {
2542 print $projectstatic->title;
2551 if (!empty($arrayfields[
's.nom'][
'checked'])) {
2552 print
'<td class="tdoverflowmax150">';
2554 print $companystatic->getNomUrl(1,
'customer', 100, 0, 1, empty($arrayfields[
's.name_alias'][
'checked']) ? 0 : 1);
2556 print $getNomUrl_cache[$obj->socid];
2561 if ($user->hasRight(
'facture',
'creer')) {
2562 if (($obj->fk_statut > 0 && $obj->fk_statut < 3) || ($obj->fk_statut == 3 && $obj->billed == 0)) {
2563 print
' <a href="'.DOL_URL_ROOT.
'/commande/list.php?socid='.$companystatic->id.
'&search_billed=0&autoselectall=1">';
2564 print
img_picto($langs->trans(
"CreateInvoiceForThisCustomer").
' : '.$companystatic->name,
'object_bill',
'hideonsmartphone').
'</a>';
2575 if (!empty($arrayfields[
's.name_alias'][
'checked'])) {
2576 print
'<td class="nocellnopadd tdoverflowmax100" title="'.dolPrintHTMLForTextArea($obj->alias).
'">';
2585 if (!empty($arrayfields[
's2.nom'][
'checked'])) {
2586 print
'<td class="tdoverflowmax200">';
2587 if ($obj->fk_parent > 0) {
2588 if (!isset($company_url_list[$obj->fk_parent])) {
2590 $res = $companyparent->fetch($obj->fk_parent);
2592 $company_url_list[$obj->fk_parent] = $companyparent->getNomUrl(1);
2595 if (isset($company_url_list[$obj->fk_parent])) {
2596 print $company_url_list[$obj->fk_parent];
2606 if (!empty($arrayfields[
's.town'][
'checked'])) {
2607 print
'<td class="tdoverflowmax100" title="'.dolPrintHTMLForTextArea($obj->town).
'">';
2616 if (!empty($arrayfields[
's.zip'][
'checked'])) {
2617 print
'<td class="tdoverflowmax100" title="'.dolPrintHTMLForTextArea($obj->zip).
'">';
2626 if (!empty($arrayfields[
'state.nom'][
'checked'])) {
2627 print
'<td class="tdoverflowmax100" title="'.dolPrintHTMLForTextArea($obj->state_name).
'">'.
dolPrintLabel($obj->state_name).
"</td>\n";
2634 if (!empty($arrayfields[
'country.code_iso'][
'checked'])) {
2635 $tmparray =
getCountry($obj->fk_pays,
'all');
2636 print
'<td class="center tdoverflowmax100" title="'.dolPrintHTMLForAttribute($tmparray[
'label']).
'">';
2645 if (!empty($arrayfields[
'typent.code'][
'checked'])) {
2646 if (!is_array($typenArray) || count($typenArray) == 0) {
2647 $typenArray = $formcompany->typent_array(1);
2649 if (!empty($obj->typent_code)) {
2650 print
'<td class="center tdoverflowmax100" title="'.dolPrintHTMLForAttribute($typenArray[$obj->typent_code]).
'">';
2651 print $typenArray[$obj->typent_code];
2653 print
'<td class="center tdoverflowmax100">';
2663 if (!empty($arrayfields[
'c.date_commande'][
'checked'])) {
2664 print
'<td class="center nowraponall">';
2667 if ($generic_commande->hasDelay()) {
2668 print
img_picto($langs->trans(
"Late").
' : '.$generic_commande->showDelay(),
"warning");
2677 if (!empty($arrayfields[
'c.delivery_date'][
'checked'])) {
2678 print
'<td class="center nowraponall">';
2687 if (!empty($arrayfields[
'c.fk_shipping_method'][
'checked'])) {
2689 $form->formSelectShippingMethod(
'', $obj->fk_shipping_method,
'none', 1);
2697 if (!empty($arrayfields[
'c.fk_cond_reglement'][
'checked'])) {
2699 $form->form_conditions_reglement($_SERVER[
'PHP_SELF'], $obj->fk_cond_reglement,
'none', 0,
'', 1, $obj->deposit_percent);
2707 if (!empty($arrayfields[
'c.fk_mode_reglement'][
'checked'])) {
2709 $form->form_modes_reglement($_SERVER[
'PHP_SELF'], $obj->fk_mode_reglement,
'none',
'', -1);
2717 if (!empty($arrayfields[
'c.fk_input_reason'][
'checked'])) {
2719 $form->formInputReason($_SERVER[
'PHP_SELF'], $obj->fk_input_reason,
'none', 0);
2727 if (!empty($arrayfields[
'c.module_source'][
'checked'])) {
2736 if (!empty($arrayfields[
'c.pos_source'][
'checked'])) {
2746 if (!empty($arrayfields[
'c.total_ht'][
'checked'])) {
2747 print
'<td class="nowraponall right"><span class="amount">'.price($obj->total_ht).
"</span></td>\n";
2755 $totalarray[
'val'][
'c.total_ht'] += $obj->total_ht;
2757 $totalarray[
'val'][
'c.total_ht'] = $obj->total_ht;
2762 if (!empty($arrayfields[
'c.total_vat'][
'checked'])) {
2763 print
'<td class="nowrap right"><span class="amount">'.price($obj->total_tva).
"</span></td>\n";
2771 $totalarray[
'val'][
'c.total_tva'] += $obj->total_tva;
2773 $totalarray[
'val'][
'c.total_tva'] = $obj->total_tva;
2778 if (!empty($arrayfields[
'c.total_ttc'][
'checked'])) {
2779 print
'<td class="nowrap right"><span class="amount">'.price($obj->total_ttc).
"</span></td>\n";
2787 $totalarray[
'val'][
'c.total_ttc'] += $obj->total_ttc;
2789 $totalarray[
'val'][
'c.total_ttc'] = $obj->total_ttc;
2794 if (!empty($arrayfields[
'c.multicurrency_code'][
'checked'])) {
2795 print
'<td class="nowrap">'.$obj->multicurrency_code.
' - '.$langs->trans(
'Currency'.$obj->multicurrency_code).
"</td>\n";
2802 if (!empty($arrayfields[
'c.multicurrency_tx'][
'checked'])) {
2803 print
'<td class="nowrap">';
2804 $form->form_multicurrency_rate($_SERVER[
'PHP_SELF'].
'?id='.$obj->rowid, $obj->multicurrency_tx,
'none', $obj->multicurrency_code);
2812 if (!empty($arrayfields[
'c.multicurrency_total_ht'][
'checked'])) {
2813 print
'<td class="right nowrap"><span class="amount">'.price($obj->multicurrency_total_ht).
"</span></td>\n";
2819 if (!empty($arrayfields[
'c.multicurrency_total_vat'][
'checked'])) {
2820 print
'<td class="right nowrap"><span class="amount">'.price($obj->multicurrency_total_vat).
"</span></td>\n";
2826 if (!empty($arrayfields[
'c.multicurrency_total_ttc'][
'checked'])) {
2827 print
'<td class="right nowrap"><span class="amount">'.price($obj->multicurrency_total_ttc).
"</span></td>\n";
2833 $userstatic->id = $obj->fk_user_author;
2834 $userstatic->login = $obj->login;
2835 $userstatic->lastname = $obj->lastname;
2836 $userstatic->firstname = $obj->firstname;
2837 $userstatic->email = $obj->user_email;
2838 $userstatic->status = $obj->user_statut;
2839 $userstatic->entity = $obj->entity;
2840 $userstatic->photo = $obj->photo;
2841 $userstatic->office_phone = $obj->office_phone;
2842 $userstatic->office_fax = $obj->office_fax;
2843 $userstatic->user_mobile = $obj->user_mobile;
2844 $userstatic->job = $obj->job;
2845 $userstatic->gender = $obj->gender;
2848 if (!empty($arrayfields[
'u.login'][
'checked'])) {
2849 print
'<td class="tdoverflowmax125">';
2850 if ($userstatic->id) {
2851 print $userstatic->getNomUrl(-1);
2862 if (!empty($arrayfields[
'sale_representative'][
'checked'])) {
2864 if ($obj->socid > 0) {
2865 $listsalesrepresentatives = $companystatic->getSalesRepresentatives($user);
2866 if ($listsalesrepresentatives < 0) {
2869 $nbofsalesrepresentative = count($listsalesrepresentatives);
2870 if ($nbofsalesrepresentative > 6) {
2872 print $nbofsalesrepresentative;
2873 } elseif ($nbofsalesrepresentative > 0) {
2875 foreach ($listsalesrepresentatives as $val) {
2876 $userstatic->id = $val[
'id'];
2877 $userstatic->lastname = $val[
'lastname'];
2878 $userstatic->firstname = $val[
'firstname'];
2879 $userstatic->email = $val[
'email'];
2880 $userstatic->status = $val[
'statut'];
2881 $userstatic->entity = $val[
'entity'];
2882 $userstatic->photo = $val[
'photo'];
2883 $userstatic->login = $val[
'login'];
2884 $userstatic->office_phone = $val[
'office_phone'];
2885 $userstatic->office_fax = $val[
'office_fax'];
2886 $userstatic->user_mobile = $val[
'user_mobile'];
2887 $userstatic->job = $val[
'job'];
2888 $userstatic->gender = $val[
'gender'];
2890 print ($nbofsalesrepresentative < 2) ? $userstatic->getNomUrl(-1,
'', 0, 0, 12) : $userstatic->getNomUrl(-2);
2892 if ($j < $nbofsalesrepresentative) {
2909 if (!empty($arrayfields[
'total_pa'][
'checked'])) {
2910 print
'<td class="right nowrap">'.price($marginInfo[
'pa_total']).
'</td>';
2917 if (!empty($arrayfields[
'total_margin'][
'checked'])) {
2918 print
'<td class="right nowrap">'.price($marginInfo[
'total_margin']).
'</td>';
2930 $totalarray[
'val'][
'total_margin'] += $marginInfo[
'total_margin'];
2934 if (!empty($arrayfields[
'total_margin_rate'][
'checked'])) {
2935 print
'<td class="right nowrap">'.(($marginInfo[
'total_margin_rate'] ==
'') ?
'' :
price($marginInfo[
'total_margin_rate'], 0,
'', 0, 0, 2).
'%').
'</td>';
2942 if (!empty($arrayfields[
'total_mark_rate'][
'checked'])) {
2943 print
'<td class="right nowrap">'.(($marginInfo[
'total_mark_rate'] ==
'') ?
'' :
price($marginInfo[
'total_mark_rate'], 0,
'', 0, 0, 2).
'%').
'</td>';
2950 if ($i >= $imaxinloop - 1) {
2951 if (!empty($total_ht)) {
2960 if (!empty($arrayfields[
'c.datec'][
'checked'])) {
2961 print
'<td class="center nowraponall">';
2970 if (!empty($arrayfields[
'c.tms'][
'checked'])) {
2971 print
'<td class="center nowraponall">';
2972 print
dol_print_date(
$db->jdate($obj->date_modification),
'dayhour',
'tzuserrel');
2980 if (!empty($arrayfields[
'c.date_cloture'][
'checked'])) {
2981 print
'<td class="center nowraponall">';
2990 if (!empty($arrayfields[
'c.note_public'][
'checked'])) {
2991 print
'<td class="sensiblehtmlcontent maxwidth250imp classfortooltip" title="'.dolPrintHTMLForAttribute(
dolGetFirstLineOfText($obj->note_public, 20)).
'">';
2992 print
'<div class="small lineheightsmall twolinesmax-normallineheight">'.dolPrintHTML(
dolGetFirstLineOfText($obj->note_public, 5)).
'</div>';
3000 if (!empty($arrayfields[
'c.note_private'][
'checked'])) {
3001 print
'<td class="sensiblehtmlcontent maxwidth250imp classfortooltip" title="'.dolPrintHTMLForAttribute(
dolGetFirstLineOfText($obj->note_private, 20)).
'">';
3002 print
'<div class="small lineheightsmall twolinesmax-normallineheight">'.dolPrintHTML(
dolGetFirstLineOfText($obj->note_private, 5)).
'</div>';
3010 if (!empty($arrayfields[
'shippable'][
'checked'])) {
3011 print
'<td class="center">';
3012 if (!empty($show_shippable_command) &&
isModEnabled(
'stock')) {
3014 $commande->id = (int) $obj->rowid;
3015 $commande->status = (int) $obj->fk_statut;
3016 $commande->statut = (int) $obj->fk_statut;
3018 $shippableInfos = $commande->getShippableInfos();
3020 if ($shippableInfos[
'has_product']) {
3021 print
'<a href="'.DOL_URL_ROOT.
'/expedition/shipment.php?id='.(int) $obj->rowid.
'">';
3022 print $form->textwithtooltip(
'', $shippableInfos[
'textinfo'], 2, 1, $shippableInfos[
'texticon'],
'', 2);
3025 if (!empty($shippableInfos[
'warning'])) {
3027 print $form->textwithtooltip(
'', $langs->trans(
"NotEnoughForAllOrders"), 2, 1,
img_picto(
'',
'error',
'', 0, 0, 0,
'',
'2'),
'', 2);
3038 include DOL_DOCUMENT_ROOT.
'/core/tpl/extrafields_list_print_fields.tpl.php';
3040 $parameters = array(
'arrayfields' => $arrayfields,
'obj' => $obj,
'i' => $i,
'totalarray' => &
$totalarray);
3041 $reshook = $hookmanager->executeHooks(
'printFieldListValue', $parameters, $object, $action);
3042 print $hookmanager->resPrint;
3045 if (!empty($arrayfields[
'c.facture'][
'checked'])) {
3046 print
'<td class="center">';
3048 print
yn($obj->billed, $langs->trans(
"Billed"));
3057 if (!empty($arrayfields[
'c.import_key'][
'checked'])) {
3058 print
'<td class="nowrap center">'.dol_escape_htmltag($obj->import_key).
'</td>';
3065 if (!empty($arrayfields[
'c.fk_statut'][
'checked'])) {
3066 print
'<td class="nowrap center">'.$generic_commande->LibStatut($obj->fk_statut, $obj->billed, 5, 1).
'</td>';
3073 if (!
$conf->main_checkbox_left_column) {
3074 print
'<td class="nowrap center">';
3075 if ($massactionbutton || $massaction) {
3077 if (in_array($obj->rowid, $arrayofselected)) {
3080 print
'<input id="cb'.$obj->rowid.
'" class="flat checkforselect" type="checkbox" name="toselect[]" value="'.$obj->rowid.
'"'.($selected ?
' checked="checked"' :
'').
'>';
3090 $total += $obj->total_ht;
3091 $subtotal += $obj->total_ht;
3097include DOL_DOCUMENT_ROOT.
'/core/tpl/list_print_total.tpl.php';
3102 foreach ($arrayfields as $key => $val) {
3103 if (!empty($val[
'checked'])) {
3107 print
'<tr><td colspan="'.$colspan.
'"><span class="opacitymedium">'.$langs->trans(
"NoRecordFound").
'</span></td></tr>';
3112$parameters = array(
'arrayfields' => $arrayfields,
'sql' => $sql);
3113$reshook = $hookmanager->executeHooks(
'printFieldListFooter', $parameters, $object, $action);
3114print $hookmanager->resPrint;
3116print
'</table>'.
"\n";
3119print
'</form>'.
"\n";
3121if (in_array(
'builddoc', array_keys($arrayofmassactions)) && ($nbtotalofrecords ===
'' || $nbtotalofrecords)) {
3122 $hidegeneratedfilelistifempty = 1;
3123 if ($massaction ==
'builddoc' || $action ==
'remove_file' || $show_files) {
3124 $hidegeneratedfilelistifempty = 0;
3128 $urlsource = $_SERVER[
'PHP_SELF'].
'?sortfield='.$sortfield.
'&sortorder='.$sortorder;
3129 $urlsource .= str_replace(
'&',
'&', $param);
3131 $filedir = $diroutputmassaction;
3132 $genallowed = $permissiontoread;
3133 $delallowed = $permissiontoadd;
3135 print $formfile->showdocuments(
'massfilesarea_orders',
'', $filedir, $urlsource, 0, $delallowed,
'', 1, 1, 0, 48, 1, $param, $title,
'',
'',
'',
null, $hidegeneratedfilelistifempty);
$id
Support class for third parties, contacts, members, users or resources.
if(! $sortfield) if(! $sortorder) $object
llxFooter($comment='', $zone='private', $disabledoutputofmessages=0)
Empty footer.
if(!defined('NOREQUIRESOC')) if(!defined( 'NOREQUIRETRAN')) if(!defined('NOTOKENRENEWAL')) if(!defined( 'NOREQUIREMENU')) if(!defined('NOREQUIREHTML')) if(!defined( 'NOREQUIREAJAX')) llxHeader($head='', $title='', $help_url='', $target='', $disablejs=0, $disablehead=0, $arrayofjs='', $arrayofcss='', $morequerystring='', $morecssonbody='', $replacemainareaby='', $disablenofollow=0, $disablenoindex=0)
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 invoice lines.
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.
$date_start
Variables from include:
dol_now($mode='gmt')
Return date for now.
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...
setEventMessages($mesg, $mesgs, $style='mesgs', $messagekey='', $noduplicate=0, $attop=0)
Set event messages in dol_events session object.
print_liste_field_titre($name, $file="", $field="", $begin="", $param="", $moreattrib="", $sortfield="", $sortorder="", $prefix="", $tooltip="", $forcenowrapcolumntitle=0)
Show title line of an array.
print_barre_liste($title, $page, $file, $options='', $sortfield='', $sortorder='', $morehtmlcenter='', $num=-1, $totalnboflines='', $picto='generic', $pictoisfullpath=0, $morehtmlright='', $morecss='', $limit=-1, $selectlimitsuffix=0, $hidenavigation=0, $pagenavastextinput=0, $morehtmlrightbeforearrow='')
Print a title with navigation controls for pagination.
img_picto($titlealt, $picto, $moreatt='', $pictoisfullpath=0, $srconly=0, $notitle=0, $alt='', $morecss='', $marginleftonlyshort=2, $allowothertags=array())
Show picto whatever it's its name (generic function)
dolPrintHTML($s, $allowiframe=0, $moreallowedtags=array())
Return a string (that can be on several lines) ready to be output on a HTML page.
dolGetFirstLineOfText($text, $nboflines=1, $charset='UTF-8')
Return first line of text.
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.
dol_sanitizeFileName($str, $newstr='_', $unaccent=1, $includequotes=0, $allowdash=0)
Clean a string to use it as a file name.
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.
natural_search($fields, $value, $mode=0, $nofirstand=0, $sqltoadd='')
Generate natural SQL search string for a criteria (this criteria can be tested on one or several fiel...
getDolGlobalInt($key, $default=0)
Return a Dolibarr global constant int value.
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...
GETPOST($paramname, $check='alphanohtml', $method=0, $filter=null, $options=null, $noreplace=0, $nodefault=0)
Return value of a param into GET or POST supervariable.
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...
dolPrintLabel($s, $escapeonlyhtmltags=0)
Return a string label (so on 1 line only and that should not contains any HTML) ready to be output on...
yn($yesno, $format=1, $color=0)
Return yes or no in current language.
dolGetButtonTitleSeparator($moreClass="")
Add space between dolGetButtonTitle.
GETPOSTINT($paramname, $method=0, $nodefault=0)
Return the value of a $_GET or $_POST supervariable, converted into integer.
dol_print_date($time, $format='', $tzoutput='auto', $outputlangs=null, $encodetooutput=false, $decorate=0)
Output date in a string format according to outputlangs (or langs if not defined).
dol_print_error($db=null, $error='', $errors=null)
Displays error message system with all the information to facilitate the diagnosis and the escalation...
GETPOSTISSET($paramname)
Return true if we are in a context of submitting the parameter $paramname from a POST of a form.
getDolGlobalString($key, $default='')
Return a Dolibarr global constant string value.
isModEnabled($module)
Is Dolibarr module enabled.
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...
print $langs trans("Show") . '< td style="' . $timeColor . '" align="center"> s</td > badge status0 badge status4 badge status3 Error badge status8< td align="center">< span class="badge ' . $badge . '"></span ></td >< td align="center">< a href="#" class="button button-small" onclick="openLogModal(this)" data-req="' . dol_escape_htmltag($reqSafe) . '" data-res="' . dol_escape_htmltag($resSafe) . '" data-err="' . dol_escape_htmltag($errSafe) . '">< span class="fa fa-search-plus"></span ></a ></td ></tr >< tr >< td colspan="' . $colspan . '" class="opacitymedium"></td ></tr ></table ></div ></form > logModal none logModal none s a JSON string
buildzip.php
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.