31require
'../../main.inc.php';
40require_once DOL_DOCUMENT_ROOT.
'/core/class/html.formaccounting.class.php';
41require_once DOL_DOCUMENT_ROOT.
'/core/class/html.formother.class.php';
42require_once DOL_DOCUMENT_ROOT.
'/core/class/html.formcompany.class.php';
43require_once DOL_DOCUMENT_ROOT.
'/product/class/product.class.php';
44require_once DOL_DOCUMENT_ROOT.
'/fourn/class/fournisseur.facture.class.php';
45require_once DOL_DOCUMENT_ROOT.
'/fourn/class/fournisseur.product.class.php';
46require_once DOL_DOCUMENT_ROOT.
'/accountancy/class/accountingaccount.class.php';
47require_once DOL_DOCUMENT_ROOT.
'/core/lib/accounting.lib.php';
48require_once DOL_DOCUMENT_ROOT.
'/core/lib/date.lib.php';
49require_once DOL_DOCUMENT_ROOT.
'/core/lib/company.lib.php';
52$langs->loadLangs(array(
"bills",
"companies",
"compta",
"accountancy",
"other",
"productbatch",
"products"));
54$action =
GETPOST(
'action',
'aZ09');
55$massaction =
GETPOST(
'massaction',
'alpha');
56$confirm =
GETPOST(
'confirm',
'alpha');
57$toselect =
GETPOST(
'toselect',
'array:aZ09');
58$contextpage =
GETPOST(
'contextpage',
'aZ') ?
GETPOST(
'contextpage',
'aZ') :
'accountancysupplierlist';
59$optioncss =
GETPOST(
'optioncss',
'alpha');
61$default_account =
GETPOSTINT(
'default_account');
64$search_lineid =
GETPOST(
'search_lineid',
'alpha');
65$search_societe =
GETPOST(
'search_societe',
'alpha');
66$search_ref =
GETPOST(
'search_ref',
'alpha');
67$search_ref_supplier =
GETPOST(
'search_ref_supplier',
'alpha');
68$search_invoice =
GETPOST(
'search_invoice',
'alpha');
69$search_label =
GETPOST(
'search_label',
'alpha');
70$search_desc =
GETPOST(
'search_desc',
'alpha');
71$search_amount =
GETPOST(
'search_amount',
'alpha');
72$search_account =
GETPOST(
'search_account',
'alpha');
73$search_vat =
GETPOST(
'search_vat',
'alpha');
74$search_date_startday =
GETPOSTINT(
'search_date_startday');
75$search_date_startmonth =
GETPOSTINT(
'search_date_startmonth');
76$search_date_startyear =
GETPOSTINT(
'search_date_startyear');
77$search_date_endday =
GETPOSTINT(
'search_date_endday');
78$search_date_endmonth =
GETPOSTINT(
'search_date_endmonth');
79$search_date_endyear =
GETPOSTINT(
'search_date_endyear');
80$search_date_start =
dol_mktime(0, 0, 0, $search_date_startmonth, $search_date_startday, $search_date_startyear);
81$search_date_end =
dol_mktime(23, 59, 59, $search_date_endmonth, $search_date_endday, $search_date_endyear);
82$search_country =
GETPOST(
'search_country',
'aZ09');
83$search_tvaintra =
GETPOST(
'search_tvaintra',
'alpha');
87$sortfield =
GETPOST(
'sortfield',
'aZ09comma');
88$sortorder =
GETPOST(
'sortorder',
'aZ09comma');
90if (empty($page) || $page < 0) {
93$offset = $limit * $page;
97 $sortfield =
"f.datef, f.ref, l.rowid";
108$hookmanager->initHooks(array($contextpage));
119if ($user->socid > 0) {
122if (!$user->hasRight(
'accounting',
'bind',
'write')) {
127 'l.rowid' => array(
'label' =>
"LineId",
'position' => 1,
'checked' =>
'1',
'enabled' =>
'1'),
128 'f.ref' => array(
'label' =>
"Invoice",
'position' => 1,
'checked' =>
'1',
'enabled' =>
'1'),
129 'f.libelle' => array(
'label' =>
"InvoiceLabel",
'position' => 1,
'checked' =>
'-1',
'enabled' =>
'1'),
130 'f.datef' => array(
'label' =>
"Date",
'position' => 1,
'checked' =>
'1',
'enabled' =>
'1'),
131 'p.ref' => array(
'label' =>
"ProductRef",
'position' => 1,
'checked' =>
'1',
'enabled' =>
'1'),
132 'l.description' => array(
'label' =>
"ProductDescription",
'position' => 1,
'checked' =>
'-1',
'enabled' =>
'1'),
133 'l.total_ht' => array(
'label' =>
"Amount",
'position' => 1,
'checked' =>
'1',
'enabled' =>
'1'),
134 'l.tva_tx' => array(
'label' =>
"VATRate",
'position' => 1,
'checked' =>
'1',
'enabled' =>
'1'),
135 's.nom' => array(
'label' =>
"ThirdParty",
'position' => 1,
'checked' =>
'1',
'enabled' =>
'1'),
136 'co.label' => array(
'label' =>
"Country",
'position' => 1,
'checked' =>
'1',
'enabled' =>
'1'),
137 's.tva_intra' => array(
'label' =>
"VATIntraShort",
'position' => 1,
'checked' =>
'1',
'enabled' =>
'1'),
138 'aa.data_suggest' => array(
'label' =>
"DataUsedToSuggestAccount",
'position' => 1,
'checked' =>
'1',
'enabled' =>
'1'),
139 'aa.account_number' => array(
'label' =>
"AccountAccountingSuggest",
'position' => 1,
'checked' =>
'1',
'enabled' =>
'1'),
145if (empty($search_date_start) &&
getDolGlobalInt(
'ACCOUNTING_DATE_START_BINDING')) {
156if (
GETPOST(
'cancel',
'alpha')) {
160if (!
GETPOST(
'confirmmassaction',
'alpha') && $massaction !=
'presend' && $massaction !=
'confirm_presend') {
164$parameters = array(
'arrayfields' => &$arrayfields);
165$reshook = $hookmanager->executeHooks(
'doActions', $parameters, $object, $action);
170if (empty($reshook)) {
172 include DOL_DOCUMENT_ROOT.
'/core/actions_changeselectedfields.inc.php';
175 if (
GETPOST(
'button_removefilter_x',
'alpha') ||
GETPOST(
'button_removefilter.x',
'alpha') ||
GETPOST(
'button_removefilter',
'alpha')) {
176 $search_societe =
'';
179 $search_ref_supplier =
'';
180 $search_invoice =
'';
184 $search_account =
'';
186 $search_date_startday =
'';
187 $search_date_startmonth =
'';
188 $search_date_startyear =
'';
189 $search_date_endday =
'';
190 $search_date_endmonth =
'';
191 $search_date_endyear =
'';
192 $search_date_start =
'';
193 $search_date_end =
'';
194 $search_country =
'';
195 $search_tvaintra =
'';
199 $objectclass =
'AccountingAccount';
200 $permissiontoread = $user->hasRight(
'accounting',
'read');
201 $permissiontodelete = $user->hasRight(
'accounting',
'delete');
202 $uploaddir =
$conf->accounting->dir_output;
203 include DOL_DOCUMENT_ROOT.
'/core/actions_massactions.inc.php';
207if ($massaction ==
'ventil' && $user->hasRight(
'accounting',
'bind',
'write')) {
210 if (!empty($toselect)) {
211 $msg =
'<div>'.$langs->trans(
"SelectedLines").
': '.count($toselect).
'</div>';
212 $msg .=
'<div class="detail">';
217 foreach ($toselect as $maLigneCochee) {
218 $maLigneCourante = explode(
"_", $maLigneCochee);
219 $monId = $maLigneCourante[0];
222 if ($monCompte <= 0) {
223 $msg .=
'<div><span class="error">'.$langs->trans(
"Lineofinvoice").
' '.$monId.
' - '.$langs->trans(
"NoAccountSelected").
'</span></div>';
226 $sql =
" UPDATE ".MAIN_DB_PREFIX.
"facture_fourn_det";
227 $sql .=
" SET fk_code_ventilation = ".((int) $monCompte);
228 $sql .=
" WHERE rowid = ".((int) $monId);
231 $accountventilated->fetch($monCompte,
'', 1);
233 dol_syslog(
'accountancy/supplier/list.php', LOG_DEBUG);
234 if (
$db->query($sql)) {
235 $msg .=
'<div><span class="green">'.$langs->trans(
"Lineofinvoice").
' '.$monId.
' - '.$langs->trans(
"VentilatedinAccount").
' : '.
length_accountg($accountventilated->account_number).
'</span></div>';
238 $msg .=
'<div><span class="error">'.$langs->trans(
"ErrorDB").
' : '.$langs->trans(
"Lineofinvoice").
' '.$monId.
' - '.$langs->trans(
"NotVentilatedinAccount").
' : '.
length_accountg($accountventilated->account_number).
'<br> <pre>'.$sql.
'</pre></span></div>';
246 $msg .=
'<div>'.$langs->trans(
"EndProcessing").
'</div>';
250if (
GETPOST(
'sortfield') ==
'f.datef, f.ref, l.rowid') {
251 $value = (
GETPOST(
'sortorder') ==
'asc,asc,asc' ? 0 : 1);
252 require_once DOL_DOCUMENT_ROOT.
'/core/lib/admin.lib.php';
264$help_url =
'EN:Module_Double_Entry_Accounting|FR:Module_Comptabilité_en_Partie_Double#Liaisons_comptables';
266llxHeader(
'', $langs->trans(
"SuppliersVentilation"), $help_url,
'', 0, 0,
'',
'',
'',
'bodyforlist mod-accountancy accountancy-supplier page-list');
268if (empty($chartaccountcode)) {
269 print $langs->trans(
"ErrorChartOfAccountSystemNotSelected");
277$sql =
"SELECT f.rowid as facid, f.ref, f.ref_supplier, f.libelle as invoice_label, f.datef, f.type as ftype, f.fk_facture_source,";
278$sql .=
" l.rowid, l.fk_product, l.description, l.total_ht, l.fk_code_ventilation, l.product_type as type_l, l.tva_tx as tva_tx_line, l.vat_src_code,";
279$sql .=
" p.rowid as product_id, p.ref as product_ref, p.label as product_label, p.fk_product_type as type, p.tva_tx as tva_tx_prod,";
281 $sql .=
" ppe.accountancy_code_sell as code_sell, ppe.accountancy_code_sell_intra as code_sell_intra, ppe.accountancy_code_sell_export as code_sell_export,";
282 $sql .=
" ppe.accountancy_code_buy as code_buy, ppe.accountancy_code_buy_intra as code_buy_intra, ppe.accountancy_code_buy_export as code_buy_export,";
284 $sql .=
" p.accountancy_code_sell as code_sell, p.accountancy_code_sell_intra as code_sell_intra, p.accountancy_code_sell_export as code_sell_export,";
285 $sql .=
" p.accountancy_code_buy as code_buy, p.accountancy_code_buy_intra as code_buy_intra, p.accountancy_code_buy_export as code_buy_export,";
287$sql .=
" p.tosell as status, p.tobuy as status_buy,";
288$sql .=
" aa.rowid as aarowid, aa2.rowid as aarowid_intra, aa3.rowid as aarowid_export, aa4.rowid as aarowid_thirdparty,";
289$sql .=
" co.code as country_code, co.label as country_label,";
290$sql .=
" s.rowid as socid, s.nom as name, s.tva_intra, s.email, s.town, s.zip, s.fk_pays, s.client, s.fournisseur, s.code_client, s.code_fournisseur,";
292 $sql .=
" spe.accountancy_code_customer as code_compta_client,";
293 $sql .=
" spe.accountancy_code_supplier as code_compta_fournisseur,";
294 $sql .=
" spe.accountancy_code_buy as company_code_buy";
296 $sql .=
" s.code_compta as code_compta_client,";
297 $sql .=
" s.code_compta_fournisseur,";
298 $sql .=
" s.accountancy_code_buy as company_code_buy";
300$parameters = array();
301$reshook = $hookmanager->executeHooks(
'printFieldListSelect', $parameters);
302$sql .= $hookmanager->resPrint;
303$sql .=
" FROM ".MAIN_DB_PREFIX.
"facture_fourn as f";
304$sql .=
" INNER JOIN ".MAIN_DB_PREFIX.
"societe as s ON s.rowid = f.fk_soc";
306 $sql .=
" LEFT JOIN " . MAIN_DB_PREFIX .
"societe_perentity as spe ON spe.fk_soc = s.rowid AND spe.entity = " . ((int)
$conf->entity);
308$sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"c_country as co ON co.rowid = s.fk_pays ";
309$sql .=
" INNER JOIN ".MAIN_DB_PREFIX.
"facture_fourn_det as l ON f.rowid = l.fk_facture_fourn";
310$sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"product as p ON p.rowid = l.fk_product";
312 $sql .=
" LEFT JOIN " . MAIN_DB_PREFIX .
"product_perentity as ppe ON ppe.fk_product = p.rowid AND ppe.entity = " . ((int)
$conf->entity);
314$alias_societe_perentity = !
getDolGlobalString(
'MAIN_COMPANY_PERENTITY_SHARED') ?
"s" :
"spe";
315$alias_product_perentity = !
getDolGlobalString(
'MAIN_PRODUCT_PERENTITY_SHARED') ?
"p" :
"ppe";
316$sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"accounting_account as aa ON " . $alias_product_perentity .
".accountancy_code_buy = aa.account_number AND aa.active = 1 AND aa.fk_pcg_version = '".$db->escape($chartaccountcode).
"' AND aa.entity = ".((int)
$conf->entity);
317$sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"accounting_account as aa2 ON " . $alias_product_perentity .
".accountancy_code_buy_intra = aa2.account_number AND aa2.active = 1 AND aa2.fk_pcg_version = '".$db->escape($chartaccountcode).
"' AND aa2.entity = ".((int)
$conf->entity);
318$sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"accounting_account as aa3 ON " . $alias_product_perentity .
".accountancy_code_buy_export = aa3.account_number AND aa3.active = 1 AND aa3.fk_pcg_version = '".$db->escape($chartaccountcode).
"' AND aa3.entity = ".((int)
$conf->entity);
319$sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"accounting_account as aa4 ON " . $alias_societe_perentity .
".accountancy_code_buy = aa4.account_number AND aa4.active = 1 AND aa4.fk_pcg_version = '".$db->escape($chartaccountcode).
"' AND aa4.entity = ".((int)
$conf->entity);
321$parameters = array();
322$reshook = $hookmanager->executeHooks(
'printFieldListFrom', $parameters, $object, $action);
323$sql .= $hookmanager->resPrint;
325$sql .=
" WHERE f.fk_statut > 0 AND l.fk_code_ventilation <= 0";
326$sql .=
" AND l.product_type <= 2";
328if (strlen($search_lineid)) {
331if (strlen($search_societe)) {
334if (strlen(trim($search_invoice))) {
335 $sql .=
natural_search(array(
"f.ref",
"f.ref_supplier"), $search_invoice);
337if (strlen(trim($search_ref))) {
343if (strlen(trim($search_label))) {
344 $sql .=
natural_search(array(
"p.label",
"f.libelle"), $search_label);
346if (strlen(trim($search_desc))) {
349if (strlen(trim($search_amount))) {
352if (strlen(trim($search_account))) {
355if (strlen(trim($search_vat))) {
358if ($search_date_start) {
359 $sql .=
" AND f.datef >= '".$db->idate($search_date_start).
"'";
361if ($search_date_end) {
362 $sql .=
" AND f.datef <= '".$db->idate($search_date_end).
"'";
364if (strlen(trim($search_country))) {
366 $country_code_in_EEC = $country_code_in_EEC_without_me =
'';
367 foreach ($arrayofcode as $key => $value) {
368 $country_code_in_EEC .= ($country_code_in_EEC ?
"," :
"").
"'".$value.
"'";
369 if ($value !=
$mysoc->country_code) {
370 $country_code_in_EEC_without_me .= ($country_code_in_EEC_without_me ?
"," :
"").
"'".$value.
"'";
373 if ($search_country ==
'special_allnotme') {
374 $sql .=
" AND co.code <> '".$db->escape(
$mysoc->country_code).
"'";
375 } elseif ($search_country ==
'special_eec') {
376 $sql .=
" AND co.code IN (".$db->sanitize($country_code_in_EEC, 1).
")";
377 } elseif ($search_country ==
'special_eecnotme') {
378 $sql .=
" AND co.code IN (".$db->sanitize($country_code_in_EEC_without_me, 1).
")";
379 } elseif ($search_country ==
'special_noteec') {
380 $sql .=
" AND co.code NOT IN (".$db->sanitize($country_code_in_EEC, 1).
")";
385if (strlen(trim($search_tvaintra))) {
393$sql .=
" AND f.entity IN (".getEntity(
'facture_fourn', 0).
")";
396$parameters = array();
397$reshook = $hookmanager->executeHooks(
'printFieldListWhere', $parameters);
398$sql .= $hookmanager->resPrint;
400$sql .=
$db->order($sortfield, $sortorder);
403$nbtotalofrecords =
'';
405 $result =
$db->query($sql);
406 $nbtotalofrecords =
$db->num_rows($result);
407 if (($page * $limit) > (
int) $nbtotalofrecords) {
413$sql .=
$db->plimit($limit + 1, $offset);
415dol_syslog(
'accountancy/supplier/list.php', LOG_DEBUG);
418if (
$db->type ==
'mysqli') {
419 $db->query(
"SET SQL_BIG_SELECTS=1");
422$result =
$db->query($sql);
424 $num_lines =
$db->num_rows($result);
427 $arrayofselected = is_array($toselect) ? $toselect : array();
430 if ($contextpage != $_SERVER[
"PHP_SELF"]) {
431 $param .=
'&contextpage='.urlencode($contextpage);
433 if ($limit > 0 && $limit !=
$conf->liste_limit) {
434 $param .=
'&limit='.((int) $limit);
436 if ($search_lineid) {
437 $param .=
'&search_lineid='.urlencode((
string) ($search_lineid));
439 if ($search_societe) {
440 $param .=
'&search_societe='.urlencode($search_societe);
442 if ($search_date_startday) {
443 $param .=
'&search_date_startday='.urlencode((
string) ($search_date_startday));
445 if ($search_date_startmonth) {
446 $param .=
'&search_date_startmonth='.urlencode((
string) ($search_date_startmonth));
448 if ($search_date_startyear) {
449 $param .=
'&search_date_startyear='.urlencode((
string) ($search_date_startyear));
451 if ($search_date_endday) {
452 $param .=
'&search_date_endday='.urlencode((
string) ($search_date_endday));
454 if ($search_date_endmonth) {
455 $param .=
'&search_date_endmonth='.urlencode((
string) ($search_date_endmonth));
457 if ($search_date_endyear) {
458 $param .=
'&search_date_endyear='.urlencode((
string) ($search_date_endyear));
460 if ($search_invoice) {
461 $param .=
'&search_invoice='.urlencode($search_invoice);
464 $param .=
'&search_ref='.urlencode($search_ref);
466 if ($search_ref_supplier) {
467 $param .=
'&search_ref_supplier='.urlencode($search_ref_supplier);
470 $param .=
'&search_label='.urlencode($search_label);
473 $param .=
'&search_desc='.urlencode($search_desc);
475 if ($search_amount) {
476 $param .=
'&search_amount='.urlencode($search_amount);
479 $param .=
'&search_vat='.urlencode($search_vat);
481 if ($search_country) {
482 $param .=
"&search_country=".urlencode($search_country);
484 if ($search_tvaintra) {
485 $param .=
"&search_tvaintra=".urlencode($search_tvaintra);
488 $parameters = array(
'param' => &$param);
489 $reshook = $hookmanager->executeHooks(
'printFieldListSearchParam', $parameters, $object, $action);
490 $param .= $hookmanager->resPrint;
492 $arrayofmassactions = array(
493 'set_default_account' =>
img_picto(
'',
'check',
'class="pictofixedwidth"').$langs->trans(
"ConfirmPreselectAccount"),
494 'ventil' =>
img_picto(
'',
'check',
'class="pictofixedwidth"').$langs->trans(
"Ventilate")
500 $massactionbutton =
'';
501 if ($massaction !==
'set_default_account') {
502 $massactionbutton = $form->selectMassAction(
'ventil', $arrayofmassactions, 1);
505 print
'<form action="'.$_SERVER[
"PHP_SELF"].
'" method="post">'.
"\n";
506 print
'<input type="hidden" name="action" value="ventil">';
507 if ($optioncss !=
'') {
508 print
'<input type="hidden" name="optioncss" value="'.$optioncss.
'">';
510 print
'<input type="hidden" name="token" value="'.newToken().
'">';
511 print
'<input type="hidden" name="formfilteraction" id="formfilteraction" value="list">';
512 print
'<input type="hidden" name="sortfield" value="'.$sortfield.
'">';
513 print
'<input type="hidden" name="sortorder" value="'.$sortorder.
'">';
514 print
'<input type="hidden" name="page" value="'.$page.
'">';
517 print_barre_liste($langs->trans(
"InvoiceLines").
'<br><span class="opacityhigh small">'.$langs->trans(
"DescVentilTodoCustomer").
'</span>', $page, $_SERVER[
"PHP_SELF"], $param, $sortfield, $sortorder, (
string) $massactionbutton, $num_lines, $nbtotalofrecords,
'title_accountancy', 0,
'',
'', $limit, 0, 0, 1);
520 if ($massaction ==
'set_default_account') {
521 $formquestion = array();
522 $formquestion[] = array(
'type' =>
'other',
523 'name' =>
'set_default_account',
524 'label' => $langs->trans(
"AccountancyCode"),
525 'value' => $formaccounting->select_account(
'',
'default_account', 1, array(), 0, 0,
'maxwidth200 maxwidthonsmartphone',
'cachewithshowemptyone'));
526 print $form->formconfirm($_SERVER[
"PHP_SELF"], $langs->trans(
"ConfirmPreselectAccount"), $langs->trans(
"ConfirmPreselectAccountQuestion", count($toselect)),
"confirm_set_default_account", $formquestion, 1, 0, 200, 500, 1);
535 $varpage = $contextpage;
536 $htmlofselectarray = $form->multiSelectArrayWithCheckbox(
'selectedfields', $arrayfields, $varpage,
$conf->main_checkbox_left_column);
537 $selectedfields = $htmlofselectarray;
538 $selectedfields .= $form->showCheckAddButtons(
'checkforselect', 1);
540 print
'<div class="div-table-responsive">';
541 print
'<table class="tagtable liste'.($moreforfilter ?
" listwithfilterbefore" :
"").
'">'.
"\n";
544 print
'<tr class="liste_titre_filter">';
546 if (
$conf->main_checkbox_left_column) {
547 print
'<td class="liste_titre maxwidthsearch center actioncolumn">';
548 $searchpicto = $form->showFilterButtons(
'left');
553 if (!empty($arrayfields[
'l.rowid'][
'checked'])) {
554 print
'<td class="liste_titre" data-key="lineid">';
555 print
'<input type="text" class="flat maxwidth40" name="search_lineid" value="'.dol_escape_htmltag($search_lineid).
'">';
559 if (!empty($arrayfields[
'f.ref'][
'checked'])) {
560 print
'<td class="liste_titre" data-key="invoice">';
561 print
'<input type="text" class="flat maxwidth50" name="search_invoice" value="'.dol_escape_htmltag($search_invoice).
'">';
565 if (!empty($arrayfields[
'f.label'][
'checked'])) {
566 print
'<td class="liste_titre"><input type="text" class="flat maxwidth50" name="search_label" value="'.dol_escape_htmltag($search_label).
'"></td>';
569 if (!empty($arrayfields[
'f.datef'][
'checked'])) {
570 print
'<td class="liste_titre center">';
571 print
'<div class="nowrapfordate">';
572 print $form->selectDate($search_date_start ? $search_date_start : -1,
'search_date_start', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
'From'));
574 print
'<div class="nowrapfordate">';
575 print $form->selectDate($search_date_end ? $search_date_end : -1,
'search_date_end', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
'to'));
580 if (!empty($arrayfields[
'p.ref'][
'checked'])) {
581 print
'<td class="liste_titre" data-key="ref">';
582 print
'<input type="text" class="flat maxwidth50" name="search_ref" value="'.dol_escape_htmltag($search_ref).
'">';
586 if (!empty($arrayfields[
'l.description'][
'checked'])) {
587 print
'<td class="liste_titre" data-key="desc">';
588 print
'<input type="text" class="flat maxwidth50" name="search_desc" value="'.dol_escape_htmltag($search_desc).
'">';
592 if (!empty($arrayfields[
'l.total_ht'][
'checked'])) {
593 print
'<td class="liste_titre" data-key="amount">';
594 print
'<input type="text" class="right flat maxwidth50" name="search_amount" value="'.dol_escape_htmltag($search_amount).
'">';
598 if (!empty($arrayfields[
'l.tva_tx'][
'checked'])) {
599 print
'<td class="liste_titre" data-key="vat">';
600 print
'<input type="text" class="right flat maxwidth50" placeholder="%" name="search_vat" size="1" value="'.dol_escape_htmltag($search_vat).
'">';
604 if (!empty($arrayfields[
's.nom'][
'checked'])) {
605 print
'<td class="liste_titre" data-key="societe">';
606 print
'<input type="text" class="flat maxwidth75imp" name="search_societe" value="'.dol_escape_htmltag($search_societe).
'">';
610 if (!empty($arrayfields[
'co.label'][
'checked'])) {
611 print
'<td class="liste_titre" data-key="country">';
612 print $form->select_country($search_country,
'search_country',
'', 0,
'maxwidth125',
'code2', 1, 0, 1);
616 if (!empty($arrayfields[
's.tva_intra'][
'checked'])) {
617 print
'<td class="liste_titre">';
618 print
'<input type="text" class="flat maxwidth50" name="search_tvaintra" value="'.dol_escape_htmltag($search_tvaintra).
'">';
622 if (!empty($arrayfields[
'aa.data_suggest'][
'checked'])) {
623 print
'<td class="liste_titre"></td>';
626 if (!empty($arrayfields[
'aa.account_number'][
'checked'])) {
627 print
'<td class="liste_titre"></td>';
630 $parameters = array(
'arrayfields' => $arrayfields);
631 $reshook = $hookmanager->executeHooks(
'printFieldListOption', $parameters, $object, $action);
632 print $hookmanager->resPrint;
634 if (!
$conf->main_checkbox_left_column) {
635 print
'<td class="liste_titre center maxwidthsearch actioncolumn">';
636 $searchpicto = $form->showFilterButtons();
647 print
'<tr class="liste_titre">';
649 if (
$conf->main_checkbox_left_column) {
650 print
getTitleFieldOfList($selectedfields, 0, $_SERVER[
"PHP_SELF"],
'',
'',
'',
'', $sortfield, $sortorder,
'center maxwidthsearch ').
"\n";
654 if (!empty($arrayfields[
'l.rowid'][
'checked'])) {
655 print_liste_field_titre($arrayfields[
'l.rowid'][
'label'], $_SERVER[
"PHP_SELF"],
"l.rowid",
"", $param,
'', $sortfield, $sortorder);
659 if (!empty($arrayfields[
'f.ref'][
'checked'])) {
660 print_liste_field_titre($arrayfields[
'f.ref'][
'label'], $_SERVER[
"PHP_SELF"],
"f.ref",
"", $param,
'', $sortfield, $sortorder);
664 if (!empty($arrayfields[
'f.libelle'][
'checked'])) {
665 print_liste_field_titre($arrayfields[
'f.libelle'][
'label'], $_SERVER[
"PHP_SELF"],
"f.libelle",
"", $param,
'', $sortfield, $sortorder);
669 if (!empty($arrayfields[
'f.datef'][
'checked'])) {
670 print_liste_field_titre($arrayfields[
'f.datef'][
'label'], $_SERVER[
"PHP_SELF"],
"f.datef, f.ref, l.rowid",
"", $param,
'', $sortfield, $sortorder,
'center ');
674 if (!empty($arrayfields[
'p.ref'][
'checked'])) {
675 print_liste_field_titre($arrayfields[
'p.ref'][
'label'], $_SERVER[
"PHP_SELF"],
"p.ref",
"", $param,
'', $sortfield, $sortorder);
679 if (!empty($arrayfields[
'l.description'][
'checked'])) {
680 print_liste_field_titre($arrayfields[
'l.description'][
'label'], $_SERVER[
"PHP_SELF"],
"l.description",
"", $param,
'', $sortfield, $sortorder);
684 if (!empty($arrayfields[
'l.total_ht'][
'checked'])) {
685 print_liste_field_titre($arrayfields[
'l.total_ht'][
'label'], $_SERVER[
"PHP_SELF"],
"l.total_ht",
"", $param,
'', $sortfield, $sortorder,
'right ');
689 if (!empty($arrayfields[
'l.tva_tx'][
'checked'])) {
690 print_liste_field_titre($arrayfields[
'l.tva_tx'][
'label'], $_SERVER[
"PHP_SELF"],
"l.tva_tx",
"", $param,
'', $sortfield, $sortorder,
'right ');
694 if (!empty($arrayfields[
's.nom'][
'checked'])) {
695 print_liste_field_titre($arrayfields[
's.nom'][
'label'], $_SERVER[
"PHP_SELF"],
"s.nom",
"", $param,
'', $sortfield, $sortorder);
699 if (!empty($arrayfields[
'co.label'][
'checked'])) {
700 print_liste_field_titre($arrayfields[
'co.label'][
'label'], $_SERVER[
"PHP_SELF"],
"co.label",
"", $param,
'', $sortfield, $sortorder);
704 if (!empty($arrayfields[
's.tva_intra'][
'checked'])) {
705 print_liste_field_titre($arrayfields[
's.tva_intra'][
'label'], $_SERVER[
"PHP_SELF"],
"s.tva_intra",
"", $param,
'', $sortfield, $sortorder);
709 if (!empty($arrayfields[
'aa.data_suggest'][
'checked'])) {
710 print_liste_field_titre($arrayfields[
'aa.data_suggest'][
'label'], $_SERVER[
"PHP_SELF"],
"aa.account_number",
"", $param,
'', $sortfield, $sortorder);
714 if (!empty($arrayfields[
'aa.account_number'][
'checked'])) {
715 print_liste_field_titre($arrayfields[
'aa.account_number'][
'label'], $_SERVER[
"PHP_SELF"],
"aa.account_number",
"", $param,
'', $sortfield, $sortorder);
719 $parameters = array(
'arrayfields' => $arrayfields,
'param' => $param,
'sortfield' => $sortfield,
'sortorder' => $sortorder);
720 $reshook = $hookmanager->executeHooks(
'printFieldListTitle', $parameters, $object, $action);
721 print $hookmanager->resPrint;
723 if (!
$conf->main_checkbox_left_column) {
724 print
getTitleFieldOfList($selectedfields, 0, $_SERVER[
"PHP_SELF"],
'',
'',
'',
'', $sortfield, $sortorder,
'center maxwidthsearch ').
"\n";
734 $accountingaccount_codetotid_cache = array();
735 $suggestedaccountingaccountfor =
'';
736 $suggestedaccountingaccountbydefaultfor =
'';
740 while ($i < min($num_lines, $limit)) {
741 $objp =
$db->fetch_object($result);
750 $thirdpartystatic->id = $objp->socid;
751 $thirdpartystatic->name = $objp->name;
752 $thirdpartystatic->client = $objp->client;
753 $thirdpartystatic->fournisseur = $objp->fournisseur;
754 $thirdpartystatic->code_client = $objp->code_client;
755 $thirdpartystatic->code_compta_client = $objp->code_compta_client;
756 $thirdpartystatic->code_fournisseur = $objp->code_fournisseur;
757 $thirdpartystatic->code_compta_fournisseur = $objp->code_compta_fournisseur;
758 $thirdpartystatic->email = $objp->email;
759 $thirdpartystatic->country_code = $objp->country_code;
760 $thirdpartystatic->tva_intra = $objp->tva_intra;
761 $thirdpartystatic->code_compta_product = $objp->company_code_buy;
763 $product_static->ref = $objp->product_ref;
764 $product_static->id = $objp->product_id;
765 $product_static->type = $objp->type;
766 $product_static->label = $objp->product_label;
767 $product_static->status = $objp->status;
768 $product_static->status_buy = $objp->status_buy;
769 $product_static->accountancy_code_sell = $objp->code_sell;
770 $product_static->accountancy_code_sell_intra = $objp->code_sell_intra;
771 $product_static->accountancy_code_sell_export = $objp->code_sell_export;
772 $product_static->accountancy_code_buy = $objp->code_buy;
773 $product_static->accountancy_code_buy_intra = $objp->code_buy_intra;
774 $product_static->accountancy_code_buy_export = $objp->code_buy_export;
775 $product_static->tva_tx = $objp->tva_tx_prod;
777 $facturefourn_static->ref = $objp->ref;
778 $facturefourn_static->id = $objp->facid;
779 $facturefourn_static->type = $objp->ftype;
780 $facturefourn_static->ref_supplier = $objp->ref_supplier;
781 $facturefourn_static->label = $objp->invoice_label;
782 $facturefourn_static->date =
$db->jdate($objp->datef);
783 $facturefourn_static->fk_facture_source = $objp->fk_facture_source;
785 $facturefourn_static_det->id = $objp->rowid;
786 $facturefourn_static_det->total_ht = $objp->total_ht;
787 $facturefourn_static_det->tva_tx = $objp->tva_tx_line;
788 $facturefourn_static_det->vat_src_code = $objp->vat_src_code;
789 $facturefourn_static_det->product_type = $objp->type_l;
790 $facturefourn_static_det->desc = $objp->description;
792 $accountingAccountArray = array(
793 'dom' => $objp->aarowid,
794 'intra' => $objp->aarowid_intra,
795 'export' => $objp->aarowid_export,
796 'thirdparty' => $objp->aarowid_thirdparty);
798 $code_buy_p_notset =
'';
799 $code_buy_t_notset =
'';
803 $return = $accountingAccount->getAccountingCodeToBind(
$mysoc, $thirdpartystatic, $product_static, $facturefourn_static, $facturefourn_static_det, $accountingAccountArray,
'supplier');
804 if (!is_array($return) && $return < 0) {
807 $suggestedid = $return[
'suggestedid'];
808 $suggestedaccountingaccountfor = $return[
'suggestedaccountingaccountfor'];
809 $suggestedaccountingaccountbydefaultfor = $return[
'suggestedaccountingaccountbydefaultfor'];
810 $code_buy_l = $return[
'code_l'];
811 $code_buy_p = $return[
'code_p'];
812 $code_buy_t = $return[
'code_t'];
816 if (!empty($code_buy_p)) {
819 $code_buy_p_notset =
'color:orange';
821 if (empty($code_buy_l) && empty($code_buy_p)) {
822 $code_buy_p_notset =
'color:red';
833 print
'<tr class="oddeven">';
836 if (
$conf->main_checkbox_left_column) {
837 print
'<td class="nowrap center actioncolumn">';
838 $selected = in_array($objp->rowid.
"_".$i, $toselect);
839 print
'<input type="checkbox" class="flat checkforselect checkforselect'.$facturefourn_static_det->id.
'" name="toselect[]" value="'.$facturefourn_static_det->id.
"_".$i.
'"'.($selected ?
" checked" :
"").
'/>';
847 if (!empty($arrayfields[
'l.rowid'][
'checked'])) {
848 print
'<td>'.$facturefourn_static_det->id.
'</td>';
852 if (!empty($arrayfields[
'f.ref'][
'checked'])) {
853 print
'<td class="nowraponall cell2linesheight">'.$facturefourn_static->getNomUrl(1);
854 if ($objp->ref_supplier) {
855 print
'<br><span class="opacitymedium small">'.dol_escape_htmltag($objp->ref_supplier).
'</span>';
867 if (!empty($arrayfields[
'f.libelle'][
'checked'])) {
868 print
'<td class="tdoverflowmax100 small" title="'.dol_escape_htmltag($objp->invoice_label).
'">';
874 if (!empty($arrayfields[
'f.datef'][
'checked'])) {
875 print
'<td class="center">'.dol_print_date($facturefourn_static->date,
'day').
'</td>';
879 if (!empty($arrayfields[
'p.ref'][
'checked'])) {
880 print
'<td class="tdoverflowmax100 cell2linesheight">';
881 if ($product_static->id > 0) {
882 print $product_static->getNomUrl(1);
884 if ($product_static->label) {
885 print
'<br><span class="opacitymedium small">'.dol_escape_htmltag($product_static->label).
'</span>';
891 if (!empty($arrayfields[
'l.description'][
'checked'])) {
893 print
'<td class="tdoverflowmax150 small classfortooltip" title="'.dol_escape_htmltag($text).
'">';
899 if (!empty($arrayfields[
'l.total_ht'][
'checked'])) {
900 print
'<td class="right nowraponall amount">';
901 print
price($objp->total_ht);
906 if (!empty($arrayfields[
'l.tva_tx'][
'checked'])) {
907 $code_vat_differ =
'';
911 print
'<td class="right cell2linesheight'.($code_vat_differ ?
' '.$code_vat_differ :
'').
'">';
912 print
vatrate($facturefourn_static_det->tva_tx.($facturefourn_static_det->vat_src_code ?
' ('.$facturefourn_static_det->vat_src_code.
')' :
''), false, 0, 0, 1);
917 if (!empty($arrayfields[
's.nom'][
'checked'])) {
918 print
'<td class="tdoverflowmax100">'.$thirdpartystatic->getNomUrl(1,
'supplier').
'</td>';
922 if (!empty($arrayfields[
'co.label'][
'checked'])) {
923 $labelcountry = ($objp->country_code && ($langs->trans(
"Country".$objp->country_code) !=
"Country".$objp->country_code)) ? $langs->trans(
"Country".$objp->country_code) : $objp->country_label;
924 print
'<td class="tdoverflowmax100" title="'.dol_escape_htmltag($labelcountry).
'">';
930 if (!empty($arrayfields[
'co.label'][
'checked'])) {
931 print
'<td class="tdoverflowmax80" title="'.dol_escape_htmltag($objp->tva_intra).
'">'.
dol_escape_htmltag($objp->tva_intra).
'</td>';
935 if (!empty($arrayfields[
'aa.data_suggest'][
'checked'])) {
936 print
'<td class="small cell2linesheight">';
937 $s =
'1. '.(($facturefourn_static_det->product_type == 1) ? $langs->trans(
"DefaultForService") : $langs->trans(
"DefaultForProduct")).
': ';
940 if ($suggestedaccountingaccountbydefaultfor ==
'eec') {
941 $shelp .= $langs->trans(
"SaleEEC");
942 } elseif ($suggestedaccountingaccountbydefaultfor ==
'eecwithvat') {
943 $shelp = $langs->trans(
"SaleEECWithVAT");
944 } elseif ($suggestedaccountingaccountbydefaultfor ==
'eecwithoutvatnumber') {
945 $shelp = $langs->trans(
"SaleEECWithoutVATNumber");
947 } elseif ($suggestedaccountingaccountbydefaultfor ==
'export') {
948 $shelp .= $langs->trans(
"SaleExport");
950 $s .= ($code_buy_l > 0 ?
length_accountg($code_buy_l) :
'<span style="'.$code_buy_p_notset.
'">'.$langs->trans(
"NotDefined").
'</span>');
951 $textforrule = $form->textwithpicto($s, $shelp, 1, $ttype,
'', 0, 2,
'', 1);
952 if ($product_static->id > 0) {
953 $textforrule .=
'<br>';
954 $s =
'2. '.(($facturefourn_static_det->product_type == 1) ? $langs->trans(
"ThisService") : $langs->trans(
"ThisProduct")).
': ';
957 if ($suggestedaccountingaccountfor ==
'eec') {
958 $shelp = $langs->trans(
"SaleEEC");
959 } elseif ($suggestedaccountingaccountfor ==
'eecwithvat') {
960 $shelp = $langs->trans(
"SaleEECWithVAT");
961 } elseif ($suggestedaccountingaccountfor ==
'eecwithoutvatnumber') {
962 $shelp = $langs->trans(
"SaleEECWithoutVATNumber");
964 } elseif ($suggestedaccountingaccountfor ==
'export') {
965 $shelp = $langs->trans(
"SaleExport");
967 $s .= (empty($code_buy_p) ?
'<span style="'.$code_buy_p_notset.
'">'.$langs->trans(
"NotDefined").
'</span>' :
length_accountg($code_buy_p));
968 $textforrule .= $form->textwithpicto($s, $shelp, 1, $ttype,
'', 0, 2,
'', 1);
970 $textforrule .=
'<br>';
971 $s =
'2. '.(($objp->type_l == 1) ? $langs->trans(
"ThisService") : $langs->trans(
"ThisProduct")).
': ';
973 $s .= $langs->trans(
"NotDefined");
974 $textforrule .= $form->textwithpicto($s, $shelp, 1,
'help',
'', 0, 2,
'', 1);
977 $textforrule .=
'<br>';
978 $s =
'3. '.(($facturefourn_static_det->product_type == 1) ? $langs->trans(
"ServiceForThisThirdparty") : $langs->trans(
"ProductForThisThirdparty")).
': ';
980 $s .= ($code_buy_t > 0 ?
length_accountg($code_buy_t) :
'<span style="'.$code_buy_t_notset.
'">'.$langs->trans(
"NotDefined").
'</span>');
981 $textforrule .= $form->textwithpicto($s, $shelp, 1,
'help',
'', 0, 2,
'', 1);
988 if (!empty($arrayfields[
'aa.account_number'][
'checked'])) {
990 print $formaccounting->select_account(($default_account > 0 && $confirm ===
'yes' && in_array($objp->rowid.
"_".$i, $toselect)) ? (
string) $default_account : (
string) $suggestedid,
'codeventil'.$facturefourn_static_det->id, 1, array(), 0, 0,
'codeventil maxwidth150 maxwidthonsmartphone',
'cachewithshowemptyone');
995 $parameters = array(
'arrayfields' => $arrayfields,
'obj' => $objp,
'i' => $i,
'totalarray' => &
$totalarray);
996 $reshook = $hookmanager->executeHooks(
'printFieldListValue', $parameters, $object, $action);
997 print $hookmanager->resPrint;
999 if (!
$conf->main_checkbox_left_column) {
1000 print
'<td class="nowrap center actioncolumn">';
1001 $selected = in_array($objp->rowid.
"_".$i, $toselect);
1002 print
'<input type="checkbox" class="flat checkforselect checkforselect'.$facturefourn_static_det->id.
'" name="toselect[]" value="'.$facturefourn_static_det->id.
"_".$i.
'"'.($selected ?
" checked" :
"").
'/>';
1012 if ($num_lines == 0) {
1014 foreach ($arrayfields as $key => $val) {
1015 if (!empty($val[
'checked'])) {
1019 print
'<tr><td colspan="'.$colspan.
'"><span class="opacitymedium">'.$langs->trans(
"NoRecordFound").
'</span></td></tr>';
1022 $parameters = array(
'arrayfields' => $arrayfields,
'sql' => $sql);
1023 $reshook = $hookmanager->executeHooks(
'printFieldListFooter', $parameters, $object, $action);
1024 print $hookmanager->resPrint;
1033if (
$db->type ==
'mysqli') {
1034 $db->query(
"SET SQL_BIG_SELECTS=0");
1038print
'<script type="text/javascript">
1039jQuery(document).ready(function() {
1040 jQuery(".codeventil").change(function() {
1041 var s=$(this).attr("id").replace("codeventil", "")
1042 console.log(s+" "+$(this).val());
1043 if ($(this).val() == -1) jQuery(".checkforselect"+s).prop("checked", false);
1044 else jQuery(".checkforselect"+s).prop("checked", true);
if(! $sortfield) if(! $sortorder) $object
length_accountg($account)
Return General accounting account with defined length (used for product and miscellaneous)
dolibarr_set_const($db, $name, $value, $type='chaine', $visible=0, $note='', $entity=1)
Insert a parameter (key,value) into database (delete old key then insert it again).
llxFooter($comment='', $zone='private', $disabledoutputofmessages=0)
Empty footer.
if(!defined('NOREQUIRESOC')) if(!defined( 'NOREQUIRETRAN')) if(!defined('NOTOKENRENEWAL')) if(!defined( 'NOREQUIREMENU')) if(!defined('NOREQUIREHTML')) if(!defined( 'NOREQUIREAJAX')) llxHeader($head='', $title='', $help_url='', $target='', $disablejs=0, $disablehead=0, $arrayofjs='', $arrayofcss='', $morequerystring='', $morecssonbody='', $replacemainareaby='', $disablenofollow=0, $disablenoindex=0)
Empty header.
Class to manage accounting accounts.
const TYPE_SITUATION
Situation invoice.
Class to manage suppliers invoices.
const TYPE_DEPOSIT
Deposit invoice.
const TYPE_CREDIT_NOTE
Credit note invoice.
const TYPE_REPLACEMENT
Replacement invoice.
Class to manage products or services.
Class to manage third parties objects (customers, suppliers, prospects...)
Class to manage line invoices.
getCountriesInEEC()
Return list of countries that are inside the EEC (European Economic Community) Note: Try to keep this...
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...
dol_getIdFromCode($db, $key, $tablename, $fieldkey='code', $fieldid='id', $entityfilter=0, $filters='', $useCache=true)
Return an id or code from a code or id.
setEventMessages($mesg, $mesgs, $style='mesgs', $messagekey='', $noduplicate=0, $attop=0)
Set event messages in dol_events session object.
vatrate($rate, $addpercent=false, $info_bits=0, $usestarfornpr=0, $html=0)
Return a string with VAT rate label formatted for view output Used into pdf and HTML pages.
print_liste_field_titre($name, $file="", $field="", $begin="", $param="", $moreattrib="", $sortfield="", $sortorder="", $prefix="", $tooltip="", $forcenowrapcolumntitle=0)
Show title line of an array.
print_barre_liste($title, $page, $file, $options='', $sortfield='', $sortorder='', $morehtmlcenter='', $num=-1, $totalnboflines='', $picto='generic', $pictoisfullpath=0, $morehtmlright='', $morecss='', $limit=-1, $selectlimitsuffix=0, $hidenavigation=0, $pagenavastextinput=0, $morehtmlrightbeforearrow='')
Print a title with navigation controls for pagination.
img_picto($titlealt, $picto, $moreatt='', $pictoisfullpath=0, $srconly=0, $notitle=0, $alt='', $morecss='', $marginleftonlyshort=2, $allowothertags=array())
Show picto whatever it's its name (generic function)
dolPrintHTML($s, $allowiframe=0, $moreallowedtags=array())
Return a string (that can be on several lines) ready to be output on a HTML page.
dolGetFirstLineOfText($text, $nboflines=1, $charset='UTF-8')
Return first line of text.
dol_string_nohtmltag($stringtoclean, $removelinefeed=1, $pagecodeto='UTF-8', $strip_tags=0, $removedoublespaces=1)
Clean a string from all HTML tags and entities.
price2num($amount, $rounding='', $option=0)
Function that return a number with universal decimal format (decimal separator is '.
setEventMessage($mesgs, $style='mesgs', $noduplicate=0, $attop=0)
Set event message in dol_events session object.
price($amount, $form=0, $outlangs='', $trunc=1, $rounding=-1, $forcerounding=-1, $currency_code='')
Function to format a value into an amount for visual output Function used into PDF and HTML pages.
natural_search($fields, $value, $mode=0, $nofirstand=0, $sqltoadd='')
Generate natural SQL search string for a criteria (this criteria can be tested on one or several fiel...
getDolGlobalInt($key, $default=0)
Return a Dolibarr global constant int value.
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...
GETPOST($paramname, $check='alphanohtml', $method=0, $filter=null, $options=null, $noreplace=0, $nodefault=0)
Return value of a param into GET or POST supervariable.
getTitleFieldOfList($name, $thead=0, $file="", $field="", $begin="", $moreparam="", $moreattrib="", $sortfield="", $sortorder="", $prefix="", $disablesortlink=0, $tooltip='', $forcenowrapcolumntitle=0)
Get title line of an array.
GETPOSTINT($paramname, $method=0, $nodefault=0)
Return the value of a $_GET or $_POST supervariable, converted into integer.
dol_trunc($string, $size=40, $trunc='right', $stringencoding='UTF-8', $nodot=0, $display=0)
Truncate a string to a particular length adding '...' if string larger than length.
GETPOSTISSET($paramname)
Return true if we are in a context of submitting the parameter $paramname from a POST of a form.
getDolGlobalString($key, $default='')
Return a Dolibarr global constant string value.
isModEnabled($module)
Is Dolibarr module enabled.
dol_syslog($message, $level=LOG_INFO, $ident=0, $suffixinfilename='', $restricttologhandler='', $logcontext=null)
Write log message into outputs.
dol_escape_htmltag($stringtoescape, $keepb=0, $keepn=0, $noescapetags='', $escapeonlyhtmltags=0, $cleanalsojavascript=0)
Returns text escaped for inclusion in HTML alt or title or value tags, or into values of HTML input f...
print $langs trans("Show") . '< td style="' . $timeColor . '" align="center"> s</td > badge status0 badge status4 badge status3 Error badge status8< td align="center">< span class="badge ' . $badge . '"></span ></td >< td align="center">< a href="#" class="button button-small" onclick="openLogModal(this)" data-req="' . dol_escape_htmltag($reqSafe) . '" data-res="' . dol_escape_htmltag($resSafe) . '" data-err="' . dol_escape_htmltag($errSafe) . '">< span class="fa fa-search-plus"></span ></a ></td ></tr >< tr >< td colspan="' . $colspan . '" class="opacitymedium"></td ></tr ></table ></div ></form > logModal none logModal none s a JSON string
buildzip.php
accessforbidden($message='', $printheader=1, $printfooter=1, $showonlymessage=0, $params=null)
Show a message to say access is forbidden and stop program.