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[
'id']).
"'";
297 $filter[
't.search_accounting_code_in'] = join(
',', $listofaccountsforgroup2);
298 $param .=
'&search_account_category='.urlencode($search_account_category);
300 if (!empty($search_accountancy_code_start)) {
301 if ($type ==
'sub') {
302 $filter[
't.subledger_account>='] = $search_accountancy_code_start;
304 $filter[
't.numero_compte>='] = $search_accountancy_code_start;
306 $param .=
'&search_accountancy_code_start=' . urlencode($search_accountancy_code_start);
308 if (!empty($search_accountancy_code_end)) {
309 if ($type ==
'sub') {
310 $filter[
't.subledger_account<='] = $search_accountancy_code_end;
312 $filter[
't.numero_compte<='] = $search_accountancy_code_end;
314 $param .=
'&search_accountancy_code_end=' . urlencode($search_accountancy_code_end);
316 if (!empty($search_label_account)) {
317 $filter[
't.label_compte'] = $search_label_account;
318 $param .=
'&search_label_compte='.urlencode($search_label_account);
320 if (!empty($search_mvt_num)) {
321 $filter[
't.piece_num'] = $search_mvt_num;
322 $param .=
'&search_mvt_num='.urlencode($search_mvt_num);
324 if (!empty($search_doc_ref)) {
325 $filter[
't.doc_ref'] = $search_doc_ref;
326 $param .=
'&search_doc_ref='.urlencode($search_doc_ref);
328 if (!empty($search_label_operation)) {
329 $filter[
't.label_operation'] = $search_label_operation;
330 $param .=
'&search_label_operation='.urlencode($search_label_operation);
332 if (!empty($search_direction)) {
333 $filter[
't.sens'] = $search_direction;
334 $param .=
'&search_direction='.urlencode($search_direction);
336 if (!empty($search_ledger_code)) {
337 $filter[
't.code_journal'] = $search_ledger_code;
338 foreach ($search_ledger_code as $code) {
339 $param .=
'&search_ledger_code[]='.urlencode($code);
342 if (!empty($search_debit)) {
343 $filter[
't.debit'] = $search_debit;
344 $param .=
'&search_debit='.urlencode($search_debit);
346 if (!empty($search_credit)) {
347 $filter[
't.credit'] = $search_credit;
348 $param .=
'&search_credit='.urlencode($search_credit);
350 if (!empty($search_lettering_code)) {
351 $filter[
't.lettering_code'] = $search_lettering_code;
352 $param .=
'&search_lettering_code='.urlencode($search_lettering_code);
354 if (!empty($search_not_reconciled)) {
355 $filter[
't.reconciled_option'] = $search_not_reconciled;
356 $param .=
'&search_not_reconciled='.urlencode($search_not_reconciled);
358 if (!empty($search_date_export_start)) {
359 $filter[
't.date_export>='] = $search_date_export_start;
360 $param .=
'&search_date_export_startmonth='.$search_date_export_startmonth.
'&search_date_export_startday='.$search_date_export_startday.
'&search_date_export_startyear='.$search_date_export_startyear;
362 if (!empty($search_date_export_end)) {
363 $filter[
't.date_export<='] = $search_date_export_end;
364 $param .=
'&search_date_export_endmonth='.$search_date_export_endmonth.
'&search_date_export_endday='.$search_date_export_endday.
'&search_date_export_endyear='.$search_date_export_endyear;
366 if (!empty($search_date_validation_start)) {
367 $filter[
't.date_validated>='] = $search_date_validation_start;
368 $param .=
'&search_date_validation_startmonth='.$search_date_validation_startmonth.
'&search_date_validation_startday='.$search_date_validation_startday.
'&search_date_validation_startyear='.$search_date_validation_startyear;
370 if (!empty($search_date_validation_end)) {
371 $filter[
't.date_validated<='] = $search_date_validation_end;
372 $param .=
'&search_date_validation_endmonth='.$search_date_validation_endmonth.
'&search_date_validation_endday='.$search_date_validation_endday.
'&search_date_validation_endyear='.$search_date_validation_endyear;
374 if (!empty($search_import_key)) {
375 $filter[
't.import_key'] = $search_import_key;
376 $param .=
'&search_import_key='.urlencode($search_import_key);
379 $url_param = substr($param, 1);
381 $param =
'&type='.$type.$param;
412 $objectclass =
'Bookkeeping';
413 $objectlabel =
'Bookkeeping';
414 $permissiontoread = $user->hasRight(
'societe',
'lire');
415 $permissiontodelete = $user->hasRight(
'societe',
'supprimer');
416 $permissiontoadd = $user->hasRight(
'societe',
'creer');
417 $uploaddir = $conf->societe->dir_output;
418 include DOL_DOCUMENT_ROOT.
'/core/actions_massactions.inc.php';
420 if (!$error && $action ==
'deletebookkeepingwriting' && $confirm ==
"yes" && $user->hasRight(
'accounting',
'mouvements',
'supprimer')) {
425 $nb_lettering = $lettering->bookkeepingLetteringAll($toselect,
true);
426 if ($nb_lettering < 0) {
434 foreach ($toselect as $toselectid) {
435 $result = $object->fetch($toselectid);
436 if ($result > 0 && (!isset($object->date_validation) || $object->date_validation ===
'')) {
437 $result = $object->deleteMvtNum($object->piece_num);
445 } elseif ($result < 0) {
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;
935while ($i < min($num, $limit)) {
936 $line = $object->lines[$i];
938 $total_debit += $line->debit;
939 $total_credit += $line->credit;
941 if ($type ==
'sub') {
950 if (!empty($arrayfields[
't.piece_num'][
'checked'])) { $colspan++; }
951 if (!empty($arrayfields[
't.code_journal'][
'checked'])) { $colspan++; }
952 if (!empty($arrayfields[
't.doc_date'][
'checked'])) { $colspan++; }
953 if (!empty($arrayfields[
't.doc_ref'][
'checked'])) { $colspan++; }
954 if (!empty($arrayfields[
't.label_operation'][
'checked'])) { $colspan++; }
955 if (!empty($arrayfields[
't.date_export'][
'checked'])) { $colspanend++; }
956 if (!empty($arrayfields[
't.date_validated'][
'checked'])) { $colspanend++; }
957 if (!empty($arrayfields[
't.lettering_code'][
'checked'])) { $colspanend++; }
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;
1034 print
'<tr class="oddeven">';
1037 print
'<td class="nowraponall center">';
1038 if (($massactionbutton || $massaction) && $contextpage !=
'poslist') {
1040 if (in_array($line->id, $arrayofselected)) {
1043 print
'<input id="cb' . $line->id .
'" class="flat checkforselect" type="checkbox" name="toselect[]" value="' . $line->id .
'"' . ($selected ?
' checked="checked"' :
'') .
' />';
1047 $totalarray[
'nbfield']++;
1051 if (!empty($arrayfields[
't.piece_num'][
'checked'])) {
1053 $object->id = $line->id;
1054 $object->piece_num = $line->piece_num;
1055 print $object->getNomUrl(1,
'', 0,
'', 1);
1058 $totalarray[
'nbfield']++;
1063 if (!empty($arrayfields[
't.code_journal'][
'checked'])) {
1065 $result = $accountingjournal->fetch(
'', $line->code_journal);
1066 $journaltoshow = (($result > 0) ? $accountingjournal->getNomUrl(0, 0, 0,
'', 0) : $line->code_journal);
1067 print
'<td class="center tdoverflowmax80">'.$journaltoshow.
'</td>';
1069 $totalarray[
'nbfield']++;
1074 if (!empty($arrayfields[
't.doc_date'][
'checked'])) {
1075 print
'<td class="center">'.dol_print_date($line->doc_date,
'day').
'</td>';
1077 $totalarray[
'nbfield']++;
1082 if (!empty($arrayfields[
't.doc_ref'][
'checked'])) {
1083 if ($line->doc_type ==
'customer_invoice') {
1084 $langs->loadLangs(array(
'bills'));
1086 require_once DOL_DOCUMENT_ROOT.
'/compta/facture/class/facture.class.php';
1087 $objectstatic =
new Facture($db);
1088 $objectstatic->fetch($line->fk_doc);
1093 $urlsource = $_SERVER[
'PHP_SELF'].
'?id='.$objectstatic->id;
1094 $documentlink = $formfile->getDocumentsLink($objectstatic->element, $filename, $filedir);
1095 } elseif ($line->doc_type ==
'supplier_invoice') {
1096 $langs->loadLangs(array(
'bills'));
1098 require_once DOL_DOCUMENT_ROOT.
'/fourn/class/fournisseur.facture.class.php';
1100 $objectstatic->fetch($line->fk_doc);
1104 $filedir = $conf->fournisseur->facture->dir_output.
'/'.
get_exdir($line->fk_doc, 2, 0, 0, $objectstatic, $modulepart).dol_sanitizeFileName($line->doc_ref);
1105 $subdir =
get_exdir($objectstatic->id, 2, 0, 0, $objectstatic, $modulepart).dol_sanitizeFileName($line->doc_ref);
1106 $documentlink = $formfile->getDocumentsLink($objectstatic->element, $subdir, $filedir);
1107 } elseif ($line->doc_type ==
'expense_report') {
1108 $langs->loadLangs(array(
'trips'));
1110 require_once DOL_DOCUMENT_ROOT.
'/expensereport/class/expensereport.class.php';
1112 $objectstatic->fetch($line->fk_doc);
1117 $urlsource = $_SERVER[
'PHP_SELF'].
'?id='.$objectstatic->id;
1118 $documentlink = $formfile->getDocumentsLink($objectstatic->element, $filename, $filedir);
1119 } elseif ($line->doc_type ==
'bank') {
1120 require_once DOL_DOCUMENT_ROOT.
'/compta/bank/class/account.class.php';
1122 $objectstatic->fetch($line->fk_doc);
1127 print
'<td class="maxwidth400">';
1129 print
'<table class="nobordernopadding"><tr class="nocellnopadd">';
1131 print
'<td class="nobordernopadding">';
1133 if ($line->doc_type ==
'customer_invoice' || $line->doc_type ==
'supplier_invoice' || $line->doc_type ==
'expense_report') {
1134 print $objectstatic->getNomUrl(1,
'', 0, 0,
'', 0, -1, 1);
1135 print $documentlink;
1136 } elseif ($line->doc_type ==
'bank') {
1137 print $objectstatic->getNomUrl(1);
1138 $bank_ref = strstr($line->doc_ref,
'-');
1139 print
" " . $bank_ref;
1141 print $line->doc_ref;
1143 print
'</td></tr></table>';
1147 $totalarray[
'nbfield']++;
1152 if (!empty($arrayfields[
't.label_operation'][
'checked'])) {
1154 $doc_ref = preg_replace(
'/\(.*\)/',
'', $line->doc_ref);
1155 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>';
1157 $totalarray[
'nbfield']++;
1162 if (!empty($arrayfields[
't.debit'][
'checked'])) {
1163 print
'<td class="right nowraponall amount">'.($line->debit != 0 ?
price($line->debit) :
'').
'</td>';
1165 $totalarray[
'nbfield']++;
1168 $totalarray[
'pos'][$totalarray[
'nbfield']] =
'totaldebit';
1170 $totalarray[
'val'][
'totaldebit'] += $line->debit;
1174 if (!empty($arrayfields[
't.credit'][
'checked'])) {
1175 print
'<td class="right nowraponall amount">'.($line->credit != 0 ?
price($line->credit) :
'').
'</td>';
1177 $totalarray[
'nbfield']++;
1180 $totalarray[
'pos'][$totalarray[
'nbfield']] =
'totalcredit';
1182 $totalarray[
'val'][
'totalcredit'] += $line->credit;
1186 if (!empty($arrayfields[
't.lettering_code'][
'checked'])) {
1187 print
'<td class="center">'.$line->lettering_code.
'</td>';
1189 $totalarray[
'nbfield']++;
1194 if (!empty($arrayfields[
't.date_export'][
'checked'])) {
1195 print
'<td class="center">'.dol_print_date($line->date_export,
'dayhour').
'</td>';
1197 $totalarray[
'nbfield']++;
1202 if (!empty($arrayfields[
't.date_validated'][
'checked'])) {
1203 print
'<td class="center">'.dol_print_date($line->date_validation,
'dayhour').
'</td>';
1205 $totalarray[
'nbfield']++;
1209 if (!empty($arrayfields[
't.import_key'][
'checked'])) {
1210 print
'<td class="center">'.$line->import_key.
"</td>\n";
1212 $totalarray[
'nbfield']++;
1217 $parameters = array(
'arrayfields'=>$arrayfields,
'obj'=>$line);
1218 $reshook = $hookmanager->executeHooks(
'printFieldListValue', $parameters);
1219 print $hookmanager->resPrint;
1223 print
'<td class="nowraponall center">';
1224 if (($massactionbutton || $massaction) && $contextpage !=
'poslist') {
1226 if (in_array($line->id, $arrayofselected)) {
1229 print
'<input id="cb' . $line->id .
'" class="flat checkforselect" type="checkbox" name="toselect[]" value="' . $line->id .
'"' . ($selected ?
' checked="checked"' :
'') .
' />';
1233 $totalarray[
'nbfield']++;
1238 $sous_total_debit += $line->debit;
1239 $sous_total_credit += $line->credit;
1246if ($num > 0 && $colspan > 0) {
1247 print
'<tr class="liste_total">';
1248 print
'<td class="right" colspan="'.$colspan.
'">'.$langs->trans(
"TotalForAccount").
' '.$accountg.
':</td>';
1249 print
'<td class="nowrap right">'.price(
price2num($sous_total_debit,
'MT')).
'</td>';
1250 print
'<td class="nowrap right">'.price(
price2num($sous_total_credit,
'MT')).
'</td>';
1251 print
'<td colspan="'.$colspanend.
'"></td>';
1254 $balance = $sous_total_debit - $sous_total_credit;
1255 print
'<tr class="liste_total">';
1256 print
'<td class="right" colspan="'.$colspan.
'">'.$langs->trans(
"Balance").
':</td>';
1258 print
'<td class="nowraponall right">';
1259 print
price(
price2num($sous_total_debit - $sous_total_credit,
'MT'));
1264 print
'<td class="nowraponall right">';
1265 print
price(
price2num($sous_total_credit - $sous_total_debit,
'MT'));
1268 print
'<td colspan="'.$colspanend.
'"></td>';
1274if (!empty($totalarray[
'val'][
'totaldebit'])) {
1275 $totalarray[
'val'][
'totaldebit'] =
price2num($totalarray[
'val'][
'totaldebit'],
'MT');
1277if (!empty($totalarray[
'val'][
'totalcredit'])) {
1278 $totalarray[
'val'][
'totalcredit'] =
price2num($totalarray[
'val'][
'totalcredit'],
'MT');
1283include DOL_DOCUMENT_ROOT.
'/core/tpl/list_print_total.tpl.php';
1288 foreach ($arrayfields as $key => $val) {
1289 if (!empty($val[
'checked'])) {
1293 print
'<tr><td colspan="'.$colspan.
'"><span class="opacitymedium">'.$langs->trans(
"NoRecordFound").
'</span></td></tr>';
1296$parameters = array(
'arrayfields'=>$arrayfields,
'sql'=>$sql);
1297$reshook = $hookmanager->executeHooks(
'printFieldListFooter', $parameters, $object, $action);
1298print $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.