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';
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');
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);
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);
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),
175if (empty($conf->global->ACCOUNTING_ENABLE_LETTERING)) {
176 unset($arrayfields[
't.lettering_code']);
179if ($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'];
185if ($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'];
192if (!isModEnabled(
'accounting')) {
195if ($user->socid > 0) {
198if (!$user->hasRight(
'accounting',
'mouvements',
'lire')) {
211if (
GETPOST(
'cancel',
'alpha')) {
215if (!
GETPOST(
'confirmmassaction',
'alpha') && $massaction !=
'preunletteringauto' && $massaction !=
'preunletteringmanual' && $massaction !=
'predeletebookkeepingwriting') {
219$parameters = array(
'socid'=>$socid);
220$reshook = $hookmanager->executeHooks(
'doActions', $parameters, $object, $action);
225if (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[
'account_number']).
"'";
297 $filter[
't.search_accounting_code_in'] = join(
',', $listofaccountsforgroup2);
298 $param .=
'&search_account_category='.urlencode($search_account_category);
300 if (!empty($search_accountancy_code_start)) {
301 if ($type ==
'sub') {
302 $filter[
't.subledger_account>='] = $search_accountancy_code_start;
304 $filter[
't.numero_compte>='] = $search_accountancy_code_start;
306 $param .=
'&search_accountancy_code_start=' . urlencode($search_accountancy_code_start);
308 if (!empty($search_accountancy_code_end)) {
309 if ($type ==
'sub') {
310 $filter[
't.subledger_account<='] = $search_accountancy_code_end;
312 $filter[
't.numero_compte<='] = $search_accountancy_code_end;
314 $param .=
'&search_accountancy_code_end=' . urlencode($search_accountancy_code_end);
316 if (!empty($search_label_account)) {
317 $filter[
't.label_compte'] = $search_label_account;
318 $param .=
'&search_label_compte='.urlencode($search_label_account);
320 if (!empty($search_mvt_num)) {
321 $filter[
't.piece_num'] = $search_mvt_num;
322 $param .=
'&search_mvt_num='.urlencode($search_mvt_num);
324 if (!empty($search_doc_ref)) {
325 $filter[
't.doc_ref'] = $search_doc_ref;
326 $param .=
'&search_doc_ref='.urlencode($search_doc_ref);
328 if (!empty($search_label_operation)) {
329 $filter[
't.label_operation'] = $search_label_operation;
330 $param .=
'&search_label_operation='.urlencode($search_label_operation);
332 if (!empty($search_direction)) {
333 $filter[
't.sens'] = $search_direction;
334 $param .=
'&search_direction='.urlencode($search_direction);
336 if (!empty($search_ledger_code)) {
337 $filter[
't.code_journal'] = $search_ledger_code;
338 foreach ($search_ledger_code as $code) {
339 $param .=
'&search_ledger_code[]='.urlencode($code);
342 if (!empty($search_debit)) {
343 $filter[
't.debit'] = $search_debit;
344 $param .=
'&search_debit='.urlencode($search_debit);
346 if (!empty($search_credit)) {
347 $filter[
't.credit'] = $search_credit;
348 $param .=
'&search_credit='.urlencode($search_credit);
350 if (!empty($search_lettering_code)) {
351 $filter[
't.lettering_code'] = $search_lettering_code;
352 $param .=
'&search_lettering_code='.urlencode($search_lettering_code);
354 if (!empty($search_not_reconciled)) {
355 $filter[
't.reconciled_option'] = $search_not_reconciled;
356 $param .=
'&search_not_reconciled='.urlencode($search_not_reconciled);
358 if (!empty($search_date_export_start)) {
359 $filter[
't.date_export>='] = $search_date_export_start;
360 $param .=
'&search_date_export_startmonth='.$search_date_export_startmonth.
'&search_date_export_startday='.$search_date_export_startday.
'&search_date_export_startyear='.$search_date_export_startyear;
362 if (!empty($search_date_export_end)) {
363 $filter[
't.date_export<='] = $search_date_export_end;
364 $param .=
'&search_date_export_endmonth='.$search_date_export_endmonth.
'&search_date_export_endday='.$search_date_export_endday.
'&search_date_export_endyear='.$search_date_export_endyear;
366 if (!empty($search_date_validation_start)) {
367 $filter[
't.date_validated>='] = $search_date_validation_start;
368 $param .=
'&search_date_validation_startmonth='.$search_date_validation_startmonth.
'&search_date_validation_startday='.$search_date_validation_startday.
'&search_date_validation_startyear='.$search_date_validation_startyear;
370 if (!empty($search_date_validation_end)) {
371 $filter[
't.date_validated<='] = $search_date_validation_end;
372 $param .=
'&search_date_validation_endmonth='.$search_date_validation_endmonth.
'&search_date_validation_endday='.$search_date_validation_endday.
'&search_date_validation_endyear='.$search_date_validation_endyear;
374 if (!empty($search_import_key)) {
375 $filter[
't.import_key'] = $search_import_key;
376 $param .=
'&search_import_key='.urlencode($search_import_key);
379 $url_param = substr($param, 1);
381 $param =
'&type='.$type.$param;
412 $objectclass =
'Bookkeeping';
413 $objectlabel =
'Bookkeeping';
414 $permissiontoread = $user->hasRight(
'societe',
'lire');
415 $permissiontodelete = $user->hasRight(
'societe',
'supprimer');
416 $permissiontoadd = $user->hasRight(
'societe',
'creer');
417 $uploaddir = $conf->societe->dir_output;
418 include DOL_DOCUMENT_ROOT.
'/core/actions_massactions.inc.php';
420 if (!$error && $action ==
'deletebookkeepingwriting' && $confirm ==
"yes" && $user->hasRight(
'accounting',
'mouvements',
'supprimer')) {
425 $nb_lettering = $lettering->bookkeepingLetteringAll($toselect,
true);
426 if ($nb_lettering < 0) {
434 foreach ($toselect as $toselectid) {
435 $result = $object->fetch($toselectid);
436 if ($result > 0 && (!isset($object->date_validation) || $object->date_validation ===
'')) {
437 $result = $object->deleteMvtNum($object->piece_num);
445 } elseif ($result < 0) {
449 } elseif (isset($object->date_validation) && $object->date_validation !=
'') {
450 setEventMessages($langs->trans(
"ValidatedRecordWhereFound"),
null,
'errors');
463 } elseif ($nbok > 0) {
469 header(
"Location: ".$_SERVER[
"PHP_SELF"].
"?noreset=1".($param ?
'&'.$param :
''));
477 if (!$error &&
getDolGlobalInt(
'ACCOUNTING_ENABLE_LETTERING') && $user->hasRight(
'accounting',
'mouvements',
'creer')) {
478 if ($massaction ==
'letteringauto') {
480 $nb_lettering = $lettering->bookkeepingLetteringAll($toselect);
481 if ($nb_lettering < 0) {
484 $nb_lettering = max(0, abs($nb_lettering) - 2);
485 } elseif ($nb_lettering == 0) {
487 setEventMessages($langs->trans(
'AccountancyNoLetteringModified'), array(),
'mesgs');
489 if ($nb_lettering == 1) {
490 setEventMessages($langs->trans(
'AccountancyOneLetteringModifiedSuccessfully'), array(),
'mesgs');
491 } elseif ($nb_lettering > 1) {
492 setEventMessages($langs->trans(
'AccountancyLetteringModifiedSuccessfully', $nb_lettering), array(),
'mesgs');
496 header(
'Location: ' . $_SERVER[
'PHP_SELF'] .
'?noreset=1' . $param);
499 } elseif ($massaction ==
'letteringmanual') {
501 $result = $lettering->updateLettering($toselect);
505 setEventMessages($langs->trans(
'AccountancyOneLetteringModifiedSuccessfully'), array(),
'mesgs');
506 header(
'Location: ' . $_SERVER[
'PHP_SELF'] .
'?noreset=1' . $param);
509 } elseif ($action ==
'unletteringauto' && $confirm ==
"yes") {
511 $nb_lettering = $lettering->bookkeepingLetteringAll($toselect,
true);
512 if ($nb_lettering < 0) {
515 $nb_lettering = max(0, abs($nb_lettering) - 2);
516 } elseif ($nb_lettering == 0) {
518 setEventMessages($langs->trans(
'AccountancyNoUnletteringModified'), array(),
'mesgs');
520 if ($nb_lettering == 1) {
521 setEventMessages($langs->trans(
'AccountancyOneUnletteringModifiedSuccessfully'), array(),
'mesgs');
522 } elseif ($nb_lettering > 1) {
523 setEventMessages($langs->trans(
'AccountancyUnletteringModifiedSuccessfully', $nb_lettering), array(),
'mesgs');
527 header(
'Location: ' . $_SERVER[
'PHP_SELF'] .
'?noreset=1' . $param);
530 } elseif ($action ==
'unletteringmanual' && $confirm ==
"yes") {
532 $nb_lettering = $lettering->deleteLettering($toselect);
536 setEventMessages($langs->trans(
'AccountancyOneUnletteringModifiedSuccessfully'), array(),
'mesgs');
537 header(
'Location: ' . $_SERVER[
'PHP_SELF'] .
'?noreset=1' . $param);
552$form =
new Form($db);
554$title_page = $langs->trans(
"Operations").
' - '.$langs->trans(
"VueByAccountAccounting").
' (';
556 $title_page .= $langs->trans(
"BookkeepingSubAccount");
558 $title_page .= $langs->trans(
"Bookkeeping");
565$nbtotalofrecords =
'';
568 if ($type ==
'sub') {
569 $nbtotalofrecords = $object->fetchAllByAccount($sortorder, $sortfield, 0, 0, $filter,
'AND', 1, 1);
571 $nbtotalofrecords = $object->fetchAllByAccount($sortorder, $sortfield, 0, 0, $filter,
'AND', 0, 1);
574 if ($nbtotalofrecords < 0) {
581 if ($type ==
'sub') {
582 $result = $object->fetchAllByAccount($sortorder, $sortfield, $limit, $offset, $filter,
'AND', 1);
584 $result = $object->fetchAllByAccount($sortorder, $sortfield, $limit, $offset, $filter,
'AND', 0);
592$arrayofselected = is_array($toselect) ? $toselect : array();
594$num = count($object->lines);
642$arrayofmassactions = array();
643if (
getDolGlobalInt(
'ACCOUNTING_ENABLE_LETTERING') && $user->hasRight(
'accounting',
'mouvements',
'creer')) {
644 $arrayofmassactions[
'letteringauto'] =
img_picto(
'',
'check',
'class="pictofixedwidth"') . $langs->trans(
'LetteringAuto');
645 $arrayofmassactions[
'preunletteringauto'] =
img_picto(
'',
'uncheck',
'class="pictofixedwidth"') . $langs->trans(
'UnletteringAuto');
646 $arrayofmassactions[
'letteringmanual'] =
img_picto(
'',
'check',
'class="pictofixedwidth"') . $langs->trans(
'LetteringManual');
647 $arrayofmassactions[
'preunletteringmanual'] =
img_picto(
'',
'uncheck',
'class="pictofixedwidth"') . $langs->trans(
'UnletteringManual');
649if ($user->hasRight(
'accounting',
'mouvements',
'supprimer')) {
650 $arrayofmassactions[
'predeletebookkeepingwriting'] =
img_picto(
'',
'delete',
'class="pictofixedwidth"').$langs->trans(
"Delete");
652if (
GETPOST(
'nomassaction',
'int') || in_array($massaction, array(
'preunletteringauto',
'preunletteringmanual',
'predeletebookkeepingwriting'))) {
653 $arrayofmassactions = array();
655$massactionbutton = $form->selectMassAction($massaction, $arrayofmassactions);
657print
'<form method="POST" id="searchFormList" action="'.$_SERVER[
"PHP_SELF"].
'">';
658print
'<input type="hidden" name="token" value="'.newToken().
'">';
659print
'<input type="hidden" name="action" value="list">';
660if ($optioncss !=
'') {
661 print
'<input type="hidden" name="optioncss" value="'.$optioncss.
'">';
663print
'<input type="hidden" name="formfilteraction" id="formfilteraction" value="list">';
664print
'<input type="hidden" name="type" value="'.$type.
'">';
665print
'<input type="hidden" name="sortfield" value="'.$sortfield.
'">';
666print
'<input type="hidden" name="sortorder" value="'.$sortorder.
'">';
667print
'<input type="hidden" name="contextpage" value="'.$contextpage.
'">';
669$parameters = array(
'param' => $param);
670$reshook = $hookmanager->executeHooks(
'addMoreActionsButtonsList', $parameters, $object, $action);
675$newcardbutton = empty($hookmanager->resPrint) ?
'' : $hookmanager->resPrint;
677if (empty($reshook)) {
678 $newcardbutton =
dolGetButtonTitle($langs->trans(
'ViewFlatList'),
'',
'fa fa-list paddingleft imgforviewmode', DOL_URL_ROOT.
'/accountancy/bookkeeping/list.php?'.$param);
679 if ($type ==
'sub') {
680 $newcardbutton .=
dolGetButtonTitle($langs->trans(
'GroupByAccountAccounting'),
'',
'fa fa-stream paddingleft imgforviewmode', DOL_URL_ROOT .
'/accountancy/bookkeeping/listbyaccount.php?' . $url_param,
'', 1, array(
'morecss' =>
'marginleftonly'));
681 $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'));
683 $newcardbutton .=
dolGetButtonTitle($langs->trans(
'GroupByAccountAccounting'),
'',
'fa fa-stream paddingleft imgforviewmode', DOL_URL_ROOT .
'/accountancy/bookkeeping/listbyaccount.php?' . $url_param,
'', 1, array(
'morecss' =>
'marginleftonly btnTitleSelected'));
684 $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'));
686 $newcardbutton .=
dolGetButtonTitle($langs->trans(
'NewAccountingMvt'),
'',
'fa fa-plus-circle paddingleft', DOL_URL_ROOT.
'/accountancy/bookkeeping/card.php?action=create');
689if (!empty($contextpage) && $contextpage != $_SERVER[
"PHP_SELF"]) {
690 $param .=
'&contextpage='.urlencode($contextpage);
692if ($limit > 0 && $limit != $conf->liste_limit) {
693 $param .=
'&limit='.((int) $limit);
696print_barre_liste($title_page, $page, $_SERVER[
"PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $result, $nbtotalofrecords,
'title_accountancy', 0, $newcardbutton,
'', $limit, 0, 0, 1);
698if ($massaction ==
'preunletteringauto') {
699 print $form->formconfirm($_SERVER[
"PHP_SELF"], $langs->trans(
"ConfirmMassUnletteringAuto"), $langs->trans(
"ConfirmMassUnletteringQuestion", count($toselect)),
"unletteringauto",
null,
'', 0, 200, 500, 1);
700} elseif ($massaction ==
'preunletteringmanual') {
701 print $form->formconfirm($_SERVER[
"PHP_SELF"], $langs->trans(
"ConfirmMassUnletteringManual"), $langs->trans(
"ConfirmMassUnletteringQuestion", count($toselect)),
"unletteringmanual",
null,
'', 0, 200, 500, 1);
702} elseif ($massaction ==
'predeletebookkeepingwriting') {
703 print $form->formconfirm($_SERVER[
"PHP_SELF"], $langs->trans(
"ConfirmMassDeleteBookkeepingWriting"), $langs->trans(
"ConfirmMassDeleteBookkeepingWritingQuestion", count($toselect)),
"deletebookkeepingwriting",
null,
'', 0, 200, 500, 1);
716include DOL_DOCUMENT_ROOT.
'/core/tpl/massactions_pre.tpl.php';
718$varpage = empty($contextpage) ? $_SERVER[
"PHP_SELF"] : $contextpage;
719$selectedfields = $form->multiSelectArrayWithCheckbox(
'selectedfields', $arrayfields, $varpage,
getDolGlobalString(
'MAIN_CHECKBOX_LEFT_COLUMN'));
720if ($massactionbutton && $contextpage !=
'poslist') {
721 $selectedfields .= $form->showCheckAddButtons(
'checkforselect', 1);
725if (preg_match(
'/^asc/i', $sortorder)) {
733 print
info_admin($langs->trans(
"WarningRecordWithoutSubledgerAreExcluded"));
739$moreforfilter .=
'<div class="divsearchfield">';
740$moreforfilter .= $langs->trans(
'AccountAccounting').
': ';
741$moreforfilter .=
'<div class="nowrap inline-block">';
743 $moreforfilter .= $formaccounting->select_auxaccount($search_accountancy_code_start,
'search_accountancy_code_start', $langs->trans(
'From'),
'maxwidth200');
745 $moreforfilter .= $formaccounting->select_account($search_accountancy_code_start,
'search_accountancy_code_start', $langs->trans(
'From'), array(), 1, 1,
'maxwidth200');
747$moreforfilter .=
' ';
749 $moreforfilter .= $formaccounting->select_auxaccount($search_accountancy_code_end,
'search_accountancy_code_end', $langs->trans(
'to'),
'maxwidth200');
751 $moreforfilter .= $formaccounting->select_account($search_accountancy_code_end,
'search_accountancy_code_end', $langs->trans(
'to'), array(), 1, 1,
'maxwidth200');
753$moreforfilter .=
'</div>';
754$moreforfilter .=
'</div>';
756$moreforfilter .=
'<div class="divsearchfield">';
757$moreforfilter .= $langs->trans(
'AccountingCategory').
': ';
758$moreforfilter .=
'<div class="nowrap inline-block">';
759$moreforfilter .= $formaccounting->select_accounting_category($search_account_category,
'search_account_category', 1, 0, 0, 0);
760$moreforfilter .=
'</div>';
761$moreforfilter .=
'</div>';
763$parameters = array();
764$reshook = $hookmanager->executeHooks(
'printFieldPreListTitle', $parameters);
765if (empty($reshook)) {
766 $moreforfilter .= $hookmanager->resPrint;
768 $moreforfilter = $hookmanager->resPrint;
771print
'<div class="liste_titre liste_titre_bydiv centpercent">';
775print
'<div class="div-table-responsive">';
776print
'<table class="tagtable liste centpercent">';
779print
'<tr class="liste_titre_filter">';
782 print
'<td class="liste_titre center">';
783 $searchpicto = $form->showFilterButtons(
'left');
788if (!empty($arrayfields[
't.piece_num'][
'checked'])) {
789 print
'<td class="liste_titre"><input type="text" name="search_mvt_num" class="width50" value="'.dol_escape_htmltag($search_mvt_num).
'"></td>';
792if (!empty($arrayfields[
't.code_journal'][
'checked'])) {
793 print
'<td class="liste_titre center">';
794 print $formaccounting->multi_select_journal($search_ledger_code,
'search_ledger_code', 0, 1, 1, 1,
'maxwidth75');
798if (!empty($arrayfields[
't.doc_date'][
'checked'])) {
799 print
'<td class="liste_titre center">';
800 print
'<div class="nowrap">';
801 print $form->selectDate($search_date_start,
'search_date_start', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
"From"));
803 print
'<div class="nowrap">';
804 print $form->selectDate($search_date_end,
'search_date_end', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
"to"));
809if (!empty($arrayfields[
't.doc_ref'][
'checked'])) {
810 print
'<td class="liste_titre"><input type="text" size="7" class="flat" name="search_doc_ref" value="'.dol_escape_htmltag($search_doc_ref).
'"/></td>';
813if (!empty($arrayfields[
't.label_operation'][
'checked'])) {
814 print
'<td class="liste_titre"><input type="text" size="7" class="flat" name="search_label_operation" value="'.dol_escape_htmltag($search_label_operation).
'"/></td>';
817if (!empty($arrayfields[
't.debit'][
'checked'])) {
818 print
'<td class="liste_titre right"><input type="text" class="flat" name="search_debit" size="4" value="'.dol_escape_htmltag($search_debit).
'"></td>';
821if (!empty($arrayfields[
't.credit'][
'checked'])) {
822 print
'<td class="liste_titre right"><input type="text" class="flat" name="search_credit" size="4" value="'.dol_escape_htmltag($search_credit).
'"></td>';
825if (!empty($arrayfields[
't.lettering_code'][
'checked'])) {
826 print
'<td class="liste_titre center">';
827 print
'<input type="text" size="3" class="flat" name="search_lettering_code" value="'.$search_lettering_code.
'"/>';
828 print
'<br><span class="nowrap"><input type="checkbox" name="search_not_reconciled" value="notreconciled"'.($search_not_reconciled ==
'notreconciled' ?
' checked' :
'').
'>'.$langs->trans(
"NotReconciled").
'</span>';
832if (!empty($arrayfields[
't.date_export'][
'checked'])) {
833 print
'<td class="liste_titre center">';
834 print
'<div class="nowrap">';
835 print $form->selectDate($search_date_export_start,
'search_date_export_start', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
"From"));
837 print
'<div class="nowrap">';
838 print $form->selectDate($search_date_export_end,
'search_date_export_end', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
"to"));
843if (!empty($arrayfields[
't.date_validated'][
'checked'])) {
844 print
'<td class="liste_titre center">';
845 print
'<div class="nowrap">';
846 print $form->selectDate($search_date_validation_start,
'search_date_validation_start', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
"From"));
848 print
'<div class="nowrap">';
849 print $form->selectDate($search_date_validation_end,
'search_date_validation_end', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
"to"));
853if (!empty($arrayfields[
't.import_key'][
'checked'])) {
854 print
'<td class="liste_titre center">';
855 print
'<input class="flat searchstring maxwidth50" type="text" name="search_import_key" value="'.dol_escape_htmltag($search_import_key).
'">';
860$parameters = array(
'arrayfields'=>$arrayfields);
861$reshook = $hookmanager->executeHooks(
'printFieldListOption', $parameters);
862print $hookmanager->resPrint;
866 print
'<td class="liste_titre center">';
867 $searchpicto = $form->showFilterButtons();
873print
'<tr class="liste_titre">';
875 print_liste_field_titre($selectedfields, $_SERVER[
"PHP_SELF"],
"",
'',
'',
'', $sortfield, $sortorder,
'center maxwidthsearch ');
877if (!empty($arrayfields[
't.piece_num'][
'checked'])) {
878 print_liste_field_titre($arrayfields[
't.piece_num'][
'label'], $_SERVER[
'PHP_SELF'],
"t.piece_num",
"", $param,
'', $sortfield, $sortorder,
'tdoverflowmax80imp ');
880if (!empty($arrayfields[
't.code_journal'][
'checked'])) {
881 print_liste_field_titre($arrayfields[
't.code_journal'][
'label'], $_SERVER[
'PHP_SELF'],
"t.code_journal",
"", $param,
'', $sortfield, $sortorder,
'center ');
883if (!empty($arrayfields[
't.doc_date'][
'checked'])) {
884 print_liste_field_titre($arrayfields[
't.doc_date'][
'label'], $_SERVER[
'PHP_SELF'],
"t.doc_date",
"", $param,
'', $sortfield, $sortorder,
'center ');
886if (!empty($arrayfields[
't.doc_ref'][
'checked'])) {
887 print_liste_field_titre($arrayfields[
't.doc_ref'][
'label'], $_SERVER[
'PHP_SELF'],
"t.doc_ref",
"", $param,
"", $sortfield, $sortorder);
889if (!empty($arrayfields[
't.label_operation'][
'checked'])) {
890 print_liste_field_titre($arrayfields[
't.label_operation'][
'label'], $_SERVER[
'PHP_SELF'],
"t.label_operation",
"", $param,
"", $sortfield, $sortorder);
892if (!empty($arrayfields[
't.debit'][
'checked'])) {
893 print_liste_field_titre($arrayfields[
't.debit'][
'label'], $_SERVER[
'PHP_SELF'],
"t.debit",
"", $param,
'', $sortfield, $sortorder,
'right ');
895if (!empty($arrayfields[
't.credit'][
'checked'])) {
896 print_liste_field_titre($arrayfields[
't.credit'][
'label'], $_SERVER[
'PHP_SELF'],
"t.credit",
"", $param,
'', $sortfield, $sortorder,
'right ');
898if (!empty($arrayfields[
't.lettering_code'][
'checked'])) {
899 print_liste_field_titre($arrayfields[
't.lettering_code'][
'label'], $_SERVER[
'PHP_SELF'],
"t.lettering_code",
"", $param,
'', $sortfield, $sortorder,
'center ');
901if (!empty($arrayfields[
't.date_export'][
'checked'])) {
902 print_liste_field_titre($arrayfields[
't.date_export'][
'label'], $_SERVER[
'PHP_SELF'],
"t.date_export",
"", $param,
'', $sortfield, $sortorder,
'center ');
904if (!empty($arrayfields[
't.date_validated'][
'checked'])) {
905 print_liste_field_titre($arrayfields[
't.date_validated'][
'label'], $_SERVER[
'PHP_SELF'],
"t.date_validated",
"", $param,
'', $sortfield, $sortorder,
'center ');
907if (!empty($arrayfields[
't.import_key'][
'checked'])) {
908 print_liste_field_titre($arrayfields[
't.import_key'][
'label'], $_SERVER[
"PHP_SELF"],
"t.import_key",
"", $param,
'', $sortfield, $sortorder,
'center ');
911$parameters = array(
'arrayfields'=>$arrayfields,
'param'=>$param,
'sortfield'=>$sortfield,
'sortorder'=>$sortorder);
912$reshook = $hookmanager->executeHooks(
'printFieldListTitle', $parameters);
913print $hookmanager->resPrint;
915 print_liste_field_titre($selectedfields, $_SERVER[
"PHP_SELF"],
"",
'',
'',
'', $sortfield, $sortorder,
'center maxwidthsearch ');
919$displayed_account_number =
null;
925$totalarray = array();
926$totalarray[
'val'] = array ();
927$totalarray[
'nbfield'] = 0;
930$sous_total_debit = 0;
931$sous_total_credit = 0;
932$totalarray[
'val'][
'totaldebit'] = 0;
933$totalarray[
'val'][
'totalcredit'] = 0;
937if (!empty($arrayfields[
't.piece_num'][
'checked'])) { $colspan++; }
938if (!empty($arrayfields[
't.code_journal'][
'checked'])) { $colspan++; }
939if (!empty($arrayfields[
't.doc_date'][
'checked'])) { $colspan++; }
940if (!empty($arrayfields[
't.doc_ref'][
'checked'])) { $colspan++; }
941if (!empty($arrayfields[
't.label_operation'][
'checked'])) { $colspan++; }
942if (!empty($arrayfields[
't.date_export'][
'checked'])) { $colspanend++; }
943if (!empty($arrayfields[
't.date_validated'][
'checked'])) { $colspanend++; }
944if (!empty($arrayfields[
't.lettering_code'][
'checked'])) { $colspanend++; }
950while ($i < min($num, $limit)) {
951 $line = $object->lines[$i];
953 $total_debit += $line->debit;
954 $total_credit += $line->credit;
956 if ($type ==
'sub') {
964 if ($accountg != $displayed_account_number || !isset($displayed_account_number)) {
966 if (isset($displayed_account_number)) {
967 print
'<tr class="liste_total">';
968 if ($type ==
'sub') {
969 print
'<td class="right" colspan="' . $colspan .
'">' . $langs->trans(
"TotalForAccount") .
' ' .
length_accounta($displayed_account_number) .
':</td>';
971 print
'<td class="right" colspan="' . $colspan .
'">' . $langs->trans(
"TotalForAccount") .
' ' .
length_accountg($displayed_account_number) .
':</td>';
973 print
'<td class="nowrap right">'.price(
price2num($sous_total_debit,
'MT')).
'</td>';
974 print
'<td class="nowrap right">'.price(
price2num($sous_total_credit,
'MT')).
'</td>';
975 print
'<td colspan="'.$colspanend.
'"></td>';
978 $balance = $sous_total_debit - $sous_total_credit;
979 print
'<tr class="liste_total">';
980 print
'<td class="right" colspan="'.$colspan.
'">'.$langs->trans(
"Balance").
':</td>';
982 print
'<td class="nowraponall right">';
983 print
price(
price2num($sous_total_debit - $sous_total_credit,
'MT'));
988 print
'<td class="nowraponall right">';
989 print
price(
price2num($sous_total_credit - $sous_total_debit,
'MT'));
992 print
'<td colspan="'.$colspanend.
'"></td>';
997 print
'<tr class="trforbreak">';
998 print
'<td colspan="'.($totalarray[
'nbfield'] ? $totalarray[
'nbfield'] : count($arrayfields)+1).
'" class="tdforbreak">';
999 if ($type ==
'sub') {
1000 if ($line->subledger_account !=
"" && $line->subledger_account !=
'-1') {
1001 print empty($line->subledger_label) ?
'<span class="error">'.$langs->trans(
"Unknown").
'</span>' : $line->subledger_label;
1006 print
'<span class="error">' . $langs->trans(
"Unknown");
1007 if ($line->subledger_label) {
1008 print
' (' . $line->subledger_label .
')';
1009 $htmltext =
'EmptyStringForSubledgerAccountButSubledgerLabelDefined';
1011 $htmltext =
'EmptyStringForSubledgerAccountAndSubledgerLabel';
1013 print $form->textwithpicto(
'', $htmltext);
1017 if ($line->numero_compte !=
"" && $line->numero_compte !=
'-1') {
1018 print
length_accountg($line->numero_compte) .
' : ' . $object->get_compte_desc($line->numero_compte);
1020 print
'<span class="error">' . $langs->trans(
"Unknown") .
'</span>';
1026 $displayed_account_number = $accountg;
1028 $sous_total_debit = 0;
1029 $sous_total_credit = 0;
1032 print
'<tr class="oddeven">';
1035 print
'<td class="nowraponall center">';
1036 if (($massactionbutton || $massaction) && $contextpage !=
'poslist') {
1038 if (in_array($line->id, $arrayofselected)) {
1041 print
'<input id="cb' . $line->id .
'" class="flat checkforselect" type="checkbox" name="toselect[]" value="' . $line->id .
'"' . ($selected ?
' checked="checked"' :
'') .
' />';
1045 $totalarray[
'nbfield']++;
1049 if (!empty($arrayfields[
't.piece_num'][
'checked'])) {
1051 $object->id = $line->id;
1052 $object->piece_num = $line->piece_num;
1053 print $object->getNomUrl(1,
'', 0,
'', 1);
1056 $totalarray[
'nbfield']++;
1061 if (!empty($arrayfields[
't.code_journal'][
'checked'])) {
1063 $result = $accountingjournal->fetch(
'', $line->code_journal);
1064 $journaltoshow = (($result > 0) ? $accountingjournal->getNomUrl(0, 0, 0,
'', 0) : $line->code_journal);
1065 print
'<td class="center tdoverflowmax80">'.$journaltoshow.
'</td>';
1067 $totalarray[
'nbfield']++;
1072 if (!empty($arrayfields[
't.doc_date'][
'checked'])) {
1073 print
'<td class="center">'.dol_print_date($line->doc_date,
'day').
'</td>';
1075 $totalarray[
'nbfield']++;
1080 if (!empty($arrayfields[
't.doc_ref'][
'checked'])) {
1081 if ($line->doc_type ==
'customer_invoice') {
1082 $langs->loadLangs(array(
'bills'));
1084 require_once DOL_DOCUMENT_ROOT.
'/compta/facture/class/facture.class.php';
1085 $objectstatic =
new Facture($db);
1086 $objectstatic->fetch($line->fk_doc);
1091 $urlsource = $_SERVER[
'PHP_SELF'].
'?id='.$objectstatic->id;
1092 $documentlink = $formfile->getDocumentsLink($objectstatic->element, $filename, $filedir);
1093 } elseif ($line->doc_type ==
'supplier_invoice') {
1094 $langs->loadLangs(array(
'bills'));
1096 require_once DOL_DOCUMENT_ROOT.
'/fourn/class/fournisseur.facture.class.php';
1098 $objectstatic->fetch($line->fk_doc);
1102 $filedir = $conf->fournisseur->facture->dir_output.
'/'.
get_exdir($line->fk_doc, 2, 0, 0, $objectstatic, $modulepart).dol_sanitizeFileName($line->doc_ref);
1103 $subdir =
get_exdir($objectstatic->id, 2, 0, 0, $objectstatic, $modulepart).dol_sanitizeFileName($line->doc_ref);
1104 $documentlink = $formfile->getDocumentsLink($objectstatic->element, $subdir, $filedir);
1105 } elseif ($line->doc_type ==
'expense_report') {
1106 $langs->loadLangs(array(
'trips'));
1108 require_once DOL_DOCUMENT_ROOT.
'/expensereport/class/expensereport.class.php';
1110 $objectstatic->fetch($line->fk_doc);
1115 $urlsource = $_SERVER[
'PHP_SELF'].
'?id='.$objectstatic->id;
1116 $documentlink = $formfile->getDocumentsLink($objectstatic->element, $filename, $filedir);
1117 } elseif ($line->doc_type ==
'bank') {
1118 require_once DOL_DOCUMENT_ROOT.
'/compta/bank/class/account.class.php';
1120 $objectstatic->fetch($line->fk_doc);
1125 print
'<td class="maxwidth400">';
1127 print
'<table class="nobordernopadding"><tr class="nocellnopadd">';
1129 print
'<td class="nobordernopadding">';
1131 if ($line->doc_type ==
'customer_invoice' || $line->doc_type ==
'supplier_invoice' || $line->doc_type ==
'expense_report') {
1132 print $objectstatic->getNomUrl(1,
'', 0, 0,
'', 0, -1, 1);
1133 print $documentlink;
1134 } elseif ($line->doc_type ==
'bank') {
1135 print $objectstatic->getNomUrl(1);
1136 $bank_ref = strstr($line->doc_ref,
'-');
1137 print
" " . $bank_ref;
1139 print $line->doc_ref;
1141 print
'</td></tr></table>';
1145 $totalarray[
'nbfield']++;
1150 if (!empty($arrayfields[
't.label_operation'][
'checked'])) {
1152 $doc_ref = preg_replace(
'/\(.*\)/',
'', $line->doc_ref);
1153 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>';
1155 $totalarray[
'nbfield']++;
1160 if (!empty($arrayfields[
't.debit'][
'checked'])) {
1161 print
'<td class="right nowraponall amount">'.($line->debit != 0 ?
price($line->debit) :
'').
'</td>';
1163 $totalarray[
'nbfield']++;
1166 $totalarray[
'pos'][$totalarray[
'nbfield']] =
'totaldebit';
1168 $totalarray[
'val'][
'totaldebit'] += $line->debit;
1172 if (!empty($arrayfields[
't.credit'][
'checked'])) {
1173 print
'<td class="right nowraponall amount">'.($line->credit != 0 ?
price($line->credit) :
'').
'</td>';
1175 $totalarray[
'nbfield']++;
1178 $totalarray[
'pos'][$totalarray[
'nbfield']] =
'totalcredit';
1180 $totalarray[
'val'][
'totalcredit'] += $line->credit;
1184 if (!empty($arrayfields[
't.lettering_code'][
'checked'])) {
1185 print
'<td class="center">'.$line->lettering_code.
'</td>';
1187 $totalarray[
'nbfield']++;
1192 if (!empty($arrayfields[
't.date_export'][
'checked'])) {
1193 print
'<td class="center">'.dol_print_date($line->date_export,
'dayhour').
'</td>';
1195 $totalarray[
'nbfield']++;
1200 if (!empty($arrayfields[
't.date_validated'][
'checked'])) {
1201 print
'<td class="center">'.dol_print_date($line->date_validation,
'dayhour').
'</td>';
1203 $totalarray[
'nbfield']++;
1207 if (!empty($arrayfields[
't.import_key'][
'checked'])) {
1208 print
'<td class="center">'.$line->import_key.
"</td>\n";
1210 $totalarray[
'nbfield']++;
1215 $parameters = array(
'arrayfields'=>$arrayfields,
'obj'=>$line);
1216 $reshook = $hookmanager->executeHooks(
'printFieldListValue', $parameters);
1217 print $hookmanager->resPrint;
1221 print
'<td class="nowraponall center">';
1222 if (($massactionbutton || $massaction) && $contextpage !=
'poslist') {
1224 if (in_array($line->id, $arrayofselected)) {
1227 print
'<input id="cb' . $line->id .
'" class="flat checkforselect" type="checkbox" name="toselect[]" value="' . $line->id .
'"' . ($selected ?
' checked="checked"' :
'') .
' />';
1231 $totalarray[
'nbfield']++;
1236 $sous_total_debit += $line->debit;
1237 $sous_total_credit += $line->credit;
1244if ($num > 0 && $colspan > 0) {
1245 print
'<tr class="liste_total">';
1246 print
'<td class="right" colspan="'.$colspan.
'">'.$langs->trans(
"TotalForAccount").
' '.$accountg.
':</td>';
1247 print
'<td class="nowrap right">'.price(
price2num($sous_total_debit,
'MT')).
'</td>';
1248 print
'<td class="nowrap right">'.price(
price2num($sous_total_credit,
'MT')).
'</td>';
1249 print
'<td colspan="'.$colspanend.
'"></td>';
1252 $balance = $sous_total_debit - $sous_total_credit;
1253 print
'<tr class="liste_total">';
1254 print
'<td class="right" colspan="'.$colspan.
'">'.$langs->trans(
"Balance").
':</td>';
1256 print
'<td class="nowraponall right">';
1257 print
price(
price2num($sous_total_debit - $sous_total_credit,
'MT'));
1262 print
'<td class="nowraponall right">';
1263 print
price(
price2num($sous_total_credit - $sous_total_debit,
'MT'));
1266 print
'<td colspan="'.$colspanend.
'"></td>';
1272if (!empty($totalarray[
'val'][
'totaldebit'])) {
1273 $totalarray[
'val'][
'totaldebit'] =
price2num($totalarray[
'val'][
'totaldebit'],
'MT');
1275if (!empty($totalarray[
'val'][
'totalcredit'])) {
1276 $totalarray[
'val'][
'totalcredit'] =
price2num($totalarray[
'val'][
'totalcredit'],
'MT');
1281include DOL_DOCUMENT_ROOT.
'/core/tpl/list_print_total.tpl.php';
1286 foreach ($arrayfields as $key => $val) {
1287 if (!empty($val[
'checked'])) {
1291 print
'<tr><td colspan="'.$colspan.
'"><span class="opacitymedium">'.$langs->trans(
"NoRecordFound").
'</span></td></tr>';
1294$parameters = array(
'arrayfields'=>$arrayfields,
'sql'=>$sql);
1295$reshook = $hookmanager->executeHooks(
'printFieldListFooter', $parameters, $object, $action);
1296print $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.
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 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.
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.
$formconfirm
if ($action == 'delbookkeepingyear') {
accessforbidden($message='', $printheader=1, $printfooter=1, $showonlymessage=0, $params=null)
Show a message to say access is forbidden and stop program.