37require
'../../main.inc.php';
38require_once DOL_DOCUMENT_ROOT.
'/core/class/html.formfile.class.php';
39require_once DOL_DOCUMENT_ROOT.
'/core/class/html.formorder.class.php';
40require_once DOL_DOCUMENT_ROOT.
'/core/class/html.formother.class.php';
41require_once DOL_DOCUMENT_ROOT.
'/core/class/html.formcompany.class.php';
42require_once DOL_DOCUMENT_ROOT.
'/core/lib/date.lib.php';
43require_once DOL_DOCUMENT_ROOT.
'/core/lib/company.lib.php';
44require_once DOL_DOCUMENT_ROOT.
'/fourn/class/fournisseur.class.php';
45require_once DOL_DOCUMENT_ROOT.
'/fourn/class/fournisseur.commande.class.php';
46require_once DOL_DOCUMENT_ROOT.
'/fourn/class/fournisseur.facture.class.php';
47require_once DOL_DOCUMENT_ROOT.
'/product/class/product.class.php';
48require_once DOL_DOCUMENT_ROOT.
'/projet/class/project.class.php';
52$langs->loadLangs(array(
"orders",
"sendings",
'deliveries',
'companies',
'compta',
'bills',
'projects',
'suppliers',
'products'));
55$action =
GETPOST(
'action',
'aZ09');
56$massaction =
GETPOST(
'massaction',
'alpha');
58$confirm =
GETPOST(
'confirm',
'alpha');
59$toselect =
GETPOST(
'toselect',
'array');
60$contextpage =
GETPOST(
'contextpage',
'aZ') ?
GETPOST(
'contextpage',
'aZ') :
'supplierorderlist';
61$mode =
GETPOST(
'mode',
'alpha');
64$search_date_order_startday =
GETPOSTINT(
'search_date_order_startday');
65$search_date_order_startmonth =
GETPOSTINT(
'search_date_order_startmonth');
66$search_date_order_startyear =
GETPOSTINT(
'search_date_order_startyear');
67$search_date_order_endday =
GETPOSTINT(
'search_date_order_endday');
68$search_date_order_endmonth =
GETPOSTINT(
'search_date_order_endmonth');
69$search_date_order_endyear =
GETPOSTINT(
'search_date_order_endyear');
70$search_date_order_start =
dol_mktime(0, 0, 0, $search_date_order_startmonth, $search_date_order_startday, $search_date_order_startyear);
71$search_date_order_end =
dol_mktime(23, 59, 59, $search_date_order_endmonth, $search_date_order_endday, $search_date_order_endyear);
73$search_date_delivery_startday =
GETPOSTINT(
'search_date_delivery_startday');
74$search_date_delivery_startmonth =
GETPOSTINT(
'search_date_delivery_startmonth');
75$search_date_delivery_startyear =
GETPOSTINT(
'search_date_delivery_startyear');
76$search_date_delivery_endday =
GETPOSTINT(
'search_date_delivery_endday');
77$search_date_delivery_endmonth =
GETPOSTINT(
'search_date_delivery_endmonth');
78$search_date_delivery_endyear =
GETPOSTINT(
'search_date_delivery_endyear');
79$search_date_delivery_start =
dol_mktime(0, 0, 0, $search_date_delivery_startmonth, $search_date_delivery_startday, $search_date_delivery_startyear);
80$search_date_delivery_end =
dol_mktime(23, 59, 59, $search_date_delivery_endmonth, $search_date_delivery_endday, $search_date_delivery_endyear);
82$search_date_valid_startday =
GETPOSTINT(
'search_date_valid_startday');
83$search_date_valid_startmonth =
GETPOSTINT(
'search_date_valid_startmonth');
84$search_date_valid_startyear =
GETPOSTINT(
'search_date_valid_startyear');
85$search_date_valid_endday =
GETPOSTINT(
'search_date_valid_endday');
86$search_date_valid_endmonth =
GETPOSTINT(
'search_date_valid_endmonth');
87$search_date_valid_endyear =
GETPOSTINT(
'search_date_valid_endyear');
88$search_date_valid_start =
dol_mktime(0, 0, 0, $search_date_valid_startmonth, $search_date_valid_startday, $search_date_valid_startyear);
89$search_date_valid_end =
dol_mktime(23, 59, 59, $search_date_valid_endmonth, $search_date_valid_endday, $search_date_valid_endyear);
91$search_date_approve_startday =
GETPOSTINT(
'search_date_approve_startday');
92$search_date_approve_startmonth =
GETPOSTINT(
'search_date_approve_startmonth');
93$search_date_approve_startyear =
GETPOSTINT(
'search_date_approve_startyear');
94$search_date_approve_endday =
GETPOSTINT(
'search_date_approve_endday');
95$search_date_approve_endmonth =
GETPOSTINT(
'search_date_approve_endmonth');
96$search_date_approve_endyear =
GETPOSTINT(
'search_date_approve_endyear');
97$search_date_approve_start =
dol_mktime(0, 0, 0, $search_date_approve_startmonth, $search_date_approve_startday, $search_date_approve_startyear);
98$search_date_approve_end =
dol_mktime(23, 59, 59, $search_date_approve_endmonth, $search_date_approve_endday, $search_date_approve_endyear);
100$search_all = trim((
GETPOST(
'search_all',
'alphanohtml') !=
'') ?
GETPOST(
'search_all',
'alphanohtml') :
GETPOST(
'sall',
'alphanohtml'));
102$search_product_category =
GETPOSTINT(
'search_product_category');
103$search_ref =
GETPOST(
'search_ref',
'alpha');
104$search_refsupp =
GETPOST(
'search_refsupp',
'alpha');
105$search_company =
GETPOST(
'search_company',
'alpha');
106$search_company_alias =
GETPOST(
'search_company_alias',
'alpha');
107$search_town =
GETPOST(
'search_town',
'alpha');
108$search_zip =
GETPOST(
'search_zip',
'alpha');
109$search_state =
GETPOST(
"search_state",
'alpha');
110$search_country =
GETPOST(
"search_country",
'aZ09');
111$search_type_thirdparty =
GETPOST(
"search_type_thirdparty",
'intcomma');
112$search_user =
GETPOST(
'search_user',
'intcomma');
113$search_request_author =
GETPOST(
'search_request_author',
'alpha');
114$optioncss =
GETPOST(
'optioncss',
'alpha');
116$search_sale =
GETPOST(
'search_sale',
'intcomma');
117$search_total_ht =
GETPOST(
'search_total_ht',
'alpha');
118$search_total_tva =
GETPOST(
'search_total_tva',
'alpha');
119$search_total_ttc =
GETPOST(
'search_total_ttc',
'alpha');
120$search_multicurrency_code =
GETPOST(
'search_multicurrency_code',
'alpha');
121$search_multicurrency_tx =
GETPOST(
'search_multicurrency_tx',
'alpha');
122$search_multicurrency_montant_ht =
GETPOST(
'search_multicurrency_montant_ht',
'alpha');
123$search_multicurrency_montant_tva =
GETPOST(
'search_multicurrency_montant_tva',
'alpha');
124$search_multicurrency_montant_ttc =
GETPOST(
'search_multicurrency_montant_ttc',
'alpha');
125$optioncss =
GETPOST(
'optioncss',
'alpha');
126$search_billed =
GETPOST(
'search_billed',
'intcomma');
127$search_project_ref =
GETPOST(
'search_project_ref',
'alpha');
128$search_btn =
GETPOST(
'button_search',
'alpha');
129$search_remove_btn =
GETPOST(
'button_removefilter',
'alpha');
132 $search_status = implode(
',',
GETPOST(
'search_status',
'array:intcomma'));
134 $search_status = (
GETPOST(
'search_status',
'intcomma') !=
'' ?
GETPOST(
'search_status',
'intcomma') :
GETPOST(
'statut',
'intcomma'));
137$diroutputmassaction = $conf->fournisseur->commande->dir_output.
'/temp/massgeneration/'.$user->id;
140$sortfield =
GETPOST(
'sortfield',
'aZ09comma');
141$sortorder =
GETPOST(
'sortorder',
'aZ09comma');
143if (empty($page) || $page == -1 || !empty($search_btn) || !empty($search_remove_btn) || (empty($toselect) && $massaction ===
'0')) {
146$offset = $limit * $page;
147$pageprev = $page - 1;
148$pagenext = $page + 1;
150 $sortfield =
'cf.ref';
158$hookmanager->initHooks(array(
'supplierorderlist'));
162$extrafields->fetch_name_optionals_label(
$object->table_element);
164$search_array_options = $extrafields->getOptionalsFromPost(
$object->table_element,
'',
'search_');
167$fieldstosearchall = array();
168foreach (
$object->fields as $key => $val) {
169 if (!empty($val[
'searchall'])) {
170 $fieldstosearchall[
'cf.'.$key] = $val[
'label'];
173$fieldstosearchall[
'pd.description'] =
'Description';
174$fieldstosearchall[
's.nom'] =
"ThirdParty";
175$fieldstosearchall[
's.name_alias'] =
"AliasNameShort";
176$fieldstosearchall[
's.zip'] =
"Zip";
177$fieldstosearchall[
's.town'] =
"Town";
178if (empty($user->socid)) {
179 $fieldstosearchall[
"cf.note_private"] =
"NotePrivate";
182$checkedtypetiers = 0;
186 'u.login' => array(
'label' =>
"AuthorRequest",
'enabled' => 1,
'position' => 41),
187 's.name_alias' => array(
'label' =>
"AliasNameShort",
'position' => 51,
'checked' => 0),
188 's.town' => array(
'label' =>
"Town",
'enabled' => 1,
'position' => 55,
'checked' => 1),
189 's.zip' => array(
'label' =>
"Zip",
'enabled' => 1,
'position' => 56,
'checked' => 1),
190 'state.nom' => array(
'label' =>
"StateShort",
'enabled' => 1,
'position' => 57),
191 'country.code_iso' => array(
'label' =>
"Country",
'enabled' => 1,
'position' => 58),
192 'typent.code' => array(
'label' =>
"ThirdPartyType",
'enabled' => $checkedtypetiers,
'position' => 59),
193 'cf.total_localtax1' => array(
'label' => $langs->transcountry(
"AmountLT1", $mysoc->country_code),
'checked' => 0,
'enabled' => ($mysoc->localtax1_assuj ==
"1"),
'position' => 140),
194 'cf.total_localtax2' => array(
'label' => $langs->transcountry(
"AmountLT2", $mysoc->country_code),
'checked' => 0,
'enabled' => ($mysoc->localtax2_assuj ==
"1"),
'position' => 145),
195 'cf.note_public' => array(
'label' =>
'NotePublic',
'checked' => 0,
'enabled' => (!
getDolGlobalInt(
'MAIN_LIST_HIDE_PUBLIC_NOTES')),
'position' => 750),
196 'cf.note_private' => array(
'label' =>
'NotePrivate',
'checked' => 0,
'enabled' => (!
getDolGlobalInt(
'MAIN_LIST_HIDE_PRIVATE_NOTES')),
'position' => 760),
198foreach (
$object->fields as $key => $val) {
200 if (!empty($val[
'visible'])) {
201 $visible = (int)
dol_eval($val[
'visible'], 1);
202 $arrayfields[
'cf.'.$key] = array(
203 'label' => $val[
'label'],
204 'checked' => (($visible < 0) ? 0 : 1),
205 'enabled' => (abs($visible) != 3 && (bool)
dol_eval($val[
'enabled'], 1)),
206 'position' => $val[
'position'],
207 'help' => isset($val[
'help']) ? $val[
'help'] :
''
212include DOL_DOCUMENT_ROOT.
'/core/tpl/extrafields_list_array_fields.tpl.php';
216'@phan-var-force array<string,array{label:string,checked?:int<0,1>,position?:int,help?:string}> $arrayfields';
220if (!$user->hasRight(
'societe',
'client',
'voir')) {
221 $search_sale = $user->id;
227 $socid = $user->socid;
229$result =
restrictedArea($user,
'fournisseur', $orderid,
'',
'commande');
231$permissiontoread = ($user->hasRight(
"fournisseur",
"commande",
"lire") || $user->hasRight(
"supplier_order",
"lire"));
232$permissiontoadd = ($user->hasRight(
"fournisseur",
"commande",
"creer") || $user->hasRight(
"supplier_order",
"creer"));
233$permissiontodelete = ($user->hasRight(
"fournisseur",
"commande",
"supprimer") || $user->hasRight(
"supplier_order",
"supprimer"));
234$permissiontovalidate = $permissiontoadd;
235$permissiontoapprove = ($user->hasRight(
"fournisseur",
"commande",
"approuver") || $user->hasRight(
"supplier_order",
"approuver"));
242if (
GETPOST(
'cancel',
'alpha')) {
246if (!
GETPOST(
'confirmmassaction',
'alpha') && $massaction !=
'presend' && $massaction !=
'confirm_presend' && $massaction !=
'confirm_createsupplierbills') {
250$parameters = array(
'socid' => $socid,
'arrayfields' => &$arrayfields);
251$reshook = $hookmanager->executeHooks(
'doActions', $parameters, $object, $action);
256if (empty($reshook)) {
258 include DOL_DOCUMENT_ROOT.
'/core/actions_changeselectedfields.inc.php';
261 if (
GETPOST(
'button_removefilter_x',
'alpha') ||
GETPOST(
'button_removefilter.x',
'alpha') ||
GETPOST(
'button_removefilter',
'alpha')) {
265 $search_product_category =
'';
267 $search_refsupp =
'';
268 $search_company =
'';
269 $search_company_alias =
'';
274 $search_country =
'';
275 $search_type_thirdparty =
'';
276 $search_request_author =
'';
277 $search_total_ht =
'';
278 $search_total_tva =
'';
279 $search_total_ttc =
'';
280 $search_multicurrency_code =
'';
281 $search_multicurrency_tx =
'';
282 $search_multicurrency_montant_ht =
'';
283 $search_multicurrency_montant_tva =
'';
284 $search_multicurrency_montant_ttc =
'';
285 $search_project_ref =
'';
287 $search_date_order_startday =
'';
288 $search_date_order_startmonth =
'';
289 $search_date_order_startyear =
'';
290 $search_date_order_endday =
'';
291 $search_date_order_endmonth =
'';
292 $search_date_order_endyear =
'';
293 $search_date_order_start =
'';
294 $search_date_order_end =
'';
295 $search_date_delivery_startday =
'';
296 $search_date_delivery_startmonth =
'';
297 $search_date_delivery_startyear =
'';
298 $search_date_delivery_endday =
'';
299 $search_date_delivery_endmonth =
'';
300 $search_date_delivery_endyear =
'';
301 $search_date_delivery_start =
'';
302 $search_date_delivery_end =
'';
303 $search_date_valid_startday =
'';
304 $search_date_valid_startmonth =
'';
305 $search_date_valid_startyear =
'';
306 $search_date_valid_endday =
'';
307 $search_date_valid_endmonth =
'';
308 $search_date_valid_endyear =
'';
309 $search_date_valid_start =
'';
310 $search_date_valid_end =
'';
311 $search_date_approve_startday =
'';
312 $search_date_approve_startmonth =
'';
313 $search_date_approve_startyear =
'';
314 $search_date_approve_endday =
'';
315 $search_date_approve_endmonth =
'';
316 $search_date_approve_endyear =
'';
317 $search_date_approve_start =
'';
318 $search_date_approve_end =
'';
322 $search_array_options = array();
324 if (
GETPOST(
'button_removefilter_x',
'alpha') ||
GETPOST(
'button_removefilter.x',
'alpha') ||
GETPOST(
'button_removefilter',
'alpha')
325 ||
GETPOST(
'button_search_x',
'alpha') ||
GETPOST(
'button_search.x',
'alpha') ||
GETPOST(
'button_search',
'alpha')) {
330 $objectclass =
'CommandeFournisseur';
331 $objectlabel =
'SupplierOrders';
332 $uploaddir = $conf->fournisseur->commande->dir_output;
333 include DOL_DOCUMENT_ROOT.
'/core/actions_massactions.inc.php';
335 if ($action ==
'validate' && $permissiontovalidate) {
336 if (
GETPOST(
'confirm') ==
'yes') {
341 foreach ($toselect as $checked) {
342 if ($objecttmp->fetch($checked)) {
343 if ($objecttmp->statut == 0) {
344 $objecttmp->date_commande =
dol_now();
345 $result = $objecttmp->valid($user);
348 if (!
getDolGlobalString(
'SUPPLIER_ORDER_NO_DIRECT_APPROVE') && $permissiontoapprove && !(
getDolGlobalString(
'STOCK_CALCULATE_ON_SUPPLIER_VALIDATE_ORDER') && $objecttmp->hasProductsOrServices(1))) {
349 $result = $objecttmp->approve($user);
350 setEventMessages($langs->trans(
"SupplierOrderValidatedAndApproved"), array($objecttmp->ref));
352 setEventMessages($langs->trans(
"SupplierOrderValidated"), array($objecttmp->ref));
371 if ($massaction ==
'confirm_createsupplierbills') {
372 $orders =
GETPOST(
'toselect',
'array');
373 $createbills_onebythird =
GETPOSTINT(
'createbills_onebythird');
374 $validate_invoices =
GETPOSTINT(
'validate_invoices');
378 $TFactThird = array();
380 $nb_bills_created = 0;
388 foreach ($orders as $id_order) {
390 if ($cmd->fetch($id_order) <= 0) {
395 if (!empty($createbills_onebythird) && !empty($TFactThird[$cmd->socid])) {
396 $objecttmp = $TFactThird[$cmd->socid];
399 if (!empty($cmd->socid) > 0) {
401 $societe->fetch($cmd->socid);
402 $objecttmp->vat_reverse_charge = $societe->vat_reverse_charge;
404 $objecttmp->socid = $cmd->socid;
405 $objecttmp->type = $objecttmp::TYPE_STANDARD;
406 $objecttmp->cond_reglement_id = $cmd->cond_reglement_id;
407 $objecttmp->mode_reglement_id = $cmd->mode_reglement_id;
408 $objecttmp->fk_project = $cmd->fk_project;
409 $objecttmp->multicurrency_code = $cmd->multicurrency_code;
410 $objecttmp->ref_supplier = !empty($cmd->ref_supplier) ? $cmd->ref_supplier : $default_ref_supplier;
411 $default_ref_supplier += 1;
414 if (empty($datefacture)) {
418 $objecttmp->date = $datefacture;
419 $objecttmp->origin =
'order_supplier';
420 $objecttmp->origin_id = $id_order;
422 $res = $objecttmp->create($user);
426 $lastref = $objecttmp->ref;
427 $lastid = $objecttmp->id;
431 if ($objecttmp->id > 0) {
432 $sql =
"INSERT INTO ".MAIN_DB_PREFIX.
"element_element (";
434 $sql .=
", sourcetype";
435 $sql .=
", fk_target";
436 $sql .=
", targettype";
437 $sql .=
") VALUES (";
439 $sql .=
", '".$db->escape($objecttmp->origin).
"'";
440 $sql .=
", ".((int) $objecttmp->id);
441 $sql .=
", '".$db->escape($objecttmp->element).
"'";
444 if (!$db->query($sql)) {
449 $lines = $cmd->lines;
450 if (empty($lines) && method_exists($cmd,
'fetch_lines')) {
452 $lines = $cmd->lines;
456 $num = count($lines);
458 for ($i = 0; $i < $num; $i++) {
459 $desc = ($lines[$i]->desc ? $lines[$i]->desc : $lines[$i]->libelle);
460 if ($lines[$i]->subprice < 0) {
461 require_once DOL_DOCUMENT_ROOT.
'/core/class/discount.class.php';
465 $discount->fk_soc = $objecttmp->socid;
466 $discount->socid = $objecttmp->socid;
467 $discount->amount_ht = abs($lines[$i]->total_ht);
468 $discount->amount_tva = abs($lines[$i]->total_tva);
469 $discount->amount_ttc = abs($lines[$i]->total_ttc);
470 $discount->tva_tx = $lines[$i]->tva_tx;
471 $discount->fk_user = $user->id;
472 $discount->description = $desc;
473 $discountid = $discount->create($user);
474 if ($discountid > 0) {
475 $result = $objecttmp->insert_discount($discountid);
484 $product_type = ($lines[$i]->product_type ? $lines[$i]->product_type : 0);
487 if ($lines[$i]->date_debut_prevue) {
488 $date_start = $lines[$i]->date_debut_prevue;
490 if ($lines[$i]->date_debut_reel) {
491 $date_start = $lines[$i]->date_debut_reel;
493 if ($lines[$i]->date_start) {
494 $date_start = $lines[$i]->date_start;
498 if ($lines[$i]->date_fin_prevue) {
499 $date_end = $lines[$i]->date_fin_prevue;
501 if ($lines[$i]->date_fin_reel) {
502 $date_end = $lines[$i]->date_fin_reel;
504 if ($lines[$i]->date_end) {
505 $date_end = $lines[$i]->date_end;
508 if (($lines[$i]->product_type != 9 && empty($lines[$i]->fk_parent_line)) || $lines[$i]->product_type == 9) {
511 $result = $objecttmp->addline(
513 $lines[$i]->subprice,
515 $lines[$i]->localtax1_tx,
516 $lines[$i]->localtax2_tx,
518 $lines[$i]->fk_product,
519 $lines[$i]->remise_percent,
523 $lines[$i]->info_bits,
529 $lines[$i]->array_options,
532 $lines[$i]->fk_commande,
534 $lines[$i]->ref_supplier,
535 $lines[$i]->special_code,
546 if ($result > 0 && $lines[$i]->product_type == 9) {
547 $fk_parent_line = $result;
554 $cmd->classifyBilled($user);
556 if (!empty($createbills_onebythird) && empty($TFactThird[$cmd->socid])) {
557 $TFactThird[$cmd->socid] = $objecttmp;
559 $TFact[$objecttmp->id] = $objecttmp;
564 $TAllFact = empty($createbills_onebythird) ? $TFact : $TFactThird;
567 if (!$error && $validate_invoices) {
568 $massaction = $action =
'builddoc';
570 foreach ($TAllFact as &$objecttmp) {
571 $objecttmp->validate($user);
578 $id = $objecttmp->id;
582 $upload_dir = $conf->fournisseur->facture->dir_output;
583 $permissiontoadd = ($user->hasRight(
"fournisseur",
"facture",
"creer") || $user->hasRight(
"supplier_invoice",
"creer"));
587 $massaction = $action =
'confirm_createsupplierbills';
593 if ($nb_bills_created == 1) {
594 $texttoshow = $langs->trans(
'BillXCreated',
'{s1}');
595 $texttoshow = str_replace(
'{s1}',
'<a href="'.DOL_URL_ROOT.
'/fourn/facture/card.php?id='.urlencode((
string) ($lastid)).
'">'.$lastref.
'</a>', $texttoshow);
598 setEventMessages($langs->trans(
'BillCreated', $nb_bills_created),
null,
'mesgs');
604 $param .=
'&mode='.urlencode($mode);
606 if (!empty($contextpage) && $contextpage != $_SERVER[
"PHP_SELF"]) {
607 $param .=
'&contextpage='.urlencode($contextpage);
609 if ($limit > 0 && $limit != $conf->liste_limit) {
610 $param .=
'&limit='.((int) $limit);
613 $param .=
'&search_all='.urlencode($search_all);
616 $param .=
'&socid='.urlencode((
string) ($socid));
618 if ($search_status !=
'') {
619 $param .=
'&search_status='.urlencode($search_status);
621 if ($search_date_order_startday) {
622 $param .=
'&search_date_order_startday='.urlencode((
string) ($search_date_order_startday));
624 if ($search_date_order_startmonth) {
625 $param .=
'&search_date_order_startmonth='.urlencode((
string) ($search_date_order_startmonth));
627 if ($search_date_order_startyear) {
628 $param .=
'&search_date_order_startyear='.urlencode((
string) ($search_date_order_startyear));
630 if ($search_date_order_endday) {
631 $param .=
'&search_date_order_endday='.urlencode((
string) ($search_date_order_endday));
633 if ($search_date_order_endmonth) {
634 $param .=
'&search_date_order_endmonth='.urlencode((
string) ($search_date_order_endmonth));
636 if ($search_date_order_endyear) {
637 $param .=
'&search_date_order_endyear='.urlencode((
string) ($search_date_order_endyear));
639 if ($search_date_delivery_startday) {
640 $param .=
'&search_date_delivery_startday='.urlencode((
string) ($search_date_delivery_startday));
642 if ($search_date_delivery_startmonth) {
643 $param .=
'&search_date_delivery_startmonth='.urlencode((
string) ($search_date_delivery_startmonth));
645 if ($search_date_delivery_startyear) {
646 $param .=
'&search_date_delivery_startyear='.urlencode((
string) ($search_date_delivery_startyear));
648 if ($search_date_delivery_endday) {
649 $param .=
'&search_date_delivery_endday='.urlencode((
string) ($search_date_delivery_endday));
651 if ($search_date_delivery_endmonth) {
652 $param .=
'&search_date_delivery_endmonth='.urlencode((
string) ($search_date_delivery_endmonth));
654 if ($search_date_delivery_endyear) {
655 $param .=
'&search_date_delivery_endyear='.urlencode((
string) ($search_date_delivery_endyear));
657 if ($search_date_valid_startday) {
658 $param .=
'&search_date_valid_startday='.urlencode((
string) ($search_date_valid_startday));
660 if ($search_date_valid_startmonth) {
661 $param .=
'&search_date_valid_startmonth='.urlencode((
string) ($search_date_valid_startmonth));
663 if ($search_date_valid_startyear) {
664 $param .=
'&search_date_valid_startyear='.urlencode((
string) ($search_date_valid_startyear));
666 if ($search_date_valid_endday) {
667 $param .=
'&search_date_valid_endday='.urlencode((
string) ($search_date_valid_endday));
669 if ($search_date_valid_endmonth) {
670 $param .=
'&search_date_valid_endmonth='.urlencode((
string) ($search_date_valid_endmonth));
672 if ($search_date_valid_endyear) {
673 $param .=
'&search_date_valid_endyear='.urlencode((
string) ($search_date_valid_endyear));
675 if ($search_date_approve_startday) {
676 $param .=
'&search_date_approve_startday='.urlencode((
string) ($search_date_approve_startday));
678 if ($search_date_approve_startmonth) {
679 $param .=
'&search_date_approve_startmonth='.urlencode((
string) ($search_date_approve_startmonth));
681 if ($search_date_approve_startyear) {
682 $param .=
'&search_date_approve_startyear='.urlencode((
string) ($search_date_approve_startyear));
684 if ($search_date_approve_endday) {
685 $param .=
'&search_date_approve_endday='.urlencode((
string) ($search_date_approve_endday));
687 if ($search_date_approve_endmonth) {
688 $param .=
'&search_date_approve_endmonth='.urlencode((
string) ($search_date_approve_endmonth));
690 if ($search_date_approve_endyear) {
691 $param .=
'&search_date_approve_endyear='.urlencode((
string) ($search_date_approve_endyear));
694 $param .=
'&search_ref='.urlencode($search_ref);
696 if ($search_company) {
697 $param .=
'&search_company='.urlencode($search_company);
699 if ($search_company_alias) {
700 $param .=
'&search_company_alias='.urlencode($search_company_alias);
703 if ($search_user > 0) {
704 $param .=
'&search_user='.urlencode((
string) ($search_user));
706 if ($search_sale > 0) {
707 $param .=
'&search_sale='.urlencode($search_sale);
709 if ($search_total_ht !=
'') {
710 $param .=
'&search_total_ht='.urlencode($search_total_ht);
712 if ($search_total_tva !=
'') {
713 $param .=
'&search_total_tva='.urlencode($search_total_tva);
715 if ($search_total_ttc !=
'') {
716 $param .=
'&search_total_ttc='.urlencode($search_total_ttc);
718 if ($search_project_ref >= 0) {
719 $param .=
"&search_project_ref=".urlencode($search_project_ref);
722 $param .=
'&show_files='.urlencode((
string) ($show_files));
724 if ($optioncss !=
'') {
725 $param .=
'&optioncss='.urlencode($optioncss);
728 $param .=
'&billed='.urlencode($billed);
731 header(
"Location: ".$_SERVER[
'PHP_SELF'].
'?'.$param);
736 $_GET[
"origin"] = $_POST[
"origin"];
737 $_GET[
"originid"] = $_POST[
"originid"];
751$form =
new Form($db);
759$title = $langs->trans(
"SuppliersOrders");
762 $fourn->fetch($socid);
763 $title .=
' - '.$fourn->name;
774if ($search_billed > 0) {
775 $title .=
' - '.$langs->trans(
"Billed");
781$varpage = empty($contextpage) ? $_SERVER[
"PHP_SELF"] : $contextpage;
782$selectedfields = $form->multiSelectArrayWithCheckbox(
'selectedfields', $arrayfields, $varpage);
786 $sql =
'SELECT DISTINCT';
788$sql .=
' s.rowid as socid, s.nom as name, s.name_alias as alias, s.town, s.zip, s.fk_pays, s.client, s.fournisseur, s.code_client, s.email,';
789$sql .=
" typent.code as typent_code,";
790$sql .=
" state.code_departement as state_code, state.nom as state_name,";
791$sql .=
" cf.rowid, cf.ref, cf.ref_supplier, cf.fk_statut, cf.billed, cf.total_ht, cf.total_tva, cf.total_ttc, cf.fk_user_author, cf.date_commande as date_commande, cf.date_livraison as delivery_date, cf.date_valid, cf.date_approve,";
792$sql .=
' cf.localtax1 as total_localtax1, cf.localtax2 as total_localtax2,';
793$sql .=
' cf.fk_multicurrency, cf.multicurrency_code, cf.multicurrency_tx, cf.multicurrency_total_ht, cf.multicurrency_total_tva, cf.multicurrency_total_ttc,';
794$sql .=
' cf.date_creation as date_creation, cf.tms as date_modification,';
795$sql .=
' cf.note_public, cf.note_private,';
796$sql .=
" p.rowid as project_id, p.ref as project_ref, p.title as project_title,";
797$sql .=
" u.firstname, u.lastname, u.photo, u.login, u.email as user_email, u.statut as user_status";
799if (!empty($extrafields->attributes[
$object->table_element][
'label'])) {
800 foreach ($extrafields->attributes[
$object->table_element][
'label'] as $key => $val) {
801 $sql .= ($extrafields->attributes[
$object->table_element][
'type'][$key] !=
'separate' ?
", ef.".$key.
" as options_".$key :
'');
805$parameters = array();
806$reshook = $hookmanager->executeHooks(
'printFieldListSelect', $parameters, $object);
807$sql .= $hookmanager->resPrint;
811$sql .=
" FROM ".MAIN_DB_PREFIX.
"societe as s";
812$sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"c_country as country on (country.rowid = s.fk_pays)";
813$sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"c_typent as typent on (typent.id = s.fk_typent)";
814$sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"c_departements as state on (state.rowid = s.fk_departement)";
815$sql .=
", ".MAIN_DB_PREFIX.
"commande_fournisseur as cf";
816if (!empty($extrafields->attributes[
$object->table_element][
'label']) && is_array($extrafields->attributes[
$object->table_element][
'label']) && count($extrafields->attributes[
$object->table_element][
'label'])) {
817 $sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.$object->table_element.
"_extrafields as ef on (cf.rowid = ef.fk_object)";
820 $sql .=
' LEFT JOIN '.MAIN_DB_PREFIX.
'commande_fournisseurdet as pd ON cf.rowid=pd.fk_commande';
822$sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"user as u ON cf.fk_user_author = u.rowid";
823$sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"projet as p ON p.rowid = cf.fk_projet";
824$parameters = array();
825$reshook = $hookmanager->executeHooks(
'printFieldListFrom', $parameters, $object);
826$sql .= $hookmanager->resPrint;
827$sql .=
' WHERE cf.fk_soc = s.rowid';
828$sql .=
' AND cf.entity IN ('.getEntity(
'supplier_order').
')';
830 $sql .=
" AND s.rowid = ".((int) $socid);
835if ($search_refsupp) {
839 $sql .=
natural_search(array_keys($fieldstosearchall), $search_all);
841if (empty($arrayfields[
's.name_alias'][
'checked']) && $search_company) {
842 $sql .=
natural_search(array(
"s.nom",
"s.name_alias"), $search_company);
844 if ($search_company) {
847 if ($search_company_alias) {
851if ($search_request_author) {
852 $sql .=
natural_search(array(
'u.lastname',
'u.firstname',
'u.login'), $search_request_author);
854if ($search_billed !=
'' && $search_billed >= 0) {
855 $sql .=
" AND cf.billed = ".((int) $search_billed);
858if (
GETPOST(
'statut',
'intcomma') !==
'') {
859 $sql .=
" AND cf.fk_statut IN (".$db->sanitize($db->escape($db->escape(
GETPOST(
'statut',
'intcomma')))).
")";
861if ($search_status !=
'' && $search_status !=
'-1') {
862 $sql .=
" AND cf.fk_statut IN (".$db->sanitize($db->escape($search_status)).
")";
864if ($search_date_order_start) {
865 $sql .=
" AND cf.date_commande >= '".$db->idate($search_date_order_start).
"'";
867if ($search_date_order_end) {
868 $sql .=
" AND cf.date_commande <= '".$db->idate($search_date_order_end).
"'";
870if ($search_date_delivery_start) {
871 $sql .=
" AND cf.date_livraison >= '".$db->idate($search_date_delivery_start).
"'";
873if ($search_date_delivery_end) {
874 $sql .=
" AND cf.date_livraison <= '".$db->idate($search_date_delivery_end).
"'";
876if ($search_date_valid_start) {
877 $sql .=
" AND cf.date_valid >= '".$db->idate($search_date_valid_start).
"'";
879if ($search_date_valid_end) {
880 $sql .=
" AND cf.date_valid <= '".$db->idate($search_date_valid_end).
"'";
882if ($search_date_approve_start) {
883 $sql .=
" AND cf.date_livraison >= '".$db->idate($search_date_approve_start).
"'";
885if ($search_date_approve_end) {
886 $sql .=
" AND cf.date_livraison <= '".$db->idate($search_date_approve_end).
"'";
897if ($search_country) {
898 $sql .=
" AND s.fk_pays IN (".$db->sanitize($db->escape($search_country)).
')';
900if ($search_type_thirdparty !=
'' && $search_type_thirdparty > 0) {
901 $sql .=
" AND s.fk_typent IN (".$db->sanitize($db->escape($search_type_thirdparty)).
')';
906if ($search_user > 0) {
907 $sql .=
" AND EXISTS (";
908 $sql .=
" SELECT ec.rowid ";
909 $sql .=
" FROM " . MAIN_DB_PREFIX .
"element_contact as ec";
910 $sql .=
" INNER JOIN " . MAIN_DB_PREFIX .
"c_type_contact as tc ON tc.rowid = ec.fk_c_type_contact";
911 $sql .=
" WHERE ec.element_id = cf.rowid AND ec.fk_socpeople = " . ((int) $search_user);
912 $sql .=
" AND tc.element = 'order_supplier' AND tc.source = 'internal'";
915if ($search_total_ht !=
'') {
918if ($search_total_tva !=
'') {
921if ($search_total_ttc !=
'') {
924if ($search_multicurrency_code !=
'') {
925 $sql .=
" AND cf.multicurrency_code = '".$db->escape($search_multicurrency_code).
"'";
927if ($search_multicurrency_tx !=
'') {
928 $sql .=
natural_search(
'cf.multicurrency_tx', $search_multicurrency_tx, 1);
930if ($search_multicurrency_montant_ht !=
'') {
931 $sql .=
natural_search(
'cf.multicurrency_total_ht', $search_multicurrency_montant_ht, 1);
933if ($search_multicurrency_montant_tva !=
'') {
934 $sql .=
natural_search(
'cf.multicurrency_total_tva', $search_multicurrency_montant_tva, 1);
936if ($search_multicurrency_montant_ttc !=
'') {
937 $sql .=
natural_search(
'cf.multicurrency_total_ttc', $search_multicurrency_montant_ttc, 1);
939if ($search_project_ref !=
'') {
943if ($search_sale && $search_sale !=
'-1') {
944 if ($search_sale == -2) {
945 $sql .=
" AND NOT EXISTS (SELECT sc.fk_soc FROM ".MAIN_DB_PREFIX.
"societe_commerciaux as sc WHERE sc.fk_soc = cf.fk_soc)";
946 } elseif ($search_sale > 0) {
947 $sql .=
" AND EXISTS (SELECT sc.fk_soc FROM ".MAIN_DB_PREFIX.
"societe_commerciaux as sc WHERE sc.fk_soc = cf.fk_soc AND sc.fk_user = ".((int) $search_sale).
")";
951$searchCategoryProductOperator = -1;
952$searchCategoryProductList = array($search_product_category);
953if (!empty($searchCategoryProductList)) {
954 $searchCategoryProductSqlList = array();
955 $listofcategoryid =
'';
956 foreach ($searchCategoryProductList as $searchCategoryProduct) {
957 if (intval($searchCategoryProduct) == -2) {
958 $searchCategoryProductSqlList[] =
"NOT EXISTS (SELECT ck.fk_product FROM ".MAIN_DB_PREFIX.
"categorie_product as ck, ".MAIN_DB_PREFIX.
"commande_fournisseurdet as cd WHERE cd.fk_commande = cf.rowid AND cd.fk_product = ck.fk_product)";
959 } elseif (intval($searchCategoryProduct) > 0) {
960 if ($searchCategoryProductOperator == 0) {
961 $searchCategoryProductSqlList[] =
" EXISTS (SELECT ck.fk_product FROM ".MAIN_DB_PREFIX.
"categorie_product as ck, ".MAIN_DB_PREFIX.
"commande_fournisseurdet as cd WHERE cd.fk_commande = cf.rowid AND cd.fk_product = ck.fk_product AND ck.fk_categorie = ".((int) $searchCategoryProduct).
")";
963 $listofcategoryid .= ($listofcategoryid ?
', ' :
'') .((
int) $searchCategoryProduct);
967 if ($listofcategoryid) {
968 $searchCategoryProductSqlList[] =
" EXISTS (SELECT ck.fk_product FROM ".MAIN_DB_PREFIX.
"categorie_product as ck, ".MAIN_DB_PREFIX.
"commande_fournisseurdet as cd WHERE cd.fk_commande = cf.rowid AND cd.fk_product = ck.fk_product AND ck.fk_categorie IN (".$db->sanitize($listofcategoryid).
"))";
970 if ($searchCategoryProductOperator == 1) {
971 if (!empty($searchCategoryProductSqlList)) {
972 $sql .=
" AND (".implode(
' OR ', $searchCategoryProductSqlList).
")";
975 if (!empty($searchCategoryProductSqlList)) {
976 $sql .=
" AND (".implode(
' AND ', $searchCategoryProductSqlList).
")";
981include DOL_DOCUMENT_ROOT.
'/core/tpl/extrafields_list_search_sql.tpl.php';
983$parameters = array();
984$reshook = $hookmanager->executeHooks(
'printFieldListWhere', $parameters, $object);
985$sql .= $hookmanager->resPrint;
988$nbtotalofrecords =
'';
991 $sqlforcount = preg_replace(
'/^'.preg_quote($sqlfields,
'/').
'/',
'SELECT COUNT(*) as nbtotalofrecords', $sql);
992 $sqlforcount = preg_replace(
'/GROUP BY .*$/',
'', $sqlforcount);
993 $resql = $db->query($sqlforcount);
995 $objforcount = $db->fetch_object($resql);
996 $nbtotalofrecords = $objforcount->nbtotalofrecords;
1001 if (($page * $limit) > $nbtotalofrecords) {
1008$sql .= $db->order($sortfield, $sortorder);
1010 $sql .= $db->plimit($limit + 1, $offset);
1014$resql = $db->query($sql);
1016 $num = $db->num_rows($resql);
1018 $arrayofselected = is_array($toselect) ? $toselect : array();
1020 if ($num == 1 &&
getDolGlobalString(
'MAIN_SEARCH_DIRECT_OPEN_IF_ONLY_ONE') && $search_all) {
1021 $obj = $db->fetch_object($resql);
1023 header(
"Location: ".DOL_URL_ROOT.
'/fourn/commande/card.php?id='.$id);
1027 llxHeader(
'', $title, $help_url,
'', 0, 0,
'',
'',
'',
'bodyforlist mod-supplier-order page-list');
1030 if (!empty($mode)) {
1031 $param .=
'&mode='.urlencode($mode);
1033 if (!empty($contextpage) && $contextpage != $_SERVER[
"PHP_SELF"]) {
1034 $param .=
'&contextpage='.urlencode($contextpage);
1036 if ($limit > 0 && $limit != $conf->liste_limit) {
1037 $param .=
'&limit='.((int) $limit);
1040 $param .=
'&search_all='.urlencode($search_all);
1043 $param .=
'&socid='.urlencode((
string) ($socid));
1046 $param .=
"&search_all=".urlencode($search_all);
1048 if ($search_date_order_startday) {
1049 $param .=
'&search_date_order_startday='.urlencode((
string) ($search_date_order_startday));
1051 if ($search_date_order_startmonth) {
1052 $param .=
'&search_date_order_startmonth='.urlencode((
string) ($search_date_order_startmonth));
1054 if ($search_date_order_startyear) {
1055 $param .=
'&search_date_order_startyear='.urlencode((
string) ($search_date_order_startyear));
1057 if ($search_date_order_endday) {
1058 $param .=
'&search_date_order_endday='.urlencode((
string) ($search_date_order_endday));
1060 if ($search_date_order_endmonth) {
1061 $param .=
'&search_date_order_endmonth='.urlencode((
string) ($search_date_order_endmonth));
1063 if ($search_date_order_endyear) {
1064 $param .=
'&search_date_order_endyear='.urlencode((
string) ($search_date_order_endyear));
1066 if ($search_date_delivery_startday) {
1067 $param .=
'&search_date_delivery_startday='.urlencode((
string) ($search_date_delivery_startday));
1069 if ($search_date_delivery_startmonth) {
1070 $param .=
'&search_date_delivery_startmonth='.urlencode((
string) ($search_date_delivery_startmonth));
1072 if ($search_date_delivery_startyear) {
1073 $param .=
'&search_date_delivery_startyear='.urlencode((
string) ($search_date_delivery_startyear));
1075 if ($search_date_delivery_endday) {
1076 $param .=
'&search_date_delivery_endday='.urlencode((
string) ($search_date_delivery_endday));
1078 if ($search_date_delivery_endmonth) {
1079 $param .=
'&search_date_delivery_endmonth='.urlencode((
string) ($search_date_delivery_endmonth));
1081 if ($search_date_delivery_endyear) {
1082 $param .=
'&search_date_delivery_endyear='.urlencode((
string) ($search_date_delivery_endyear));
1084 if ($search_date_valid_startday) {
1085 $param .=
'&search_date_valid_startday='.urlencode((
string) ($search_date_valid_startday));
1087 if ($search_date_valid_startmonth) {
1088 $param .=
'&search_date_valid_startmonth='.urlencode((
string) ($search_date_valid_startmonth));
1090 if ($search_date_valid_startyear) {
1091 $param .=
'&search_date_valid_startyear='.urlencode((
string) ($search_date_valid_startyear));
1093 if ($search_date_valid_endday) {
1094 $param .=
'&search_date_valid_endday='.urlencode((
string) ($search_date_valid_endday));
1096 if ($search_date_valid_endmonth) {
1097 $param .=
'&search_date_valid_endmonth='.urlencode((
string) ($search_date_valid_endmonth));
1099 if ($search_date_valid_endyear) {
1100 $param .=
'&search_date_valid_endyear='.urlencode((
string) ($search_date_valid_endyear));
1102 if ($search_date_approve_startday) {
1103 $param .=
'&search_date_approve_startday='.urlencode((
string) ($search_date_approve_startday));
1105 if ($search_date_approve_startmonth) {
1106 $param .=
'&search_date_approve_startmonth='.urlencode((
string) ($search_date_approve_startmonth));
1108 if ($search_date_approve_startyear) {
1109 $param .=
'&search_date_approve_startyear='.urlencode((
string) ($search_date_approve_startyear));
1111 if ($search_date_approve_endday) {
1112 $param .=
'&search_date_approve_endday='.urlencode((
string) ($search_date_approve_endday));
1114 if ($search_date_approve_endmonth) {
1115 $param .=
'&search_date_approve_endmonth='.urlencode((
string) ($search_date_approve_endmonth));
1117 if ($search_date_approve_endyear) {
1118 $param .=
'&search_date_approve_endyear='.urlencode((
string) ($search_date_approve_endyear));
1121 $param .=
'&search_ref='.urlencode($search_ref);
1123 if ($search_company) {
1124 $param .=
'&search_company='.urlencode($search_company);
1126 if ($search_company_alias) {
1127 $param .=
'&search_company_alias='.urlencode($search_company_alias);
1129 if ($search_user > 0) {
1130 $param .=
'&search_user='.urlencode((
string) ($search_user));
1132 if ($search_request_author) {
1133 $param .=
'&search_request_author='.urlencode($search_request_author);
1135 if ($search_sale > 0) {
1136 $param .=
'&search_sale='.urlencode($search_sale);
1138 if ($search_total_ht !=
'') {
1139 $param .=
'&search_total_ht='.urlencode($search_total_ht);
1141 if ($search_total_ttc !=
'') {
1142 $param .=
"&search_total_ttc=".urlencode($search_total_ttc);
1144 if ($search_multicurrency_code !=
'') {
1145 $param .=
'&search_multicurrency_code='.urlencode($search_multicurrency_code);
1147 if ($search_multicurrency_tx !=
'') {
1148 $param .=
'&search_multicurrency_tx='.urlencode($search_multicurrency_tx);
1150 if ($search_multicurrency_montant_ht !=
'') {
1151 $param .=
'&search_multicurrency_montant_ht='.urlencode($search_multicurrency_montant_ht);
1153 if ($search_multicurrency_montant_tva !=
'') {
1154 $param .=
'&search_multicurrency_montant_tva='.urlencode($search_multicurrency_montant_tva);
1156 if ($search_multicurrency_montant_ttc !=
'') {
1157 $param .=
'&search_multicurrency_montant_ttc='.urlencode($search_multicurrency_montant_ttc);
1159 if ($search_refsupp) {
1160 $param .=
"&search_refsupp=".urlencode($search_refsupp);
1162 if ($search_status !=
'' && $search_status !=
'-1') {
1163 $param .=
"&search_status=".urlencode($search_status);
1165 if ($search_project_ref >= 0) {
1166 $param .=
"&search_project_ref=".urlencode($search_project_ref);
1168 if ($search_billed !=
'') {
1169 $param .=
"&search_billed=".urlencode($search_billed);
1172 $param .=
'&show_files='.urlencode((
string) ($show_files));
1174 if ($optioncss !=
'') {
1175 $param .=
'&optioncss='.urlencode($optioncss);
1177 if ($search_type_thirdparty !=
'' && $search_type_thirdparty > 0) {
1178 $param .=
'&search_type_thirdparty='.urlencode((
string) ($search_type_thirdparty));
1182 include DOL_DOCUMENT_ROOT.
'/core/tpl/extrafields_list_search_param.tpl.php';
1184 $parameters = array(
'param' => &$param);
1185 $reshook = $hookmanager->executeHooks(
'printFieldListSearchParam', $parameters, $object);
1186 $param .= $hookmanager->resPrint;
1189 $arrayofmassactions = array(
1190 'generate_doc' =>
img_picto(
'',
'pdf',
'class="pictofixedwidth"').$langs->trans(
"ReGeneratePDF"),
1191 'builddoc' =>
img_picto(
'',
'pdf',
'class="pictofixedwidth"').$langs->trans(
"PDFMerge"),
1192 'presend' =>
img_picto(
'',
'email',
'class="pictofixedwidth"').$langs->trans(
"SendByMail"),
1195 if ($permissiontovalidate) {
1196 if ($permissiontoapprove && !
getDolGlobalString(
'SUPPLIER_ORDER_NO_DIRECT_APPROVE')) {
1197 $arrayofmassactions[
'prevalidate'] =
img_picto(
'',
'check',
'class="pictofixedwidth"').$langs->trans(
"ValidateAndApprove");
1199 $arrayofmassactions[
'prevalidate'] =
img_picto(
'',
'check',
'class="pictofixedwidth"').$langs->trans(
"Validate");
1203 if ($user->hasRight(
'fournisseur',
'facture',
'creer') || $user->hasRight(
"supplier_invoice",
"creer")) {
1204 $arrayofmassactions[
'createbills'] =
img_picto(
'',
'supplier_invoice',
'class="pictofixedwidth"').$langs->trans(
"CreateInvoiceForThisSupplier");
1206 if ($permissiontodelete) {
1207 $arrayofmassactions[
'predelete'] =
img_picto(
'',
'delete',
'class="pictofixedwidth"').$langs->trans(
"Delete");
1209 if (in_array($massaction, array(
'presend',
'predelete',
'createbills'))) {
1210 $arrayofmassactions = array();
1212 $massactionbutton = $form->selectMassAction(
'', $arrayofmassactions);
1214 $url = DOL_URL_ROOT.
'/fourn/commande/card.php?action=create';
1216 $url .=
'&socid='.((int) $socid);
1217 $url .=
'&backtopage='.urlencode(DOL_URL_ROOT.
'/fourn/commande/list.php?socid='.((
int) $socid));
1219 $newcardbutton =
'';
1220 $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'));
1221 $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'));
1223 $newcardbutton .=
dolGetButtonTitle($langs->trans(
'NewSupplierOrderShort'),
'',
'fa fa-plus-circle', $url,
'', $permissiontoadd);
1226 print
'<form method="POST" id="searchFormList" action="'.$_SERVER[
"PHP_SELF"].
'">';
1227 if ($optioncss !=
'') {
1228 print
'<input type="hidden" name="optioncss" value="'.$optioncss.
'">';
1230 print
'<input type="hidden" name="token" value="'.newToken().
'">';
1231 print
'<input type="hidden" name="formfilteraction" id="formfilteraction" value="list">';
1232 print
'<input type="hidden" name="action" value="list">';
1233 print
'<input type="hidden" name="sortfield" value="'.$sortfield.
'">';
1234 print
'<input type="hidden" name="sortorder" value="'.$sortorder.
'">';
1235 print
'<input type="hidden" name="contextpage" value="'.$contextpage.
'">';
1236 print
'<input type="hidden" name="socid" value="'.$socid.
'">';
1237 print
'<input type="hidden" name="mode" value="'.$mode.
'">';
1239 print_barre_liste($title, $page, $_SERVER[
"PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords,
'supplier_order', 0, $newcardbutton,
'', $limit, 0, 0, 1);
1241 $topicmail =
"SendOrderRef";
1242 $modelmail =
"order_supplier_send";
1244 $trackid =
'sord'.$object->id;
1245 include DOL_DOCUMENT_ROOT.
'/core/tpl/massactions_pre.tpl.php';
1247 if ($massaction ==
'prevalidate') {
1248 print $form->formconfirm($_SERVER[
"PHP_SELF"], $langs->trans(
"ConfirmMassValidation"), $langs->trans(
"ConfirmMassValidationQuestion"),
"validate",
null,
'', 0, 200, 500, 1);
1251 if ($massaction ==
'createbills') {
1253 print
'<input type="hidden" name="massaction" value="confirm_createsupplierbills">';
1255 print
'<table class="noborder centpercent">';
1257 print
'<td class="titlefield">';
1258 print $langs->trans(
'DateInvoice');
1261 print $form->selectDate(
'',
'', 0, 0, 0,
'', 1, 1);
1266 print $langs->trans(
'CreateOneBillByThird');
1269 print $form->selectyesno(
'createbills_onebythird',
'', 1);
1274 print $langs->trans(
'ValidateInvoices');
1277 print $form->selectyesno(
'validate_invoices', 1, 1);
1282 print
'<div class="center">';
1283 print
'<input type="submit" class="button" id="createbills" name="createbills" value="'.$langs->trans(
'CreateInvoiceForThisCustomer').
'"> ';
1284 print
'<input type="submit" class="button button-cancel" id="cancel" name="cancel" value="'.$langs->trans(
"Cancel").
'">';
1291 foreach ($fieldstosearchall as $key => $val) {
1292 $fieldstosearchall[$key] = $langs->trans($val);
1294 print
'<div class="divsearchfieldfilter">'.$langs->trans(
"FilterOnInto", $search_all).implode(
', ', $fieldstosearchall).
'</div>';
1297 $moreforfilter =
'';
1300 if ($user->hasRight(
"user",
"user",
"lire")) {
1301 $langs->load(
"commercial");
1302 $moreforfilter .=
'<div class="divsearchfield">';
1303 $tmptitle = $langs->trans(
'ThirdPartiesOfSaleRepresentative');
1304 $moreforfilter .=
img_picto($tmptitle,
'user',
'class="pictofixedwidth"').$formother->select_salesrepresentatives($search_sale,
'search_sale', $user, 0, $tmptitle,
'maxwidth250 widthcentpercentminusx');
1305 $moreforfilter .=
'</div>';
1308 if ($user->hasRight(
"user",
"user",
"lire")) {
1309 $moreforfilter .=
'<div class="divsearchfield">';
1310 $tmptitle = $langs->trans(
'LinkedToSpecificUsers');
1311 $moreforfilter .=
img_picto($tmptitle,
'user',
'class="pictofixedwidth"').$form->select_dolusers($search_user,
'search_user', $tmptitle,
'', 0,
'',
'', 0, 0, 0,
'', 0,
'',
'maxwidth250 widthcentpercentminusx');
1312 $moreforfilter .=
'</div>';
1315 if (isModEnabled(
'category') && $user->hasRight(
'categorie',
'lire') && ($user->hasRight(
'produit',
'lire') || $user->hasRight(
'service',
'lire'))) {
1316 include_once DOL_DOCUMENT_ROOT.
'/categories/class/categorie.class.php';
1317 $moreforfilter .=
'<div class="divsearchfield">';
1318 $tmptitle = $langs->trans(
'IncludingProductWithTag');
1319 $cate_arbo = $form->select_all_categories(Categorie::TYPE_PRODUCT,
null,
'parent',
null,
null, 1);
1320 $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);
1321 $moreforfilter .=
'</div>';
1323 $parameters = array();
1324 $reshook = $hookmanager->executeHooks(
'printFieldPreListTitle', $parameters, $object, $action);
1325 if (empty($reshook)) {
1326 $moreforfilter .= $hookmanager->resPrint;
1328 $moreforfilter = $hookmanager->resPrint;
1331 if (!empty($moreforfilter)) {
1332 print
'<div class="liste_titre liste_titre_bydiv centpercent">';
1333 print $moreforfilter;
1337 $varpage = empty($contextpage) ? $_SERVER[
"PHP_SELF"] : $contextpage;
1338 $selectedfields = $form->multiSelectArrayWithCheckbox(
'selectedfields', $arrayfields, $varpage,
getDolGlobalString(
'MAIN_CHECKBOX_LEFT_COLUMN'));
1339 $selectedfields .= $form->showCheckAddButtons(
'checkforselect', 1);
1342 $selectedfields .=
'<script>';
1343 $selectedfields .=
' $(document).ready(function() {';
1344 $selectedfields .=
' console.log("Autoclick on checkforselects");';
1345 $selectedfields .=
' $("#checkforselects").click();';
1346 $selectedfields .=
' $("#massaction").val("createbills").change();';
1347 $selectedfields .=
' });';
1348 $selectedfields .=
'</script>';
1351 print
'<div class="div-table-responsive">';
1352 print
'<table class="tagtable nobottomiftotal liste'.($moreforfilter ?
" listwithfilterbefore" :
"").
'">'.
"\n";
1354 print
'<tr class="liste_titre_filter">';
1357 print
'<td class="liste_titre middle">';
1358 $searchpicto = $form->showFilterButtons(
'left');
1363 if (!empty($arrayfields[
'cf.ref'][
'checked'])) {
1364 print
'<td class="liste_titre"><input size="8" type="text" class="flat maxwidth75" name="search_ref" value="'.$search_ref.
'"></td>';
1367 if (!empty($arrayfields[
'cf.ref_supplier'][
'checked'])) {
1368 print
'<td class="liste_titre"><input type="text" class="flat maxwidth75" name="search_refsupp" value="'.$search_refsupp.
'"></td>';
1371 if (!empty($arrayfields[
'cf.fk_projet'][
'checked'])) {
1372 print
'<td class="liste_titre"><input type="text" class="flat maxwidth100" name="search_project_ref" value="'.$search_project_ref.
'"></td>';
1375 if (!empty($arrayfields[
'u.login'][
'checked'])) {
1376 print
'<td class="liste_titre">';
1377 print
'<input type="text" class="flat" size="6" name="search_request_author" value="'.$search_request_author.
'">';
1381 if (!empty($arrayfields[
'cf.fk_soc'][
'checked'])) {
1382 print
'<td class="liste_titre"><input type="text" size="6" class="flat" name="search_company" value="'.$search_company.
'"></td>';
1385 if (!empty($arrayfields[
's.name_alias'][
'checked'])) {
1386 print
'<td class="liste_titre"><input type="text" size="6" class="flat" name="search_company_alias" value="'.$search_company_alias.
'"></td>';
1389 if (!empty($arrayfields[
's.town'][
'checked'])) {
1390 print
'<td class="liste_titre"><input class="flat maxwidth50" type="text" name="search_town" value="'.$search_town.
'"></td>';
1393 if (!empty($arrayfields[
's.zip'][
'checked'])) {
1394 print
'<td class="liste_titre"><input class="flat maxwidth50" type="text" name="search_zip" value="'.$search_zip.
'"></td>';
1397 if (!empty($arrayfields[
'state.nom'][
'checked'])) {
1398 print
'<td class="liste_titre">';
1399 print
'<input class="flat maxwidth50" type="text" name="search_state" value="'.dol_escape_htmltag($search_state).
'">';
1403 if (!empty($arrayfields[
'country.code_iso'][
'checked'])) {
1404 print
'<td class="liste_titre center">';
1405 print $form->select_country($search_country,
'search_country',
'', 0,
'minwidth100imp maxwidth100');
1409 if (!empty($arrayfields[
'typent.code'][
'checked'])) {
1410 print
'<td class="liste_titre maxwidthonsmartphone center">';
1411 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);
1415 if (!empty($arrayfields[
'cf.date_commande'][
'checked'])) {
1416 print
'<td class="liste_titre center">';
1417 print
'<div class="nowrapfordate">';
1418 print $form->selectDate($search_date_order_start ? $search_date_order_start : -1,
'search_date_order_start', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
'From'));
1420 print
'<div class="nowrapfordate">';
1421 print $form->selectDate($search_date_order_end ? $search_date_order_end : -1,
'search_date_order_end', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
'to'));
1426 if (!empty($arrayfields[
'cf.date_livraison'][
'checked'])) {
1427 print
'<td class="liste_titre center">';
1428 print
'<div class="nowrapfordate">';
1429 print $form->selectDate($search_date_delivery_start ? $search_date_delivery_start : -1,
'search_date_delivery_start', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
'From'));
1431 print
'<div class="nowrapfordate">';
1432 print $form->selectDate($search_date_delivery_end ? $search_date_delivery_end : -1,
'search_date_delivery_end', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
'to'));
1436 if (!empty($arrayfields[
'cf.total_ht'][
'checked'])) {
1438 print
'<td class="liste_titre right">';
1439 print
'<input class="flat" type="text" size="5" name="search_total_ht" value="'.$search_total_ht.
'">';
1442 if (!empty($arrayfields[
'cf.total_tva'][
'checked'])) {
1444 print
'<td class="liste_titre right">';
1445 print
'<input class="flat" type="text" size="5" name="search_total_tva" value="'.$search_total_tva.
'">';
1448 if (!empty($arrayfields[
'cf.total_ttc'][
'checked'])) {
1450 print
'<td class="liste_titre right">';
1451 print
'<input class="flat" type="text" size="5" name="search_total_ttc" value="'.$search_total_ttc.
'">';
1454 if (!empty($arrayfields[
'cf.multicurrency_code'][
'checked'])) {
1456 print
'<td class="liste_titre">';
1457 print $form->selectMultiCurrency($search_multicurrency_code,
'search_multicurrency_code', 1);
1460 if (!empty($arrayfields[
'cf.multicurrency_tx'][
'checked'])) {
1462 print
'<td class="liste_titre">';
1463 print
'<input class="flat" type="text" size="4" name="search_multicurrency_tx" value="'.dol_escape_htmltag($search_multicurrency_tx).
'">';
1466 if (!empty($arrayfields[
'cf.multicurrency_total_ht'][
'checked'])) {
1468 print
'<td class="liste_titre right">';
1469 print
'<input class="flat" type="text" size="4" name="search_multicurrency_montant_ht" value="'.dol_escape_htmltag($search_multicurrency_montant_ht).
'">';
1472 if (!empty($arrayfields[
'cf.multicurrency_total_tva'][
'checked'])) {
1474 print
'<td class="liste_titre right">';
1475 print
'<input class="flat" type="text" size="4" name="search_multicurrency_montant_tva" value="'.dol_escape_htmltag($search_multicurrency_montant_tva).
'">';
1478 if (!empty($arrayfields[
'cf.multicurrency_total_ttc'][
'checked'])) {
1480 print
'<td class="liste_titre right">';
1481 print
'<input class="flat" type="text" size="4" name="search_multicurrency_montant_ttc" value="'.dol_escape_htmltag($search_multicurrency_montant_ttc).
'">';
1485 include DOL_DOCUMENT_ROOT.
'/core/tpl/extrafields_list_search_input.tpl.php';
1488 $parameters = array(
'arrayfields' => $arrayfields);
1489 $reshook = $hookmanager->executeHooks(
'printFieldListOption', $parameters);
1490 print $hookmanager->resPrint;
1492 if (!empty($arrayfields[
'cf.date_creation'][
'checked'])) {
1493 print
'<td class="liste_titre">';
1497 if (!empty($arrayfields[
'cf.tms'][
'checked'])) {
1498 print
'<td class="liste_titre">';
1502 if (!empty($arrayfields[
'cf.billed'][
'checked'])) {
1503 print
'<td class="liste_titre center parentonrightofpage">';
1504 print $form->selectyesno(
'search_billed', $search_billed, 1,
false, 1, 1,
'search_status width100 onrightofpage');
1508 if (!empty($arrayfields[
'cf.fk_statut'][
'checked'])) {
1509 print
'<td class="liste_titre center parentonrightofpage">';
1510 $formorder->selectSupplierOrderStatus($search_status, 1,
'search_status',
'search_status width100 onrightofpage');
1514 if (!empty($arrayfields[
'cf.date_valid'][
'checked'])) {
1515 print
'<td class="liste_titre center">';
1516 print
'<div class="nowrapfordate">';
1517 print $form->selectDate($search_date_valid_start ? $search_date_valid_start : -1,
'search_date_valid_start', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
'From'));
1519 print
'<div class="nowrapfordate">';
1520 print $form->selectDate($search_date_valid_end ? $search_date_valid_end : -1,
'search_date_valid_end', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
'to'));
1525 if (!empty($arrayfields[
'cf.date_approve'][
'checked'])) {
1526 print
'<td class="liste_titre center">';
1527 print
'<div class="nowrapfordate">';
1528 print $form->selectDate($search_date_approve_start ? $search_date_approve_start : -1,
'search_date_approve_start', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
'From'));
1530 print
'<div class="nowrapfordate">';
1531 print $form->selectDate($search_date_approve_end ? $search_date_approve_end : -1,
'search_date_approve_end', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
'to'));
1536 if (!empty($arrayfields[
'cf.note_public'][
'checked'])) {
1537 print
'<td class="liste_titre">';
1541 if (!empty($arrayfields[
'cf.note_private'][
'checked'])) {
1542 print
'<td class="liste_titre">';
1547 print
'<td class="liste_titre center">';
1548 $searchpicto = $form->showFilterButtons();
1555 $totalarray = array();
1556 $totalarray[
'nbfield'] = 0;
1559 print
'<tr class="liste_titre">';
1561 print_liste_field_titre($selectedfields, $_SERVER[
"PHP_SELF"],
"",
'',
'',
'', $sortfield, $sortorder,
'center maxwidthsearch ');
1562 $totalarray[
'nbfield']++;
1564 if (!empty($arrayfields[
'cf.ref'][
'checked'])) {
1565 print_liste_field_titre($arrayfields[
'cf.ref'][
'label'], $_SERVER[
"PHP_SELF"],
"cf.ref",
"", $param,
'', $sortfield, $sortorder);
1566 $totalarray[
'nbfield']++;
1568 if (!empty($arrayfields[
'cf.ref_supplier'][
'checked'])) {
1569 print_liste_field_titre($arrayfields[
'cf.ref_supplier'][
'label'], $_SERVER[
"PHP_SELF"],
"cf.ref_supplier",
"", $param,
'', $sortfield, $sortorder,
'tdoverflowmax100imp ');
1570 $totalarray[
'nbfield']++;
1572 if (!empty($arrayfields[
'cf.fk_projet'][
'checked'])) {
1573 print_liste_field_titre($arrayfields[
'cf.fk_projet'][
'label'], $_SERVER[
"PHP_SELF"],
"p.ref",
"", $param,
'', $sortfield, $sortorder);
1574 $totalarray[
'nbfield']++;
1576 if (!empty($arrayfields[
'u.login'][
'checked'])) {
1577 print_liste_field_titre($arrayfields[
'u.login'][
'label'], $_SERVER[
"PHP_SELF"],
"u.login",
"", $param,
'', $sortfield, $sortorder);
1578 $totalarray[
'nbfield']++;
1580 if (!empty($arrayfields[
'cf.fk_soc'][
'checked'])) {
1581 print_liste_field_titre($arrayfields[
'cf.fk_soc'][
'label'], $_SERVER[
"PHP_SELF"],
"s.nom",
"", $param,
'', $sortfield, $sortorder);
1582 $totalarray[
'nbfield']++;
1584 if (!empty($arrayfields[
's.name_alias'][
'checked'])) {
1585 print_liste_field_titre($arrayfields[
's.name_alias'][
'label'], $_SERVER[
"PHP_SELF"],
"s.name_alias",
"", $param,
'', $sortfield, $sortorder);
1586 $totalarray[
'nbfield']++;
1588 if (!empty($arrayfields[
's.town'][
'checked'])) {
1589 print_liste_field_titre($arrayfields[
's.town'][
'label'], $_SERVER[
"PHP_SELF"],
's.town',
'', $param,
'', $sortfield, $sortorder);
1590 $totalarray[
'nbfield']++;
1592 if (!empty($arrayfields[
's.zip'][
'checked'])) {
1593 print_liste_field_titre($arrayfields[
's.zip'][
'label'], $_SERVER[
"PHP_SELF"],
's.zip',
'', $param,
'', $sortfield, $sortorder);
1594 $totalarray[
'nbfield']++;
1596 if (!empty($arrayfields[
'state.nom'][
'checked'])) {
1597 print_liste_field_titre($arrayfields[
'state.nom'][
'label'], $_SERVER[
"PHP_SELF"],
"state.nom",
"", $param,
'', $sortfield, $sortorder);
1598 $totalarray[
'nbfield']++;
1600 if (!empty($arrayfields[
'country.code_iso'][
'checked'])) {
1601 print_liste_field_titre($arrayfields[
'country.code_iso'][
'label'], $_SERVER[
"PHP_SELF"],
"country.code_iso",
"", $param,
'', $sortfield, $sortorder,
'center ');
1602 $totalarray[
'nbfield']++;
1604 if (!empty($arrayfields[
'typent.code'][
'checked'])) {
1605 print_liste_field_titre($arrayfields[
'typent.code'][
'label'], $_SERVER[
"PHP_SELF"],
"typent.code",
"", $param,
'', $sortfield, $sortorder,
'center ');
1606 $totalarray[
'nbfield']++;
1608 if (!empty($arrayfields[
'cf.fk_author'][
'checked'])) {
1609 print_liste_field_titre($arrayfields[
'cf.fk_author'][
'label'], $_SERVER[
"PHP_SELF"],
"cf.fk_author",
"", $param,
'', $sortfield, $sortorder);
1610 $totalarray[
'nbfield']++;
1612 if (!empty($arrayfields[
'cf.date_commande'][
'checked'])) {
1613 print_liste_field_titre($arrayfields[
'cf.date_commande'][
'label'], $_SERVER[
"PHP_SELF"],
"cf.date_commande",
"", $param,
'', $sortfield, $sortorder,
'center ');
1614 $totalarray[
'nbfield']++;
1616 if (!empty($arrayfields[
'cf.date_livraison'][
'checked'])) {
1617 print_liste_field_titre($arrayfields[
'cf.date_livraison'][
'label'], $_SERVER[
"PHP_SELF"],
'cf.date_livraison',
'', $param,
'', $sortfield, $sortorder,
'center ');
1618 $totalarray[
'nbfield']++;
1620 if (!empty($arrayfields[
'cf.total_ht'][
'checked'])) {
1621 print_liste_field_titre($arrayfields[
'cf.total_ht'][
'label'], $_SERVER[
"PHP_SELF"],
"cf.total_ht",
"", $param,
'', $sortfield, $sortorder,
'right ');
1622 $totalarray[
'nbfield']++;
1624 if (!empty($arrayfields[
'cf.total_tva'][
'checked'])) {
1625 print_liste_field_titre($arrayfields[
'cf.total_tva'][
'label'], $_SERVER[
"PHP_SELF"],
"cf.total_tva",
"", $param,
'', $sortfield, $sortorder,
'right ');
1626 $totalarray[
'nbfield']++;
1628 if (!empty($arrayfields[
'cf.total_ttc'][
'checked'])) {
1629 print_liste_field_titre($arrayfields[
'cf.total_ttc'][
'label'], $_SERVER[
"PHP_SELF"],
"cf.total_ttc",
"", $param,
'', $sortfield, $sortorder,
'right ');
1630 $totalarray[
'nbfield']++;
1632 if (!empty($arrayfields[
'cf.multicurrency_code'][
'checked'])) {
1633 print_liste_field_titre($arrayfields[
'cf.multicurrency_code'][
'label'], $_SERVER[
'PHP_SELF'],
'cf.multicurrency_code',
'', $param,
'', $sortfield, $sortorder);
1634 $totalarray[
'nbfield']++;
1636 if (!empty($arrayfields[
'cf.multicurrency_tx'][
'checked'])) {
1637 print_liste_field_titre($arrayfields[
'cf.multicurrency_tx'][
'label'], $_SERVER[
'PHP_SELF'],
'cf.multicurrency_tx',
'', $param,
'', $sortfield, $sortorder);
1638 $totalarray[
'nbfield']++;
1640 if (!empty($arrayfields[
'cf.multicurrency_total_ht'][
'checked'])) {
1641 print_liste_field_titre($arrayfields[
'cf.multicurrency_total_ht'][
'label'], $_SERVER[
'PHP_SELF'],
'cf.multicurrency_total_ht',
'', $param,
'class="right"', $sortfield, $sortorder);
1642 $totalarray[
'nbfield']++;
1644 if (!empty($arrayfields[
'cf.multicurrency_total_tva'][
'checked'])) {
1645 print_liste_field_titre($arrayfields[
'cf.multicurrency_total_tva'][
'label'], $_SERVER[
'PHP_SELF'],
'cf.multicurrency_total_tva',
'', $param,
'class="right"', $sortfield, $sortorder);
1646 $totalarray[
'nbfield']++;
1648 if (!empty($arrayfields[
'cf.multicurrency_total_ttc'][
'checked'])) {
1649 print_liste_field_titre($arrayfields[
'cf.multicurrency_total_ttc'][
'label'], $_SERVER[
'PHP_SELF'],
'cf.multicurrency_total_ttc',
'', $param,
'class="right"', $sortfield, $sortorder);
1650 $totalarray[
'nbfield']++;
1653 include DOL_DOCUMENT_ROOT.
'/core/tpl/extrafields_list_search_title.tpl.php';
1655 $parameters = array(
'arrayfields' => $arrayfields,
'param' => $param,
'sortfield' => $sortfield,
'sortorder' => $sortorder);
1656 $reshook = $hookmanager->executeHooks(
'printFieldListTitle', $parameters);
1657 print $hookmanager->resPrint;
1658 if (!empty($arrayfields[
'cf.date_creation'][
'checked'])) {
1659 print_liste_field_titre($arrayfields[
'cf.date_creation'][
'label'], $_SERVER[
"PHP_SELF"],
"cf.date_creation",
"", $param,
'', $sortfield, $sortorder,
'center nowraponall ');
1660 $totalarray[
'nbfield']++;
1662 if (!empty($arrayfields[
'cf.tms'][
'checked'])) {
1663 print_liste_field_titre($arrayfields[
'cf.tms'][
'label'], $_SERVER[
"PHP_SELF"],
"cf.tms",
"", $param,
'', $sortfield, $sortorder,
'center nowraponall ');
1664 $totalarray[
'nbfield']++;
1666 if (!empty($arrayfields[
'cf.billed'][
'checked'])) {
1667 print_liste_field_titre($arrayfields[
'cf.billed'][
'label'], $_SERVER[
"PHP_SELF"],
'cf.billed',
'', $param,
'', $sortfield, $sortorder,
'center ');
1668 $totalarray[
'nbfield']++;
1670 if (!empty($arrayfields[
'cf.fk_statut'][
'checked'])) {
1671 print_liste_field_titre($arrayfields[
'cf.fk_statut'][
'label'], $_SERVER[
"PHP_SELF"],
"cf.fk_statut",
"", $param,
'', $sortfield, $sortorder,
'center ');
1672 $totalarray[
'nbfield']++;
1674 if (!empty($arrayfields[
'cf.date_valid'][
'checked'])) {
1675 print_liste_field_titre($arrayfields[
'cf.date_valid'][
'label'], $_SERVER[
"PHP_SELF"],
"cf.date_valid",
"", $param,
'', $sortfield, $sortorder,
'center ');
1676 $totalarray[
'nbfield']++;
1678 if (!empty($arrayfields[
'cf.date_approve'][
'checked'])) {
1679 print_liste_field_titre($arrayfields[
'cf.date_approve'][
'label'], $_SERVER[
"PHP_SELF"],
'cf.date_approve',
'', $param,
'', $sortfield, $sortorder,
'center ');
1680 $totalarray[
'nbfield']++;
1682 if (!empty($arrayfields[
'cf.note_public'][
'checked'])) {
1683 print_liste_field_titre($arrayfields[
'cf.note_public'][
'label'], $_SERVER[
"PHP_SELF"],
"cf.note_public",
"", $param,
'', $sortfield, $sortorder,
'center ');
1684 $totalarray[
'nbfield']++;
1686 if (!empty($arrayfields[
'cf.note_private'][
'checked'])) {
1687 print_liste_field_titre($arrayfields[
'cf.note_private'][
'label'], $_SERVER[
"PHP_SELF"],
"cf.note_private",
"", $param,
'', $sortfield, $sortorder,
'center ');
1688 $totalarray[
'nbfield']++;
1691 print_liste_field_titre($selectedfields, $_SERVER[
"PHP_SELF"],
"",
'',
'',
'', $sortfield, $sortorder,
'center maxwidthsearch ');
1692 $totalarray[
'nbfield']++;
1698 $productstat_cache = array();
1700 $userstatic =
new User($db);
1702 $projectstatic =
new Project($db);
1705 $savnbfield = $totalarray[
'nbfield'];
1706 $totalarray = array(
'nbfield' => 0,
'val' => array(),
'pos' => array());
1707 $totalarray[
'val'][
'cf.total_ht'] = 0;
1708 $totalarray[
'val'][
'cf.total_ttc'] = 0;
1709 $totalarray[
'val'][
'cf.total_tva'] = 0;
1711 $imaxinloop = ($limit ? min($num, $limit) : $num);
1712 while ($i < $imaxinloop) {
1713 $obj = $db->fetch_object($resql);
1721 $objectstatic->id = $obj->rowid;
1722 $objectstatic->ref = $obj->ref;
1723 $objectstatic->ref_supplier = $obj->ref_supplier;
1724 $objectstatic->socid = $obj->socid;
1725 $objectstatic->total_ht = $obj->total_ht;
1726 $objectstatic->total_tva = $obj->total_tva;
1727 $objectstatic->total_ttc = $obj->total_ttc;
1728 $objectstatic->date_commande = $db->jdate($obj->date_commande);
1729 $objectstatic->delivery_date = $db->jdate($obj->delivery_date);
1730 $objectstatic->note_public = $obj->note_public;
1731 $objectstatic->note_private = $obj->note_private;
1732 $objectstatic->statut = $obj->fk_statut;
1734 if ($mode ==
'kanban') {
1736 print
'<tr class="trkanban"><td colspan="'.$savnbfield.
'">';
1737 print
'<div class="box-flex-container kanban">';
1740 $thirdpartytmp->id = $obj->socid;
1741 $thirdpartytmp->name = $obj->name;
1742 $thirdpartytmp->email = $obj->email;
1743 $thirdpartytmp->name_alias = $obj->alias;
1744 $thirdpartytmp->client = $obj->client;
1745 $thirdpartytmp->fournisseur = $obj->fournisseur;
1747 print $objectstatic->getKanbanView(
'', array(
'thirdparty' => $thirdpartytmp->getNomUrl(
'supplier', 0, 0, -1),
'selected' => in_array($objectstatic->id, $arrayofselected)));
1748 if ($i == ($imaxinloop - 1)) {
1753 print
'<tr class="oddeven">';
1756 print
'<td class="nowrap center">';
1757 if ($massactionbutton || $massaction) {
1759 if (in_array($obj->rowid, $arrayofselected)) {
1762 print
'<input id="cb'.$obj->rowid.
'" class="flat checkforselect" type="checkbox" name="toselect[]" value="'.$obj->rowid.
'"'.($selected ?
' checked="checked"' :
'').
'>';
1767 if (!empty($arrayfields[
'cf.ref'][
'checked'])) {
1768 print
'<td class="nowrap">';
1771 print $objectstatic->getNomUrl(1,
'', 0, -1, 1);
1775 print $formfile->getDocumentsLink($objectstatic->element, $filename, $filedir);
1779 $totalarray[
'nbfield']++;
1783 if (!empty($arrayfields[
'cf.ref_supplier'][
'checked'])) {
1784 print
'<td class="tdoverflowmax150" title="'.dol_escape_htmltag($obj->ref_supplier).
'">'.
dol_escape_htmltag($obj->ref_supplier).
'</td>'.
"\n";
1786 $totalarray[
'nbfield']++;
1790 if (!empty($arrayfields[
'cf.fk_projet'][
'checked'])) {
1791 $projectstatic->id = $obj->project_id;
1792 $projectstatic->ref = $obj->project_ref;
1793 $projectstatic->title = $obj->project_title;
1795 if ($obj->project_id > 0) {
1796 print $projectstatic->getNomUrl(1);
1800 $totalarray[
'nbfield']++;
1804 $userstatic->id = $obj->fk_user_author;
1805 $userstatic->lastname = $obj->lastname;
1806 $userstatic->firstname = $obj->firstname;
1807 $userstatic->login = $obj->login;
1808 $userstatic->photo = $obj->photo;
1809 $userstatic->email = $obj->user_email;
1810 $userstatic->status = $obj->user_status;
1811 if (!empty($arrayfields[
'u.login'][
'checked'])) {
1812 print
'<td class="tdoverflowmax150">';
1813 if ($userstatic->id) {
1814 print $userstatic->getNomUrl(1);
1818 $totalarray[
'nbfield']++;
1822 if (!empty($arrayfields[
'cf.fk_soc'][
'checked'])) {
1823 print
'<td class="tdoverflowmax150">';
1824 $thirdpartytmp->id = $obj->socid;
1825 $thirdpartytmp->name = $obj->name;
1826 $thirdpartytmp->email = $obj->email;
1827 $thirdpartytmp->name_alias = $obj->alias;
1828 $thirdpartytmp->client = $obj->client;
1829 $thirdpartytmp->fournisseur = $obj->fournisseur;
1830 print $thirdpartytmp->getNomUrl(1,
'supplier', 0, 0, -1, empty($arrayfields[
's.name_alias'][
'checked']) ? 0 : 1);
1833 $totalarray[
'nbfield']++;
1837 if (!empty($arrayfields[
's.name_alias'][
'checked'])) {
1838 print
'<td class="tdoverflowmax150">';
1842 $totalarray[
'nbfield']++;
1846 if (!empty($arrayfields[
's.town'][
'checked'])) {
1851 $totalarray[
'nbfield']++;
1855 if (!empty($arrayfields[
's.zip'][
'checked'])) {
1860 $totalarray[
'nbfield']++;
1864 if (!empty($arrayfields[
'state.nom'][
'checked'])) {
1865 print
"<td>".$obj->state_name.
"</td>\n";
1867 $totalarray[
'nbfield']++;
1871 if (!empty($arrayfields[
'country.code_iso'][
'checked'])) {
1872 print
'<td class="center">';
1873 $tmparray =
getCountry($obj->fk_pays,
'all');
1874 print $tmparray[
'label'];
1877 $totalarray[
'nbfield']++;
1881 if (!empty($arrayfields[
'typent.code'][
'checked'])) {
1882 print
'<td class="center">';
1883 if (empty($typenArray)) {
1884 $typenArray = $formcompany->typent_array(1);
1886 print $typenArray[$obj->typent_code];
1889 $totalarray[
'nbfield']++;
1894 if (!empty($arrayfields[
'cf.date_commande'][
'checked'])) {
1895 print
'<td class="center">';
1897 if ($objectstatic->statut != $objectstatic::STATUS_ORDERSENT && $objectstatic->statut != $objectstatic::STATUS_RECEIVED_PARTIALLY) {
1898 if ($objectstatic->hasDelay()) {
1899 print
' '.img_picto($langs->trans(
"Late").
' : '.$objectstatic->showDelay(),
"warning");
1904 $totalarray[
'nbfield']++;
1908 if (!empty($arrayfields[
'cf.date_livraison'][
'checked'])) {
1909 print
'<td class="center">';
1911 if ($objectstatic->statut == $objectstatic::STATUS_ORDERSENT || $objectstatic->statut == $objectstatic::STATUS_RECEIVED_PARTIALLY) {
1912 if ($objectstatic->hasDelay()) {
1913 print
' '.img_picto($langs->trans(
"Late").
' : '.$objectstatic->showDelay(),
"warning");
1918 $totalarray[
'nbfield']++;
1922 if (!empty($arrayfields[
'cf.total_ht'][
'checked'])) {
1923 print
'<td class="right"><span class="amount">'.price($obj->total_ht).
"</span></td>\n";
1925 $totalarray[
'nbfield']++;
1928 $totalarray[
'pos'][$totalarray[
'nbfield']] =
'cf.total_ht';
1930 $totalarray[
'val'][
'cf.total_ht'] += $obj->total_ht;
1933 if (!empty($arrayfields[
'cf.total_tva'][
'checked'])) {
1934 print
'<td class="right"><span class="amount">'.price($obj->total_tva).
"</span></td>\n";
1936 $totalarray[
'nbfield']++;
1939 $totalarray[
'pos'][$totalarray[
'nbfield']] =
'cf.total_tva';
1941 $totalarray[
'val'][
'cf.total_tva'] += $obj->total_tva;
1944 if (!empty($arrayfields[
'cf.total_ttc'][
'checked'])) {
1945 print
'<td class="right"><span class="amount">'.price($obj->total_ttc).
"</span></td>\n";
1947 $totalarray[
'nbfield']++;
1950 $totalarray[
'pos'][$totalarray[
'nbfield']] =
'cf.total_ttc';
1952 $totalarray[
'val'][
'cf.total_ttc'] += $obj->total_ttc;
1956 if (!empty($arrayfields[
'cf.multicurrency_code'][
'checked'])) {
1957 print
'<td class="nowrap">'.$obj->multicurrency_code.
' - '.$langs->trans(
'Currency'.$obj->multicurrency_code).
"</td>\n";
1959 $totalarray[
'nbfield']++;
1964 if (!empty($arrayfields[
'cf.multicurrency_tx'][
'checked'])) {
1965 print
'<td class="nowrap">';
1966 $form->form_multicurrency_rate($_SERVER[
'PHP_SELF'].
'?id='.$obj->rowid, $obj->multicurrency_tx,
'none', $obj->multicurrency_code);
1969 $totalarray[
'nbfield']++;
1973 if (!empty($arrayfields[
'cf.multicurrency_total_ht'][
'checked'])) {
1974 print
'<td class="right nowrap"><span class="amount">'.price($obj->multicurrency_total_ht).
"</span></td>\n";
1976 $totalarray[
'nbfield']++;
1980 if (!empty($arrayfields[
'cf.multicurrency_total_tva'][
'checked'])) {
1981 print
'<td class="right nowrap"><span class="amount">'.price($obj->multicurrency_total_tva).
"</span></td>\n";
1983 $totalarray[
'nbfield']++;
1987 if (!empty($arrayfields[
'cf.multicurrency_total_ttc'][
'checked'])) {
1988 print
'<td class="right nowrap"><span class="amount">'.price($obj->multicurrency_total_ttc).
"</span></td>\n";
1990 $totalarray[
'nbfield']++;
1995 include DOL_DOCUMENT_ROOT.
'/core/tpl/extrafields_list_print_fields.tpl.php';
1997 $parameters = array(
'arrayfields' => $arrayfields,
'obj' => $obj,
'i' => $i,
'totalarray' => &$totalarray);
1998 $reshook = $hookmanager->executeHooks(
'printFieldListValue', $parameters);
1999 print $hookmanager->resPrint;
2001 if (!empty($arrayfields[
'cf.date_creation'][
'checked'])) {
2002 print
'<td class="center nowraponall">';
2003 print
dol_print_date($db->jdate($obj->date_creation),
'dayhour',
'tzuser');
2006 $totalarray[
'nbfield']++;
2010 if (!empty($arrayfields[
'cf.tms'][
'checked'])) {
2011 print
'<td class="center nowraponall">';
2012 print
dol_print_date($db->jdate($obj->date_modification),
'dayhour',
'tzuser');
2015 $totalarray[
'nbfield']++;
2019 if (!empty($arrayfields[
'cf.billed'][
'checked'])) {
2020 print
'<td class="center">'.yn($obj->billed).
'</td>';
2022 $totalarray[
'nbfield']++;
2026 if (!empty($arrayfields[
'cf.fk_statut'][
'checked'])) {
2027 print
'<td class="center nowrap">'.$objectstatic->LibStatut($obj->fk_statut, 5, $obj->billed).
'</td>';
2029 $totalarray[
'nbfield']++;
2034 if (!empty($arrayfields[
'cf.date_valid'][
'checked'])) {
2035 print
'<td class="center">';
2039 $totalarray[
'nbfield']++;
2043 if (!empty($arrayfields[
'cf.date_approve'][
'checked'])) {
2044 print
'<td class="center">';
2048 $totalarray[
'nbfield']++;
2052 if (!empty($arrayfields[
'cf.note_public'][
'checked'])) {
2053 print
'<td class="sensiblehtmlcontent center">';
2057 $totalarray[
'nbfield']++;
2062 if (!empty($arrayfields[
'cf.note_private'][
'checked'])) {
2063 print
'<td class="sensiblehtmlcontent center">';
2067 $totalarray[
'nbfield']++;
2073 print
'<td class="nowrap center">';
2074 if ($massactionbutton || $massaction) {
2076 if (in_array($obj->rowid, $arrayofselected)) {
2079 print
'<input id="cb'.$obj->rowid.
'" class="flat checkforselect" type="checkbox" name="toselect[]" value="'.$obj->rowid.
'"'.($selected ?
' checked="checked"' :
'').
'>';
2084 $totalarray[
'nbfield']++;
2089 $total += $obj->total_ht;
2090 $subtotal += $obj->total_ht;
2096 include DOL_DOCUMENT_ROOT.
'/core/tpl/list_print_total.tpl.php';
2101 foreach ($arrayfields as $key => $val) {
2102 if (!empty($val[
'checked'])) {
2106 print
'<tr><td colspan="'.$colspan.
'"><span class="opacitymedium">'.$langs->trans(
"NoRecordFound").
'</span></td></tr>';
2111 $parameters = array(
'arrayfields' => $arrayfields,
'sql' => $sql);
2112 $reshook = $hookmanager->executeHooks(
'printFieldListFooter', $parameters);
2113 print $hookmanager->resPrint;
2115 print
'</table>'.
"\n";
2118 print
'</form>'.
"\n";
2120 $hidegeneratedfilelistifempty = 1;
2121 if ($massaction ==
'builddoc' || $action ==
'remove_file' || $show_files) {
2122 $hidegeneratedfilelistifempty = 0;
2126 $urlsource = $_SERVER[
'PHP_SELF'].
'?sortfield='.$sortfield.
'&sortorder='.$sortorder;
2127 $urlsource .= str_replace(
'&',
'&', $param);
2129 $filedir = $diroutputmassaction;
2130 $genallowed = $permissiontoread;
2131 $delallowed = $permissiontoadd;
2133 print $formfile->showdocuments(
'massfilesarea_supplier_order',
'', $filedir, $urlsource, 0, $delallowed,
'', 1, 1, 0, 48, 1, $param, $title,
'',
'',
'',
null, $hidegeneratedfilelistifempty);
if( $user->socid > 0) if(! $user->hasRight('accounting', 'chartofaccount')) $object
if(!defined('NOREQUIRESOC')) if(!defined( 'NOREQUIRETRAN')) if(!defined('NOTOKENRENEWAL')) if(!defined( 'NOREQUIREMENU')) if(!defined('NOREQUIREHTML')) if(!defined( 'NOREQUIREAJAX')) llxHeader()
Empty header.
Class to manage predefined suppliers products.
Class to manage absolute discounts.
Class to manage suppliers invoices.
Class to manage suppliers.
Class to manage projects.
Class to manage third parties objects (customers, suppliers, prospects...)
Class to manage Dolibarr users.
getCountry($searchkey, $withcode='', $dbtouse=null, $outputlangs=null, $entconv=1, $searchlabel='')
Return country label, code or id from an id, code or label.
dol_mktime($hour, $minute, $second, $month, $day, $year, $gm='auto', $check=1)
Return a timestamp date built from detailed information (by default a local PHP server timestamp) Rep...
img_picto($titlealt, $picto, $moreatt='', $pictoisfullpath=0, $srconly=0, $notitle=0, $alt='', $morecss='', $marginleftonlyshort=2)
Show picto whatever it's its name (generic function)
GETPOSTINT($paramname, $method=0)
Return the value of a $_GET or $_POST supervariable, converted into integer.
dolPrintHTML($s, $allowiframe=0)
Return a string (that can be on several lines) ready to be output on a HTML page.
dolGetButtonTitle($label, $helpText='', $iconClass='fa fa-file', $url='', $id='', $status=1, $params=array())
Function dolGetButtonTitle : this kind of buttons are used in title in list.
dol_eval($s, $returnvalue=1, $hideerrors=1, $onlysimplestring='1')
Replace eval function to add more security.
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...
GETPOSTISARRAY($paramname, $method=0)
Return true if the parameter $paramname is submit from a POST OR GET as an array.
dol_now($mode='auto')
Return date for now.
getDolGlobalInt($key, $default=0)
Return a Dolibarr global constant int value.
dol_print_date($time, $format='', $tzoutput='auto', $outputlangs=null, $encodetooutput=false)
Output date in a string format according to outputlangs (or langs if not defined).
dol_sort_array(&$array, $index, $order='asc', $natsort=0, $case_sensitive=0, $keepindex=0)
Advanced sort array by the value of a given key, which produces ascending (default) or descending out...
print_liste_field_titre($name, $file="", $field="", $begin="", $moreparam="", $moreattrib="", $sortfield="", $sortorder="", $prefix="", $tooltip="", $forcenowrapcolumntitle=0)
Show title line of an array.
dolGetButtonTitleSeparator($moreClass="")
Add space between dolGetButtonTitle.
print_barre_liste($title, $page, $file, $options='', $sortfield='', $sortorder='', $morehtmlcenter='', $num=-1, $totalnboflines='', $picto='generic', $pictoisfullpath=0, $morehtmlright='', $morecss='', $limit=-1, $hideselectlimit=0, $hidenavigation=0, $pagenavastextinput=0, $morehtmlrightbeforearrow='')
Print a title with navigation controls for pagination.
GETPOST($paramname, $check='alphanohtml', $method=0, $filter=null, $options=null, $noreplace=0)
Return value of a param into GET or POST supervariable.
setEventMessages($mesg, $mesgs, $style='mesgs', $messagekey='', $noduplicate=0)
Set event messages in dol_events session object.
dol_sanitizeFileName($str, $newstr='_', $unaccent=1)
Clean a string to use it as a file name.
dol_print_error($db=null, $error='', $errors=null)
Displays error message system with all the information to facilitate the diagnosis and the escalation...
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.