37 require
'../main.inc.php';
38 require_once DOL_DOCUMENT_ROOT.
'/core/class/html.formother.class.php';
39 require_once DOL_DOCUMENT_ROOT.
'/core/class/html.formfile.class.php';
40 require_once DOL_DOCUMENT_ROOT.
'/core/lib/date.lib.php';
41 require_once DOL_DOCUMENT_ROOT.
'/core/lib/company.lib.php';
42 require_once DOL_DOCUMENT_ROOT.
'/core/class/html.formpropal.class.php';
43 require_once DOL_DOCUMENT_ROOT.
'/core/class/html.formcompany.class.php';
44 require_once DOL_DOCUMENT_ROOT.
'/supplier_proposal/class/supplier_proposal.class.php';
45 if (!empty($conf->project->enabled)) {
46 require_once DOL_DOCUMENT_ROOT.
'/projet/class/project.class.php';
50 $langs->loadLangs(array(
'companies',
'propal',
'supplier_proposal',
'compta',
'bills',
'orders',
'products'));
52 $socid =
GETPOST(
'socid',
'int');
54 $action =
GETPOST(
'action',
'aZ09');
55 $massaction =
GETPOST(
'massaction',
'alpha');
56 $show_files =
GETPOST(
'show_files',
'int');
57 $confirm =
GETPOST(
'confirm',
'alpha');
58 $toselect =
GETPOST(
'toselect',
'array');
59 $contextpage =
GETPOST(
'contextpage',
'aZ') ?
GETPOST(
'contextpage',
'aZ') :
'supplierproposallist';
61 $search_user =
GETPOST(
'search_user',
'int');
62 $search_sale =
GETPOST(
'search_sale',
'int');
64 $search_societe =
GETPOST(
'search_societe',
'alpha');
65 $search_societe_alias =
GETPOST(
'search_societe_alias',
'alpha');
66 $search_login =
GETPOST(
'search_login',
'alpha');
67 $search_town =
GETPOST(
'search_town',
'alpha');
68 $search_zip =
GETPOST(
'search_zip',
'alpha');
69 $search_state =
GETPOST(
"search_state");
70 $search_country =
GETPOST(
"search_country",
'int');
71 $search_date_startday =
GETPOST(
'search_date_startday',
'int');
72 $search_date_startmonth =
GETPOST(
'search_date_startmonth',
'int');
73 $search_date_startyear =
GETPOST(
'search_date_startyear',
'int');
74 $search_date_endday =
GETPOST(
'search_date_endday',
'int');
75 $search_date_endmonth =
GETPOST(
'search_date_endmonth',
'int');
76 $search_date_endyear =
GETPOST(
'search_date_endyear',
'int');
77 $search_date_start =
dol_mktime(0, 0, 0, $search_date_startmonth, $search_date_startday, $search_date_startyear);
78 $search_date_end =
dol_mktime(23, 59, 59, $search_date_endmonth, $search_date_endday, $search_date_endyear);
79 $search_date_valid_startday =
GETPOST(
'search_date_valid_startday',
'int');
80 $search_date_valid_startmonth =
GETPOST(
'search_date_valid_startmonth',
'int');
81 $search_date_valid_startyear =
GETPOST(
'search_date_valid_startyear',
'int');
82 $search_date_valid_endday =
GETPOST(
'search_date_valid_endday',
'int');
83 $search_date_valid_endmonth =
GETPOST(
'search_date_valid_endmonth',
'int');
84 $search_date_valid_endyear =
GETPOST(
'search_date_valid_endyear',
'int');
85 $search_date_valid_start =
dol_mktime(0, 0, 0, $search_date_valid_startmonth, $search_date_valid_startday, $search_date_valid_startyear);
86 $search_date_valid_end =
dol_mktime(23, 59, 59, $search_date_valid_endmonth, $search_date_valid_endday, $search_date_valid_endyear);
87 $search_type_thirdparty =
GETPOST(
"search_type_thirdparty",
'int');
88 $search_montant_ht =
GETPOST(
'search_montant_ht',
'alpha');
89 $search_montant_vat =
GETPOST(
'search_montant_vat',
'alpha');
90 $search_montant_ttc =
GETPOST(
'search_montant_ttc',
'alpha');
91 $search_multicurrency_code =
GETPOST(
'search_multicurrency_code',
'alpha');
92 $search_multicurrency_tx =
GETPOST(
'search_multicurrency_tx',
'alpha');
93 $search_multicurrency_montant_ht =
GETPOST(
'search_multicurrency_montant_ht',
'alpha');
94 $search_multicurrency_montant_vat =
GETPOST(
'search_multicurrency_montant_vat',
'alpha');
95 $search_multicurrency_montant_ttc =
GETPOST(
'search_multicurrency_montant_ttc',
'alpha');
96 $search_status =
GETPOST(
'search_status',
'int');
97 $search_product_category =
GETPOST(
'search_product_category',
'int');
99 $object_statut = $db->escape(
GETPOST(
'supplier_proposal_statut'));
100 $search_btn =
GETPOST(
'button_search',
'alpha');
101 $search_remove_btn =
GETPOST(
'button_removefilter',
'alpha');
103 $sall = trim((
GETPOST(
'search_all',
'alphanohtml') !=
'') ?
GETPOST(
'search_all',
'alphanohtml') :
GETPOST(
'sall',
'alphanohtml'));
107 $optioncss =
GETPOST(
'optioncss',
'alpha');
108 $limit =
GETPOST(
'limit',
'int') ?
GETPOST(
'limit',
'int') : $conf->liste_limit;
109 $sortfield =
GETPOST(
'sortfield',
'aZ09comma');
110 $sortorder =
GETPOST(
'sortorder',
'aZ09comma');
112 if (empty($page) || $page == -1 || !empty($search_btn) || !empty($search_remove_btn) || (empty($toselect) && $massaction ===
'0')) {
115 $offset = $limit * $page;
116 $pageprev = $page - 1;
117 $pagenext = $page + 1;
119 $sortfield =
'sp.date_livraison';
125 if ($object_statut !=
'') {
126 $search_status = $object_statut;
133 $module =
'supplier_proposal';
136 if (!empty($user->socid)) {
137 $socid = $user->socid;
139 if (!empty($socid)) {
142 $dbtable =
'&societe';
145 $diroutputmassaction = $conf->supplier_proposal->dir_output.
'/temp/massgeneration/'.$user->id;
149 $hookmanager->initHooks(array(
'supplier_proposallist'));
153 $extrafields->fetch_name_optionals_label($object->table_element);
155 $search_array_options = $extrafields->getOptionalsFromPost($object->table_element,
'',
'search_');
159 $fieldstosearchall = array(
162 'pd.description'=>
'Description',
163 'sp.note_public'=>
'NotePublic',
165 if (empty($user->socid)) {
166 $fieldstosearchall[
"p.note_private"] =
"NotePrivate";
169 $checkedtypetiers = 0;
170 $arrayfields = array(
171 'sp.ref'=>array(
'label'=>$langs->trans(
"Ref"),
'checked'=>1),
172 's.nom'=>array(
'label'=>$langs->trans(
"Supplier"),
'checked'=>1),
173 's.name_alias'=>array(
'label'=>
"AliasNameShort",
'checked'=>0),
174 's.town'=>array(
'label'=>$langs->trans(
"Town"),
'checked'=>1),
175 's.zip'=>array(
'label'=>$langs->trans(
"Zip"),
'checked'=>1),
176 'state.nom'=>array(
'label'=>$langs->trans(
"StateShort"),
'checked'=>0),
177 'country.code_iso'=>array(
'label'=>$langs->trans(
"Country"),
'checked'=>0),
178 'typent.code'=>array(
'label'=>$langs->trans(
"ThirdPartyType"),
'checked'=>$checkedtypetiers),
179 'sp.date_valid'=>array(
'label'=>$langs->trans(
"DateValidation"),
'checked'=>1),
180 'sp.date_livraison'=>array(
'label'=>$langs->trans(
"DateEnd"),
'checked'=>1),
181 'sp.total_ht'=>array(
'label'=>$langs->trans(
"AmountHT"),
'checked'=>1),
182 'sp.total_tva'=>array(
'label'=>$langs->trans(
"AmountVAT"),
'checked'=>0),
183 'sp.total_ttc'=>array(
'label'=>$langs->trans(
"AmountTTC"),
'checked'=>0),
184 'sp.multicurrency_code'=>array(
'label'=>
'Currency',
'checked'=>0,
'enabled'=>(!
isModEnabled(
"multicurrency") ? 0 : 1)),
185 'sp.multicurrency_tx'=>array(
'label'=>
'CurrencyRate',
'checked'=>0,
'enabled'=>(!
isModEnabled(
"multicurrency") ? 0 : 1)),
186 'sp.multicurrency_total_ht'=>array(
'label'=>
'MulticurrencyAmountHT',
'checked'=>0,
'enabled'=>(!
isModEnabled(
"multicurrency") ? 0 : 1)),
187 'sp.multicurrency_total_vat'=>array(
'label'=>
'MulticurrencyAmountVAT',
'checked'=>0,
'enabled'=>(!
isModEnabled(
"multicurrency") ? 0 : 1)),
188 'sp.multicurrency_total_ttc'=>array(
'label'=>
'MulticurrencyAmountTTC',
'checked'=>0,
'enabled'=>(!
isModEnabled(
"multicurrency") ? 0 : 1)),
189 'u.login'=>array(
'label'=>$langs->trans(
"Author"),
'checked'=>1,
'position'=>10),
190 'sp.datec'=>array(
'label'=>$langs->trans(
"DateCreation"),
'checked'=>0,
'position'=>500),
191 'sp.tms'=>array(
'label'=>$langs->trans(
"DateModificationShort"),
'checked'=>0,
'position'=>500),
192 'sp.fk_statut'=>array(
'label'=>$langs->trans(
"Status"),
'checked'=>1,
'position'=>1000),
195 include DOL_DOCUMENT_ROOT.
'/core/tpl/extrafields_list_array_fields.tpl.php';
202 $permissiontoread = $user->rights->supplier_proposal->lire;
203 $permissiontodelete = $user->rights->supplier_proposal->supprimer;
210 if (
GETPOST(
'cancel',
'alpha')) {
214 if (!
GETPOST(
'confirmmassaction',
'alpha') && $massaction !=
'presend' && $massaction !=
'confirm_presend') {
218 $parameters = array(
'socid'=>$socid);
219 $reshook = $hookmanager->executeHooks(
'doActions', $parameters, $object, $action);
224 if (empty($reshook)) {
226 include DOL_DOCUMENT_ROOT.
'/core/actions_changeselectedfields.inc.php';
229 if (
GETPOST(
'button_removefilter_x',
'alpha') ||
GETPOST(
'button_removefilter.x',
'alpha') ||
GETPOST(
'button_removefilter',
'alpha')) {
234 $search_societe =
'';
235 $search_societe_alias =
'';
236 $search_montant_ht =
'';
237 $search_montant_vat =
'';
238 $search_montant_ttc =
'';
239 $search_multicurrency_code =
'';
240 $search_multicurrency_tx =
'';
241 $search_multicurrency_montant_ht =
'';
242 $search_multicurrency_montant_vat =
'';
243 $search_multicurrency_montant_ttc =
'';
245 $search_product_category =
'';
250 $search_country =
'';
251 $search_type_thirdparty =
'';
252 $search_date_startday =
'';
253 $search_date_startmonth =
'';
254 $search_date_startyear =
'';
255 $search_date_endday =
'';
256 $search_date_endmonth =
'';
257 $search_date_endyear =
'';
258 $search_date_start =
'';
259 $search_date_end =
'';
260 $search_date_valid_startday =
'';
261 $search_date_valid_startmonth =
'';
262 $search_date_valid_startyear =
'';
263 $search_date_valid_endday =
'';
264 $search_date_valid_endmonth =
'';
265 $search_date_valid_endyear =
'';
266 $search_date_valid_start =
'';
267 $search_date_valid_end =
'';
272 $objectclass =
'SupplierProposal';
273 $objectlabel =
'SupplierProposals';
274 $uploaddir = $conf->supplier_proposal->dir_output;
275 include DOL_DOCUMENT_ROOT.
'/core/actions_massactions.inc.php';
287 $companystatic =
new Societe($db);
292 $varpage = empty($contextpage) ? $_SERVER[
"PHP_SELF"] : $contextpage;
293 $selectedfields =
$form->multiSelectArrayWithCheckbox(
'selectedfields', $arrayfields, $varpage);
295 $title = $langs->trans(
'ListOfSupplierProposals');
296 $help_url =
'EN:Ask_Price_Supplier|FR:Demande_de_prix_fournisseur';
302 if ($sall || $search_user > 0) {
303 $sql =
'SELECT DISTINCT';
305 $sql .=
' s.rowid as socid, s.nom as name, s.name_alias as alias, s.town, s.zip, s.fk_pays, s.client, s.code_client,';
306 $sql .=
" typent.code as typent_code,";
307 $sql .=
" state.code_departement as state_code, state.nom as state_name,";
308 $sql .=
' sp.rowid, sp.note_public, sp.note_private, sp.total_ht, sp.total_tva, sp.total_ttc, sp.localtax1, sp.localtax2, sp.ref, sp.fk_statut as status, sp.fk_user_author, sp.date_valid, sp.date_livraison as dp,';
309 $sql .=
' sp.fk_multicurrency, sp.multicurrency_code, sp.multicurrency_tx, sp.multicurrency_total_ht, sp.multicurrency_total_tva as multicurrency_total_vat, sp.multicurrency_total_ttc,';
310 $sql .=
' sp.datec as date_creation, sp.tms as date_update,';
311 $sql .=
" p.rowid as project_id, p.ref as project_ref,";
312 if (empty($user->rights->societe->client->voir) && !$socid) {
313 $sql .=
" sc.fk_soc, sc.fk_user,";
315 $sql .=
" u.firstname, u.lastname, u.photo, u.login, u.statut as ustatus, u.admin, u.employee, u.email as uemail";
317 if (!empty($extrafields->attributes[$object->table_element][
'label'])) {
318 foreach ($extrafields->attributes[$object->table_element][
'label'] as $key => $val) {
319 $sql .= ($extrafields->attributes[$object->table_element][
'type'][$key] !=
'separate' ?
", ef.".$key.
" as options_".$key :
'');
323 $parameters = array();
324 $reshook = $hookmanager->executeHooks(
'printFieldListSelect', $parameters);
325 $sql .= $hookmanager->resPrint;
326 $sql .=
' FROM '.MAIN_DB_PREFIX.
'societe as s';
327 $sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"c_country as country on (country.rowid = s.fk_pays)";
328 $sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"c_typent as typent on (typent.id = s.fk_typent)";
329 $sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"c_departements as state on (state.rowid = s.fk_departement)";
330 $sql .=
', '.MAIN_DB_PREFIX.
'supplier_proposal as sp';
331 if (isset($extrafields->attributes[$object->table_element][
'label']) && is_array($extrafields->attributes[$object->table_element][
'label']) && count($extrafields->attributes[$object->table_element][
'label'])) {
332 $sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.$object->table_element.
"_extrafields as ef on (sp.rowid = ef.fk_object)";
335 $sql .=
' LEFT JOIN '.MAIN_DB_PREFIX.
'supplier_proposaldet as pd ON sp.rowid=pd.fk_supplier_proposal';
337 $sql .=
' LEFT JOIN '.MAIN_DB_PREFIX.
'user as u ON sp.fk_user_author = u.rowid';
338 $sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"projet as p ON p.rowid = sp.fk_projet";
340 if ($search_sale > 0 || (empty($user->rights->societe->client->voir) && !$socid)) {
341 $sql .=
", ".MAIN_DB_PREFIX.
"societe_commerciaux as sc";
343 if ($search_user > 0) {
344 $sql .=
", ".MAIN_DB_PREFIX.
"element_contact as c";
345 $sql .=
", ".MAIN_DB_PREFIX.
"c_type_contact as tc";
347 $sql .=
' WHERE sp.fk_soc = s.rowid';
348 $sql .=
' AND sp.entity IN ('.getEntity(
'supplier_proposal').
')';
349 if (empty($user->rights->societe->client->voir) && !$socid) {
350 $sql .=
" AND s.rowid = sc.fk_soc AND sc.fk_user = ".((int) $user->id);
361 if ($search_country) {
362 $sql .=
" AND s.fk_pays IN (".$db->sanitize($search_country).
')';
364 if ($search_type_thirdparty !=
'' && $search_type_thirdparty > 0) {
365 $sql .=
" AND s.fk_typent IN (".$db->sanitize($search_type_thirdparty).
')';
370 if (empty($arrayfields[
's.name_alias'][
'checked']) && $search_societe) {
371 $sql .=
natural_search(array(
"s.nom",
"s.name_alias"), $search_societe);
373 if ($search_societe) {
376 if ($search_societe_alias) {
381 $sql .=
natural_search(array(
'u.lastname',
'u.firstname',
'u.login'), $search_login);
383 if ($search_montant_ht) {
386 if ($search_montant_vat !=
'') {
389 if ($search_montant_ttc !=
'') {
392 if ($search_multicurrency_code !=
'') {
393 $sql .=
" AND sp.multicurrency_code = '".$db->escape($search_multicurrency_code).
"'";
395 if ($search_multicurrency_tx !=
'') {
396 $sql .=
natural_search(
'sp.multicurrency_tx', $search_multicurrency_tx, 1);
398 if ($search_multicurrency_montant_ht !=
'') {
399 $sql .=
natural_search(
'sp.multicurrency_total_ht', $search_multicurrency_montant_ht, 1);
401 if ($search_multicurrency_montant_vat !=
'') {
402 $sql .=
natural_search(
'sp.multicurrency_total_tva', $search_multicurrency_montant_vat, 1);
404 if ($search_multicurrency_montant_ttc !=
'') {
405 $sql .=
natural_search(
'sp.multicurrency_total_ttc', $search_multicurrency_montant_ttc, 1);
411 $sql .=
' AND s.rowid = '.((int) $socid);
413 if ($search_status >= 0 && $search_status !=
'') {
414 $sql .=
' AND sp.fk_statut IN ('.$db->sanitize($db->escape($search_status)).
')';
416 if ($search_date_start) {
417 $sql .=
" AND sp.date_livraison >= '".$db->idate($search_date_start).
"'";
419 if ($search_date_end) {
420 $sql .=
" AND sp.date_livraison <= '".$db->idate($search_date_end).
"'";
422 if ($search_date_valid_start) {
423 $sql .=
" AND sp.date_valid >= '".$db->idate($search_date_valid_start).
"'";
425 if ($search_date_valid_end) {
426 $sql .=
" AND sp.date_valid <= '".$db->idate($search_date_valid_end).
"'";
428 if ($search_sale > 0) {
429 $sql .=
" AND s.rowid = sc.fk_soc AND sc.fk_user = ".((int) $search_sale);
431 if ($search_user > 0) {
432 $sql .=
" AND c.fk_c_type_contact = tc.rowid AND tc.element='supplier_proposal' AND tc.source='internal' AND c.element_id = sp.rowid AND c.fk_socpeople = ".((int) $search_user);
435 $searchCategoryProductOperator = -1;
436 $searchCategoryProductList = array($search_product_category);
437 if (!empty($searchCategoryProductList)) {
438 $searchCategoryProductSqlList = array();
439 $listofcategoryid =
'';
440 foreach ($searchCategoryProductList as $searchCategoryProduct) {
441 if (intval($searchCategoryProduct) == -2) {
442 $searchCategoryProductSqlList[] =
"NOT EXISTS (SELECT ck.fk_product FROM ".MAIN_DB_PREFIX.
"categorie_product as ck, ".MAIN_DB_PREFIX.
"supplier_proposaldet as sd WHERE sd.fk_supplier_proposal = sp.rowid AND sd.fk_product = ck.fk_product)";
443 } elseif (intval($searchCategoryProduct) > 0) {
444 if ($searchCategoryProductOperator == 0) {
445 $searchCategoryProductSqlList[] =
" EXISTS (SELECT ck.fk_product FROM ".MAIN_DB_PREFIX.
"categorie_product as ck, ".MAIN_DB_PREFIX.
"supplier_proposaldet as sd WHERE sd.fk_supplier_proposal = sp.rowid AND sd.fk_product = ck.fk_product AND ck.fk_categorie = ".((int) $searchCategoryProduct).
")";
447 $listofcategoryid .= ($listofcategoryid ?
', ' :
'') .((
int) $searchCategoryProduct);
451 if ($listofcategoryid) {
452 $searchCategoryProductSqlList[] =
" EXISTS (SELECT ck.fk_product FROM ".MAIN_DB_PREFIX.
"categorie_product as ck, ".MAIN_DB_PREFIX.
"supplier_proposaldet as sd WHERE sd.fk_supplier_proposal = sp.rowid AND sd.fk_product = ck.fk_product AND ck.fk_categorie IN (".$db->sanitize($listofcategoryid).
"))";
454 if ($searchCategoryProductOperator == 1) {
455 if (!empty($searchCategoryProductSqlList)) {
456 $sql .=
" AND (".implode(
' OR ', $searchCategoryProductSqlList).
")";
459 if (!empty($searchCategoryProductSqlList)) {
460 $sql .=
" AND (".implode(
' AND ', $searchCategoryProductSqlList).
")";
465 include DOL_DOCUMENT_ROOT.
'/core/tpl/extrafields_list_search_sql.tpl.php';
467 $parameters = array();
468 $reshook = $hookmanager->executeHooks(
'printFieldListWhere', $parameters, $object, $action);
469 $sql .= $hookmanager->resPrint;
471 $sql .= $db->order($sortfield, $sortorder);
472 $sql .=
', sp.ref DESC';
476 if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) {
477 $resql = $db->query($sql);
485 $sql .= $db->plimit($limit + 1, $offset);
487 $resql = $db->query($sql);
490 $userstatic =
new User($db);
495 $title = $langs->trans(
'SupplierProposals').
' - '.$soc->name;
497 $title = $langs->trans(
'SupplierProposals');
500 $num = $db->num_rows(
$resql);
502 $arrayofselected = is_array($toselect) ? $toselect : array();
504 if ($num == 1 && !empty($conf->global->MAIN_SEARCH_DIRECT_OPEN_IF_ONLY_ONE) && $sall) {
505 $obj = $db->fetch_object(
$resql);
509 header(
"Location: ".DOL_URL_ROOT.
'/supplier_proposal/card.php?id='.$id);
519 if (!empty($contextpage) && $contextpage != $_SERVER[
"PHP_SELF"]) {
520 $param .=
'&contextpage='.urlencode($contextpage);
522 if ($limit > 0 && $limit != $conf->liste_limit) {
523 $param .=
'&limit='.urlencode($limit);
526 $param .=
'&sall='.urlencode($sall);
528 if ($search_date_startday) {
529 $param .=
'&search_date_startday='.urlencode($search_date_startday);
531 if ($search_date_startmonth) {
532 $param .=
'&search_date_startmonth='.urlencode($search_date_startmonth);
534 if ($search_date_startyear) {
535 $param .=
'&search_date_startyear='.urlencode($search_date_startyear);
537 if ($search_date_endday) {
538 $param .=
'&search_date_endday='.urlencode($search_date_endday);
540 if ($search_date_endmonth) {
541 $param .=
'&search_date_endmonth='.urlencode($search_date_endmonth);
543 if ($search_date_endyear) {
544 $param .=
'&search_date_endyear='.urlencode($search_date_endyear);
546 if ($search_date_valid_startday) {
547 $param .=
'&search_date_valid_startday='.urlencode($search_date_valid_startday);
549 if ($search_date_valid_startmonth) {
550 $param .=
'&search_date_valid_startmonth='.urlencode($search_date_valid_startmonth);
552 if ($search_date_valid_startyear) {
553 $param .=
'&search_date_valid_startyear='.urlencode($search_date_valid_startyear);
555 if ($search_date_valid_endday) {
556 $param .=
'&search_date_valid_endday='.urlencode($search_date_valid_endday);
558 if ($search_date_valid_endmonth) {
559 $param .=
'&search_date_valid_endmonth='.urlencode($search_date_valid_endmonth);
561 if ($search_date_valid_endyear) {
562 $param .=
'&search_date_valid_endyear='.urlencode($search_date_valid_endyear);
565 $param .=
'&search_ref='.urlencode($search_ref);
567 if ($search_societe) {
568 $param .=
'&search_societe='.urlencode($search_societe);
570 if ($search_societe_alias) {
571 $param .=
'&search_societe_alias='.urlencode($search_societe_alias);
573 if ($search_user > 0) {
574 $param .=
'&search_user='.urlencode($search_user);
576 if ($search_sale > 0) {
577 $param .=
'&search_sale='.urlencode($search_sale);
579 if ($search_montant_ht) {
580 $param .=
'&search_montant_ht='.urlencode($search_montant_ht);
582 if ($search_multicurrency_code !=
'') {
583 $param .=
'&search_multicurrency_code='.urlencode($search_multicurrency_code);
585 if ($search_multicurrency_tx !=
'') {
586 $param .=
'&search_multicurrency_tx='.urlencode($search_multicurrency_tx);
588 if ($search_multicurrency_montant_ht !=
'') {
589 $param .=
'&search_multicurrency_montant_ht='.urlencode($search_multicurrency_montant_ht);
591 if ($search_multicurrency_montant_vat !=
'') {
592 $param .=
'&search_multicurrency_montant_vat='.urlencode($search_multicurrency_montant_vat);
594 if ($search_multicurrency_montant_ttc !=
'') {
595 $param .=
'&search_multicurrency_montant_ttc='.urlencode($search_multicurrency_montant_ttc);
598 $param .=
'&search_login='.urlencode($search_login);
601 $param .=
'&search_town='.urlencode($search_town);
604 $param .=
'&search_zip='.urlencode($search_zip);
607 $param .=
'&socid='.urlencode($socid);
609 if ($search_status !=
'') {
610 $param .=
'&search_status='.urlencode($search_status);
612 if ($optioncss !=
'') {
613 $param .=
'&optioncss='.urlencode($optioncss);
615 if ($search_type_thirdparty !=
'' && $search_type_thirdparty > 0) {
616 $param .=
'&search_type_thirdparty='.urlencode($search_type_thirdparty);
619 include DOL_DOCUMENT_ROOT.
'/core/tpl/extrafields_list_search_param.tpl.php';
622 $arrayofmassactions = array(
623 'generate_doc'=>
img_picto(
'',
'pdf',
'class="pictofixedwidth"').$langs->trans(
"ReGeneratePDF"),
624 'builddoc'=>
img_picto(
'',
'pdf',
'class="pictofixedwidth"').$langs->trans(
"PDFMerge"),
627 if ($user->rights->supplier_proposal->supprimer) {
628 $arrayofmassactions[
'predelete'] =
img_picto(
'',
'delete',
'class="pictofixedwidth"').$langs->trans(
"Delete");
630 if (in_array($massaction, array(
'presend',
'predelete'))) {
631 $arrayofmassactions = array();
633 $massactionbutton =
$form->selectMassAction(
'', $arrayofmassactions);
635 $url = DOL_URL_ROOT.
'/supplier_proposal/card.php?action=create';
636 if (!empty($socid)) {
637 $url .=
'&socid='.$socid;
639 $newcardbutton =
dolGetButtonTitle($langs->trans(
'NewAskPrice'),
'',
'fa fa-plus-circle', $url,
'', $user->rights->supplier_proposal->creer);
642 print
'<form method="POST" id="searchFormList" action="'.$_SERVER[
"PHP_SELF"].
'">';
643 if ($optioncss !=
'') {
644 print
'<input type="hidden" name="optioncss" value="'.$optioncss.
'">';
646 print
'<input type="hidden" name="token" value="'.newToken().
'">';
647 print
'<input type="hidden" name="formfilteraction" id="formfilteraction" value="list">';
648 print
'<input type="hidden" name="action" value="list">';
649 print
'<input type="hidden" name="sortfield" value="'.$sortfield.
'">';
650 print
'<input type="hidden" name="sortorder" value="'.$sortorder.
'">';
652 print_barre_liste($title, $page, $_SERVER[
"PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num,
$nbtotalofrecords,
'supplier_proposal', 0, $newcardbutton,
'', $limit, 0, 0, 1);
654 $topicmail =
"SendSupplierProposalRef";
655 $modelmail =
"supplier_proposal_send";
657 $trackid =
'spro'.$object->id;
658 include DOL_DOCUMENT_ROOT.
'/core/tpl/massactions_pre.tpl.php';
661 foreach ($fieldstosearchall as $key => $val) {
662 $fieldstosearchall[$key] = $langs->trans($val);
664 print
'<div class="divsearchfieldfilter">'.$langs->trans(
"FilterOnInto", $sall).join(
', ', $fieldstosearchall).
'</div>';
672 if ($user->rights->user->user->lire) {
673 $langs->load(
"commercial");
674 $moreforfilter .=
'<div class="divsearchfield">';
675 $tmptitle = $langs->trans(
'ThirdPartiesOfSaleRepresentative');
676 $moreforfilter .=
img_picto($tmptitle,
'user',
'class="pictofixedwidth"').$formother->select_salesrepresentatives($search_sale,
'search_sale', $user, 0, $tmptitle,
'maxwidth250 widthcentpercentminusx');
677 $moreforfilter .=
'</div>';
680 if ($user->rights->user->user->lire) {
681 $moreforfilter .=
'<div class="divsearchfield">';
682 $tmptitle = $langs->trans(
'LinkedToSpecificUsers');
683 $moreforfilter .=
img_picto($tmptitle,
'user',
'class="pictofixedwidth"').$form->select_dolusers($search_user,
'search_user', $tmptitle,
'', 0,
'',
'', 0, 0, 0,
'', 0,
'',
'maxwidth250 widthcentpercentminusx');
684 $moreforfilter .=
'</div>';
687 if (
isModEnabled(
'categorie') && $user->rights->categorie->lire && ($user->rights->produit->lire || $user->rights->service->lire)) {
688 include_once DOL_DOCUMENT_ROOT.
'/categories/class/categorie.class.php';
689 $moreforfilter .=
'<div class="divsearchfield">';
690 $tmptitle = $langs->trans(
'IncludingProductWithTag');
691 $cate_arbo =
$form->select_all_categories(Categorie::TYPE_PRODUCT,
null,
'parent',
null,
null, 1);
692 $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);
693 $moreforfilter .=
'</div>';
695 $parameters = array();
696 $reshook = $hookmanager->executeHooks(
'printFieldPreListTitle', $parameters);
697 if (empty($reshook)) {
698 $moreforfilter .= $hookmanager->resPrint;
700 $moreforfilter = $hookmanager->resPrint;
703 if (!empty($moreforfilter)) {
704 print
'<div class="liste_titre liste_titre_bydiv centpercent">';
705 print $moreforfilter;
709 $varpage = empty($contextpage) ? $_SERVER[
"PHP_SELF"] : $contextpage;
710 $selectedfields =
$form->multiSelectArrayWithCheckbox(
'selectedfields', $arrayfields, $varpage,
getDolGlobalString(
'MAIN_CHECKBOX_LEFT_COLUMN',
''));
711 $selectedfields .= (count($arrayofmassactions) ?
$form->showCheckAddButtons(
'checkforselect', 1) :
'');
713 print
'<div class="div-table-responsive">';
714 print
'<table class="tagtable nobottomiftotal liste'.($moreforfilter ?
" listwithfilterbefore" :
"").
'">'.
"\n";
718 print
'<tr class="liste_titre_filter">';
721 print
'<td class="liste_titre maxwidthsearch">';
722 $searchpicto =
$form->showFilterButtons(
'left');
726 if (!empty($arrayfields[
'sp.ref'][
'checked'])) {
727 print
'<td class="liste_titre">';
728 print
'<input class="flat" size="6" type="text" name="search_ref" value="'.dol_escape_htmltag($search_ref).
'">';
731 if (!empty($arrayfields[
's.nom'][
'checked'])) {
732 print
'<td class="liste_titre left">';
733 print
'<input class="flat" type="text" size="12" name="search_societe" value="'.dol_escape_htmltag($search_societe).
'">';
736 if (!empty($arrayfields[
's.name_alias'][
'checked'])) {
737 print
'<td class="liste_titre left">';
738 print
'<input class="flat" type="text" size="12" name="search_societe_alias" value="'.dol_escape_htmltag($search_societe_alias).
'">';
741 if (!empty($arrayfields[
's.town'][
'checked'])) {
742 print
'<td class="liste_titre"><input class="flat" type="text" size="6" name="search_town" value="'.$search_town.
'"></td>';
744 if (!empty($arrayfields[
's.zip'][
'checked'])) {
745 print
'<td class="liste_titre"><input class="flat" type="text" size="4" name="search_zip" value="'.$search_zip.
'"></td>';
748 if (!empty($arrayfields[
'state.nom'][
'checked'])) {
749 print
'<td class="liste_titre">';
750 print
'<input class="flat" size="4" type="text" name="search_state" value="'.dol_escape_htmltag($search_state).
'">';
754 if (!empty($arrayfields[
'country.code_iso'][
'checked'])) {
755 print
'<td class="liste_titre center">';
756 print
$form->select_country($search_country,
'search_country',
'', 0,
'minwidth100imp maxwidth100');
760 if (!empty($arrayfields[
'typent.code'][
'checked'])) {
761 print
'<td class="liste_titre maxwidthonsmartphone center">';
762 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);
766 if (!empty($arrayfields[
'sp.date_valid'][
'checked'])) {
767 print
'<td class="liste_titre center">';
768 print
'<div class="nowrap">';
769 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'));
771 print
'<div class="nowrap">';
772 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'));
777 if (!empty($arrayfields[
'sp.date_livraison'][
'checked'])) {
778 print
'<td class="liste_titre center">';
779 print
'<div class="nowrap">';
780 print
$form->selectDate($search_date_start ? $search_date_start : -1,
'search_date_start', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
'From'));
782 print
'<div class="nowrap">';
783 print
$form->selectDate($search_date_end ? $search_date_end : -1,
'search_date_end', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
'to'));
788 if (!empty($arrayfields[
'sp.total_ht'][
'checked'])) {
790 print
'<td class="liste_titre right">';
791 print
'<input class="flat" type="text" size="5" name="search_montant_ht" value="'.dol_escape_htmltag($search_montant_ht).
'">';
794 if (!empty($arrayfields[
'sp.total_tva'][
'checked'])) {
796 print
'<td class="liste_titre right">';
797 print
'<input class="flat" type="text" size="5" name="search_montant_vat" value="'.dol_escape_htmltag($search_montant_vat).
'">';
800 if (!empty($arrayfields[
'sp.total_ttc'][
'checked'])) {
802 print
'<td class="liste_titre right">';
803 print
'<input class="flat" type="text" size="5" name="search_montant_ttc" value="'.dol_escape_htmltag($search_montant_ttc).
'">';
806 if (!empty($arrayfields[
'sp.multicurrency_code'][
'checked'])) {
808 print
'<td class="liste_titre">';
809 print
$form->selectMultiCurrency($search_multicurrency_code,
'search_multicurrency_code', 1);
812 if (!empty($arrayfields[
'sp.multicurrency_tx'][
'checked'])) {
814 print
'<td class="liste_titre">';
815 print
'<input class="flat" type="text" size="4" name="search_multicurrency_tx" value="'.dol_escape_htmltag($search_multicurrency_tx).
'">';
818 if (!empty($arrayfields[
'sp.multicurrency_total_ht'][
'checked'])) {
820 print
'<td class="liste_titre right">';
821 print
'<input class="flat" type="text" size="4" name="search_multicurrency_montant_ht" value="'.dol_escape_htmltag($search_multicurrency_montant_ht).
'">';
824 if (!empty($arrayfields[
'sp.multicurrency_total_vat'][
'checked'])) {
826 print
'<td class="liste_titre right">';
827 print
'<input class="flat" type="text" size="4" name="search_multicurrency_montant_vat" value="'.dol_escape_htmltag($search_multicurrency_montant_vat).
'">';
830 if (!empty($arrayfields[
'sp.multicurrency_total_ttc'][
'checked'])) {
832 print
'<td class="liste_titre right">';
833 print
'<input class="flat" type="text" size="4" name="search_multicurrency_montant_ttc" value="'.dol_escape_htmltag($search_multicurrency_montant_ttc).
'">';
836 if (!empty($arrayfields[
'u.login'][
'checked'])) {
838 print
'<td class="liste_titre center">';
839 print
'<input class="flat" size="4" type="text" name="search_login" value="'.dol_escape_htmltag($search_login).
'">';
843 include DOL_DOCUMENT_ROOT.
'/core/tpl/extrafields_list_search_input.tpl.php';
845 $parameters = array(
'arrayfields'=>$arrayfields);
846 $reshook = $hookmanager->executeHooks(
'printFieldListOption', $parameters);
847 print $hookmanager->resPrint;
849 if (!empty($arrayfields[
'sp.datec'][
'checked'])) {
850 print
'<td class="liste_titre">';
854 if (!empty($arrayfields[
'sp.tms'][
'checked'])) {
855 print
'<td class="liste_titre">';
859 if (!empty($arrayfields[
'sp.fk_statut'][
'checked'])) {
860 print
'<td class="liste_titre right">';
861 $formpropal->selectProposalStatus($search_status, 1, 0, 1,
'supplier',
'search_status',
'minwidth75imp onrightofpage');
866 print
'<td class="liste_titre maxwidthsearch">';
867 $searchpicto =
$form->showFilterButtons();
875 print
'<tr class="liste_titre">';
877 print_liste_field_titre($selectedfields, $_SERVER[
"PHP_SELF"],
"",
'',
'',
'', $sortfield, $sortorder,
'center maxwidthsearch ');
879 if (!empty($arrayfields[
'sp.ref'][
'checked'])) {
880 print_liste_field_titre($arrayfields[
'sp.ref'][
'label'], $_SERVER[
"PHP_SELF"],
'sp.ref',
'', $param,
'', $sortfield, $sortorder);
882 if (!empty($arrayfields[
's.nom'][
'checked'])) {
883 print_liste_field_titre($arrayfields[
's.nom'][
'label'], $_SERVER[
"PHP_SELF"],
's.nom',
'', $param,
'', $sortfield, $sortorder);
885 if (!empty($arrayfields[
's.name_alias'][
'checked'])) {
886 print_liste_field_titre($arrayfields[
's.name_alias'][
'label'], $_SERVER[
"PHP_SELF"],
's.name_alias',
'', $param,
'', $sortfield, $sortorder);
888 if (!empty($arrayfields[
's.town'][
'checked'])) {
889 print_liste_field_titre($arrayfields[
's.town'][
'label'], $_SERVER[
"PHP_SELF"],
's.town',
'', $param,
'', $sortfield, $sortorder);
891 if (!empty($arrayfields[
's.zip'][
'checked'])) {
892 print_liste_field_titre($arrayfields[
's.zip'][
'label'], $_SERVER[
"PHP_SELF"],
's.zip',
'', $param,
'', $sortfield, $sortorder);
894 if (!empty($arrayfields[
'state.nom'][
'checked'])) {
895 print_liste_field_titre($arrayfields[
'state.nom'][
'label'], $_SERVER[
"PHP_SELF"],
"state.nom",
"", $param,
'', $sortfield, $sortorder);
897 if (!empty($arrayfields[
'country.code_iso'][
'checked'])) {
898 print_liste_field_titre($arrayfields[
'country.code_iso'][
'label'], $_SERVER[
"PHP_SELF"],
"country.code_iso",
"", $param,
'', $sortfield, $sortorder,
'center ');
900 if (!empty($arrayfields[
'typent.code'][
'checked'])) {
901 print_liste_field_titre($arrayfields[
'typent.code'][
'label'], $_SERVER[
"PHP_SELF"],
"typent.code",
"", $param,
'', $sortfield, $sortorder,
'center ');
903 if (!empty($arrayfields[
'sp.date_valid'][
'checked'])) {
904 print_liste_field_titre($arrayfields[
'sp.date_valid'][
'label'], $_SERVER[
"PHP_SELF"],
'sp.date_valid',
'', $param,
'', $sortfield, $sortorder,
'center ');
906 if (!empty($arrayfields[
'sp.date_livraison'][
'checked'])) {
907 print_liste_field_titre($arrayfields[
'sp.date_livraison'][
'label'], $_SERVER[
"PHP_SELF"],
'sp.date_livraison',
'', $param,
'', $sortfield, $sortorder,
'center ');
909 if (!empty($arrayfields[
'sp.total_ht'][
'checked'])) {
910 print_liste_field_titre($arrayfields[
'sp.total_ht'][
'label'], $_SERVER[
"PHP_SELF"],
'sp.total_ht',
'', $param,
'', $sortfield, $sortorder,
'right ');
912 if (!empty($arrayfields[
'sp.total_tva'][
'checked'])) {
913 print_liste_field_titre($arrayfields[
'sp.total_tva'][
'label'], $_SERVER[
"PHP_SELF"],
'sp.total_tva',
'', $param,
'', $sortfield, $sortorder,
'right ');
915 if (!empty($arrayfields[
'sp.total_ttc'][
'checked'])) {
916 print_liste_field_titre($arrayfields[
'sp.total_ttc'][
'label'], $_SERVER[
"PHP_SELF"],
'sp.total_ttc',
'', $param,
'', $sortfield, $sortorder,
'right ');
918 if (!empty($arrayfields[
'sp.multicurrency_code'][
'checked'])) {
919 print_liste_field_titre($arrayfields[
'sp.multicurrency_code'][
'label'], $_SERVER[
'PHP_SELF'],
'sp.multicurrency_code',
'', $param,
'', $sortfield, $sortorder);
921 if (!empty($arrayfields[
'sp.multicurrency_tx'][
'checked'])) {
922 print_liste_field_titre($arrayfields[
'sp.multicurrency_tx'][
'label'], $_SERVER[
'PHP_SELF'],
'sp.multicurrency_tx',
'', $param,
'', $sortfield, $sortorder);
924 if (!empty($arrayfields[
'sp.multicurrency_total_ht'][
'checked'])) {
925 print_liste_field_titre($arrayfields[
'sp.multicurrency_total_ht'][
'label'], $_SERVER[
'PHP_SELF'],
'sp.multicurrency_total_ht',
'', $param,
'class="right"', $sortfield, $sortorder);
927 if (!empty($arrayfields[
'sp.multicurrency_total_vat'][
'checked'])) {
928 print_liste_field_titre($arrayfields[
'sp.multicurrency_total_vat'][
'label'], $_SERVER[
'PHP_SELF'],
'sp.multicurrency_total_tva',
'', $param,
'class="right"', $sortfield, $sortorder);
930 if (!empty($arrayfields[
'sp.multicurrency_total_ttc'][
'checked'])) {
931 print_liste_field_titre($arrayfields[
'sp.multicurrency_total_ttc'][
'label'], $_SERVER[
'PHP_SELF'],
'sp.multicurrency_total_ttc',
'', $param,
'class="right"', $sortfield, $sortorder);
933 if (!empty($arrayfields[
'u.login'][
'checked'])) {
934 print_liste_field_titre($arrayfields[
'u.login'][
'label'], $_SERVER[
"PHP_SELF"],
'u.login',
'', $param,
'', $sortfield, $sortorder,
'center ');
937 include DOL_DOCUMENT_ROOT.
'/core/tpl/extrafields_list_search_title.tpl.php';
939 $parameters = array(
'arrayfields'=>$arrayfields,
'param'=>$param,
'sortfield'=>$sortfield,
'sortorder'=>$sortorder);
940 $reshook = $hookmanager->executeHooks(
'printFieldListTitle', $parameters);
941 print $hookmanager->resPrint;
942 if (!empty($arrayfields[
'sp.datec'][
'checked'])) {
943 print_liste_field_titre($arrayfields[
'sp.datec'][
'label'], $_SERVER[
"PHP_SELF"],
"sp.datec",
"", $param,
'', $sortfield, $sortorder,
'center nowrap ');
945 if (!empty($arrayfields[
'sp.tms'][
'checked'])) {
946 print_liste_field_titre($arrayfields[
'sp.tms'][
'label'], $_SERVER[
"PHP_SELF"],
"sp.tms",
"", $param,
'', $sortfield, $sortorder,
'center nowrap');
948 if (!empty($arrayfields[
'sp.fk_statut'][
'checked'])) {
949 print_liste_field_titre($arrayfields[
'sp.fk_statut'][
'label'], $_SERVER[
"PHP_SELF"],
"sp.fk_statut",
"", $param,
'', $sortfield, $sortorder,
'right ');
952 print_liste_field_titre($selectedfields, $_SERVER[
"PHP_SELF"],
"",
'',
'',
'', $sortfield, $sortorder,
'center maxwidthsearch ');
960 $totalarray = array();
961 $totalarray[
'nbfield'] = 0;
962 $totalarray[
'val'] = array();
963 $totalarray[
'val'][
'sp.total_ht'] = 0;
964 $totalarray[
'val'][
'sp.total_tva'] = 0;
965 $totalarray[
'val'][
'sp.total_ttc'] = 0;
966 while ($i < min($num, $limit)) {
967 $obj = $db->fetch_object(
$resql);
969 $objectstatic->id = $obj->rowid;
970 $objectstatic->ref = $obj->ref;
971 $objectstatic->note_public = $obj->note_public;
972 $objectstatic->note_private = $obj->note_private;
973 $objectstatic->status = $obj->status;
976 $companystatic->id = $obj->socid;
977 $companystatic->name = $obj->name;
978 $companystatic->name_alias = $obj->alias;
979 $companystatic->client = $obj->client;
980 $companystatic->code_client = $obj->code_client;
982 print
'<tr class="oddeven">';
985 print
'<td class="nowrap center">';
986 if ($massactionbutton || $massaction) {
988 if (in_array($obj->rowid, $arrayofselected)) {
991 print
'<input id="cb'.$obj->rowid.
'" class="flat checkforselect" type="checkbox" name="toselect[]" value="'.$obj->rowid.
'"'.($selected ?
' checked="checked"' :
'').
'>';
995 if (!empty($arrayfields[
'sp.ref'][
'checked'])) {
996 print
'<td class="nowraponall">';
998 print
'<table class="nobordernopadding"><tr class="nocellnopadd">';
1000 print
'<td class="nobordernopadding nowraponall">';
1001 print $objectstatic->getNomUrl(1,
'',
'', 0, -1, 1);
1007 print
'<td style="min-width: 20px" class="nobordernopadding nowrap">';
1012 print
'<td width="16" class="right nobordernopadding hideonsmartphone">';
1015 $urlsource = $_SERVER[
'PHP_SELF'].
'?id='.$obj->rowid;
1016 print $formfile->getDocumentsLink($objectstatic->element, $filename, $filedir);
1017 print
'</td></tr></table>';
1021 $totalarray[
'nbfield']++;
1026 if (!empty($arrayfields[
's.nom'][
'checked'])) {
1027 print
'<td class="tdoverflowmax200">';
1028 print $companystatic->getNomUrl(1,
'supplier', 0, 0, -1, empty($arrayfields[
's.name_alias'][
'checked']) ? 0 : 1);
1031 $totalarray[
'nbfield']++;
1036 if (!empty($arrayfields[
's.name_alias'][
'checked'])) {
1037 print
'<td class="tdoverflowmax200">';
1038 print $companystatic->name_alias;
1041 $totalarray[
'nbfield']++;
1046 if (!empty($arrayfields[
's.town'][
'checked'])) {
1047 print
'<td class="nocellnopadd">';
1051 $totalarray[
'nbfield']++;
1055 if (!empty($arrayfields[
's.zip'][
'checked'])) {
1056 print
'<td class="nocellnopadd">';
1060 $totalarray[
'nbfield']++;
1064 if (!empty($arrayfields[
'state.nom'][
'checked'])) {
1065 print
"<td>".$obj->state_name.
"</td>\n";
1067 $totalarray[
'nbfield']++;
1071 if (!empty($arrayfields[
'country.code_iso'][
'checked'])) {
1072 print
'<td class="center">';
1073 $tmparray =
getCountry($obj->fk_pays,
'all');
1074 print $tmparray[
'label'];
1077 $totalarray[
'nbfield']++;
1081 if (!empty($arrayfields[
'typent.code'][
'checked'])) {
1082 print
'<td class="center">';
1083 if (empty($typenArray) || !is_array($typenArray) || count($typenArray) == 0) {
1084 $typenArray = $formcompany->typent_array(1);
1086 print $typenArray[$obj->typent_code];
1089 $totalarray[
'nbfield']++;
1094 if (!empty($arrayfields[
'sp.date_valid'][
'checked'])) {
1095 print
'<td class="center">';
1099 $totalarray[
'nbfield']++;
1104 if (!empty($arrayfields[
'sp.date_livraison'][
'checked'])) {
1105 print
'<td class="center">';
1109 $totalarray[
'nbfield']++;
1114 if (!empty($arrayfields[
'sp.total_ht'][
'checked'])) {
1115 print
'<td class="right"><span class="amount">'.price($obj->total_ht).
"</span></td>\n";
1117 $totalarray[
'nbfield']++;
1120 $totalarray[
'pos'][$totalarray[
'nbfield']] =
'sp.total_ht';
1122 $totalarray[
'val'][
'sp.total_ht'] += $obj->total_ht;
1125 if (!empty($arrayfields[
'sp.total_tva'][
'checked'])) {
1126 print
'<td class="right"><span class="amount">'.price($obj->total_tva).
"</span></td>\n";
1128 $totalarray[
'nbfield']++;
1131 $totalarray[
'pos'][$totalarray[
'nbfield']] =
'sp.total_tva';
1133 $totalarray[
'val'][
'sp.total_tva'] += $obj->total_tva;
1136 if (!empty($arrayfields[
'sp.total_ttc'][
'checked'])) {
1137 print
'<td class="right"><span class="amount">'.price($obj->total_ttc).
"</span></td>\n";
1139 $totalarray[
'nbfield']++;
1142 $totalarray[
'pos'][$totalarray[
'nbfield']] =
'sp.total_ttc';
1144 $totalarray[
'val'][
'sp.total_ttc'] += $obj->total_ttc;
1148 if (!empty($arrayfields[
'sp.multicurrency_code'][
'checked'])) {
1149 print
'<td class="nowrap">'.$obj->multicurrency_code.
' - '.$langs->trans(
'Currency'.$obj->multicurrency_code).
"</td>\n";
1151 $totalarray[
'nbfield']++;
1156 if (!empty($arrayfields[
'sp.multicurrency_tx'][
'checked'])) {
1157 print
'<td class="nowrap">';
1158 $form->form_multicurrency_rate($_SERVER[
'PHP_SELF'].
'?id='.$obj->rowid, $obj->multicurrency_tx,
'none', $obj->multicurrency_code);
1161 $totalarray[
'nbfield']++;
1165 if (!empty($arrayfields[
'sp.multicurrency_total_ht'][
'checked'])) {
1166 print
'<td class="right nowrap"><span class="amount">'.price($obj->multicurrency_total_ht).
"</span></td>\n";
1168 $totalarray[
'nbfield']++;
1172 if (!empty($arrayfields[
'sp.multicurrency_total_vat'][
'checked'])) {
1173 print
'<td class="right nowrap"><span class="amount">'.price($obj->multicurrency_total_vat).
"</span></td>\n";
1175 $totalarray[
'nbfield']++;
1179 if (!empty($arrayfields[
'sp.multicurrency_total_ttc'][
'checked'])) {
1180 print
'<td class="right nowrap"><span class="amount">'.price($obj->multicurrency_total_ttc).
"</span></td>\n";
1182 $totalarray[
'nbfield']++;
1186 $userstatic->id = $obj->fk_user_author;
1187 $userstatic->login = $obj->login;
1188 $userstatic->status = $obj->ustatus;
1189 $userstatic->lastname = $obj->name;
1190 $userstatic->firstname = $obj->firstname;
1191 $userstatic->photo = $obj->photo;
1192 $userstatic->admin = $obj->admin;
1193 $userstatic->ref = $obj->fk_user_author;
1194 $userstatic->employee = $obj->employee;
1195 $userstatic->email = $obj->uemail;
1198 if (!empty($arrayfields[
'u.login'][
'checked'])) {
1199 print
'<td class="center">';
1200 if ($userstatic->id > 0) {
1201 print $userstatic->getNomUrl(-1,
'', 0, 0, 24, 1,
'login',
'', 1);
1207 $totalarray[
'nbfield']++;
1212 include DOL_DOCUMENT_ROOT.
'/core/tpl/extrafields_list_print_fields.tpl.php';
1214 $parameters = array(
'arrayfields'=>$arrayfields,
'obj'=>$obj,
'i'=>$i,
'totalarray'=>&$totalarray);
1215 $reshook = $hookmanager->executeHooks(
'printFieldListValue', $parameters);
1216 print $hookmanager->resPrint;
1218 if (!empty($arrayfields[
'sp.datec'][
'checked'])) {
1219 print
'<td class="center nowrap">';
1220 print
dol_print_date($db->jdate($obj->date_creation),
'dayhour',
'tzuser');
1223 $totalarray[
'nbfield']++;
1227 if (!empty($arrayfields[
'sp.tms'][
'checked'])) {
1228 print
'<td class="center nowrap">';
1229 print
dol_print_date($db->jdate($obj->date_update),
'dayhour',
'tzuser');
1232 $totalarray[
'nbfield']++;
1236 if (!empty($arrayfields[
'sp.fk_statut'][
'checked'])) {
1237 print
'<td class="right">'.$objectstatic->getLibStatut(5).
"</td>\n";
1239 $totalarray[
'nbfield']++;
1245 print
'<td class="nowrap center">';
1246 if ($massactionbutton || $massaction) {
1248 if (in_array($obj->rowid, $arrayofselected)) {
1251 print
'<input id="cb'.$obj->rowid.
'" class="flat checkforselect" type="checkbox" name="toselect[]" value="'.$obj->rowid.
'"'.($selected ?
' checked="checked"' :
'').
'>';
1256 $totalarray[
'nbfield']++;
1261 $total += $obj->total_ht;
1262 $subtotal += $obj->total_ht;
1268 include DOL_DOCUMENT_ROOT.
'/core/tpl/list_print_total.tpl.php';
1273 foreach ($arrayfields as $key => $val) {
1274 if (!empty($val[
'checked'])) {
1278 print
'<tr><td colspan="'.$colspan.
'"><span class="opacitymedium">'.$langs->trans(
"NoRecordFound").
'</span></td></tr>';
1283 $parameters = array(
'arrayfields'=>$arrayfields,
'sql'=>$sql);
1284 $reshook = $hookmanager->executeHooks(
'printFieldListFooter', $parameters);
1285 print $hookmanager->resPrint;
1287 print
'</table>'.
"\n";
1288 print
'</div>'.
"\n";
1290 print
'</form>'.
"\n";
1292 $hidegeneratedfilelistifempty = 1;
1293 if ($massaction ==
'builddoc' || $action ==
'remove_file' || $show_files) {
1294 $hidegeneratedfilelistifempty = 0;
1298 $urlsource = $_SERVER[
'PHP_SELF'].
'?sortfield='.$sortfield.
'&sortorder='.$sortorder;
1299 $urlsource .= str_replace(
'&',
'&', $param);
1301 $filedir = $diroutputmassaction;
1303 $genallowed = $user->rights->supplier_proposal->lire;
1304 $delallowed = $user->rights->supplier_proposal->creer;
1306 print $formfile->showdocuments(
'massfilesarea_supplier_proposal',
'', $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 third parties objects (customers, suppliers, prospects...)
Class to manage price ask supplier.
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') &&!empty($user->rights->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') &&!empty($user->rights->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)) $resql
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_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...
setEventMessages($mesg, $mesgs, $style='mesgs', $messagekey='')
Set event messages in dol_events session object.
dol_print_date($time, $format='', $tzoutput='auto', $outputlangs='', $encodetooutput=false)
Output date in a string format according to outputlangs (or langs if not defined).
dol_now($mode='auto')
Return date for now.
img_picto($titlealt, $picto, $moreatt='', $pictoisfullpath=false, $srconly=0, $notitle=0, $alt='', $morecss='', $marginleftonlyshort=2)
Show picto whatever it's its name (generic function)
dol_sort_array(&$array, $index, $order='asc', $natsort=0, $case_sensitive=0, $keepindex=0)
Advanced sort array by second index function, which produces ascending (default) or descending output...
print_liste_field_titre($name, $file="", $field="", $begin="", $moreparam="", $moreattrib="", $sortfield="", $sortorder="", $prefix="", $tooltip="", $forcenowrapcolumntitle=0)
Show title line of an array.
GETPOST($paramname, $check='alphanohtml', $method=0, $filter=null, $options=null, $noreplace=0)
Return value of a param into GET or POST supervariable.
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.
if(!function_exists('utf8_encode')) if(!function_exists('utf8_decode')) getDolGlobalString($key, $default='')
Return dolibarr global constant string value.
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.
isModEnabled($module)
Is Dolibarr module enabled.
$nbtotalofrecords
Count total nb of records.
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.