39require
'../main.inc.php';
40require_once DOL_DOCUMENT_ROOT.
'/core/class/html.formother.class.php';
41require_once DOL_DOCUMENT_ROOT.
'/core/class/html.formfile.class.php';
42require_once DOL_DOCUMENT_ROOT.
'/core/lib/date.lib.php';
43require_once DOL_DOCUMENT_ROOT.
'/core/lib/company.lib.php';
44require_once DOL_DOCUMENT_ROOT.
'/core/class/html.formpropal.class.php';
45require_once DOL_DOCUMENT_ROOT.
'/core/class/html.formcompany.class.php';
46require_once DOL_DOCUMENT_ROOT.
'/supplier_proposal/class/supplier_proposal.class.php';
47if (isModEnabled(
'project')) {
48 require_once DOL_DOCUMENT_ROOT.
'/projet/class/project.class.php';
52$langs->loadLangs(array(
'companies',
'propal',
'supplier_proposal',
'compta',
'bills',
'orders',
'products'));
56$action =
GETPOST(
'action',
'aZ09');
57$massaction =
GETPOST(
'massaction',
'alpha');
59$confirm =
GETPOST(
'confirm',
'alpha');
60$toselect =
GETPOST(
'toselect',
'array');
61$contextpage =
GETPOST(
'contextpage',
'aZ') ?
GETPOST(
'contextpage',
'aZ') :
'supplierproposallist';
62$optioncss =
GETPOST(
'optioncss',
'alpha');
63$mode =
GETPOST(
'mode',
'alpha');
65$search_user =
GETPOST(
'search_user',
'intcomma');
66$search_sale =
GETPOST(
'search_sale',
'intcomma');
68$search_company =
GETPOST(
'search_company',
'alpha');
69$search_company_alias =
GETPOST(
'search_company_alias',
'alpha');
70$search_login =
GETPOST(
'search_login',
'alpha');
71$search_town =
GETPOST(
'search_town',
'alpha');
72$search_zip =
GETPOST(
'search_zip',
'alpha');
73$search_state =
GETPOST(
"search_state");
74$search_country =
GETPOST(
"search_country",
'aZ09');
75$search_date_startday =
GETPOSTINT(
'search_date_startday');
76$search_date_startmonth =
GETPOSTINT(
'search_date_startmonth');
77$search_date_startyear =
GETPOSTINT(
'search_date_startyear');
78$search_date_endday =
GETPOSTINT(
'search_date_endday');
79$search_date_endmonth =
GETPOSTINT(
'search_date_endmonth');
80$search_date_endyear =
GETPOSTINT(
'search_date_endyear');
81$search_date_start =
dol_mktime(0, 0, 0, $search_date_startmonth, $search_date_startday, $search_date_startyear);
82$search_date_end =
dol_mktime(23, 59, 59, $search_date_endmonth, $search_date_endday, $search_date_endyear);
83$search_date_valid_startday =
GETPOSTINT(
'search_date_valid_startday');
84$search_date_valid_startmonth =
GETPOSTINT(
'search_date_valid_startmonth');
85$search_date_valid_startyear =
GETPOSTINT(
'search_date_valid_startyear');
86$search_date_valid_endday =
GETPOSTINT(
'search_date_valid_endday');
87$search_date_valid_endmonth =
GETPOSTINT(
'search_date_valid_endmonth');
88$search_date_valid_endyear =
GETPOSTINT(
'search_date_valid_endyear');
89$search_date_valid_start =
dol_mktime(0, 0, 0, $search_date_valid_startmonth, $search_date_valid_startday, $search_date_valid_startyear);
90$search_date_valid_end =
dol_mktime(23, 59, 59, $search_date_valid_endmonth, $search_date_valid_endday, $search_date_valid_endyear);
91$search_type_thirdparty =
GETPOST(
"search_type_thirdparty",
'intcomma');
92$search_montant_ht =
GETPOST(
'search_montant_ht',
'alpha');
93$search_montant_vat =
GETPOST(
'search_montant_vat',
'alpha');
94$search_montant_ttc =
GETPOST(
'search_montant_ttc',
'alpha');
95$search_multicurrency_code =
GETPOST(
'search_multicurrency_code',
'alpha');
96$search_multicurrency_tx =
GETPOST(
'search_multicurrency_tx',
'alpha');
97$search_multicurrency_montant_ht =
GETPOST(
'search_multicurrency_montant_ht',
'alpha');
98$search_multicurrency_montant_vat =
GETPOST(
'search_multicurrency_montant_vat',
'alpha');
99$search_multicurrency_montant_ttc =
GETPOST(
'search_multicurrency_montant_ttc',
'alpha');
100$search_status =
GETPOST(
'search_status',
'intcomma');
101$search_product_category =
GETPOST(
'search_product_category',
'int');
102$search_all = trim((
GETPOST(
'search_all',
'alphanohtml') !=
'') ?
GETPOST(
'search_all',
'alphanohtml') :
GETPOST(
'sall',
'alphanohtml'));
104$object_statut =
GETPOST(
'supplier_proposal_statut',
'intcomma');
105$search_btn =
GETPOST(
'button_search',
'alpha');
106$search_remove_btn =
GETPOST(
'button_removefilter',
'alpha');
109$sortfield =
GETPOST(
'sortfield',
'aZ09comma');
110$sortorder =
GETPOST(
'sortorder',
'aZ09comma');
112if (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';
125if ($object_statut !=
'') {
126 $search_status = $object_statut;
133$module =
'supplier_proposal';
136if (!empty($user->socid)) {
137 $socid = $user->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(
161 's.nom' =>
'Supplier',
162 'pd.description' =>
'Description',
163 'sp.note_public' =>
'NotePublic',
165if (empty($user->socid)) {
166 $fieldstosearchall[
"p.note_private"] =
"NotePrivate";
169$checkedtypetiers = 0;
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),
195include DOL_DOCUMENT_ROOT.
'/core/tpl/extrafields_list_array_fields.tpl.php';
199'@phan-var-force array<string,array{label:string,checked?:int<0,1>,position?:int,help?:string}> $arrayfields';
202if (empty($user->socid) && !$user->hasRight(
'societe',
'client',
'voir')) {
203 $search_sale = $user->id;
208$permissiontoread = $user->hasRight(
'supplier_proposal',
'lire');
209$permissiontodelete = $user->hasRight(
'supplier_proposal',
'supprimer');
216if (
GETPOST(
'cancel',
'alpha')) {
220if (!
GETPOST(
'confirmmassaction',
'alpha') && $massaction !=
'presend' && $massaction !=
'confirm_presend') {
224$parameters = array(
'socid' => $socid,
'arrayfields' => &$arrayfields);
225$reshook = $hookmanager->executeHooks(
'doActions', $parameters, $object, $action);
230if (empty($reshook)) {
232 include DOL_DOCUMENT_ROOT.
'/core/actions_changeselectedfields.inc.php';
235 if (
GETPOST(
'button_removefilter_x',
'alpha') ||
GETPOST(
'button_removefilter.x',
'alpha') ||
GETPOST(
'button_removefilter',
'alpha')) {
240 $search_company =
'';
241 $search_company_alias =
'';
242 $search_montant_ht =
'';
243 $search_montant_vat =
'';
244 $search_montant_ttc =
'';
245 $search_multicurrency_code =
'';
246 $search_multicurrency_tx =
'';
247 $search_multicurrency_montant_ht =
'';
248 $search_multicurrency_montant_vat =
'';
249 $search_multicurrency_montant_ttc =
'';
251 $search_product_category =
'';
256 $search_country =
'';
257 $search_type_thirdparty =
'';
258 $search_date_startday =
'';
259 $search_date_startmonth =
'';
260 $search_date_startyear =
'';
261 $search_date_endday =
'';
262 $search_date_endmonth =
'';
263 $search_date_endyear =
'';
264 $search_date_start =
'';
265 $search_date_end =
'';
266 $search_date_valid_startday =
'';
267 $search_date_valid_startmonth =
'';
268 $search_date_valid_startyear =
'';
269 $search_date_valid_endday =
'';
270 $search_date_valid_endmonth =
'';
271 $search_date_valid_endyear =
'';
272 $search_date_valid_start =
'';
273 $search_date_valid_end =
'';
278 $objectclass =
'SupplierProposal';
279 $objectlabel =
'SupplierProposals';
280 $uploaddir = $conf->supplier_proposal->dir_output;
281 include DOL_DOCUMENT_ROOT.
'/core/actions_massactions.inc.php';
289$form =
new Form($db);
293$companystatic =
new Societe($db);
301 if (empty($search_company)) {
302 $search_company = $soc->name;
306$varpage = empty($contextpage) ? $_SERVER[
"PHP_SELF"] : $contextpage;
307$selectedfields = $form->multiSelectArrayWithCheckbox(
'selectedfields', $arrayfields, $varpage);
309$title = $langs->trans(
'ListOfSupplierProposals');
310$help_url =
'EN:Ask_Price_Supplier|FR:Demande_de_prix_fournisseur';
316if ($search_all || $search_user > 0) {
317 $sql =
'SELECT DISTINCT';
319$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,';
320$sql .=
" typent.code as typent_code,";
321$sql .=
" state.code_departement as state_code, state.nom as state_name,";
322$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,';
323$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,';
324$sql .=
' sp.datec as date_creation, sp.tms as date_modification,';
325$sql .=
" p.rowid as project_id, p.ref as project_ref,";
326$sql .=
" u.firstname, u.lastname, u.photo, u.login, u.statut as ustatus, u.admin, u.employee, u.email as uemail";
328if (!empty($extrafields->attributes[
$object->table_element][
'label'])) {
329 foreach ($extrafields->attributes[
$object->table_element][
'label'] as $key => $val) {
330 $sql .= ($extrafields->attributes[
$object->table_element][
'type'][$key] !=
'separate' ?
", ef.".$key.
" as options_".$key :
'');
334$parameters = array();
335$reshook = $hookmanager->executeHooks(
'printFieldListSelect', $parameters);
336$sql .= $hookmanager->resPrint;
337$sql .=
' FROM '.MAIN_DB_PREFIX.
'societe as s';
338$sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"c_country as country on (country.rowid = s.fk_pays)";
339$sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"c_typent as typent on (typent.id = s.fk_typent)";
340$sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"c_departements as state on (state.rowid = s.fk_departement)";
341$sql .=
', '.MAIN_DB_PREFIX.
'supplier_proposal as sp';
342if (isset($extrafields->attributes[
$object->table_element][
'label']) && is_array($extrafields->attributes[
$object->table_element][
'label']) && count($extrafields->attributes[
$object->table_element][
'label'])) {
343 $sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.$object->table_element.
"_extrafields as ef on (sp.rowid = ef.fk_object)";
346 $sql .=
' LEFT JOIN '.MAIN_DB_PREFIX.
'supplier_proposaldet as pd ON sp.rowid=pd.fk_supplier_proposal';
348$sql .=
' LEFT JOIN '.MAIN_DB_PREFIX.
'user as u ON sp.fk_user_author = u.rowid';
349$sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"projet as p ON p.rowid = sp.fk_projet";
350if ($search_user > 0) {
351 $sql .=
", ".MAIN_DB_PREFIX.
"element_contact as c";
352 $sql .=
", ".MAIN_DB_PREFIX.
"c_type_contact as tc";
354$sql .=
' WHERE sp.fk_soc = s.rowid';
355$sql .=
' AND sp.entity IN ('.getEntity(
'supplier_proposal').
')';
365if ($search_country) {
366 $sql .=
" AND s.fk_pays IN (".$db->sanitize($search_country).
')';
368if ($search_type_thirdparty !=
'' && $search_type_thirdparty > 0) {
369 $sql .=
" AND s.fk_typent IN (".$db->sanitize($search_type_thirdparty).
')';
374if (empty($arrayfields[
's.name_alias'][
'checked']) && $search_company) {
375 $sql .=
natural_search(array(
"s.nom",
"s.name_alias"), $search_company);
377 if ($search_company) {
380 if ($search_company_alias) {
385 $sql .=
natural_search(array(
'u.lastname',
'u.firstname',
'u.login'), $search_login);
387if ($search_montant_ht) {
390if ($search_montant_vat !=
'') {
393if ($search_montant_ttc !=
'') {
396if ($search_multicurrency_code !=
'') {
397 $sql .=
" AND sp.multicurrency_code = '".$db->escape($search_multicurrency_code).
"'";
399if ($search_multicurrency_tx !=
'') {
400 $sql .=
natural_search(
'sp.multicurrency_tx', $search_multicurrency_tx, 1);
402if ($search_multicurrency_montant_ht !=
'') {
403 $sql .=
natural_search(
'sp.multicurrency_total_ht', $search_multicurrency_montant_ht, 1);
405if ($search_multicurrency_montant_vat !=
'') {
406 $sql .=
natural_search(
'sp.multicurrency_total_tva', $search_multicurrency_montant_vat, 1);
408if ($search_multicurrency_montant_ttc !=
'') {
409 $sql .=
natural_search(
'sp.multicurrency_total_ttc', $search_multicurrency_montant_ttc, 1);
412 $sql .=
natural_search(array_keys($fieldstosearchall), $search_all);
415 $sql .=
' AND s.rowid = '.((int) $socid);
417if ($search_status >= 0 && $search_status !=
'') {
418 $sql .=
' AND sp.fk_statut IN ('.$db->sanitize($db->escape($search_status)).
')';
420if ($search_date_start) {
421 $sql .=
" AND sp.date_livraison >= '".$db->idate($search_date_start).
"'";
423if ($search_date_end) {
424 $sql .=
" AND sp.date_livraison <= '".$db->idate($search_date_end).
"'";
426if ($search_date_valid_start) {
427 $sql .=
" AND sp.date_valid >= '".$db->idate($search_date_valid_start).
"'";
429if ($search_date_valid_end) {
430 $sql .=
" AND sp.date_valid <= '".$db->idate($search_date_valid_end).
"'";
436if ($search_user > 0) {
437 $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);
440if ($search_sale && $search_sale !=
'-1') {
441 if ($search_sale == -2) {
442 $sql .=
" AND NOT EXISTS (SELECT sc.fk_soc FROM ".MAIN_DB_PREFIX.
"societe_commerciaux as sc WHERE sc.fk_soc = sp.fk_soc)";
443 } elseif ($search_sale > 0) {
444 $sql .=
" AND EXISTS (SELECT sc.fk_soc FROM ".MAIN_DB_PREFIX.
"societe_commerciaux as sc WHERE sc.fk_soc = sp.fk_soc AND sc.fk_user = ".((int) $search_sale).
")";
448$searchCategoryProductOperator = -1;
449$searchCategoryProductList = array($search_product_category);
450if (!empty($searchCategoryProductList)) {
451 $searchCategoryProductSqlList = array();
452 $listofcategoryid =
'';
453 foreach ($searchCategoryProductList as $searchCategoryProduct) {
454 if (intval($searchCategoryProduct) == -2) {
455 $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)";
456 } elseif (intval($searchCategoryProduct) > 0) {
457 if ($searchCategoryProductOperator == 0) {
458 $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).
")";
460 $listofcategoryid .= ($listofcategoryid ?
', ' :
'') .((
int) $searchCategoryProduct);
464 if ($listofcategoryid) {
465 $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).
"))";
467 if ($searchCategoryProductOperator == 1) {
468 if (!empty($searchCategoryProductSqlList)) {
469 $sql .=
" AND (".implode(
' OR ', $searchCategoryProductSqlList).
")";
472 if (!empty($searchCategoryProductSqlList)) {
473 $sql .=
" AND (".implode(
' AND ', $searchCategoryProductSqlList).
")";
478include DOL_DOCUMENT_ROOT.
'/core/tpl/extrafields_list_search_sql.tpl.php';
480$parameters = array();
481$reshook = $hookmanager->executeHooks(
'printFieldListWhere', $parameters, $object, $action);
482$sql .= $hookmanager->resPrint;
484$sql .= $db->order($sortfield, $sortorder);
485$sql .=
', sp.ref DESC';
488$nbtotalofrecords =
'';
490 $resql = $db->query($sql);
491 $nbtotalofrecords = $db->num_rows($resql);
492 if (($page * $limit) > $nbtotalofrecords) {
498$sql .= $db->plimit($limit + 1, $offset);
500$resql = $db->query($sql);
503 $userstatic =
new User($db);
508 $title = $langs->trans(
'SupplierProposals').
' - '.$soc->name;
510 $title = $langs->trans(
'SupplierProposals');
513 $num = $db->num_rows($resql);
515 $arrayofselected = is_array($toselect) ? $toselect : array();
517 if ($num == 1 &&
getDolGlobalString(
'MAIN_SEARCH_DIRECT_OPEN_IF_ONLY_ONE') && $search_all) {
518 $obj = $db->fetch_object($resql);
522 header(
"Location: ".DOL_URL_ROOT.
'/supplier_proposal/card.php?id='.$id);
529 llxHeader(
'', $title, $help_url,
'', 0, 0,
'',
'',
'',
'bodyforlist');
533 $param .=
'&mode='.urlencode($mode);
535 if (!empty($contextpage) && $contextpage != $_SERVER[
"PHP_SELF"]) {
536 $param .=
'&contextpage='.urlencode($contextpage);
538 if ($limit > 0 && $limit != $conf->liste_limit) {
539 $param .=
'&limit='.((int) $limit);
542 $param .=
'&search_all='.urlencode($search_all);
544 if ($search_date_startday) {
545 $param .=
'&search_date_startday='.urlencode((
string) ($search_date_startday));
547 if ($search_date_startmonth) {
548 $param .=
'&search_date_startmonth='.urlencode((
string) ($search_date_startmonth));
550 if ($search_date_startyear) {
551 $param .=
'&search_date_startyear='.urlencode((
string) ($search_date_startyear));
553 if ($search_date_endday) {
554 $param .=
'&search_date_endday='.urlencode((
string) ($search_date_endday));
556 if ($search_date_endmonth) {
557 $param .=
'&search_date_endmonth='.urlencode((
string) ($search_date_endmonth));
559 if ($search_date_endyear) {
560 $param .=
'&search_date_endyear='.urlencode((
string) ($search_date_endyear));
562 if ($search_date_valid_startday) {
563 $param .=
'&search_date_valid_startday='.urlencode((
string) ($search_date_valid_startday));
565 if ($search_date_valid_startmonth) {
566 $param .=
'&search_date_valid_startmonth='.urlencode((
string) ($search_date_valid_startmonth));
568 if ($search_date_valid_startyear) {
569 $param .=
'&search_date_valid_startyear='.urlencode((
string) ($search_date_valid_startyear));
571 if ($search_date_valid_endday) {
572 $param .=
'&search_date_valid_endday='.urlencode((
string) ($search_date_valid_endday));
574 if ($search_date_valid_endmonth) {
575 $param .=
'&search_date_valid_endmonth='.urlencode((
string) ($search_date_valid_endmonth));
577 if ($search_date_valid_endyear) {
578 $param .=
'&search_date_valid_endyear='.urlencode((
string) ($search_date_valid_endyear));
581 $param .=
'&search_ref='.urlencode($search_ref);
583 if ($search_company) {
584 $param .=
'&search_company='.urlencode($search_company);
586 if ($search_company_alias) {
587 $param .=
'&search_company_alias='.urlencode($search_company_alias);
589 if ($search_user > 0) {
590 $param .=
'&search_user='.urlencode((
string) ($search_user));
592 if ($search_sale > 0) {
593 $param .=
'&search_sale='.urlencode($search_sale);
595 if ($search_montant_ht) {
596 $param .=
'&search_montant_ht='.urlencode($search_montant_ht);
598 if ($search_multicurrency_code !=
'') {
599 $param .=
'&search_multicurrency_code='.urlencode($search_multicurrency_code);
601 if ($search_multicurrency_tx !=
'') {
602 $param .=
'&search_multicurrency_tx='.urlencode($search_multicurrency_tx);
604 if ($search_multicurrency_montant_ht !=
'') {
605 $param .=
'&search_multicurrency_montant_ht='.urlencode($search_multicurrency_montant_ht);
607 if ($search_multicurrency_montant_vat !=
'') {
608 $param .=
'&search_multicurrency_montant_vat='.urlencode($search_multicurrency_montant_vat);
610 if ($search_multicurrency_montant_ttc !=
'') {
611 $param .=
'&search_multicurrency_montant_ttc='.urlencode($search_multicurrency_montant_ttc);
614 $param .=
'&search_login='.urlencode($search_login);
617 $param .=
'&search_town='.urlencode($search_town);
620 $param .=
'&search_zip='.urlencode($search_zip);
623 $param .=
'&socid='.urlencode((
string) ($socid));
625 if ($search_status !=
'') {
626 $param .=
'&search_status='.urlencode($search_status);
628 if ($optioncss !=
'') {
629 $param .=
'&optioncss='.urlencode($optioncss);
631 if ($search_type_thirdparty !=
'' && $search_type_thirdparty > 0) {
632 $param .=
'&search_type_thirdparty='.urlencode((
string) ($search_type_thirdparty));
635 include DOL_DOCUMENT_ROOT.
'/core/tpl/extrafields_list_search_param.tpl.php';
638 $arrayofmassactions = array(
639 'generate_doc' =>
img_picto(
'',
'pdf',
'class="pictofixedwidth"').$langs->trans(
"ReGeneratePDF"),
640 'builddoc' =>
img_picto(
'',
'pdf',
'class="pictofixedwidth"').$langs->trans(
"PDFMerge"),
643 if ($user->hasRight(
'supplier_proposal',
'supprimer')) {
644 $arrayofmassactions[
'predelete'] =
img_picto(
'',
'delete',
'class="pictofixedwidth"').$langs->trans(
"Delete");
646 if (in_array($massaction, array(
'presend',
'predelete'))) {
647 $arrayofmassactions = array();
649 $massactionbutton = $form->selectMassAction(
'', $arrayofmassactions);
651 $url = DOL_URL_ROOT.
'/supplier_proposal/card.php?action=create';
652 if (!empty($socid)) {
653 $url .=
'&socid='.$socid;
656 $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'));
657 $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'));
659 $newcardbutton .=
dolGetButtonTitle($langs->trans(
'NewAskPrice'),
'',
'fa fa-plus-circle', $url,
'', $user->hasRight(
'supplier_proposal',
'creer'));
662 print
'<form method="POST" id="searchFormList" action="'.$_SERVER[
"PHP_SELF"].
'">';
663 if ($optioncss !=
'') {
664 print
'<input type="hidden" name="optioncss" value="'.$optioncss.
'">';
666 print
'<input type="hidden" name="token" value="'.newToken().
'">';
667 print
'<input type="hidden" name="formfilteraction" id="formfilteraction" value="list">';
668 print
'<input type="hidden" name="action" value="list">';
669 print
'<input type="hidden" name="sortfield" value="'.$sortfield.
'">';
670 print
'<input type="hidden" name="sortorder" value="'.$sortorder.
'">';
671 print
'<input type="hidden" name="mode" value="'.$mode.
'">';
673 print_barre_liste($title, $page, $_SERVER[
"PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords,
'supplier_proposal', 0, $newcardbutton,
'', $limit, 0, 0, 1);
675 $topicmail =
"SendSupplierProposalRef";
676 $modelmail =
"supplier_proposal_send";
678 $trackid =
'spro'.$object->id;
679 include DOL_DOCUMENT_ROOT.
'/core/tpl/massactions_pre.tpl.php';
682 foreach ($fieldstosearchall as $key => $val) {
683 $fieldstosearchall[$key] = $langs->trans($val);
685 print
'<div class="divsearchfieldfilter">'.$langs->trans(
"FilterOnInto", $search_all).implode(
', ', $fieldstosearchall).
'</div>';
693 if ($user->hasRight(
'user',
'user',
'lire')) {
694 $langs->load(
"commercial");
695 $moreforfilter .=
'<div class="divsearchfield">';
696 $tmptitle = $langs->trans(
'ThirdPartiesOfSaleRepresentative');
697 $moreforfilter .=
img_picto($tmptitle,
'user',
'class="pictofixedwidth"').$formother->select_salesrepresentatives($search_sale,
'search_sale', $user, 0, $tmptitle,
'maxwidth250 widthcentpercentminusx');
698 $moreforfilter .=
'</div>';
701 if ($user->hasRight(
'user',
'user',
'lire')) {
702 $moreforfilter .=
'<div class="divsearchfield">';
703 $tmptitle = $langs->trans(
'LinkedToSpecificUsers');
704 $moreforfilter .=
img_picto($tmptitle,
'user',
'class="pictofixedwidth"').$form->select_dolusers($search_user,
'search_user', $tmptitle,
'', 0,
'',
'', 0, 0, 0,
'', 0,
'',
'maxwidth250 widthcentpercentminusx');
705 $moreforfilter .=
'</div>';
708 if (isModEnabled(
'category') && $user->hasRight(
'categorie',
'lire') && ($user->hasRight(
'produit',
'lire') || $user->hasRight(
'service',
'lire'))) {
709 include_once DOL_DOCUMENT_ROOT.
'/categories/class/categorie.class.php';
710 $moreforfilter .=
'<div class="divsearchfield">';
711 $tmptitle = $langs->trans(
'IncludingProductWithTag');
712 $cate_arbo = $form->select_all_categories(Categorie::TYPE_PRODUCT,
null,
'parent',
null,
null, 1);
713 $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);
714 $moreforfilter .=
'</div>';
716 $parameters = array();
717 $reshook = $hookmanager->executeHooks(
'printFieldPreListTitle', $parameters, $object, $action);
718 if (empty($reshook)) {
719 $moreforfilter .= $hookmanager->resPrint;
721 $moreforfilter = $hookmanager->resPrint;
724 if (!empty($moreforfilter)) {
725 print
'<div class="liste_titre liste_titre_bydiv centpercent">';
726 print $moreforfilter;
730 $varpage = empty($contextpage) ? $_SERVER[
"PHP_SELF"] : $contextpage;
731 $selectedfields = $form->multiSelectArrayWithCheckbox(
'selectedfields', $arrayfields, $varpage,
getDolGlobalString(
'MAIN_CHECKBOX_LEFT_COLUMN'));
732 $selectedfields .= (count($arrayofmassactions) ? $form->showCheckAddButtons(
'checkforselect', 1) :
'');
734 print
'<div class="div-table-responsive">';
735 print
'<table class="tagtable nobottomiftotal liste'.($moreforfilter ?
" listwithfilterbefore" :
"").
'">'.
"\n";
739 print
'<tr class="liste_titre_filter">';
742 print
'<td class="liste_titre maxwidthsearch">';
743 $searchpicto = $form->showFilterButtons(
'left');
747 if (!empty($arrayfields[
'sp.ref'][
'checked'])) {
748 print
'<td class="liste_titre">';
749 print
'<input class="flat" size="6" type="text" name="search_ref" value="'.dol_escape_htmltag($search_ref).
'">';
752 if (!empty($arrayfields[
's.nom'][
'checked'])) {
753 print
'<td class="liste_titre left">';
754 print
'<input class="flat" type="text" size="12" name="search_company" value="'.dol_escape_htmltag($search_company).
'">';
757 if (!empty($arrayfields[
's.name_alias'][
'checked'])) {
758 print
'<td class="liste_titre left">';
759 print
'<input class="flat" type="text" size="12" name="search_company_alias" value="'.dol_escape_htmltag($search_company_alias).
'">';
762 if (!empty($arrayfields[
's.town'][
'checked'])) {
763 print
'<td class="liste_titre"><input class="flat" type="text" size="6" name="search_town" value="'.$search_town.
'"></td>';
765 if (!empty($arrayfields[
's.zip'][
'checked'])) {
766 print
'<td class="liste_titre"><input class="flat" type="text" size="4" name="search_zip" value="'.$search_zip.
'"></td>';
769 if (!empty($arrayfields[
'state.nom'][
'checked'])) {
770 print
'<td class="liste_titre">';
771 print
'<input class="flat" size="4" type="text" name="search_state" value="'.dol_escape_htmltag($search_state).
'">';
775 if (!empty($arrayfields[
'country.code_iso'][
'checked'])) {
776 print
'<td class="liste_titre center">';
777 print $form->select_country($search_country,
'search_country',
'', 0,
'minwidth100imp maxwidth100');
781 if (!empty($arrayfields[
'typent.code'][
'checked'])) {
782 print
'<td class="liste_titre maxwidthonsmartphone center">';
783 print $form->selectarray(
"search_type_thirdparty", $formcompany->typent_array(0), $search_type_thirdparty, 1, 0, 0,
'', 0, 0, 0, (!
getDolGlobalString(
'SOCIETE_SORT_ON_TYPEENT') ?
'ASC' : $conf->global->SOCIETE_SORT_ON_TYPEENT),
'', 1);
787 if (!empty($arrayfields[
'sp.date_valid'][
'checked'])) {
788 print
'<td class="liste_titre center">';
789 print
'<div class="nowrapfordate">';
790 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'));
792 print
'<div class="nowrapfordate">';
793 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'));
798 if (!empty($arrayfields[
'sp.date_livraison'][
'checked'])) {
799 print
'<td class="liste_titre center">';
800 print
'<div class="nowrapfordate">';
801 print $form->selectDate($search_date_start ? $search_date_start : -1,
'search_date_start', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
'From'));
803 print
'<div class="nowrapfordate">';
804 print $form->selectDate($search_date_end ? $search_date_end : -1,
'search_date_end', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
'to'));
809 if (!empty($arrayfields[
'sp.total_ht'][
'checked'])) {
811 print
'<td class="liste_titre right">';
812 print
'<input class="flat" type="text" size="5" name="search_montant_ht" value="'.dol_escape_htmltag($search_montant_ht).
'">';
815 if (!empty($arrayfields[
'sp.total_tva'][
'checked'])) {
817 print
'<td class="liste_titre right">';
818 print
'<input class="flat" type="text" size="5" name="search_montant_vat" value="'.dol_escape_htmltag($search_montant_vat).
'">';
821 if (!empty($arrayfields[
'sp.total_ttc'][
'checked'])) {
823 print
'<td class="liste_titre right">';
824 print
'<input class="flat" type="text" size="5" name="search_montant_ttc" value="'.dol_escape_htmltag($search_montant_ttc).
'">';
827 if (!empty($arrayfields[
'sp.multicurrency_code'][
'checked'])) {
829 print
'<td class="liste_titre">';
830 print $form->selectMultiCurrency($search_multicurrency_code,
'search_multicurrency_code', 1);
833 if (!empty($arrayfields[
'sp.multicurrency_tx'][
'checked'])) {
835 print
'<td class="liste_titre">';
836 print
'<input class="flat" type="text" size="4" name="search_multicurrency_tx" value="'.dol_escape_htmltag($search_multicurrency_tx).
'">';
839 if (!empty($arrayfields[
'sp.multicurrency_total_ht'][
'checked'])) {
841 print
'<td class="liste_titre right">';
842 print
'<input class="flat" type="text" size="4" name="search_multicurrency_montant_ht" value="'.dol_escape_htmltag($search_multicurrency_montant_ht).
'">';
845 if (!empty($arrayfields[
'sp.multicurrency_total_vat'][
'checked'])) {
847 print
'<td class="liste_titre right">';
848 print
'<input class="flat" type="text" size="4" name="search_multicurrency_montant_vat" value="'.dol_escape_htmltag($search_multicurrency_montant_vat).
'">';
851 if (!empty($arrayfields[
'sp.multicurrency_total_ttc'][
'checked'])) {
853 print
'<td class="liste_titre right">';
854 print
'<input class="flat" type="text" size="4" name="search_multicurrency_montant_ttc" value="'.dol_escape_htmltag($search_multicurrency_montant_ttc).
'">';
857 if (!empty($arrayfields[
'u.login'][
'checked'])) {
859 print
'<td class="liste_titre center">';
860 print
'<input class="flat" size="4" type="text" name="search_login" value="'.dol_escape_htmltag($search_login).
'">';
864 include DOL_DOCUMENT_ROOT.
'/core/tpl/extrafields_list_search_input.tpl.php';
866 $parameters = array(
'arrayfields' => $arrayfields);
867 $reshook = $hookmanager->executeHooks(
'printFieldListOption', $parameters);
868 print $hookmanager->resPrint;
870 if (!empty($arrayfields[
'sp.datec'][
'checked'])) {
871 print
'<td class="liste_titre">';
875 if (!empty($arrayfields[
'sp.tms'][
'checked'])) {
876 print
'<td class="liste_titre">';
880 if (!empty($arrayfields[
'sp.fk_statut'][
'checked'])) {
881 print
'<td class="liste_titre center parentonrightofpage">';
882 $formpropal->selectProposalStatus($search_status, 1, 0, 1,
'supplier',
'search_status',
'search_status width100 onrightofpage');
887 print
'<td class="liste_titre maxwidthsearch">';
888 $searchpicto = $form->showFilterButtons();
895 $totalarray = array();
896 $totalarray[
'nbfield'] = 0;
899 print
'<tr class="liste_titre">';
901 print_liste_field_titre($selectedfields, $_SERVER[
"PHP_SELF"],
"",
'',
'',
'', $sortfield, $sortorder,
'center maxwidthsearch ');
902 $totalarray[
'nbfield']++;
904 if (!empty($arrayfields[
'sp.ref'][
'checked'])) {
905 print_liste_field_titre($arrayfields[
'sp.ref'][
'label'], $_SERVER[
"PHP_SELF"],
'sp.ref',
'', $param,
'', $sortfield, $sortorder);
906 $totalarray[
'nbfield']++;
908 if (!empty($arrayfields[
's.nom'][
'checked'])) {
909 print_liste_field_titre($arrayfields[
's.nom'][
'label'], $_SERVER[
"PHP_SELF"],
's.nom',
'', $param,
'', $sortfield, $sortorder);
910 $totalarray[
'nbfield']++;
912 if (!empty($arrayfields[
's.name_alias'][
'checked'])) {
913 print_liste_field_titre($arrayfields[
's.name_alias'][
'label'], $_SERVER[
"PHP_SELF"],
's.name_alias',
'', $param,
'', $sortfield, $sortorder);
914 $totalarray[
'nbfield']++;
916 if (!empty($arrayfields[
's.town'][
'checked'])) {
917 print_liste_field_titre($arrayfields[
's.town'][
'label'], $_SERVER[
"PHP_SELF"],
's.town',
'', $param,
'', $sortfield, $sortorder);
918 $totalarray[
'nbfield']++;
920 if (!empty($arrayfields[
's.zip'][
'checked'])) {
921 print_liste_field_titre($arrayfields[
's.zip'][
'label'], $_SERVER[
"PHP_SELF"],
's.zip',
'', $param,
'', $sortfield, $sortorder);
922 $totalarray[
'nbfield']++;
924 if (!empty($arrayfields[
'state.nom'][
'checked'])) {
925 print_liste_field_titre($arrayfields[
'state.nom'][
'label'], $_SERVER[
"PHP_SELF"],
"state.nom",
"", $param,
'', $sortfield, $sortorder);
926 $totalarray[
'nbfield']++;
928 if (!empty($arrayfields[
'country.code_iso'][
'checked'])) {
929 print_liste_field_titre($arrayfields[
'country.code_iso'][
'label'], $_SERVER[
"PHP_SELF"],
"country.code_iso",
"", $param,
'', $sortfield, $sortorder,
'center ');
930 $totalarray[
'nbfield']++;
932 if (!empty($arrayfields[
'typent.code'][
'checked'])) {
933 print_liste_field_titre($arrayfields[
'typent.code'][
'label'], $_SERVER[
"PHP_SELF"],
"typent.code",
"", $param,
'', $sortfield, $sortorder,
'center ');
934 $totalarray[
'nbfield']++;
936 if (!empty($arrayfields[
'sp.date_valid'][
'checked'])) {
937 print_liste_field_titre($arrayfields[
'sp.date_valid'][
'label'], $_SERVER[
"PHP_SELF"],
'sp.date_valid',
'', $param,
'', $sortfield, $sortorder,
'center ');
938 $totalarray[
'nbfield']++;
940 if (!empty($arrayfields[
'sp.date_livraison'][
'checked'])) {
941 print_liste_field_titre($arrayfields[
'sp.date_livraison'][
'label'], $_SERVER[
"PHP_SELF"],
'sp.date_livraison',
'', $param,
'', $sortfield, $sortorder,
'center ');
942 $totalarray[
'nbfield']++;
944 if (!empty($arrayfields[
'sp.total_ht'][
'checked'])) {
945 print_liste_field_titre($arrayfields[
'sp.total_ht'][
'label'], $_SERVER[
"PHP_SELF"],
'sp.total_ht',
'', $param,
'', $sortfield, $sortorder,
'right ');
946 $totalarray[
'nbfield']++;
948 if (!empty($arrayfields[
'sp.total_tva'][
'checked'])) {
949 print_liste_field_titre($arrayfields[
'sp.total_tva'][
'label'], $_SERVER[
"PHP_SELF"],
'sp.total_tva',
'', $param,
'', $sortfield, $sortorder,
'right ');
950 $totalarray[
'nbfield']++;
952 if (!empty($arrayfields[
'sp.total_ttc'][
'checked'])) {
953 print_liste_field_titre($arrayfields[
'sp.total_ttc'][
'label'], $_SERVER[
"PHP_SELF"],
'sp.total_ttc',
'', $param,
'', $sortfield, $sortorder,
'right ');
954 $totalarray[
'nbfield']++;
956 if (!empty($arrayfields[
'sp.multicurrency_code'][
'checked'])) {
957 print_liste_field_titre($arrayfields[
'sp.multicurrency_code'][
'label'], $_SERVER[
'PHP_SELF'],
'sp.multicurrency_code',
'', $param,
'', $sortfield, $sortorder);
958 $totalarray[
'nbfield']++;
960 if (!empty($arrayfields[
'sp.multicurrency_tx'][
'checked'])) {
961 print_liste_field_titre($arrayfields[
'sp.multicurrency_tx'][
'label'], $_SERVER[
'PHP_SELF'],
'sp.multicurrency_tx',
'', $param,
'', $sortfield, $sortorder);
962 $totalarray[
'nbfield']++;
964 if (!empty($arrayfields[
'sp.multicurrency_total_ht'][
'checked'])) {
965 print_liste_field_titre($arrayfields[
'sp.multicurrency_total_ht'][
'label'], $_SERVER[
'PHP_SELF'],
'sp.multicurrency_total_ht',
'', $param,
'class="right"', $sortfield, $sortorder);
966 $totalarray[
'nbfield']++;
968 if (!empty($arrayfields[
'sp.multicurrency_total_vat'][
'checked'])) {
969 print_liste_field_titre($arrayfields[
'sp.multicurrency_total_vat'][
'label'], $_SERVER[
'PHP_SELF'],
'sp.multicurrency_total_tva',
'', $param,
'class="right"', $sortfield, $sortorder);
970 $totalarray[
'nbfield']++;
972 if (!empty($arrayfields[
'sp.multicurrency_total_ttc'][
'checked'])) {
973 print_liste_field_titre($arrayfields[
'sp.multicurrency_total_ttc'][
'label'], $_SERVER[
'PHP_SELF'],
'sp.multicurrency_total_ttc',
'', $param,
'class="right"', $sortfield, $sortorder);
974 $totalarray[
'nbfield']++;
976 if (!empty($arrayfields[
'u.login'][
'checked'])) {
977 print_liste_field_titre($arrayfields[
'u.login'][
'label'], $_SERVER[
"PHP_SELF"],
'u.login',
'', $param,
'', $sortfield, $sortorder,
'center ');
978 $totalarray[
'nbfield']++;
981 include DOL_DOCUMENT_ROOT.
'/core/tpl/extrafields_list_search_title.tpl.php';
983 $parameters = array(
'arrayfields' => $arrayfields,
'param' => $param,
'sortfield' => $sortfield,
'sortorder' => $sortorder);
984 $reshook = $hookmanager->executeHooks(
'printFieldListTitle', $parameters);
985 print $hookmanager->resPrint;
986 if (!empty($arrayfields[
'sp.datec'][
'checked'])) {
987 print_liste_field_titre($arrayfields[
'sp.datec'][
'label'], $_SERVER[
"PHP_SELF"],
"sp.datec",
"", $param,
'', $sortfield, $sortorder,
'center nowrap ');
988 $totalarray[
'nbfield']++;
990 if (!empty($arrayfields[
'sp.tms'][
'checked'])) {
991 print_liste_field_titre($arrayfields[
'sp.tms'][
'label'], $_SERVER[
"PHP_SELF"],
"sp.tms",
"", $param,
'', $sortfield, $sortorder,
'center nowrap');
992 $totalarray[
'nbfield']++;
994 if (!empty($arrayfields[
'sp.fk_statut'][
'checked'])) {
995 print_liste_field_titre($arrayfields[
'sp.fk_statut'][
'label'], $_SERVER[
"PHP_SELF"],
"sp.fk_statut",
"", $param,
'', $sortfield, $sortorder,
'center ');
996 $totalarray[
'nbfield']++;
1000 print_liste_field_titre($selectedfields, $_SERVER[
"PHP_SELF"],
"",
'',
'',
'', $sortfield, $sortorder,
'center maxwidthsearch ');
1001 $totalarray[
'nbfield']++;
1009 $savnbfield = $totalarray[
'nbfield'];
1010 $totalarray = array();
1011 $totalarray[
'nbfield'] = 0;
1012 $totalarray[
'val'] = array();
1013 $totalarray[
'val'][
'sp.total_ht'] = 0;
1014 $totalarray[
'val'][
'sp.total_tva'] = 0;
1015 $totalarray[
'val'][
'sp.total_ttc'] = 0;
1017 $imaxinloop = ($limit ? min($num, $limit) : $num);
1018 while ($i < $imaxinloop) {
1019 $obj = $db->fetch_object($resql);
1021 $objectstatic->id = $obj->rowid;
1022 $objectstatic->ref = $obj->ref;
1023 $objectstatic->note_public = $obj->note_public;
1024 $objectstatic->note_private = $obj->note_private;
1025 $objectstatic->status = $obj->status;
1028 $companystatic->id = $obj->socid;
1029 $companystatic->name = $obj->name;
1030 $companystatic->name_alias = $obj->alias;
1031 $companystatic->client = $obj->client;
1032 $companystatic->code_client = $obj->code_client;
1034 if ($mode ==
'kanban') {
1036 print
'<tr class="trkanban"><td colspan="'.$savnbfield.
'">';
1037 print
'<div class="box-flex-container kanban">';
1041 $userstatic->fetch($obj->fk_user_author);
1042 $objectstatic->delivery_date = $obj->dp;
1043 print $objectstatic->getKanbanView(
'', array(
'thirdparty' => $companystatic,
'userauthor' => $userstatic,
'selected' => in_array($obj->rowid, $arrayofselected)));
1044 if ($i == ($imaxinloop - 1)) {
1049 print
'<tr class="oddeven">';
1052 print
'<td class="nowrap center">';
1053 if ($massactionbutton || $massaction) {
1055 if (in_array($obj->rowid, $arrayofselected)) {
1058 print
'<input id="cb'.$obj->rowid.
'" class="flat checkforselect" type="checkbox" name="toselect[]" value="'.$obj->rowid.
'"'.($selected ?
' checked="checked"' :
'').
'>';
1062 if (!empty($arrayfields[
'sp.ref'][
'checked'])) {
1063 print
'<td class="nowraponall">';
1065 print
'<table class="nobordernopadding"><tr class="nocellnopadd">';
1067 print
'<td class="nobordernopadding nowraponall">';
1068 print $objectstatic->getNomUrl(1,
'',
'', 0, -1, 1);
1074 print
'<td style="min-width: 20px" class="nobordernopadding nowrap">';
1079 print
'<td width="16" class="right nobordernopadding hideonsmartphone">';
1082 $urlsource = $_SERVER[
'PHP_SELF'].
'?id='.$obj->rowid;
1083 print $formfile->getDocumentsLink($objectstatic->element, $filename, $filedir);
1084 print
'</td></tr></table>';
1088 $totalarray[
'nbfield']++;
1093 if (!empty($arrayfields[
's.nom'][
'checked'])) {
1094 print
'<td class="tdoverflowmax200">';
1095 print $companystatic->getNomUrl(1,
'supplier', 0, 0, -1, empty($arrayfields[
's.name_alias'][
'checked']) ? 0 : 1);
1098 $totalarray[
'nbfield']++;
1103 if (!empty($arrayfields[
's.name_alias'][
'checked'])) {
1104 print
'<td class="tdoverflowmax200">';
1105 print $companystatic->name_alias;
1108 $totalarray[
'nbfield']++;
1113 if (!empty($arrayfields[
's.town'][
'checked'])) {
1114 print
'<td class="nocellnopadd">';
1118 $totalarray[
'nbfield']++;
1122 if (!empty($arrayfields[
's.zip'][
'checked'])) {
1123 print
'<td class="nocellnopadd">';
1127 $totalarray[
'nbfield']++;
1131 if (!empty($arrayfields[
'state.nom'][
'checked'])) {
1132 print
"<td>".$obj->state_name.
"</td>\n";
1134 $totalarray[
'nbfield']++;
1138 if (!empty($arrayfields[
'country.code_iso'][
'checked'])) {
1139 print
'<td class="center">';
1140 $tmparray =
getCountry($obj->fk_pays,
'all');
1141 print $tmparray[
'label'];
1144 $totalarray[
'nbfield']++;
1148 if (!empty($arrayfields[
'typent.code'][
'checked'])) {
1149 print
'<td class="center">';
1150 if (empty($typenArray) || !is_array($typenArray) || count($typenArray) == 0) {
1151 $typenArray = $formcompany->typent_array(1);
1153 print $typenArray[$obj->typent_code];
1156 $totalarray[
'nbfield']++;
1161 if (!empty($arrayfields[
'sp.date_valid'][
'checked'])) {
1162 print
'<td class="center">';
1166 $totalarray[
'nbfield']++;
1171 if (!empty($arrayfields[
'sp.date_livraison'][
'checked'])) {
1172 print
'<td class="center">';
1176 $totalarray[
'nbfield']++;
1181 if (!empty($arrayfields[
'sp.total_ht'][
'checked'])) {
1182 print
'<td class="right"><span class="amount">'.price($obj->total_ht).
"</span></td>\n";
1184 $totalarray[
'nbfield']++;
1187 $totalarray[
'pos'][$totalarray[
'nbfield']] =
'sp.total_ht';
1189 $totalarray[
'val'][
'sp.total_ht'] += $obj->total_ht;
1192 if (!empty($arrayfields[
'sp.total_tva'][
'checked'])) {
1193 print
'<td class="right"><span class="amount">'.price($obj->total_tva).
"</span></td>\n";
1195 $totalarray[
'nbfield']++;
1198 $totalarray[
'pos'][$totalarray[
'nbfield']] =
'sp.total_tva';
1200 $totalarray[
'val'][
'sp.total_tva'] += $obj->total_tva;
1203 if (!empty($arrayfields[
'sp.total_ttc'][
'checked'])) {
1204 print
'<td class="right"><span class="amount">'.price($obj->total_ttc).
"</span></td>\n";
1206 $totalarray[
'nbfield']++;
1209 $totalarray[
'pos'][$totalarray[
'nbfield']] =
'sp.total_ttc';
1211 $totalarray[
'val'][
'sp.total_ttc'] += $obj->total_ttc;
1215 if (!empty($arrayfields[
'sp.multicurrency_code'][
'checked'])) {
1216 print
'<td class="nowrap">'.$obj->multicurrency_code.
' - '.$langs->trans(
'Currency'.$obj->multicurrency_code).
"</td>\n";
1218 $totalarray[
'nbfield']++;
1223 if (!empty($arrayfields[
'sp.multicurrency_tx'][
'checked'])) {
1224 print
'<td class="nowrap">';
1225 $form->form_multicurrency_rate($_SERVER[
'PHP_SELF'].
'?id='.$obj->rowid, $obj->multicurrency_tx,
'none', $obj->multicurrency_code);
1228 $totalarray[
'nbfield']++;
1232 if (!empty($arrayfields[
'sp.multicurrency_total_ht'][
'checked'])) {
1233 print
'<td class="right nowrap"><span class="amount">'.price($obj->multicurrency_total_ht).
"</span></td>\n";
1235 $totalarray[
'nbfield']++;
1239 if (!empty($arrayfields[
'sp.multicurrency_total_vat'][
'checked'])) {
1240 print
'<td class="right nowrap"><span class="amount">'.price($obj->multicurrency_total_vat).
"</span></td>\n";
1242 $totalarray[
'nbfield']++;
1246 if (!empty($arrayfields[
'sp.multicurrency_total_ttc'][
'checked'])) {
1247 print
'<td class="right nowrap"><span class="amount">'.price($obj->multicurrency_total_ttc).
"</span></td>\n";
1249 $totalarray[
'nbfield']++;
1253 $userstatic->id = $obj->fk_user_author;
1254 $userstatic->login = $obj->login;
1255 $userstatic->status = $obj->ustatus;
1256 $userstatic->lastname = $obj->name;
1257 $userstatic->firstname = $obj->firstname;
1258 $userstatic->photo = $obj->photo;
1259 $userstatic->admin = $obj->admin;
1260 $userstatic->ref = $obj->fk_user_author;
1261 $userstatic->employee = $obj->employee;
1262 $userstatic->email = $obj->uemail;
1265 if (!empty($arrayfields[
'u.login'][
'checked'])) {
1266 print
'<td class="tdoverflowmax125">';
1267 if ($userstatic->id > 0) {
1268 print $userstatic->getNomUrl(-1,
'', 0, 0, 24, 1,
'login',
'', 1);
1272 $totalarray[
'nbfield']++;
1277 include DOL_DOCUMENT_ROOT.
'/core/tpl/extrafields_list_print_fields.tpl.php';
1279 $parameters = array(
'arrayfields' => $arrayfields,
'obj' => $obj,
'i' => $i,
'totalarray' => &$totalarray);
1280 $reshook = $hookmanager->executeHooks(
'printFieldListValue', $parameters);
1281 print $hookmanager->resPrint;
1283 if (!empty($arrayfields[
'sp.datec'][
'checked'])) {
1284 print
'<td class="center nowraponall">';
1285 print
dol_print_date($db->jdate($obj->date_creation),
'dayhour',
'tzuser');
1288 $totalarray[
'nbfield']++;
1292 if (!empty($arrayfields[
'sp.tms'][
'checked'])) {
1293 print
'<td class="center nowraponall">';
1294 print
dol_print_date($db->jdate($obj->date_modification),
'dayhour',
'tzuser');
1297 $totalarray[
'nbfield']++;
1301 if (!empty($arrayfields[
'sp.fk_statut'][
'checked'])) {
1302 print
'<td class="center">'.$objectstatic->getLibStatut(5).
"</td>\n";
1304 $totalarray[
'nbfield']++;
1310 print
'<td class="nowrap center">';
1311 if ($massactionbutton || $massaction) {
1313 if (in_array($obj->rowid, $arrayofselected)) {
1316 print
'<input id="cb'.$obj->rowid.
'" class="flat checkforselect" type="checkbox" name="toselect[]" value="'.$obj->rowid.
'"'.($selected ?
' checked="checked"' :
'').
'>';
1321 $totalarray[
'nbfield']++;
1326 $total += $obj->total_ht;
1327 $subtotal += $obj->total_ht;
1333 include DOL_DOCUMENT_ROOT.
'/core/tpl/list_print_total.tpl.php';
1338 foreach ($arrayfields as $key => $val) {
1339 if (!empty($val[
'checked'])) {
1343 print
'<tr><td colspan="'.$colspan.
'"><span class="opacitymedium">'.$langs->trans(
"NoRecordFound").
'</span></td></tr>';
1348 $parameters = array(
'arrayfields' => $arrayfields,
'sql' => $sql);
1349 $reshook = $hookmanager->executeHooks(
'printFieldListFooter', $parameters);
1350 print $hookmanager->resPrint;
1352 print
'</table>'.
"\n";
1353 print
'</div>'.
"\n";
1355 print
'</form>'.
"\n";
1357 $hidegeneratedfilelistifempty = 1;
1358 if ($massaction ==
'builddoc' || $action ==
'remove_file' || $show_files) {
1359 $hidegeneratedfilelistifempty = 0;
1363 $urlsource = $_SERVER[
'PHP_SELF'].
'?sortfield='.$sortfield.
'&sortorder='.$sortorder;
1364 $urlsource .= str_replace(
'&',
'&', $param);
1366 $filedir = $diroutputmassaction;
1368 $genallowed = $user->hasRight(
'supplier_proposal',
'lire');
1369 $delallowed = $user->hasRight(
'supplier_proposal',
'creer');
1371 print $formfile->showdocuments(
'massfilesarea_supplier_proposal',
'', $filedir, $urlsource, 0, $delallowed,
'', 1, 1, 0, 48, 1, $param, $title,
'',
'',
'',
null, $hidegeneratedfilelistifempty);
if( $user->socid > 0) if(! $user->hasRight('accounting', 'chartofaccount')) $object
if(!defined('NOREQUIRESOC')) if(!defined( 'NOREQUIRETRAN')) if(!defined('NOTOKENRENEWAL')) if(!defined( 'NOREQUIREMENU')) if(!defined('NOREQUIREHTML')) if(!defined( 'NOREQUIREAJAX')) llxHeader()
Empty header.
Class to manage third parties objects (customers, suppliers, prospects...)
Class to manage price ask supplier.
Class to manage Dolibarr users.
getCountry($searchkey, $withcode='', $dbtouse=null, $outputlangs=null, $entconv=1, $searchlabel='')
Return country label, code or id from an id, code or label.
dol_mktime($hour, $minute, $second, $month, $day, $year, $gm='auto', $check=1)
Return a timestamp date built from detailed information (by default a local PHP server timestamp) Rep...
img_picto($titlealt, $picto, $moreatt='', $pictoisfullpath=0, $srconly=0, $notitle=0, $alt='', $morecss='', $marginleftonlyshort=2)
Show picto whatever it's its name (generic function)
GETPOSTINT($paramname, $method=0)
Return the value of a $_GET or $_POST supervariable, converted into integer.
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_now($mode='auto')
Return date for now.
getDolGlobalInt($key, $default=0)
Return a Dolibarr global constant int value.
dol_print_date($time, $format='', $tzoutput='auto', $outputlangs=null, $encodetooutput=false)
Output date in a string format according to outputlangs (or langs if not defined).
dol_sort_array(&$array, $index, $order='asc', $natsort=0, $case_sensitive=0, $keepindex=0)
Advanced sort array by the value of a given key, which produces ascending (default) or descending out...
print_liste_field_titre($name, $file="", $field="", $begin="", $moreparam="", $moreattrib="", $sortfield="", $sortorder="", $prefix="", $tooltip="", $forcenowrapcolumntitle=0)
Show title line of an array.
dolGetButtonTitleSeparator($moreClass="")
Add space between dolGetButtonTitle.
print_barre_liste($title, $page, $file, $options='', $sortfield='', $sortorder='', $morehtmlcenter='', $num=-1, $totalnboflines='', $picto='generic', $pictoisfullpath=0, $morehtmlright='', $morecss='', $limit=-1, $hideselectlimit=0, $hidenavigation=0, $pagenavastextinput=0, $morehtmlrightbeforearrow='')
Print a title with navigation controls for pagination.
GETPOST($paramname, $check='alphanohtml', $method=0, $filter=null, $options=null, $noreplace=0)
Return value of a param into GET or POST supervariable.
setEventMessages($mesg, $mesgs, $style='mesgs', $messagekey='', $noduplicate=0)
Set event messages in dol_events session object.
dol_sanitizeFileName($str, $newstr='_', $unaccent=1)
Clean a string to use it as a file name.
dol_print_error($db=null, $error='', $errors=null)
Displays error message system with all the information to facilitate the diagnosis and the escalation...
getDolGlobalString($key, $default='')
Return dolibarr global constant string value.
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.