36 require
'../../main.inc.php';
37 require_once DOL_DOCUMENT_ROOT.
'/core/class/html.formfile.class.php';
38 require_once DOL_DOCUMENT_ROOT.
'/core/class/html.formorder.class.php';
39 require_once DOL_DOCUMENT_ROOT.
'/core/class/html.formother.class.php';
40 require_once DOL_DOCUMENT_ROOT.
'/core/class/html.formcompany.class.php';
41 require_once DOL_DOCUMENT_ROOT.
'/core/lib/date.lib.php';
42 require_once DOL_DOCUMENT_ROOT.
'/core/lib/company.lib.php';
43 require_once DOL_DOCUMENT_ROOT.
'/fourn/class/fournisseur.class.php';
44 require_once DOL_DOCUMENT_ROOT.
'/fourn/class/fournisseur.commande.class.php';
45 require_once DOL_DOCUMENT_ROOT.
'/fourn/class/fournisseur.facture.class.php';
46 require_once DOL_DOCUMENT_ROOT.
'/product/class/product.class.php';
47 require_once DOL_DOCUMENT_ROOT.
'/projet/class/project.class.php';
50 $langs->loadLangs(array(
"orders",
"sendings",
'deliveries',
'companies',
'compta',
'bills',
'projects',
'suppliers',
'products'));
53 $action =
GETPOST(
'action',
'aZ09');
54 $massaction =
GETPOST(
'massaction',
'alpha');
55 $show_files =
GETPOST(
'show_files',
'int');
56 $confirm =
GETPOST(
'confirm',
'alpha');
57 $toselect =
GETPOST(
'toselect',
'array');
58 $contextpage =
GETPOST(
'contextpage',
'aZ') ?
GETPOST(
'contextpage',
'aZ') :
'supplierorderlist';
59 $mode =
GETPOST(
'mode',
'alpha');
62 $search_date_order_startday =
GETPOST(
'search_date_order_startday',
'int');
63 $search_date_order_startmonth =
GETPOST(
'search_date_order_startmonth',
'int');
64 $search_date_order_startyear =
GETPOST(
'search_date_order_startyear',
'int');
65 $search_date_order_endday =
GETPOST(
'search_date_order_endday',
'int');
66 $search_date_order_endmonth =
GETPOST(
'search_date_order_endmonth',
'int');
67 $search_date_order_endyear =
GETPOST(
'search_date_order_endyear',
'int');
68 $search_date_order_start =
dol_mktime(0, 0, 0, $search_date_order_startmonth, $search_date_order_startday, $search_date_order_startyear);
69 $search_date_order_end =
dol_mktime(23, 59, 59, $search_date_order_endmonth, $search_date_order_endday, $search_date_order_endyear);
71 $search_date_delivery_startday =
GETPOST(
'search_date_delivery_startday',
'int');
72 $search_date_delivery_startmonth =
GETPOST(
'search_date_delivery_startmonth',
'int');
73 $search_date_delivery_startyear =
GETPOST(
'search_date_delivery_startyear',
'int');
74 $search_date_delivery_endday =
GETPOST(
'search_date_delivery_endday',
'int');
75 $search_date_delivery_endmonth =
GETPOST(
'search_date_delivery_endmonth',
'int');
76 $search_date_delivery_endyear =
GETPOST(
'search_date_delivery_endyear',
'int');
77 $search_date_delivery_start =
dol_mktime(0, 0, 0, $search_date_delivery_startmonth, $search_date_delivery_startday, $search_date_delivery_startyear);
78 $search_date_delivery_end =
dol_mktime(23, 59, 59, $search_date_delivery_endmonth, $search_date_delivery_endday, $search_date_delivery_endyear);
80 $search_date_valid_startday =
GETPOST(
'search_date_valid_startday',
'int');
81 $search_date_valid_startmonth =
GETPOST(
'search_date_valid_startmonth',
'int');
82 $search_date_valid_startyear =
GETPOST(
'search_date_valid_startyear',
'int');
83 $search_date_valid_endday =
GETPOST(
'search_date_valid_endday',
'int');
84 $search_date_valid_endmonth =
GETPOST(
'search_date_valid_endmonth',
'int');
85 $search_date_valid_endyear =
GETPOST(
'search_date_valid_endyear',
'int');
86 $search_date_valid_start =
dol_mktime(0, 0, 0, $search_date_valid_startmonth, $search_date_valid_startday, $search_date_valid_startyear);
87 $search_date_valid_end =
dol_mktime(23, 59, 59, $search_date_valid_endmonth, $search_date_valid_endday, $search_date_valid_endyear);
89 $search_date_approve_startday =
GETPOST(
'search_date_approve_startday',
'int');
90 $search_date_approve_startmonth =
GETPOST(
'search_date_approve_startmonth',
'int');
91 $search_date_approve_startyear =
GETPOST(
'search_date_approve_startyear',
'int');
92 $search_date_approve_endday =
GETPOST(
'search_date_approve_endday',
'int');
93 $search_date_approve_endmonth =
GETPOST(
'search_date_approve_endmonth',
'int');
94 $search_date_approve_endyear =
GETPOST(
'search_date_approve_endyear',
'int');
95 $search_date_approve_start =
dol_mktime(0, 0, 0, $search_date_approve_startmonth, $search_date_approve_startday, $search_date_approve_startyear);
96 $search_date_approve_end =
dol_mktime(23, 59, 59, $search_date_approve_endmonth, $search_date_approve_endday, $search_date_approve_endyear);
98 $sall = trim((
GETPOST(
'search_all',
'alphanohtml') !=
'') ?
GETPOST(
'search_all',
'alphanohtml') :
GETPOST(
'sall',
'alphanohtml'));
100 $search_product_category =
GETPOST(
'search_product_category',
'int');
101 $search_ref =
GETPOST(
'search_ref',
'alpha');
102 $search_refsupp =
GETPOST(
'search_refsupp',
'alpha');
103 $search_company =
GETPOST(
'search_company',
'alpha');
104 $search_company_alias =
GETPOST(
'search_company_alias',
'alpha');
105 $search_town =
GETPOST(
'search_town',
'alpha');
106 $search_zip =
GETPOST(
'search_zip',
'alpha');
107 $search_state =
GETPOST(
"search_state",
'alpha');
108 $search_country =
GETPOST(
"search_country",
'int');
109 $search_type_thirdparty =
GETPOST(
"search_type_thirdparty",
'int');
110 $search_user =
GETPOST(
'search_user',
'int');
111 $search_request_author =
GETPOST(
'search_request_author',
'alpha');
112 $search_ht =
GETPOST(
'search_ht',
'alpha');
113 $search_ttc =
GETPOST(
'search_ttc',
'alpha');
114 $optioncss =
GETPOST(
'optioncss',
'alpha');
115 $socid =
GETPOST(
'socid',
'int');
116 $search_sale =
GETPOST(
'search_sale',
'int');
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',
'int');
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 = join(
',',
GETPOST(
'search_status',
'array:intcomma'));
134 $search_status = (
GETPOST(
'search_status',
'intcomma') !=
'' ?
GETPOST(
'search_status',
'intcomma') :
GETPOST(
'statut',
'intcomma'));
138 $orderid =
GETPOST(
'orderid',
'int');
140 $socid = $user->socid;
142 $result =
restrictedArea($user,
'fournisseur', $orderid,
'',
'commande');
144 $diroutputmassaction = $conf->fournisseur->commande->dir_output.
'/temp/massgeneration/'.$user->id;
146 $limit =
GETPOST(
'limit',
'int') ?
GETPOST(
'limit',
'int') : $conf->liste_limit;
147 $sortfield =
GETPOST(
'sortfield',
'aZ09comma');
148 $sortorder =
GETPOST(
'sortorder',
'aZ09comma');
150 if (empty($page) || $page == -1 || !empty($search_btn) || !empty($search_remove_btn) || (empty($toselect) && $massaction ===
'0')) {
153 $offset = $limit * $page;
154 $pageprev = $page - 1;
155 $pagenext = $page + 1;
157 $sortfield =
'cf.ref';
165 $hookmanager->initHooks(array(
'supplierorderlist'));
169 $extrafields->fetch_name_optionals_label($object->table_element);
171 $search_array_options = $extrafields->getOptionalsFromPost($object->table_element,
'',
'search_');
174 $fieldstosearchall = array();
175 foreach ($object->fields as $key => $val) {
176 if (!empty($val[
'searchall'])) {
177 $fieldstosearchall[
'cf.'.$key] = $val[
'label'];
180 $fieldstosearchall[
'pd.description'] =
'Description';
181 $fieldstosearchall[
's.nom'] =
"ThirdParty";
182 $fieldstosearchall[
's.name_alias'] =
"AliasNameShort";
183 $fieldstosearchall[
's.zip'] =
"Zip";
184 $fieldstosearchall[
's.town'] =
"Town";
185 if (empty($user->socid)) {
186 $fieldstosearchall[
"cf.note_private"] =
"NotePrivate";
189 $checkedtypetiers = 0;
192 $arrayfields = array(
193 'u.login'=>array(
'label'=>
"AuthorRequest",
'enabled'=>1,
'position'=>41),
194 's.name_alias'=>array(
'label'=>
"AliasNameShort",
'position'=>51,
'checked'=>0),
195 's.town'=>array(
'label'=>
"Town",
'enabled'=>1,
'position'=>55,
'checked'=>1),
196 's.zip'=>array(
'label'=>
"Zip",
'enabled'=>1,
'position'=>56,
'checked'=>1),
197 'state.nom'=>array(
'label'=>
"StateShort",
'enabled'=>1,
'position'=>57),
198 'country.code_iso'=>array(
'label'=>
"Country",
'enabled'=>1,
'position'=>58),
199 'typent.code'=>array(
'label'=>
"ThirdPartyType",
'enabled'=>$checkedtypetiers,
'position'=>59),
200 'cf.total_localtax1'=>array(
'label'=>$langs->transcountry(
"AmountLT1", $mysoc->country_code),
'checked'=>0,
'enabled'=>($mysoc->localtax1_assuj ==
"1"),
'position'=>140),
201 'cf.total_localtax2'=>array(
'label'=>$langs->transcountry(
"AmountLT2", $mysoc->country_code),
'checked'=>0,
'enabled'=>($mysoc->localtax2_assuj ==
"1"),
'position'=>145),
202 'cf.note_public'=>array(
'label'=>
'NotePublic',
'checked'=>0,
'enabled'=>(!
getDolGlobalInt(
'MAIN_LIST_HIDE_PUBLIC_NOTES')),
'position'=>750),
203 'cf.note_private'=>array(
'label'=>
'NotePrivate',
'checked'=>0,
'enabled'=>(!
getDolGlobalInt(
'MAIN_LIST_HIDE_PRIVATE_NOTES')),
'position'=>760),
205 foreach ($object->fields as $key => $val) {
207 if (!empty($val[
'visible'])) {
208 $visible = (int)
dol_eval($val[
'visible'], 1);
209 $arrayfields[
'cf.'.$key] = array(
210 'label'=>$val[
'label'],
211 'checked'=>(($visible < 0) ? 0 : 1),
212 'enabled'=>(abs($visible) != 3 &&
dol_eval($val[
'enabled'], 1)),
213 'position'=>$val[
'position'],
214 'help'=> isset($val[
'help']) ? $val[
'help'] :
''
219 include DOL_DOCUMENT_ROOT.
'/core/tpl/extrafields_list_array_fields.tpl.php';
226 $permissiontoread = ($user->hasRight(
"fournisseur",
"commande",
"lire") || $user->hasRight(
"supplier_order",
"lire"));
227 $permissiontoadd = ($user->hasRight(
"fournisseur",
"commande",
"creer") || $user->hasRight(
"supplier_order",
"creer"));
228 $permissiontodelete = ($user->hasRight(
"fournisseur",
"commande",
"supprimer") || $user->hasRight(
"supplier_order",
"supprimer"));
229 $permissiontovalidate = $permissiontoadd;
230 $permissiontoapprove = ($user->hasRight(
"fournisseur",
"commande",
"approuver") || $user->hasRight(
"supplier_order",
"approuver"));
237 if (
GETPOST(
'cancel',
'alpha')) {
238 $action =
'list'; $massaction =
'';
240 if (!
GETPOST(
'confirmmassaction',
'alpha') && $massaction !=
'presend' && $massaction !=
'confirm_presend' && $massaction !=
'confirm_createsupplierbills') {
244 $parameters = array(
'socid'=>$socid);
245 $reshook = $hookmanager->executeHooks(
'doActions', $parameters, $object, $action);
250 if (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')) {
259 $search_product_category =
'';
261 $search_refsupp =
'';
262 $search_company =
'';
263 $search_company_alias =
'';
268 $search_country =
'';
269 $search_type_thirdparty =
'';
270 $search_request_author =
'';
271 $search_total_ht =
'';
272 $search_total_tva =
'';
273 $search_total_ttc =
'';
274 $search_multicurrency_code =
'';
275 $search_multicurrency_tx =
'';
276 $search_multicurrency_montant_ht =
'';
277 $search_multicurrency_montant_tva =
'';
278 $search_multicurrency_montant_ttc =
'';
279 $search_project_ref =
'';
281 $search_date_order_startday =
'';
282 $search_date_order_startmonth =
'';
283 $search_date_order_startyear =
'';
284 $search_date_order_endday =
'';
285 $search_date_order_endmonth =
'';
286 $search_date_order_endyear =
'';
287 $search_date_order_start =
'';
288 $search_date_order_end =
'';
289 $search_date_delivery_startday =
'';
290 $search_date_delivery_startmonth =
'';
291 $search_date_delivery_startyear =
'';
292 $search_date_delivery_endday =
'';
293 $search_date_delivery_endmonth =
'';
294 $search_date_delivery_endyear =
'';
295 $search_date_delivery_start =
'';
296 $search_date_delivery_end =
'';
297 $search_date_valid_startday =
'';
298 $search_date_valid_startmonth =
'';
299 $search_date_valid_startyear =
'';
300 $search_date_valid_endday =
'';
301 $search_date_valid_endmonth =
'';
302 $search_date_valid_endyear =
'';
303 $search_date_valid_start =
'';
304 $search_date_valid_end =
'';
305 $search_date_approve_startday =
'';
306 $search_date_approve_startmonth =
'';
307 $search_date_approve_startyear =
'';
308 $search_date_approve_endday =
'';
309 $search_date_approve_endmonth =
'';
310 $search_date_approve_endyear =
'';
311 $search_date_approve_start =
'';
312 $search_date_approve_end =
'';
316 $search_array_options = array();
318 if (
GETPOST(
'button_removefilter_x',
'alpha') ||
GETPOST(
'button_removefilter.x',
'alpha') ||
GETPOST(
'button_removefilter',
'alpha')
319 ||
GETPOST(
'button_search_x',
'alpha') ||
GETPOST(
'button_search.x',
'alpha') ||
GETPOST(
'button_search',
'alpha')) {
324 $objectclass =
'CommandeFournisseur';
325 $objectlabel =
'SupplierOrders';
326 $uploaddir = $conf->fournisseur->commande->dir_output;
327 include DOL_DOCUMENT_ROOT.
'/core/actions_massactions.inc.php';
329 if ($action ==
'validate' && $permissiontovalidate) {
330 if (
GETPOST(
'confirm') ==
'yes') {
335 foreach ($toselect as $checked) {
336 if ($objecttmp->fetch($checked)) {
337 if ($objecttmp->statut == 0) {
338 $objecttmp->date_commande =
dol_now();
339 $result = $objecttmp->valid($user);
342 if (empty($conf->global->SUPPLIER_ORDER_NO_DIRECT_APPROVE) && $permissiontoapprove && !(!empty($conf->global->STOCK_CALCULATE_ON_SUPPLIER_VALIDATE_ORDER) && $objecttmp->hasProductsOrServices(1))) {
343 $result = $objecttmp->approve($user);
344 setEventMessages($langs->trans(
"SupplierOrderValidatedAndApproved"), array($objecttmp->ref));
346 setEventMessages($langs->trans(
"SupplierOrderValidated"), array($objecttmp->ref));
356 if (!$error) $db->commit();
357 else $db->rollback();
362 if ($massaction ==
'confirm_createsupplierbills') {
363 $orders =
GETPOST(
'toselect',
'array');
364 $createbills_onebythird =
GETPOST(
'createbills_onebythird',
'int');
365 $validate_invoices =
GETPOST(
'validate_invoices',
'int');
368 $TFactThird = array();
370 $nb_bills_created = 0;
378 foreach ($orders as $id_order) {
380 if ($cmd->fetch($id_order) <= 0) {
385 if (!empty($createbills_onebythird) && !empty($TFactThird[$cmd->socid])) {
386 $objecttmp = $TFactThird[$cmd->socid];
389 if (!empty($cmd->socid) > 0) {
391 $societe->fetch($cmd->socid);
392 $objecttmp->vat_reverse_charge = $societe->vat_reverse_charge;
394 $objecttmp->socid = $cmd->socid;
395 $objecttmp->type = $objecttmp::TYPE_STANDARD;
396 $objecttmp->cond_reglement_id = $cmd->cond_reglement_id;
397 $objecttmp->mode_reglement_id = $cmd->mode_reglement_id;
398 $objecttmp->fk_project = $cmd->fk_project;
399 $objecttmp->multicurrency_code = $cmd->multicurrency_code;
400 $objecttmp->ref_supplier = !empty($cmd->ref_supplier) ? $cmd->ref_supplier : $default_ref_supplier;
401 $default_ref_supplier+=1;
404 if (empty($datefacture)) {
408 $objecttmp->date = $datefacture;
409 $objecttmp->origin =
'order_supplier';
410 $objecttmp->origin_id = $id_order;
412 $res = $objecttmp->create($user);
416 $lastref = $objecttmp->ref;
417 $lastid = $objecttmp->id;
421 if ($objecttmp->id > 0) {
422 $sql =
"INSERT INTO ".MAIN_DB_PREFIX.
"element_element (";
424 $sql .=
", sourcetype";
425 $sql .=
", fk_target";
426 $sql .=
", targettype";
427 $sql .=
") VALUES (";
429 $sql .=
", '".$db->escape($objecttmp->origin).
"'";
430 $sql .=
", ".((int) $objecttmp->id);
431 $sql .=
", '".$db->escape($objecttmp->element).
"'";
434 if (!$db->query(
$sql)) {
439 $lines = $cmd->lines;
440 if (empty($lines) && method_exists($cmd,
'fetch_lines')) {
442 $lines = $cmd->lines;
446 $num = count($lines);
448 for ($i = 0; $i < $num; $i++) {
449 $desc = ($lines[$i]->desc ? $lines[$i]->desc : $lines[$i]->libelle);
450 if ($lines[$i]->subprice < 0) {
453 $discount->fk_soc = $objecttmp->socid;
454 $discount->amount_ht = abs($lines[$i]->total_ht);
455 $discount->amount_tva = abs($lines[$i]->total_tva);
456 $discount->amount_ttc = abs($lines[$i]->total_ttc);
457 $discount->tva_tx = $lines[$i]->tva_tx;
458 $discount->fk_user = $user->id;
459 $discount->description = $desc;
460 $discountid = $discount->create($user);
461 if ($discountid > 0) {
462 $result = $objecttmp->insert_discount($discountid);
471 $product_type = ($lines[$i]->product_type ? $lines[$i]->product_type : 0);
474 if ($lines[$i]->date_debut_prevue) {
475 $date_start = $lines[$i]->date_debut_prevue;
477 if ($lines[$i]->date_debut_reel) {
478 $date_start = $lines[$i]->date_debut_reel;
480 if ($lines[$i]->date_start) {
481 $date_start = $lines[$i]->date_start;
485 if ($lines[$i]->date_fin_prevue) {
486 $date_end = $lines[$i]->date_fin_prevue;
488 if ($lines[$i]->date_fin_reel) {
489 $date_end = $lines[$i]->date_fin_reel;
491 if ($lines[$i]->date_end) {
492 $date_end = $lines[$i]->date_end;
495 if (($lines[$i]->product_type != 9 && empty($lines[$i]->fk_parent_line)) || $lines[$i]->product_type == 9) {
498 $result = $objecttmp->addline(
500 $lines[$i]->subprice,
502 $lines[$i]->localtax1_tx,
503 $lines[$i]->localtax2_tx,
505 $lines[$i]->fk_product,
506 $lines[$i]->remise_percent,
510 $lines[$i]->info_bits,
515 $lines[$i]->array_options,
517 $objecttmp->origin_id,
519 $lines[$i]->ref_supplier,
520 $lines[$i]->special_code,
531 if ($result > 0 && $lines[$i]->product_type == 9) {
532 $fk_parent_line = $result;
539 $cmd->classifyBilled($user);
541 if (!empty($createbills_onebythird) && empty($TFactThird[$cmd->socid])) {
542 $TFactThird[$cmd->socid] = $objecttmp;
544 $TFact[$objecttmp->id] = $objecttmp;
549 $TAllFact = empty($createbills_onebythird) ? $TFact : $TFactThird;
552 if (!$error && $validate_invoices) {
553 $massaction = $action =
'builddoc';
555 foreach ($TAllFact as &$objecttmp) {
556 $objecttmp->validate($user);
563 $id = $objecttmp->id;
567 $upload_dir = $conf->fournisseur->facture->dir_output;
568 $permissiontoadd = ($user->hasRight(
"fournisseur",
"facture",
"creer") || $user->hasRight(
"supplier_invoice",
"creer"));
572 $massaction = $action =
'confirm_createsupplierbills';
578 if ($nb_bills_created == 1) {
579 $texttoshow = $langs->trans(
'BillXCreated',
'{s1}');
580 $texttoshow = str_replace(
'{s1}',
'<a href="'.DOL_URL_ROOT.
'/fourn/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);
598 $param .=
'&sall='.urlencode($sall);
601 $param .=
'&socid='.urlencode($socid);
603 if ($search_status !=
'') {
604 $param .=
'&search_status='.urlencode($search_status);
606 if ($search_date_order_startday) {
607 $param .=
'&search_date_order_startday='.urlencode($search_date_order_startday);
609 if ($search_date_order_startmonth) {
610 $param .=
'&search_date_order_startmonth='.urlencode($search_date_order_startmonth);
612 if ($search_date_order_startyear) {
613 $param .=
'&search_date_order_startyear='.urlencode($search_date_order_startyear);
615 if ($search_date_order_endday) {
616 $param .=
'&search_date_order_endday='.urlencode($search_date_order_endday);
618 if ($search_date_order_endmonth) {
619 $param .=
'&search_date_order_endmonth='.urlencode($search_date_order_endmonth);
621 if ($search_date_order_endyear) {
622 $param .=
'&search_date_order_endyear='.urlencode($search_date_order_endyear);
624 if ($search_date_delivery_startday) {
625 $param .=
'&search_date_delivery_startday='.urlencode($search_date_delivery_startday);
627 if ($search_date_delivery_startmonth) {
628 $param .=
'&search_date_delivery_startmonth='.urlencode($search_date_delivery_startmonth);
630 if ($search_date_delivery_startyear) {
631 $param .=
'&search_date_delivery_startyear='.urlencode($search_date_delivery_startyear);
633 if ($search_date_delivery_endday) {
634 $param .=
'&search_date_delivery_endday='.urlencode($search_date_delivery_endday);
636 if ($search_date_delivery_endmonth) {
637 $param .=
'&search_date_delivery_endmonth='.urlencode($search_date_delivery_endmonth);
639 if ($search_date_delivery_endyear) {
640 $param .=
'&search_date_delivery_endyear='.urlencode($search_date_delivery_endyear);
642 if ($search_date_valid_startday) {
643 $param .=
'&search_date_valid_startday='.urlencode($search_date_valid_startday);
645 if ($search_date_valid_startmonth) {
646 $param .=
'&search_date_valid_startmonth='.urlencode($search_date_valid_startmonth);
648 if ($search_date_valid_startyear) {
649 $param .=
'&search_date_valid_startyear='.urlencode($search_date_valid_startyear);
651 if ($search_date_valid_endday) {
652 $param .=
'&search_date_valid_endday='.urlencode($search_date_valid_endday);
654 if ($search_date_valid_endmonth) {
655 $param .=
'&search_date_valid_endmonth='.urlencode($search_date_valid_endmonth);
657 if ($search_date_valid_endyear) {
658 $param .=
'&search_date_valid_endyear='.urlencode($search_date_valid_endyear);
660 if ($search_date_approve_startday) {
661 $param .=
'&search_date_approve_startday='.urlencode($search_date_approve_startday);
663 if ($search_date_approve_startmonth) {
664 $param .=
'&search_date_approve_startmonth='.urlencode($search_date_approve_startmonth);
666 if ($search_date_approve_startyear) {
667 $param .=
'&search_date_approve_startyear='.urlencode($search_date_approve_startyear);
669 if ($search_date_approve_endday) {
670 $param .=
'&search_date_approve_endday='.urlencode($search_date_approve_endday);
672 if ($search_date_approve_endmonth) {
673 $param .=
'&search_date_approve_endmonth='.urlencode($search_date_approve_endmonth);
675 if ($search_date_approve_endyear) {
676 $param .=
'&search_date_approve_endyear='.urlencode($search_date_approve_endyear);
679 $param .=
'&search_ref='.urlencode($search_ref);
681 if ($search_company) {
682 $param .=
'&search_company='.urlencode($search_company);
684 if ($search_company_alias) {
685 $param .=
'&search_company_alias='.urlencode($search_company_alias);
688 if ($search_user > 0) {
689 $param .=
'&search_user='.urlencode($search_user);
691 if ($search_sale > 0) {
692 $param .=
'&search_sale='.urlencode($search_sale);
694 if ($search_total_ht !=
'') {
695 $param .=
'&search_total_ht='.urlencode($search_total_ht);
697 if ($search_total_tva !=
'') {
698 $param .=
'&search_total_tva='.urlencode($search_total_tva);
700 if ($search_total_ttc !=
'') {
701 $param .=
'&search_total_ttc='.urlencode($search_total_ttc);
703 if ($search_project_ref >= 0) {
704 $param .=
"&search_project_ref=".urlencode($search_project_ref);
707 $param .=
'&show_files='.urlencode($show_files);
709 if ($optioncss !=
'') {
710 $param .=
'&optioncss='.urlencode($optioncss);
713 $param .=
'&billed='.urlencode($billed);
716 header(
"Location: ".$_SERVER[
'PHP_SELF'].
'?'.$param);
721 $_GET[
"origin"] = $_POST[
"origin"];
722 $_GET[
"originid"] = $_POST[
"originid"];
744 $title = $langs->trans(
"SuppliersOrders");
747 $fourn->fetch($socid);
748 $title .=
' - '.$fourn->name;
759 if ($search_billed > 0) {
760 $title .=
' - '.$langs->trans(
"Billed");
766 $varpage = empty($contextpage) ? $_SERVER[
"PHP_SELF"] : $contextpage;
767 $selectedfields =
$form->multiSelectArrayWithCheckbox(
'selectedfields', $arrayfields, $varpage);
771 $sql =
'SELECT DISTINCT';
773 $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,';
774 $sql .=
" typent.code as typent_code,";
775 $sql .=
" state.code_departement as state_code, state.nom as state_name,";
776 $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 date_livraison,cf.date_valid, cf.date_approve,";
777 $sql .=
' cf.localtax1 as total_localtax1, cf.localtax2 as total_localtax2,';
778 $sql .=
' cf.fk_multicurrency, cf.multicurrency_code, cf.multicurrency_tx, cf.multicurrency_total_ht, cf.multicurrency_total_tva, cf.multicurrency_total_ttc,';
779 $sql .=
' cf.date_creation as date_creation, cf.tms as date_update,';
780 $sql .=
' cf.note_public, cf.note_private,';
781 $sql .=
" p.rowid as project_id, p.ref as project_ref, p.title as project_title,";
782 $sql .=
" u.firstname, u.lastname, u.photo, u.login, u.email as user_email, u.statut as user_status";
784 if (!empty($extrafields->attributes[$object->table_element][
'label'])) {
785 foreach ($extrafields->attributes[$object->table_element][
'label'] as $key => $val) {
786 $sql .= ($extrafields->attributes[$object->table_element][
'type'][$key] !=
'separate' ?
", ef.".$key.
" as options_".$key :
'');
790 $parameters = array();
791 $reshook = $hookmanager->executeHooks(
'printFieldListSelect', $parameters, $object);
792 $sql .= $hookmanager->resPrint;
796 $sql .=
" FROM ".MAIN_DB_PREFIX.
"societe as s";
797 $sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"c_country as country on (country.rowid = s.fk_pays)";
798 $sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"c_typent as typent on (typent.id = s.fk_typent)";
799 $sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"c_departements as state on (state.rowid = s.fk_departement)";
800 $sql .=
", ".MAIN_DB_PREFIX.
"commande_fournisseur as cf";
801 if (!empty($extrafields->attributes[$object->table_element][
'label']) && is_array($extrafields->attributes[$object->table_element][
'label']) && count($extrafields->attributes[$object->table_element][
'label'])) {
802 $sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.$object->table_element.
"_extrafields as ef on (cf.rowid = ef.fk_object)";
805 $sql .=
' LEFT JOIN '.MAIN_DB_PREFIX.
'commande_fournisseurdet as pd ON cf.rowid=pd.fk_commande';
807 $sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"user as u ON cf.fk_user_author = u.rowid";
808 $sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"projet as p ON p.rowid = cf.fk_projet";
810 if ($search_sale > 0 || (!$user->hasRight(
"societe",
"client",
"voir") && !$socid)) {
811 $sql .=
", ".MAIN_DB_PREFIX.
"societe_commerciaux as sc";
813 $parameters = array();
814 $reshook = $hookmanager->executeHooks(
'printFieldListFrom', $parameters, $object);
815 $sql .= $hookmanager->resPrint;
816 $sql .=
' WHERE cf.fk_soc = s.rowid';
817 $sql .=
' AND cf.entity IN ('.getEntity(
'supplier_order').
')';
819 $sql .=
" AND s.rowid = ".((int) $socid);
821 if (!$user->hasRight(
"societe",
"client",
"voir") && !$socid) {
822 $sql .=
" AND s.rowid = sc.fk_soc AND sc.fk_user = ".((int) $user->id);
827 if ($search_refsupp) {
833 if (empty($arrayfields[
's.name_alias'][
'checked']) && $search_company) {
836 if ($search_company) {
839 if ($search_company_alias) {
843 if ($search_request_author) {
844 $sql .=
natural_search(array(
'u.lastname',
'u.firstname',
'u.login'), $search_request_author);
846 if ($search_billed !=
'' && $search_billed >= 0) {
847 $sql .=
" AND cf.billed = ".((int) $search_billed);
850 if (
GETPOST(
'statut',
'intcomma') !==
'') {
851 $sql .=
" AND cf.fk_statut IN (".$db->sanitize($db->escape($db->escape(
GETPOST(
'statut',
'intcomma')))).
")";
853 if ($search_status !=
'' && $search_status !=
'-1') {
854 $sql .=
" AND cf.fk_statut IN (".$db->sanitize($db->escape($search_status)).
")";
856 if ($search_date_order_start) {
857 $sql .=
" AND cf.date_commande >= '".$db->idate($search_date_order_start).
"'";
859 if ($search_date_order_end) {
860 $sql .=
" AND cf.date_commande <= '".$db->idate($search_date_order_end).
"'";
862 if ($search_date_delivery_start) {
863 $sql .=
" AND cf.date_livraison >= '".$db->idate($search_date_delivery_start).
"'";
865 if ($search_date_delivery_end) {
866 $sql .=
" AND cf.date_livraison <= '".$db->idate($search_date_delivery_end).
"'";
868 if ($search_date_valid_start) {
869 $sql .=
" AND cf.date_commande >= '".$db->idate($search_date_valid_start).
"'";
871 if ($search_date_valid_end) {
872 $sql .=
" AND cf.date_commande <= '".$db->idate($search_date_valid_end).
"'";
874 if ($search_date_approve_start) {
875 $sql .=
" AND cf.date_livraison >= '".$db->idate($search_date_approve_start).
"'";
877 if ($search_date_approve_end) {
878 $sql .=
" AND cf.date_livraison <= '".$db->idate($search_date_approve_end).
"'";
889 if ($search_country) {
890 $sql .=
" AND s.fk_pays IN (".$db->sanitize($db->escape($search_country)).
')';
892 if ($search_type_thirdparty !=
'' && $search_type_thirdparty > 0) {
893 $sql .=
" AND s.fk_typent IN (".$db->sanitize($db->escape($search_type_thirdparty)).
')';
895 if ($search_sale > 0) {
896 $sql .=
" AND s.rowid = sc.fk_soc AND sc.fk_user = ".((int) $search_sale);
898 if ($search_user > 0) {
899 $sql .=
" AND EXISTS (";
900 $sql .=
" SELECT ec.rowid ";
901 $sql .=
" FROM " . MAIN_DB_PREFIX .
"element_contact as ec";
902 $sql .=
" INNER JOIN " . MAIN_DB_PREFIX .
"c_type_contact as tc ON tc.rowid = ec.fk_c_type_contact";
903 $sql .=
" WHERE ec.element_id = cf.rowid AND ec.fk_socpeople = " . ((int) $search_user);
904 $sql .=
" AND tc.element = 'order_supplier' AND tc.source = 'internal'";
907 if ($search_total_ht !=
'') {
910 if ($search_total_tva !=
'') {
913 if ($search_total_ttc !=
'') {
916 if ($search_multicurrency_code !=
'') {
917 $sql .=
" AND cf.multicurrency_code = '".$db->escape($search_multicurrency_code).
"'";
919 if ($search_multicurrency_tx !=
'') {
922 if ($search_multicurrency_montant_ht !=
'') {
923 $sql .=
natural_search(
'cf.multicurrency_total_ht', $search_multicurrency_montant_ht, 1);
925 if ($search_multicurrency_montant_tva !=
'') {
926 $sql .=
natural_search(
'cf.multicurrency_total_tva', $search_multicurrency_montant_tva, 1);
928 if ($search_multicurrency_montant_ttc !=
'') {
929 $sql .=
natural_search(
'cf.multicurrency_total_ttc', $search_multicurrency_montant_ttc, 1);
931 if ($search_project_ref !=
'') {
935 $searchCategoryProductOperator = -1;
936 $searchCategoryProductList = array($search_product_category);
937 if (!empty($searchCategoryProductList)) {
938 $searchCategoryProductSqlList = array();
939 $listofcategoryid =
'';
940 foreach ($searchCategoryProductList as $searchCategoryProduct) {
941 if (intval($searchCategoryProduct) == -2) {
942 $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)";
943 } elseif (intval($searchCategoryProduct) > 0) {
944 if ($searchCategoryProductOperator == 0) {
945 $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).
")";
947 $listofcategoryid .= ($listofcategoryid ?
', ' :
'') .((
int) $searchCategoryProduct);
951 if ($listofcategoryid) {
952 $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).
"))";
954 if ($searchCategoryProductOperator == 1) {
955 if (!empty($searchCategoryProductSqlList)) {
956 $sql .=
" AND (".implode(
' OR ', $searchCategoryProductSqlList).
")";
959 if (!empty($searchCategoryProductSqlList)) {
960 $sql .=
" AND (".implode(
' AND ', $searchCategoryProductSqlList).
")";
965 include DOL_DOCUMENT_ROOT.
'/core/tpl/extrafields_list_search_sql.tpl.php';
967 $parameters = array();
968 $reshook = $hookmanager->executeHooks(
'printFieldListWhere', $parameters, $object);
969 $sql .= $hookmanager->resPrint;
972 $nbtotalofrecords =
'';
975 $sqlforcount = preg_replace(
'/^'.preg_quote($sqlfields,
'/').
'/',
'SELECT COUNT(*) as nbtotalofrecords',
$sql);
976 $sqlforcount = preg_replace(
'/GROUP BY .*$/',
'', $sqlforcount);
977 $resql = $db->query($sqlforcount);
979 $objforcount = $db->fetch_object($resql);
980 $nbtotalofrecords = $objforcount->nbtotalofrecords;
985 if (($page * $limit) > $nbtotalofrecords) {
992 $sql .= $db->order($sortfield, $sortorder);
994 $sql .= $db->plimit($limit + 1, $offset);
998 $resql = $db->query(
$sql);
1000 $num = $db->num_rows($resql);
1002 $arrayofselected = is_array($toselect) ? $toselect : array();
1004 if ($num == 1 && !empty($conf->global->MAIN_SEARCH_DIRECT_OPEN_IF_ONLY_ONE) && $sall) {
1005 $obj = $db->fetch_object($resql);
1007 header(
"Location: ".DOL_URL_ROOT.
'/fourn/commande/card.php?id='.$id);
1014 if (!empty($mode)) {
1015 $param .=
'&mode='.urlencode($mode);
1017 if (!empty($contextpage) && $contextpage != $_SERVER[
"PHP_SELF"]) {
1018 $param .=
'&contextpage='.urlencode($contextpage);
1020 if ($limit > 0 && $limit != $conf->liste_limit) {
1021 $param .=
'&limit='.((int) $limit);
1024 $param .=
'&sall='.urlencode($sall);
1027 $param .=
'&socid='.urlencode($socid);
1030 $param .=
"&search_all=".urlencode($sall);
1032 if ($search_date_order_startday) {
1033 $param .=
'&search_date_order_startday='.urlencode($search_date_order_startday);
1035 if ($search_date_order_startmonth) {
1036 $param .=
'&search_date_order_startmonth='.urlencode($search_date_order_startmonth);
1038 if ($search_date_order_startyear) {
1039 $param .=
'&search_date_order_startyear='.urlencode($search_date_order_startyear);
1041 if ($search_date_order_endday) {
1042 $param .=
'&search_date_order_endday='.urlencode($search_date_order_endday);
1044 if ($search_date_order_endmonth) {
1045 $param .=
'&search_date_order_endmonth='.urlencode($search_date_order_endmonth);
1047 if ($search_date_order_endyear) {
1048 $param .=
'&search_date_order_endyear='.urlencode($search_date_order_endyear);
1050 if ($search_date_delivery_startday) {
1051 $param .=
'&search_date_delivery_startday='.urlencode($search_date_delivery_startday);
1053 if ($search_date_delivery_startmonth) {
1054 $param .=
'&search_date_delivery_startmonth='.urlencode($search_date_delivery_startmonth);
1056 if ($search_date_delivery_startyear) {
1057 $param .=
'&search_date_delivery_startyear='.urlencode($search_date_delivery_startyear);
1059 if ($search_date_delivery_endday) {
1060 $param .=
'&search_date_delivery_endday='.urlencode($search_date_delivery_endday);
1062 if ($search_date_delivery_endmonth) {
1063 $param .=
'&search_date_delivery_endmonth='.urlencode($search_date_delivery_endmonth);
1065 if ($search_date_delivery_endyear) {
1066 $param .=
'&search_date_delivery_endyear='.urlencode($search_date_delivery_endyear);
1068 if ($search_date_valid_startday) {
1069 $param .=
'&search_date_valid_startday='.urlencode($search_date_valid_startday);
1071 if ($search_date_valid_startmonth) {
1072 $param .=
'&search_date_valid_startmonth='.urlencode($search_date_valid_startmonth);
1074 if ($search_date_valid_startyear) {
1075 $param .=
'&search_date_valid_startyear='.urlencode($search_date_valid_startyear);
1077 if ($search_date_valid_endday) {
1078 $param .=
'&search_date_valid_endday='.urlencode($search_date_valid_endday);
1080 if ($search_date_valid_endmonth) {
1081 $param .=
'&search_date_valid_endmonth='.urlencode($search_date_valid_endmonth);
1083 if ($search_date_valid_endyear) {
1084 $param .=
'&search_date_valid_endyear='.urlencode($search_date_valid_endyear);
1086 if ($search_date_approve_startday) {
1087 $param .=
'&search_date_approve_startday='.urlencode($search_date_approve_startday);
1089 if ($search_date_approve_startmonth) {
1090 $param .=
'&search_date_approve_startmonth='.urlencode($search_date_approve_startmonth);
1092 if ($search_date_approve_startyear) {
1093 $param .=
'&search_date_approve_startyear='.urlencode($search_date_approve_startyear);
1095 if ($search_date_approve_endday) {
1096 $param .=
'&search_date_approve_endday='.urlencode($search_date_approve_endday);
1098 if ($search_date_approve_endmonth) {
1099 $param .=
'&search_date_approve_endmonth='.urlencode($search_date_approve_endmonth);
1101 if ($search_date_approve_endyear) {
1102 $param .=
'&search_date_approve_endyear='.urlencode($search_date_approve_endyear);
1105 $param .=
'&search_ref='.urlencode($search_ref);
1107 if ($search_company) {
1108 $param .=
'&search_company='.urlencode($search_company);
1110 if ($search_company_alias) {
1111 $param .=
'&search_company_alias='.urlencode($search_company_alias);
1113 if ($search_user > 0) {
1114 $param .=
'&search_user='.urlencode($search_user);
1116 if ($search_request_author) {
1117 $param .=
'&search_request_author='.urlencode($search_request_author);
1119 if ($search_sale > 0) {
1120 $param .=
'&search_sale='.urlencode($search_sale);
1122 if ($search_total_ht !=
'') {
1123 $param .=
'&search_total_ht='.urlencode($search_total_ht);
1125 if ($search_total_ttc !=
'') {
1126 $param .=
"&search_total_ttc=".urlencode($search_total_ttc);
1128 if ($search_multicurrency_code !=
'') {
1129 $param .=
'&search_multicurrency_code='.urlencode($search_multicurrency_code);
1131 if ($search_multicurrency_tx !=
'') {
1132 $param .=
'&search_multicurrency_tx='.urlencode($search_multicurrency_tx);
1134 if ($search_multicurrency_montant_ht !=
'') {
1135 $param .=
'&search_multicurrency_montant_ht='.urlencode($search_multicurrency_montant_ht);
1137 if ($search_multicurrency_montant_tva !=
'') {
1138 $param .=
'&search_multicurrency_montant_tva='.urlencode($search_multicurrency_montant_tva);
1140 if ($search_multicurrency_montant_ttc !=
'') {
1141 $param .=
'&search_multicurrency_montant_ttc='.urlencode($search_multicurrency_montant_ttc);
1143 if ($search_refsupp) {
1144 $param .=
"&search_refsupp=".urlencode($search_refsupp);
1146 if ($search_status !=
'' && $search_status !=
'-1') {
1147 $param .=
"&search_status=".urlencode($search_status);
1149 if ($search_project_ref >= 0) {
1150 $param .=
"&search_project_ref=".urlencode($search_project_ref);
1152 if ($search_billed !=
'') {
1153 $param .=
"&search_billed=".urlencode($search_billed);
1156 $param .=
'&show_files='.urlencode($show_files);
1158 if ($optioncss !=
'') {
1159 $param .=
'&optioncss='.urlencode($optioncss);
1161 if ($search_type_thirdparty !=
'' && $search_type_thirdparty > 0) {
1162 $param .=
'&search_type_thirdparty='.urlencode($search_type_thirdparty);
1166 include DOL_DOCUMENT_ROOT.
'/core/tpl/extrafields_list_search_param.tpl.php';
1168 $parameters = array();
1169 $reshook = $hookmanager->executeHooks(
'printFieldListSearchParam', $parameters, $object);
1170 $param .= $hookmanager->resPrint;
1173 $arrayofmassactions = array(
1174 'generate_doc'=>
img_picto(
'',
'pdf',
'class="pictofixedwidth"').$langs->trans(
"ReGeneratePDF"),
1175 'builddoc'=>
img_picto(
'',
'pdf',
'class="pictofixedwidth"').$langs->trans(
"PDFMerge"),
1176 'presend'=>
img_picto(
'',
'email',
'class="pictofixedwidth"').$langs->trans(
"SendByMail"),
1179 if ($permissiontovalidate) {
1180 if ($permissiontoapprove && empty($conf->global->SUPPLIER_ORDER_NO_DIRECT_APPROVE)) {
1181 $arrayofmassactions[
'prevalidate'] =
img_picto(
'',
'check',
'class="pictofixedwidth"').$langs->trans(
"ValidateAndApprove");
1183 $arrayofmassactions[
'prevalidate'] =
img_picto(
'',
'check',
'class="pictofixedwidth"').$langs->trans(
"Validate");
1187 if ($user->hasRight(
'fournisseur',
'facture',
'creer') || $user->hasRight(
"supplier_invoice",
"creer")) {
1188 $arrayofmassactions[
'createbills'] =
img_picto(
'',
'bill',
'class="pictofixedwidth"').$langs->trans(
"CreateInvoiceForThisSupplier");
1190 if ($permissiontodelete) {
1191 $arrayofmassactions[
'predelete'] =
img_picto(
'',
'delete',
'class="pictofixedwidth"').$langs->trans(
"Delete");
1193 if (in_array($massaction, array(
'presend',
'predelete',
'createbills'))) {
1194 $arrayofmassactions = array();
1196 $massactionbutton =
$form->selectMassAction(
'', $arrayofmassactions);
1198 $url = DOL_URL_ROOT.
'/fourn/commande/card.php?action=create';
1200 $url .=
'&socid='.((int) $socid);
1201 $url .=
'&backtopage='.urlencode(DOL_URL_ROOT.
'/fourn/commande/list.php?socid='.((
int) $socid));
1203 $newcardbutton =
'';
1204 $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'));
1205 $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'));
1206 $newcardbutton .=
dolGetButtonTitle($langs->trans(
'NewSupplierOrderShort'),
'',
'fa fa-plus-circle', $url,
'', $permissiontoadd);
1209 print
'<form method="POST" id="searchFormList" action="'.$_SERVER[
"PHP_SELF"].
'">';
1210 if ($optioncss !=
'') {
1211 print
'<input type="hidden" name="optioncss" value="'.$optioncss.
'">';
1213 print
'<input type="hidden" name="token" value="'.newToken().
'">';
1214 print
'<input type="hidden" name="formfilteraction" id="formfilteraction" value="list">';
1215 print
'<input type="hidden" name="action" value="list">';
1216 print
'<input type="hidden" name="sortfield" value="'.$sortfield.
'">';
1217 print
'<input type="hidden" name="sortorder" value="'.$sortorder.
'">';
1218 print
'<input type="hidden" name="contextpage" value="'.$contextpage.
'">';
1219 print
'<input type="hidden" name="socid" value="'.$socid.
'">';
1220 print
'<input type="hidden" name="mode" value="'.$mode.
'">';
1222 print_barre_liste($title, $page, $_SERVER[
"PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords,
'supplier_order', 0, $newcardbutton,
'', $limit, 0, 0, 1);
1224 $topicmail =
"SendOrderRef";
1225 $modelmail =
"order_supplier_send";
1227 $trackid =
'sord'.$object->id;
1228 include DOL_DOCUMENT_ROOT.
'/core/tpl/massactions_pre.tpl.php';
1230 if ($massaction ==
'prevalidate') {
1231 print
$form->formconfirm($_SERVER[
"PHP_SELF"], $langs->trans(
"ConfirmMassValidation"), $langs->trans(
"ConfirmMassValidationQuestion"),
"validate",
null,
'', 0, 200, 500, 1);
1234 if ($massaction ==
'createbills') {
1236 print
'<input type="hidden" name="massaction" value="confirm_createsupplierbills">';
1238 print
'<table class="noborder" width="100%" >';
1240 print
'<td class="titlefield">';
1241 print $langs->trans(
'DateInvoice');
1244 print
$form->selectDate(
'',
'',
'',
'',
'',
'', 1, 1);
1249 print $langs->trans(
'CreateOneBillByThird');
1252 print
$form->selectyesno(
'createbills_onebythird',
'', 1);
1257 print $langs->trans(
'ValidateInvoices');
1260 print
$form->selectyesno(
'validate_invoices', 1, 1);
1266 print
'<div class="center">';
1267 print
'<input type="submit" class="button" id="createbills" name="createbills" value="'.$langs->trans(
'CreateInvoiceForThisCustomer').
'"> ';
1268 print
'<input type="submit" class="button button-cancel" id="cancel" name="cancel" value="'.$langs->trans(
"Cancel").
'">';
1274 foreach ($fieldstosearchall as $key => $val) {
1275 $fieldstosearchall[$key] = $langs->trans($val);
1277 print
'<div class="divsearchfieldfilter">'.$langs->trans(
"FilterOnInto", $sall).join(
', ', $fieldstosearchall).
'</div>';
1280 $moreforfilter =
'';
1283 if ($user->hasRight(
"user",
"user",
"lire")) {
1284 $langs->load(
"commercial");
1285 $moreforfilter .=
'<div class="divsearchfield">';
1286 $tmptitle = $langs->trans(
'ThirdPartiesOfSaleRepresentative');
1287 $moreforfilter .=
img_picto($tmptitle,
'user',
'class="pictofixedwidth"').$formother->select_salesrepresentatives($search_sale,
'search_sale', $user, 0, $tmptitle,
'maxwidth250 widthcentpercentminusx');
1288 $moreforfilter .=
'</div>';
1291 if ($user->hasRight(
"user",
"user",
"lire")) {
1292 $moreforfilter .=
'<div class="divsearchfield">';
1293 $tmptitle = $langs->trans(
'LinkedToSpecificUsers');
1294 $moreforfilter .=
img_picto($tmptitle,
'user',
'class="pictofixedwidth"').$form->select_dolusers($search_user,
'search_user', $tmptitle,
'', 0,
'',
'', 0, 0, 0,
'', 0,
'',
'maxwidth250 widthcentpercentminusx');
1295 $moreforfilter .=
'</div>';
1298 if (
isModEnabled(
'categorie') && $user->hasRight(
'categorie',
'lire') && ($user->hasRight(
'produit',
'lire') || $user->hasRight(
'service',
'lire'))) {
1299 include_once DOL_DOCUMENT_ROOT.
'/categories/class/categorie.class.php';
1300 $moreforfilter .=
'<div class="divsearchfield">';
1301 $tmptitle = $langs->trans(
'IncludingProductWithTag');
1302 $cate_arbo =
$form->select_all_categories(Categorie::TYPE_PRODUCT,
null,
'parent',
null,
null, 1);
1303 $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);
1304 $moreforfilter .=
'</div>';
1306 $parameters = array();
1307 $reshook = $hookmanager->executeHooks(
'printFieldPreListTitle', $parameters);
1308 if (empty($reshook)) {
1309 $moreforfilter .= $hookmanager->resPrint;
1311 $moreforfilter = $hookmanager->resPrint;
1314 if (!empty($moreforfilter)) {
1315 print
'<div class="liste_titre liste_titre_bydiv centpercent">';
1316 print $moreforfilter;
1320 $varpage = empty($contextpage) ? $_SERVER[
"PHP_SELF"] : $contextpage;
1321 $selectedfields =
$form->multiSelectArrayWithCheckbox(
'selectedfields', $arrayfields, $varpage,
getDolGlobalString(
'MAIN_CHECKBOX_LEFT_COLUMN'));
1322 $selectedfields .=
$form->showCheckAddButtons(
'checkforselect', 1);
1324 if (
GETPOST(
'autoselectall',
'int')) {
1325 $selectedfields .=
'<script>';
1326 $selectedfields .=
' $(document).ready(function() {';
1327 $selectedfields .=
' console.log("Autoclick on checkforselects");';
1328 $selectedfields .=
' $("#checkforselects").click();';
1329 $selectedfields .=
' $("#massaction").val("createbills").change();';
1330 $selectedfields .=
' });';
1331 $selectedfields .=
'</script>';
1334 print
'<div class="div-table-responsive">';
1335 print
'<table class="tagtable liste'.($moreforfilter ?
" listwithfilterbefore" :
"").
'">'.
"\n";
1337 print
'<tr class="liste_titre_filter">';
1340 print
'<td class="liste_titre middle">';
1341 $searchpicto =
$form->showFilterButtons(
'left');
1346 if (!empty($arrayfields[
'cf.ref'][
'checked'])) {
1347 print
'<td class="liste_titre"><input size="8" type="text" class="flat maxwidth75" name="search_ref" value="'.$search_ref.
'"></td>';
1350 if (!empty($arrayfields[
'cf.ref_supplier'][
'checked'])) {
1351 print
'<td class="liste_titre"><input type="text" class="flat maxwidth75" name="search_refsupp" value="'.$search_refsupp.
'"></td>';
1354 if (!empty($arrayfields[
'cf.fk_projet'][
'checked'])) {
1355 print
'<td class="liste_titre"><input type="text" class="flat maxwidth100" name="search_project_ref" value="'.$search_project_ref.
'"></td>';
1358 if (!empty($arrayfields[
'u.login'][
'checked'])) {
1359 print
'<td class="liste_titre">';
1360 print
'<input type="text" class="flat" size="6" name="search_request_author" value="'.$search_request_author.
'">';
1364 if (!empty($arrayfields[
'cf.fk_soc'][
'checked'])) {
1365 print
'<td class="liste_titre"><input type="text" size="6" class="flat" name="search_company" value="'.$search_company.
'"></td>';
1368 if (!empty($arrayfields[
's.name_alias'][
'checked'])) {
1369 print
'<td class="liste_titre"><input type="text" size="6" class="flat" name="search_company_alias" value="'.$search_company_alias.
'"></td>';
1372 if (!empty($arrayfields[
's.town'][
'checked'])) {
1373 print
'<td class="liste_titre"><input class="flat maxwidth50" type="text" name="search_town" value="'.$search_town.
'"></td>';
1376 if (!empty($arrayfields[
's.zip'][
'checked'])) {
1377 print
'<td class="liste_titre"><input class="flat maxwidth50" type="text" name="search_zip" value="'.$search_zip.
'"></td>';
1380 if (!empty($arrayfields[
'state.nom'][
'checked'])) {
1381 print
'<td class="liste_titre">';
1382 print
'<input class="flat maxwidth50" type="text" name="search_state" value="'.dol_escape_htmltag($search_state).
'">';
1386 if (!empty($arrayfields[
'country.code_iso'][
'checked'])) {
1387 print
'<td class="liste_titre center">';
1388 print
$form->select_country($search_country,
'search_country',
'', 0,
'minwidth100imp maxwidth100');
1392 if (!empty($arrayfields[
'typent.code'][
'checked'])) {
1393 print
'<td class="liste_titre maxwidthonsmartphone center">';
1394 print
$form->selectarray(
"search_type_thirdparty", $formcompany->typent_array(0), $search_type_thirdparty, 1, 0, 0,
'', 0, 0, 0, (empty($conf->global->SOCIETE_SORT_ON_TYPEENT) ?
'ASC' : $conf->global->SOCIETE_SORT_ON_TYPEENT),
'', 1);
1398 if (!empty($arrayfields[
'cf.date_commande'][
'checked'])) {
1399 print
'<td class="liste_titre center">';
1400 print
'<div class="nowrap">';
1401 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'));
1403 print
'<div class="nowrap">';
1404 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'));
1409 if (!empty($arrayfields[
'cf.date_livraison'][
'checked'])) {
1410 print
'<td class="liste_titre center">';
1411 print
'<div class="nowrap">';
1412 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'));
1414 print
'<div class="nowrap">';
1415 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'));
1419 if (!empty($arrayfields[
'cf.total_ht'][
'checked'])) {
1421 print
'<td class="liste_titre right">';
1422 print
'<input class="flat" type="text" size="5" name="search_total_ht" value="'.$search_total_ht.
'">';
1425 if (!empty($arrayfields[
'cf.total_tva'][
'checked'])) {
1427 print
'<td class="liste_titre right">';
1428 print
'<input class="flat" type="text" size="5" name="search_total_tva" value="'.$search_total_tva.
'">';
1431 if (!empty($arrayfields[
'cf.total_ttc'][
'checked'])) {
1433 print
'<td class="liste_titre right">';
1434 print
'<input class="flat" type="text" size="5" name="search_total_ttc" value="'.$search_total_ttc.
'">';
1437 if (!empty($arrayfields[
'cf.multicurrency_code'][
'checked'])) {
1439 print
'<td class="liste_titre">';
1440 print
$form->selectMultiCurrency($search_multicurrency_code,
'search_multicurrency_code', 1);
1443 if (!empty($arrayfields[
'cf.multicurrency_tx'][
'checked'])) {
1445 print
'<td class="liste_titre">';
1446 print
'<input class="flat" type="text" size="4" name="search_multicurrency_tx" value="'.dol_escape_htmltag($search_multicurrency_tx).
'">';
1449 if (!empty($arrayfields[
'cf.multicurrency_total_ht'][
'checked'])) {
1451 print
'<td class="liste_titre right">';
1452 print
'<input class="flat" type="text" size="4" name="search_multicurrency_montant_ht" value="'.dol_escape_htmltag($search_multicurrency_montant_ht).
'">';
1455 if (!empty($arrayfields[
'cf.multicurrency_total_tva'][
'checked'])) {
1457 print
'<td class="liste_titre right">';
1458 print
'<input class="flat" type="text" size="4" name="search_multicurrency_montant_tva" value="'.dol_escape_htmltag($search_multicurrency_montant_tva).
'">';
1461 if (!empty($arrayfields[
'cf.multicurrency_total_ttc'][
'checked'])) {
1463 print
'<td class="liste_titre right">';
1464 print
'<input class="flat" type="text" size="4" name="search_multicurrency_montant_ttc" value="'.dol_escape_htmltag($search_multicurrency_montant_ttc).
'">';
1468 include DOL_DOCUMENT_ROOT.
'/core/tpl/extrafields_list_search_input.tpl.php';
1471 $parameters = array(
'arrayfields'=>$arrayfields);
1472 $reshook = $hookmanager->executeHooks(
'printFieldListOption', $parameters);
1473 print $hookmanager->resPrint;
1475 if (!empty($arrayfields[
'cf.date_creation'][
'checked'])) {
1476 print
'<td class="liste_titre">';
1480 if (!empty($arrayfields[
'cf.tms'][
'checked'])) {
1481 print
'<td class="liste_titre">';
1485 if (!empty($arrayfields[
'cf.fk_statut'][
'checked'])) {
1486 print
'<td class="liste_titre right">';
1487 $formorder->selectSupplierOrderStatus($search_status, 1,
'search_status');
1491 if (!empty($arrayfields[
'cf.billed'][
'checked'])) {
1492 print
'<td class="liste_titre center parentonrightofpage">';
1493 print
$form->selectyesno(
'search_billed', $search_billed, 1,
false, 1, 1,
'search_status width100 onrightofpage');
1497 if (!empty($arrayfields[
'cf.date_valid'][
'checked'])) {
1498 print
'<td class="liste_titre center">';
1499 print
'<div class="nowrap">';
1500 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'));
1502 print
'<div class="nowrap">';
1503 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'));
1508 if (!empty($arrayfields[
'cf.date_approve'][
'checked'])) {
1509 print
'<td class="liste_titre center">';
1510 print
'<div class="nowrap">';
1511 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'));
1513 print
'<div class="nowrap">';
1514 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'));
1519 if (!empty($arrayfields[
'cf.note_public'][
'checked'])) {
1520 print
'<td class="liste_titre">';
1524 if (!empty($arrayfields[
'cf.note_private'][
'checked'])) {
1525 print
'<td class="liste_titre">';
1530 print
'<td class="liste_titre middle">';
1531 $searchpicto =
$form->showFilterButtons();
1538 $totalarray = array();
1539 $totalarray[
'nbfield'] = 0;
1542 print
'<tr class="liste_titre">';
1544 print_liste_field_titre($selectedfields, $_SERVER[
"PHP_SELF"],
"",
'',
'',
'', $sortfield, $sortorder,
'center maxwidthsearch ');
1545 $totalarray[
'nbfield']++;
1547 if (!empty($arrayfields[
'cf.ref'][
'checked'])) {
1548 print_liste_field_titre($arrayfields[
'cf.ref'][
'label'], $_SERVER[
"PHP_SELF"],
"cf.ref",
"", $param,
'', $sortfield, $sortorder);
1549 $totalarray[
'nbfield']++;
1551 if (!empty($arrayfields[
'cf.ref_supplier'][
'checked'])) {
1552 print_liste_field_titre($arrayfields[
'cf.ref_supplier'][
'label'], $_SERVER[
"PHP_SELF"],
"cf.ref_supplier",
"", $param,
'', $sortfield, $sortorder,
'tdoverflowmax100imp ');
1553 $totalarray[
'nbfield']++;
1555 if (!empty($arrayfields[
'cf.fk_projet'][
'checked'])) {
1556 print_liste_field_titre($arrayfields[
'cf.fk_projet'][
'label'], $_SERVER[
"PHP_SELF"],
"p.ref",
"", $param,
'', $sortfield, $sortorder);
1557 $totalarray[
'nbfield']++;
1559 if (!empty($arrayfields[
'u.login'][
'checked'])) {
1560 print_liste_field_titre($arrayfields[
'u.login'][
'label'], $_SERVER[
"PHP_SELF"],
"u.login",
"", $param,
'', $sortfield, $sortorder);
1561 $totalarray[
'nbfield']++;
1563 if (!empty($arrayfields[
'cf.fk_soc'][
'checked'])) {
1564 print_liste_field_titre($arrayfields[
'cf.fk_soc'][
'label'], $_SERVER[
"PHP_SELF"],
"s.nom",
"", $param,
'', $sortfield, $sortorder);
1565 $totalarray[
'nbfield']++;
1567 if (!empty($arrayfields[
's.name_alias'][
'checked'])) {
1568 print_liste_field_titre($arrayfields[
's.name_alias'][
'label'], $_SERVER[
"PHP_SELF"],
"s.name_alias",
"", $param,
'', $sortfield, $sortorder);
1569 $totalarray[
'nbfield']++;
1571 if (!empty($arrayfields[
's.town'][
'checked'])) {
1572 print_liste_field_titre($arrayfields[
's.town'][
'label'], $_SERVER[
"PHP_SELF"],
's.town',
'', $param,
'', $sortfield, $sortorder);
1573 $totalarray[
'nbfield']++;
1575 if (!empty($arrayfields[
's.zip'][
'checked'])) {
1576 print_liste_field_titre($arrayfields[
's.zip'][
'label'], $_SERVER[
"PHP_SELF"],
's.zip',
'', $param,
'', $sortfield, $sortorder);
1577 $totalarray[
'nbfield']++;
1579 if (!empty($arrayfields[
'state.nom'][
'checked'])) {
1580 print_liste_field_titre($arrayfields[
'state.nom'][
'label'], $_SERVER[
"PHP_SELF"],
"state.nom",
"", $param,
'', $sortfield, $sortorder);
1581 $totalarray[
'nbfield']++;
1583 if (!empty($arrayfields[
'country.code_iso'][
'checked'])) {
1584 print_liste_field_titre($arrayfields[
'country.code_iso'][
'label'], $_SERVER[
"PHP_SELF"],
"country.code_iso",
"", $param,
'', $sortfield, $sortorder,
'center ');
1585 $totalarray[
'nbfield']++;
1587 if (!empty($arrayfields[
'typent.code'][
'checked'])) {
1588 print_liste_field_titre($arrayfields[
'typent.code'][
'label'], $_SERVER[
"PHP_SELF"],
"typent.code",
"", $param,
'', $sortfield, $sortorder,
'center ');
1589 $totalarray[
'nbfield']++;
1591 if (!empty($arrayfields[
'cf.fk_author'][
'checked'])) {
1592 print_liste_field_titre($arrayfields[
'cf.fk_author'][
'label'], $_SERVER[
"PHP_SELF"],
"cf.fk_author",
"", $param,
'', $sortfield, $sortorder);
1593 $totalarray[
'nbfield']++;
1595 if (!empty($arrayfields[
'cf.date_commande'][
'checked'])) {
1596 print_liste_field_titre($arrayfields[
'cf.date_commande'][
'label'], $_SERVER[
"PHP_SELF"],
"cf.date_commande",
"", $param,
'', $sortfield, $sortorder,
'center ');
1597 $totalarray[
'nbfield']++;
1599 if (!empty($arrayfields[
'cf.date_livraison'][
'checked'])) {
1600 print_liste_field_titre($arrayfields[
'cf.date_livraison'][
'label'], $_SERVER[
"PHP_SELF"],
'cf.date_livraison',
'', $param,
'', $sortfield, $sortorder,
'center ');
1601 $totalarray[
'nbfield']++;
1603 if (!empty($arrayfields[
'cf.total_ht'][
'checked'])) {
1604 print_liste_field_titre($arrayfields[
'cf.total_ht'][
'label'], $_SERVER[
"PHP_SELF"],
"cf.total_ht",
"", $param,
'', $sortfield, $sortorder,
'right ');
1605 $totalarray[
'nbfield']++;
1607 if (!empty($arrayfields[
'cf.total_tva'][
'checked'])) {
1608 print_liste_field_titre($arrayfields[
'cf.total_tva'][
'label'], $_SERVER[
"PHP_SELF"],
"cf.total_tva",
"", $param,
'', $sortfield, $sortorder,
'right ');
1609 $totalarray[
'nbfield']++;
1611 if (!empty($arrayfields[
'cf.total_ttc'][
'checked'])) {
1612 print_liste_field_titre($arrayfields[
'cf.total_ttc'][
'label'], $_SERVER[
"PHP_SELF"],
"cf.total_ttc",
"", $param,
'', $sortfield, $sortorder,
'right ');
1613 $totalarray[
'nbfield']++;
1615 if (!empty($arrayfields[
'cf.multicurrency_code'][
'checked'])) {
1616 print_liste_field_titre($arrayfields[
'cf.multicurrency_code'][
'label'], $_SERVER[
'PHP_SELF'],
'cf.multicurrency_code',
'', $param,
'', $sortfield, $sortorder);
1617 $totalarray[
'nbfield']++;
1619 if (!empty($arrayfields[
'cf.multicurrency_tx'][
'checked'])) {
1620 print_liste_field_titre($arrayfields[
'cf.multicurrency_tx'][
'label'], $_SERVER[
'PHP_SELF'],
'cf.multicurrency_tx',
'', $param,
'', $sortfield, $sortorder);
1621 $totalarray[
'nbfield']++;
1623 if (!empty($arrayfields[
'cf.multicurrency_total_ht'][
'checked'])) {
1624 print_liste_field_titre($arrayfields[
'cf.multicurrency_total_ht'][
'label'], $_SERVER[
'PHP_SELF'],
'cf.multicurrency_total_ht',
'', $param,
'class="right"', $sortfield, $sortorder);
1625 $totalarray[
'nbfield']++;
1627 if (!empty($arrayfields[
'cf.multicurrency_total_tva'][
'checked'])) {
1628 print_liste_field_titre($arrayfields[
'cf.multicurrency_total_tva'][
'label'], $_SERVER[
'PHP_SELF'],
'cf.multicurrency_total_tva',
'', $param,
'class="right"', $sortfield, $sortorder);
1629 $totalarray[
'nbfield']++;
1631 if (!empty($arrayfields[
'cf.multicurrency_total_ttc'][
'checked'])) {
1632 print_liste_field_titre($arrayfields[
'cf.multicurrency_total_ttc'][
'label'], $_SERVER[
'PHP_SELF'],
'cf.multicurrency_total_ttc',
'', $param,
'class="right"', $sortfield, $sortorder);
1633 $totalarray[
'nbfield']++;
1636 include DOL_DOCUMENT_ROOT.
'/core/tpl/extrafields_list_search_title.tpl.php';
1638 $parameters = array(
'arrayfields'=>$arrayfields,
'param'=>$param,
'sortfield'=>$sortfield,
'sortorder'=>$sortorder);
1639 $reshook = $hookmanager->executeHooks(
'printFieldListTitle', $parameters);
1640 print $hookmanager->resPrint;
1641 if (!empty($arrayfields[
'cf.date_creation'][
'checked'])) {
1642 print_liste_field_titre($arrayfields[
'cf.date_creation'][
'label'], $_SERVER[
"PHP_SELF"],
"cf.date_creation",
"", $param,
'', $sortfield, $sortorder,
'center nowrap ');
1643 $totalarray[
'nbfield']++;
1645 if (!empty($arrayfields[
'cf.tms'][
'checked'])) {
1646 print_liste_field_titre($arrayfields[
'cf.tms'][
'label'], $_SERVER[
"PHP_SELF"],
"cf.tms",
"", $param,
'', $sortfield, $sortorder,
'center nowrap ');
1647 $totalarray[
'nbfield']++;
1649 if (!empty($arrayfields[
'cf.fk_statut'][
'checked'])) {
1650 print_liste_field_titre($arrayfields[
'cf.fk_statut'][
'label'], $_SERVER[
"PHP_SELF"],
"cf.fk_statut",
"", $param,
'', $sortfield, $sortorder,
'right ');
1651 $totalarray[
'nbfield']++;
1653 if (!empty($arrayfields[
'cf.billed'][
'checked'])) {
1654 print_liste_field_titre($arrayfields[
'cf.billed'][
'label'], $_SERVER[
"PHP_SELF"],
'cf.billed',
'', $param,
'', $sortfield, $sortorder,
'center ');
1655 $totalarray[
'nbfield']++;
1657 if (!empty($arrayfields[
'cf.date_valid'][
'checked'])) {
1658 print_liste_field_titre($arrayfields[
'cf.date_valid'][
'label'], $_SERVER[
"PHP_SELF"],
"cf.date_valid",
"", $param,
'', $sortfield, $sortorder,
'center ');
1659 $totalarray[
'nbfield']++;
1661 if (!empty($arrayfields[
'cf.date_approve'][
'checked'])) {
1662 print_liste_field_titre($arrayfields[
'cf.date_approve'][
'label'], $_SERVER[
"PHP_SELF"],
'cf.date_approve',
'', $param,
'', $sortfield, $sortorder,
'center ');
1663 $totalarray[
'nbfield']++;
1665 if (!empty($arrayfields[
'cf.note_public'][
'checked'])) {
1666 print_liste_field_titre($arrayfields[
'cf.note_public'][
'label'], $_SERVER[
"PHP_SELF"],
"cf.note_public",
"", $param,
'', $sortfield, $sortorder,
'center ');
1667 $totalarray[
'nbfield']++;
1669 if (!empty($arrayfields[
'cf.note_private'][
'checked'])) {
1670 print_liste_field_titre($arrayfields[
'cf.note_private'][
'label'], $_SERVER[
"PHP_SELF"],
"cf.note_private",
"", $param,
'', $sortfield, $sortorder,
'center ');
1671 $totalarray[
'nbfield']++;
1674 print_liste_field_titre($selectedfields, $_SERVER[
"PHP_SELF"],
"",
'',
'',
'', $sortfield, $sortorder,
'center maxwidthsearch ');
1675 $totalarray[
'nbfield']++;
1681 $productstat_cache = array();
1683 $userstatic =
new User($db);
1685 $projectstatic =
new Project($db);
1688 $savnbfield = $totalarray[
'nbfield'];
1689 $totalarray = array(
'nbfield' => 0,
'val' => array(),
'pos' => array());
1690 $totalarray[
'val'][
'cf.total_ht'] = 0;
1691 $totalarray[
'val'][
'cf.total_ttc'] = 0;
1692 $totalarray[
'val'][
'cf.total_tva'] = 0;
1694 $imaxinloop = ($limit ? min($num, $limit) : $num);
1695 while ($i < $imaxinloop) {
1696 $obj = $db->fetch_object($resql);
1704 $objectstatic->id = $obj->rowid;
1705 $objectstatic->ref = $obj->ref;
1706 $objectstatic->socid = $obj->socid;
1707 $objectstatic->ref_supplier = $obj->ref_supplier;
1708 $objectstatic->socid = $obj->socid;
1709 $objectstatic->total_ht = $obj->total_ht;
1710 $objectstatic->total_tva = $obj->total_tva;
1711 $objectstatic->total_ttc = $obj->total_ttc;
1712 $objectstatic->date_commande = $db->jdate($obj->date_commande);
1713 $objectstatic->delivery_date = $db->jdate($obj->date_livraison);
1714 $objectstatic->note_public = $obj->note_public;
1715 $objectstatic->note_private = $obj->note_private;
1716 $objectstatic->statut = $obj->fk_statut;
1718 if ($mode ==
'kanban') {
1720 print
'<tr class="trkanban"><td colspan="'.$savnbfield.
'">';
1721 print
'<div class="box-flex-container kanban">';
1724 $thirdpartytmp->id = $obj->socid;
1725 $thirdpartytmp->name = $obj->name;
1726 $thirdpartytmp->email = $obj->email;
1727 $thirdpartytmp->name_alias = $obj->alias;
1728 $thirdpartytmp->client = $obj->client;
1729 $thirdpartytmp->fournisseur = $obj->fournisseur;
1730 $objectstatic->socid = $thirdpartytmp->getNomUrl(
'supplier', 0, 0, -1);
1732 print $objectstatic->getKanbanView(
'', array(
'selected' => in_array($objectstatic->id, $arrayofselected)));
1733 if ($i == ($imaxinloop - 1)) {
1738 print
'<tr class="oddeven">';
1741 print
'<td class="nowrap center">';
1742 if ($massactionbutton || $massaction) {
1744 if (in_array($obj->rowid, $arrayofselected)) {
1747 print
'<input id="cb'.$obj->rowid.
'" class="flat checkforselect" type="checkbox" name="toselect[]" value="'.$obj->rowid.
'"'.($selected ?
' checked="checked"' :
'').
'>';
1752 if (!empty($arrayfields[
'cf.ref'][
'checked'])) {
1753 print
'<td class="nowrap">';
1756 print $objectstatic->getNomUrl(1,
'', 0, -1, 1);
1760 print $formfile->getDocumentsLink($objectstatic->element, $filename, $filedir);
1764 $totalarray[
'nbfield']++;
1768 if (!empty($arrayfields[
'cf.ref_supplier'][
'checked'])) {
1769 print
'<td class="tdoverflowmax150" title="'.dol_escape_htmltag($obj->ref_supplier).
'">'.
dol_escape_htmltag($obj->ref_supplier).
'</td>'.
"\n";
1771 $totalarray[
'nbfield']++;
1775 if (!empty($arrayfields[
'cf.fk_projet'][
'checked'])) {
1776 $projectstatic->id = $obj->project_id;
1777 $projectstatic->ref = $obj->project_ref;
1778 $projectstatic->title = $obj->project_title;
1780 if ($obj->project_id > 0) {
1781 print $projectstatic->getNomUrl(1);
1785 $totalarray[
'nbfield']++;
1789 $userstatic->id = $obj->fk_user_author;
1790 $userstatic->lastname = $obj->lastname;
1791 $userstatic->firstname = $obj->firstname;
1792 $userstatic->login = $obj->login;
1793 $userstatic->photo = $obj->photo;
1794 $userstatic->email = $obj->user_email;
1795 $userstatic->statut = $obj->user_status;
1796 if (!empty($arrayfields[
'u.login'][
'checked'])) {
1797 print
'<td class="tdoverflowmax150">';
1798 if ($userstatic->id) {
1799 print $userstatic->getNomUrl(1);
1803 $totalarray[
'nbfield']++;
1807 if (!empty($arrayfields[
'cf.fk_soc'][
'checked'])) {
1808 print
'<td class="tdoverflowmax150">';
1809 $thirdpartytmp->id = $obj->socid;
1810 $thirdpartytmp->name = $obj->name;
1811 $thirdpartytmp->email = $obj->email;
1812 $thirdpartytmp->name_alias = $obj->alias;
1813 $thirdpartytmp->client = $obj->client;
1814 $thirdpartytmp->fournisseur = $obj->fournisseur;
1815 print $thirdpartytmp->getNomUrl(1,
'supplier', 0, 0, -1, empty($arrayfields[
's.name_alias'][
'checked']) ? 0 : 1);
1818 $totalarray[
'nbfield']++;
1822 if (!empty($arrayfields[
's.name_alias'][
'checked'])) {
1823 print
'<td class="tdoverflowmax150">';
1827 $totalarray[
'nbfield']++;
1831 if (!empty($arrayfields[
's.town'][
'checked'])) {
1836 $totalarray[
'nbfield']++;
1840 if (!empty($arrayfields[
's.zip'][
'checked'])) {
1845 $totalarray[
'nbfield']++;
1849 if (!empty($arrayfields[
'state.nom'][
'checked'])) {
1850 print
"<td>".$obj->state_name.
"</td>\n";
1852 $totalarray[
'nbfield']++;
1856 if (!empty($arrayfields[
'country.code_iso'][
'checked'])) {
1857 print
'<td class="center">';
1858 $tmparray =
getCountry($obj->fk_pays,
'all');
1859 print $tmparray[
'label'];
1862 $totalarray[
'nbfield']++;
1866 if (!empty($arrayfields[
'typent.code'][
'checked'])) {
1867 print
'<td class="center">';
1868 if (empty($typenArray)) {
1869 $typenArray = $formcompany->typent_array(1);
1871 print $typenArray[$obj->typent_code];
1874 $totalarray[
'nbfield']++;
1879 if (!empty($arrayfields[
'cf.date_commande'][
'checked'])) {
1880 print
'<td class="center">';
1882 if ($objectstatic->statut != $objectstatic::STATUS_ORDERSENT && $objectstatic->statut != $objectstatic::STATUS_RECEIVED_PARTIALLY) {
1883 if ($objectstatic->hasDelay()) {
1884 print
' '.img_picto($langs->trans(
"Late").
' : '.$objectstatic->showDelay(),
"warning");
1889 $totalarray[
'nbfield']++;
1893 if (!empty($arrayfields[
'cf.date_livraison'][
'checked'])) {
1894 print
'<td class="center">';
1896 if ($objectstatic->statut == $objectstatic::STATUS_ORDERSENT || $objectstatic->statut == $objectstatic::STATUS_RECEIVED_PARTIALLY) {
1897 if ($objectstatic->hasDelay()) {
1898 print
' '.img_picto($langs->trans(
"Late").
' : '.$objectstatic->showDelay(),
"warning");
1903 $totalarray[
'nbfield']++;
1907 if (!empty($arrayfields[
'cf.total_ht'][
'checked'])) {
1908 print
'<td class="right"><span class="amount">'.price($obj->total_ht).
"</span></td>\n";
1910 $totalarray[
'nbfield']++;
1913 $totalarray[
'pos'][$totalarray[
'nbfield']] =
'cf.total_ht';
1915 $totalarray[
'val'][
'cf.total_ht'] += $obj->total_ht;
1918 if (!empty($arrayfields[
'cf.total_tva'][
'checked'])) {
1919 print
'<td class="right"><span class="amount">'.price($obj->total_tva).
"</span></td>\n";
1921 $totalarray[
'nbfield']++;
1924 $totalarray[
'pos'][$totalarray[
'nbfield']] =
'cf.total_tva';
1926 $totalarray[
'val'][
'cf.total_tva'] += $obj->total_tva;
1929 if (!empty($arrayfields[
'cf.total_ttc'][
'checked'])) {
1930 print
'<td class="right"><span class="amount">'.price($obj->total_ttc).
"</span></td>\n";
1932 $totalarray[
'nbfield']++;
1935 $totalarray[
'pos'][$totalarray[
'nbfield']] =
'cf.total_ttc';
1937 $totalarray[
'val'][
'cf.total_ttc'] += $obj->total_ttc;
1941 if (!empty($arrayfields[
'cf.multicurrency_code'][
'checked'])) {
1942 print
'<td class="nowrap">'.$obj->multicurrency_code.
' - '.$langs->trans(
'Currency'.$obj->multicurrency_code).
"</td>\n";
1944 $totalarray[
'nbfield']++;
1949 if (!empty($arrayfields[
'cf.multicurrency_tx'][
'checked'])) {
1950 print
'<td class="nowrap">';
1951 $form->form_multicurrency_rate($_SERVER[
'PHP_SELF'].
'?id='.$obj->rowid, $obj->multicurrency_tx,
'none', $obj->multicurrency_code);
1954 $totalarray[
'nbfield']++;
1958 if (!empty($arrayfields[
'cf.multicurrency_total_ht'][
'checked'])) {
1959 print
'<td class="right nowrap"><span class="amount">'.price($obj->multicurrency_total_ht).
"</span></td>\n";
1961 $totalarray[
'nbfield']++;
1965 if (!empty($arrayfields[
'cf.multicurrency_total_tva'][
'checked'])) {
1966 print
'<td class="right nowrap"><span class="amount">'.price($obj->multicurrency_total_tva).
"</span></td>\n";
1968 $totalarray[
'nbfield']++;
1972 if (!empty($arrayfields[
'cf.multicurrency_total_ttc'][
'checked'])) {
1973 print
'<td class="right nowrap"><span class="amount">'.price($obj->multicurrency_total_ttc).
"</span></td>\n";
1975 $totalarray[
'nbfield']++;
1980 include DOL_DOCUMENT_ROOT.
'/core/tpl/extrafields_list_print_fields.tpl.php';
1982 $parameters = array(
'arrayfields'=>$arrayfields,
'obj'=>$obj,
'i'=>$i,
'totalarray'=>&$totalarray);
1983 $reshook = $hookmanager->executeHooks(
'printFieldListValue', $parameters);
1984 print $hookmanager->resPrint;
1986 if (!empty($arrayfields[
'cf.date_creation'][
'checked'])) {
1987 print
'<td class="center nowrap">';
1988 print
dol_print_date($db->jdate($obj->date_creation),
'dayhour',
'tzuser');
1991 $totalarray[
'nbfield']++;
1995 if (!empty($arrayfields[
'cf.tms'][
'checked'])) {
1996 print
'<td class="center nowrap">';
1997 print
dol_print_date($db->jdate($obj->date_update),
'dayhour',
'tzuser');
2000 $totalarray[
'nbfield']++;
2004 if (!empty($arrayfields[
'cf.fk_statut'][
'checked'])) {
2005 print
'<td class="right nowrap">'.$objectstatic->LibStatut($obj->fk_statut, 5, $obj->billed).
'</td>';
2007 $totalarray[
'nbfield']++;
2011 if (!empty($arrayfields[
'cf.billed'][
'checked'])) {
2012 print
'<td class="center">'.yn($obj->billed).
'</td>';
2014 $totalarray[
'nbfield']++;
2019 if (!empty($arrayfields[
'cf.date_valid'][
'checked'])) {
2020 print
'<td class="center">';
2024 $totalarray[
'nbfield']++;
2028 if (!empty($arrayfields[
'cf.date_approve'][
'checked'])) {
2029 print
'<td class="center">';
2033 $totalarray[
'nbfield']++;
2037 if (!empty($arrayfields[
'cf.note_public'][
'checked'])) {
2038 print
'<td class="center">';
2042 $totalarray[
'nbfield']++;
2047 if (!empty($arrayfields[
'cf.note_private'][
'checked'])) {
2048 print
'<td class="center">';
2052 $totalarray[
'nbfield']++;
2058 print
'<td class="nowrap center">';
2059 if ($massactionbutton || $massaction) {
2061 if (in_array($obj->rowid, $arrayofselected)) {
2064 print
'<input id="cb'.$obj->rowid.
'" class="flat checkforselect" type="checkbox" name="toselect[]" value="'.$obj->rowid.
'"'.($selected ?
' checked="checked"' :
'').
'>';
2069 $totalarray[
'nbfield']++;
2074 $total += $obj->total_ht;
2075 $subtotal += $obj->total_ht;
2081 include DOL_DOCUMENT_ROOT.
'/core/tpl/list_print_total.tpl.php';
2086 foreach ($arrayfields as $key => $val) {
2087 if (!empty($val[
'checked'])) {
2091 print
'<tr><td colspan="'.$colspan.
'"><span class="opacitymedium">'.$langs->trans(
"NoRecordFound").
'</span></td></tr>';
2096 $parameters = array(
'arrayfields'=>$arrayfields,
'sql'=>
$sql);
2097 $reshook = $hookmanager->executeHooks(
'printFieldListFooter', $parameters);
2098 print $hookmanager->resPrint;
2100 print
'</table>'.
"\n";
2103 print
'</form>'.
"\n";
2105 $hidegeneratedfilelistifempty = 1;
2106 if ($massaction ==
'builddoc' || $action ==
'remove_file' || $show_files) {
2107 $hidegeneratedfilelistifempty = 0;
2111 $urlsource = $_SERVER[
'PHP_SELF'].
'?sortfield='.$sortfield.
'&sortorder='.$sortorder;
2112 $urlsource .= str_replace(
'&',
'&', $param);
2114 $filedir = $diroutputmassaction;
2115 $genallowed = $permissiontoread;
2116 $delallowed = $permissiontoadd;
2118 print $formfile->showdocuments(
'massfilesarea_supplier_order',
'', $filedir, $urlsource, 0, $delallowed,
'', 1, 1, 0, 48, 1, $param, $title,
'',
'',
'',
null, $hidegeneratedfilelistifempty);
if(GETPOST('button_removefilter_x', 'alpha')||GETPOST('button_removefilter.x', 'alpha')||GETPOST('button_removefilter', 'alpha')) if(GETPOST('button_search_x', 'alpha')||GETPOST('button_search.x', 'alpha')||GETPOST('button_search', 'alpha')) if($action=="save" &&empty($cancel)) $help_url
View.
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=0, $outputlangs='', $entconv=1, $searchlabel='')
Return country label, code or id from an id, code or label.
if(isModEnabled('facture') && $user->hasRight('facture', 'lire')) if((isModEnabled('fournisseur') &&empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD) && $user->hasRight("fournisseur", "facture", "lire"))||(isModEnabled('supplier_invoice') && $user->hasRight("supplier_invoice", "lire"))) if(isModEnabled('don') && $user->hasRight('don', 'lire')) if(isModEnabled('tax') &&!empty($user->rights->tax->charges->lire)) if(isModEnabled('facture') &&isModEnabled('commande') && $user->hasRight("commande", "lire") &&empty($conf->global->WORKFLOW_DISABLE_CREATE_INVOICE_FROM_ORDER)) $sql
Social contributions to pay.
if($cancel &&! $id) if($action=='add' &&! $cancel) if($action=='delete') if($id) $form
Actions.
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.
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...
dol_print_date($time, $format='', $tzoutput='auto', $outputlangs='', $encodetooutput=false)
Output date in a string format according to outputlangs (or langs if not defined).
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 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...
dol_eval($s, $returnvalue=0, $hideerrors=1, $onlysimplestring='1')
Replace eval function to add more security.
print_liste_field_titre($name, $file="", $field="", $begin="", $moreparam="", $moreattrib="", $sortfield="", $sortorder="", $prefix="", $tooltip="", $forcenowrapcolumntitle=0)
Show title line of an array.
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.
GETPOSTISSET($paramname)
Return true if we are in a context of submitting the parameter $paramname from a POST of a form.
getDolGlobalString($key, $default='')
Return dolibarr global constant string value.
isModEnabled($module)
Is Dolibarr module enabled.
dol_escape_htmltag($stringtoescape, $keepb=0, $keepn=0, $noescapetags='', $escapeonlyhtmltags=0, $cleanalsojavascript=0)
Returns text escaped for inclusion in HTML alt or title or value tags, or into values of HTML input f...
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.