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->rights->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");
562 if (empty($conf->global->MAIN_DISABLE_FULL_SCANLIST)) {
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);
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='.urlencode($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++; }
956 if ($accountg != $displayed_account_number || !isset($displayed_account_number)) {
958 if (isset($displayed_account_number)) {
959 print
'<tr class="liste_total">';
960 if ($type ==
'sub') {
961 print
'<td class="right" colspan="' . $colspan .
'">' . $langs->trans(
"TotalForAccount") .
' ' .
length_accounta($displayed_account_number) .
':</td>';
963 print
'<td class="right" colspan="' . $colspan .
'">' . $langs->trans(
"TotalForAccount") .
' ' .
length_accountg($displayed_account_number) .
':</td>';
965 print
'<td class="nowrap right">'.price(
price2num($sous_total_debit,
'MT')).
'</td>';
966 print
'<td class="nowrap right">'.price(
price2num($sous_total_credit,
'MT')).
'</td>';
967 print
'<td colspan="'.$colspanend.
'"></td>';
970 $balance = $sous_total_debit - $sous_total_credit;
971 print
'<tr class="liste_total">';
972 print
'<td class="right" colspan="'.$colspan.
'">'.$langs->trans(
"Balance").
':</td>';
974 print
'<td class="nowraponall right">';
975 print
price(
price2num($sous_total_debit - $sous_total_credit,
'MT'));
980 print
'<td class="nowraponall right">';
981 print
price(
price2num($sous_total_credit - $sous_total_debit,
'MT'));
984 print
'<td colspan="'.$colspanend.
'"></td>';
989 print
'<tr class="trforbreak">';
990 print
'<td colspan="'.($totalarray[
'nbfield'] ? $totalarray[
'nbfield'] : count($arrayfields)+1).
'" class="tdforbreak">';
991 if ($type ==
'sub') {
992 if ($line->subledger_account !=
"" && $line->subledger_account !=
'-1') {
993 print $line->subledger_label .
' : ' .
length_accounta($line->subledger_account);
996 print
'<span class="error">' . $langs->trans(
"Unknown");
997 if ($line->subledger_label) {
998 print
' (' . $line->subledger_label .
')';
999 $htmltext =
'EmptyStringForSubledgerAccountButSubledgerLabelDefined';
1001 $htmltext =
'EmptyStringForSubledgerAccountAndSubledgerLabel';
1003 print
$form->textwithpicto(
'', $htmltext);
1007 if ($line->numero_compte !=
"" && $line->numero_compte !=
'-1') {
1008 print
length_accountg($line->numero_compte) .
' : ' . $object->get_compte_desc($line->numero_compte);
1010 print
'<span class="error">' . $langs->trans(
"Unknown") .
'</span>';
1016 $displayed_account_number = $accountg;
1018 $sous_total_debit = 0;
1019 $sous_total_credit = 0;
1024 print
'<tr class="oddeven">';
1027 print
'<td class="nowraponall center">';
1028 if (($massactionbutton || $massaction) && $contextpage !=
'poslist') {
1030 if (in_array($line->id, $arrayofselected)) {
1033 print
'<input id="cb' . $line->id .
'" class="flat checkforselect" type="checkbox" name="toselect[]" value="' . $line->id .
'"' . ($selected ?
' checked="checked"' :
'') .
' />';
1038 if (!empty($arrayfields[
't.piece_num'][
'checked'])) {
1040 $object->id = $line->id;
1041 $object->piece_num = $line->piece_num;
1042 print $object->getNomUrl(1,
'', 0,
'', 1);
1045 $totalarray[
'nbfield']++;
1050 if (!empty($arrayfields[
't.code_journal'][
'checked'])) {
1052 $result = $accountingjournal->fetch(
'', $line->code_journal);
1053 $journaltoshow = (($result > 0) ? $accountingjournal->getNomUrl(0, 0, 0,
'', 0) : $line->code_journal);
1054 print
'<td class="center tdoverflowmax80">'.$journaltoshow.
'</td>';
1056 $totalarray[
'nbfield']++;
1061 if (!empty($arrayfields[
't.doc_date'][
'checked'])) {
1062 print
'<td class="center">'.dol_print_date($line->doc_date,
'day').
'</td>';
1064 $totalarray[
'nbfield']++;
1069 if (!empty($arrayfields[
't.doc_ref'][
'checked'])) {
1070 if ($line->doc_type ==
'customer_invoice') {
1071 $langs->loadLangs(array(
'bills'));
1073 require_once DOL_DOCUMENT_ROOT.
'/compta/facture/class/facture.class.php';
1074 $objectstatic =
new Facture($db);
1075 $objectstatic->fetch($line->fk_doc);
1080 $urlsource = $_SERVER[
'PHP_SELF'].
'?id='.$objectstatic->id;
1081 $documentlink = $formfile->getDocumentsLink($objectstatic->element, $filename, $filedir);
1082 } elseif ($line->doc_type ==
'supplier_invoice') {
1083 $langs->loadLangs(array(
'bills'));
1085 require_once DOL_DOCUMENT_ROOT.
'/fourn/class/fournisseur.facture.class.php';
1087 $objectstatic->fetch($line->fk_doc);
1091 $filedir = $conf->fournisseur->facture->dir_output.
'/'.
get_exdir($line->fk_doc, 2, 0, 0, $objectstatic, $modulepart).dol_sanitizeFileName($line->doc_ref);
1092 $subdir =
get_exdir($objectstatic->id, 2, 0, 0, $objectstatic, $modulepart).dol_sanitizeFileName($line->doc_ref);
1093 $documentlink = $formfile->getDocumentsLink($objectstatic->element, $subdir, $filedir);
1094 } elseif ($line->doc_type ==
'expense_report') {
1095 $langs->loadLangs(array(
'trips'));
1097 require_once DOL_DOCUMENT_ROOT.
'/expensereport/class/expensereport.class.php';
1099 $objectstatic->fetch($line->fk_doc);
1104 $urlsource = $_SERVER[
'PHP_SELF'].
'?id='.$objectstatic->id;
1105 $documentlink = $formfile->getDocumentsLink($objectstatic->element, $filename, $filedir);
1106 } elseif ($line->doc_type ==
'bank') {
1107 require_once DOL_DOCUMENT_ROOT.
'/compta/bank/class/account.class.php';
1109 $objectstatic->fetch($line->fk_doc);
1114 print
'<td class="maxwidth400">';
1116 print
'<table class="nobordernopadding"><tr class="nocellnopadd">';
1118 print
'<td class="nobordernopadding">';
1120 if ($line->doc_type ==
'customer_invoice' || $line->doc_type ==
'supplier_invoice' || $line->doc_type ==
'expense_report') {
1121 print $objectstatic->getNomUrl(1,
'', 0, 0,
'', 0, -1, 1);
1122 print $documentlink;
1123 } elseif ($line->doc_type ==
'bank') {
1124 print $objectstatic->getNomUrl(1);
1125 $bank_ref = strstr($line->doc_ref,
'-');
1126 print
" " . $bank_ref;
1128 print $line->doc_ref;
1130 print
'</td></tr></table>';
1134 $totalarray[
'nbfield']++;
1139 if (!empty($arrayfields[
't.label_operation'][
'checked'])) {
1141 $doc_ref = preg_replace(
'/\(.*\)/',
'', $line->doc_ref);
1142 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>';
1144 $totalarray[
'nbfield']++;
1149 if (!empty($arrayfields[
't.debit'][
'checked'])) {
1150 print
'<td class="right nowraponall amount">'.($line->debit != 0 ?
price($line->debit) :
'').
'</td>';
1152 $totalarray[
'nbfield']++;
1155 $totalarray[
'pos'][$totalarray[
'nbfield']] =
'totaldebit';
1157 $totalarray[
'val'][
'totaldebit'] += $line->debit;
1161 if (!empty($arrayfields[
't.credit'][
'checked'])) {
1162 print
'<td class="right nowraponall amount">'.($line->credit != 0 ?
price($line->credit) :
'').
'</td>';
1164 $totalarray[
'nbfield']++;
1167 $totalarray[
'pos'][$totalarray[
'nbfield']] =
'totalcredit';
1169 $totalarray[
'val'][
'totalcredit'] += $line->credit;
1173 if (!empty($arrayfields[
't.lettering_code'][
'checked'])) {
1174 print
'<td class="center">'.$line->lettering_code.
'</td>';
1176 $totalarray[
'nbfield']++;
1181 if (!empty($arrayfields[
't.date_export'][
'checked'])) {
1182 print
'<td class="center">'.dol_print_date($line->date_export,
'dayhour').
'</td>';
1184 $totalarray[
'nbfield']++;
1189 if (!empty($arrayfields[
't.date_validated'][
'checked'])) {
1190 print
'<td class="center">'.dol_print_date($line->date_validation,
'dayhour').
'</td>';
1192 $totalarray[
'nbfield']++;
1196 if (!empty($arrayfields[
't.import_key'][
'checked'])) {
1197 print
'<td class="tdoverflowmax100">'.$line->import_key.
"</td>\n";
1199 $totalarray[
'nbfield']++;
1204 $parameters = array(
'arrayfields'=>$arrayfields,
'obj'=>$line);
1205 $reshook = $hookmanager->executeHooks(
'printFieldListValue', $parameters);
1206 print $hookmanager->resPrint;
1210 print
'<td class="nowraponall center">';
1211 if (($massactionbutton || $massaction) && $contextpage !=
'poslist') {
1213 if (in_array($line->id, $arrayofselected)) {
1216 print
'<input id="cb' . $line->id .
'" class="flat checkforselect" type="checkbox" name="toselect[]" value="' . $line->id .
'"' . ($selected ?
' checked="checked"' :
'') .
' />';
1221 $totalarray[
'nbfield']++;
1225 $sous_total_debit += $line->debit;
1226 $sous_total_credit += $line->credit;
1233 if ($num > 0 && $colspan > 0) {
1234 print
'<tr class="liste_total">';
1235 print
'<td class="right" colspan="'.$colspan.
'">'.$langs->trans(
"TotalForAccount").
' '.$accountg.
':</td>';
1236 print
'<td class="nowrap right">'.price(
price2num($sous_total_debit,
'MT')).
'</td>';
1237 print
'<td class="nowrap right">'.price(
price2num($sous_total_credit,
'MT')).
'</td>';
1238 print
'<td colspan="'.$colspanend.
'"></td>';
1241 $balance = $sous_total_debit - $sous_total_credit;
1242 print
'<tr class="liste_total">';
1243 print
'<td class="right" colspan="'.$colspan.
'">'.$langs->trans(
"Balance").
':</td>';
1245 print
'<td class="nowraponall right">';
1246 print
price(
price2num($sous_total_debit - $sous_total_credit,
'MT'));
1251 print
'<td class="nowraponall right">';
1252 print
price(
price2num($sous_total_credit - $sous_total_debit,
'MT'));
1255 print
'<td colspan="'.$colspanend.
'"></td>';
1261 if (!empty($totalarray[
'val'][
'totaldebit'])) {
1262 $totalarray[
'val'][
'totaldebit'] =
price2num($totalarray[
'val'][
'totaldebit'],
'MT');
1264 if (!empty($totalarray[
'val'][
'totalcredit'])) {
1265 $totalarray[
'val'][
'totalcredit'] =
price2num($totalarray[
'val'][
'totalcredit'],
'MT');
1270 include DOL_DOCUMENT_ROOT.
'/core/tpl/list_print_total.tpl.php';
1275 foreach ($arrayfields as $key => $val) {
1276 if (!empty($val[
'checked'])) {
1280 print
'<tr><td colspan="'.$colspan.
'"><span class="opacitymedium">'.$langs->trans(
"NoRecordFound").
'</span></td></tr>';
1283 $parameters = array(
'arrayfields'=>$arrayfields,
'sql'=>$sql);
1284 $reshook = $hookmanager->executeHooks(
'printFieldListFooter', $parameters, $object, $action);
1285 print $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 accounts.
Class to manage Ledger (General Ledger and Subledger)
Class to manage Trips and Expenses.
Class to manage suppliers invoices.
Class to manage invoices.
if($cancel &&! $id) if($action=='add' &&! $cancel) if($action=='delete') if($id) $form
Actions.
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.
setEventMessages($mesg, $mesgs, $style='mesgs', $messagekey='')
Set event messages in dol_events session object.
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 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.
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.
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.
if(!function_exists('utf8_encode')) if(!function_exists('utf8_decode')) getDolGlobalString($key, $default='')
Return dolibarr global constant string value.
dol_sanitizeFileName($str, $newstr='_', $unaccent=1)
Clean a string to use it as a file name.
GETPOSTISSET($paramname)
Return true if we are in a context of submitting the parameter $paramname from a POST of a form.
isModEnabled($module)
Is Dolibarr module enabled.
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.
$formconfirm
if ($action == 'delbookkeepingyear') {
$nbtotalofrecords
Count total nb of records.
accessforbidden($message='', $printheader=1, $printfooter=1, $showonlymessage=0, $params=null)
Show a message to say access is forbidden and stop program.