38require
'../main.inc.php';
39require_once DOL_DOCUMENT_ROOT.
'/core/lib/date.lib.php';
40require_once DOL_DOCUMENT_ROOT.
'/core/lib/company.lib.php';
41require_once DOL_DOCUMENT_ROOT.
'/core/class/discount.class.php';
42require_once DOL_DOCUMENT_ROOT.
'/core/class/html.formfile.class.php';
43require_once DOL_DOCUMENT_ROOT.
'/core/class/html.formother.class.php';
44require_once DOL_DOCUMENT_ROOT.
'/core/class/html.formcompany.class.php';
45if (isModEnabled(
'margin')) {
46 require_once DOL_DOCUMENT_ROOT.
'/core/class/html.formmargin.class.php';
48require_once DOL_DOCUMENT_ROOT.
'/commande/class/commande.class.php';
49require_once DOL_DOCUMENT_ROOT.
'/compta/facture/class/facture.class.php';
50require_once DOL_DOCUMENT_ROOT.
'/product/class/product.class.php';
51require_once DOL_DOCUMENT_ROOT.
'/projet/class/project.class.php';
54$langs->loadLangs(array(
'orders',
'sendings',
'deliveries',
'companies',
'compta',
'bills',
'stocks',
'products'));
57$action =
GETPOST(
'action',
'aZ09');
58$massaction =
GETPOST(
'massaction',
'alpha');
59$show_files =
GETPOST(
'show_files',
'int');
60$confirm =
GETPOST(
'confirm',
'alpha');
61$toselect =
GETPOST(
'toselect',
'array');
62$contextpage =
GETPOST(
'contextpage',
'aZ') ?
GETPOST(
'contextpage',
'aZ') :
'orderlist';
63$mode =
GETPOST(
'mode',
'alpha');
66$search_datecloture_start =
GETPOST(
'search_datecloture_start',
'int');
67if (empty($search_datecloture_start)) {
68 $search_datecloture_start =
dol_mktime(0, 0, 0,
GETPOST(
'search_datecloture_startmonth',
'int'),
GETPOST(
'search_datecloture_startday',
'int'),
GETPOST(
'search_datecloture_startyear',
'int'));
70$search_datecloture_end =
GETPOST(
'search_datecloture_end',
'int');
71if (empty($search_datecloture_end)) {
72 $search_datecloture_end =
dol_mktime(23, 59, 59,
GETPOST(
'search_datecloture_endmonth',
'int'),
GETPOST(
'search_datecloture_endday',
'int'),
GETPOST(
'search_datecloture_endyear',
'int'));
74$search_dateorder_start =
dol_mktime(0, 0, 0,
GETPOST(
'search_dateorder_start_month',
'int'),
GETPOST(
'search_dateorder_start_day',
'int'),
GETPOST(
'search_dateorder_start_year',
'int'));
75$search_dateorder_end =
dol_mktime(23, 59, 59,
GETPOST(
'search_dateorder_end_month',
'int'),
GETPOST(
'search_dateorder_end_day',
'int'),
GETPOST(
'search_dateorder_end_year',
'int'));
76$search_datedelivery_start =
dol_mktime(0, 0, 0,
GETPOST(
'search_datedelivery_start_month',
'int'),
GETPOST(
'search_datedelivery_start_day',
'int'),
GETPOST(
'search_datedelivery_start_year',
'int'));
77$search_datedelivery_end =
dol_mktime(23, 59, 59,
GETPOST(
'search_datedelivery_end_month',
'int'),
GETPOST(
'search_datedelivery_end_day',
'int'),
GETPOST(
'search_datedelivery_end_year',
'int'));
79$socid =
GETPOST(
'socid',
'int');
80$search_all = trim((
GETPOST(
'search_all',
'alphanohtml') !=
'') ?
GETPOST(
'search_all',
'alphanohtml') :
GETPOST(
'sall',
'alphanohtml'));
81$search_product_category =
GETPOST(
'search_product_category',
'int');
82$search_ref =
GETPOST(
'search_ref',
'alpha') !=
'' ?
GETPOST(
'search_ref',
'alpha') :
GETPOST(
'sref',
'alpha');
83$search_ref_customer =
GETPOST(
'search_ref_customer',
'alpha');
84$search_company =
GETPOST(
'search_company',
'alpha');
85$search_company_alias =
GETPOST(
'search_company_alias',
'alpha');
86$search_parent_name = trim(
GETPOST(
'search_parent_name',
'alphanohtml'));
87$search_town =
GETPOST(
'search_town',
'alpha');
88$search_zip =
GETPOST(
'search_zip',
'alpha');
89$search_state =
GETPOST(
'search_state',
'alpha');
90$search_country =
GETPOST(
'search_country',
'int');
91$search_type_thirdparty =
GETPOST(
'search_type_thirdparty',
'int');
92$search_user =
GETPOST(
'search_user',
'int');
93$search_sale =
GETPOST(
'search_sale',
'int');
94$search_total_ht =
GETPOST(
'search_total_ht',
'alpha');
95$search_total_vat =
GETPOST(
'search_total_vat',
'alpha');
96$search_total_ttc =
GETPOST(
'search_total_ttc',
'alpha');
97$search_warehouse =
GETPOST(
'search_warehouse',
'int');
99$search_multicurrency_code =
GETPOST(
'search_multicurrency_code',
'alpha');
100$search_multicurrency_tx =
GETPOST(
'search_multicurrency_tx',
'alpha');
101$search_multicurrency_montant_ht =
GETPOST(
'search_multicurrency_montant_ht',
'alpha');
102$search_multicurrency_montant_vat =
GETPOST(
'search_multicurrency_montant_vat',
'alpha');
103$search_multicurrency_montant_ttc =
GETPOST(
'search_multicurrency_montant_ttc',
'alpha');
105$search_login =
GETPOST(
'search_login',
'alpha');
106$search_categ_cus =
GETPOST(
"search_categ_cus",
'int');
107$optioncss =
GETPOST(
'optioncss',
'alpha');
108$search_billed =
GETPOST(
'search_billed',
'int');
109$search_status =
GETPOST(
'search_status',
'int');
110$search_project_ref =
GETPOST(
'search_project_ref',
'alpha');
111$search_project =
GETPOST(
'search_project',
'alpha');
112$search_shippable =
GETPOST(
'search_shippable',
'aZ09');
114$search_fk_cond_reglement =
GETPOST(
'search_fk_cond_reglement',
'int');
115$search_fk_shipping_method =
GETPOST(
'search_fk_shipping_method',
'int');
116$search_fk_mode_reglement =
GETPOST(
'search_fk_mode_reglement',
'int');
117$search_fk_input_reason =
GETPOST(
'search_fk_input_reason',
'int');
119$diroutputmassaction = $conf->commande->multidir_output[$conf->entity].
'/temp/massgeneration/'.$user->id;
122$limit =
GETPOST(
'limit',
'int') ?
GETPOST(
'limit',
'int') : $conf->liste_limit;
123$sortfield =
GETPOST(
'sortfield',
'aZ09comma');
124$sortorder =
GETPOST(
'sortorder',
'aZ09comma');
125$page = GETPOSTISSET(
'pageplusone') ? (
GETPOST(
'pageplusone') - 1) :
GETPOST(
"page",
'int');
126if (empty($page) || $page < 0 ||
GETPOST(
'button_search',
'alpha') ||
GETPOST(
'button_removefilter',
'alpha')) {
130$offset = $limit * $page;
131$pageprev = $page - 1;
132$pagenext = $page + 1;
134 $sortfield =
'c.ref';
140$show_shippable_command =
GETPOST(
'show_shippable_command',
'aZ09');
144$hookmanager->initHooks(array(
'orderlist'));
148$extrafields->fetch_name_optionals_label($object->table_element);
149$search_array_options = $extrafields->getOptionalsFromPost($object->table_element,
'',
'search_');
152$fieldstosearchall = array(
154 'c.ref_client'=>
'RefCustomerOrder',
155 'pd.description'=>
'Description',
156 's.nom'=>
"ThirdParty",
157 's.name_alias'=>
"AliasNameShort",
160 'c.note_public'=>
'NotePublic',
162if (empty($user->socid)) {
163 $fieldstosearchall[
"c.note_private"] =
"NotePrivate";
166$checkedtypetiers = 0;
168 'c.ref'=>array(
'label'=>
"Ref",
'checked'=>1,
'position'=>5),
169 'c.ref_client'=>array(
'label'=>
"RefCustomerOrder",
'checked'=>-1,
'position'=>10),
170 'p.ref'=>array(
'label'=>
"ProjectRef",
'checked'=>-1,
'enabled'=>(!isModEnabled(
'project') ? 0 : 1),
'position'=>20),
171 'p.title'=>array(
'label'=>
"ProjectLabel",
'checked'=>0,
'enabled'=>(!isModEnabled(
'project') ? 0 : 1),
'position'=>25),
172 's.nom'=>array(
'label'=>
"ThirdParty",
'checked'=>1,
'position'=>30),
173 's.name_alias'=>array(
'label'=>
"AliasNameShort",
'checked'=>-1,
'position'=>31),
174 's2.nom'=>array(
'label'=>
'ParentCompany',
'position'=>32,
'checked'=>0),
175 's.town'=>array(
'label'=>
"Town",
'checked'=>-1,
'position'=>35),
176 's.zip'=>array(
'label'=>
"Zip",
'checked'=>-1,
'position'=>40),
177 'state.nom'=>array(
'label'=>
"StateShort",
'checked'=>0,
'position'=>45),
178 'country.code_iso'=>array(
'label'=>
"Country",
'checked'=>0,
'position'=>50),
179 'typent.code'=>array(
'label'=>
"ThirdPartyType",
'checked'=>$checkedtypetiers,
'position'=>55),
180 'c.date_commande'=>array(
'label'=>
"OrderDateShort",
'checked'=>1,
'position'=>60,
'csslist'=>
'nowraponall'),
181 'c.date_delivery'=>array(
'label'=>
"DateDeliveryPlanned",
'checked'=>1,
'enabled'=>!
getDolGlobalString(
'ORDER_DISABLE_DELIVERY_DATE'),
'position'=>65,
'csslist'=>
'nowraponall'),
182 'c.fk_shipping_method'=>array(
'label'=>
"SendingMethod",
'checked'=>-1,
'position'=>66 ,
'enabled'=>isModEnabled(
"expedition")),
183 'c.fk_cond_reglement'=>array(
'label'=>
"PaymentConditionsShort",
'checked'=>-1,
'position'=>67),
184 'c.fk_mode_reglement'=>array(
'label'=>
"PaymentMode",
'checked'=>-1,
'position'=>68),
185 'c.fk_input_reason'=>array(
'label'=>
"Origin",
'checked'=>-1,
'position'=>69),
186 'c.total_ht'=>array(
'label'=>
"AmountHT",
'checked'=>1,
'position'=>75),
187 'c.total_vat'=>array(
'label'=>
"AmountVAT",
'checked'=>0,
'position'=>80),
188 'c.total_ttc'=>array(
'label'=>
"AmountTTC",
'checked'=>0,
'position'=>85),
189 'c.multicurrency_code'=>array(
'label'=>
'Currency',
'checked'=>0,
'enabled'=>(!isModEnabled(
"multicurrency") ? 0 : 1),
'position'=>90),
190 'c.multicurrency_tx'=>array(
'label'=>
'CurrencyRate',
'checked'=>0,
'enabled'=>(!isModEnabled(
"multicurrency") ? 0 : 1),
'position'=>95),
191 'c.multicurrency_total_ht'=>array(
'label'=>
'MulticurrencyAmountHT',
'checked'=>0,
'enabled'=>(!isModEnabled(
"multicurrency") ? 0 : 1),
'position'=>100),
192 'c.multicurrency_total_vat'=>array(
'label'=>
'MulticurrencyAmountVAT',
'checked'=>0,
'enabled'=>(!isModEnabled(
"multicurrency") ? 0 : 1),
'position'=>105),
193 'c.multicurrency_total_ttc'=>array(
'label'=>
'MulticurrencyAmountTTC',
'checked'=>0,
'enabled'=>(!isModEnabled(
"multicurrency") ? 0 : 1),
'position'=>110),
194 'u.login'=>array(
'label'=>
"Author",
'checked'=>1,
'position'=>115),
195 'sale_representative'=>array(
'label'=>
"SaleRepresentativesOfThirdParty",
'checked'=>0,
'position'=>116),
196 'total_pa' => array(
'label' => (
getDolGlobalString(
'MARGIN_TYPE') ==
'1' ?
'BuyingPrice' :
'CostPrice'),
'checked' => 0,
'position' => 300,
'enabled' => (!isModEnabled(
'margin') || !$user->hasRight(
"margins",
"liretous") ? 0 : 1)),
197 'total_margin' => array(
'label' =>
'Margin',
'checked' => 0,
'position' => 301,
'enabled' => (!isModEnabled(
'margin') || !$user->hasRight(
"margins",
"liretous") ? 0 : 1)),
198 'total_margin_rate' => array(
'label' =>
'MarginRate',
'checked' => 0,
'position' => 302,
'enabled' => (!isModEnabled(
'margin') || !$user->hasRight(
"margins",
"liretous") || !
getDolGlobalString(
'DISPLAY_MARGIN_RATES') ? 0 : 1)),
199 'total_mark_rate' => array(
'label' =>
'MarkRate',
'checked' => 0,
'position' => 303,
'enabled' => (!isModEnabled(
'margin') || !$user->hasRight(
"margins",
"liretous") || !
getDolGlobalString(
'DISPLAY_MARK_RATES') ? 0 : 1)),
200 'c.datec'=>array(
'label'=>
"DateCreation",
'checked'=>0,
'position'=>120),
201 'c.tms'=>array(
'label'=>
"DateModificationShort",
'checked'=>0,
'position'=>125),
202 'c.date_cloture'=>array(
'label'=>
"DateClosing",
'checked'=>0,
'position'=>130),
203 'c.note_public'=>array(
'label'=>
'NotePublic',
'checked'=>0,
'enabled'=>(!
getDolGlobalInt(
'MAIN_LIST_HIDE_PUBLIC_NOTES')),
'position'=>135),
204 'c.note_private'=>array(
'label'=>
'NotePrivate',
'checked'=>0,
'enabled'=>(!
getDolGlobalInt(
'MAIN_LIST_HIDE_PRIVATE_NOTES')),
'position'=>140),
205 'shippable'=>array(
'label'=>
"Shippable",
'checked'=>1,
'enabled'=>(isModEnabled(
"expedition")),
'position'=>990),
206 'c.facture'=>array(
'label'=>
"Billed",
'checked'=>1,
'enabled'=>(!
getDolGlobalString(
'WORKFLOW_BILL_ON_SHIPMENT')),
'position'=>995),
207 'c.import_key' =>array(
'type'=>
'varchar(14)',
'label'=>
'ImportId',
'enabled'=>1,
'visible'=>-2,
'position'=>999),
208 'c.fk_statut'=>array(
'label'=>
"Status",
'checked'=>1,
'position'=>1000)
212include DOL_DOCUMENT_ROOT.
'/core/tpl/extrafields_list_array_fields.tpl.php';
218if (!$user->hasRight(
'societe',
'client',
'voir')) {
219 $search_sale = $user->id;
225 $socid = $user->socid;
236if (
GETPOST(
'cancel',
'alpha')) {
240if (!
GETPOST(
'confirmmassaction',
'alpha') && $massaction !=
'presend' && $massaction !=
'confirm_presend' && $massaction !=
'confirm_createbills') {
244$parameters = array(
'socid'=>$socid,
'arrayfields'=>&$arrayfields);
245$reshook = $hookmanager->executeHooks(
'doActions', $parameters, $object, $action);
250if (empty($reshook)) {
252 include DOL_DOCUMENT_ROOT.
'/core/actions_changeselectedfields.inc.php';
255 if (
GETPOST(
'button_removefilter_x',
'alpha') ||
GETPOST(
'button_removefilter.x',
'alpha') ||
GETPOST(
'button_removefilter',
'alpha')) {
258 $search_product_category =
'';
260 $search_ref_customer =
'';
261 $search_company =
'';
262 $search_company_alias =
'';
263 $search_parent_name =
'';
268 $search_country =
'';
269 $search_type_thirdparty =
'';
270 $search_total_ht =
'';
271 $search_total_vat =
'';
272 $search_total_ttc =
'';
273 $search_warehouse =
'';
274 $search_multicurrency_code =
'';
275 $search_multicurrency_tx =
'';
276 $search_multicurrency_montant_ht =
'';
277 $search_multicurrency_montant_vat =
'';
278 $search_multicurrency_montant_ttc =
'';
280 $search_dateorder_start =
'';
281 $search_dateorder_end =
'';
282 $search_datedelivery_start =
'';
283 $search_datedelivery_end =
'';
284 $search_project_ref =
'';
285 $search_project =
'';
289 $search_array_options = array();
290 $search_categ_cus = 0;
291 $search_datecloture_start =
'';
292 $search_datecloture_end =
'';
293 $search_fk_cond_reglement =
'';
294 $search_fk_shipping_method =
'';
295 $search_fk_mode_reglement =
'';
296 $search_fk_input_reason =
'';
298 if (
GETPOST(
'button_removefilter_x',
'alpha') ||
GETPOST(
'button_removefilter.x',
'alpha') ||
GETPOST(
'button_removefilter',
'alpha')
299 ||
GETPOST(
'button_search_x',
'alpha') ||
GETPOST(
'button_search.x',
'alpha') ||
GETPOST(
'button_search',
'alpha')) {
304 $objectclass =
'Commande';
305 $objectlabel =
'Orders';
306 $permissiontoread = $user->hasRight(
"commande",
"lire");
307 $permissiontoadd = $user->hasRight(
"commande",
"creer");
308 $permissiontodelete = $user->hasRight(
"commande",
"supprimer");
310 $permissiontovalidate = $user->hasRight(
"commande",
"order_advance",
"validate");
311 $permissiontoclose = $user->hasRight(
"commande",
"order_advance",
"close");
312 $permissiontocancel = $user->hasRight(
"commande",
"order_advance",
"annuler");
313 $permissiontosendbymail = $user->hasRight(
"commande",
"order_advance",
"send");
315 $permissiontovalidate = $user->hasRight(
"commande",
"creer");
316 $permissiontoclose = $user->hasRight(
"commande",
"creer");
317 $permissiontocancel = $user->hasRight(
"commande",
"creer");
318 $permissiontosendbymail = $user->hasRight(
"commande",
"creer");
320 $uploaddir = $conf->commande->multidir_output[$conf->entity];
321 $triggersendname =
'ORDER_SENTBYMAIL';
324 include DOL_DOCUMENT_ROOT.
'/core/actions_massactions.inc.php';
326 if ($massaction ==
'confirm_createbills') {
327 $orders =
GETPOST(
'toselect',
'array');
328 $createbills_onebythird =
GETPOST(
'createbills_onebythird',
'int');
329 $validate_invoices =
GETPOST(
'validate_invoices',
'int');
334 $TFactThird = array();
335 $TFactThirdNbLines = array();
337 $nb_bills_created = 0;
343 $nbOrders = is_array($orders) ? count($orders) : 1;
345 foreach ($orders as $id_order) {
347 if ($cmd->fetch($id_order) <= 0) {
350 $cmd->fetch_thirdparty();
353 if (!empty($createbills_onebythird) && !empty($TFactThird[$cmd->socid])) {
355 $objecttmp = $TFactThird[$cmd->socid];
358 $objecttmp->socid = $cmd->socid;
359 $objecttmp->thirdparty = $cmd->thirdparty;
361 $objecttmp->type = $objecttmp::TYPE_STANDARD;
362 $objecttmp->cond_reglement_id = !empty($cmd->cond_reglement_id) ? $cmd->cond_reglement_id : $cmd->thirdparty->cond_reglement_id;
363 $objecttmp->mode_reglement_id = !empty($cmd->mode_reglement_id) ? $cmd->mode_reglement_id : $cmd->thirdparty->mode_reglement_id;
365 $objecttmp->fk_project = $cmd->fk_project;
366 $objecttmp->multicurrency_code = $cmd->multicurrency_code;
367 if (empty($createbills_onebythird)) {
368 $objecttmp->ref_client = $cmd->ref_client;
372 if (empty($datefacture)) {
376 $objecttmp->date = $datefacture;
377 $objecttmp->origin =
'commande';
378 $objecttmp->origin_id = $id_order;
380 $objecttmp->array_options = $cmd->array_options;
382 $res = $objecttmp->create($user);
386 $lastref = $objecttmp->ref;
387 $lastid = $objecttmp->id;
389 $TFactThird[$cmd->socid] = $objecttmp;
390 $TFactThirdNbLines[$cmd->socid] = 0;
392 $langs->load(
"errors");
393 $errors[] = $cmd->ref.
' : '.$langs->trans($objecttmp->errors[0]);
398 if ($objecttmp->id > 0) {
399 $res = $objecttmp->add_object_linked($objecttmp->origin, $id_order);
402 $errors[] = $cmd->ref.
' : '.$langs->trans($objecttmp->errors[0]);
407 $lines = $cmd->lines;
408 if (empty($lines) && method_exists($cmd,
'fetch_lines')) {
410 $lines = $cmd->lines;
414 $num = count($lines);
416 for ($i = 0; $i < $num; $i++) {
417 $desc = ($lines[$i]->desc ? $lines[$i]->desc :
'');
419 if (!empty($createbills_onebythird)) {
423 if ($lines[$i]->subprice < 0 && !
getDolGlobalString(
'INVOICE_KEEP_DISCOUNT_LINES_AS_IN_ORIGIN')) {
426 $discount->fk_soc = $objecttmp->socid;
427 $discount->amount_ht = abs($lines[$i]->total_ht);
428 $discount->amount_tva = abs($lines[$i]->total_tva);
429 $discount->amount_ttc = abs($lines[$i]->total_ttc);
430 $discount->tva_tx = $lines[$i]->tva_tx;
431 $discount->fk_user = $user->id;
432 $discount->description = $desc;
433 $discountid = $discount->create($user);
434 if ($discountid > 0) {
435 $result = $objecttmp->insert_discount($discountid);
444 $product_type = ($lines[$i]->product_type ? $lines[$i]->product_type : 0);
447 if ($lines[$i]->date_debut_prevue) {
448 $date_start = $lines[$i]->date_debut_prevue;
450 if ($lines[$i]->date_debut_reel) {
451 $date_start = $lines[$i]->date_debut_reel;
453 if ($lines[$i]->date_start) {
454 $date_start = $lines[$i]->date_start;
458 if ($lines[$i]->date_fin_prevue) {
459 $date_end = $lines[$i]->date_fin_prevue;
461 if ($lines[$i]->date_fin_reel) {
462 $date_end = $lines[$i]->date_fin_reel;
464 if ($lines[$i]->date_end) {
465 $date_end = $lines[$i]->date_end;
468 if (($lines[$i]->product_type != 9 && empty($lines[$i]->fk_parent_line)) || $lines[$i]->product_type == 9) {
473 if (method_exists($lines[$i],
'fetch_optionals')) {
474 $lines[$i]->fetch_optionals();
475 $array_options = $lines[$i]->array_options;
478 $objecttmp->context[
'createfromclone'] =
'createfromclone';
480 $rang = ($nbOrders > 1) ? -1 : $lines[$i]->rang;
482 if (!empty($createbills_onebythird)) {
483 $TFactThirdNbLines[$cmd->socid]++;
484 $rang = $TFactThirdNbLines[$cmd->socid];
487 $result = $objecttmp->addline(
489 $lines[$i]->subprice,
492 $lines[$i]->localtax1_tx,
493 $lines[$i]->localtax2_tx,
494 $lines[$i]->fk_product,
495 $lines[$i]->remise_percent,
499 $lines[$i]->info_bits,
500 $lines[$i]->fk_remise_except,
505 $lines[$i]->special_code,
509 $lines[$i]->fk_fournprice,
522 $errors[] = $objecttmp->error;
526 if ($result > 0 && $lines[$i]->product_type == 9) {
527 $fk_parent_line = $result;
536 if (!empty($createbills_onebythird) && empty($TFactThird[$cmd->socid])) {
537 $TFactThird[$cmd->socid] = $objecttmp;
539 $TFact[$objecttmp->id] = $objecttmp;
544 $TAllFact = empty($createbills_onebythird) ? $TFact : $TFactThird;
547 if (!$error && $validate_invoices) {
548 $massaction = $action =
'builddoc';
550 foreach ($TAllFact as &$objecttmp) {
551 $result = $objecttmp->validate($user);
558 $id = $objecttmp->id;
562 $upload_dir = $conf->facture->dir_output;
563 $permissiontoadd = $user->hasRight(
'facture',
'creer');
566 $savobject = $object;
567 $object = $objecttmp;
568 include DOL_DOCUMENT_ROOT.
'/core/actions_builddoc.inc.php';
569 $object = $savobject;
572 $massaction = $action =
'confirm_createbills';
578 if ($nb_bills_created == 1) {
579 $texttoshow = $langs->trans(
'BillXCreated',
'{s1}');
580 $texttoshow = str_replace(
'{s1}',
'<a href="'.DOL_URL_ROOT.
'/compta/facture/card.php?id='.urlencode($lastid).
'">'.$lastref.
'</a>', $texttoshow);
583 setEventMessages($langs->trans(
'BillCreated', $nb_bills_created),
null,
'mesgs');
589 $param .=
'&mode='.urlencode($mode);
591 if (!empty($contextpage) && $contextpage != $_SERVER[
"PHP_SELF"]) {
592 $param .=
'&contextpage='.urlencode($contextpage);
594 if ($limit > 0 && $limit != $conf->liste_limit) {
595 $param .=
'&limit='.((int) $limit);
597 if ($optioncss !=
'') {
598 $param .=
'&optioncss='.urlencode($optioncss);
601 $param .=
'&search_all='.urlencode($search_all);
604 $param .=
'&show_files='.urlencode($show_files);
607 $param .=
'&socid='.urlencode($socid);
609 if ($search_status !=
'') {
610 $param .=
'&search_status='.urlencode($search_status);
612 if ($search_orderday) {
613 $param .=
'&search_orderday='.urlencode($search_orderday);
615 if ($search_ordermonth) {
616 $param .=
'&search_ordermonth='.urlencode($search_ordermonth);
618 if ($search_orderyear) {
619 $param .=
'&search_orderyear='.urlencode($search_orderyear);
621 if ($search_deliveryday) {
622 $param .=
'&search_deliveryday='.urlencode($search_deliveryday);
624 if ($search_deliverymonth) {
625 $param .=
'&search_deliverymonth='.urlencode($search_deliverymonth);
627 if ($search_deliveryyear) {
628 $param .=
'&search_deliveryyear='.urlencode($search_deliveryyear);
631 $param .=
'&search_ref='.urlencode($search_ref);
633 if ($search_company) {
634 $param .=
'&search_company='.urlencode($search_company);
636 if ($search_ref_customer) {
637 $param .=
'&search_ref_customer='.urlencode($search_ref_customer);
639 if ($search_user > 0) {
640 $param .=
'&search_user='.urlencode($search_user);
642 if ($search_sale > 0) {
643 $param .=
'&search_sale='.urlencode($search_sale);
645 if ($search_total_ht !=
'') {
646 $param .=
'&search_total_ht='.urlencode($search_total_ht);
648 if ($search_total_vat !=
'') {
649 $param .=
'&search_total_vat='.urlencode($search_total_vat);
651 if ($search_total_ttc !=
'') {
652 $param .=
'&search_total_ttc='.urlencode($search_total_ttc);
654 if ($search_project_ref >= 0) {
655 $param .=
"&search_project_ref=".urlencode($search_project_ref);
657 if ($search_billed !=
'') {
658 $param .=
'&search_billed='.urlencode($search_billed);
661 header(
"Location: ".$_SERVER[
'PHP_SELF'].
'?'.$param);
667 $_GET[
"origin"] = $_POST[
"origin"];
668 $_GET[
"originid"] = $_POST[
"originid"];
669 if (!empty($errors)) {
678if ($action ==
'validate' && $permissiontoadd) {
679 if (
GETPOST(
'confirm') ==
'yes') {
680 $objecttmp =
new $objectclass($db);
683 foreach ($toselect as $checked) {
684 if ($objecttmp->fetch($checked)) {
685 if ($objecttmp->statut == 0) {
686 if (!empty($objecttmp->fk_warehouse)) {
687 $idwarehouse = $objecttmp->fk_warehouse;
691 if ($objecttmp->valid($user, $idwarehouse)) {
692 setEventMessages($langs->trans(
'hasBeenValidated', $objecttmp->ref),
null,
'mesgs');
698 $langs->load(
"errors");
699 setEventMessages($langs->trans(
'ErrorIsNotADraft', $objecttmp->ref),
null,
'errors');
714if ($action ==
'shipped' && $permissiontoadd) {
715 if (
GETPOST(
'confirm') ==
'yes') {
716 $objecttmp =
new $objectclass($db);
719 foreach ($toselect as $checked) {
720 if ($objecttmp->fetch($checked)) {
721 if ($objecttmp->statut == 1 || $objecttmp->statut == 2) {
722 if ($objecttmp->cloture($user)) {
723 setEventMessages($langs->trans(
'StatusOrderDelivered', $objecttmp->ref),
null,
'mesgs');
725 setEventMessages($langs->trans(
'ErrorOrderStatusCantBeSetToDelivered'),
null,
'errors');
729 $langs->load(
"errors");
730 setEventMessages($langs->trans(
'ErrorIsNotADraft', $objecttmp->ref),
null,
'errors');
747if (!$error && $massaction ===
'setbilled' && $permissiontoclose) {
750 $objecttmp =
new $objectclass($db);
752 foreach ($toselect as $toselectid) {
753 $result = $objecttmp->fetch($toselectid);
755 $result = $objecttmp->classifyBilled($user, 0);
787$form =
new Form($db);
791if (isModEnabled(
'margin')) {
794$companystatic =
new Societe($db);
795$company_url_list = array();
797$projectstatic =
new Project($db);
801$varpage = empty($contextpage) ? $_SERVER[
"PHP_SELF"] : $contextpage;
802$selectedfields = $form->multiSelectArrayWithCheckbox(
'selectedfields', $arrayfields, $varpage);
804$title = $langs->trans(
"Orders");
805$help_url =
"EN:Module_Customers_Orders|FR:Module_Commandes_Clients|ES:Módulo_Pedidos_de_clientes";
810if ($search_all || $search_user > 0) {
811 $sql =
'SELECT DISTINCT';
813$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,';
814$sql .=
" s.parent as fk_parent,";
815$sql .=
" s2.nom as name2,";
816$sql .=
" typent.code as typent_code,";
817$sql .=
" state.code_departement as state_code, state.nom as state_name,";
818$sql .=
" country.code as country_code,";
819$sql .=
' c.rowid, c.ref, c.total_ht, c.total_tva, c.total_ttc, c.ref_client, c.fk_user_author,';
820$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,';
821$sql .=
' c.date_valid, c.date_commande, c.note_public, c.note_private, c.date_livraison as date_delivery, c.fk_statut, c.facture as billed,';
822$sql .=
' c.date_creation as date_creation, c.tms as date_update, c.date_cloture as date_cloture,';
823$sql .=
' p.rowid as project_id, p.ref as project_ref, p.title as project_label,';
824$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,';
825$sql .=
' c.fk_cond_reglement,c.deposit_percent,c.fk_mode_reglement,c.fk_shipping_method,';
826$sql .=
' c.fk_input_reason, c.import_key';
829if (!empty($extrafields->attributes[$object->table_element][
'label'])) {
830 foreach ($extrafields->attributes[$object->table_element][
'label'] as $key => $val) {
831 $sql .= ($extrafields->attributes[$object->table_element][
'type'][$key] !=
'separate' ?
", ef.".$key.
" as options_".$key :
'');
836$parameters = array();
837$reshook = $hookmanager->executeHooks(
'printFieldListSelect', $parameters, $object, $action);
838$sql .= $hookmanager->resPrint;
839$sql = preg_replace(
'/,\s*$/',
'', $sql);
843$sql .=
' FROM '.MAIN_DB_PREFIX.
'societe as s';
844$sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"societe as s2 ON s2.rowid = s.parent";
845$sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"c_country as country on (country.rowid = s.fk_pays)";
846$sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"c_typent as typent on (typent.id = s.fk_typent)";
847$sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"c_departements as state on (state.rowid = s.fk_departement)";
848$sql .=
', '.MAIN_DB_PREFIX.
'commande as c';
849if (!empty($extrafields->attributes[$object->table_element][
'label']) && is_array($extrafields->attributes[$object->table_element][
'label']) && count($extrafields->attributes[$object->table_element][
'label'])) {
850 $sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"commande_extrafields as ef on (c.rowid = ef.fk_object)";
853 $sql .=
' LEFT JOIN '.MAIN_DB_PREFIX.
'commandedet as pd ON c.rowid=pd.fk_commande';
855$sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"projet as p ON p.rowid = c.fk_projet";
856$sql .=
' LEFT JOIN '.MAIN_DB_PREFIX.
'user as u ON c.fk_user_author = u.rowid';
857if ($search_user > 0) {
858 $sql .=
", ".MAIN_DB_PREFIX.
"element_contact as ec";
859 $sql .=
", ".MAIN_DB_PREFIX.
"c_type_contact as tc";
863$parameters = array();
864$reshook = $hookmanager->executeHooks(
'printFieldListFrom', $parameters, $object, $action);
865$sql .= $hookmanager->resPrint;
867$sql .=
' WHERE c.fk_soc = s.rowid';
868$sql .=
' AND c.entity IN ('.getEntity(
'commande').
')';
870 $sql .=
' AND s.rowid = '.((int) $socid);
875if ($search_ref_customer) {
879 $sql .=
natural_search(array_keys($fieldstosearchall), $search_all);
881if ($search_billed !=
'' && $search_billed >= 0) {
882 $sql .=
' AND c.facture = '.((int) $search_billed);
884if ($search_status !=
'') {
885 if ($search_status <= 3 && $search_status >= -1) {
886 if ($search_status == 1 && !isModEnabled(
'expedition')) {
887 $sql .=
' AND c.fk_statut IN (1,2)';
889 $sql .=
' AND c.fk_statut = '.((int) $search_status);
892 if ($search_status == -2) {
894 $sql .=
" AND (c.fk_statut IN (1,2))";
896 if ($search_status == -3) {
899 $sql .=
' AND (c.fk_statut IN (1,2,3))';
903if ($search_datecloture_start) {
904 $sql .=
" AND c.date_cloture >= '".$db->idate($search_datecloture_start).
"'";
906if ($search_datecloture_end) {
907 $sql .=
" AND c.date_cloture <= '".$db->idate($search_datecloture_end).
"'";
909if ($search_dateorder_start) {
910 $sql .=
" AND c.date_commande >= '".$db->idate($search_dateorder_start).
"'";
912if ($search_dateorder_end) {
913 $sql .=
" AND c.date_commande <= '".$db->idate($search_dateorder_end).
"'";
915if ($search_datedelivery_start) {
916 $sql .=
" AND c.date_livraison >= '".$db->idate($search_datedelivery_start).
"'";
918if ($search_datedelivery_end) {
919 $sql .=
" AND c.date_livraison <= '".$db->idate($search_datedelivery_end).
"'";
930if ($search_country) {
931 $sql .=
" AND s.fk_pays IN (".$db->sanitize($search_country).
')';
933if ($search_type_thirdparty && $search_type_thirdparty !=
'-1') {
934 $sql .=
" AND s.fk_typent IN (".$db->sanitize($search_type_thirdparty).
')';
936if (empty($arrayfields[
's.name_alias'][
'checked']) && $search_company) {
937 $sql .=
natural_search(array(
"s.nom",
"s.name_alias"), $search_company);
939 if ($search_company) {
942 if ($search_company_alias) {
946if ($search_parent_name) {
949if ($search_user > 0) {
950 $sql .=
" AND ec.fk_c_type_contact = tc.rowid AND tc.element='commande' AND tc.source='internal' AND ec.element_id = c.rowid AND ec.fk_socpeople = ".((int) $search_user);
952if ($search_total_ht !=
'') {
955if ($search_total_vat !=
'') {
958if ($search_total_ttc !=
'') {
961if ($search_warehouse !=
'' && $search_warehouse > 0) {
964if ($search_multicurrency_code !=
'') {
965 $sql .=
" AND c.multicurrency_code = '".$db->escape($search_multicurrency_code).
"'";
967if ($search_multicurrency_tx !=
'') {
968 $sql .=
natural_search(
'c.multicurrency_tx', $search_multicurrency_tx, 1);
970if ($search_multicurrency_montant_ht !=
'') {
971 $sql .=
natural_search(
'c.multicurrency_total_ht', $search_multicurrency_montant_ht, 1);
973if ($search_multicurrency_montant_vat !=
'') {
974 $sql .=
natural_search(
'c.multicurrency_total_tva', $search_multicurrency_montant_vat, 1);
976if ($search_multicurrency_montant_ttc !=
'') {
977 $sql .=
natural_search(
'c.multicurrency_total_ttc', $search_multicurrency_montant_ttc, 1);
980 $sql .=
natural_search(array(
"u.login",
"u.firstname",
"u.lastname"), $search_login);
982if ($search_project_ref !=
'') {
985if ($search_project !=
'') {
988if ($search_fk_cond_reglement > 0) {
989 $sql .=
" AND c.fk_cond_reglement = ".((int) $search_fk_cond_reglement);
991if ($search_fk_shipping_method > 0) {
992 $sql .=
" AND c.fk_shipping_method = ".((int) $search_fk_shipping_method);
994if ($search_fk_mode_reglement > 0) {
995 $sql .=
" AND c.fk_mode_reglement = ".((int) $search_fk_mode_reglement);
997if ($search_fk_input_reason > 0) {
998 $sql .=
" AND c.fk_input_reason = ".((int) $search_fk_input_reason);
1001if ($search_sale && $search_sale !=
'-1') {
1002 if ($search_sale == -2) {
1003 $sql .=
" AND NOT EXISTS (SELECT sc.fk_soc FROM ".MAIN_DB_PREFIX.
"societe_commerciaux as sc WHERE sc.fk_soc = c.fk_soc)";
1004 } elseif ($search_sale > 0) {
1005 $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).
")";
1009$searchCategoryCustomerOperator = -1;
1010$searchCategoryCustomerList = array($search_categ_cus);
1011if (!empty($searchCategoryCustomerList)) {
1012 $searchCategoryCustomerSqlList = array();
1013 $listofcategoryid =
'';
1014 foreach ($searchCategoryCustomerList as $searchCategoryCustomer) {
1015 if (intval($searchCategoryCustomer) == -2) {
1016 $searchCategoryCustomerSqlList[] =
"NOT EXISTS (SELECT cs.fk_soc FROM ".MAIN_DB_PREFIX.
"categorie_societe as cs WHERE s.rowid = cs.fk_soc)";
1017 } elseif (intval($searchCategoryCustomer) > 0) {
1018 if ($searchCategoryCustomerOperator == 0) {
1019 $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).
")";
1021 $listofcategoryid .= ($listofcategoryid ?
', ' :
'') .((
int) $searchCategoryCustomer);
1025 if ($listofcategoryid) {
1026 $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).
"))";
1028 if ($searchCategoryCustomerOperator == 1) {
1029 if (!empty($searchCategoryCustomerSqlList)) {
1030 $sql .=
" AND (".implode(
' OR ', $searchCategoryCustomerSqlList).
")";
1033 if (!empty($searchCategoryCustomerSqlList)) {
1034 $sql .=
" AND (".implode(
' AND ', $searchCategoryCustomerSqlList).
")";
1039$searchCategoryProductOperator = -1;
1040$searchCategoryProductList = array($search_product_category);
1041if (!empty($searchCategoryProductList)) {
1042 $searchCategoryProductSqlList = array();
1043 $listofcategoryid =
'';
1044 foreach ($searchCategoryProductList as $searchCategoryProduct) {
1045 if (intval($searchCategoryProduct) == -2) {
1046 $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)";
1047 } elseif (intval($searchCategoryProduct) > 0) {
1048 if ($searchCategoryProductOperator == 0) {
1049 $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).
")";
1051 $listofcategoryid .= ($listofcategoryid ?
', ' :
'') .((
int) $searchCategoryProduct);
1055 if ($listofcategoryid) {
1056 $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).
"))";
1058 if ($searchCategoryProductOperator == 1) {
1059 if (!empty($searchCategoryProductSqlList)) {
1060 $sql .=
" AND (".implode(
' OR ', $searchCategoryProductSqlList).
")";
1063 if (!empty($searchCategoryProductSqlList)) {
1064 $sql .=
" AND (".implode(
' AND ', $searchCategoryProductSqlList).
")";
1069include DOL_DOCUMENT_ROOT.
'/core/tpl/extrafields_list_search_sql.tpl.php';
1071$parameters = array();
1072$reshook = $hookmanager->executeHooks(
'printFieldListWhere', $parameters, $object, $action);
1073$sql .= $hookmanager->resPrint;
1076$parameters = array();
1077$reshook = $hookmanager->executeHooks(
'printFieldListHaving', $parameters, $object, $action);
1078$sql .= empty($hookmanager->resPrint) ?
"" :
" HAVING 1=1 ".$hookmanager->resPrint;
1082$nbtotalofrecords =
'';
1085 $sqlforcount = preg_replace(
'/^'.preg_quote($sqlfields,
'/').
'/',
'SELECT COUNT(*) as nbtotalofrecords', $sql);
1086 $sqlforcount = preg_replace(
'/GROUP BY .*$/',
'', $sqlforcount);
1087 $resql = $db->query($sqlforcount);
1089 $objforcount = $db->fetch_object($resql);
1090 $nbtotalofrecords = $objforcount->nbtotalofrecords;
1095 if (($page * $limit) > $nbtotalofrecords) {
1102$sql .= $db->order($sortfield, $sortorder);
1104 $sql .= $db->plimit($limit + 1, $offset);
1108$resql = $db->query($sql);
1116 $soc->fetch($socid);
1117 $title = $langs->trans(
'CustomersOrders').
' - '.$soc->name;
1118 if (empty($search_company)) {
1119 $search_company = $soc->name;
1122 $title = $langs->trans(
'CustomersOrders');
1124if (strval($search_status) ==
'0') {
1125 $title .=
' - '.$langs->trans(
'StatusOrderDraftShort');
1127if ($search_status == 1) {
1128 $title .=
' - '.$langs->trans(
'StatusOrderValidatedShort');
1130if ($search_status == 2) {
1131 $title .=
' - '.$langs->trans(
'StatusOrderSentShort');
1133if ($search_status == 3) {
1134 $title .=
' - '.$langs->trans(
'StatusOrderToBillShort');
1136if ($search_status == -1) {
1137 $title .=
' - '.$langs->trans(
'StatusOrderCanceledShort');
1139if ($search_status == -2) {
1140 $title .=
' - '.$langs->trans(
'StatusOrderToProcessShort');
1142if ($search_status == -3) {
1143 $title .=
' - '.$langs->trans(
'StatusOrderValidated').
', '.(!isModEnabled(
'expedition') ?
'' : $langs->trans(
"StatusOrderSent").
', ').$langs->trans(
'StatusOrderToBill');
1145if ($search_status == -4) {
1146 $title .=
' - '.$langs->trans(
"StatusOrderValidatedShort").
'+'.$langs->trans(
"StatusOrderSentShort");
1149$num = $db->num_rows($resql);
1151$arrayofselected = is_array($toselect) ? $toselect : array();
1153if ($num == 1 &&
getDolGlobalString(
'MAIN_SEARCH_DIRECT_OPEN_IF_ONLY_ONE') && $search_all) {
1154 $obj = $db->fetch_object($resql);
1156 header(
"Location: ".DOL_URL_ROOT.
'/commande/card.php?id='.$id);
1165$arrayofselected = is_array($toselect) ? $toselect : array();
1169 $param .=
'&mode='.urlencode($mode);
1171if (!empty($contextpage) && $contextpage != $_SERVER[
"PHP_SELF"]) {
1172 $param .=
'&contextpage='.urlencode($contextpage);
1174if ($limit > 0 && $limit != $conf->liste_limit) {
1175 $param .=
'&limit='.((int) $limit);
1178 $param .=
'&search_all='.urlencode($search_all);
1181 $param .=
'&socid='.((int) $socid);
1183if ($search_status !=
'') {
1184 $param .=
'&search_status='.urlencode($search_status);
1186if ($search_datecloture_start) {
1187 $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');
1189if ($search_datecloture_end) {
1190 $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');
1192if ($search_dateorder_start) {
1193 $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');
1195if ($search_dateorder_end) {
1196 $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');
1198if ($search_datedelivery_start) {
1199 $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');
1201if ($search_datedelivery_end) {
1202 $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');
1205 $param .=
'&search_ref='.urlencode($search_ref);
1207if ($search_company) {
1208 $param .=
'&search_company='.urlencode($search_company);
1210if ($search_company_alias) {
1211 $param .=
'&search_company_alias='.urlencode($search_company_alias);
1213if ($search_parent_name !=
'') {
1214 $param .=
'&search_parent_name='.urlencode($search_parent_name);
1216if ($search_ref_customer) {
1217 $param .=
'&search_ref_customer='.urlencode($search_ref_customer);
1219if ($search_user > 0) {
1220 $param .=
'&search_user='.urlencode($search_user);
1222if ($search_sale > 0) {
1223 $param .=
'&search_sale='.urlencode($search_sale);
1225if ($search_total_ht !=
'') {
1226 $param .=
'&search_total_ht='.urlencode($search_total_ht);
1228if ($search_total_vat !=
'') {
1229 $param .=
'&search_total_vat='.urlencode($search_total_vat);
1231if ($search_total_ttc !=
'') {
1232 $param .=
'&search_total_ttc='.urlencode($search_total_ttc);
1234if ($search_warehouse !=
'') {
1235 $param .=
'&search_warehouse='.urlencode($search_warehouse);
1238 $param .=
'&search_login='.urlencode($search_login);
1240if ($search_multicurrency_code !=
'') {
1241 $param .=
'&search_multicurrency_code='.urlencode($search_multicurrency_code);
1243if ($search_multicurrency_tx !=
'') {
1244 $param .=
'&search_multicurrency_tx='.urlencode($search_multicurrency_tx);
1246if ($search_multicurrency_montant_ht !=
'') {
1247 $param .=
'&search_multicurrency_montant_ht='.urlencode($search_multicurrency_montant_ht);
1249if ($search_multicurrency_montant_vat !=
'') {
1250 $param .=
'&search_multicurrency_montant_vat='.urlencode($search_multicurrency_montant_vat);
1252if ($search_multicurrency_montant_ttc !=
'') {
1253 $param .=
'&search_multicurrency_montant_ttc='.urlencode($search_multicurrency_montant_ttc);
1255if ($search_project_ref >= 0) {
1256 $param .=
"&search_project_ref=".urlencode($search_project_ref);
1258if ($search_town !=
'') {
1259 $param .=
'&search_town='.urlencode($search_town);
1261if ($search_zip !=
'') {
1262 $param .=
'&search_zip='.urlencode($search_zip);
1264if ($search_state !=
'') {
1265 $param .=
'&search_state='.urlencode($search_state);
1267if ($search_country !=
'') {
1268 $param .=
'&search_country='.urlencode($search_country);
1270if ($search_type_thirdparty && $search_type_thirdparty !=
'-1') {
1271 $param .=
'&search_type_thirdparty='.urlencode($search_type_thirdparty);
1273if ($search_product_category !=
'') {
1274 $param .=
'&search_product_category='.urlencode($search_product_category);
1276if (($search_categ_cus > 0) || ($search_categ_cus == -2)) {
1277 $param .=
'&search_categ_cus='.urlencode($search_categ_cus);
1280 $param .=
'&show_files='.urlencode($show_files);
1282if ($optioncss !=
'') {
1283 $param .=
'&optioncss='.urlencode($optioncss);
1285if ($search_billed !=
'') {
1286 $param .=
'&search_billed='.urlencode($search_billed);
1288if ($search_fk_cond_reglement > 0) {
1289 $param .=
'&search_fk_cond_reglement='.urlencode($search_fk_cond_reglement);
1291if ($search_fk_shipping_method > 0) {
1292 $param .=
'&search_fk_shipping_method='.urlencode($search_fk_shipping_method);
1294if ($search_fk_mode_reglement > 0) {
1295 $param .=
'&search_fk_mode_reglement='.urlencode($search_fk_mode_reglement);
1297if ($search_fk_input_reason > 0) {
1298 $param .=
'&search_fk_input_reason='.urlencode($search_fk_input_reason);
1302include DOL_DOCUMENT_ROOT.
'/core/tpl/extrafields_list_search_param.tpl.php';
1305$parameters = array();
1306$reshook = $hookmanager->executeHooks(
'printFieldListSearchParam', $parameters, $object, $action);
1307$param .= $hookmanager->resPrint;
1310$arrayofmassactions = array(
1311 'generate_doc'=>
img_picto(
'',
'pdf',
'class="pictofixedwidth"').$langs->trans(
"ReGeneratePDF"),
1312 'builddoc'=>
img_picto(
'',
'pdf',
'class="pictofixedwidth"').$langs->trans(
"PDFMerge"),
1314if ($permissiontovalidate) {
1315 $arrayofmassactions[
'prevalidate'] =
img_picto(
'',
'check',
'class="pictofixedwidth"').$langs->trans(
"Validate");
1317if ($permissiontoclose) {
1318 $arrayofmassactions[
'preshipped'] =
img_picto(
'',
'dollyrevert',
'class="pictofixedwidth"').$langs->trans(
"ClassifyShipped");
1320if (isModEnabled(
'facture') && $user->hasRight(
"facture",
"creer")) {
1321 $arrayofmassactions[
'createbills'] =
img_picto(
'',
'bill',
'class="pictofixedwidth"').$langs->trans(
"CreateInvoiceForThisCustomer");
1323if ($permissiontoclose) {
1324 $arrayofmassactions[
'setbilled'] =
img_picto(
'',
'bill',
'class="pictofixedwidth"').$langs->trans(
"ClassifyBilled");
1326if ($permissiontocancel) {
1327 $arrayofmassactions[
'cancelorders'] =
img_picto(
'',
'close_title',
'class="pictofixedwidth"').$langs->trans(
"CancelOrder");
1329if (!empty($permissiontodelete)) {
1330 $arrayofmassactions[
'predelete'] =
img_picto(
'',
'delete',
'class="pictofixedwidth"').$langs->trans(
"Delete");
1332if ($permissiontosendbymail) {
1333 $arrayofmassactions[
'presend'] =
img_picto(
'',
'email',
'class="pictofixedwidth"').$langs->trans(
"SendByMail");
1335if (in_array($massaction, array(
'presend',
'predelete',
'createbills'))) {
1336 $arrayofmassactions = array();
1338$massactionbutton = $form->selectMassAction(
'', $arrayofmassactions);
1340$url = DOL_URL_ROOT.
'/commande/card.php?action=create';
1341if (!empty($socid)) {
1342 $url .=
'&socid='.$socid;
1345$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'));
1346$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'));
1348$newcardbutton .=
dolGetButtonTitle($langs->trans(
'NewOrder'),
'',
'fa fa-plus-circle', $url,
'', ($contextpage ==
'orderlist' || $contextpage ==
'billableorders') && $permissiontoadd);
1351print
'<form method="POST" id="searchFormList" action="'.$_SERVER[
"PHP_SELF"].
'">'.
"\n";
1352if ($optioncss !=
'') {
1353 print
'<input type="hidden" name="optioncss" value="'.$optioncss.
'">';
1355print
'<input type="hidden" name="token" value="'.newToken().
'">';
1356print
'<input type="hidden" name="formfilteraction" id="formfilteraction" value="list">';
1357print
'<input type="hidden" name="action" value="list">';
1358print
'<input type="hidden" name="sortfield" value="'.$sortfield.
'">';
1359print
'<input type="hidden" name="sortorder" value="'.$sortorder.
'">';
1360print
'<input type="hidden" name="contextpage" value="'.$contextpage.
'">';
1361print
'<input type="hidden" name="search_status" value="'.$search_status.
'">';
1362print
'<input type="hidden" name="socid" value="'.$socid.
'">';
1363print
'<input type="hidden" name="page_y" value="">';
1364print
'<input type="hidden" name="mode" value="'.$mode.
'">';
1367print_barre_liste($title, $page, $_SERVER[
"PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords,
'order', 0, $newcardbutton,
'', $limit, 0, 0, 1);
1369$topicmail =
"SendOrderRef";
1370$modelmail =
"order_send";
1372$trackid =
'ord'.$object->id;
1373include DOL_DOCUMENT_ROOT.
'/core/tpl/massactions_pre.tpl.php';
1375if ($massaction ==
'prevalidate') {
1376 print $form->formconfirm($_SERVER[
"PHP_SELF"], $langs->trans(
"ConfirmMassValidation"), $langs->trans(
"ConfirmMassValidationQuestion"),
"validate",
null,
'', 0, 200, 500, 1);
1378if ($massaction ==
'preshipped') {
1379 print $form->formconfirm($_SERVER[
"PHP_SELF"], $langs->trans(
"CloseOrder"), $langs->trans(
"ConfirmCloseOrder"),
"shipped",
null,
'', 0, 200, 500, 1);
1382if ($massaction ==
'createbills') {
1383 print
'<input type="hidden" name="massaction" value="confirm_createbills">';
1385 print
'<table class="noborder centpercent">';
1388 print $langs->trans(
'DateInvoice');
1391 print $form->selectDate(
'',
'',
'',
'',
'',
'', 1, 1);
1396 print $langs->trans(
'CreateOneBillByThird');
1399 print $form->selectyesno(
'createbills_onebythird',
'', 1);
1404 print $langs->trans(
'ValidateInvoices');
1408 print $form->selectyesno(
'validate_invoices', 0, 1, 1);
1409 $langs->load(
"errors");
1410 print
' ('.$langs->trans(
"WarningAutoValNotPossibleWhenStockIsDecreasedOnInvoiceVal").
')';
1412 print $form->selectyesno(
'validate_invoices', 0, 1);
1414 if (!empty($conf->workflow->enabled) &&
getDolGlobalString(
'WORKFLOW_INVOICE_AMOUNT_CLASSIFY_BILLED_ORDER')) {
1415 print
' <span class="opacitymedium">'.$langs->trans(
"IfValidateInvoiceIsNoOrderStayUnbilled").
'</span>';
1417 print
' <span class="opacitymedium">'.$langs->trans(
"OptionToSetOrderBilledNotEnabled").
'</span>';
1423 print
'<div class="center">';
1424 print
'<input type="submit" class="button" id="createbills" name="createbills" value="'.$langs->trans(
'CreateInvoiceForThisCustomer').
'"> ';
1425 print
'<input type="submit" class="button button-cancel" id="cancel" name="cancel" value="'.$langs->trans(
"Cancel").
'">';
1432 foreach ($fieldstosearchall as $key => $val) {
1433 $fieldstosearchall[$key] = $langs->trans($val);
1434 $setupstring .= $key.
"=".$val.
";";
1436 print
'<!-- Search done like if MYOBJECT_QUICKSEARCH_ON_FIELDS = '.$setupstring.
' -->'.
"\n";
1437 print
'<div class="divsearchfieldfilter">'.$langs->trans(
"FilterOnInto", $search_all).join(
', ', $fieldstosearchall).
'</div>';
1443if ($user->hasRight(
"user",
"user",
"lire")) {
1444 $langs->load(
"commercial");
1445 $moreforfilter .=
'<div class="divsearchfield">';
1446 $tmptitle = $langs->trans(
'ThirdPartiesOfSaleRepresentative');
1447 $moreforfilter .=
img_picto($tmptitle,
'user',
'class="pictofixedwidth"').$formother->select_salesrepresentatives($search_sale,
'search_sale', $user, 0, $tmptitle,
'maxwidth250 widthcentpercentminusx');
1448 $moreforfilter .=
'</div>';
1451if ($user->hasRight(
"user",
"user",
"lire")) {
1452 $moreforfilter .=
'<div class="divsearchfield">';
1453 $tmptitle = $langs->trans(
'LinkedToSpecificUsers');
1454 $moreforfilter .=
img_picto($tmptitle,
'user',
'class="pictofixedwidth"').$form->select_dolusers($search_user,
'search_user', $tmptitle,
'', 0,
'',
'', 0, 0, 0,
'', 0,
'',
'maxwidth250 widthcentpercentminusx');
1455 $moreforfilter .=
'</div>';
1459if (isModEnabled(
'categorie') && $user->hasRight(
"categorie",
"lire") && ($user->hasRight(
"produit",
"lire") || $user->hasRight(
"service",
"lire"))) {
1460 include_once DOL_DOCUMENT_ROOT.
'/categories/class/categorie.class.php';
1461 $moreforfilter .=
'<div class="divsearchfield">';
1462 $tmptitle = $langs->trans(
'IncludingProductWithTag');
1463 $cate_arbo = $form->select_all_categories(Categorie::TYPE_PRODUCT,
null,
'parent',
null,
null, 1);
1464 $moreforfilter .=
img_picto($tmptitle,
'category',
'class="pictofixedwidth"').$form->selectarray(
'search_product_category', $cate_arbo, $search_product_category, $tmptitle, 0, 0,
'', 0, 0, 0, 0,
'maxwidth300 widthcentpercentminusx', 1);
1465 $moreforfilter .=
'</div>';
1468if (isModEnabled(
'categorie') && $user->hasRight(
"categorie",
"lire")) {
1469 require_once DOL_DOCUMENT_ROOT.
'/categories/class/categorie.class.php';
1470 $moreforfilter .=
'<div class="divsearchfield">';
1471 $tmptitle = $langs->trans(
'CustomersProspectsCategoriesShort');
1472 $moreforfilter .=
img_picto($tmptitle,
'category',
'class="pictofixedwidth"').$formother->select_categories(
'customer', $search_categ_cus,
'search_categ_cus', 1, $tmptitle,
'maxwidth300 widthcentpercentminusx');
1473 $moreforfilter .=
'</div>';
1476if (isModEnabled(
'stock') &&
getDolGlobalString(
'WAREHOUSE_ASK_WAREHOUSE_DURING_ORDER')) {
1477 require_once DOL_DOCUMENT_ROOT.
'/product/class/html.formproduct.class.php';
1479 $moreforfilter .=
'<div class="divsearchfield">';
1480 $tmptitle = $langs->trans(
'Warehouse');
1481 $moreforfilter .=
img_picto($tmptitle,
'stock',
'class="pictofixedwidth"').$formproduct->selectWarehouses($search_warehouse,
'search_warehouse',
'', 1, 0, 0, $tmptitle, 0, 0, array(),
'maxwidth250 widthcentpercentminusx');
1482 $moreforfilter .=
'</div>';
1484$parameters = array();
1485$reshook = $hookmanager->executeHooks(
'printFieldPreListTitle', $parameters, $object, $action);
1486if (empty($reshook)) {
1487 $moreforfilter .= $hookmanager->resPrint;
1489 $moreforfilter = $hookmanager->resPrint;
1492if (!empty($moreforfilter)) {
1493 print
'<div class="liste_titre liste_titre_bydiv centpercent">';
1494 print $moreforfilter;
1495 $parameters = array();
1496 $reshook = $hookmanager->executeHooks(
'printFieldPreListTitle', $parameters, $object, $action);
1497 print $hookmanager->resPrint;
1501$varpage = empty($contextpage) ? $_SERVER[
"PHP_SELF"] : $contextpage;
1502$selectedfields = ($mode !=
'kanban' ? $form->multiSelectArrayWithCheckbox(
'selectedfields', $arrayfields, $varpage,
getDolGlobalString(
'MAIN_CHECKBOX_LEFT_COLUMN',
'')) :
'');
1503$selectedfields .= (count($arrayofmassactions) ? $form->showCheckAddButtons(
'checkforselect', 1) :
'');
1505if (
GETPOST(
'autoselectall',
'int')) {
1506 $selectedfields .=
'<script>';
1507 $selectedfields .=
' $(document).ready(function() {';
1508 $selectedfields .=
' console.log("Autoclick on checkforselects");';
1509 $selectedfields .=
' $("#checkforselects").click();';
1510 $selectedfields .=
' $("#massaction").val("createbills").change();';
1511 $selectedfields .=
' });';
1512 $selectedfields .=
'</script>';
1515print
'<div class="div-table-responsive">';
1516print
'<table class="tagtable nobottomiftotal liste'.($moreforfilter ?
" listwithfilterbefore" :
"").
'">'.
"\n";
1520print
'<tr class="liste_titre_filter">';
1523 print
'<td class="liste_titre center maxwidthsearch">';
1524 $searchpicto = $form->showFilterButtons(
'left');
1530if (!empty($arrayfields[
'c.ref'][
'checked'])) {
1531 print
'<td class="liste_titre">';
1532 print
'<input class="flat" size="6" type="text" name="search_ref" value="'.dol_escape_htmltag($search_ref).
'">';
1536if (!empty($arrayfields[
'c.ref_client'][
'checked'])) {
1537 print
'<td class="liste_titre" align="left">';
1538 print
'<input class="flat" type="text" size="6" name="search_ref_customer" value="'.dol_escape_htmltag($search_ref_customer).
'">';
1542if (!empty($arrayfields[
'p.ref'][
'checked'])) {
1543 print
'<td class="liste_titre"><input type="text" class="flat" size="6" name="search_project_ref" value="'.dol_escape_htmltag($search_project_ref).
'"></td>';
1546if (!empty($arrayfields[
'p.title'][
'checked'])) {
1547 print
'<td class="liste_titre"><input type="text" class="flat" size="6" name="search_project" value="'.dol_escape_htmltag($search_project).
'"></td>';
1550if (!empty($arrayfields[
's.nom'][
'checked'])) {
1551 print
'<td class="liste_titre" align="left">';
1552 print
'<input class="flat maxwidth100" type="text" name="search_company" value="'.dol_escape_htmltag($search_company).
'">';
1556if (!empty($arrayfields[
's.name_alias'][
'checked'])) {
1557 print
'<td class="liste_titre" align="left">';
1558 print
'<input class="flat maxwidth100" type="text" name="search_company_alias" value="'.dol_escape_htmltag($search_company_alias).
'">';
1562if (!empty($arrayfields[
's2.nom'][
'checked'])) {
1563 print
'<td class="liste_titre">';
1564 print
'<input class="flat maxwidth100" type="text" name="search_parent_name" value="'.dol_escape_htmltag($search_parent_name).
'">';
1568if (!empty($arrayfields[
's.town'][
'checked'])) {
1569 print
'<td class="liste_titre"><input class="flat width50" type="text" name="search_town" value="'.dol_escape_htmltag($search_town).
'"></td>';
1572if (!empty($arrayfields[
's.zip'][
'checked'])) {
1573 print
'<td class="liste_titre"><input class="flat width50" type="text" name="search_zip" value="'.dol_escape_htmltag($search_zip).
'"></td>';
1576if (!empty($arrayfields[
'state.nom'][
'checked'])) {
1577 print
'<td class="liste_titre">';
1578 print
'<input class="flat width50" type="text" name="search_state" value="'.dol_escape_htmltag($search_state).
'">';
1582if (!empty($arrayfields[
'country.code_iso'][
'checked'])) {
1583 print
'<td class="liste_titre" align="center">';
1584 print $form->select_country($search_country,
'search_country',
'', 0,
'minwidth100imp maxwidth100');
1588if (!empty($arrayfields[
'typent.code'][
'checked'])) {
1589 print
'<td class="liste_titre maxwidthonsmartphone" align="center">';
1590 print $form->selectarray(
"search_type_thirdparty", $formcompany->typent_array(0), $search_type_thirdparty, 1, 0, 0,
'', 0, 0, 0, (!
getDolGlobalString(
'SOCIETE_SORT_ON_TYPEENT') ?
'ASC' : $conf->global->SOCIETE_SORT_ON_TYPEENT),
'', 1);
1594if (!empty($arrayfields[
'c.date_commande'][
'checked'])) {
1595 print
'<td class="liste_titre center">';
1596 print
'<div class="nowrapfordate">';
1597 print $form->selectDate($search_dateorder_start ? $search_dateorder_start : -1,
'search_dateorder_start_', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
'From'));
1599 print
'<div class="nowrapfordate">';
1600 print $form->selectDate($search_dateorder_end ? $search_dateorder_end : -1,
'search_dateorder_end_', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
'to'));
1604if (!empty($arrayfields[
'c.date_delivery'][
'checked'])) {
1605 print
'<td class="liste_titre center">';
1606 print
'<div class="nowrapfordate">';
1607 print $form->selectDate($search_datedelivery_start ? $search_datedelivery_start : -1,
'search_datedelivery_start_', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
'From'));
1609 print
'<div class="nowrapfordate">';
1610 print $form->selectDate($search_datedelivery_end ? $search_datedelivery_end : -1,
'search_datedelivery_end_', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
'to'));
1615if (!empty($arrayfields[
'c.fk_shipping_method'][
'checked'])) {
1616 print
'<td class="liste_titre">';
1617 $form->selectShippingMethod($search_fk_shipping_method,
'search_fk_shipping_method',
'', 1,
'', 1);
1621if (!empty($arrayfields[
'c.fk_cond_reglement'][
'checked'])) {
1622 print
'<td class="liste_titre">';
1623 print $form->getSelectConditionsPaiements($search_fk_cond_reglement,
'search_fk_cond_reglement', 1, 1, 1);
1627if (!empty($arrayfields[
'c.fk_mode_reglement'][
'checked'])) {
1628 print
'<td class="liste_titre">';
1629 print $form->select_types_paiements($search_fk_mode_reglement,
'search_fk_mode_reglement',
'', 0, 1, 1, 0, -1,
'', 1);
1633if (!empty($arrayfields[
'c.fk_input_reason'][
'checked'])) {
1634 print
'<td class="liste_titre">';
1635 $form->selectInputReason($search_fk_input_reason,
'search_fk_input_reason',
'', 1,
'', 1);
1639if (!empty($arrayfields[
'c.total_ht'][
'checked'])) {
1640 print
'<td class="liste_titre right">';
1641 print
'<input class="flat" type="text" size="4" name="search_total_ht" value="'.dol_escape_htmltag($search_total_ht).
'">';
1645if (!empty($arrayfields[
'c.total_vat'][
'checked'])) {
1646 print
'<td class="liste_titre right">';
1647 print
'<input class="flat" type="text" size="4" name="search_total_vat" value="'.dol_escape_htmltag($search_total_vat).
'">';
1651if (!empty($arrayfields[
'c.total_ttc'][
'checked'])) {
1652 print
'<td class="liste_titre right">';
1653 print
'<input class="flat" type="text" size="5" name="search_total_ttc" value="'.$search_total_ttc.
'">';
1657if (!empty($arrayfields[
'c.multicurrency_code'][
'checked'])) {
1658 print
'<td class="liste_titre">';
1659 print $form->selectMultiCurrency($search_multicurrency_code,
'search_multicurrency_code', 1);
1663if (!empty($arrayfields[
'c.multicurrency_tx'][
'checked'])) {
1664 print
'<td class="liste_titre">';
1665 print
'<input class="flat" type="text" size="4" name="search_multicurrency_tx" value="'.dol_escape_htmltag($search_multicurrency_tx).
'">';
1669if (!empty($arrayfields[
'c.multicurrency_total_ht'][
'checked'])) {
1670 print
'<td class="liste_titre right">';
1671 print
'<input class="flat" type="text" size="4" name="search_multicurrency_montant_ht" value="'.dol_escape_htmltag($search_multicurrency_montant_ht).
'">';
1675if (!empty($arrayfields[
'c.multicurrency_total_vat'][
'checked'])) {
1676 print
'<td class="liste_titre right">';
1677 print
'<input class="flat" type="text" size="4" name="search_multicurrency_montant_vat" value="'.dol_escape_htmltag($search_multicurrency_montant_vat).
'">';
1681if (!empty($arrayfields[
'c.multicurrency_total_ttc'][
'checked'])) {
1682 print
'<td class="liste_titre right">';
1683 print
'<input class="flat width75" type="text" name="search_multicurrency_montant_ttc" value="'.dol_escape_htmltag($search_multicurrency_montant_ttc).
'">';
1687if (!empty($arrayfields[
'u.login'][
'checked'])) {
1688 print
'<td class="liste_titre">';
1689 print
'<input class="flat width75" type="text" name="search_login" value="'.dol_escape_htmltag($search_login).
'">';
1693if (!empty($arrayfields[
'sale_representative'][
'checked'])) {
1694 print
'<td class="liste_titre"></td>';
1696if (!empty($arrayfields[
'total_pa'][
'checked'])) {
1697 print
'<td class="liste_titre right">';
1700if (!empty($arrayfields[
'total_margin'][
'checked'])) {
1701 print
'<td class="liste_titre right">';
1704if (!empty($arrayfields[
'total_margin_rate'][
'checked'])) {
1705 print
'<td class="liste_titre right">';
1708if (!empty($arrayfields[
'total_mark_rate'][
'checked'])) {
1709 print
'<td class="liste_titre right">';
1714include DOL_DOCUMENT_ROOT.
'/core/tpl/extrafields_list_search_input.tpl.php';
1717$parameters = array(
'arrayfields'=>$arrayfields);
1718$reshook = $hookmanager->executeHooks(
'printFieldListOption', $parameters, $object, $action);
1719print $hookmanager->resPrint;
1722if (!empty($arrayfields[
'c.datec'][
'checked'])) {
1723 print
'<td class="liste_titre">';
1727if (!empty($arrayfields[
'c.tms'][
'checked'])) {
1728 print
'<td class="liste_titre">';
1732if (!empty($arrayfields[
'c.date_cloture'][
'checked'])) {
1733 print
'<td class="liste_titre center">';
1734 print
'<div class="nowrapfordate">';
1735 print $form->selectDate($search_datecloture_start ? $search_datecloture_start : -1,
'search_datecloture_start', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
'From'));
1737 print
'<div class="nowrapfordate">';
1738 print $form->selectDate($search_datecloture_end ? $search_datecloture_end : -1,
'search_datecloture_end', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
'to'));
1743if (!empty($arrayfields[
'c.note_public'][
'checked'])) {
1744 print
'<td class="liste_titre">';
1748if (!empty($arrayfields[
'c.note_private'][
'checked'])) {
1749 print
'<td class="liste_titre">';
1753if (!empty($arrayfields[
'shippable'][
'checked'])) {
1754 print
'<td class="liste_titre maxwidthonsmartphone" align="center">';
1757 print
'<input type="checkbox" name="show_shippable_command" value="1"'.($show_shippable_command ?
' checked' :
'').
'>';
1758 print $langs->trans(
'ShowShippableStatus');
1760 $show_shippable_command = 1;
1765if (!empty($arrayfields[
'c.facture'][
'checked'])) {
1766 print
'<td class="liste_titre maxwidthonsmartphone center">';
1767 print $form->selectyesno(
'search_billed', $search_billed, 1, 0, 1, 1);
1771if (!empty($arrayfields[
'c.import_key'][
'checked'])) {
1772 print
'<td class="liste_titre maxwidthonsmartphone center">';
1776if (!empty($arrayfields[
'c.fk_statut'][
'checked'])) {
1777 print
'<td class="liste_titre center parentonrightofpage">';
1778 $liststatus = array(
1782 -2 => $langs->trans(
"StatusOrderValidatedShort").
'+'.$langs->trans(
"StatusOrderSentShort"),
1783 -3 => $langs->trans(
"StatusOrderValidatedShort").
'+'.$langs->trans(
"StatusOrderSentShort").
'+'.$langs->trans(
"StatusOrderDelivered"),
1787 print $form->selectarray(
'search_status', $liststatus, $search_status, -5, 0, 0,
'', 0, 0, 0,
'',
'search_status width100 onrightofpage', 1);
1792 print
'<td class="liste_titre center maxwidthsearch">';
1793 $searchpicto = $form->showFilterButtons();
1812print
'<tr class="liste_titre">';
1816 print_liste_field_titre($selectedfields, $_SERVER[
"PHP_SELF"],
"",
'', $param,
'', $sortfield, $sortorder,
'maxwidthsearch center ');
1817 $totalarray[
'nbfield']++;
1819if (!empty($arrayfields[
'c.ref'][
'checked'])) {
1820 print_liste_field_titre($arrayfields[
'c.ref'][
'label'], $_SERVER[
"PHP_SELF"],
'c.ref',
'', $param,
'', $sortfield, $sortorder);
1821 $totalarray[
'nbfield']++;
1823if (!empty($arrayfields[
'c.ref_client'][
'checked'])) {
1824 print_liste_field_titre($arrayfields[
'c.ref_client'][
'label'], $_SERVER[
"PHP_SELF"],
'c.ref_client',
'', $param,
'', $sortfield, $sortorder);
1825 $totalarray[
'nbfield']++;
1827if (!empty($arrayfields[
'p.ref'][
'checked'])) {
1828 print_liste_field_titre($arrayfields[
'p.ref'][
'label'], $_SERVER[
"PHP_SELF"],
"p.ref",
"", $param,
'', $sortfield, $sortorder);
1829 $totalarray[
'nbfield']++;
1831if (!empty($arrayfields[
'p.title'][
'checked'])) {
1832 print_liste_field_titre($arrayfields[
'p.title'][
'label'], $_SERVER[
"PHP_SELF"],
"p.title",
"", $param,
'', $sortfield, $sortorder);
1833 $totalarray[
'nbfield']++;
1835if (!empty($arrayfields[
's.nom'][
'checked'])) {
1836 print_liste_field_titre($arrayfields[
's.nom'][
'label'], $_SERVER[
"PHP_SELF"],
's.nom',
'', $param,
'', $sortfield, $sortorder);
1837 $totalarray[
'nbfield']++;
1839if (!empty($arrayfields[
's.name_alias'][
'checked'])) {
1840 print_liste_field_titre($arrayfields[
's.name_alias'][
'label'], $_SERVER[
"PHP_SELF"],
's.name_alias',
'', $param,
'', $sortfield, $sortorder);
1841 $totalarray[
'nbfield']++;
1843if (!empty($arrayfields[
's2.nom'][
'checked'])) {
1844 print_liste_field_titre($arrayfields[
's2.nom'][
'label'], $_SERVER[
'PHP_SELF'],
's2.nom',
'', $param,
'', $sortfield, $sortorder);
1845 $totalarray[
'nbfield']++;
1847if (!empty($arrayfields[
's.town'][
'checked'])) {
1848 print_liste_field_titre($arrayfields[
's.town'][
'label'], $_SERVER[
"PHP_SELF"],
's.town',
'', $param,
'', $sortfield, $sortorder);
1849 $totalarray[
'nbfield']++;
1851if (!empty($arrayfields[
's.zip'][
'checked'])) {
1852 print_liste_field_titre($arrayfields[
's.zip'][
'label'], $_SERVER[
"PHP_SELF"],
's.zip',
'', $param,
'', $sortfield, $sortorder);
1853 $totalarray[
'nbfield']++;
1855if (!empty($arrayfields[
'state.nom'][
'checked'])) {
1856 print_liste_field_titre($arrayfields[
'state.nom'][
'label'], $_SERVER[
"PHP_SELF"],
"state.nom",
"", $param,
'', $sortfield, $sortorder);
1857 $totalarray[
'nbfield']++;
1859if (!empty($arrayfields[
'country.code_iso'][
'checked'])) {
1860 print_liste_field_titre($arrayfields[
'country.code_iso'][
'label'], $_SERVER[
"PHP_SELF"],
"country.code_iso",
"", $param,
'', $sortfield, $sortorder,
'center ');
1861 $totalarray[
'nbfield']++;
1863if (!empty($arrayfields[
'typent.code'][
'checked'])) {
1864 print_liste_field_titre($arrayfields[
'typent.code'][
'label'], $_SERVER[
"PHP_SELF"],
"typent.code",
"", $param,
'', $sortfield, $sortorder,
'center ');
1865 $totalarray[
'nbfield']++;
1867if (!empty($arrayfields[
'c.date_commande'][
'checked'])) {
1868 print_liste_field_titre($arrayfields[
'c.date_commande'][
'label'], $_SERVER[
"PHP_SELF"],
'c.date_commande',
'', $param,
'', $sortfield, $sortorder,
'center ');
1869 $totalarray[
'nbfield']++;
1871if (!empty($arrayfields[
'c.date_delivery'][
'checked'])) {
1872 print_liste_field_titre($arrayfields[
'c.date_delivery'][
'label'], $_SERVER[
"PHP_SELF"],
'c.date_livraison',
'', $param,
'', $sortfield, $sortorder,
'center ');
1873 $totalarray[
'nbfield']++;
1875if (!empty($arrayfields[
'c.fk_shipping_method'][
'checked'])) {
1876 print_liste_field_titre($arrayfields[
'c.fk_shipping_method'][
'label'], $_SERVER[
"PHP_SELF"],
"c.fk_shipping_method",
"", $param,
'', $sortfield, $sortorder);
1877 $totalarray[
'nbfield']++;
1879if (!empty($arrayfields[
'c.fk_cond_reglement'][
'checked'])) {
1880 print_liste_field_titre($arrayfields[
'c.fk_cond_reglement'][
'label'], $_SERVER[
"PHP_SELF"],
"c.fk_cond_reglement",
"", $param,
'', $sortfield, $sortorder);
1881 $totalarray[
'nbfield']++;
1883if (!empty($arrayfields[
'c.fk_mode_reglement'][
'checked'])) {
1884 print_liste_field_titre($arrayfields[
'c.fk_mode_reglement'][
'label'], $_SERVER[
"PHP_SELF"],
"c.fk_mode_reglement",
"", $param,
'', $sortfield, $sortorder);
1885 $totalarray[
'nbfield']++;
1887if (!empty($arrayfields[
'c.fk_input_reason'][
'checked'])) {
1888 print_liste_field_titre($arrayfields[
'c.fk_input_reason'][
'label'], $_SERVER[
"PHP_SELF"],
"c.fk_input_reason",
"", $param,
'', $sortfield, $sortorder);
1889 $totalarray[
'nbfield']++;
1891if (!empty($arrayfields[
'c.total_ht'][
'checked'])) {
1892 print_liste_field_titre($arrayfields[
'c.total_ht'][
'label'], $_SERVER[
"PHP_SELF"],
'c.total_ht',
'', $param,
'', $sortfield, $sortorder,
'right ');
1893 $totalarray[
'nbfield']++;
1895if (!empty($arrayfields[
'c.total_vat'][
'checked'])) {
1896 print_liste_field_titre($arrayfields[
'c.total_vat'][
'label'], $_SERVER[
"PHP_SELF"],
'c.total_tva',
'', $param,
'', $sortfield, $sortorder,
'right ');
1897 $totalarray[
'nbfield']++;
1899if (!empty($arrayfields[
'c.total_ttc'][
'checked'])) {
1900 print_liste_field_titre($arrayfields[
'c.total_ttc'][
'label'], $_SERVER[
"PHP_SELF"],
'c.total_ttc',
'', $param,
'', $sortfield, $sortorder,
'right ');
1901 $totalarray[
'nbfield']++;
1903if (!empty($arrayfields[
'c.multicurrency_code'][
'checked'])) {
1904 print_liste_field_titre($arrayfields[
'c.multicurrency_code'][
'label'], $_SERVER[
'PHP_SELF'],
'c.multicurrency_code',
'', $param,
'', $sortfield, $sortorder);
1905 $totalarray[
'nbfield']++;
1907if (!empty($arrayfields[
'c.multicurrency_tx'][
'checked'])) {
1908 print_liste_field_titre($arrayfields[
'c.multicurrency_tx'][
'label'], $_SERVER[
'PHP_SELF'],
'c.multicurrency_tx',
'', $param,
'', $sortfield, $sortorder);
1909 $totalarray[
'nbfield']++;
1911if (!empty($arrayfields[
'c.multicurrency_total_ht'][
'checked'])) {
1912 print_liste_field_titre($arrayfields[
'c.multicurrency_total_ht'][
'label'], $_SERVER[
'PHP_SELF'],
'c.multicurrency_total_ht',
'', $param,
'class="right"', $sortfield, $sortorder);
1913 $totalarray[
'nbfield']++;
1915if (!empty($arrayfields[
'c.multicurrency_total_vat'][
'checked'])) {
1916 print_liste_field_titre($arrayfields[
'c.multicurrency_total_vat'][
'label'], $_SERVER[
'PHP_SELF'],
'c.multicurrency_total_tva',
'', $param,
'class="right"', $sortfield, $sortorder);
1917 $totalarray[
'nbfield']++;
1919if (!empty($arrayfields[
'c.multicurrency_total_ttc'][
'checked'])) {
1920 print_liste_field_titre($arrayfields[
'c.multicurrency_total_ttc'][
'label'], $_SERVER[
'PHP_SELF'],
'c.multicurrency_total_ttc',
'', $param,
'class="right"', $sortfield, $sortorder);
1921 $totalarray[
'nbfield']++;
1923if (!empty($arrayfields[
'u.login'][
'checked'])) {
1924 print_liste_field_titre($arrayfields[
'u.login'][
'label'], $_SERVER[
"PHP_SELF"],
'u.login',
'', $param,
'', $sortfield, $sortorder);
1925 $totalarray[
'nbfield']++;
1927if (!empty($arrayfields[
'sale_representative'][
'checked'])) {
1928 print_liste_field_titre($arrayfields[
'sale_representative'][
'label'], $_SERVER[
"PHP_SELF"],
"",
"",
"$param",
'', $sortfield, $sortorder);
1929 $totalarray[
'nbfield']++;
1931if (!empty($arrayfields[
'total_pa'][
'checked'])) {
1932 print_liste_field_titre($arrayfields[
'total_pa'][
'label'], $_SERVER[
'PHP_SELF'],
'',
'', $param,
'class="right"', $sortfield, $sortorder);
1933 $totalarray[
'nbfield']++;
1935if (!empty($arrayfields[
'total_margin'][
'checked'])) {
1936 print_liste_field_titre($arrayfields[
'total_margin'][
'label'], $_SERVER[
'PHP_SELF'],
'',
'', $param,
'class="right"', $sortfield, $sortorder);
1937 $totalarray[
'nbfield']++;
1939if (!empty($arrayfields[
'total_margin_rate'][
'checked'])) {
1940 print_liste_field_titre($arrayfields[
'total_margin_rate'][
'label'], $_SERVER[
'PHP_SELF'],
'',
'', $param,
'class="right"', $sortfield, $sortorder);
1941 $totalarray[
'nbfield']++;
1943if (!empty($arrayfields[
'total_mark_rate'][
'checked'])) {
1944 print_liste_field_titre($arrayfields[
'total_mark_rate'][
'label'], $_SERVER[
'PHP_SELF'],
'',
'', $param,
'class="right"', $sortfield, $sortorder);
1945 $totalarray[
'nbfield']++;
1949include DOL_DOCUMENT_ROOT.
'/core/tpl/extrafields_list_search_title.tpl.php';
1952$parameters = array(
'arrayfields'=>$arrayfields,
'param'=>$param,
'sortfield'=>$sortfield,
'sortorder'=>$sortorder,
'totalarray'=>&$totalarray);
1953$reshook = $hookmanager->executeHooks(
'printFieldListTitle', $parameters, $object, $action);
1954print $hookmanager->resPrint;
1955if (!empty($arrayfields[
'c.datec'][
'checked'])) {
1956 print_liste_field_titre($arrayfields[
'c.datec'][
'label'], $_SERVER[
"PHP_SELF"],
"c.date_creation",
"", $param,
'', $sortfield, $sortorder,
'center nowrap ');
1957 $totalarray[
'nbfield']++;
1959if (!empty($arrayfields[
'c.tms'][
'checked'])) {
1960 print_liste_field_titre($arrayfields[
'c.tms'][
'label'], $_SERVER[
"PHP_SELF"],
"c.tms",
"", $param,
'', $sortfield, $sortorder,
'center nowrap ');
1961 $totalarray[
'nbfield']++;
1963if (!empty($arrayfields[
'c.date_cloture'][
'checked'])) {
1964 print_liste_field_titre($arrayfields[
'c.date_cloture'][
'label'], $_SERVER[
"PHP_SELF"],
"c.date_cloture",
"", $param,
'', $sortfield, $sortorder,
'center nowrap ');
1965 $totalarray[
'nbfield']++;
1967if (!empty($arrayfields[
'c.note_public'][
'checked'])) {
1968 print_liste_field_titre($arrayfields[
'c.note_public'][
'label'], $_SERVER[
"PHP_SELF"],
"c.note_public",
"", $param,
'', $sortfield, $sortorder,
'right ');
1969 $totalarray[
'nbfield']++;
1971if (!empty($arrayfields[
'c.note_private'][
'checked'])) {
1972 print_liste_field_titre($arrayfields[
'c.note_private'][
'label'], $_SERVER[
"PHP_SELF"],
"c.note_private",
"", $param,
'', $sortfield, $sortorder,
'right ');
1973 $totalarray[
'nbfield']++;
1975if (!empty($arrayfields[
'shippable'][
'checked'])) {
1976 print_liste_field_titre($arrayfields[
'shippable'][
'label'], $_SERVER[
"PHP_SELF"],
'',
'', $param,
'', $sortfield, $sortorder,
'center ');
1977 $totalarray[
'nbfield']++;
1979if (!empty($arrayfields[
'c.facture'][
'checked'])) {
1980 print_liste_field_titre($arrayfields[
'c.facture'][
'label'], $_SERVER[
"PHP_SELF"],
'c.facture',
'', $param,
'', $sortfield, $sortorder,
'center ');
1981 $totalarray[
'nbfield']++;
1983if (!empty($arrayfields[
'c.import_key'][
'checked'])) {
1984 print_liste_field_titre($arrayfields[
'c.import_key'][
'label'], $_SERVER[
"PHP_SELF"],
"c.import_key",
"", $param,
'', $sortfield, $sortorder,
'center ');
1985 $totalarray[
'nbfield']++;
1987if (!empty($arrayfields[
'c.fk_statut'][
'checked'])) {
1988 print_liste_field_titre($arrayfields[
'c.fk_statut'][
'label'], $_SERVER[
"PHP_SELF"],
"c.fk_statut",
"", $param,
'', $sortfield, $sortorder,
'center ');
1989 $totalarray[
'nbfield']++;
1993 print_liste_field_titre($selectedfields, $_SERVER[
"PHP_SELF"],
"",
'', $param,
'', $sortfield, $sortorder,
'maxwidthsearch center ');
1994 $totalarray[
'nbfield']++;
2000$productstat_cache = array();
2001$productstat_cachevirtual = array();
2002$getNomUrl_cache = array();
2004$generic_commande =
new Commande($db);
2005$generic_product =
new Product($db);
2006$userstatic =
new User($db);
2008$with_margin_info =
false;
2009if (isModEnabled(
'margin') && (
2010 !empty($arrayfields[
'total_pa'][
'checked'])
2011 || !empty($arrayfields[
'total_margin'][
'checked'])
2012 || !empty($arrayfields[
'total_margin_rate'][
'checked'])
2013 || !empty($arrayfields[
'total_mark_rate'][
'checked'])
2016 $with_margin_info =
true;
2025 $savnbfield = $totalarray[
'nbfield'];
2026 $totalarray = array();
2027 $totalarray[
'nbfield'] = 0;
2028 $imaxinloop = ($limit ? min($num, $limit) : $num);
2029while ($i < $imaxinloop) {
2030 $obj = $db->fetch_object($resql);
2041 $companystatic->id = $obj->socid;
2042 $companystatic->name = $obj->name;
2043 $companystatic->name_alias = $obj->alias;
2044 $companystatic->client = $obj->client;
2045 $companystatic->fournisseur = $obj->fournisseur;
2046 $companystatic->code_client = $obj->code_client;
2047 $companystatic->email = $obj->email;
2048 $companystatic->phone = $obj->phone;
2049 $companystatic->address = $obj->address;
2050 $companystatic->zip = $obj->zip;
2051 $companystatic->town = $obj->town;
2052 $companystatic->country_code = $obj->country_code;
2053 if (!isset($getNomUrl_cache[$obj->socid])) {
2054 $getNomUrl_cache[$obj->socid] = $companystatic->getNomUrl(1,
'customer', 100, 0, 1, empty($arrayfields[
's.name_alias'][
'checked']) ? 0 : 1);
2057 $generic_commande->id = $obj->rowid;
2058 $generic_commande->ref = $obj->ref;
2059 $generic_commande->statut = $obj->fk_statut;
2060 $generic_commande->billed = $obj->billed;
2061 $generic_commande->date = $db->jdate($obj->date_commande);
2062 $generic_commande->delivery_date = $db->jdate($obj->date_delivery);
2063 $generic_commande->ref_client = $obj->ref_client;
2064 $generic_commande->total_ht = $obj->total_ht;
2065 $generic_commande->total_tva = $obj->total_tva;
2066 $generic_commande->total_ttc = $obj->total_ttc;
2067 $generic_commande->note_public = $obj->note_public;
2068 $generic_commande->note_private = $obj->note_private;
2070 $generic_commande->thirdparty = $companystatic;
2073 $projectstatic->id = $obj->project_id;
2074 $projectstatic->ref = $obj->project_ref;
2075 $projectstatic->title = $obj->project_label;
2077 $marginInfo = array();
2078 if ($with_margin_info ===
true) {
2079 $generic_commande->fetch_lines();
2080 $marginInfo = $formmargin->getMarginInfosArray($generic_commande);
2081 $total_ht += $obj->total_ht;
2082 $total_margin += $marginInfo[
'total_margin'];
2085 if ($mode ==
'kanban') {
2087 print
'<tr class="trkanban"><td colspan="'.$savnbfield.
'">';
2088 print
'<div class="box-flex-container kanban">';
2093 if ($massactionbutton || $massaction) {
2095 if (in_array($object->id, $arrayofselected)) {
2099 print $generic_commande->getKanbanView(
'', array(
'selected' => $selected));
2100 if ($i == ($imaxinloop - 1)) {
2107 print
'<tr data-rowid="'.$object->id.
'" class="oddeven">';
2111 print
'<td class="nowrap center">';
2112 if ($massactionbutton || $massaction) {
2114 if (in_array($obj->rowid, $arrayofselected)) {
2117 print
'<input id="cb'.$obj->rowid.
'" class="flat checkforselect" type="checkbox" name="toselect[]" value="'.$obj->rowid.
'"'.($selected ?
' checked="checked"' :
'').
'>';
2121 $totalarray[
'nbfield']++;
2126 if (!empty($arrayfields[
'c.ref'][
'checked'])) {
2127 print
'<td class="nowraponall">';
2128 print $generic_commande->getNomUrl(1, ($search_status != 2 ? 0 : $obj->fk_statut), 0, 0, 0, 1, 1);
2131 $filedir = $conf->commande->multidir_output[$conf->entity].
'/'.
dol_sanitizeFileName($obj->ref);
2132 $urlsource = $_SERVER[
'PHP_SELF'].
'?id='.$obj->rowid;
2133 print $formfile->getDocumentsLink($generic_commande->element, $filename, $filedir);
2137 $totalarray[
'nbfield']++;
2142 if (!empty($arrayfields[
'c.ref_client'][
'checked'])) {
2143 print
'<td class="nowrap tdoverflowmax150" title="'.dol_escape_htmltag($obj->ref_client).
'">';
2147 $totalarray[
'nbfield']++;
2152 if (!empty($arrayfields[
'p.ref'][
'checked'])) {
2153 print
'<td class="nowrap">';
2154 if ($obj->project_id > 0) {
2155 print $projectstatic->getNomUrl(1);
2159 $totalarray[
'nbfield']++;
2164 if (!empty($arrayfields[
'p.title'][
'checked'])) {
2165 print
'<td class="nowrap">';
2166 if ($obj->project_id > 0) {
2167 print $projectstatic->title;
2171 $totalarray[
'nbfield']++;
2176 if (!empty($arrayfields[
's.nom'][
'checked'])) {
2177 print
'<td class="tdoverflowmax150">';
2179 print $companystatic->getNomUrl(1,
'customer', 100, 0, 1, empty($arrayfields[
's.name_alias'][
'checked']) ? 0 : 1);
2181 print $getNomUrl_cache[$obj->socid];
2186 if ($user->hasRight(
'facture',
'creer')) {
2187 if (($obj->fk_statut > 0 && $obj->fk_statut < 3) || ($obj->fk_statut == 3 && $obj->billed == 0)) {
2188 print
' <a href="'.DOL_URL_ROOT.
'/commande/list.php?socid='.$companystatic->id.
'&search_billed=0&autoselectall=1">';
2189 print
img_picto($langs->trans(
"CreateInvoiceForThisCustomer").
' : '.$companystatic->name,
'object_bill',
'hideonsmartphone').
'</a>';
2195 $totalarray[
'nbfield']++;
2200 if (!empty($arrayfields[
's.name_alias'][
'checked'])) {
2201 print
'<td class="nocellnopadd">';
2205 $totalarray[
'nbfield']++;
2210 if (!empty($arrayfields[
's2.nom'][
'checked'])) {
2211 print
'<td class="tdoverflowmax200">';
2212 if ($obj->fk_parent > 0) {
2213 if (!isset($company_url_list[$obj->fk_parent])) {
2214 $companyparent =
new Societe($db);
2215 $res = $companyparent->fetch($obj->fk_parent);
2217 $company_url_list[$obj->fk_parent] = $companyparent->getNomUrl(1);
2220 if (isset($company_url_list[$obj->fk_parent])) {
2221 print $company_url_list[$obj->fk_parent];
2226 $totalarray[
'nbfield']++;
2231 if (!empty($arrayfields[
's.town'][
'checked'])) {
2232 print
'<td class="nocellnopadd">';
2236 $totalarray[
'nbfield']++;
2241 if (!empty($arrayfields[
's.zip'][
'checked'])) {
2242 print
'<td class="nocellnopadd">';
2246 $totalarray[
'nbfield']++;
2251 if (!empty($arrayfields[
'state.nom'][
'checked'])) {
2252 print
"<td>".$obj->state_name.
"</td>\n";
2254 $totalarray[
'nbfield']++;
2259 if (!empty($arrayfields[
'country.code_iso'][
'checked'])) {
2260 print
'<td class="center">';
2261 $tmparray =
getCountry($obj->fk_pays,
'all');
2262 print $tmparray[
'label'];
2265 $totalarray[
'nbfield']++;
2270 if (!empty($arrayfields[
'typent.code'][
'checked'])) {
2271 print
'<td class="center">';
2272 if (empty($typenArray)) {
2273 $typenArray = $formcompany->typent_array(1);
2275 print $typenArray[$obj->typent_code]??
'';
2278 $totalarray[
'nbfield']++;
2283 if (!empty($arrayfields[
'c.date_commande'][
'checked'])) {
2284 print
'<td class="center nowraponall">';
2287 if ($generic_commande->hasDelay()) {
2288 print
img_picto($langs->trans(
"Late").
' : '.$generic_commande->showDelay(),
"warning");
2292 $totalarray[
'nbfield']++;
2297 if (!empty($arrayfields[
'c.date_delivery'][
'checked'])) {
2298 print
'<td class="center nowraponall">';
2299 print
dol_print_date($db->jdate($obj->date_delivery),
'dayhour');
2302 $totalarray[
'nbfield']++;
2307 if (!empty($arrayfields[
'c.fk_shipping_method'][
'checked'])) {
2309 $form->formSelectShippingMethod(
'', $obj->fk_shipping_method,
'none', 1);
2312 $totalarray[
'nbfield']++;
2317 if (!empty($arrayfields[
'c.fk_cond_reglement'][
'checked'])) {
2319 $form->form_conditions_reglement($_SERVER[
'PHP_SELF'], $obj->fk_cond_reglement,
'none', 0,
'', 1, $obj->deposit_percent);
2322 $totalarray[
'nbfield']++;
2327 if (!empty($arrayfields[
'c.fk_mode_reglement'][
'checked'])) {
2329 $form->form_modes_reglement($_SERVER[
'PHP_SELF'], $obj->fk_mode_reglement,
'none',
'', -1);
2332 $totalarray[
'nbfield']++;
2337 if (!empty($arrayfields[
'c.fk_input_reason'][
'checked'])) {
2339 $form->formInputReason($_SERVER[
'PHP_SELF'], $obj->fk_input_reason,
'none',
'');
2342 $totalarray[
'nbfield']++;
2347 if (!empty($arrayfields[
'c.total_ht'][
'checked'])) {
2348 print
'<td class="nowrap right"><span class="amount">'.price($obj->total_ht).
"</span></td>\n";
2350 $totalarray[
'nbfield']++;
2353 $totalarray[
'pos'][$totalarray[
'nbfield']] =
'c.total_ht';
2355 if (isset($totalarray[
'val'][
'c.total_ht'])) {
2356 $totalarray[
'val'][
'c.total_ht'] += $obj->total_ht;
2358 $totalarray[
'val'][
'c.total_ht'] = $obj->total_ht;
2363 if (!empty($arrayfields[
'c.total_vat'][
'checked'])) {
2364 print
'<td class="nowrap right"><span class="amount">'.price($obj->total_tva).
"</span></td>\n";
2366 $totalarray[
'nbfield']++;
2369 $totalarray[
'pos'][$totalarray[
'nbfield']] =
'c.total_tva';
2371 if (isset($totalarray[
'val'][
'c.total_tva'])) {
2372 $totalarray[
'val'][
'c.total_tva'] += $obj->total_tva;
2374 $totalarray[
'val'][
'c.total_tva'] = $obj->total_tva;
2379 if (!empty($arrayfields[
'c.total_ttc'][
'checked'])) {
2380 print
'<td class="nowrap right"><span class="amount">'.price($obj->total_ttc).
"</span></td>\n";
2382 $totalarray[
'nbfield']++;
2385 $totalarray[
'pos'][$totalarray[
'nbfield']] =
'c.total_ttc';
2387 if (isset($totalarray[
'val'][
'c.total_ttc'])) {
2388 $totalarray[
'val'][
'c.total_ttc'] += $obj->total_ttc;
2390 $totalarray[
'val'][
'c.total_ttc'] = $obj->total_ttc;
2395 if (!empty($arrayfields[
'c.multicurrency_code'][
'checked'])) {
2396 print
'<td class="nowrap">'.$obj->multicurrency_code.
' - '.$langs->trans(
'Currency'.$obj->multicurrency_code).
"</td>\n";
2398 $totalarray[
'nbfield']++;
2403 if (!empty($arrayfields[
'c.multicurrency_tx'][
'checked'])) {
2404 print
'<td class="nowrap">';
2405 $form->form_multicurrency_rate($_SERVER[
'PHP_SELF'].
'?id='.$obj->rowid, $obj->multicurrency_tx,
'none', $obj->multicurrency_code);
2408 $totalarray[
'nbfield']++;
2413 if (!empty($arrayfields[
'c.multicurrency_total_ht'][
'checked'])) {
2414 print
'<td class="right nowrap"><span class="amount">'.price($obj->multicurrency_total_ht).
"</span></td>\n";
2416 $totalarray[
'nbfield']++;
2420 if (!empty($arrayfields[
'c.multicurrency_total_vat'][
'checked'])) {
2421 print
'<td class="right nowrap"><span class="amount">'.price($obj->multicurrency_total_vat).
"</span></td>\n";
2423 $totalarray[
'nbfield']++;
2427 if (!empty($arrayfields[
'c.multicurrency_total_ttc'][
'checked'])) {
2428 print
'<td class="right nowrap"><span class="amount">'.price($obj->multicurrency_total_ttc).
"</span></td>\n";
2430 $totalarray[
'nbfield']++;
2434 $userstatic->id = $obj->fk_user_author;
2435 $userstatic->login = $obj->login;
2436 $userstatic->lastname = $obj->lastname;
2437 $userstatic->firstname = $obj->firstname;
2438 $userstatic->email = $obj->user_email;
2439 $userstatic->statut = $obj->user_statut;
2440 $userstatic->entity = $obj->entity;
2441 $userstatic->photo = $obj->photo;
2442 $userstatic->office_phone = $obj->office_phone;
2443 $userstatic->office_fax = $obj->office_fax;
2444 $userstatic->user_mobile = $obj->user_mobile;
2445 $userstatic->job = $obj->job;
2446 $userstatic->gender = $obj->gender;
2449 if (!empty($arrayfields[
'u.login'][
'checked'])) {
2450 print
'<td class="tdoverflowmax150">';
2451 if ($userstatic->id) {
2452 print $userstatic->getNomUrl(-1);
2458 $totalarray[
'nbfield']++;
2463 if (!empty($arrayfields[
'sale_representative'][
'checked'])) {
2465 if ($obj->socid > 0) {
2466 $listsalesrepresentatives = $companystatic->getSalesRepresentatives($user);
2467 if ($listsalesrepresentatives < 0) {
2470 $nbofsalesrepresentative = count($listsalesrepresentatives);
2471 if ($nbofsalesrepresentative > 6) {
2473 print $nbofsalesrepresentative;
2474 } elseif ($nbofsalesrepresentative > 0) {
2476 foreach ($listsalesrepresentatives as $val) {
2477 $userstatic->id = $val[
'id'];
2478 $userstatic->lastname = $val[
'lastname'];
2479 $userstatic->firstname = $val[
'firstname'];
2480 $userstatic->email = $val[
'email'];
2481 $userstatic->statut = $val[
'statut'];
2482 $userstatic->entity = $val[
'entity'];
2483 $userstatic->photo = $val[
'photo'];
2484 $userstatic->login = $val[
'login'];
2485 $userstatic->office_phone = $val[
'office_phone'];
2486 $userstatic->office_fax = $val[
'office_fax'];
2487 $userstatic->user_mobile = $val[
'user_mobile'];
2488 $userstatic->job = $val[
'job'];
2489 $userstatic->gender = $val[
'gender'];
2491 print ($nbofsalesrepresentative < 2) ? $userstatic->getNomUrl(-1,
'', 0, 0, 12) : $userstatic->getNomUrl(-2);
2493 if ($j < $nbofsalesrepresentative) {
2505 $totalarray[
'nbfield']++;
2510 if (!empty($arrayfields[
'total_pa'][
'checked'])) {
2511 print
'<td class="right nowrap">'.price($marginInfo[
'pa_total']).
'</td>';
2513 $totalarray[
'nbfield']++;
2518 if (!empty($arrayfields[
'total_margin'][
'checked'])) {
2519 print
'<td class="right nowrap">'.price($marginInfo[
'total_margin']).
'</td>';
2521 $totalarray[
'nbfield']++;
2524 $totalarray[
'pos'][$totalarray[
'nbfield']] =
'total_margin';
2527 if (!isset($totalarray[
'val'][
'total_margin'])) {
2528 $totalarray[
'val'][
'total_margin'] = 0;
2531 $totalarray[
'val'][
'total_margin'] += $marginInfo[
'total_margin'];
2535 if (!empty($arrayfields[
'total_margin_rate'][
'checked'])) {
2536 print
'<td class="right nowrap">'.(($marginInfo[
'total_margin_rate'] ==
'') ?
'' :
price($marginInfo[
'total_margin_rate'], null, null, null, null, 2).
'%').
'</td>';
2538 $totalarray[
'nbfield']++;
2543 if (!empty($arrayfields[
'total_mark_rate'][
'checked'])) {
2544 print
'<td class="right nowrap">'.(($marginInfo[
'total_mark_rate'] ==
'') ?
'' :
price($marginInfo[
'total_mark_rate'], null, null, null, null, 2).
'%').
'</td>';
2546 $totalarray[
'nbfield']++;
2549 $totalarray[
'pos'][$totalarray[
'nbfield']] =
'total_mark_rate';
2551 if ($i >= $imaxinloop - 1) {
2552 if (!empty($total_ht)) {
2553 $totalarray[
'val'][
'total_mark_rate'] =
price2num($total_margin * 100 / $total_ht,
'MT');
2555 $totalarray[
'val'][
'total_mark_rate'] =
'';
2561 include DOL_DOCUMENT_ROOT.
'/core/tpl/extrafields_list_print_fields.tpl.php';
2563 $parameters = array(
'arrayfields'=>$arrayfields,
'obj'=>$obj,
'i'=>$i,
'totalarray'=>&$totalarray);
2564 $reshook = $hookmanager->executeHooks(
'printFieldListValue', $parameters, $object, $action);
2565 print $hookmanager->resPrint;
2568 if (!empty($arrayfields[
'c.datec'][
'checked'])) {
2569 print
'<td align="center" class="nowrap">';
2570 print
dol_print_date($db->jdate($obj->date_creation),
'dayhour',
'tzuser');
2573 $totalarray[
'nbfield']++;
2578 if (!empty($arrayfields[
'c.tms'][
'checked'])) {
2579 print
'<td align="center" class="nowrap">';
2580 print
dol_print_date($db->jdate($obj->date_update),
'dayhour',
'tzuser');
2583 $totalarray[
'nbfield']++;
2588 if (!empty($arrayfields[
'c.date_cloture'][
'checked'])) {
2589 print
'<td align="center" class="nowrap">';
2590 print
dol_print_date($db->jdate($obj->date_cloture),
'dayhour',
'tzuser');
2593 $totalarray[
'nbfield']++;
2598 if (!empty($arrayfields[
'c.note_public'][
'checked'])) {
2599 print
'<td class="center">';
2603 $totalarray[
'nbfield']++;
2608 if (!empty($arrayfields[
'c.note_private'][
'checked'])) {
2609 print
'<td class="center">';
2613 $totalarray[
'nbfield']++;
2618 if (!empty($arrayfields[
'shippable'][
'checked'])) {
2619 print
'<td class="center">';
2620 if (!empty($show_shippable_command) && isModEnabled(
'stock')) {
2621 if (($obj->fk_statut > $generic_commande::STATUS_DRAFT) && ($obj->fk_statut < $generic_commande::STATUS_CLOSED)) {
2622 $generic_commande->getLinesArray();
2623 $generic_commande->loadExpeditions();
2625 $numlines = count($generic_commande->lines);
2626 for ($lig = 0; $lig < $numlines; $lig++) {
2627 if (isset($generic_commande->expeditions[$generic_commande->lines[$lig]->id])) {
2628 $reliquat = $generic_commande->lines[$lig]->qty - $generic_commande->expeditions[$generic_commande->lines[$lig]->id];
2630 $reliquat = $generic_commande->lines[$lig]->qty;
2632 if ($generic_commande->lines[$lig]->product_type == 0 && $generic_commande->lines[$lig]->fk_product > 0) {
2634 $generic_product->id = $generic_commande->lines[$lig]->fk_product;
2637 if (empty($productstat_cache[$generic_commande->lines[$lig]->fk_product])) {
2638 $generic_product->load_stock(
'nobatch,warehouseopen');
2639 $productstat_cache[$generic_commande->lines[$lig]->fk_product][
'stock_reel'] = $generic_product->stock_reel;
2640 $productstat_cachevirtual[$generic_commande->lines[$lig]->fk_product][
'stock_reel'] = $generic_product->stock_theorique;
2642 $generic_product->stock_reel = $productstat_cache[$generic_commande->lines[$lig]->fk_product][
'stock_reel'];
2643 $generic_product->stock_theorique = $productstat_cachevirtual[$generic_commande->lines[$lig]->fk_product][
'stock_reel'] = $generic_product->stock_theorique;
2646 if ($reliquat > $generic_product->stock_reel) {
2650 $text_info .= $reliquat.
' x '.$generic_commande->lines[$lig]->product_ref.
' '.
dol_trunc($generic_commande->lines[$lig]->product_label, 20);
2651 $text_info .=
' - '.$langs->trans(
"Stock").
': <span class="'.($generic_product->stock_reel > 0 ?
'ok' :
'error').
'">'.$generic_product->stock_reel.
'</span>';
2652 $text_info .=
' - '.$langs->trans(
"VirtualStock").
': <span class="'.($generic_product->stock_theorique > 0 ?
'ok' :
'error').
'">'.$generic_product->stock_theorique.
'</span>';
2653 $text_info .= ($reliquat != $generic_commande->lines[$lig]->qty ?
' <span class="opacitymedium">('.$langs->trans(
"QtyInOtherShipments").
' '.($generic_commande->lines[$lig]->qty - $reliquat).
')</span>' :
'');
2654 $text_info .=
'<br>';
2661 $stock_order_supplier = 0;
2663 if (isModEnabled(
'commande')) {
2664 if (empty($productstat_cache[$generic_commande->lines[$lig]->fk_product][
'stats_order_customer'])) {
2665 $generic_product->load_stats_commande(0,
'1,2');
2666 $productstat_cache[$generic_commande->lines[$lig]->fk_product][
'stats_order_customer'] = $generic_product->stats_commande[
'qty'];
2668 $generic_product->stats_commande[
'qty'] = $productstat_cache[$generic_commande->lines[$lig]->fk_product][
'stats_order_customer'];
2670 $stock_order = $generic_product->stats_commande[
'qty'];
2672 if (isModEnabled(
"supplier_order")) {
2673 if (empty($productstat_cache[$generic_commande->lines[$lig]->fk_product][
'stats_order_supplier'])) {
2674 $generic_product->load_stats_commande_fournisseur(0,
'3');
2675 $productstat_cache[$generic_commande->lines[$lig]->fk_product][
'stats_order_supplier'] = $generic_product->stats_commande_fournisseur[
'qty'];
2677 $generic_product->stats_commande_fournisseur[
'qty'] = $productstat_cache[$generic_commande->lines[$lig]->fk_product][
'stats_order_supplier'];
2679 $stock_order_supplier = $generic_product->stats_commande_fournisseur[
'qty'];
2682 $text_info .= $reliquat.
' x '.$generic_commande->lines[$lig]->ref.
' '.
dol_trunc($generic_commande->lines[$lig]->product_label, 20);
2683 $text_stock_reel = $generic_product->stock_reel.
'/'.$stock_order;
2684 if ($stock_order > $generic_product->stock_reel && !($generic_product->stock_reel < $generic_commande->lines[$lig]->qty)) {
2686 $text_warning .=
'<span class="warning">'.$langs->trans(
'Available').
' : '.$text_stock_reel.
'</span>';
2688 if ($reliquat > $generic_product->stock_reel) {
2689 $text_info .=
'<span class="warning">'.$langs->trans(
'Available').
' : '.$text_stock_reel.
'</span>';
2691 $text_info .=
'<span class="ok">'.$langs->trans(
'Available').
' : '.$text_stock_reel.
'</span>';
2693 if (isModEnabled(
"supplier_order")) {
2694 $text_info .=
' '.$langs->trans(
'SupplierOrder').
' : '.$stock_order_supplier;
2696 $text_info .= ($reliquat != $generic_commande->lines[$lig]->qty ?
' <span class="opacitymedium">('.$langs->trans(
"QtyInOtherShipments").
' '.($generic_commande->lines[$lig]->qty - $reliquat).
')</span>' :
'');
2697 $text_info .=
'<br>';
2701 if ($notshippable == 0) {
2702 $text_icon =
img_picto(
'',
'dolly',
'',
false, 0, 0,
'',
'green paddingleft');
2703 $text_info = $text_icon.
' '.$langs->trans(
'Shippable').
'<br>'.$text_info;
2705 $text_icon =
img_picto(
'',
'dolly',
'',
false, 0, 0,
'',
'error paddingleft');
2706 $text_info = $text_icon.
' '.$langs->trans(
'NonShippable').
'<br>'.$text_info;
2711 print $form->textwithtooltip(
'', $text_info, 2, 1, $text_icon,
'', 2);
2714 print $form->textwithtooltip(
'', $langs->trans(
'NotEnoughForAllOrders').
'<br>'.$text_warning, 2, 1,
img_picto(
'',
'error'),
'', 2);
2719 $totalarray[
'nbfield']++;
2724 if (!empty($arrayfields[
'c.facture'][
'checked'])) {
2725 print
'<td class="center">'.yn($obj->billed).
'</td>';
2727 $totalarray[
'nbfield']++;
2732 if (!empty($arrayfields[
'c.import_key'][
'checked'])) {
2733 print
'<td class="nowrap center">'.dol_escape_htmltag($obj->import_key).
'</td>';
2735 $totalarray[
'nbfield']++;
2740 if (!empty($arrayfields[
'c.fk_statut'][
'checked'])) {
2741 print
'<td class="nowrap center">'.$generic_commande->LibStatut($obj->fk_statut, $obj->billed, 5, 1).
'</td>';
2743 $totalarray[
'nbfield']++;
2749 print
'<td class="nowrap center">';
2750 if ($massactionbutton || $massaction) {
2752 if (in_array($obj->rowid, $arrayofselected)) {
2755 print
'<input id="cb'.$obj->rowid.
'" class="flat checkforselect" type="checkbox" name="toselect[]" value="'.$obj->rowid.
'"'.($selected ?
' checked="checked"' :
'').
'>';
2759 $totalarray[
'nbfield']++;
2765 $total += $obj->total_ht;
2766 $subtotal += $obj->total_ht;
2772 include DOL_DOCUMENT_ROOT.
'/core/tpl/list_print_total.tpl.php';
2777 foreach ($arrayfields as $key => $val) {
2778 if (!empty($val[
'checked'])) {
2782 print
'<tr><td colspan="'.$colspan.
'"><span class="opacitymedium">'.$langs->trans(
"NoRecordFound").
'</span></td></tr>';
2787 $parameters = array(
'arrayfields'=>$arrayfields,
'sql'=>$sql);
2788 $reshook = $hookmanager->executeHooks(
'printFieldListFooter', $parameters, $object, $action);
2789 print $hookmanager->resPrint;
2791 print
'</table>'.
"\n";
2792 print
'</div>'.
"\n";
2794 print
'</form>'.
"\n";
2796if (in_array(
'builddoc', array_keys($arrayofmassactions)) && ($nbtotalofrecords ===
'' || $nbtotalofrecords)) {
2797 $hidegeneratedfilelistifempty = 1;
2798 if ($massaction ==
'builddoc' || $action ==
'remove_file' || $show_files) {
2799 $hidegeneratedfilelistifempty = 0;
2803 $urlsource = $_SERVER[
'PHP_SELF'].
'?sortfield='.$sortfield.
'&sortorder='.$sortorder;
2804 $urlsource .= str_replace(
'&',
'&', $param);
2806 $filedir = $diroutputmassaction;
2807 $genallowed = $permissiontoread;
2808 $delallowed = $permissiontoadd;
2810 print $formfile->showdocuments(
'massfilesarea_orders',
'', $filedir, $urlsource, 0, $delallowed,
'', 1, 1, 0, 48, 1, $param, $title,
'',
'',
'',
null, $hidegeneratedfilelistifempty);
if(!defined('NOREQUIRESOC')) if(!defined( 'NOREQUIRETRAN')) if(!defined('NOTOKENRENEWAL')) if(!defined( 'NOREQUIREMENU')) if(!defined('NOREQUIREHTML')) if(!defined( 'NOREQUIREAJAX')) llxHeader()
Empty header.
Class to manage customers orders.
const STATUS_SHIPMENTONPROCESS
Shipment on process.
const STATUS_CLOSED
Closed (Sent, billed or not)
const STATUS_CANCELED
Canceled status.
const STATUS_DRAFT
Draft status.
const STATUS_VALIDATED
Validated status.
Class to manage absolute discounts.
Class to manage invoices.
Class to manage products or services.
Class to manage projects.
Class to manage third parties objects (customers, suppliers, prospects...)
Class to manage Dolibarr users.
getCountry($searchkey, $withcode='', $dbtouse=0, $outputlangs='', $entconv=1, $searchlabel='')
Return country label, code or id from an id, code or label.
dol_mktime($hour, $minute, $second, $month, $day, $year, $gm='auto', $check=1)
Return a timestamp date built from detailed informations (by default a local PHP server timestamp) Re...
dol_string_nohtmltag($stringtoclean, $removelinefeed=1, $pagecodeto='UTF-8', $strip_tags=0, $removedoublespaces=1)
Clean a string from all HTML tags and entities.
price2num($amount, $rounding='', $option=0)
Function that return a number with universal decimal format (decimal separator is '.
dol_print_error($db='', $error='', $errors=null)
Displays error message system with all the information to facilitate the diagnosis and the escalation...
dolGetButtonTitle($label, $helpText='', $iconClass='fa fa-file', $url='', $id='', $status=1, $params=array())
Function dolGetButtonTitle : this kind of buttons are used in title in list.
natural_search($fields, $value, $mode=0, $nofirstand=0)
Generate natural SQL search string for a criteria (this criteria can be tested on one or several fiel...
price($amount, $form=0, $outlangs='', $trunc=1, $rounding=-1, $forcerounding=-1, $currency_code='')
Function to format a value into an amount for visual output Function used into PDF and HTML pages.
dol_print_date($time, $format='', $tzoutput='auto', $outputlangs='', $encodetooutput=false)
Output date in a string format according to outputlangs (or langs if not defined).
dol_now($mode='auto')
Return date for now.
getDolGlobalInt($key, $default=0)
Return a Dolibarr global constant int value.
img_picto($titlealt, $picto, $moreatt='', $pictoisfullpath=false, $srconly=0, $notitle=0, $alt='', $morecss='', $marginleftonlyshort=2)
Show picto whatever it's its name (generic function)
dol_sort_array(&$array, $index, $order='asc', $natsort=0, $case_sensitive=0, $keepindex=0)
Advanced sort array by second index function, which produces ascending (default) or descending output...
print_liste_field_titre($name, $file="", $field="", $begin="", $moreparam="", $moreattrib="", $sortfield="", $sortorder="", $prefix="", $tooltip="", $forcenowrapcolumntitle=0)
Show title line of an array.
dol_concatdesc($text1, $text2, $forxml=false, $invert=false)
Concat 2 descriptions with a new line between them (second operand after first one with appropriate n...
dolGetButtonTitleSeparator($moreClass="")
Add space between dolGetButtonTitle.
GETPOST($paramname, $check='alphanohtml', $method=0, $filter=null, $options=null, $noreplace=0)
Return value of a param into GET or POST supervariable.
setEventMessages($mesg, $mesgs, $style='mesgs', $messagekey='', $noduplicate=0)
Set event messages in dol_events session object.
print_barre_liste($titre, $page, $file, $options='', $sortfield='', $sortorder='', $morehtmlcenter='', $num=-1, $totalnboflines='', $picto='generic', $pictoisfullpath=0, $morehtmlright='', $morecss='', $limit=-1, $hideselectlimit=0, $hidenavigation=0, $pagenavastextinput=0, $morehtmlrightbeforearrow='')
Print a title with navigation controls for pagination.
dol_sanitizeFileName($str, $newstr='_', $unaccent=1)
Clean a string to use it as a file name.
dol_trunc($string, $size=40, $trunc='right', $stringencoding='UTF-8', $nodot=0, $display=0)
Truncate a string to a particular length adding '…' if string larger than length.
getDolGlobalString($key, $default='')
Return dolibarr global constant string value.
dol_escape_htmltag($stringtoescape, $keepb=0, $keepn=0, $noescapetags='', $escapeonlyhtmltags=0, $cleanalsojavascript=0)
Returns text escaped for inclusion in HTML alt or title or value tags, or into values of HTML input f...
restrictedArea(User $user, $features, $object=0, $tableandshare='', $feature2='', $dbt_keyfield='fk_soc', $dbt_select='rowid', $isdraft=0, $mode=0)
Check permissions of a user to show a page and an object.