28require
'../../main.inc.php';
37require_once DOL_DOCUMENT_ROOT.
'/core/class/html.formaccounting.class.php';
38require_once DOL_DOCUMENT_ROOT.
'/core/class/html.formother.class.php';
39require_once DOL_DOCUMENT_ROOT.
'/core/class/html.formcompany.class.php';
40require_once DOL_DOCUMENT_ROOT.
'/fourn/class/fournisseur.facture.class.php';
41require_once DOL_DOCUMENT_ROOT.
'/fourn/class/fournisseur.product.class.php';
42require_once DOL_DOCUMENT_ROOT.
'/accountancy/class/accountingaccount.class.php';
43require_once DOL_DOCUMENT_ROOT.
'/product/class/product.class.php';
44require_once DOL_DOCUMENT_ROOT.
'/core/lib/accounting.lib.php';
45require_once DOL_DOCUMENT_ROOT.
'/core/lib/date.lib.php';
46require_once DOL_DOCUMENT_ROOT.
'/core/lib/company.lib.php';
49$langs->loadLangs(array(
"compta",
"bills",
"other",
"accountancy",
"productbatch",
"products"));
51$action =
GETPOST(
'action',
'aZ');
52$optioncss =
GETPOST(
'optioncss',
'aZ');
54$account_parent =
GETPOST(
'account_parent');
55$changeaccount =
GETPOST(
'changeaccount',
'array');
57$search_societe =
GETPOST(
'search_societe',
'alpha');
58$search_lineid =
GETPOST(
'search_lineid',
'alpha');
59$search_ref =
GETPOST(
'search_ref',
'alpha');
60$search_invoice =
GETPOST(
'search_invoice',
'alpha');
62$search_label =
GETPOST(
'search_label',
'alpha');
63$search_desc =
GETPOST(
'search_desc',
'alpha');
64$search_amount =
GETPOST(
'search_amount',
'alpha');
65$search_account =
GETPOST(
'search_account',
'alpha');
66$search_vat =
GETPOST(
'search_vat',
'alpha');
67$search_date_startday =
GETPOSTINT(
'search_date_startday');
68$search_date_startmonth =
GETPOSTINT(
'search_date_startmonth');
69$search_date_startyear =
GETPOSTINT(
'search_date_startyear');
70$search_date_endday =
GETPOSTINT(
'search_date_endday');
71$search_date_endmonth =
GETPOSTINT(
'search_date_endmonth');
72$search_date_endyear =
GETPOSTINT(
'search_date_endyear');
73$search_date_start =
dol_mktime(0, 0, 0, $search_date_startmonth, $search_date_startday, $search_date_startyear);
74$search_date_end =
dol_mktime(23, 59, 59, $search_date_endmonth, $search_date_endday, $search_date_endyear);
75$search_country =
GETPOST(
'search_country',
'aZ09');
76$search_tvaintra =
GETPOST(
'search_tvaintra',
'alpha');
80$sortfield =
GETPOST(
'sortfield',
'aZ09comma');
81$sortorder =
GETPOST(
'sortorder',
'aZ09comma');
83if (empty($page) || $page < 0) {
86$offset = $limit * $page;
90 $sortfield =
"f.datef, f.ref, l.rowid";
101$contextpage =
'accountancysupplierlines';
102$hookmanager->initHooks([$contextpage]);
110if ($user->socid > 0) {
113if (!$user->hasRight(
'accounting',
'bind',
'write')) {
120 'l.rowid' => array(
'label' =>
"LineId",
'position' => 1,
'checked' =>
'1',
'enabled' =>
'1'),
121 'f.ref' => array(
'label' =>
"Invoice",
'position' => 1,
'checked' =>
'1',
'enabled' =>
'1'),
122 'f.libelle' => array(
'label' =>
"InvoiceLabel",
'position' => 1,
'checked' =>
'1',
'enabled' =>
'1'),
123 'f.datef' => array(
'label' =>
"Date",
'position' => 1,
'checked' =>
'1',
'enabled' =>
'1'),
124 'p.ref' => array(
'label' =>
"ProductRef",
'position' => 1,
'checked' =>
'1',
'enabled' =>
'1'),
125 'l.description' => array(
'label' =>
"ProductDescription",
'position' => 1,
'checked' =>
'-1',
'enabled' =>
'1'),
126 'l.total_ht' => array(
'label' =>
"Amount",
'position' => 1,
'checked' =>
'1',
'enabled' =>
'1'),
127 'l.tva_tx' => array(
'label' =>
"VATRate",
'position' => 1,
'checked' =>
'1',
'enabled' =>
'1'),
128 's.nom' => array(
'label' =>
"ThirdParty",
'position' => 1,
'checked' =>
'1',
'enabled' =>
'1'),
129 'co.label' => array(
'label' =>
"Country",
'position' => 1,
'checked' =>
'1',
'enabled' =>
'1'),
130 's.tva_intra' => array(
'label' =>
"VATIntra",
'position' => 1,
'checked' =>
'1',
'enabled' =>
'1'),
131 'aa.account_number' => array(
'label' =>
"AccountAccounting",
'position' => 1,
'checked' =>
'1',
'enabled' =>
'1'),
141$parameters = array(
'arrayfields' => &$arrayfields);
142$reshook = $hookmanager->executeHooks(
'doActions', $parameters, $object, $action);
147if (empty($reshook)) {
149 include DOL_DOCUMENT_ROOT.
'/core/actions_changeselectedfields.inc.php';
152 if (
GETPOST(
'button_removefilter_x',
'alpha') ||
GETPOST(
'button_removefilter.x',
'alpha') ||
GETPOST(
'button_removefilter',
'alpha')) {
153 $search_societe =
'';
156 $search_invoice =
'';
161 $search_account =
'';
163 $search_date_startday =
'';
164 $search_date_startmonth =
'';
165 $search_date_startyear =
'';
166 $search_date_endday =
'';
167 $search_date_endmonth =
'';
168 $search_date_endyear =
'';
169 $search_date_start =
'';
170 $search_date_end =
'';
171 $search_country =
'';
172 $search_tvaintra =
'';
175 if (is_array($changeaccount) && count($changeaccount) > 0 && $user->hasRight(
'accounting',
'bind',
'write')) {
180 setEventMessages($langs->trans(
"ErrorFieldRequired", $langs->transnoentitiesnoconv(
"Account")),
null,
'errors');
186 $sql1 =
"UPDATE ".MAIN_DB_PREFIX.
"facture_fourn_det";
187 $sql1 .=
" SET fk_code_ventilation=".(GETPOSTINT(
'account_parent') > 0 ?
GETPOSTINT(
'account_parent') :
'0');
188 $sql1 .=
' WHERE rowid IN ('.$db->sanitize(implode(
',', $changeaccount)).
')';
190 dol_syslog(
'accountancy/supplier/lines.php::changeaccount sql= '.$sql1);
191 $resql1 =
$db->query($sql1);
204 $account_parent =
'';
209if (
GETPOST(
'sortfield') ==
'f.datef, f.ref, l.rowid') {
210 $value = (
GETPOST(
'sortorder') ==
'asc,asc,asc' ? 0 : 1);
211 require_once DOL_DOCUMENT_ROOT.
'/core/lib/admin.lib.php';
223$help_url =
'EN:Module_Double_Entry_Accounting|FR:Module_Comptabilité_en_Partie_Double#Liaisons_comptables';
225llxHeader(
'', $langs->trans(
"SuppliersVentilation").
' - '.$langs->trans(
"Dispatched"), $help_url,
'', 0, 0,
'',
'',
'',
'mod-accountancy accountancy-supplier page-lines');
227print
'<script type="text/javascript">
229 $(\'#select-all\').click(function(event) {
230 // Iterate each checkbox
231 $(\':checkbox\').each(function() {
235 $(\'#unselect-all\').click(function(event) {
236 // Iterate each checkbox
237 $(\':checkbox\').each(function() {
238 this.checked = false;
247$sql =
"SELECT f.rowid as facid, f.ref as ref, f.ref_supplier, f.type as ftype, f.libelle as invoice_label, f.datef, f.fk_soc,";
248$sql .=
" l.rowid, l.fk_product, l.product_type as line_type, l.description, l.total_ht , l.qty, l.tva_tx, l.vat_src_code,";
249$sql .=
" aa.rowid as fk_compte, aa.label as label_account, aa.labelshort as labelshort_account, aa.account_number,";
250$sql .=
" p.rowid as product_id, p.fk_product_type as product_type, p.ref as product_ref, p.label as product_label, p.fk_product_type as type, p.tobuy, p.tosell,";
252 $sql .=
" ppe.accountancy_code_buy, ppe.accountancy_code_buy_intra, ppe.accountancy_code_buy_export,";
254 $sql .=
" p.accountancy_code_buy, p.accountancy_code_buy_intra, p.accountancy_code_buy_export,";
256$sql .=
" co.code as country_code, co.label as country,";
257$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";
259 $sql .=
", spe.accountancy_code_customer as code_compta_client";
260 $sql .=
", spe.accountancy_code_supplier as code_compta_fournisseur";
262 $sql .=
", s.code_compta as code_compta_client";
263 $sql .=
", s.code_compta_fournisseur";
265$parameters = array();
266$reshook = $hookmanager->executeHooks(
'printFieldListSelect', $parameters);
267$sql .= $hookmanager->resPrint;
268$sql .=
" FROM ".MAIN_DB_PREFIX.
"facture_fourn_det as l";
269$sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"product as p ON p.rowid = l.fk_product";
271 $sql .=
" LEFT JOIN " . MAIN_DB_PREFIX .
"product_perentity as ppe ON ppe.fk_product = p.rowid AND ppe.entity = " . ((int)
$conf->entity);
273$sql .=
" INNER JOIN ".MAIN_DB_PREFIX.
"accounting_account as aa ON aa.rowid = l.fk_code_ventilation";
274$sql .=
" INNER JOIN ".MAIN_DB_PREFIX.
"facture_fourn as f ON f.rowid = l.fk_facture_fourn";
275$sql .=
" INNER JOIN ".MAIN_DB_PREFIX.
"societe as s ON s.rowid = f.fk_soc";
277 $sql .=
" LEFT JOIN " . MAIN_DB_PREFIX .
"societe_perentity as spe ON spe.fk_soc = s.rowid AND spe.entity = " . ((int)
$conf->entity);
279$sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"c_country as co ON co.rowid = s.fk_pays ";
280$parameters = array();
281$reshook = $hookmanager->executeHooks(
'printFieldListFrom', $parameters, $object, $action);
282$sql .= $hookmanager->resPrint;
283$sql .=
" WHERE f.rowid = l.fk_facture_fourn and f.fk_statut >= 1 AND l.fk_code_ventilation <> 0 ";
285if ($search_societe) {
291if (strlen(trim($search_invoice))) {
292 $sql .=
natural_search(array(
"f.ref",
"f.ref_supplier"), $search_invoice);
297if (strlen(trim($search_label))) {
300if (strlen(trim($search_ref))) {
303if (strlen(trim($search_desc))) {
306if (strlen(trim($search_amount))) {
309if (strlen(trim($search_account))) {
312if (strlen(trim($search_vat))) {
315if ($search_date_start) {
316 $sql .=
" AND f.datef >= '".$db->idate($search_date_start).
"'";
318if ($search_date_end) {
319 $sql .=
" AND f.datef <= '".$db->idate($search_date_end).
"'";
321if (strlen(trim($search_country))) {
323 $country_code_in_EEC = $country_code_in_EEC_without_me =
'';
324 foreach ($arrayofcode as $key => $value) {
325 $country_code_in_EEC .= ($country_code_in_EEC ?
"," :
"").
"'".$value.
"'";
326 if ($value !=
$mysoc->country_code) {
327 $country_code_in_EEC_without_me .= ($country_code_in_EEC_without_me ?
"," :
"").
"'".$value.
"'";
330 if ($search_country ==
'special_allnotme') {
331 $sql .=
" AND co.code <> '".$db->escape(
$mysoc->country_code).
"'";
332 } elseif ($search_country ==
'special_eec') {
333 $sql .=
" AND co.code IN (".$db->sanitize($country_code_in_EEC, 1).
")";
334 } elseif ($search_country ==
'special_eecnotme') {
335 $sql .=
" AND co.code IN (".$db->sanitize($country_code_in_EEC_without_me, 1).
")";
336 } elseif ($search_country ==
'special_noteec') {
337 $sql .=
" AND co.code NOT IN (".$db->sanitize($country_code_in_EEC, 1).
")";
342if (strlen(trim($search_tvaintra))) {
345$sql .=
" AND f.entity IN (".getEntity(
'facture_fourn', 0).
")";
348$parameters = array();
349$reshook = $hookmanager->executeHooks(
'printFieldListWhere', $parameters);
350$sql .= $hookmanager->resPrint;
352$sql .=
$db->order($sortfield, $sortorder);
355$nbtotalofrecords =
'';
357 $result =
$db->query($sql);
358 $nbtotalofrecords =
$db->num_rows($result);
359 if (($page * $limit) > (
int) $nbtotalofrecords) {
365$sql .=
$db->plimit($limit + 1, $offset);
367dol_syslog(
"accountancy/supplier/lines.php", LOG_DEBUG);
368$result =
$db->query($sql);
370 $num_lines =
$db->num_rows($result);
374 if ($contextpage != $_SERVER[
"PHP_SELF"]) {
375 $param .=
'&contextpage='.urlencode($contextpage);
377 if ($limit > 0 && $limit !=
$conf->liste_limit) {
378 $param .=
'&limit='.((int) $limit);
380 if ($search_societe) {
381 $param .=
"&search_societe=".urlencode($search_societe);
383 if ($search_invoice) {
384 $param .=
"&search_invoice=".urlencode($search_invoice);
387 $param .=
"&search_ref=".urlencode($search_ref);
393 $param .=
"&search_label=".urlencode($search_label);
396 $param .=
"&search_desc=".urlencode($search_desc);
398 if ($search_account) {
399 $param .=
"&search_account=".urlencode($search_account);
402 $param .=
"&search_vat=".urlencode($search_vat);
404 if ($search_date_startday) {
405 $param .=
'&search_date_startday='.urlencode((
string) ($search_date_startday));
407 if ($search_date_startmonth) {
408 $param .=
'&search_date_startmonth='.urlencode((
string) ($search_date_startmonth));
410 if ($search_date_startyear) {
411 $param .=
'&search_date_startyear='.urlencode((
string) ($search_date_startyear));
413 if ($search_date_endday) {
414 $param .=
'&search_date_endday='.urlencode((
string) ($search_date_endday));
416 if ($search_date_endmonth) {
417 $param .=
'&search_date_endmonth='.urlencode((
string) ($search_date_endmonth));
419 if ($search_date_endyear) {
420 $param .=
'&search_date_endyear='.urlencode((
string) ($search_date_endyear));
422 if ($search_country) {
423 $param .=
"&search_country=".urlencode($search_country);
425 if ($search_tvaintra) {
426 $param .=
"&search_tvaintra=".urlencode($search_tvaintra);
429 $parameters = array(
'param' => &$param);
430 $reshook = $hookmanager->executeHooks(
'printFieldListSearchParam', $parameters, $object, $action);
431 $param .= $hookmanager->resPrint;
433 print
'<form action="'.$_SERVER[
"PHP_SELF"].
'" method="post">'.
"\n";
434 print
'<input type="hidden" name="action" value="ventil">';
435 if ($optioncss !=
'') {
436 print
'<input type="hidden" name="optioncss" value="'.$optioncss.
'">';
438 print
'<input type="hidden" name="token" value="'.newToken().
'">';
439 print
'<input type="hidden" name="formfilteraction" id="formfilteraction" value="list">';
440 print
'<input type="hidden" name="sortfield" value="'.$sortfield.
'">';
441 print
'<input type="hidden" name="sortorder" value="'.$sortorder.
'">';
442 print
'<input type="hidden" name="page" value="'.$page.
'">';
445 print_barre_liste($langs->trans(
"InvoiceLinesDone").
'<br><span class="opacityhigh small">'.$langs->trans(
"DescVentilDoneSupplier").
'</span>', $page, $_SERVER[
"PHP_SELF"], $param, $sortfield, $sortorder,
'', $num_lines, $nbtotalofrecords,
'title_accountancy', 0,
'',
'', $limit, 0, 0, 1);
447 print
'<br>'.$langs->trans(
"ChangeAccount").
' <div class="inline-block paddingbottom paddingtop">';
448 print $formaccounting->select_account($account_parent,
'account_parent', 2, array(), 0, 0,
'maxwidth300 maxwidthonsmartphone valignmiddle');
449 print
'<input type="submit" class="button small smallpaddingimp valignmiddle" value="'.$langs->trans(
"ChangeBinding").
'"/></div>';
454 $varpage = $contextpage;
455 $htmlofselectarray = $form->multiSelectArrayWithCheckbox(
'selectedfields', $arrayfields, $varpage,
$conf->main_checkbox_left_column);
456 $selectedfields = $htmlofselectarray;
457 $selectedfields .= $form->showCheckAddButtons(
'checkforselect', 1);
459 print
'<div class="div-table-responsive">';
460 print
'<table class="tagtable liste'.($moreforfilter ?
" listwithfilterbefore" :
"").
'">'.
"\n";
463 print
'<tr class="liste_titre_filter">';
465 if (
$conf->main_checkbox_left_column) {
466 print
'<td class="liste_titre maxwidthsearch center actioncolumn">';
467 $searchpicto = $form->showFilterButtons(
'left');
472 if (!empty($arrayfields[
'l.rowid'][
'checked'])) {
473 print
'<td class="liste_titre" data-key="lineid">';
474 print
'<input type="text" class="flat maxwidth40" name="search_lineid" value="'.dol_escape_htmltag($search_lineid).
'">';
478 if (!empty($arrayfields[
'f.ref'][
'checked'])) {
479 print
'<td class="liste_titre" data-key="invoice">';
480 print
'<input type="text" class="flat maxwidth50" name="search_invoice" value="'.dol_escape_htmltag($search_invoice).
'">';
484 if (!empty($arrayfields[
'f.libelle'][
'checked'])) {
485 print
'<td class="liste_titre" data-key="invoice">';
486 print
'<input type="text" class="flat maxwidth50" name="search_label" value="'.dol_escape_htmltag($search_label).
'">';
490 if (!empty($arrayfields[
'f.datef'][
'checked'])) {
491 print
'<td class="liste_titre center">';
492 print
'<div class="nowrapfordate">';
493 print $form->selectDate($search_date_start ? $search_date_start : -1,
'search_date_start', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
'From'));
495 print
'<div class="nowrapfordate">';
496 print $form->selectDate($search_date_end ? $search_date_end : -1,
'search_date_end', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
'to'));
501 if (!empty($arrayfields[
'p.ref'][
'checked'])) {
502 print
'<td class="liste_titre" data-key="ref">';
503 print
'<input type="text" class="flat maxwidth50" name="search_ref" value="'.dol_escape_htmltag($search_ref).
'">';
507 if (!empty($arrayfields[
'l.description'][
'checked'])) {
508 print
'<td class="liste_titre" data-key="desc">';
509 print
'<input type="text" class="flat maxwidth50" name="search_desc" value="'.dol_escape_htmltag($search_desc).
'">';
513 if (!empty($arrayfields[
'l.total_ht'][
'checked'])) {
514 print
'<td class="liste_titre" data-key="amount">';
515 print
'<input type="text" class="right flat maxwidth50" name="search_amount" value="'.dol_escape_htmltag($search_amount).
'">';
519 if (!empty($arrayfields[
'l.tva_tx'][
'checked'])) {
520 print
'<td class="liste_titre" data-key="vat">';
521 print
'<input type="text" class="right flat maxwidth50" placeholder="%" name="search_vat" size="1" value="'.dol_escape_htmltag($search_vat).
'">';
525 if (!empty($arrayfields[
's.nom'][
'checked'])) {
526 print
'<td class="liste_titre" data-key="societe">';
527 print
'<input type="text" class="flat maxwidth75imp" name="search_societe" value="'.dol_escape_htmltag($search_societe).
'">';
531 if (!empty($arrayfields[
'co.label'][
'checked'])) {
532 print
'<td class="liste_titre" data-key="country">';
533 print $form->select_country($search_country,
'search_country',
'', 0,
'maxwidth125',
'code2', 1, 0, 1);
538 if (!empty($arrayfields[
's.tva_intra'][
'checked'])) {
539 print
'<td class="liste_titre">';
540 print
'<input type="text" class="flat maxwidth50" name="search_tvaintra" value="'.dol_escape_htmltag($search_tvaintra).
'">';
544 if (!empty($arrayfields[
'aa.account_number'][
'checked'])) {
545 print
'<td class="liste_titre">';
546 print
'<input type="text" class="flat maxwidth50" name="search_account" value="'.dol_escape_htmltag($search_account).
'">';
550 $parameters = array(
'arrayfields' => $arrayfields);
551 $reshook = $hookmanager->executeHooks(
'printFieldListOption', $parameters, $object, $action);
552 print $hookmanager->resPrint;
555 if (!
$conf->main_checkbox_left_column) {
556 print
'<td class="liste_titre center maxwidthsearch actioncolumn">';
557 $searchpicto = $form->showFilterButtons();
568 print
'<tr class="liste_titre">';
570 if (
$conf->main_checkbox_left_column) {
571 print
getTitleFieldOfList($selectedfields, 0, $_SERVER[
"PHP_SELF"],
'',
'',
'',
'', $sortfield, $sortorder,
'center maxwidthsearch ').
"\n";
575 if (!empty($arrayfields[
'l.rowid'][
'checked'])) {
576 print_liste_field_titre($arrayfields[
'l.rowid'][
'label'], $_SERVER[
"PHP_SELF"],
"l.rowid",
"", $param,
'', $sortfield, $sortorder);
580 if (!empty($arrayfields[
'f.ref'][
'checked'])) {
581 print_liste_field_titre($arrayfields[
'f.ref'][
'label'], $_SERVER[
"PHP_SELF"],
"f.ref",
"", $param,
'', $sortfield, $sortorder);
585 if (!empty($arrayfields[
'f.libelle'][
'checked'])) {
586 print_liste_field_titre($arrayfields[
'f.libelle'][
'label'], $_SERVER[
"PHP_SELF"],
"f.libelle",
"", $param,
'', $sortfield, $sortorder);
590 if (!empty($arrayfields[
'f.datef'][
'checked'])) {
591 print_liste_field_titre($arrayfields[
'f.datef'][
'label'], $_SERVER[
"PHP_SELF"],
"f.datef, f.ref, l.rowid",
"", $param,
'', $sortfield, $sortorder,
'center ');
595 if (!empty($arrayfields[
'p.ref'][
'checked'])) {
596 print_liste_field_titre($arrayfields[
'p.ref'][
'label'], $_SERVER[
"PHP_SELF"],
"p.ref",
"", $param,
'', $sortfield, $sortorder);
600 if (!empty($arrayfields[
'l.description'][
'checked'])) {
601 print_liste_field_titre($arrayfields[
'l.description'][
'label'], $_SERVER[
"PHP_SELF"],
"l.description",
"", $param,
'', $sortfield, $sortorder);
605 if (!empty($arrayfields[
'l.total_ht'][
'checked'])) {
606 print_liste_field_titre($arrayfields[
'l.total_ht'][
'label'], $_SERVER[
"PHP_SELF"],
"l.total_ht",
"", $param,
'', $sortfield, $sortorder,
'right ');
610 if (!empty($arrayfields[
'l.tva_tx'][
'checked'])) {
611 print_liste_field_titre($arrayfields[
'l.tva_tx'][
'label'], $_SERVER[
"PHP_SELF"],
"l.tva_tx",
"", $param,
'', $sortfield, $sortorder,
'right ');
615 if (!empty($arrayfields[
's.nom'][
'checked'])) {
616 print_liste_field_titre($arrayfields[
's.nom'][
'label'], $_SERVER[
"PHP_SELF"],
"s.nom",
"", $param,
'', $sortfield, $sortorder);
620 if (!empty($arrayfields[
'co.label'][
'checked'])) {
621 print_liste_field_titre($arrayfields[
'co.label'][
'label'], $_SERVER[
"PHP_SELF"],
"co.label",
"", $param,
'', $sortfield, $sortorder);
625 if (!empty($arrayfields[
's.tva_intra'][
'checked'])) {
626 print_liste_field_titre($arrayfields[
's.tva_intra'][
'label'], $_SERVER[
"PHP_SELF"],
"s.tva_intra",
"", $param,
'', $sortfield, $sortorder);
630 if (!empty($arrayfields[
'aa.account_number'][
'checked'])) {
631 print_liste_field_titre($arrayfields[
'aa.account_number'][
'label'], $_SERVER[
"PHP_SELF"],
"aa.account_number",
"", $param,
'', $sortfield, $sortorder);
635 $parameters = array(
'arrayfields' => $arrayfields,
'param' => $param,
'sortfield' => $sortfield,
'sortorder' => $sortorder);
636 $reshook = $hookmanager->executeHooks(
'printFieldListTitle', $parameters, $object, $action);
637 print $hookmanager->resPrint;
639 if (!
$conf->main_checkbox_left_column) {
640 print
getTitleFieldOfList($selectedfields, 0, $_SERVER[
"PHP_SELF"],
'',
'',
'',
'', $sortfield, $sortorder,
'center maxwidthsearch ').
"\n";
653 while ($i < min($num_lines, $limit)) {
654 $objp =
$db->fetch_object($result);
656 $facturefournisseur_static->ref = $objp->ref;
657 $facturefournisseur_static->id = $objp->facid;
658 $facturefournisseur_static->type = $objp->ftype;
659 $facturefournisseur_static->ref_supplier = $objp->ref_supplier;
660 $facturefournisseur_static->label = $objp->invoice_label;
662 $thirdpartystatic->id = $objp->socid;
663 $thirdpartystatic->name = $objp->name;
664 $thirdpartystatic->client = $objp->client;
665 $thirdpartystatic->fournisseur = $objp->fournisseur;
666 $thirdpartystatic->code_client = $objp->code_client;
667 $thirdpartystatic->code_compta_client = $objp->code_compta_client;
668 $thirdpartystatic->code_fournisseur = $objp->code_fournisseur;
669 $thirdpartystatic->code_compta_fournisseur = $objp->code_compta_fournisseur;
670 $thirdpartystatic->email = $objp->email;
671 $thirdpartystatic->country_code = $objp->country_code;
673 $productstatic->ref = $objp->product_ref;
674 $productstatic->id = $objp->product_id;
675 $productstatic->label = $objp->product_label;
676 $productstatic->type = $objp->line_type;
677 $productstatic->status = $objp->tosell;
678 $productstatic->status_buy = $objp->tobuy;
679 $productstatic->accountancy_code_buy = $objp->accountancy_code_buy;
680 $productstatic->accountancy_code_buy_intra = $objp->accountancy_code_buy_intra;
681 $productstatic->accountancy_code_buy_export = $objp->accountancy_code_buy_export;
683 $accountingaccountstatic->rowid = $objp->fk_compte;
684 $accountingaccountstatic->label = $objp->label_account;
685 $accountingaccountstatic->labelshort = $objp->labelshort_account;
686 $accountingaccountstatic->account_number = $objp->account_number;
688 print
'<tr class="oddeven">';
691 if (
$conf->main_checkbox_left_column) {
692 print
'<td class="nowrap center actioncolumn">';
693 $selected = in_array($objp->rowid, $changeaccount);
694 print
'<input id="cb'.$objp->rowid.
'" class="flat checkforselect checkforaction" type="checkbox" name="changeaccount[]" value="'.$objp->rowid.
'"'.($selected ?
' checked="checked"' :
'').
'>';
702 if (!empty($arrayfields[
'l.rowid'][
'checked'])) {
703 print
'<td>'.$objp->rowid.
'</td>';
707 if (!empty($arrayfields[
'f.ref'][
'checked'])) {
708 print
'<td class="nowraponall tdoverflowmax125 cell2linesheight">';
709 print $facturefournisseur_static->getNomUrl(1);
710 if ($objp->ref_supplier) {
711 print
'<br><span class="opacitymedium small">'.dol_escape_htmltag($objp->ref_supplier).
'</span>';
723 if (!empty($arrayfields[
'f.libelle'][
'checked'])) {
724 print
'<td class="tdoverflowmax125 small" title="'.dol_escape_htmltag($objp->invoice_label).
'">';
730 if (!empty($arrayfields[
'f.datef'][
'checked'])) {
731 print
'<td class="center">'.dol_print_date(
$db->jdate($objp->datef),
'day').
'</td>';
735 if (!empty($arrayfields[
'p.ref'][
'checked'])) {
736 print
'<td class="tdoverflowmax100 cell2linesheight">';
737 if ($productstatic->id > 0) {
738 print $productstatic->getNomUrl(1);
740 if ($productstatic->id > 0 && $objp->product_label) {
743 if ($objp->product_label) {
744 print
'<span class="opacitymedium">'.dolPrintHTML($objp->product_label).
'</span>';
750 if (!empty($arrayfields[
'l.description'][
'checked'])) {
752 print
'<td class="tdoverflowmax200 small" title="'.dolPrintHTMLForAttribute($text).
'">';
754 print $form->textwithtooltip(
dol_trunc($text, $trunclength), $objp->description);
759 if (!empty($arrayfields[
'l.total_ht'][
'checked'])) {
760 print
'<td class="right nowraponall amount">'.price($objp->total_ht).
'</td>';
764 if (!empty($arrayfields[
'l.tva_tx'][
'checked'])) {
765 print
'<td class="right">'.vatrate($objp->tva_tx.($objp->vat_src_code ?
' ('.$objp->vat_src_code.
')' :
'')).
'</td>';
769 if (!empty($arrayfields[
's.nom'][
'checked'])) {
770 print
'<td class="tdoverflowmax100">'.$thirdpartystatic->getNomUrl(1,
'supplier').
'</td>';
774 if (!empty($arrayfields[
'co.label'][
'checked'])) {
775 print
'<td class="tdoverflowmax100" title="'.dolPrintHTMLForAttribute($langs->trans(
"Country".$objp->country_code).
' ('.$objp->country_code.
')').
'">';
776 if ($objp->country_code) {
777 print $langs->trans(
"Country".$objp->country_code);
784 if (!empty($arrayfields[
's.tva_intra'][
'checked'])) {
785 print
'<td class="tdoverflowmax80" title="'.dolPrintHTMLForAttribute($objp->tva_intra).
'">'.
dol_escape_htmltag($objp->tva_intra).
'</td>';
789 if (!empty($arrayfields[
'aa.account_number'][
'checked'])) {
790 print
'<td class="tdoverflowmax200" title="'.dolPrintHTMLForAttribute($accountingaccountstatic->label).
'">';
791 print
'<a class="editfielda" href="./card.php?id='.$objp->rowid.
'&backtopage='.urlencode($_SERVER[
"PHP_SELF"].($param ?
'?'.$param :
'')).
'">';
794 print $accountingaccountstatic->getNomUrl(0, 1, 1,
'', 1);
799 $parameters = array(
'arrayfields' => $arrayfields,
'obj' => $objp,
'i' => $i,
'totalarray' => &
$totalarray);
800 $reshook = $hookmanager->executeHooks(
'printFieldListValue', $parameters, $object, $action);
801 print $hookmanager->resPrint;
803 if (!
$conf->main_checkbox_left_column) {
804 print
'<td class="nowrap center actioncolumn">';
805 $selected = in_array($objp->rowid, $changeaccount);
806 print
'<input id="cb'.$objp->rowid.
'" class="flat checkforselect checkforaction" type="checkbox" name="changeaccount[]" value="'.$objp->rowid.
'"'.($selected ?
' checked="checked"' :
'').
'>';
816 if ($num_lines == 0) {
818 foreach ($arrayfields as $key => $val) {
819 if (!empty($val[
'checked'])) {
823 print
'<tr><td colspan="'.$colspan.
'"><span class="opacitymedium">'.$langs->trans(
"NoRecordFound").
'</span></td></tr>';
826 $parameters = array(
'arrayfields' => $arrayfields,
'sql' => $sql);
827 $reshook = $hookmanager->executeHooks(
'printFieldListFooter', $parameters, $object, $action);
828 print $hookmanager->resPrint;
834 if ($nbtotalofrecords > $limit) {
835 print_barre_liste(
'', $page, $_SERVER[
"PHP_SELF"], $param, $sortfield, $sortorder,
'', $num_lines, $nbtotalofrecords,
'', 0,
'',
'', $limit, 1);
840 print
$db->lasterror();
if(! $sortfield) if(! $sortorder) $object
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.
Class to manage suppliers invoices.
Class to manage predefined suppliers products.
Class to manage third parties objects (customers, suppliers, prospects...)
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...
setEventMessages($mesg, $mesgs, $style='mesgs', $messagekey='', $noduplicate=0, $attop=0)
Set event messages in dol_events session object.
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.
GETPOSTINT($paramname, $method=0)
Return the value of a $_GET or $_POST supervariable, converted into integer.
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 '.
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...
getTitleFieldOfList($name, $thead=0, $file="", $field="", $begin="", $moreparam="", $moreattrib="", $sortfield="", $sortorder="", $prefix="", $disablesortlink=0, $tooltip='', $forcenowrapcolumntitle=0)
Get title line of an array.
GETPOST($paramname, $check='alphanohtml', $method=0, $filter=null, $options=null, $noreplace=0)
Return value of a param into GET or POST supervariable.
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.
getDolGlobalString($key, $default='')
Return a Dolibarr global constant string value.
isModEnabled($module)
Is Dolibarr module enabled.
img_edit($titlealt='default', $float=0, $other='')
Show logo edit/modify fiche.
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...
accessforbidden($message='', $printheader=1, $printfooter=1, $showonlymessage=0, $params=null)
Show a message to say access is forbidden and stop program.