28require
'../../main.inc.php';
30require_once DOL_DOCUMENT_ROOT.
'/core/class/html.formaccounting.class.php';
31require_once DOL_DOCUMENT_ROOT.
'/core/class/html.formother.class.php';
32require_once DOL_DOCUMENT_ROOT.
'/core/class/html.formcompany.class.php';
33require_once DOL_DOCUMENT_ROOT.
'/fourn/class/fournisseur.facture.class.php';
34require_once DOL_DOCUMENT_ROOT.
'/fourn/class/fournisseur.product.class.php';
35require_once DOL_DOCUMENT_ROOT.
'/accountancy/class/accountingaccount.class.php';
36require_once DOL_DOCUMENT_ROOT.
'/product/class/product.class.php';
37require_once DOL_DOCUMENT_ROOT.
'/core/lib/accounting.lib.php';
38require_once DOL_DOCUMENT_ROOT.
'/core/lib/date.lib.php';
39require_once DOL_DOCUMENT_ROOT.
'/core/lib/company.lib.php';
51$langs->loadLangs(array(
"compta",
"bills",
"other",
"accountancy",
"productbatch",
"products"));
53$optioncss =
GETPOST(
'optioncss',
'aZ');
55$account_parent =
GETPOST(
'account_parent');
56$changeaccount =
GETPOST(
'changeaccount',
'array');
58$search_societe =
GETPOST(
'search_societe',
'alpha');
59$search_lineid =
GETPOST(
'search_lineid',
'alpha');
60$search_ref =
GETPOST(
'search_ref',
'alpha');
61$search_invoice =
GETPOST(
'search_invoice',
'alpha');
63$search_label =
GETPOST(
'search_label',
'alpha');
64$search_desc =
GETPOST(
'search_desc',
'alpha');
65$search_amount =
GETPOST(
'search_amount',
'alpha');
66$search_account =
GETPOST(
'search_account',
'alpha');
67$search_vat =
GETPOST(
'search_vat',
'alpha');
68$search_date_startday =
GETPOSTINT(
'search_date_startday');
69$search_date_startmonth =
GETPOSTINT(
'search_date_startmonth');
70$search_date_startyear =
GETPOSTINT(
'search_date_startyear');
71$search_date_endday =
GETPOSTINT(
'search_date_endday');
72$search_date_endmonth =
GETPOSTINT(
'search_date_endmonth');
73$search_date_endyear =
GETPOSTINT(
'search_date_endyear');
74$search_date_start =
dol_mktime(0, 0, 0, $search_date_startmonth, $search_date_startday, $search_date_startyear);
75$search_date_end =
dol_mktime(23, 59, 59, $search_date_endmonth, $search_date_endday, $search_date_endyear);
76$search_country =
GETPOST(
'search_country',
'aZ09');
77$search_tvaintra =
GETPOST(
'search_tvaintra',
'alpha');
81$sortfield =
GETPOST(
'sortfield',
'aZ09comma');
82$sortorder =
GETPOST(
'sortorder',
'aZ09comma');
84if (empty($page) || $page < 0) {
87$offset = $limit * $page;
91 $sortfield =
"f.datef, f.ref, l.rowid";
102$contextpage =
'accountancysupplierlines';
103$hookmanager->initHooks([$contextpage]);
109if ($user->socid > 0) {
112if (!$user->hasRight(
'accounting',
'bind',
'write')) {
119 'l.rowid' => array(
'label' =>
"LineId",
'position' => 1,
'checked' =>
'1',
'enabled' =>
'1'),
120 'f.ref' => array(
'label' =>
"Invoice",
'position' => 1,
'checked' =>
'1',
'enabled' =>
'1'),
121 'f.libelle' => array(
'label' =>
"InvoiceLabel",
'position' => 1,
'checked' =>
'1',
'enabled' =>
'1'),
122 'f.datef' => array(
'label' =>
"Date",
'position' => 1,
'checked' =>
'1',
'enabled' =>
'1'),
123 'p.ref' => array(
'label' =>
"ProductRef",
'position' => 1,
'checked' =>
'1',
'enabled' =>
'1'),
124 'l.description' => array(
'label' =>
"ProductDescription",
'position' => 1,
'checked' =>
'1',
'enabled' =>
'1'),
125 'l.total_ht' => array(
'label' =>
"Amount",
'position' => 1,
'checked' =>
'1',
'enabled' =>
'1'),
126 'l.tva_tx' => array(
'label' =>
"VATRate",
'position' => 1,
'checked' =>
'1',
'enabled' =>
'1'),
127 's.nom' => array(
'label' =>
"ThirdParty",
'position' => 1,
'checked' =>
'1',
'enabled' =>
'1'),
128 'co.label' => array(
'label' =>
"Country",
'position' => 1,
'checked' =>
'1',
'enabled' =>
'1'),
129 's.tva_intra' => array(
'label' =>
"VATIntra",
'position' => 1,
'checked' =>
'1',
'enabled' =>
'1'),
130 'aa.account_number' => array(
'label' =>
"AccountAccounting",
'position' => 1,
'checked' =>
'1',
'enabled' =>
'1'),
140$parameters = array(
'arrayfields' => &$arrayfields);
141$reshook = $hookmanager->executeHooks(
'doActions', $parameters, $object, $action);
146if (empty($reshook)) {
148 include DOL_DOCUMENT_ROOT.
'/core/actions_changeselectedfields.inc.php';
151 if (
GETPOST(
'button_removefilter_x',
'alpha') ||
GETPOST(
'button_removefilter.x',
'alpha') ||
GETPOST(
'button_removefilter',
'alpha')) {
152 $search_societe =
'';
155 $search_invoice =
'';
160 $search_account =
'';
162 $search_date_startday =
'';
163 $search_date_startmonth =
'';
164 $search_date_startyear =
'';
165 $search_date_endday =
'';
166 $search_date_endmonth =
'';
167 $search_date_endyear =
'';
168 $search_date_start =
'';
169 $search_date_end =
'';
170 $search_country =
'';
171 $search_tvaintra =
'';
174 if (is_array($changeaccount) && count($changeaccount) > 0 && $user->hasRight(
'accounting',
'bind',
'write')) {
179 setEventMessages($langs->trans(
"ErrorFieldRequired", $langs->transnoentitiesnoconv(
"Account")),
null,
'errors');
185 $sql1 =
"UPDATE ".MAIN_DB_PREFIX.
"facture_fourn_det";
186 $sql1 .=
" SET fk_code_ventilation=".(GETPOSTINT(
'account_parent') > 0 ?
GETPOSTINT(
'account_parent') :
'0');
187 $sql1 .=
' WHERE rowid IN ('.$db->sanitize(implode(
',', $changeaccount)).
')';
189 dol_syslog(
'accountancy/supplier/lines.php::changeaccount sql= '.$sql1);
190 $resql1 = $db->query($sql1);
203 $account_parent =
'';
208if (
GETPOST(
'sortfield') ==
'f.datef, f.ref, l.rowid') {
209 $value = (
GETPOST(
'sortorder') ==
'asc,asc,asc' ? 0 : 1);
210 require_once DOL_DOCUMENT_ROOT.
'/core/lib/admin.lib.php';
211 $res =
dolibarr_set_const($db,
"ACCOUNTING_LIST_SORT_VENTILATION_DONE", $value,
'yesno', 0,
'', $conf->entity);
219$form =
new Form($db);
222$help_url =
'EN:Module_Double_Entry_Accounting|FR:Module_Comptabilité_en_Partie_Double#Liaisons_comptables';
224llxHeader(
'', $langs->trans(
"SuppliersVentilation").
' - '.$langs->trans(
"Dispatched"), $help_url,
'', 0, 0,
'',
'',
'',
'mod-accountancy accountancy-supplier page-lines');
226print
'<script type="text/javascript">
228 $(\'#select-all\').click(function(event) {
229 // Iterate each checkbox
230 $(\':checkbox\').each(function() {
234 $(\'#unselect-all\').click(function(event) {
235 // Iterate each checkbox
236 $(\':checkbox\').each(function() {
237 this.checked = false;
246$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,";
247$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,";
248$sql .=
" aa.rowid as fk_compte, aa.label as label_account, aa.labelshort as labelshort_account, aa.account_number,";
249$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,";
251 $sql .=
" ppe.accountancy_code_buy, ppe.accountancy_code_buy_intra, ppe.accountancy_code_buy_export,";
253 $sql .=
" p.accountancy_code_buy, p.accountancy_code_buy_intra, p.accountancy_code_buy_export,";
255$sql .=
" co.code as country_code, co.label as country,";
256$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";
258 $sql .=
", spe.accountancy_code_customer as code_compta_client";
259 $sql .=
", spe.accountancy_code_supplier as code_compta_fournisseur";
261 $sql .=
", s.code_compta as code_compta_client";
262 $sql .=
", s.code_compta_fournisseur";
264$parameters = array();
265$reshook = $hookmanager->executeHooks(
'printFieldListSelect', $parameters);
266$sql .= $hookmanager->resPrint;
267$sql .=
" FROM ".MAIN_DB_PREFIX.
"facture_fourn_det as l";
268$sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"product as p ON p.rowid = l.fk_product";
270 $sql .=
" LEFT JOIN " . MAIN_DB_PREFIX .
"product_perentity as ppe ON ppe.fk_product = p.rowid AND ppe.entity = " . ((int) $conf->entity);
272$sql .=
" INNER JOIN ".MAIN_DB_PREFIX.
"accounting_account as aa ON aa.rowid = l.fk_code_ventilation";
273$sql .=
" INNER JOIN ".MAIN_DB_PREFIX.
"facture_fourn as f ON f.rowid = l.fk_facture_fourn";
274$sql .=
" INNER JOIN ".MAIN_DB_PREFIX.
"societe as s ON s.rowid = f.fk_soc";
276 $sql .=
" LEFT JOIN " . MAIN_DB_PREFIX .
"societe_perentity as spe ON spe.fk_soc = s.rowid AND spe.entity = " . ((int) $conf->entity);
278$sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"c_country as co ON co.rowid = s.fk_pays ";
279$parameters = array();
280$reshook = $hookmanager->executeHooks(
'printFieldListFrom', $parameters, $object, $action);
281$sql .= $hookmanager->resPrint;
282$sql .=
" WHERE f.rowid = l.fk_facture_fourn and f.fk_statut >= 1 AND l.fk_code_ventilation <> 0 ";
284if ($search_societe) {
290if (strlen(trim($search_invoice))) {
291 $sql .=
natural_search(array(
"f.ref",
"f.ref_supplier"), $search_invoice);
296if (strlen(trim($search_label))) {
299if (strlen(trim($search_ref))) {
302if (strlen(trim($search_desc))) {
305if (strlen(trim($search_amount))) {
308if (strlen(trim($search_account))) {
311if (strlen(trim($search_vat))) {
314if ($search_date_start) {
315 $sql .=
" AND f.datef >= '".$db->idate($search_date_start).
"'";
317if ($search_date_end) {
318 $sql .=
" AND f.datef <= '".$db->idate($search_date_end).
"'";
320if (strlen(trim($search_country))) {
322 $country_code_in_EEC = $country_code_in_EEC_without_me =
'';
323 foreach ($arrayofcode as $key => $value) {
324 $country_code_in_EEC .= ($country_code_in_EEC ?
"," :
"").
"'".$value.
"'";
325 if ($value !=
$mysoc->country_code) {
326 $country_code_in_EEC_without_me .= ($country_code_in_EEC_without_me ?
"," :
"").
"'".$value.
"'";
329 if ($search_country ==
'special_allnotme') {
330 $sql .=
" AND co.code <> '".$db->escape(
$mysoc->country_code).
"'";
331 } elseif ($search_country ==
'special_eec') {
332 $sql .=
" AND co.code IN (".$db->sanitize($country_code_in_EEC, 1).
")";
333 } elseif ($search_country ==
'special_eecnotme') {
334 $sql .=
" AND co.code IN (".$db->sanitize($country_code_in_EEC_without_me, 1).
")";
335 } elseif ($search_country ==
'special_noteec') {
336 $sql .=
" AND co.code NOT IN (".$db->sanitize($country_code_in_EEC, 1).
")";
341if (strlen(trim($search_tvaintra))) {
344$sql .=
" AND f.entity IN (".getEntity(
'facture_fourn', 0).
")";
347$parameters = array();
348$reshook = $hookmanager->executeHooks(
'printFieldListWhere', $parameters);
349$sql .= $hookmanager->resPrint;
351$sql .= $db->order($sortfield, $sortorder);
354$nbtotalofrecords =
'';
356 $result = $db->query($sql);
357 $nbtotalofrecords = $db->num_rows($result);
358 if (($page * $limit) > (
int) $nbtotalofrecords) {
364$sql .= $db->plimit($limit + 1, $offset);
366dol_syslog(
"accountancy/supplier/lines.php", LOG_DEBUG);
367$result = $db->query($sql);
369 $num_lines = $db->num_rows($result);
373 if ($contextpage != $_SERVER[
"PHP_SELF"]) {
374 $param .=
'&contextpage='.urlencode($contextpage);
376 if ($limit > 0 && $limit != $conf->liste_limit) {
377 $param .=
'&limit='.((int) $limit);
379 if ($search_societe) {
380 $param .=
"&search_societe=".urlencode($search_societe);
382 if ($search_invoice) {
383 $param .=
"&search_invoice=".urlencode($search_invoice);
386 $param .=
"&search_ref=".urlencode($search_ref);
392 $param .=
"&search_label=".urlencode($search_label);
395 $param .=
"&search_desc=".urlencode($search_desc);
397 if ($search_account) {
398 $param .=
"&search_account=".urlencode($search_account);
401 $param .=
"&search_vat=".urlencode($search_vat);
403 if ($search_date_startday) {
404 $param .=
'&search_date_startday='.urlencode((
string) ($search_date_startday));
406 if ($search_date_startmonth) {
407 $param .=
'&search_date_startmonth='.urlencode((
string) ($search_date_startmonth));
409 if ($search_date_startyear) {
410 $param .=
'&search_date_startyear='.urlencode((
string) ($search_date_startyear));
412 if ($search_date_endday) {
413 $param .=
'&search_date_endday='.urlencode((
string) ($search_date_endday));
415 if ($search_date_endmonth) {
416 $param .=
'&search_date_endmonth='.urlencode((
string) ($search_date_endmonth));
418 if ($search_date_endyear) {
419 $param .=
'&search_date_endyear='.urlencode((
string) ($search_date_endyear));
421 if ($search_country) {
422 $param .=
"&search_country=".urlencode($search_country);
424 if ($search_tvaintra) {
425 $param .=
"&search_tvaintra=".urlencode($search_tvaintra);
428 $parameters = array(
'param' => &$param);
429 $reshook = $hookmanager->executeHooks(
'printFieldListSearchParam', $parameters, $object, $action);
430 $param .= $hookmanager->resPrint;
432 print
'<form action="'.$_SERVER[
"PHP_SELF"].
'" method="post">'.
"\n";
433 print
'<input type="hidden" name="action" value="ventil">';
434 if ($optioncss !=
'') {
435 print
'<input type="hidden" name="optioncss" value="'.$optioncss.
'">';
437 print
'<input type="hidden" name="token" value="'.newToken().
'">';
438 print
'<input type="hidden" name="formfilteraction" id="formfilteraction" value="list">';
439 print
'<input type="hidden" name="sortfield" value="'.$sortfield.
'">';
440 print
'<input type="hidden" name="sortorder" value="'.$sortorder.
'">';
441 print
'<input type="hidden" name="page" value="'.$page.
'">';
444 print_barre_liste($langs->trans(
"InvoiceLinesDone").
'<br><span class="opacitymedium small">'.$langs->trans(
"DescVentilDoneSupplier").
'</span>', $page, $_SERVER[
"PHP_SELF"], $param, $sortfield, $sortorder,
'', $num_lines, $nbtotalofrecords,
'title_accountancy', 0,
'',
'', $limit, 0, 0, 1);
446 print
'<br>'.$langs->trans(
"ChangeAccount").
' <div class="inline-block paddingbottom marginbottomonly">';
447 print $formaccounting->select_account($account_parent,
'account_parent', 2, array(), 0, 0,
'maxwidth300 maxwidthonsmartphone valignmiddle');
448 print
'<input type="submit" class="button small smallpaddingimp valignmiddle" value="'.$langs->trans(
"ChangeBinding").
'"/></div>';
452 $varpage = $contextpage;
453 $htmlofselectarray = $form->multiSelectArrayWithCheckbox(
'selectedfields', $arrayfields, $varpage, $conf->main_checkbox_left_column);
454 $selectedfields = $htmlofselectarray;
455 $selectedfields .= $form->showCheckAddButtons(
'checkforselect', 1);
457 print
'<div class="div-table-responsive">';
458 print
'<table class="tagtable liste'.($moreforfilter ?
" listwithfilterbefore" :
"").
'">'.
"\n";
461 print
'<tr class="liste_titre_filter">';
463 if ($conf->main_checkbox_left_column) {
464 print
'<td class="liste_titre maxwidthsearch center actioncolumn">';
465 $searchpicto = $form->showFilterButtons(
'left');
470 if (!empty($arrayfields[
'l.rowid'][
'checked'])) {
471 print
'<td class="liste_titre" data-key="lineid">';
472 print
'<input type="text" class="flat maxwidth40" name="search_lineid" value="'.dol_escape_htmltag($search_lineid).
'">';
476 if (!empty($arrayfields[
'f.ref'][
'checked'])) {
477 print
'<td class="liste_titre" data-key="invoice">';
478 print
'<input type="text" class="flat maxwidth50" name="search_invoice" value="'.dol_escape_htmltag($search_invoice).
'">';
482 if (!empty($arrayfields[
'f.libelle'][
'checked'])) {
483 print
'<td class="liste_titre" data-key="invoice">';
484 print
'<input type="text" class="flat maxwidth50" name="search_label" value="'.dol_escape_htmltag($search_label).
'">';
488 if (!empty($arrayfields[
'f.datef'][
'checked'])) {
489 print
'<td class="liste_titre center">';
490 print
'<div class="nowrapfordate">';
491 print $form->selectDate($search_date_start ? $search_date_start : -1,
'search_date_start', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
'From'));
493 print
'<div class="nowrapfordate">';
494 print $form->selectDate($search_date_end ? $search_date_end : -1,
'search_date_end', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
'to'));
499 if (!empty($arrayfields[
'p.ref'][
'checked'])) {
500 print
'<td class="liste_titre" data-key="ref">';
501 print
'<input type="text" class="flat maxwidth50" name="search_ref" value="'.dol_escape_htmltag($search_ref).
'">';
505 if (!empty($arrayfields[
'l.description'][
'checked'])) {
506 print
'<td class="liste_titre" data-key="desc">';
507 print
'<input type="text" class="flat maxwidth50" name="search_desc" value="'.dol_escape_htmltag($search_desc).
'">';
511 if (!empty($arrayfields[
'l.total_ht'][
'checked'])) {
512 print
'<td class="liste_titre" data-key="amount">';
513 print
'<input type="text" class="right flat maxwidth50" name="search_amount" value="'.dol_escape_htmltag($search_amount).
'">';
517 if (!empty($arrayfields[
'l.tva_tx'][
'checked'])) {
518 print
'<td class="liste_titre" data-key="vat">';
519 print
'<input type="text" class="right flat maxwidth50" placeholder="%" name="search_vat" size="1" value="'.dol_escape_htmltag($search_vat).
'">';
523 if (!empty($arrayfields[
's.nom'][
'checked'])) {
524 print
'<td class="liste_titre" data-key="societe">';
525 print
'<input type="text" class="flat maxwidth75imp" name="search_societe" value="'.dol_escape_htmltag($search_societe).
'">';
529 if (!empty($arrayfields[
'co.label'][
'checked'])) {
530 print
'<td class="liste_titre" data-key="country">';
531 print $form->select_country($search_country,
'search_country',
'', 0,
'maxwidth125',
'code2', 1, 0, 1);
536 if (!empty($arrayfields[
's.tva_intra'][
'checked'])) {
537 print
'<td class="liste_titre">';
538 print
'<input type="text" class="flat maxwidth50" name="search_tvaintra" value="'.dol_escape_htmltag($search_tvaintra).
'">';
542 if (!empty($arrayfields[
'aa.account_number'][
'checked'])) {
543 print
'<td class="liste_titre">';
544 print
'<input type="text" class="flat maxwidth50" name="search_account" value="'.dol_escape_htmltag($search_account).
'">';
548 $parameters = array(
'arrayfields' => $arrayfields);
549 $reshook = $hookmanager->executeHooks(
'printFieldListOption', $parameters, $object, $action);
550 print $hookmanager->resPrint;
553 if (!$conf->main_checkbox_left_column) {
554 print
'<td class="liste_titre center maxwidthsearch actioncolumn">';
555 $searchpicto = $form->showFilterButtons();
566 print
'<tr class="liste_titre">';
568 if ($conf->main_checkbox_left_column) {
569 print
getTitleFieldOfList($selectedfields, 0, $_SERVER[
"PHP_SELF"],
'',
'',
'',
'', $sortfield, $sortorder,
'center maxwidthsearch ').
"\n";
573 if (!empty($arrayfields[
'l.rowid'][
'checked'])) {
574 print_liste_field_titre($arrayfields[
'l.rowid'][
'label'], $_SERVER[
"PHP_SELF"],
"l.rowid",
"", $param,
'', $sortfield, $sortorder);
578 if (!empty($arrayfields[
'f.ref'][
'checked'])) {
579 print_liste_field_titre($arrayfields[
'f.ref'][
'label'], $_SERVER[
"PHP_SELF"],
"f.ref",
"", $param,
'', $sortfield, $sortorder);
583 if (!empty($arrayfields[
'f.libelle'][
'checked'])) {
584 print_liste_field_titre($arrayfields[
'f.libelle'][
'label'], $_SERVER[
"PHP_SELF"],
"f.libelle",
"", $param,
'', $sortfield, $sortorder);
588 if (!empty($arrayfields[
'f.datef'][
'checked'])) {
589 print_liste_field_titre($arrayfields[
'f.datef'][
'label'], $_SERVER[
"PHP_SELF"],
"f.datef, f.ref, l.rowid",
"", $param,
'', $sortfield, $sortorder,
'center ');
593 if (!empty($arrayfields[
'p.ref'][
'checked'])) {
594 print_liste_field_titre($arrayfields[
'p.ref'][
'label'], $_SERVER[
"PHP_SELF"],
"p.ref",
"", $param,
'', $sortfield, $sortorder);
598 if (!empty($arrayfields[
'l.description'][
'checked'])) {
599 print_liste_field_titre($arrayfields[
'l.description'][
'label'], $_SERVER[
"PHP_SELF"],
"l.description",
"", $param,
'', $sortfield, $sortorder);
603 if (!empty($arrayfields[
'l.total_ht'][
'checked'])) {
604 print_liste_field_titre($arrayfields[
'l.total_ht'][
'label'], $_SERVER[
"PHP_SELF"],
"l.total_ht",
"", $param,
'', $sortfield, $sortorder,
'right ');
608 if (!empty($arrayfields[
'l.tva_tx'][
'checked'])) {
609 print_liste_field_titre($arrayfields[
'l.tva_tx'][
'label'], $_SERVER[
"PHP_SELF"],
"l.tva_tx",
"", $param,
'', $sortfield, $sortorder,
'right ');
613 if (!empty($arrayfields[
's.nom'][
'checked'])) {
614 print_liste_field_titre($arrayfields[
's.nom'][
'label'], $_SERVER[
"PHP_SELF"],
"s.nom",
"", $param,
'', $sortfield, $sortorder);
618 if (!empty($arrayfields[
'co.label'][
'checked'])) {
619 print_liste_field_titre($arrayfields[
'co.label'][
'label'], $_SERVER[
"PHP_SELF"],
"co.label",
"", $param,
'', $sortfield, $sortorder);
623 if (!empty($arrayfields[
's.tva_intra'][
'checked'])) {
624 print_liste_field_titre($arrayfields[
's.tva_intra'][
'label'], $_SERVER[
"PHP_SELF"],
"s.tva_intra",
"", $param,
'', $sortfield, $sortorder);
628 if (!empty($arrayfields[
'aa.account_number'][
'checked'])) {
629 print_liste_field_titre($arrayfields[
'aa.account_number'][
'label'], $_SERVER[
"PHP_SELF"],
"aa.account_number",
"", $param,
'', $sortfield, $sortorder);
633 $parameters = array(
'arrayfields' => $arrayfields,
'param' => $param,
'sortfield' => $sortfield,
'sortorder' => $sortorder);
634 $reshook = $hookmanager->executeHooks(
'printFieldListTitle', $parameters, $object, $action);
635 print $hookmanager->resPrint;
637 if (!$conf->main_checkbox_left_column) {
638 print
getTitleFieldOfList($selectedfields, 0, $_SERVER[
"PHP_SELF"],
'',
'',
'',
'', $sortfield, $sortorder,
'center maxwidthsearch ').
"\n";
643 $thirdpartystatic =
new Societe($db);
651 while ($i < min($num_lines, $limit)) {
652 $objp = $db->fetch_object($result);
654 $facturefournisseur_static->ref = $objp->ref;
655 $facturefournisseur_static->id = $objp->facid;
656 $facturefournisseur_static->type = $objp->ftype;
657 $facturefournisseur_static->ref_supplier = $objp->ref_supplier;
658 $facturefournisseur_static->label = $objp->invoice_label;
660 $thirdpartystatic->id = $objp->socid;
661 $thirdpartystatic->name = $objp->name;
662 $thirdpartystatic->client = $objp->client;
663 $thirdpartystatic->fournisseur = $objp->fournisseur;
664 $thirdpartystatic->code_client = $objp->code_client;
665 $thirdpartystatic->code_compta_client = $objp->code_compta_client;
666 $thirdpartystatic->code_fournisseur = $objp->code_fournisseur;
667 $thirdpartystatic->code_compta_fournisseur = $objp->code_compta_fournisseur;
668 $thirdpartystatic->email = $objp->email;
669 $thirdpartystatic->country_code = $objp->country_code;
671 $productstatic->ref = $objp->product_ref;
672 $productstatic->id = $objp->product_id;
673 $productstatic->label = $objp->product_label;
674 $productstatic->type = $objp->line_type;
675 $productstatic->status = $objp->tosell;
676 $productstatic->status_buy = $objp->tobuy;
677 $productstatic->accountancy_code_buy = $objp->accountancy_code_buy;
678 $productstatic->accountancy_code_buy_intra = $objp->accountancy_code_buy_intra;
679 $productstatic->accountancy_code_buy_export = $objp->accountancy_code_buy_export;
681 $accountingaccountstatic->rowid = $objp->fk_compte;
682 $accountingaccountstatic->label = $objp->label_account;
683 $accountingaccountstatic->labelshort = $objp->labelshort_account;
684 $accountingaccountstatic->account_number = $objp->account_number;
686 print
'<tr class="oddeven">';
689 if ($conf->main_checkbox_left_column) {
690 print
'<td class="nowrap center actioncolumn">';
691 $selected = in_array($objp->rowid, $changeaccount);
692 print
'<input id="cb'.$objp->rowid.
'" class="flat checkforselect checkforaction" type="checkbox" name="changeaccount[]" value="'.$objp->rowid.
'"'.($selected ?
' checked="checked"' :
'').
'>';
700 if (!empty($arrayfields[
'l.rowid'][
'checked'])) {
701 print
'<td>'.$objp->rowid.
'</td>';
705 if (!empty($arrayfields[
'f.ref'][
'checked'])) {
706 print
'<td class="nowraponall tdoverflowmax125">';
707 print $facturefournisseur_static->getNomUrl(1);
708 if ($objp->ref_supplier) {
709 print
'<br><span class="opacitymedium small">'.dol_escape_htmltag($objp->ref_supplier).
'</span>';
721 if (!empty($arrayfields[
'f.libelle'][
'checked'])) {
722 print
'<td class="tdoverflowmax125 small" title="'.dol_escape_htmltag($objp->invoice_label).
'">';
728 if (!empty($arrayfields[
'f.datef'][
'checked'])) {
729 print
'<td class="center">'.dol_print_date($db->jdate($objp->datef),
'day').
'</td>';
733 if (!empty($arrayfields[
'p.ref'][
'checked'])) {
734 print
'<td class="tdoverflowmax100">';
735 if ($productstatic->id > 0) {
736 print $productstatic->getNomUrl(1);
738 if ($productstatic->id > 0 && $objp->product_label) {
741 if ($objp->product_label) {
742 print
'<span class="opacitymedium">'.$objp->product_label.
'</span>';
748 if (!empty($arrayfields[
'l.description'][
'checked'])) {
750 print
'<td class="tdoverflowmax200 small" title="'.dol_escape_htmltag($text).
'">';
752 print $form->textwithtooltip(
dol_trunc($text, $trunclength), $objp->description);
757 if (!empty($arrayfields[
'l.total_ht'][
'checked'])) {
758 print
'<td class="right nowraponall amount">'.price($objp->total_ht).
'</td>';
762 if (!empty($arrayfields[
'l.tva_tx'][
'checked'])) {
763 print
'<td class="right">'.vatrate($objp->tva_tx.($objp->vat_src_code ?
' ('.$objp->vat_src_code.
')' :
'')).
'</td>';
767 if (!empty($arrayfields[
's.nom'][
'checked'])) {
768 print
'<td class="tdoverflowmax100">'.$thirdpartystatic->getNomUrl(1,
'supplier').
'</td>';
772 if (!empty($arrayfields[
'co.label'][
'checked'])) {
773 print
'<td class="tdoverflowmax100">';
774 if ($objp->country_code) {
775 print $langs->trans(
"Country".$objp->country_code).
' ('.$objp->country_code.
')';
781 if (!empty($arrayfields[
's.tva_intra'][
'checked'])) {
782 print
'<td class="tdoverflowmax80" title="'.dol_escape_htmltag($objp->tva_intra).
'">'.
dol_escape_htmltag($objp->tva_intra).
'</td>';
786 if (!empty($arrayfields[
'aa.account_number'][
'checked'])) {
787 print
'<td class="tdoverflowmax200" title="'.dol_escape_htmltag($accountingaccountstatic->label).
'">';
788 print
'<a class="editfielda" href="./card.php?id='.$objp->rowid.
'&backtopage='.urlencode($_SERVER[
"PHP_SELF"].($param ?
'?'.$param :
'')).
'">';
791 print $accountingaccountstatic->getNomUrl(0, 1, 1,
'', 1);
796 $parameters = array(
'arrayfields' => $arrayfields,
'obj' => $objp,
'i' => $i,
'totalarray' => &
$totalarray);
797 $reshook = $hookmanager->executeHooks(
'printFieldListValue', $parameters, $object, $action);
798 print $hookmanager->resPrint;
800 if (!$conf->main_checkbox_left_column) {
801 print
'<td class="nowrap center actioncolumn">';
802 $selected = in_array($objp->rowid, $changeaccount);
803 print
'<input id="cb'.$objp->rowid.
'" class="flat checkforselect checkforaction" type="checkbox" name="changeaccount[]" value="'.$objp->rowid.
'"'.($selected ?
' checked="checked"' :
'').
'>';
813 if ($num_lines == 0) {
815 foreach ($arrayfields as $key => $val) {
816 if (!empty($val[
'checked'])) {
820 print
'<tr><td colspan="'.$colspan.
'"><span class="opacitymedium">'.$langs->trans(
"NoRecordFound").
'</span></td></tr>';
823 $parameters = array(
'arrayfields' => $arrayfields,
'sql' => $sql);
824 $reshook = $hookmanager->executeHooks(
'printFieldListFooter', $parameters, $object, $action);
825 print $hookmanager->resPrint;
831 if ($nbtotalofrecords > $limit) {
832 print_barre_liste(
'', $page, $_SERVER[
"PHP_SELF"], $param, $sortfield, $sortorder,
'', $num_lines, $nbtotalofrecords,
'', 0,
'',
'', $limit, 1);
837 print $db->lasterror();
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.