29require
'../../main.inc.php';
31require_once DOL_DOCUMENT_ROOT.
'/core/lib/accounting.lib.php';
32require_once DOL_DOCUMENT_ROOT.
'/accountancy/class/lettering.class.php';
33require_once DOL_DOCUMENT_ROOT.
'/accountancy/class/bookkeeping.class.php';
34require_once DOL_DOCUMENT_ROOT.
'/accountancy/class/accountingjournal.class.php';
35require_once DOL_DOCUMENT_ROOT.
'/core/class/html.formaccounting.class.php';
36require_once DOL_DOCUMENT_ROOT.
'/core/class/html.formfile.class.php';
37require_once DOL_DOCUMENT_ROOT.
'/core/class/html.formother.class.php';
38require_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');
85if ($search_accountancy_code_start == - 1) {
86 $search_accountancy_code_start =
'';
88$search_accountancy_code_end =
GETPOST(
'search_accountancy_code_end',
'alpha');
89if ($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';
108$sortfield =
GETPOST(
'sortfield',
'aZ09comma');
109$sortorder =
GETPOST(
'sortorder',
'aZ09comma');
110$optioncss =
GETPOST(
'optioncss',
'alpha');
111$page = GETPOSTISSET(
'pageplusone') ? (
GETPOST(
'pageplusone') - 1) :
GETPOST(
"page",
'int');
112if (empty($page) || $page < 0) {
115$offset = $limit * $page;
116$pageprev = $page - 1;
117$pagenext = $page + 1;
118if ($sortorder ==
"") {
121if ($sortfield ==
"") {
122 $sortfield =
"t.doc_date,t.rowid";
128$hookmanager->initHooks(array($context_default));
131$form =
new Form($db);
133if (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);
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);
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.lettering_code'=>array(
'label'=>$langs->trans(
"Lettering"),
'checked'=>1),
168 't.debit'=>array(
'label'=>$langs->trans(
"AccountingDebit"),
'checked'=>1),
169 't.credit'=>array(
'label'=>$langs->trans(
"AccountingCredit"),
'checked'=>1),
170 't.balance'=>array(
'label'=>$langs->trans(
"Balance"),
'checked'=>1),
171 't.date_export'=>array(
'label'=>$langs->trans(
"DateExport"),
'checked'=>-1),
172 't.date_validated'=>array(
'label'=>$langs->trans(
"DateValidation"),
'checked'=>-1,
'enabled'=>!
getDolGlobalString(
"ACCOUNTANCY_DISABLE_CLOSURE_LINE_BY_LINE")),
173 't.import_key'=>array(
'label'=>$langs->trans(
"ImportId"),
'checked'=>-1,
'position'=>1100),
177 unset($arrayfields[
't.lettering_code']);
180if ($search_date_start && empty($search_date_startyear)) {
182 $search_date_startyear = $tmparray[
'year'];
183 $search_date_startmonth = $tmparray[
'mon'];
184 $search_date_startday = $tmparray[
'mday'];
186if ($search_date_end && empty($search_date_endyear)) {
188 $search_date_endyear = $tmparray[
'year'];
189 $search_date_endmonth = $tmparray[
'mon'];
190 $search_date_endday = $tmparray[
'mday'];
193if (!isModEnabled(
'accounting')) {
196if ($user->socid > 0) {
199if (!$user->hasRight(
'accounting',
'mouvements',
'lire')) {
212if (
GETPOST(
'cancel',
'alpha')) {
216if (!
GETPOST(
'confirmmassaction',
'alpha') && $massaction !=
'preunletteringauto' && $massaction !=
'preunletteringmanual' && $massaction !=
'predeletebookkeepingwriting') {
220$parameters = array(
'socid'=>$socid);
221$reshook = $hookmanager->executeHooks(
'doActions', $parameters, $object, $action);
226if (empty($reshook)) {
227 include DOL_DOCUMENT_ROOT.
'/core/actions_changeselectedfields.inc.php';
229 if (
GETPOST(
'button_removefilter_x',
'alpha') ||
GETPOST(
'button_removefilter.x',
'alpha') ||
GETPOST(
'button_removefilter',
'alpha')) {
230 $search_doc_date =
'';
231 $search_account_category =
'';
232 $search_accountancy_code_start =
'';
233 $search_accountancy_code_end =
'';
234 $search_label_account =
'';
235 $search_doc_ref =
'';
236 $search_label_operation =
'';
237 $search_mvt_num =
'';
238 $search_direction =
'';
239 $search_ledger_code = array();
240 $search_date_start =
'';
241 $search_date_end =
'';
242 $search_date_startyear =
'';
243 $search_date_startmonth =
'';
244 $search_date_startday =
'';
245 $search_date_endyear =
'';
246 $search_date_endmonth =
'';
247 $search_date_endday =
'';
248 $search_date_export_start =
'';
249 $search_date_export_end =
'';
250 $search_date_export_startyear =
'';
251 $search_date_export_startmonth =
'';
252 $search_date_export_startday =
'';
253 $search_date_export_endyear =
'';
254 $search_date_export_endmonth =
'';
255 $search_date_export_endday =
'';
256 $search_date_validation_start =
'';
257 $search_date_validation_end =
'';
258 $search_date_validation_startyear =
'';
259 $search_date_validation_startmonth =
'';
260 $search_date_validation_startday =
'';
261 $search_date_validation_endyear =
'';
262 $search_date_validation_endmonth =
'';
263 $search_date_validation_endday =
'';
264 $search_lettering_code =
'';
267 $search_not_reconciled =
'';
268 $search_import_key =
'';
275 if (!empty($search_date_start)) {
276 $filter[
't.doc_date>='] = $search_date_start;
277 $param .=
'&search_date_startmonth='.$search_date_startmonth.
'&search_date_startday='.$search_date_startday.
'&search_date_startyear='.$search_date_startyear;
279 if (!empty($search_date_end)) {
280 $filter[
't.doc_date<='] = $search_date_end;
281 $param .=
'&search_date_endmonth='.$search_date_endmonth.
'&search_date_endday='.$search_date_endday.
'&search_date_endyear='.$search_date_endyear;
283 if (!empty($search_doc_date)) {
284 $filter[
't.doc_date'] = $search_doc_date;
285 $param .=
'&doc_datemonth='.GETPOST(
'doc_datemonth',
'int').
'&doc_dateday='.
GETPOST(
'doc_dateday',
'int').
'&doc_dateyear='.
GETPOST(
'doc_dateyear',
'int');
287 if ($search_account_category !=
'-1' && !empty($search_account_category)) {
288 require_once DOL_DOCUMENT_ROOT.
'/accountancy/class/accountancycategory.class.php';
291 $listofaccountsforgroup = $accountingcategory->getCptsCat(0,
'fk_accounting_category = '.((
int) $search_account_category));
292 $listofaccountsforgroup2 = array();
293 if (is_array($listofaccountsforgroup)) {
294 foreach ($listofaccountsforgroup as $tmpval) {
295 $listofaccountsforgroup2[] =
"'".$db->escape($tmpval[
'id']).
"'";
298 $filter[
't.search_accounting_code_in'] = join(
',', $listofaccountsforgroup2);
299 $param .=
'&search_account_category='.urlencode($search_account_category);
301 if (!empty($search_accountancy_code_start)) {
302 if ($type ==
'sub') {
303 $filter[
't.subledger_account>='] = $search_accountancy_code_start;
305 $filter[
't.numero_compte>='] = $search_accountancy_code_start;
307 $param .=
'&search_accountancy_code_start=' . urlencode($search_accountancy_code_start);
309 if (!empty($search_accountancy_code_end)) {
310 if ($type ==
'sub') {
311 $filter[
't.subledger_account<='] = $search_accountancy_code_end;
313 $filter[
't.numero_compte<='] = $search_accountancy_code_end;
315 $param .=
'&search_accountancy_code_end=' . urlencode($search_accountancy_code_end);
317 if (!empty($search_label_account)) {
318 $filter[
't.label_compte'] = $search_label_account;
319 $param .=
'&search_label_compte='.urlencode($search_label_account);
321 if (!empty($search_mvt_num)) {
322 $filter[
't.piece_num'] = $search_mvt_num;
323 $param .=
'&search_mvt_num='.urlencode($search_mvt_num);
325 if (!empty($search_doc_ref)) {
326 $filter[
't.doc_ref'] = $search_doc_ref;
327 $param .=
'&search_doc_ref='.urlencode($search_doc_ref);
329 if (!empty($search_label_operation)) {
330 $filter[
't.label_operation'] = $search_label_operation;
331 $param .=
'&search_label_operation='.urlencode($search_label_operation);
333 if (!empty($search_direction)) {
334 $filter[
't.sens'] = $search_direction;
335 $param .=
'&search_direction='.urlencode($search_direction);
337 if (!empty($search_ledger_code)) {
338 $filter[
't.code_journal'] = $search_ledger_code;
339 foreach ($search_ledger_code as $code) {
340 $param .=
'&search_ledger_code[]='.urlencode($code);
343 if (!empty($search_lettering_code)) {
344 $filter[
't.lettering_code'] = $search_lettering_code;
345 $param .=
'&search_lettering_code='.urlencode($search_lettering_code);
347 if (!empty($search_debit)) {
348 $filter[
't.debit'] = $search_debit;
349 $param .=
'&search_debit='.urlencode($search_debit);
351 if (!empty($search_credit)) {
352 $filter[
't.credit'] = $search_credit;
353 $param .=
'&search_credit='.urlencode($search_credit);
355 if (!empty($search_not_reconciled)) {
356 $filter[
't.reconciled_option'] = $search_not_reconciled;
357 $param .=
'&search_not_reconciled='.urlencode($search_not_reconciled);
359 if (!empty($search_date_export_start)) {
360 $filter[
't.date_export>='] = $search_date_export_start;
361 $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;
363 if (!empty($search_date_export_end)) {
364 $filter[
't.date_export<='] = $search_date_export_end;
365 $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;
367 if (!empty($search_date_validation_start)) {
368 $filter[
't.date_validated>='] = $search_date_validation_start;
369 $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;
371 if (!empty($search_date_validation_end)) {
372 $filter[
't.date_validated<='] = $search_date_validation_end;
373 $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;
375 if (!empty($search_import_key)) {
376 $filter[
't.import_key'] = $search_import_key;
377 $param .=
'&search_import_key='.urlencode($search_import_key);
380 $url_param = substr($param, 1);
382 $param =
'&type='.$type.$param;
413 $objectclass =
'Bookkeeping';
414 $objectlabel =
'Bookkeeping';
415 $permissiontoread = $user->hasRight(
'societe',
'lire');
416 $permissiontodelete = $user->hasRight(
'societe',
'supprimer');
417 $permissiontoadd = $user->hasRight(
'societe',
'creer');
418 $uploaddir = $conf->societe->dir_output;
419 include DOL_DOCUMENT_ROOT.
'/core/actions_massactions.inc.php';
421 if (!$error && $action ==
'deletebookkeepingwriting' && $confirm ==
"yes" && $user->hasRight(
'accounting',
'mouvements',
'supprimer')) {
426 $nb_lettering = $lettering->bookkeepingLetteringAll($toselect,
true);
427 if ($nb_lettering < 0) {
435 foreach ($toselect as $toselectid) {
436 $result = $object->fetch($toselectid);
437 if ($result > 0 && (!isset($object->date_validation) || $object->date_validation ===
'')) {
438 $result = $object->deleteMvtNum($object->piece_num);
446 } elseif ($result < 0) {
450 } elseif (isset($object->date_validation) && $object->date_validation !=
'') {
451 setEventMessages($langs->trans(
"ValidatedRecordWhereFound"),
null,
'errors');
464 } elseif ($nbok > 0) {
470 header(
"Location: ".$_SERVER[
"PHP_SELF"].
"?noreset=1".($param ?
'&'.$param :
''));
478 if (!$error &&
getDolGlobalInt(
'ACCOUNTING_ENABLE_LETTERING') && $user->hasRight(
'accounting',
'mouvements',
'creer')) {
479 if ($massaction ==
'letteringauto') {
481 $nb_lettering = $lettering->bookkeepingLetteringAll($toselect);
482 if ($nb_lettering < 0) {
485 $nb_lettering = max(0, abs($nb_lettering) - 2);
486 } elseif ($nb_lettering == 0) {
488 setEventMessages($langs->trans(
'AccountancyNoLetteringModified'), array(),
'mesgs');
490 if ($nb_lettering == 1) {
491 setEventMessages($langs->trans(
'AccountancyOneLetteringModifiedSuccessfully'), array(),
'mesgs');
492 } elseif ($nb_lettering > 1) {
493 setEventMessages($langs->trans(
'AccountancyLetteringModifiedSuccessfully', $nb_lettering), array(),
'mesgs');
497 header(
'Location: ' . $_SERVER[
'PHP_SELF'] .
'?noreset=1' . $param);
500 } elseif ($massaction ==
'letteringmanual') {
502 $result = $lettering->updateLettering($toselect);
506 setEventMessages($langs->trans(
'AccountancyOneLetteringModifiedSuccessfully'), array(),
'mesgs');
507 header(
'Location: ' . $_SERVER[
'PHP_SELF'] .
'?noreset=1' . $param);
510 } elseif ($action ==
'unletteringauto' && $confirm ==
"yes") {
512 $nb_lettering = $lettering->bookkeepingLetteringAll($toselect,
true);
513 if ($nb_lettering < 0) {
516 $nb_lettering = max(0, abs($nb_lettering) - 2);
517 } elseif ($nb_lettering == 0) {
519 setEventMessages($langs->trans(
'AccountancyNoUnletteringModified'), array(),
'mesgs');
521 if ($nb_lettering == 1) {
522 setEventMessages($langs->trans(
'AccountancyOneUnletteringModifiedSuccessfully'), array(),
'mesgs');
523 } elseif ($nb_lettering > 1) {
524 setEventMessages($langs->trans(
'AccountancyUnletteringModifiedSuccessfully', $nb_lettering), array(),
'mesgs');
528 header(
'Location: ' . $_SERVER[
'PHP_SELF'] .
'?noreset=1' . $param);
531 } elseif ($action ==
'unletteringmanual' && $confirm ==
"yes") {
533 $nb_lettering = $lettering->deleteLettering($toselect);
537 setEventMessages($langs->trans(
'AccountancyOneUnletteringModifiedSuccessfully'), array(),
'mesgs');
538 header(
'Location: ' . $_SERVER[
'PHP_SELF'] .
'?noreset=1' . $param);
553$form =
new Form($db);
555$title_page = $langs->trans(
"Operations").
' - '.$langs->trans(
"VueByAccountAccounting").
' (';
557 $title_page .= $langs->trans(
"BookkeepingSubAccount");
559 $title_page .= $langs->trans(
"Bookkeeping");
562$help_url =
'EN:Module_Double_Entry_Accounting|FR:Module_Comptabilité_en_Partie_Double';
566$nbtotalofrecords =
'';
569 if ($type ==
'sub') {
570 $nbtotalofrecords = $object->fetchAllByAccount($sortorder, $sortfield, 0, 0, $filter,
'AND', 1, 1);
572 $nbtotalofrecords = $object->fetchAllByAccount($sortorder, $sortfield, 0, 0, $filter,
'AND', 0, 1);
575 if ($nbtotalofrecords < 0) {
582 if ($type ==
'sub') {
583 $result = $object->fetchAllByAccount($sortorder, $sortfield, $limit, $offset, $filter,
'AND', 1);
585 $result = $object->fetchAllByAccount($sortorder, $sortfield, $limit, $offset, $filter,
'AND', 0);
593$arrayofselected = is_array($toselect) ? $toselect : array();
595$num = count($object->lines);
643$arrayofmassactions = array();
644if (
getDolGlobalInt(
'ACCOUNTING_ENABLE_LETTERING') && $user->hasRight(
'accounting',
'mouvements',
'creer')) {
645 $arrayofmassactions[
'letteringauto'] =
img_picto(
'',
'check',
'class="pictofixedwidth"') . $langs->trans(
'LetteringAuto');
646 $arrayofmassactions[
'preunletteringauto'] =
img_picto(
'',
'uncheck',
'class="pictofixedwidth"') . $langs->trans(
'UnletteringAuto');
647 $arrayofmassactions[
'letteringmanual'] =
img_picto(
'',
'check',
'class="pictofixedwidth"') . $langs->trans(
'LetteringManual');
648 $arrayofmassactions[
'preunletteringmanual'] =
img_picto(
'',
'uncheck',
'class="pictofixedwidth"') . $langs->trans(
'UnletteringManual');
650if ($user->hasRight(
'accounting',
'mouvements',
'supprimer')) {
651 $arrayofmassactions[
'predeletebookkeepingwriting'] =
img_picto(
'',
'delete',
'class="pictofixedwidth"').$langs->trans(
"Delete");
653if (
GETPOST(
'nomassaction',
'int') || in_array($massaction, array(
'preunletteringauto',
'preunletteringmanual',
'predeletebookkeepingwriting'))) {
654 $arrayofmassactions = array();
656$massactionbutton = $form->selectMassAction($massaction, $arrayofmassactions);
658print
'<form method="POST" id="searchFormList" action="'.$_SERVER[
"PHP_SELF"].
'">';
659print
'<input type="hidden" name="token" value="'.newToken().
'">';
660print
'<input type="hidden" name="action" value="list">';
661if ($optioncss !=
'') {
662 print
'<input type="hidden" name="optioncss" value="'.$optioncss.
'">';
664print
'<input type="hidden" name="formfilteraction" id="formfilteraction" value="list">';
665print
'<input type="hidden" name="type" value="'.$type.
'">';
666print
'<input type="hidden" name="sortfield" value="'.$sortfield.
'">';
667print
'<input type="hidden" name="sortorder" value="'.$sortorder.
'">';
668print
'<input type="hidden" name="contextpage" value="'.$contextpage.
'">';
670$parameters = array(
'param' => $param);
671$reshook = $hookmanager->executeHooks(
'addMoreActionsButtonsList', $parameters, $object, $action);
676$newcardbutton = empty($hookmanager->resPrint) ?
'' : $hookmanager->resPrint;
678if (empty($reshook)) {
679 $newcardbutton =
dolGetButtonTitle($langs->trans(
'ViewFlatList'),
'',
'fa fa-list paddingleft imgforviewmode', DOL_URL_ROOT.
'/accountancy/bookkeeping/list.php?'.$param);
680 if ($type ==
'sub') {
681 $newcardbutton .=
dolGetButtonTitle($langs->trans(
'GroupByAccountAccounting'),
'',
'fa fa-stream paddingleft imgforviewmode', DOL_URL_ROOT .
'/accountancy/bookkeeping/listbyaccount.php?' . $url_param,
'', 1, array(
'morecss' =>
'marginleftonly'));
682 $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'));
684 $newcardbutton .=
dolGetButtonTitle($langs->trans(
'GroupByAccountAccounting'),
'',
'fa fa-stream paddingleft imgforviewmode', DOL_URL_ROOT .
'/accountancy/bookkeeping/listbyaccount.php?' . $url_param,
'', 1, array(
'morecss' =>
'marginleftonly btnTitleSelected'));
685 $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'));
688 $newcardbutton .=
dolGetButtonTitle($langs->trans(
'NewAccountingMvt'),
'',
'fa fa-plus-circle paddingleft', DOL_URL_ROOT.
'/accountancy/bookkeeping/card.php?action=create');
691if (!empty($contextpage) && $contextpage != $_SERVER[
"PHP_SELF"]) {
692 $param .=
'&contextpage='.urlencode($contextpage);
694if ($limit > 0 && $limit != $conf->liste_limit) {
695 $param .=
'&limit='.((int) $limit);
698print_barre_liste($title_page, $page, $_SERVER[
"PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $result, $nbtotalofrecords,
'title_accountancy', 0, $newcardbutton,
'', $limit, 0, 0, 1);
700if ($massaction ==
'preunletteringauto') {
701 print $form->formconfirm($_SERVER[
"PHP_SELF"], $langs->trans(
"ConfirmMassUnletteringAuto"), $langs->trans(
"ConfirmMassUnletteringQuestion", count($toselect)),
"unletteringauto",
null,
'', 0, 200, 500, 1);
702} elseif ($massaction ==
'preunletteringmanual') {
703 print $form->formconfirm($_SERVER[
"PHP_SELF"], $langs->trans(
"ConfirmMassUnletteringManual"), $langs->trans(
"ConfirmMassUnletteringQuestion", count($toselect)),
"unletteringmanual",
null,
'', 0, 200, 500, 1);
704} elseif ($massaction ==
'predeletebookkeepingwriting') {
705 print $form->formconfirm($_SERVER[
"PHP_SELF"], $langs->trans(
"ConfirmMassDeleteBookkeepingWriting"), $langs->trans(
"ConfirmMassDeleteBookkeepingWritingQuestion", count($toselect)),
"deletebookkeepingwriting",
null,
'', 0, 200, 500, 1);
718include DOL_DOCUMENT_ROOT.
'/core/tpl/massactions_pre.tpl.php';
720$varpage = empty($contextpage) ? $_SERVER[
"PHP_SELF"] : $contextpage;
721$selectedfields = $form->multiSelectArrayWithCheckbox(
'selectedfields', $arrayfields, $varpage,
getDolGlobalString(
'MAIN_CHECKBOX_LEFT_COLUMN'));
722if ($massactionbutton && $contextpage !=
'poslist') {
723 $selectedfields .= $form->showCheckAddButtons(
'checkforselect', 1);
727if (preg_match(
'/^asc/i', $sortorder)) {
735 print
info_admin($langs->trans(
"WarningRecordWithoutSubledgerAreExcluded"));
741$moreforfilter .=
'<div class="divsearchfield">';
742$moreforfilter .= $langs->trans(
'AccountAccounting').
': ';
743$moreforfilter .=
'<div class="nowrap inline-block">';
745 $moreforfilter .= $formaccounting->select_auxaccount($search_accountancy_code_start,
'search_accountancy_code_start', $langs->trans(
'From'),
'maxwidth200');
747 $moreforfilter .= $formaccounting->select_account($search_accountancy_code_start,
'search_accountancy_code_start', $langs->trans(
'From'), array(), 1, 1,
'maxwidth200');
749$moreforfilter .=
' ';
751 $moreforfilter .= $formaccounting->select_auxaccount($search_accountancy_code_end,
'search_accountancy_code_end', $langs->trans(
'to'),
'maxwidth200');
753 $moreforfilter .= $formaccounting->select_account($search_accountancy_code_end,
'search_accountancy_code_end', $langs->trans(
'to'), array(), 1, 1,
'maxwidth200');
755$stringforfirstkey = $langs->trans(
"KeyboardShortcut");
756if ($conf->browser->name ==
'chrome') {
757 $stringforfirstkey .=
' ALT +';
758} elseif ($conf->browser->name ==
'firefox') {
759 $stringforfirstkey .=
' ALT + SHIFT +';
761 $stringforfirstkey .=
' CTL +';
763$moreforfilter .=
' <a id="previous_account" accesskey="p" title="' . $stringforfirstkey .
' p" class="classfortooltip" href="#"><i class="fa fa-chevron-left"></i></a>';
764$moreforfilter .=
' <a id="next_account" accesskey="n" title="' . $stringforfirstkey .
' n" class="classfortooltip" href="#"><i class="fa fa-chevron-right"></i></a>';
765$moreforfilter .= <<<SCRIPT
766<script
type=
"text/javascript">
767 jQuery(document).ready(
function() {
768 var searchFormList = $(
'#searchFormList');
769 var searchAccountancyCodeStart = $(
'#search_accountancy_code_start');
770 var searchAccountancyCodeEnd = $(
'#search_accountancy_code_end');
771 jQuery(
'#previous_account').on(
'click',
function() {
772 var previousOption = searchAccountancyCodeStart.find(
'option:selected').prev(
'option');
773 if (previousOption.length == 1) searchAccountancyCodeStart.val(previousOption.attr(
'value'));
774 searchAccountancyCodeEnd.val(searchAccountancyCodeStart.val());
775 searchFormList.submit();
777 jQuery(
'#next_account').on(
'click',
function() {
778 var nextOption = searchAccountancyCodeStart.find(
'option:selected').next(
'option');
779 if (nextOption.length == 1) searchAccountancyCodeStart.val(nextOption.attr(
'value'));
780 searchAccountancyCodeEnd.val(searchAccountancyCodeStart.val());
781 searchFormList.submit();
783 jQuery(
'input[name="search_mvt_num"]').on(
"keypress",
function(event) {
789$moreforfilter .=
'</div>';
790$moreforfilter .=
'</div>';
792$moreforfilter .=
'<div class="divsearchfield">';
793$moreforfilter .= $langs->trans(
'AccountingCategory').
': ';
794$moreforfilter .=
'<div class="nowrap inline-block">';
795$moreforfilter .= $formaccounting->select_accounting_category($search_account_category,
'search_account_category', 1, 0, 0, 0);
796$moreforfilter .=
'</div>';
797$moreforfilter .=
'</div>';
799$parameters = array();
800$reshook = $hookmanager->executeHooks(
'printFieldPreListTitle', $parameters);
801if (empty($reshook)) {
802 $moreforfilter .= $hookmanager->resPrint;
804 $moreforfilter = $hookmanager->resPrint;
807print
'<div class="liste_titre liste_titre_bydiv centpercent">';
811print
'<div class="div-table-responsive">';
812print
'<table class="tagtable liste centpercent">';
815print
'<tr class="liste_titre_filter">';
818 print
'<td class="liste_titre center">';
819 $searchpicto = $form->showFilterButtons(
'left');
824if (!empty($arrayfields[
't.piece_num'][
'checked'])) {
825 print
'<td class="liste_titre"><input type="text" name="search_mvt_num" class="width50" value="'.dol_escape_htmltag($search_mvt_num).
'"></td>';
828if (!empty($arrayfields[
't.code_journal'][
'checked'])) {
829 print
'<td class="liste_titre center">';
830 print $formaccounting->multi_select_journal($search_ledger_code,
'search_ledger_code', 0, 1, 1, 1,
'maxwidth75');
834if (!empty($arrayfields[
't.doc_date'][
'checked'])) {
835 print
'<td class="liste_titre center">';
836 print
'<div class="nowrapfordate">';
837 print $form->selectDate($search_date_start,
'search_date_start', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
"From"));
839 print
'<div class="nowrapfordate">';
840 print $form->selectDate($search_date_end,
'search_date_end', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
"to"));
845if (!empty($arrayfields[
't.doc_ref'][
'checked'])) {
846 print
'<td class="liste_titre"><input type="text" size="7" class="flat" name="search_doc_ref" value="'.dol_escape_htmltag($search_doc_ref).
'"/></td>';
849if (!empty($arrayfields[
't.label_operation'][
'checked'])) {
850 print
'<td class="liste_titre"><input type="text" size="7" class="flat" name="search_label_operation" value="'.dol_escape_htmltag($search_label_operation).
'"/></td>';
853if (!empty($arrayfields[
't.lettering_code'][
'checked'])) {
854 print
'<td class="liste_titre center">';
855 print
'<input type="text" size="3" class="flat" name="search_lettering_code" value="'.$search_lettering_code.
'"/>';
856 print
'<br><span class="nowrap"><input type="checkbox" name="search_not_reconciled" value="notreconciled"'.($search_not_reconciled ==
'notreconciled' ?
' checked' :
'').
'>'.$langs->trans(
"NotReconciled").
'</span>';
860if (!empty($arrayfields[
't.debit'][
'checked'])) {
861 print
'<td class="liste_titre right"><input type="text" class="flat" name="search_debit" size="4" value="'.dol_escape_htmltag($search_debit).
'"></td>';
864if (!empty($arrayfields[
't.credit'][
'checked'])) {
865 print
'<td class="liste_titre right"><input type="text" class="flat" name="search_credit" size="4" value="'.dol_escape_htmltag($search_credit).
'"></td>';
868if (!empty($arrayfields[
't.balance'][
'checked'])) {
872if (!empty($arrayfields[
't.date_export'][
'checked'])) {
873 print
'<td class="liste_titre center">';
874 print
'<div class="nowrapfordate">';
875 print $form->selectDate($search_date_export_start,
'search_date_export_start', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
"From"));
877 print
'<div class="nowrapfordate">';
878 print $form->selectDate($search_date_export_end,
'search_date_export_end', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
"to"));
883if (!empty($arrayfields[
't.date_validated'][
'checked'])) {
884 print
'<td class="liste_titre center">';
885 print
'<div class="nowrapfordate">';
886 print $form->selectDate($search_date_validation_start,
'search_date_validation_start', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
"From"));
888 print
'<div class="nowrapfordate">';
889 print $form->selectDate($search_date_validation_end,
'search_date_validation_end', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
"to"));
893if (!empty($arrayfields[
't.import_key'][
'checked'])) {
894 print
'<td class="liste_titre center">';
895 print
'<input class="flat searchstring maxwidth50" type="text" name="search_import_key" value="'.dol_escape_htmltag($search_import_key).
'">';
900$parameters = array(
'arrayfields'=>$arrayfields);
901$reshook = $hookmanager->executeHooks(
'printFieldListOption', $parameters);
902print $hookmanager->resPrint;
906 print
'<td class="liste_titre center">';
907 $searchpicto = $form->showFilterButtons();
913print
'<tr class="liste_titre">';
915 print_liste_field_titre($selectedfields, $_SERVER[
"PHP_SELF"],
"",
'',
'',
'', $sortfield, $sortorder,
'center maxwidthsearch ');
917if (!empty($arrayfields[
't.piece_num'][
'checked'])) {
918 print_liste_field_titre($arrayfields[
't.piece_num'][
'label'], $_SERVER[
'PHP_SELF'],
"t.piece_num",
"", $param,
'', $sortfield, $sortorder,
'tdoverflowmax80imp ');
920if (!empty($arrayfields[
't.code_journal'][
'checked'])) {
921 print_liste_field_titre($arrayfields[
't.code_journal'][
'label'], $_SERVER[
'PHP_SELF'],
"t.code_journal",
"", $param,
'', $sortfield, $sortorder,
'center ');
923if (!empty($arrayfields[
't.doc_date'][
'checked'])) {
924 print_liste_field_titre($arrayfields[
't.doc_date'][
'label'], $_SERVER[
'PHP_SELF'],
"t.doc_date",
"", $param,
'', $sortfield, $sortorder,
'center ');
926if (!empty($arrayfields[
't.doc_ref'][
'checked'])) {
927 print_liste_field_titre($arrayfields[
't.doc_ref'][
'label'], $_SERVER[
'PHP_SELF'],
"t.doc_ref",
"", $param,
"", $sortfield, $sortorder);
929if (!empty($arrayfields[
't.label_operation'][
'checked'])) {
930 print_liste_field_titre($arrayfields[
't.label_operation'][
'label'], $_SERVER[
'PHP_SELF'],
"t.label_operation",
"", $param,
"", $sortfield, $sortorder);
932if (!empty($arrayfields[
't.lettering_code'][
'checked'])) {
933 print_liste_field_titre($arrayfields[
't.lettering_code'][
'label'], $_SERVER[
'PHP_SELF'],
"t.lettering_code",
"", $param,
'', $sortfield, $sortorder,
'center ');
935if (!empty($arrayfields[
't.debit'][
'checked'])) {
936 print_liste_field_titre($arrayfields[
't.debit'][
'label'], $_SERVER[
'PHP_SELF'],
"t.debit",
"", $param,
'', $sortfield, $sortorder,
'right ');
938if (!empty($arrayfields[
't.credit'][
'checked'])) {
939 print_liste_field_titre($arrayfields[
't.credit'][
'label'], $_SERVER[
'PHP_SELF'],
"t.credit",
"", $param,
'', $sortfield, $sortorder,
'right ');
941if (!empty($arrayfields[
't.balance'][
'checked'])) {
942 print_liste_field_titre($arrayfields[
't.balance'][
'label'],
"",
"",
"", $param,
'', $sortfield, $sortorder,
'right ');
944if (!empty($arrayfields[
't.date_export'][
'checked'])) {
945 print_liste_field_titre($arrayfields[
't.date_export'][
'label'], $_SERVER[
'PHP_SELF'],
"t.date_export",
"", $param,
'', $sortfield, $sortorder,
'center ');
947if (!empty($arrayfields[
't.date_validated'][
'checked'])) {
948 print_liste_field_titre($arrayfields[
't.date_validated'][
'label'], $_SERVER[
'PHP_SELF'],
"t.date_validated",
"", $param,
'', $sortfield, $sortorder,
'center ');
950if (!empty($arrayfields[
't.import_key'][
'checked'])) {
951 print_liste_field_titre($arrayfields[
't.import_key'][
'label'], $_SERVER[
"PHP_SELF"],
"t.import_key",
"", $param,
'', $sortfield, $sortorder,
'center ');
954$parameters = array(
'arrayfields'=>$arrayfields,
'param'=>$param,
'sortfield'=>$sortfield,
'sortorder'=>$sortorder);
955$reshook = $hookmanager->executeHooks(
'printFieldListTitle', $parameters);
956print $hookmanager->resPrint;
958 print_liste_field_titre($selectedfields, $_SERVER[
"PHP_SELF"],
"",
'',
'',
'', $sortfield, $sortorder,
'center maxwidthsearch ');
962$displayed_account_number =
null;
968$totalarray = array();
969$totalarray[
'val'] = array();
970$totalarray[
'nbfield'] = 0;
973$sous_total_debit = 0;
974$sous_total_credit = 0;
975$totalarray[
'val'][
'totaldebit'] = 0;
976$totalarray[
'val'][
'totalcredit'] = 0;
977$totalarray[
'val'][
'totalbalance']=0;
979while ($i < min($num, $limit)) {
980 $line = $object->lines[$i];
982 $total_debit += $line->debit;
983 $total_credit += $line->credit;
985 if ($type ==
'sub') {
997 if (!empty($arrayfields[
't.piece_num'][
'checked'])) {
1000 if (!empty($arrayfields[
't.code_journal'][
'checked'])) {
1003 if (!empty($arrayfields[
't.doc_date'][
'checked'])) {
1006 if (!empty($arrayfields[
't.doc_ref'][
'checked'])) {
1009 if (!empty($arrayfields[
't.label_operation'][
'checked'])) {
1012 if (!empty($arrayfields[
't.lettering_code'][
'checked'])) {
1016 if (!empty($arrayfields[
't.balance'][
'checked'])) {
1019 if (!empty($arrayfields[
't.date_export'][
'checked'])) {
1022 if (!empty($arrayfields[
't.date_validated'][
'checked'])) {
1025 if (!empty($arrayfields[
't.lettering_code'][
'checked'])) {
1028 if (!empty($arrayfields[
't.import_key'][
'checked'])) {
1037 if ($accountg != $displayed_account_number || !isset($displayed_account_number)) {
1039 if (isset($displayed_account_number)) {
1040 print
'<tr class="liste_total">';
1041 if ($type ==
'sub') {
1042 print
'<td class="right" colspan="' . $colspan .
'">' . $langs->trans(
"TotalForAccount") .
' ' .
length_accounta($displayed_account_number) .
':</td>';
1044 print
'<td class="right" colspan="' . $colspan .
'">' . $langs->trans(
"TotalForAccount") .
' ' .
length_accountg($displayed_account_number) .
':</td>';
1046 print
'<td class="nowrap right">'.price(
price2num($sous_total_debit,
'MT')).
'</td>';
1047 print
'<td class="nowrap right">'.price(
price2num($sous_total_credit,
'MT')).
'</td>';
1048 if ($colspanend > 0) {
1049 print
'<td colspan="'.$colspanend.
'"></td>';
1053 $balance = $sous_total_debit - $sous_total_credit;
1054 print
'<tr class="liste_total">';
1055 print
'<td class="right" colspan="'.$colspan.
'">'.$langs->trans(
"Balance").
':</td>';
1057 print
'<td class="nowraponall right">';
1058 print
price(
price2num($sous_total_debit - $sous_total_credit,
'MT'));
1063 print
'<td class="nowraponall right">';
1064 print
price(
price2num($sous_total_credit - $sous_total_debit,
'MT'));
1067 if ($colspanend > 0) {
1068 print
'<td colspan="'.$colspanend.
'"></td>';
1074 print
'<tr class="trforbreak">';
1075 print
'<td colspan="'.($totalarray[
'nbfield'] ? $totalarray[
'nbfield'] : count($arrayfields)+1).
'" class="tdforbreak">';
1076 if ($type ==
'sub') {
1077 if ($line->subledger_account !=
"" && $line->subledger_account !=
'-1') {
1078 print empty($line->subledger_label) ?
'<span class="error">'.$langs->trans(
"Unknown").
'</span>' : $line->subledger_label;
1083 print
'<span class="error">' . $langs->trans(
"Unknown");
1084 if ($line->subledger_label) {
1085 print
' (' . $line->subledger_label .
')';
1086 $htmltext =
'EmptyStringForSubledgerAccountButSubledgerLabelDefined';
1088 $htmltext =
'EmptyStringForSubledgerAccountAndSubledgerLabel';
1090 print $form->textwithpicto(
'', $htmltext);
1094 if ($line->numero_compte !=
"" && $line->numero_compte !=
'-1') {
1095 print
length_accountg($line->numero_compte) .
' : ' . $object->get_compte_desc($line->numero_compte);
1097 print
'<span class="error">' . $langs->trans(
"Unknown") .
'</span>';
1103 $displayed_account_number = $accountg;
1105 $sous_total_debit = 0;
1106 $sous_total_credit = 0;
1111 print
'<tr class="oddeven">';
1114 print
'<td class="nowraponall center">';
1115 if (($massactionbutton || $massaction) && $contextpage !=
'poslist') {
1117 if (in_array($line->id, $arrayofselected)) {
1120 print
'<input id="cb' . $line->id .
'" class="flat checkforselect" type="checkbox" name="toselect[]" value="' . $line->id .
'"' . ($selected ?
' checked="checked"' :
'') .
' />';
1124 $totalarray[
'nbfield']++;
1128 if (!empty($arrayfields[
't.piece_num'][
'checked'])) {
1130 $object->id = $line->id;
1131 $object->piece_num = $line->piece_num;
1132 print $object->getNomUrl(1,
'', 0,
'', 1);
1135 $totalarray[
'nbfield']++;
1140 if (!empty($arrayfields[
't.code_journal'][
'checked'])) {
1142 $result = $accountingjournal->fetch(
'', $line->code_journal);
1143 $journaltoshow = (($result > 0) ? $accountingjournal->getNomUrl(0, 0, 0,
'', 0) : $line->code_journal);
1144 print
'<td class="center tdoverflowmax80">'.$journaltoshow.
'</td>';
1146 $totalarray[
'nbfield']++;
1151 if (!empty($arrayfields[
't.doc_date'][
'checked'])) {
1152 print
'<td class="center">'.dol_print_date($line->doc_date,
'day').
'</td>';
1154 $totalarray[
'nbfield']++;
1159 if (!empty($arrayfields[
't.doc_ref'][
'checked'])) {
1160 if ($line->doc_type ==
'customer_invoice') {
1161 $langs->loadLangs(array(
'bills'));
1163 require_once DOL_DOCUMENT_ROOT.
'/compta/facture/class/facture.class.php';
1164 $objectstatic =
new Facture($db);
1165 $objectstatic->fetch($line->fk_doc);
1170 $urlsource = $_SERVER[
'PHP_SELF'].
'?id='.$objectstatic->id;
1171 $documentlink = $formfile->getDocumentsLink($objectstatic->element, $filename, $filedir);
1172 } elseif ($line->doc_type ==
'supplier_invoice') {
1173 $langs->loadLangs(array(
'bills'));
1175 require_once DOL_DOCUMENT_ROOT.
'/fourn/class/fournisseur.facture.class.php';
1177 $objectstatic->fetch($line->fk_doc);
1181 $filedir = $conf->fournisseur->facture->dir_output.
'/'.
get_exdir($line->fk_doc, 2, 0, 0, $objectstatic, $modulepart).dol_sanitizeFileName($line->doc_ref);
1182 $subdir =
get_exdir($objectstatic->id, 2, 0, 0, $objectstatic, $modulepart).dol_sanitizeFileName($line->doc_ref);
1183 $documentlink = $formfile->getDocumentsLink($objectstatic->element, $subdir, $filedir);
1184 } elseif ($line->doc_type ==
'expense_report') {
1185 $langs->loadLangs(array(
'trips'));
1187 require_once DOL_DOCUMENT_ROOT.
'/expensereport/class/expensereport.class.php';
1189 $objectstatic->fetch($line->fk_doc);
1194 $urlsource = $_SERVER[
'PHP_SELF'].
'?id='.$objectstatic->id;
1195 $documentlink = $formfile->getDocumentsLink($objectstatic->element, $filename, $filedir);
1196 } elseif ($line->doc_type ==
'bank') {
1197 require_once DOL_DOCUMENT_ROOT.
'/compta/bank/class/account.class.php';
1199 $objectstatic->fetch($line->fk_doc);
1204 print
'<td class="tdoverflowmax250">';
1207 if ($line->doc_type ==
'customer_invoice' || $line->doc_type ==
'supplier_invoice' || $line->doc_type ==
'expense_report') {
1208 print $objectstatic->getNomUrl(1,
'', 0, 0,
'', 0, -1, 1);
1209 print $documentlink;
1210 } elseif ($line->doc_type ==
'bank') {
1211 print $objectstatic->getNomUrl(1);
1212 $bank_ref = strstr($line->doc_ref,
'-');
1213 print
" " . $bank_ref;
1215 print $line->doc_ref;
1220 $totalarray[
'nbfield']++;
1225 if (!empty($arrayfields[
't.label_operation'][
'checked'])) {
1227 $doc_ref = preg_replace(
'/\(.*\)/',
'', $line->doc_ref);
1229 print
'<td class="small tdoverflowmax350 classfortooltip" title="'.dol_escape_htmltag($line->label_operation).
'">'.
dol_escape_htmltag($line->label_operation).
'</td>';
1231 print
'<td class="small tdoverflowmax350 classfortooltip" title="'.dol_escape_htmltag($line->label_operation.($line->label_operation?
'<br>':
'').
'<span style="font-size:0.8em">('.
length_accounta($line->subledger_account).
')').
'">'.
dol_escape_htmltag($line->label_operation).($line->label_operation?
'<br>':
'').
'<span style="font-size:0.8em">('.
dol_escape_htmltag(
length_accounta($line->subledger_account)).
')</span></td>';
1234 $totalarray[
'nbfield']++;
1239 if (!empty($arrayfields[
't.lettering_code'][
'checked'])) {
1240 print
'<td class="center">'.dol_escape_htmltag($line->lettering_code).
'</td>';
1242 $totalarray[
'nbfield']++;
1247 if (!empty($arrayfields[
't.debit'][
'checked'])) {
1248 print
'<td class="right nowraponall amount">'.($line->debit != 0 ?
price($line->debit) :
'').
'</td>';
1250 $totalarray[
'nbfield']++;
1253 $totalarray[
'pos'][$totalarray[
'nbfield']] =
'totaldebit';
1255 $totalarray[
'val'][
'totaldebit'] += $line->debit;
1259 if (!empty($arrayfields[
't.credit'][
'checked'])) {
1260 print
'<td class="right nowraponall amount">'.($line->credit != 0 ?
price($line->credit) :
'').
'</td>';
1262 $totalarray[
'nbfield']++;
1265 $totalarray[
'pos'][$totalarray[
'nbfield']] =
'totalcredit';
1267 $totalarray[
'val'][
'totalcredit'] += $line->credit;
1271 if (!empty($arrayfields[
't.balance'][
'checked'])) {
1272 print
'<td class="right nowraponall amount">'.price(
price2num($sous_total_debit + $line->debit - $sous_total_credit - $line->credit,
'MT')).
'</td>';
1274 $totalarray[
'nbfield']++;
1277 $totalarray[
'pos'][$totalarray[
'nbfield']] =
'totalbalance';
1279 $totalarray[
'val'][
'totalbalance'] += $line->debit - $line->credit;
1283 if (!empty($arrayfields[
't.date_export'][
'checked'])) {
1284 print
'<td class="center">'.dol_print_date($line->date_export,
'dayhour').
'</td>';
1286 $totalarray[
'nbfield']++;
1291 if (!empty($arrayfields[
't.date_validated'][
'checked'])) {
1292 print
'<td class="center">'.dol_print_date($line->date_validation,
'dayhour').
'</td>';
1294 $totalarray[
'nbfield']++;
1298 if (!empty($arrayfields[
't.import_key'][
'checked'])) {
1299 print
'<td class="tdoverflowmax125" title="'.dol_escape_htmltag($line->import_key).
'">'.
dol_escape_htmltag($line->import_key).
"</td>\n";
1301 $totalarray[
'nbfield']++;
1306 $parameters = array(
'arrayfields'=>$arrayfields,
'obj'=>$line);
1307 $reshook = $hookmanager->executeHooks(
'printFieldListValue', $parameters);
1308 print $hookmanager->resPrint;
1312 print
'<td class="nowraponall center">';
1313 if (($massactionbutton || $massaction) && $contextpage !=
'poslist') {
1315 if (in_array($line->id, $arrayofselected)) {
1318 print
'<input id="cb' . $line->id .
'" class="flat checkforselect" type="checkbox" name="toselect[]" value="' . $line->id .
'"' . ($selected ?
' checked="checked"' :
'') .
' />';
1322 $totalarray[
'nbfield']++;
1327 $sous_total_debit += $line->debit;
1328 $sous_total_credit += $line->credit;
1335if ($num > 0 && $colspan > 0) {
1336 print
'<tr class="liste_total">';
1337 print
'<td class="right" colspan="'.$colspan.
'">'.$langs->trans(
"TotalForAccount").
' '.$accountg.
':</td>';
1338 print
'<td class="nowrap right">'.price(
price2num($sous_total_debit,
'MT')).
'</td>';
1339 print
'<td class="nowrap right">'.price(
price2num($sous_total_credit,
'MT')).
'</td>';
1340 if ($colspanend > 0) {
1341 print
'<td colspan="'.$colspanend.
'"></td>';
1345 $balance = $sous_total_debit - $sous_total_credit;
1346 print
'<tr class="liste_total">';
1347 print
'<td class="right" colspan="'.$colspan.
'">'.$langs->trans(
"Balance").
':</td>';
1349 print
'<td class="nowraponall right">';
1350 print
price(
price2num($sous_total_debit - $sous_total_credit,
'MT'));
1355 print
'<td class="nowraponall right">';
1356 print
price(
price2num($sous_total_credit - $sous_total_debit,
'MT'));
1359 if ($colspanend > 0) {
1360 print
'<td colspan="'.$colspanend.
'"></td>';
1367if (!empty($totalarray[
'val'][
'totaldebit'])) {
1368 $totalarray[
'val'][
'totaldebit'] =
price2num($totalarray[
'val'][
'totaldebit'],
'MT');
1370if (!empty($totalarray[
'val'][
'totalcredit'])) {
1371 $totalarray[
'val'][
'totalcredit'] =
price2num($totalarray[
'val'][
'totalcredit'],
'MT');
1373if (!empty($totalarray[
'val'][
'totalbalance'])) {
1374 $totalarray[
'val'][
'totalbalance'] =
price2num($totalarray[
'val'][
'totaldebit'] - $totalarray[
'val'][
'totalcredit'],
'MT');
1378include DOL_DOCUMENT_ROOT.
'/core/tpl/list_print_total.tpl.php';
1383 foreach ($arrayfields as $key => $val) {
1384 if (!empty($val[
'checked'])) {
1388 print
'<tr><td colspan="'.$colspan.
'"><span class="opacitymedium">'.$langs->trans(
"NoRecordFound").
'</span></td></tr>';
1391$parameters = array(
'arrayfields'=>$arrayfields);
1392$reshook = $hookmanager->executeHooks(
'printFieldListFooter', $parameters, $object, $action);
1393print $hookmanager->resPrint;
length_accountg($account)
Return General accounting account with defined length (used for product and miscellaneous)
length_accounta($accounta)
Return Auxiliary accounting account of thirdparties with defined length.
if(!defined('NOREQUIRESOC')) if(!defined( 'NOREQUIRETRAN')) if(!defined('NOTOKENRENEWAL')) if(!defined( 'NOREQUIREMENU')) if(!defined('NOREQUIREHTML')) if(!defined( 'NOREQUIREAJAX')) llxHeader()
Empty header.
Class to manage bank transaction lines.
Class to manage categories of an accounting account.
Class to manage accounting journals.
Class to manage Ledger (General Ledger and Subledger)
Class to manage Trips and Expenses.
Class to manage suppliers invoices.
Class to manage invoices.
dol_get_last_day($year, $month=12, $gm=false)
Return GMT time for last day of a month or year.
dol_mktime($hour, $minute, $second, $month, $day, $year, $gm='auto', $check=1)
Return a timestamp date built from detailed informations (by default a local PHP server timestamp) Re...
price2num($amount, $rounding='', $option=0)
Function that return a number with universal decimal format (decimal separator is '.
dolGetButtonTitle($label, $helpText='', $iconClass='fa fa-file', $url='', $id='', $status=1, $params=array())
Function dolGetButtonTitle : this kind of buttons are used in title in list.
price($amount, $form=0, $outlangs='', $trunc=1, $rounding=-1, $forcerounding=-1, $currency_code='')
Function to format a value into an amount for visual output Function used into PDF and HTML pages.
dol_print_date($time, $format='', $tzoutput='auto', $outputlangs='', $encodetooutput=false)
Output date in a string format according to outputlangs (or langs if not defined).
dol_now($mode='auto')
Return date for now.
getDolGlobalInt($key, $default=0)
Return a Dolibarr global constant int value.
img_picto($titlealt, $picto, $moreatt='', $pictoisfullpath=false, $srconly=0, $notitle=0, $alt='', $morecss='', $marginleftonlyshort=2)
Show picto whatever it's its name (generic function)
print_liste_field_titre($name, $file="", $field="", $begin="", $moreparam="", $moreattrib="", $sortfield="", $sortorder="", $prefix="", $tooltip="", $forcenowrapcolumntitle=0)
Show title line of an array.
dolGetButtonTitleSeparator($moreClass="")
Add space between dolGetButtonTitle.
GETPOST($paramname, $check='alphanohtml', $method=0, $filter=null, $options=null, $noreplace=0)
Return value of a param into GET or POST supervariable.
info_admin($text, $infoonimgalt=0, $nodiv=0, $admin='1', $morecss='hideonsmartphone', $textfordropdown='')
Show information for admin users or standard users.
setEventMessages($mesg, $mesgs, $style='mesgs', $messagekey='', $noduplicate=0)
Set event messages in dol_events session object.
print_barre_liste($titre, $page, $file, $options='', $sortfield='', $sortorder='', $morehtmlcenter='', $num=-1, $totalnboflines='', $picto='generic', $pictoisfullpath=0, $morehtmlright='', $morecss='', $limit=-1, $hideselectlimit=0, $hidenavigation=0, $pagenavastextinput=0, $morehtmlrightbeforearrow='')
Print a title with navigation controls for pagination.
dol_sanitizeFileName($str, $newstr='_', $unaccent=1)
Clean a string to use it as a file name.
getDolGlobalString($key, $default='')
Return dolibarr global constant string value.
get_exdir($num, $level, $alpha, $withoutslash, $object, $modulepart='')
Return a path to have a the directory according to object where files are stored.
dol_getdate($timestamp, $fast=false, $forcetimezone='')
Return an array with locale date info.
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...
$formconfirm
if ($action == 'delbookkeepingyear') {
if(preg_match('/crypted:/i', $dolibarr_main_db_pass)||!empty($dolibarr_main_db_encrypted_pass)) $conf db type
accessforbidden($message='', $printheader=1, $printfooter=1, $showonlymessage=0, $params=null)
Show a message to say access is forbidden and stop program.