27 require
'../main.inc.php';
28 require_once DOL_DOCUMENT_ROOT.
'/salaries/class/paymentsalary.class.php';
29 require_once DOL_DOCUMENT_ROOT.
'/compta/bank/class/account.class.php';
31 require_once DOL_DOCUMENT_ROOT.
'/accountancy/class/accountingjournal.class.php';
35 $langs->loadLangs(array(
"compta",
"salaries",
"bills",
"hrm"));
37 $action =
GETPOST(
'action',
'aZ09') ?
GETPOST(
'action',
'aZ09') :
'view';
38 $massaction =
GETPOST(
'massaction',
'alpha');
39 $show_files =
GETPOST(
'show_files',
'int');
40 $confirm =
GETPOST(
'confirm',
'alpha');
41 $cancel =
GETPOST(
'cancel',
'alpha');
42 $toselect =
GETPOST(
'toselect',
'array');
43 $contextpage =
GETPOST(
'contextpage',
'aZ') ?
GETPOST(
'contextpage',
'aZ') : str_replace(
'_',
'', basename(dirname(__FILE__)).basename(__FILE__,
'.php'));
44 $backtopage =
GETPOST(
'backtopage',
'alpha');
45 $optioncss =
GETPOST(
'optioncss',
'aZ');
48 $limit =
GETPOST(
'limit',
'int') ?
GETPOST(
'limit',
'int') : $conf->liste_limit;
49 $sortfield =
GETPOST(
'sortfield',
'aZ09comma');
50 $sortorder =
GETPOST(
'sortorder',
'aZ09comma');
52 if (empty($page) || $page == -1 ||
GETPOST(
'button_search',
'alpha') ||
GETPOST(
'button_removefilter',
'alpha') || (empty($toselect) && $massaction ===
'0')) {
55 $offset = $limit * $page;
56 $pageprev = $page - 1;
57 $pagenext = $page + 1;
59 $sortfield =
"s.datep,s.rowid";
62 $sortorder =
"DESC,DESC";
68 $diroutputmassaction = $conf->user->dir_output.
'/temp/massgeneration/'.$user->id;
69 $hookmanager->initHooks(array(
'salarieslist'));
72 $extrafields->fetch_name_optionals_label($object->table_element);
74 $search_array_options = $extrafields->getOptionalsFromPost($object->table_element,
'',
'search_');
77 $sortfield =
"s.datep,s.rowid";
80 $sortorder =
"DESC,DESC";
83 $search_ref =
GETPOST(
'search_ref',
'int');
84 $search_user =
GETPOST(
'search_user',
'alpha');
85 $search_label =
GETPOST(
'search_label',
'alpha');
86 $search_date_start_from =
dol_mktime(0, 0, 0,
GETPOST(
'search_date_start_frommonth',
'int'),
GETPOST(
'search_date_start_fromday',
'int'),
GETPOST(
'search_date_start_fromyear',
'int'));
87 $search_date_start_to =
dol_mktime(23, 59, 59,
GETPOST(
'search_date_start_tomonth',
'int'),
GETPOST(
'search_date_start_today',
'int'),
GETPOST(
'search_date_start_toyear',
'int'));
88 $search_date_end_from =
dol_mktime(0, 0, 0,
GETPOST(
'search_date_end_frommonth',
'int'),
GETPOST(
'search_date_end_fromday',
'int'),
GETPOST(
'search_date_end_fromyear',
'int'));
89 $search_date_end_to =
dol_mktime(23, 59, 59,
GETPOST(
'search_date_end_tomonth',
'int'),
GETPOST(
'search_date_end_today',
'int'),
GETPOST(
'search_date_end_toyear',
'int'));
90 $search_amount =
GETPOST(
'search_amount',
'alpha');
91 $search_account =
GETPOST(
'search_account',
'int');
92 $search_status =
GETPOST(
'search_status',
'int');
93 $search_type_id =
GETPOST(
'search_type_id',
'int');
95 $filtre =
GETPOST(
"filtre",
'restricthtml');
97 $childids = $user->getAllChildIds(1);
100 $search_all =
GETPOST(
"search_all",
'alpha');
102 foreach ($object->fields as $key => $val) {
103 if (
GETPOST(
'search_'.$key,
'alpha') !==
'') {
104 $search[$key] =
GETPOST(
'search_'.$key,
'alpha');
106 if (preg_match(
'/^(date|timestamp|datetime)/', $val[
'type'])) {
107 $search[$key.
'_dtstart'] =
dol_mktime(0, 0, 0,
GETPOST(
'search_'.$key.
'_dtstartmonth',
'int'),
GETPOST(
'search_'.$key.
'_dtstartday',
'int'),
GETPOST(
'search_'.$key.
'_dtstartyear',
'int'));
108 $search[$key.
'_dtend'] =
dol_mktime(23, 59, 59,
GETPOST(
'search_'.$key.
'_dtendmonth',
'int'),
GETPOST(
'search_'.$key.
'_dtendday',
'int'),
GETPOST(
'search_'.$key.
'_dtendyear',
'int'));
113 $fieldstosearchall = array();
114 foreach ($object->fields as $key => $val) {
115 if (!empty($val[
'searchall'])) {
116 $fieldstosearchall[
't.'.$key] = $val[
'label'];
121 $arrayfields = array();
122 foreach ($object->fields as $key => $val) {
124 if (!empty($val[
'visible'])) {
125 $visible = (int)
dol_eval($val[
'visible'], 1, 1,
'1');
126 $arrayfields[
't.'.$key] = array(
127 'label'=>$val[
'label'],
128 'checked'=>(($visible < 0) ? 0 : 1),
129 'enabled'=>($visible != 3 &&
dol_eval($val[
'enabled'], 1, 1,
'1')),
130 'position'=>$val[
'position'],
131 'help'=> isset($val[
'help']) ? $val[
'help'] :
''
136 include DOL_DOCUMENT_ROOT.
'/core/tpl/extrafields_list_array_fields.tpl.php';
141 $permissiontoread = $user->rights->salaries->read;
142 $permissiontoadd = $user->rights->salaries->write;
143 $permissiontodelete = $user->rights->salaries->delete;
146 $socid =
GETPOST(
"socid",
"int");
148 $socid = $user->socid;
157 if (
GETPOST(
'cancel',
'alpha')) {
161 if (!
GETPOST(
'confirmmassaction',
'alpha') && $massaction !=
'presend' && $massaction !=
'confirm_presend') {
165 $parameters = array();
166 $reshook = $hookmanager->executeHooks(
'doActions', $parameters, $object, $action);
171 if (empty($reshook)) {
173 include DOL_DOCUMENT_ROOT.
'/core/actions_changeselectedfields.inc.php';
176 if (
GETPOST(
'button_removefilter_x',
'alpha') ||
GETPOST(
'button_removefilter.x',
'alpha') ||
GETPOST(
'button_removefilter',
'alpha')) {
180 $search_date_start_from =
'';
181 $search_date_start_to =
'';
182 $search_date_end_from =
'';
183 $search_date_end_to =
'';
184 $search_date_end =
'';
186 $search_account =
'';
188 $search_type_id =
"";
190 if (
GETPOST(
'button_removefilter_x',
'alpha') ||
GETPOST(
'button_removefilter.x',
'alpha') ||
GETPOST(
'button_removefilter',
'alpha')
191 ||
GETPOST(
'button_search_x',
'alpha') ||
GETPOST(
'button_search.x',
'alpha') ||
GETPOST(
'button_search',
'alpha')) {
196 $objectclass =
'PaymentSalary';
197 $objectlabel =
'SalariesPayments';
198 $uploaddir = $conf->salaries->dir_output;
199 include DOL_DOCUMENT_ROOT.
'/core/actions_massactions.inc.php';
202 if (!$error && $massaction ==
'buildsepa' && $permissiontoadd) {
203 $objecttmp =
new $objectclass($db);
214 $salstatic =
new Salary($db);
215 $userstatic =
new User($db);
216 $accountstatic =
new Account($db);
222 $title = $langs->trans(
'Salaries');
224 $sql =
"SELECT u.rowid as uid, u.lastname, u.firstname, u.login, u.email, u.admin, u.salary as current_salary, u.fk_soc as fk_soc, u.statut as status,";
225 $sql .=
" s.rowid, s.fk_account, s.paye, s.fk_user, s.amount, s.salary, s.label, s.datesp, s.dateep, s.fk_typepayment as paymenttype, ";
226 $sql .=
" ba.rowid as bid, ba.ref as bref, ba.number as bnumber, ba.account_number, ba.fk_accountancy_journal, ba.label as blabel, ba.iban_prefix as iban, ba.bic, ba.currency_code, ba.clos,";
227 $sql .=
" pst.code as payment_code,";
228 $sql .=
" SUM(ps.amount) as alreadypayed";
229 $sql .=
" FROM ".MAIN_DB_PREFIX.
"salary as s";
230 $sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"payment_salary as ps ON (ps.fk_salary = s.rowid) ";
231 $sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"c_paiement as pst ON (s.fk_typepayment = pst.id) ";
232 $sql .=
" LEFT JOIN ".MAIN_DB_PREFIX.
"bank_account ba ON (ba.rowid = s.fk_account), ";
234 $sql .=
" ".MAIN_DB_PREFIX.
"user as u";
235 $sql .=
" WHERE u.rowid = s.fk_user";
236 $sql .=
" AND s.entity IN (".getEntity(
'payment_salaries').
")";
237 if (empty($user->rights->salaries->readall)) {
238 $sql .=
" AND s.fk_user IN (".$db->sanitize(join(
',', $childids)).
")";
243 $sql .=
" AND s.rowid=".((int) $search_ref);
246 $sql .=
natural_search(array(
'u.login',
'u.lastname',
'u.firstname',
'u.email'), $search_user);
251 if (!empty($search_date_start_from)) {
252 $sql .=
" AND s.datesp >= '".$db->idate($search_date_start_from).
"'";
254 if (!empty($search_date_end_from)) {
255 $sql .=
" AND s.dateep >= '".$db->idate($search_date_end_from).
"'";
257 if (!empty($search_date_start_to)) {
258 $sql .=
" AND s.datesp <= '".$db->idate($search_date_start_to).
"'";
260 if (!empty($search_date_end_to)) {
261 $sql .=
" AND s.dateep <= '".$db->idate($search_date_end_to).
"'";
264 if ($search_amount) {
267 if ($search_account > 0) {
268 $sql .=
" AND s.fk_account=".((int) $search_account);
270 if ($search_status !=
'' && $search_status >= 0) {
271 $sql .=
" AND s.paye = ".((int) $search_status);
273 if ($search_type_id) {
274 $sql .=
" AND s.fk_typepayment=".((int) $search_type_id);
276 $sql .=
" GROUP BY u.rowid, u.lastname, u.firstname, u.login, u.email, u.admin, u.salary, u.fk_soc, u.statut,";
277 $sql .=
" s.rowid, s.fk_account, s.paye, s.fk_user, s.amount, s.salary, s.label, s.datesp, s.dateep, s.fk_typepayment, s.fk_bank,";
278 $sql .=
" ba.rowid, ba.ref, ba.number, ba.account_number, ba.fk_accountancy_journal, ba.label, ba.iban_prefix, ba.bic, ba.currency_code, ba.clos,";
280 $sql .= $db->order($sortfield, $sortorder);
283 $nbtotalofrecords =
'';
284 if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) {
285 $resql = $db->query($sql);
286 $nbtotalofrecords = $db->num_rows(
$resql);
287 if (($page * $limit) > $nbtotalofrecords) {
293 if (is_numeric($nbtotalofrecords) && ($limit > $nbtotalofrecords || empty($limit))) {
294 $num = $nbtotalofrecords;
297 $sql .= $db->plimit($limit + 1, $offset);
300 $resql = $db->query($sql);
306 $num = $db->num_rows(
$resql);
314 $arrayofselected = is_array($toselect) ? $toselect : array();
317 if (!empty($contextpage) && $contextpage != $_SERVER[
"PHP_SELF"]) {
318 $param .=
'&contextpage='.urlencode($contextpage);
320 if ($limit > 0 && $limit != $conf->liste_limit) {
321 $param .=
'&limit='.urlencode($limit);
323 if ($search_type_id) {
324 $param .=
'&search_type_id='.urlencode($search_type_id);
326 if ($optioncss !=
'') {
327 $param .=
'&optioncss='.urlencode($optioncss);
330 $param .=
'&search_ref='.urlencode($search_ref);
332 if ($search_user > 0) {
333 $param .=
'&search_user='.urlencode($search_user);
336 $param .=
'&search_label='.urlencode($search_label);
338 if ($search_account) {
339 $param .=
'&search_account='.urlencode($search_account);
341 if ($search_status !=
'' && $search_status !=
'-1') {
342 $param .=
'&search_status='.urlencode($search_status);
344 if (!empty($search_date_start_from)) {
345 $param .=
'&search_date_start_fromday='.urlencode(
GETPOST(
'search_date_start_fromday')).
'&search_date_start_frommonth='.urlencode(
GETPOST(
'search_date_start_frommonth')).
'&search_date_start_fromyear='.urlencode(
GETPOST(
'search_date_start_fromyear'));
347 if (!empty($search_date_start_to)) {
348 $param .=
"&search_date_start_today=".urlencode(
GETPOST(
'search_date_start_today')).
"&search_date_start_tomonth=".urlencode(
GETPOST(
'search_date_start_tomonth')).
"&search_date_start_toyear=".urlencode(
GETPOST(
'search_date_start_toyear'));
350 if (!empty($search_date_end_from)) {
351 $param .=
'&search_date_end_fromday='.urlencode(
GETPOST(
'search_date_end_fromday')).
'&search_date_end_frommonth='.urlencode(
GETPOST(
'search_date_end_frommonth')).
'&search_date_end_fromyear='.urlencode(
GETPOST(
'search_date_end_fromyear'));
353 if (!empty($search_date_end_to)) {
354 $param .=
"&search_date_end_today=".urlencode(
GETPOST(
'search_date_end_today')).
"&search_date_end_tomonth=".urlencode(
GETPOST(
'search_date_end_tomonth')).
"&search_date_end_toyear=".urlencode(
GETPOST(
'search_date_end_toyear'));
358 include DOL_DOCUMENT_ROOT.
'/core/tpl/extrafields_list_search_param.tpl.php';
361 $arrayofmassactions = array(
366 if (
GETPOST(
'nomassaction',
'int') || in_array($massaction, array(
'presend',
'predelete'))) {
367 $arrayofmassactions = array();
369 $massactionbutton =
$form->selectMassAction(
'', $arrayofmassactions);
371 print
'<form method="POST" id="searchFormList" action="'.$_SERVER[
"PHP_SELF"].
'">';
372 if ($optioncss !=
'') {
373 print
'<input type="hidden" name="optioncss" value="'.$optioncss.
'">';
375 print
'<input type="hidden" name="token" value="'.newToken().
'">';
376 print
'<input type="hidden" name="formfilteraction" id="formfilteraction" value="list">';
377 print
'<input type="hidden" name="action" value="list">';
378 print
'<input type="hidden" name="sortfield" value="'.$sortfield.
'">';
379 print
'<input type="hidden" name="sortorder" value="'.$sortorder.
'">';
380 print
'<input type="hidden" name="contextpage" value="'.$contextpage.
'">';
382 $url = DOL_URL_ROOT.
'/salaries/card.php?action=create';
383 if (!empty($socid)) {
384 $url .=
'&socid='.$socid;
386 $newcardbutton =
dolGetButtonTitle($langs->trans(
'NewSalaryPayment'),
'',
'fa fa-plus-circle', $url,
'', $user->rights->salaries->write);
388 print_barre_liste($title, $page, $_SERVER[
"PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords,
'salary', 0, $newcardbutton,
'', $limit, 0, 0, 1);
390 $varpage = empty($contextpage) ? $_SERVER[
"PHP_SELF"] : $contextpage;
392 $selectedfields =
'';
393 $selectedfields .= (count($arrayofmassactions) ?
$form->showCheckAddButtons(
'checkforselect', 1) :
'');
397 print
'<div class="div-table-responsive">';
398 print
'<table class="tagtable nobottomiftotal liste'.($moreforfilter ?
" listwithfilterbefore" :
"").
'">'.
"\n";
402 print
'<tr class="liste_titre_filter">';
404 print
'<td class="liste_titre left">';
405 print
'<input class="flat" type="text" size="3" name="search_ref" value="'.$db->escape($search_ref).
'">';
408 print
'<td class="liste_titre"><input type="text" class="flat width150" name="search_label" value="'.$db->escape($search_label).
'"></td>';
411 print
'<td class="liste_titre center">';
412 print
'<div class="nowrap">';
413 print
$form->selectDate($search_date_start_from ? $search_date_start_from : -1,
'search_date_start_from', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
'From'));
415 print
'<div class="nowrap">';
416 print
$form->selectDate($search_date_start_to ? $search_date_start_to : -1,
'search_date_start_to', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
'to'));
421 print
'<td class="liste_titre center">';
422 print
'<div class="nowrap">';
423 print
$form->selectDate($search_date_end_from ? $search_date_end_from : -1,
'search_date_end_from', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
'From'));
425 print
'<div class="nowrap">';
426 print
$form->selectDate($search_date_end_to ? $search_date_end_to : -1,
'search_date_end_to', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
'to'));
431 print
'<td class="liste_titre">';
432 print
'<input class="flat" type="text" size="6" name="search_user" value="'.$db->escape($search_user).
'">';
436 print
'<td class="liste_titre left">';
437 $form->select_types_paiements($search_type_id,
'search_type_id',
'', 0, 1, 1, 16);
442 print
'<td class="liste_titre">';
443 $form->select_comptes($search_account,
'search_account', 0,
'', 1);
448 print
'<td class="liste_titre right"><input name="search_amount" class="flat" type="text" size="8" value="'.$db->escape($search_amount).
'"></td>';
450 print
'<td class="liste_titre maxwidthonsmartphone right">';
451 $liststatus = array(
'0' => $langs->trans(
"Unpaid"),
'1' => $langs->trans(
"Paid"));
452 print
$form->selectarray(
'search_status', $liststatus, $search_status, 1);
456 include DOL_DOCUMENT_ROOT.
'/core/tpl/extrafields_list_search_input.tpl.php';
459 $parameters = array(
'arrayfields'=>$arrayfields);
460 $reshook = $hookmanager->executeHooks(
'printFieldListOption', $parameters, $object);
461 print $hookmanager->resPrint;
463 print
'<td class="liste_titre maxwidthsearch">';
464 $searchpicto =
$form->showFilterButtons();
472 print
'<tr class="liste_titre">';
474 print_liste_field_titre(
"Label", $_SERVER[
"PHP_SELF"],
"s.label",
"", $param,
'class="left"', $sortfield, $sortorder);
475 print_liste_field_titre(
"DateStart", $_SERVER[
"PHP_SELF"],
"s.datesp,s.rowid",
"", $param,
'align="center"', $sortfield, $sortorder);
476 print_liste_field_titre(
"DateEnd", $_SERVER[
"PHP_SELF"],
"s.dateep,s.rowid",
"", $param,
'align="center"', $sortfield, $sortorder);
477 print_liste_field_titre(
"Employee", $_SERVER[
"PHP_SELF"],
"u.lastname",
"", $param,
"", $sortfield, $sortorder);
478 print_liste_field_titre(
"DefaultPaymentMode", $_SERVER[
"PHP_SELF"],
"type",
"", $param,
'class="left"', $sortfield, $sortorder);
480 print_liste_field_titre(
"DefaultBankAccount", $_SERVER[
"PHP_SELF"],
"ba.label",
"", $param,
"", $sortfield, $sortorder);
482 print_liste_field_titre(
"Amount", $_SERVER[
"PHP_SELF"],
"s.amount",
"", $param,
'class="right"', $sortfield, $sortorder);
483 print_liste_field_titre(
'Status', $_SERVER[
"PHP_SELF"],
"s.paye",
'', $param,
'class="right"', $sortfield, $sortorder);
485 include DOL_DOCUMENT_ROOT.
'/core/tpl/extrafields_list_search_title.tpl.php';
487 $parameters = array(
'arrayfields'=>$arrayfields,
'param'=>$param,
'sortfield'=>$sortfield,
'sortorder'=>$sortorder);
488 $reshook = $hookmanager->executeHooks(
'printFieldListTitle', $parameters, $object);
489 print $hookmanager->resPrint;
491 print
getTitleFieldOfList($selectedfields, 0, $_SERVER[
"PHP_SELF"],
'',
'',
'',
'', $sortfield, $sortorder,
'center maxwidthsearch ').
"\n";
496 $needToFetchEachLine = 0;
497 if (isset($extrafields->attributes[$object->table_element][
'computed']) && is_array($extrafields->attributes[$object->table_element][
'computed']) && count($extrafields->attributes[$object->table_element][
'computed']) > 0) {
498 foreach ($extrafields->attributes[$object->table_element][
'computed'] as $key => $val) {
499 if (preg_match(
'/\$object/', $val)) {
500 $needToFetchEachLine++;
509 $totalarray = array();
510 $totalarray[
'nbfield'] = 0;
511 $totalarray[
'val'] = array();
512 $totalarray[
'val'][
'totalttcfield'] = 0;
513 while ($i < ($limit ? min($num, $limit) : $num)) {
514 $obj = $db->fetch_object(
$resql);
520 $object->setVarsFromFetchObj($obj);
522 $userstatic->id = $obj->uid;
523 $userstatic->lastname = $obj->lastname;
524 $userstatic->firstname = $obj->firstname;
525 $userstatic->admin = $obj->admin;
526 $userstatic->login = $obj->login;
527 $userstatic->email = $obj->email;
528 $userstatic->socid = $obj->fk_soc;
529 $userstatic->statut = $obj->status;
531 $salstatic->id = $obj->rowid;
532 $salstatic->ref = $obj->rowid;
533 $salstatic->label = $obj->label;
534 $salstatic->paye = $obj->paye;
535 $salstatic->datesp = $db->jdate($obj->datesp);
536 $salstatic->dateep = $db->jdate($obj->dateep);
539 print
'<tr class="oddeven">';
542 print
"<td>".$salstatic->getNomUrl(1).
"</td>\n";
544 $totalarray[
'nbfield']++;
548 print
"<td>".dol_trunc($obj->label, 40).
"</td>\n";
550 $totalarray[
'nbfield']++;
554 print
'<td class="center">'.dol_print_date($db->jdate($obj->datesp),
'day').
"</td>\n";
556 $totalarray[
'nbfield']++;
560 print
'<td class="center">'.dol_print_date($db->jdate($obj->dateep),
'day').
"</td>\n";
562 $totalarray[
'nbfield']++;
566 print
"<td>".$userstatic->getNomUrl(1).
"</td>\n";
568 $totalarray[
'nbfield']++;
573 if (!empty($obj->payment_code)) print $langs->trans(
"PaymentTypeShort".$obj->payment_code);
576 $totalarray[
'nbfield']++;
582 if ($obj->fk_account > 0) {
584 $accountstatic->id = $obj->bid;
585 $accountstatic->ref = $obj->bref;
586 $accountstatic->label = $obj->blabel;
587 $accountstatic->number = $obj->bnumber;
588 $accountstatic->iban = $obj->iban;
589 $accountstatic->bic = $obj->bic;
590 $accountstatic->currency_code = $langs->trans(
"Currency".$obj->currency_code);
591 $accountstatic->account_number = $obj->account_number;
592 $accountstatic->clos = $obj->clos;
595 $accountstatic->account_number = $obj->account_number;
598 $accountingjournal->fetch($obj->fk_accountancy_journal);
600 $accountstatic->accountancy_journal = $accountingjournal->getNomUrl(0, 1, 1,
'', 1);
603 print $accountstatic->getNomUrl(1);
609 $totalarray[
'nbfield']++;
616 print
'<td class="nowrap right"><span class="amount">'.price($obj->amount).
'</span></td>';
618 $totalarray[
'nbfield']++;
621 $totalarray[
'pos'][$totalarray[
'nbfield']] =
'totalttcfield';
623 $totalarray[
'val'][
'totalttcfield'] += $obj->amount;
625 print
'<td class="nowrap right">'.$salstatic->LibStatut($obj->paye, 5, $obj->alreadypayed).
'</td>';
626 if (!$i) $totalarray[
'nbfield']++;
629 include DOL_DOCUMENT_ROOT.
'/core/tpl/extrafields_list_print_fields.tpl.php';
631 $parameters = array(
'arrayfields'=>$arrayfields,
'object'=>$object,
'obj'=>$obj,
'i'=>$i,
'totalarray'=>&$totalarray);
632 $reshook = $hookmanager->executeHooks(
'printFieldListValue', $parameters, $object);
633 print $hookmanager->resPrint;
635 print
'<td class="nowrap center">';
636 if ($massactionbutton || $massaction) {
638 if (in_array($object->id, $arrayofselected)) {
641 print
'<input id="cb'.$object->id.
'" class="flat checkforselect" type="checkbox" name="toselect[]" value="'.$object->id.
'"'.($selected ?
' checked="checked"' :
'').
'>';
645 $totalarray[
'nbfield']++;
654 include DOL_DOCUMENT_ROOT.
'/core/tpl/list_print_total.tpl.php';
667 print
'<tr><td colspan="'.$colspan.
'" class="opacitymedium">'.$langs->trans(
"NoRecordFound").
'</td></tr>';
673 $parameters = array(
'arrayfields'=>$arrayfields,
'sql'=>$sql);
674 $reshook = $hookmanager->executeHooks(
'printFieldListFooter', $parameters, $object);
675 print $hookmanager->resPrint;
677 print
'</table>'.
"\n";
680 print
'</form>'.
"\n";