29 require
'../../main.inc.php';
31 require_once DOL_DOCUMENT_ROOT.
'/core/lib/accounting.lib.php';
32 require_once DOL_DOCUMENT_ROOT.
'/accountancy/class/lettering.class.php';
33 require_once DOL_DOCUMENT_ROOT.
'/accountancy/class/bookkeeping.class.php';
34 require_once DOL_DOCUMENT_ROOT.
'/accountancy/class/accountingjournal.class.php';
35 require_once DOL_DOCUMENT_ROOT.
'/core/class/html.formaccounting.class.php';
36 require_once DOL_DOCUMENT_ROOT.
'/core/class/html.formfile.class.php';
37 require_once DOL_DOCUMENT_ROOT.
'/core/class/html.formother.class.php';
38 require_once DOL_DOCUMENT_ROOT.
'/core/lib/date.lib.php';
41 $langs->loadLangs(array(
"accountancy",
"compta"));
43 $action =
GETPOST(
'action',
'aZ09');
44 $socid =
GETPOST(
'socid',
'int');
45 $massaction =
GETPOST(
'massaction',
'alpha');
46 $confirm =
GETPOST(
'confirm',
'alpha');
47 $toselect =
GETPOST(
'toselect',
'array');
48 $type =
GETPOST(
'type',
'alpha');
50 $context_default =
'bookkeepingbysubaccountlist';
52 $context_default =
'bookkeepingbyaccountlist';
54 $contextpage =
GETPOST(
'contextpage',
'aZ') ?
GETPOST(
'contextpage',
'aZ') : $context_default;
55 $search_date_startyear =
GETPOST(
'search_date_startyear',
'int');
56 $search_date_startmonth =
GETPOST(
'search_date_startmonth',
'int');
57 $search_date_startday =
GETPOST(
'search_date_startday',
'int');
58 $search_date_endyear =
GETPOST(
'search_date_endyear',
'int');
59 $search_date_endmonth =
GETPOST(
'search_date_endmonth',
'int');
60 $search_date_endday =
GETPOST(
'search_date_endday',
'int');
61 $search_date_start =
dol_mktime(0, 0, 0, $search_date_startmonth, $search_date_startday, $search_date_startyear);
62 $search_date_end =
dol_mktime(23, 59, 59, $search_date_endmonth, $search_date_endday, $search_date_endyear);
64 $search_date_export_startyear =
GETPOST(
'search_date_export_startyear',
'int');
65 $search_date_export_startmonth =
GETPOST(
'search_date_export_startmonth',
'int');
66 $search_date_export_startday =
GETPOST(
'search_date_export_startday',
'int');
67 $search_date_export_endyear =
GETPOST(
'search_date_export_endyear',
'int');
68 $search_date_export_endmonth =
GETPOST(
'search_date_export_endmonth',
'int');
69 $search_date_export_endday =
GETPOST(
'search_date_export_endday',
'int');
70 $search_date_export_start =
dol_mktime(0, 0, 0, $search_date_export_startmonth, $search_date_export_startday, $search_date_export_startyear);
71 $search_date_export_end =
dol_mktime(23, 59, 59, $search_date_export_endmonth, $search_date_export_endday, $search_date_export_endyear);
72 $search_date_validation_startyear =
GETPOST(
'search_date_validation_startyear',
'int');
73 $search_date_validation_startmonth =
GETPOST(
'search_date_validation_startmonth',
'int');
74 $search_date_validation_startday =
GETPOST(
'search_date_validation_startday',
'int');
75 $search_date_validation_endyear =
GETPOST(
'search_date_validation_endyear',
'int');
76 $search_date_validation_endmonth =
GETPOST(
'search_date_validation_endmonth',
'int');
77 $search_date_validation_endday =
GETPOST(
'search_date_validation_endday',
'int');
78 $search_date_validation_start =
dol_mktime(0, 0, 0, $search_date_validation_startmonth, $search_date_validation_startday, $search_date_validation_startyear);
79 $search_date_validation_end =
dol_mktime(23, 59, 59, $search_date_validation_endmonth, $search_date_validation_endday, $search_date_validation_endyear);
80 $search_import_key =
GETPOST(
"search_import_key",
'alpha');
82 $search_account_category =
GETPOST(
'search_account_category',
'int');
84 $search_accountancy_code_start =
GETPOST(
'search_accountancy_code_start',
'alpha');
85 if ($search_accountancy_code_start == - 1) {
86 $search_accountancy_code_start =
'';
88 $search_accountancy_code_end =
GETPOST(
'search_accountancy_code_end',
'alpha');
89 if ($search_accountancy_code_end == - 1) {
90 $search_accountancy_code_end =
'';
92 $search_doc_ref =
GETPOST(
'search_doc_ref',
'alpha');
93 $search_label_operation =
GETPOST(
'search_label_operation',
'alpha');
94 $search_mvt_num =
GETPOST(
'search_mvt_num',
'int');
95 $search_direction =
GETPOST(
'search_direction',
'alpha');
96 $search_ledger_code =
GETPOST(
'search_ledger_code',
'array');
97 $search_debit =
GETPOST(
'search_debit',
'alpha');
98 $search_credit =
GETPOST(
'search_credit',
'alpha');
99 $search_lettering_code =
GETPOST(
'search_lettering_code',
'alpha');
100 $search_not_reconciled =
GETPOST(
'search_not_reconciled',
'alpha');
103 $action =
'delbookkeepingyear';
107 $limit =
GETPOST(
'limit',
'int') ?
GETPOST(
'limit',
'int') : (empty($conf->global->ACCOUNTING_LIMIT_LIST_VENTILATION) ? $conf->liste_limit : $conf->global->ACCOUNTING_LIMIT_LIST_VENTILATION);
108 $sortfield =
GETPOST(
'sortfield',
'aZ09comma');
109 $sortorder =
GETPOST(
'sortorder',
'aZ09comma');
110 $optioncss =
GETPOST(
'optioncss',
'alpha');
112 if (empty($page) || $page < 0) {
115 $offset = $limit * $page;
116 $pageprev = $page - 1;
117 $pagenext = $page + 1;
118 if ($sortorder ==
"") {
121 if ($sortfield ==
"") {
122 $sortfield =
"t.doc_date,t.rowid";
128 $hookmanager->initHooks(array($context_default));
133 if (empty($search_date_start) && empty($search_date_end) && !
GETPOSTISSET(
'search_date_startday') && !
GETPOSTISSET(
'search_date_startmonth') && !
GETPOSTISSET(
'search_date_starthour')) {
134 $sql =
"SELECT date_start, date_end from ".MAIN_DB_PREFIX.
"accounting_fiscalyear ";
135 $sql .=
" where date_start < '".$db->idate(
dol_now()).
"' and date_end > '".$db->idate(
dol_now()).
"'";
136 $sql .= $db->plimit(1);
137 $res = $db->query(
$sql);
139 if ($res->num_rows > 0) {
140 $fiscalYear = $db->fetch_object($res);
141 $search_date_start = strtotime($fiscalYear->date_start);
142 $search_date_end = strtotime($fiscalYear->date_end);
144 $month_start = ($conf->global->SOCIETE_FISCAL_MONTH_START ? ($conf->global->SOCIETE_FISCAL_MONTH_START) : 1);
149 $year_end = $year_start + 1;
150 $month_end = $month_start - 1;
151 if ($month_end < 1) {
155 $search_date_start =
dol_mktime(0, 0, 0, $month_start, 1, $year_start);
160 $arrayfields = array(
162 't.piece_num'=>array(
'label'=>$langs->trans(
"TransactionNumShort"),
'checked'=>1),
163 't.code_journal'=>array(
'label'=>$langs->trans(
"Codejournal"),
'checked'=>1),
164 't.doc_date'=>array(
'label'=>$langs->trans(
"Docdate"),
'checked'=>1),
165 't.doc_ref'=>array(
'label'=>$langs->trans(
"Piece"),
'checked'=>1),
166 't.label_operation'=>array(
'label'=>$langs->trans(
"Label"),
'checked'=>1),
167 't.debit'=>array(
'label'=>$langs->trans(
"AccountingDebit"),
'checked'=>1),
168 't.credit'=>array(
'label'=>$langs->trans(
"AccountingCredit"),
'checked'=>1),
169 't.lettering_code'=>array(
'label'=>$langs->trans(
"LetteringCode"),
'checked'=>1),
170 't.date_export'=>array(
'label'=>$langs->trans(
"DateExport"),
'checked'=>1),
171 't.date_validated'=>array(
'label'=>$langs->trans(
"DateValidation"),
'checked'=>1,
'enabled'=>!
getDolGlobalString(
"ACCOUNTANCY_DISABLE_CLOSURE_LINE_BY_LINE")),
172 't.import_key'=>array(
'label'=>$langs->trans(
"ImportId"),
'checked'=>0,
'position'=>1100),
175 if (empty($conf->global->ACCOUNTING_ENABLE_LETTERING)) {
176 unset($arrayfields[
't.lettering_code']);
179 if ($search_date_start && empty($search_date_startyear)) {
181 $search_date_startyear = $tmparray[
'year'];
182 $search_date_startmonth = $tmparray[
'mon'];
183 $search_date_startday = $tmparray[
'mday'];
185 if ($search_date_end && empty($search_date_endyear)) {
187 $search_date_endyear = $tmparray[
'year'];
188 $search_date_endmonth = $tmparray[
'mon'];
189 $search_date_endday = $tmparray[
'mday'];
195 if ($user->socid > 0) {
198 if (!$user->hasRight(
'accounting',
'mouvements',
'lire')) {
211 if (
GETPOST(
'cancel',
'alpha')) {
215 if (!
GETPOST(
'confirmmassaction',
'alpha') && $massaction !=
'preunletteringauto' && $massaction !=
'preunletteringmanual' && $massaction !=
'predeletebookkeepingwriting') {
219 $parameters = array(
'socid'=>$socid);
220 $reshook = $hookmanager->executeHooks(
'doActions', $parameters, $object, $action);
225 if (empty($reshook)) {
226 include DOL_DOCUMENT_ROOT.
'/core/actions_changeselectedfields.inc.php';
228 if (
GETPOST(
'button_removefilter_x',
'alpha') ||
GETPOST(
'button_removefilter.x',
'alpha') ||
GETPOST(
'button_removefilter',
'alpha')) {
229 $search_doc_date =
'';
230 $search_account_category =
'';
231 $search_accountancy_code_start =
'';
232 $search_accountancy_code_end =
'';
233 $search_label_account =
'';
234 $search_doc_ref =
'';
235 $search_label_operation =
'';
236 $search_mvt_num =
'';
237 $search_direction =
'';
238 $search_ledger_code = array();
239 $search_date_start =
'';
240 $search_date_end =
'';
241 $search_date_startyear =
'';
242 $search_date_startmonth =
'';
243 $search_date_startday =
'';
244 $search_date_endyear =
'';
245 $search_date_endmonth =
'';
246 $search_date_endday =
'';
247 $search_date_export_start =
'';
248 $search_date_export_end =
'';
249 $search_date_export_startyear =
'';
250 $search_date_export_startmonth =
'';
251 $search_date_export_startday =
'';
252 $search_date_export_endyear =
'';
253 $search_date_export_endmonth =
'';
254 $search_date_export_endday =
'';
255 $search_date_validation_start =
'';
256 $search_date_validation_end =
'';
257 $search_date_validation_startyear =
'';
258 $search_date_validation_startmonth =
'';
259 $search_date_validation_startday =
'';
260 $search_date_validation_endyear =
'';
261 $search_date_validation_endmonth =
'';
262 $search_date_validation_endday =
'';
265 $search_lettering_code =
'';
266 $search_not_reconciled =
'';
267 $search_import_key =
'';
274 if (!empty($search_date_start)) {
275 $filter[
't.doc_date>='] = $search_date_start;
276 $param .=
'&search_date_startmonth='.$search_date_startmonth.
'&search_date_startday='.$search_date_startday.
'&search_date_startyear='.$search_date_startyear;
278 if (!empty($search_date_end)) {
279 $filter[
't.doc_date<='] = $search_date_end;
280 $param .=
'&search_date_endmonth='.$search_date_endmonth.
'&search_date_endday='.$search_date_endday.
'&search_date_endyear='.$search_date_endyear;
282 if (!empty($search_doc_date)) {
283 $filter[
't.doc_date'] = $search_doc_date;
284 $param .=
'&doc_datemonth='.GETPOST(
'doc_datemonth',
'int').
'&doc_dateday='.
GETPOST(
'doc_dateday',
'int').
'&doc_dateyear='.
GETPOST(
'doc_dateyear',
'int');
286 if ($search_account_category !=
'-1' && !empty($search_account_category)) {
287 require_once DOL_DOCUMENT_ROOT.
'/accountancy/class/accountancycategory.class.php';
290 $listofaccountsforgroup = $accountingcategory->getCptsCat(0,
'fk_accounting_category = '.((
int) $search_account_category));
291 $listofaccountsforgroup2 = array();
292 if (is_array($listofaccountsforgroup)) {
293 foreach ($listofaccountsforgroup as $tmpval) {
294 $listofaccountsforgroup2[] =
"'".$db->escape($tmpval[
'id']).
"'";
297 $filter[
't.search_accounting_code_in'] = join(
',', $listofaccountsforgroup2);
298 $param .=
'&search_account_category='.urlencode($search_account_category);
300 if (!empty($search_accountancy_code_start)) {
301 if ($type ==
'sub') {
302 $filter[
't.subledger_account>='] = $search_accountancy_code_start;
304 $filter[
't.numero_compte>='] = $search_accountancy_code_start;
306 $param .=
'&search_accountancy_code_start=' . urlencode($search_accountancy_code_start);
308 if (!empty($search_accountancy_code_end)) {
309 if ($type ==
'sub') {
310 $filter[
't.subledger_account<='] = $search_accountancy_code_end;
312 $filter[
't.numero_compte<='] = $search_accountancy_code_end;
314 $param .=
'&search_accountancy_code_end=' . urlencode($search_accountancy_code_end);
316 if (!empty($search_label_account)) {
317 $filter[
't.label_compte'] = $search_label_account;
318 $param .=
'&search_label_compte='.urlencode($search_label_account);
320 if (!empty($search_mvt_num)) {
321 $filter[
't.piece_num'] = $search_mvt_num;
322 $param .=
'&search_mvt_num='.urlencode($search_mvt_num);
324 if (!empty($search_doc_ref)) {
325 $filter[
't.doc_ref'] = $search_doc_ref;
326 $param .=
'&search_doc_ref='.urlencode($search_doc_ref);
328 if (!empty($search_label_operation)) {
329 $filter[
't.label_operation'] = $search_label_operation;
330 $param .=
'&search_label_operation='.urlencode($search_label_operation);
332 if (!empty($search_direction)) {
333 $filter[
't.sens'] = $search_direction;
334 $param .=
'&search_direction='.urlencode($search_direction);
336 if (!empty($search_ledger_code)) {
337 $filter[
't.code_journal'] = $search_ledger_code;
338 foreach ($search_ledger_code as $code) {
339 $param .=
'&search_ledger_code[]='.urlencode($code);
342 if (!empty($search_debit)) {
343 $filter[
't.debit'] = $search_debit;
344 $param .=
'&search_debit='.urlencode($search_debit);
346 if (!empty($search_credit)) {
347 $filter[
't.credit'] = $search_credit;
348 $param .=
'&search_credit='.urlencode($search_credit);
350 if (!empty($search_lettering_code)) {
351 $filter[
't.lettering_code'] = $search_lettering_code;
352 $param .=
'&search_lettering_code='.urlencode($search_lettering_code);
354 if (!empty($search_not_reconciled)) {
355 $filter[
't.reconciled_option'] = $search_not_reconciled;
356 $param .=
'&search_not_reconciled='.urlencode($search_not_reconciled);
358 if (!empty($search_date_export_start)) {
359 $filter[
't.date_export>='] = $search_date_export_start;
360 $param .=
'&search_date_export_startmonth='.$search_date_export_startmonth.
'&search_date_export_startday='.$search_date_export_startday.
'&search_date_export_startyear='.$search_date_export_startyear;
362 if (!empty($search_date_export_end)) {
363 $filter[
't.date_export<='] = $search_date_export_end;
364 $param .=
'&search_date_export_endmonth='.$search_date_export_endmonth.
'&search_date_export_endday='.$search_date_export_endday.
'&search_date_export_endyear='.$search_date_export_endyear;
366 if (!empty($search_date_validation_start)) {
367 $filter[
't.date_validated>='] = $search_date_validation_start;
368 $param .=
'&search_date_validation_startmonth='.$search_date_validation_startmonth.
'&search_date_validation_startday='.$search_date_validation_startday.
'&search_date_validation_startyear='.$search_date_validation_startyear;
370 if (!empty($search_date_validation_end)) {
371 $filter[
't.date_validated<='] = $search_date_validation_end;
372 $param .=
'&search_date_validation_endmonth='.$search_date_validation_endmonth.
'&search_date_validation_endday='.$search_date_validation_endday.
'&search_date_validation_endyear='.$search_date_validation_endyear;
374 if (!empty($search_import_key)) {
375 $filter[
't.import_key'] = $search_import_key;
376 $param .=
'&search_import_key='.urlencode($search_import_key);
379 $url_param = substr($param, 1);
381 $param =
'&type='.$type.$param;
412 $objectclass =
'Bookkeeping';
413 $objectlabel =
'Bookkeeping';
414 $permissiontoread = $user->hasRight(
'societe',
'lire');
415 $permissiontodelete = $user->hasRight(
'societe',
'supprimer');
416 $permissiontoadd = $user->hasRight(
'societe',
'creer');
417 $uploaddir = $conf->societe->dir_output;
418 include DOL_DOCUMENT_ROOT.
'/core/actions_massactions.inc.php';
420 if (!$error && $action ==
'deletebookkeepingwriting' && $confirm ==
"yes" && $user->hasRight(
'accounting',
'mouvements',
'supprimer')) {
425 $nb_lettering = $lettering->bookkeepingLetteringAll($toselect,
true);
426 if ($nb_lettering < 0) {
434 foreach ($toselect as $toselectid) {
435 $result = $object->fetch($toselectid);
436 if ($result > 0 && (!isset($object->date_validation) || $object->date_validation ===
'')) {
437 $result = $object->deleteMvtNum($object->piece_num);
445 } elseif ($result < 0) {
459 } elseif ($nbok > 0) {
465 header(
"Location: ".$_SERVER[
"PHP_SELF"].
"?noreset=1".($param ?
'&'.$param :
''));
473 if (!$error &&
getDolGlobalInt(
'ACCOUNTING_ENABLE_LETTERING') && $user->hasRight(
'accounting',
'mouvements',
'creer')) {
474 if ($massaction ==
'letteringauto') {
476 $nb_lettering = $lettering->bookkeepingLetteringAll($toselect);
477 if ($nb_lettering < 0) {
480 $nb_lettering = max(0, abs($nb_lettering) - 2);
481 } elseif ($nb_lettering == 0) {
483 setEventMessages($langs->trans(
'AccountancyNoLetteringModified'), array(),
'mesgs');
485 if ($nb_lettering == 1) {
486 setEventMessages($langs->trans(
'AccountancyOneLetteringModifiedSuccessfully'), array(),
'mesgs');
487 } elseif ($nb_lettering > 1) {
488 setEventMessages($langs->trans(
'AccountancyLetteringModifiedSuccessfully', $nb_lettering), array(),
'mesgs');
492 header(
'Location: ' . $_SERVER[
'PHP_SELF'] .
'?noreset=1' . $param);
495 } elseif ($massaction ==
'letteringmanual') {
497 $result = $lettering->updateLettering($toselect);
501 setEventMessages($langs->trans(
'AccountancyOneLetteringModifiedSuccessfully'), array(),
'mesgs');
502 header(
'Location: ' . $_SERVER[
'PHP_SELF'] .
'?noreset=1' . $param);
505 } elseif ($action ==
'unletteringauto' && $confirm ==
"yes") {
507 $nb_lettering = $lettering->bookkeepingLetteringAll($toselect,
true);
508 if ($nb_lettering < 0) {
511 $nb_lettering = max(0, abs($nb_lettering) - 2);
512 } elseif ($nb_lettering == 0) {
514 setEventMessages($langs->trans(
'AccountancyNoUnletteringModified'), array(),
'mesgs');
516 if ($nb_lettering == 1) {
517 setEventMessages($langs->trans(
'AccountancyOneUnletteringModifiedSuccessfully'), array(),
'mesgs');
518 } elseif ($nb_lettering > 1) {
519 setEventMessages($langs->trans(
'AccountancyUnletteringModifiedSuccessfully', $nb_lettering), array(),
'mesgs');
523 header(
'Location: ' . $_SERVER[
'PHP_SELF'] .
'?noreset=1' . $param);
526 } elseif ($action ==
'unletteringmanual' && $confirm ==
"yes") {
528 $nb_lettering = $lettering->deleteLettering($toselect);
532 setEventMessages($langs->trans(
'AccountancyOneUnletteringModifiedSuccessfully'), array(),
'mesgs');
533 header(
'Location: ' . $_SERVER[
'PHP_SELF'] .
'?noreset=1' . $param);
550 $title_page = $langs->trans(
"Operations").
' - '.$langs->trans(
"VueByAccountAccounting").
' (';
551 if ($type ==
'sub') {
552 $title_page .= $langs->trans(
"BookkeepingSubAccount");
554 $title_page .= $langs->trans(
"Bookkeeping");
561 $nbtotalofrecords =
'';
564 if ($type ==
'sub') {
565 $nbtotalofrecords = $object->fetchAllByAccount($sortorder, $sortfield, 0, 0, $filter,
'AND', 1, 1);
567 $nbtotalofrecords = $object->fetchAllByAccount($sortorder, $sortfield, 0, 0, $filter,
'AND', 0, 1);
570 if ($nbtotalofrecords < 0) {
577 if ($type ==
'sub') {
578 $result = $object->fetchAllByAccount($sortorder, $sortfield, $limit, $offset, $filter,
'AND', 1);
580 $result = $object->fetchAllByAccount($sortorder, $sortfield, $limit, $offset, $filter,
'AND', 0);
588 $arrayofselected = is_array($toselect) ? $toselect : array();
590 $num = count($object->lines);
638 $arrayofmassactions = array();
639 if (
getDolGlobalInt(
'ACCOUNTING_ENABLE_LETTERING') && $user->hasRight(
'accounting',
'mouvements',
'creer')) {
640 $arrayofmassactions[
'letteringauto'] =
img_picto(
'',
'check',
'class="pictofixedwidth"') . $langs->trans(
'LetteringAuto');
641 $arrayofmassactions[
'preunletteringauto'] =
img_picto(
'',
'uncheck',
'class="pictofixedwidth"') . $langs->trans(
'UnletteringAuto');
642 $arrayofmassactions[
'letteringmanual'] =
img_picto(
'',
'check',
'class="pictofixedwidth"') . $langs->trans(
'LetteringManual');
643 $arrayofmassactions[
'preunletteringmanual'] =
img_picto(
'',
'uncheck',
'class="pictofixedwidth"') . $langs->trans(
'UnletteringManual');
645 if ($user->hasRight(
'accounting',
'mouvements',
'supprimer')) {
646 $arrayofmassactions[
'predeletebookkeepingwriting'] =
img_picto(
'',
'delete',
'class="pictofixedwidth"').$langs->trans(
"Delete");
648 if (
GETPOST(
'nomassaction',
'int') || in_array($massaction, array(
'preunletteringauto',
'preunletteringmanual',
'predeletebookkeepingwriting'))) {
649 $arrayofmassactions = array();
651 $massactionbutton =
$form->selectMassAction($massaction, $arrayofmassactions);
653 print
'<form method="POST" id="searchFormList" action="'.$_SERVER[
"PHP_SELF"].
'">';
654 print
'<input type="hidden" name="token" value="'.newToken().
'">';
655 print
'<input type="hidden" name="action" value="list">';
656 if ($optioncss !=
'') {
657 print
'<input type="hidden" name="optioncss" value="'.$optioncss.
'">';
659 print
'<input type="hidden" name="formfilteraction" id="formfilteraction" value="list">';
660 print
'<input type="hidden" name="type" value="'.$type.
'">';
661 print
'<input type="hidden" name="sortfield" value="'.$sortfield.
'">';
662 print
'<input type="hidden" name="sortorder" value="'.$sortorder.
'">';
663 print
'<input type="hidden" name="contextpage" value="'.$contextpage.
'">';
665 $parameters = array(
'param' => $param);
666 $reshook = $hookmanager->executeHooks(
'addMoreActionsButtonsList', $parameters, $object, $action);
671 $newcardbutton = empty($hookmanager->resPrint) ?
'' : $hookmanager->resPrint;
673 if (empty($reshook)) {
674 $newcardbutton =
dolGetButtonTitle($langs->trans(
'ViewFlatList'),
'',
'fa fa-list paddingleft imgforviewmode', DOL_URL_ROOT.
'/accountancy/bookkeeping/list.php?'.$param);
675 if ($type ==
'sub') {
676 $newcardbutton .=
dolGetButtonTitle($langs->trans(
'GroupByAccountAccounting'),
'',
'fa fa-stream paddingleft imgforviewmode', DOL_URL_ROOT .
'/accountancy/bookkeeping/listbyaccount.php?' . $url_param,
'', 1, array(
'morecss' =>
'marginleftonly'));
677 $newcardbutton .=
dolGetButtonTitle($langs->trans(
'GroupBySubAccountAccounting'),
'',
'fa fa-align-left vmirror paddingleft imgforviewmode', DOL_URL_ROOT .
'/accountancy/bookkeeping/listbyaccount.php?type=sub&' . $url_param,
'', 1, array(
'morecss' =>
'marginleftonly btnTitleSelected'));
679 $newcardbutton .=
dolGetButtonTitle($langs->trans(
'GroupByAccountAccounting'),
'',
'fa fa-stream paddingleft imgforviewmode', DOL_URL_ROOT .
'/accountancy/bookkeeping/listbyaccount.php?' . $url_param,
'', 1, array(
'morecss' =>
'marginleftonly btnTitleSelected'));
680 $newcardbutton .=
dolGetButtonTitle($langs->trans(
'GroupBySubAccountAccounting'),
'',
'fa fa-align-left vmirror paddingleft imgforviewmode', DOL_URL_ROOT .
'/accountancy/bookkeeping/listbyaccount.php?type=sub&' . $url_param,
'', 1, array(
'morecss' =>
'marginleftonly'));
682 $newcardbutton .=
dolGetButtonTitle($langs->trans(
'NewAccountingMvt'),
'',
'fa fa-plus-circle paddingleft', DOL_URL_ROOT.
'/accountancy/bookkeeping/card.php?action=create');
685 if (!empty($contextpage) && $contextpage != $_SERVER[
"PHP_SELF"]) {
686 $param .=
'&contextpage='.urlencode($contextpage);
688 if ($limit > 0 && $limit != $conf->liste_limit) {
689 $param .=
'&limit='.((int) $limit);
692 print_barre_liste($title_page, $page, $_SERVER[
"PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $result, $nbtotalofrecords,
'title_accountancy', 0, $newcardbutton,
'', $limit, 0, 0, 1);
694 if ($massaction ==
'preunletteringauto') {
695 print
$form->formconfirm($_SERVER[
"PHP_SELF"], $langs->trans(
"ConfirmMassUnletteringAuto"), $langs->trans(
"ConfirmMassUnletteringQuestion", count($toselect)),
"unletteringauto",
null,
'', 0, 200, 500, 1);
696 } elseif ($massaction ==
'preunletteringmanual') {
697 print
$form->formconfirm($_SERVER[
"PHP_SELF"], $langs->trans(
"ConfirmMassUnletteringManual"), $langs->trans(
"ConfirmMassUnletteringQuestion", count($toselect)),
"unletteringmanual",
null,
'', 0, 200, 500, 1);
698 } elseif ($massaction ==
'predeletebookkeepingwriting') {
699 print
$form->formconfirm($_SERVER[
"PHP_SELF"], $langs->trans(
"ConfirmMassDeleteBookkeepingWriting"), $langs->trans(
"ConfirmMassDeleteBookkeepingWritingQuestion", count($toselect)),
"deletebookkeepingwriting",
null,
'', 0, 200, 500, 1);
712 include DOL_DOCUMENT_ROOT.
'/core/tpl/massactions_pre.tpl.php';
714 $varpage = empty($contextpage) ? $_SERVER[
"PHP_SELF"] : $contextpage;
715 $selectedfields =
$form->multiSelectArrayWithCheckbox(
'selectedfields', $arrayfields, $varpage,
getDolGlobalString(
'MAIN_CHECKBOX_LEFT_COLUMN'));
716 if ($massactionbutton && $contextpage !=
'poslist') {
717 $selectedfields .=
$form->showCheckAddButtons(
'checkforselect', 1);
721 if (preg_match(
'/^asc/i', $sortorder)) {
728 if ($type ==
'sub') {
729 print
info_admin($langs->trans(
"WarningRecordWithoutSubledgerAreExcluded"));
735 $moreforfilter .=
'<div class="divsearchfield">';
736 $moreforfilter .= $langs->trans(
'AccountAccounting').
': ';
737 $moreforfilter .=
'<div class="nowrap inline-block">';
738 if ($type ==
'sub') {
739 $moreforfilter .= $formaccounting->select_auxaccount($search_accountancy_code_start,
'search_accountancy_code_start', $langs->trans(
'From'),
'maxwidth200');
741 $moreforfilter .= $formaccounting->select_account($search_accountancy_code_start,
'search_accountancy_code_start', $langs->trans(
'From'), array(), 1, 1,
'maxwidth200');
743 $moreforfilter .=
' ';
744 if ($type ==
'sub') {
745 $moreforfilter .= $formaccounting->select_auxaccount($search_accountancy_code_end,
'search_accountancy_code_end', $langs->trans(
'to'),
'maxwidth200');
747 $moreforfilter .= $formaccounting->select_account($search_accountancy_code_end,
'search_accountancy_code_end', $langs->trans(
'to'), array(), 1, 1,
'maxwidth200');
749 $moreforfilter .=
'</div>';
750 $moreforfilter .=
'</div>';
752 $moreforfilter .=
'<div class="divsearchfield">';
753 $moreforfilter .= $langs->trans(
'AccountingCategory').
': ';
754 $moreforfilter .=
'<div class="nowrap inline-block">';
755 $moreforfilter .= $formaccounting->select_accounting_category($search_account_category,
'search_account_category', 1, 0, 0, 0);
756 $moreforfilter .=
'</div>';
757 $moreforfilter .=
'</div>';
759 $parameters = array();
760 $reshook = $hookmanager->executeHooks(
'printFieldPreListTitle', $parameters);
761 if (empty($reshook)) {
762 $moreforfilter .= $hookmanager->resPrint;
764 $moreforfilter = $hookmanager->resPrint;
767 print
'<div class="liste_titre liste_titre_bydiv centpercent">';
768 print $moreforfilter;
771 print
'<div class="div-table-responsive">';
772 print
'<table class="tagtable liste centpercent">';
775 print
'<tr class="liste_titre_filter">';
778 print
'<td class="liste_titre center">';
779 $searchpicto =
$form->showFilterButtons(
'left');
784 if (!empty($arrayfields[
't.piece_num'][
'checked'])) {
785 print
'<td class="liste_titre"><input type="text" name="search_mvt_num" class="width50" value="'.dol_escape_htmltag($search_mvt_num).
'"></td>';
788 if (!empty($arrayfields[
't.code_journal'][
'checked'])) {
789 print
'<td class="liste_titre center">';
790 print $formaccounting->multi_select_journal($search_ledger_code,
'search_ledger_code', 0, 1, 1, 1,
'maxwidth75');
794 if (!empty($arrayfields[
't.doc_date'][
'checked'])) {
795 print
'<td class="liste_titre center">';
796 print
'<div class="nowrap">';
797 print
$form->selectDate($search_date_start,
'search_date_start', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
"From"));
799 print
'<div class="nowrap">';
800 print
$form->selectDate($search_date_end,
'search_date_end', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
"to"));
805 if (!empty($arrayfields[
't.doc_ref'][
'checked'])) {
806 print
'<td class="liste_titre"><input type="text" size="7" class="flat" name="search_doc_ref" value="'.dol_escape_htmltag($search_doc_ref).
'"/></td>';
809 if (!empty($arrayfields[
't.label_operation'][
'checked'])) {
810 print
'<td class="liste_titre"><input type="text" size="7" class="flat" name="search_label_operation" value="'.dol_escape_htmltag($search_label_operation).
'"/></td>';
813 if (!empty($arrayfields[
't.debit'][
'checked'])) {
814 print
'<td class="liste_titre right"><input type="text" class="flat" name="search_debit" size="4" value="'.dol_escape_htmltag($search_debit).
'"></td>';
817 if (!empty($arrayfields[
't.credit'][
'checked'])) {
818 print
'<td class="liste_titre right"><input type="text" class="flat" name="search_credit" size="4" value="'.dol_escape_htmltag($search_credit).
'"></td>';
821 if (!empty($arrayfields[
't.lettering_code'][
'checked'])) {
822 print
'<td class="liste_titre center">';
823 print
'<input type="text" size="3" class="flat" name="search_lettering_code" value="'.$search_lettering_code.
'"/>';
824 print
'<br><span class="nowrap"><input type="checkbox" name="search_not_reconciled" value="notreconciled"'.($search_not_reconciled ==
'notreconciled' ?
' checked' :
'').
'>'.$langs->trans(
"NotReconciled").
'</span>';
828 if (!empty($arrayfields[
't.date_export'][
'checked'])) {
829 print
'<td class="liste_titre center">';
830 print
'<div class="nowrap">';
831 print
$form->selectDate($search_date_export_start,
'search_date_export_start', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
"From"));
833 print
'<div class="nowrap">';
834 print
$form->selectDate($search_date_export_end,
'search_date_export_end', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
"to"));
839 if (!empty($arrayfields[
't.date_validated'][
'checked'])) {
840 print
'<td class="liste_titre center">';
841 print
'<div class="nowrap">';
842 print
$form->selectDate($search_date_validation_start,
'search_date_validation_start', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
"From"));
844 print
'<div class="nowrap">';
845 print
$form->selectDate($search_date_validation_end,
'search_date_validation_end', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
"to"));
849 if (!empty($arrayfields[
't.import_key'][
'checked'])) {
850 print
'<td class="liste_titre center">';
851 print
'<input class="flat searchstring maxwidth50" type="text" name="search_import_key" value="'.dol_escape_htmltag($search_import_key).
'">';
856 $parameters = array(
'arrayfields'=>$arrayfields);
857 $reshook = $hookmanager->executeHooks(
'printFieldListOption', $parameters);
858 print $hookmanager->resPrint;
862 print
'<td class="liste_titre center">';
863 $searchpicto =
$form->showFilterButtons();
869 print
'<tr class="liste_titre">';
871 print_liste_field_titre($selectedfields, $_SERVER[
"PHP_SELF"],
"",
'',
'',
'', $sortfield, $sortorder,
'center maxwidthsearch ');
873 if (!empty($arrayfields[
't.piece_num'][
'checked'])) {
874 print_liste_field_titre($arrayfields[
't.piece_num'][
'label'], $_SERVER[
'PHP_SELF'],
"t.piece_num",
"", $param,
'', $sortfield, $sortorder,
'tdoverflowmax80imp ');
876 if (!empty($arrayfields[
't.code_journal'][
'checked'])) {
877 print_liste_field_titre($arrayfields[
't.code_journal'][
'label'], $_SERVER[
'PHP_SELF'],
"t.code_journal",
"", $param,
'', $sortfield, $sortorder,
'center ');
879 if (!empty($arrayfields[
't.doc_date'][
'checked'])) {
880 print_liste_field_titre($arrayfields[
't.doc_date'][
'label'], $_SERVER[
'PHP_SELF'],
"t.doc_date",
"", $param,
'', $sortfield, $sortorder,
'center ');
882 if (!empty($arrayfields[
't.doc_ref'][
'checked'])) {
883 print_liste_field_titre($arrayfields[
't.doc_ref'][
'label'], $_SERVER[
'PHP_SELF'],
"t.doc_ref",
"", $param,
"", $sortfield, $sortorder);
885 if (!empty($arrayfields[
't.label_operation'][
'checked'])) {
886 print_liste_field_titre($arrayfields[
't.label_operation'][
'label'], $_SERVER[
'PHP_SELF'],
"t.label_operation",
"", $param,
"", $sortfield, $sortorder);
888 if (!empty($arrayfields[
't.debit'][
'checked'])) {
889 print_liste_field_titre($arrayfields[
't.debit'][
'label'], $_SERVER[
'PHP_SELF'],
"t.debit",
"", $param,
'', $sortfield, $sortorder,
'right ');
891 if (!empty($arrayfields[
't.credit'][
'checked'])) {
892 print_liste_field_titre($arrayfields[
't.credit'][
'label'], $_SERVER[
'PHP_SELF'],
"t.credit",
"", $param,
'', $sortfield, $sortorder,
'right ');
894 if (!empty($arrayfields[
't.lettering_code'][
'checked'])) {
895 print_liste_field_titre($arrayfields[
't.lettering_code'][
'label'], $_SERVER[
'PHP_SELF'],
"t.lettering_code",
"", $param,
'', $sortfield, $sortorder,
'center ');
897 if (!empty($arrayfields[
't.date_export'][
'checked'])) {
898 print_liste_field_titre($arrayfields[
't.date_export'][
'label'], $_SERVER[
'PHP_SELF'],
"t.date_export",
"", $param,
'', $sortfield, $sortorder,
'center ');
900 if (!empty($arrayfields[
't.date_validated'][
'checked'])) {
901 print_liste_field_titre($arrayfields[
't.date_validated'][
'label'], $_SERVER[
'PHP_SELF'],
"t.date_validated",
"", $param,
'', $sortfield, $sortorder,
'center ');
903 if (!empty($arrayfields[
't.import_key'][
'checked'])) {
904 print_liste_field_titre($arrayfields[
't.import_key'][
'label'], $_SERVER[
"PHP_SELF"],
"t.import_key",
"", $param,
'', $sortfield, $sortorder,
'center ');
907 $parameters = array(
'arrayfields'=>$arrayfields,
'param'=>$param,
'sortfield'=>$sortfield,
'sortorder'=>$sortorder);
908 $reshook = $hookmanager->executeHooks(
'printFieldListTitle', $parameters);
909 print $hookmanager->resPrint;
911 print_liste_field_titre($selectedfields, $_SERVER[
"PHP_SELF"],
"",
'',
'',
'', $sortfield, $sortorder,
'center maxwidthsearch ');
915 $displayed_account_number =
null;
921 $totalarray = array();
922 $totalarray[
'val'] = array ();
923 $totalarray[
'nbfield'] = 0;
926 $sous_total_debit = 0;
927 $sous_total_credit = 0;
928 $totalarray[
'val'][
'totaldebit'] = 0;
929 $totalarray[
'val'][
'totalcredit'] = 0;
931 while ($i < min($num, $limit)) {
932 $line = $object->lines[$i];
934 $total_debit += $line->debit;
935 $total_credit += $line->credit;
937 if ($type ==
'sub') {
946 if (!empty($arrayfields[
't.piece_num'][
'checked'])) { $colspan++; }
947 if (!empty($arrayfields[
't.code_journal'][
'checked'])) { $colspan++; }
948 if (!empty($arrayfields[
't.doc_date'][
'checked'])) { $colspan++; }
949 if (!empty($arrayfields[
't.doc_ref'][
'checked'])) { $colspan++; }
950 if (!empty($arrayfields[
't.label_operation'][
'checked'])) { $colspan++; }
951 if (!empty($arrayfields[
't.date_export'][
'checked'])) { $colspanend++; }
952 if (!empty($arrayfields[
't.date_validating'][
'checked'])) { $colspanend++; }
953 if (!empty($arrayfields[
't.lettering_code'][
'checked'])) { $colspanend++; }
960 if ($accountg != $displayed_account_number || !isset($displayed_account_number)) {
962 if (isset($displayed_account_number)) {
963 print
'<tr class="liste_total">';
964 if ($type ==
'sub') {
965 print
'<td class="right" colspan="' . $colspan .
'">' . $langs->trans(
"TotalForAccount") .
' ' .
length_accounta($displayed_account_number) .
':</td>';
967 print
'<td class="right" colspan="' . $colspan .
'">' . $langs->trans(
"TotalForAccount") .
' ' .
length_accountg($displayed_account_number) .
':</td>';
969 print
'<td class="nowrap right">'.price(
price2num($sous_total_debit,
'MT')).
'</td>';
970 print
'<td class="nowrap right">'.price(
price2num($sous_total_credit,
'MT')).
'</td>';
971 print
'<td colspan="'.$colspanend.
'"></td>';
974 $balance = $sous_total_debit - $sous_total_credit;
975 print
'<tr class="liste_total">';
976 print
'<td class="right" colspan="'.$colspan.
'">'.$langs->trans(
"Balance").
':</td>';
978 print
'<td class="nowraponall right">';
979 print
price(
price2num($sous_total_debit - $sous_total_credit,
'MT'));
984 print
'<td class="nowraponall right">';
985 print
price(
price2num($sous_total_credit - $sous_total_debit,
'MT'));
988 print
'<td colspan="'.$colspanend.
'"></td>';
993 print
'<tr class="trforbreak">';
994 print
'<td colspan="'.($totalarray[
'nbfield'] ? $totalarray[
'nbfield'] : count($arrayfields)+1).
'" class="tdforbreak">';
995 if ($type ==
'sub') {
996 if ($line->subledger_account !=
"" && $line->subledger_account !=
'-1') {
997 print empty($line->subledger_label) ?
'<span class="error">'.$langs->trans(
"Unknown").
'</span>' : $line->subledger_label;
1002 print
'<span class="error">' . $langs->trans(
"Unknown");
1003 if ($line->subledger_label) {
1004 print
' (' . $line->subledger_label .
')';
1005 $htmltext =
'EmptyStringForSubledgerAccountButSubledgerLabelDefined';
1007 $htmltext =
'EmptyStringForSubledgerAccountAndSubledgerLabel';
1009 print
$form->textwithpicto(
'', $htmltext);
1013 if ($line->numero_compte !=
"" && $line->numero_compte !=
'-1') {
1014 print
length_accountg($line->numero_compte) .
' : ' . $object->get_compte_desc($line->numero_compte);
1016 print
'<span class="error">' . $langs->trans(
"Unknown") .
'</span>';
1022 $displayed_account_number = $accountg;
1024 $sous_total_debit = 0;
1025 $sous_total_credit = 0;
1030 print
'<tr class="oddeven">';
1033 print
'<td class="nowraponall center">';
1034 if (($massactionbutton || $massaction) && $contextpage !=
'poslist') {
1036 if (in_array($line->id, $arrayofselected)) {
1039 print
'<input id="cb' . $line->id .
'" class="flat checkforselect" type="checkbox" name="toselect[]" value="' . $line->id .
'"' . ($selected ?
' checked="checked"' :
'') .
' />';
1043 $totalarray[
'nbfield']++;
1047 if (!empty($arrayfields[
't.piece_num'][
'checked'])) {
1049 $object->id = $line->id;
1050 $object->piece_num = $line->piece_num;
1051 print $object->getNomUrl(1,
'', 0,
'', 1);
1054 $totalarray[
'nbfield']++;
1059 if (!empty($arrayfields[
't.code_journal'][
'checked'])) {
1061 $result = $accountingjournal->fetch(
'', $line->code_journal);
1062 $journaltoshow = (($result > 0) ? $accountingjournal->getNomUrl(0, 0, 0,
'', 0) : $line->code_journal);
1063 print
'<td class="center tdoverflowmax80">'.$journaltoshow.
'</td>';
1065 $totalarray[
'nbfield']++;
1070 if (!empty($arrayfields[
't.doc_date'][
'checked'])) {
1071 print
'<td class="center">'.dol_print_date($line->doc_date,
'day').
'</td>';
1073 $totalarray[
'nbfield']++;
1078 if (!empty($arrayfields[
't.doc_ref'][
'checked'])) {
1079 if ($line->doc_type ==
'customer_invoice') {
1080 $langs->loadLangs(array(
'bills'));
1082 require_once DOL_DOCUMENT_ROOT.
'/compta/facture/class/facture.class.php';
1083 $objectstatic =
new Facture($db);
1084 $objectstatic->fetch($line->fk_doc);
1089 $urlsource = $_SERVER[
'PHP_SELF'].
'?id='.$objectstatic->id;
1090 $documentlink = $formfile->getDocumentsLink($objectstatic->element, $filename, $filedir);
1091 } elseif ($line->doc_type ==
'supplier_invoice') {
1092 $langs->loadLangs(array(
'bills'));
1094 require_once DOL_DOCUMENT_ROOT.
'/fourn/class/fournisseur.facture.class.php';
1096 $objectstatic->fetch($line->fk_doc);
1100 $filedir = $conf->fournisseur->facture->dir_output.
'/'.
get_exdir($line->fk_doc, 2, 0, 0, $objectstatic, $modulepart).dol_sanitizeFileName($line->doc_ref);
1101 $subdir =
get_exdir($objectstatic->id, 2, 0, 0, $objectstatic, $modulepart).dol_sanitizeFileName($line->doc_ref);
1102 $documentlink = $formfile->getDocumentsLink($objectstatic->element, $subdir, $filedir);
1103 } elseif ($line->doc_type ==
'expense_report') {
1104 $langs->loadLangs(array(
'trips'));
1106 require_once DOL_DOCUMENT_ROOT.
'/expensereport/class/expensereport.class.php';
1108 $objectstatic->fetch($line->fk_doc);
1113 $urlsource = $_SERVER[
'PHP_SELF'].
'?id='.$objectstatic->id;
1114 $documentlink = $formfile->getDocumentsLink($objectstatic->element, $filename, $filedir);
1115 } elseif ($line->doc_type ==
'bank') {
1116 require_once DOL_DOCUMENT_ROOT.
'/compta/bank/class/account.class.php';
1118 $objectstatic->fetch($line->fk_doc);
1123 print
'<td class="maxwidth400">';
1125 print
'<table class="nobordernopadding"><tr class="nocellnopadd">';
1127 print
'<td class="nobordernopadding">';
1129 if ($line->doc_type ==
'customer_invoice' || $line->doc_type ==
'supplier_invoice' || $line->doc_type ==
'expense_report') {
1130 print $objectstatic->getNomUrl(1,
'', 0, 0,
'', 0, -1, 1);
1131 print $documentlink;
1132 } elseif ($line->doc_type ==
'bank') {
1133 print $objectstatic->getNomUrl(1);
1134 $bank_ref = strstr($line->doc_ref,
'-');
1135 print
" " . $bank_ref;
1137 print $line->doc_ref;
1139 print
'</td></tr></table>';
1143 $totalarray[
'nbfield']++;
1148 if (!empty($arrayfields[
't.label_operation'][
'checked'])) {
1150 $doc_ref = preg_replace(
'/\(.*\)/',
'', $line->doc_ref);
1151 print strlen(
length_accounta($line->subledger_account)) == 0 ?
'<td>'.$line->label_operation.
'</td>' :
'<td>'.$line->label_operation.
'<br><span style="font-size:0.8em">('.
length_accounta($line->subledger_account).
')</span></td>';
1153 $totalarray[
'nbfield']++;
1158 if (!empty($arrayfields[
't.debit'][
'checked'])) {
1159 print
'<td class="right nowraponall amount">'.($line->debit != 0 ?
price($line->debit) :
'').
'</td>';
1161 $totalarray[
'nbfield']++;
1164 $totalarray[
'pos'][$totalarray[
'nbfield']] =
'totaldebit';
1166 $totalarray[
'val'][
'totaldebit'] += $line->debit;
1170 if (!empty($arrayfields[
't.credit'][
'checked'])) {
1171 print
'<td class="right nowraponall amount">'.($line->credit != 0 ?
price($line->credit) :
'').
'</td>';
1173 $totalarray[
'nbfield']++;
1176 $totalarray[
'pos'][$totalarray[
'nbfield']] =
'totalcredit';
1178 $totalarray[
'val'][
'totalcredit'] += $line->credit;
1182 if (!empty($arrayfields[
't.lettering_code'][
'checked'])) {
1183 print
'<td class="center">'.$line->lettering_code.
'</td>';
1185 $totalarray[
'nbfield']++;
1190 if (!empty($arrayfields[
't.date_export'][
'checked'])) {
1191 print
'<td class="center">'.dol_print_date($line->date_export,
'dayhour').
'</td>';
1193 $totalarray[
'nbfield']++;
1198 if (!empty($arrayfields[
't.date_validated'][
'checked'])) {
1199 print
'<td class="center">'.dol_print_date($line->date_validation,
'dayhour').
'</td>';
1201 $totalarray[
'nbfield']++;
1205 if (!empty($arrayfields[
't.import_key'][
'checked'])) {
1206 print
'<td class="tdoverflowmax100">'.$line->import_key.
"</td>\n";
1208 $totalarray[
'nbfield']++;
1213 $parameters = array(
'arrayfields'=>$arrayfields,
'obj'=>$line);
1214 $reshook = $hookmanager->executeHooks(
'printFieldListValue', $parameters);
1215 print $hookmanager->resPrint;
1219 print
'<td class="nowraponall center">';
1220 if (($massactionbutton || $massaction) && $contextpage !=
'poslist') {
1222 if (in_array($line->id, $arrayofselected)) {
1225 print
'<input id="cb' . $line->id .
'" class="flat checkforselect" type="checkbox" name="toselect[]" value="' . $line->id .
'"' . ($selected ?
' checked="checked"' :
'') .
' />';
1229 $totalarray[
'nbfield']++;
1234 $sous_total_debit += $line->debit;
1235 $sous_total_credit += $line->credit;
1242 if ($num > 0 && $colspan > 0) {
1243 print
'<tr class="liste_total">';
1244 print
'<td class="right" colspan="'.$colspan.
'">'.$langs->trans(
"TotalForAccount").
' '.$accountg.
':</td>';
1245 print
'<td class="nowrap right">'.price(
price2num($sous_total_debit,
'MT')).
'</td>';
1246 print
'<td class="nowrap right">'.price(
price2num($sous_total_credit,
'MT')).
'</td>';
1247 print
'<td colspan="'.$colspanend.
'"></td>';
1250 $balance = $sous_total_debit - $sous_total_credit;
1251 print
'<tr class="liste_total">';
1252 print
'<td class="right" colspan="'.$colspan.
'">'.$langs->trans(
"Balance").
':</td>';
1254 print
'<td class="nowraponall right">';
1255 print
price(
price2num($sous_total_debit - $sous_total_credit,
'MT'));
1260 print
'<td class="nowraponall right">';
1261 print
price(
price2num($sous_total_credit - $sous_total_debit,
'MT'));
1264 print
'<td colspan="'.$colspanend.
'"></td>';
1270 if (!empty($totalarray[
'val'][
'totaldebit'])) {
1271 $totalarray[
'val'][
'totaldebit'] =
price2num($totalarray[
'val'][
'totaldebit'],
'MT');
1273 if (!empty($totalarray[
'val'][
'totalcredit'])) {
1274 $totalarray[
'val'][
'totalcredit'] =
price2num($totalarray[
'val'][
'totalcredit'],
'MT');
1279 include DOL_DOCUMENT_ROOT.
'/core/tpl/list_print_total.tpl.php';
1284 foreach ($arrayfields as $key => $val) {
1285 if (!empty($val[
'checked'])) {
1289 print
'<tr><td colspan="'.$colspan.
'"><span class="opacitymedium">'.$langs->trans(
"NoRecordFound").
'</span></td></tr>';
1292 $parameters = array(
'arrayfields'=>$arrayfields,
'sql'=>
$sql);
1293 $reshook = $hookmanager->executeHooks(
'printFieldListFooter', $parameters, $object, $action);
1294 print $hookmanager->resPrint;