32require
'../../main.inc.php';
34require_once DOL_DOCUMENT_ROOT.
'/core/lib/accounting.lib.php';
35require_once DOL_DOCUMENT_ROOT.
'/core/lib/company.lib.php';
36require_once DOL_DOCUMENT_ROOT.
'/accountancy/class/lettering.class.php';
37require_once DOL_DOCUMENT_ROOT.
'/accountancy/class/bookkeeping.class.php';
38require_once DOL_DOCUMENT_ROOT.
'/accountancy/class/accountingjournal.class.php';
39require_once DOL_DOCUMENT_ROOT.
'/core/class/html.formaccounting.class.php';
40require_once DOL_DOCUMENT_ROOT.
'/core/class/html.formfile.class.php';
41require_once DOL_DOCUMENT_ROOT.
'/core/class/html.formother.class.php';
42require_once DOL_DOCUMENT_ROOT.
'/core/lib/date.lib.php';
53$langs->loadLangs(array(
"accountancy",
"categories",
"compta",
"other"));
55$journal_code =
GETPOST(
'code_journal',
'alpha');
56$account =
GETPOST(
"account",
'int');
59$action =
GETPOST(
'action',
'aZ09');
61$mode = (
GETPOST(
'mode',
'alpha') ?
GETPOST(
'mode',
'alpha') :
'customer');
62$massaction =
GETPOST(
'massaction',
'alpha');
63$confirm =
GETPOST(
'confirm',
'alpha');
64$toselect =
GETPOST(
'toselect',
'array:int');
65$type =
GETPOST(
'type',
'alpha');
67 $context_default =
'bookkeepingbysubaccountlist';
69 $context_default =
'bookkeepingbyaccountlist';
71$contextpage =
GETPOST(
'contextpage',
'aZ') ?
GETPOST(
'contextpage',
'aZ') : $context_default;
73$search_doc_date =
GETPOSTDATE(
'doc_date',
'getpost');
75$search_date_startyear =
GETPOSTINT(
'search_date_startyear');
76$search_date_startmonth =
GETPOSTINT(
'search_date_startmonth');
77$search_date_startday =
GETPOSTINT(
'search_date_startday');
78$search_date_start =
GETPOSTDATE(
'search_date_start',
'getpost',
'auto',
'search_date_start_accountancy');
80$search_date_endyear =
GETPOSTINT(
'search_date_endyear');
81$search_date_endmonth =
GETPOSTINT(
'search_date_endmonth');
82$search_date_endday =
GETPOSTINT(
'search_date_endday');
83$search_date_end =
GETPOSTDATE(
'search_date_end',
'getpostend',
'auto',
'search_date_end_accountancy');
85$search_date_export_startyear =
GETPOSTINT(
'search_date_export_startyear');
86$search_date_export_startmonth =
GETPOSTINT(
'search_date_export_startmonth');
87$search_date_export_startday =
GETPOSTINT(
'search_date_export_startday');
88$search_date_export_start =
GETPOSTDATE(
'search_date_export_start',
'getpost');
90$search_date_export_endyear =
GETPOSTINT(
'search_date_export_endyear');
91$search_date_export_endmonth =
GETPOSTINT(
'search_date_export_endmonth');
92$search_date_export_endday =
GETPOSTINT(
'search_date_export_endday');
93$search_date_export_end =
GETPOSTDATE(
'search_date_export_start',
'getpostend');
95$search_date_validation_startyear =
GETPOSTINT(
'search_date_validation_startyear');
96$search_date_validation_startmonth =
GETPOSTINT(
'search_date_validation_startmonth');
97$search_date_validation_startday =
GETPOSTINT(
'search_date_validation_startday');
98$search_date_validation_start =
GETPOSTDATE(
'search_date_validation_start',
'getpost');
100$search_date_validation_endyear =
GETPOSTINT(
'search_date_validation_endyear');
101$search_date_validation_endmonth =
GETPOSTINT(
'search_date_validation_endmonth');
102$search_date_validation_endday =
GETPOSTINT(
'search_date_validation_endday');
103$search_date_validation_end =
GETPOSTDATE(
'search_date_validation_end',
'getpostend');
106$search_date_due_start_day =
GETPOSTINT(
'search_date_due_start_day');
107$search_date_due_start_month =
GETPOSTINT(
'search_date_due_start_month');
108$search_date_due_start_year =
GETPOSTINT(
'search_date_due_start_year');
109$search_date_due_start =
GETPOSTDATE(
'search_date_due_start_',
'getpost');
112$search_date_due_end_day =
GETPOSTINT(
'search_date_due_end_day');
113$search_date_due_end_month =
GETPOSTINT(
'search_date_due_end_month');
114$search_date_due_end_year =
GETPOSTINT(
'search_date_due_end_year');
115$search_date_due_end =
GETPOSTDATE(
'search_date_due_end_',
'getpostend');
117$search_import_key =
GETPOST(
"search_import_key",
'alpha');
119$search_account_category =
GETPOSTINT(
'search_account_category');
121$search_accountancy_code_start =
GETPOST(
'search_accountancy_code_start',
'alpha');
122if ($search_accountancy_code_start == - 1) {
123 $search_accountancy_code_start =
'';
125$search_accountancy_code_end =
GETPOST(
'search_accountancy_code_end',
'alpha');
126if ($search_accountancy_code_end == - 1) {
127 $search_accountancy_code_end =
'';
129$search_doc_ref =
GETPOST(
'search_doc_ref',
'alpha');
130$search_label_operation =
GETPOST(
'search_label_operation',
'alpha');
131$search_mvt_num =
GETPOST(
'search_mvt_num',
'alpha');
132$search_direction =
GETPOST(
'search_direction',
'alpha');
133$search_ledger_code =
GETPOST(
'search_ledger_code',
'array');
134$search_debit =
GETPOST(
'search_debit',
'alpha');
135$search_credit =
GETPOST(
'search_credit',
'alpha');
136$search_lettering_code =
GETPOST(
'search_lettering_code',
'alpha');
137$search_not_reconciled =
GETPOST(
'search_not_reconciled',
'alpha');
140 $action =
'delbookkeepingyear';
145$sortfield =
GETPOST(
'sortfield',
'aZ09comma');
146$sortorder =
GETPOST(
'sortorder',
'aZ09comma');
147$optioncss =
GETPOST(
'optioncss',
'alpha');
149if (empty($page) || $page < 0) {
152$offset = $limit * $page;
153$pageprev = $page - 1;
154$pagenext = $page + 1;
155if ($sortorder ==
"") {
158if ($sortfield ==
"") {
159 $sortfield =
"t.doc_date,t.rowid";
165$hookmanager->initHooks(array($context_default));
168$form =
new Form($db);
170if (empty($search_date_start) && empty($search_date_end) && !GETPOSTISSET(
'search_date_startday') && !GETPOSTISSET(
'search_date_startmonth') && !GETPOSTISSET(
'search_date_starthour')) {
171 $sql =
"SELECT date_start, date_end";
172 $sql .=
" FROM ".MAIN_DB_PREFIX.
"accounting_fiscalyear ";
174 $sql .=
" WHERE rowid = " .
getDolGlobalInt(
'ACCOUNTANCY_FISCALYEAR_DEFAULT');
176 $sql .=
" WHERE date_start < '" . $db->idate(
dol_now()) .
"' and date_end > '" . $db->idate(
dol_now()) .
"'";
178 $sql .= $db->plimit(1);
179 $res = $db->query($sql);
181 if ($res !==
false && $db->num_rows($res) > 0) {
182 $fiscalYear = $db->fetch_object($res);
183 $search_date_start = strtotime($fiscalYear->date_start);
184 $search_date_end = strtotime($fiscalYear->date_end);
191 $year_end = $year_start + 1;
192 $month_end = $month_start - 1;
193 if ($month_end < 1) {
197 $search_date_start =
dol_mktime(0, 0, 0, $month_start, 1, $year_start);
204 't.piece_num' => array(
'label' =>
"TransactionNumShort",
'checked' =>
'1'),
205 't.code_journal' => array(
'label' =>
"Codejournal",
'checked' =>
'1'),
206 't.doc_date' => array(
'label' =>
"Docdate",
'checked' =>
'1'),
207 't.doc_ref' => array(
'label' =>
"Piece",
'checked' =>
'1'),
208 't.label_operation' => array(
'label' =>
"Label",
'checked' =>
'1'),
209 't.lettering_code' => array(
'label' =>
"Lettering",
'checked' =>
'1'),
210 't.debit' => array(
'label' =>
"AccountingDebit",
'checked' =>
'1'),
211 't.credit' => array(
'label' =>
"AccountingCredit",
'checked' =>
'1'),
212 't.balance' => array(
'label' =>
"Balance",
'checked' =>
'1'),
213 't.date_export' => array(
'label' =>
"DateExport",
'checked' =>
'-1'),
214 't.date_validated' => array(
'label' =>
"DateValidation",
'checked' =>
'-1',
'enabled' => (
string) (
int) !
getDolGlobalString(
"ACCOUNTANCY_DISABLE_CLOSURE_LINE_BY_LINE")),
215 't.date_lim_reglement' => array(
'label' =>
"DateDue",
'checked' =>
'0'),
216 't.import_key' => array(
'label' =>
"ImportId",
'checked' =>
'-1',
'position' => 1100),
220 unset($arrayfields[
't.lettering_code']);
223if ($search_date_start && empty($search_date_startyear)) {
225 $search_date_startyear = $tmparray[
'year'];
226 $search_date_startmonth = $tmparray[
'mon'];
227 $search_date_startday = $tmparray[
'mday'];
229if ($search_date_end && empty($search_date_endyear)) {
231 $search_date_endyear = $tmparray[
'year'];
232 $search_date_endmonth = $tmparray[
'mon'];
233 $search_date_endday = $tmparray[
'mday'];
239if ($user->socid > 0) {
242if (!$user->hasRight(
'accounting',
'mouvements',
'lire')) {
251$permissiontoread = $user->hasRight(
'accounting',
'mouvements',
'lire');
252$permissiontoadd = $user->hasRight(
'accounting',
'mouvements',
'creer');
253$permissiontodelete = $user->hasRight(
'accounting',
'mouvements',
'supprimer');
254$permissiontoexport = $user->hasRight(
'accounting',
'mouvements',
'export');
265if (
GETPOST(
'cancel',
'alpha')) {
269if (!
GETPOST(
'confirmmassaction',
'alpha') && $massaction !=
'preunletteringauto' && $massaction !=
'preunletteringmanual' && $massaction !=
'predeletebookkeepingwriting') {
273$parameters = array(
'socid' => $socid);
274$reshook = $hookmanager->executeHooks(
'doActions', $parameters, $object, $action);
279if (empty($reshook)) {
280 include DOL_DOCUMENT_ROOT.
'/core/actions_changeselectedfields.inc.php';
282 if (
GETPOST(
'button_removefilter_x',
'alpha') ||
GETPOST(
'button_removefilter.x',
'alpha') ||
GETPOST(
'button_removefilter',
'alpha')) {
283 $search_doc_date =
'';
284 $search_account_category =
'';
285 $search_accountancy_code_start =
'';
286 $search_accountancy_code_end =
'';
287 $search_label_account =
'';
288 $search_doc_ref =
'';
289 $search_label_operation =
'';
290 $search_mvt_num =
'';
291 $search_direction =
'';
292 $search_ledger_code = array();
293 $search_date_start =
'';
294 $search_date_end =
'';
295 $search_date_startyear =
'';
296 $search_date_startmonth =
'';
297 $search_date_startday =
'';
298 $search_date_endyear =
'';
299 $search_date_endmonth =
'';
300 $search_date_endday =
'';
301 $search_date_export_start =
'';
302 $search_date_export_end =
'';
303 $search_date_export_startyear =
'';
304 $search_date_export_startmonth =
'';
305 $search_date_export_startday =
'';
306 $search_date_export_endyear =
'';
307 $search_date_export_endmonth =
'';
308 $search_date_export_endday =
'';
309 $search_date_validation_start =
'';
310 $search_date_validation_end =
'';
311 $search_date_validation_startyear =
'';
312 $search_date_validation_startmonth =
'';
313 $search_date_validation_startday =
'';
314 $search_date_validation_endyear =
'';
315 $search_date_validation_endmonth =
'';
316 $search_date_validation_endday =
'';
318 $search_date_due_start_day =
'';
319 $search_date_due_start_month =
'';
320 $search_date_due_start_year =
'';
321 $search_date_due_start =
'';
323 $search_date_due_end_day =
'';
324 $search_date_due_end_month =
'';
325 $search_date_due_end_year =
'';
326 $search_date_due_end =
'';
327 $search_lettering_code =
'';
330 $search_not_reconciled =
'';
331 $search_import_key =
'';
333 unset($_SESSION[
'DOLDATE_search_date_start_accountancy_day']);
334 unset($_SESSION[
'DOLDATE_search_date_start_accountancy_month']);
335 unset($_SESSION[
'DOLDATE_search_date_start_accountancy_year']);
336 unset($_SESSION[
'DOLDATE_search_date_end_accountancy_day']);
337 unset($_SESSION[
'DOLDATE_search_date_end_accountancy_month']);
338 unset($_SESSION[
'DOLDATE_search_date_end_accountancy_year']);
341 if (!empty($socid)) {
342 $param =
'&socid='.$socid;
344 if (!empty($search_date_start)) {
345 $filter[
't.doc_date>='] = $search_date_start;
346 $param .=
'&search_date_startmonth='.$search_date_startmonth.
'&search_date_startday='.$search_date_startday.
'&search_date_startyear='.$search_date_startyear;
348 if (!empty($search_date_end)) {
349 $filter[
't.doc_date<='] = $search_date_end;
350 $param .=
'&search_date_endmonth='.$search_date_endmonth.
'&search_date_endday='.$search_date_endday.
'&search_date_endyear='.$search_date_endyear;
352 if (!empty($search_doc_date)) {
353 $filter[
't.doc_date'] = $search_doc_date;
354 $param .=
'&doc_datemonth='.GETPOSTINT(
'doc_datemonth').
'&doc_dateday='.
GETPOSTINT(
'doc_dateday').
'&doc_dateyear='.
GETPOSTINT(
'doc_dateyear');
356 if ($search_account_category !=
'-1' && !empty($search_account_category)) {
357 require_once DOL_DOCUMENT_ROOT.
'/accountancy/class/accountancycategory.class.php';
360 $listofaccountsforgroup = $accountingcategory->getCptsCat(0,
'fk_accounting_category = '.((
int) $search_account_category));
361 $listofaccountsforgroup2 = array();
362 if (is_array($listofaccountsforgroup)) {
363 foreach ($listofaccountsforgroup as $tmpval) {
364 $listofaccountsforgroup2[] =
"'".$db->escape((
string) $tmpval[
'account_number']).
"'";
367 if (!empty($listofaccountsforgroup2)) {
368 $filter[
't.search_accounting_code_in'] = implode(
',', $listofaccountsforgroup2);
370 $filter[
't.search_accounting_code_in'] =
"''";
371 setEventMessages($langs->trans(
"ThisCategoryHasNoItems"),
null,
'warnings');
373 $param .=
'&search_account_category='.urlencode((
string) ($search_account_category));
375 if (!empty($search_accountancy_code_start)) {
376 if ($type ==
'sub') {
377 $filter[
't.subledger_account>='] = $search_accountancy_code_start;
379 $filter[
't.numero_compte>='] = $search_accountancy_code_start;
381 $param .=
'&search_accountancy_code_start=' . urlencode($search_accountancy_code_start);
383 if (!empty($search_accountancy_code_end)) {
384 if ($type ==
'sub') {
385 $filter[
't.subledger_account<='] = $search_accountancy_code_end;
387 $filter[
't.numero_compte<='] = $search_accountancy_code_end;
389 $param .=
'&search_accountancy_code_end=' . urlencode($search_accountancy_code_end);
391 if (!empty($search_label_account)) {
392 $filter[
't.label_compte'] = $search_label_account;
393 $param .=
'&search_label_compte='.urlencode($search_label_account);
395 if (!empty($search_mvt_num)) {
396 $filter[
't.piece_num'] = $search_mvt_num;
397 $param .=
'&search_mvt_num='.urlencode((
string) ($search_mvt_num));
399 if (!empty($search_doc_ref)) {
400 $filter[
't.doc_ref'] = $search_doc_ref;
401 $param .=
'&search_doc_ref='.urlencode($search_doc_ref);
403 if (!empty($search_label_operation)) {
404 $filter[
't.label_operation'] = $search_label_operation;
405 $param .=
'&search_label_operation='.urlencode($search_label_operation);
407 if (!empty($search_direction)) {
408 $filter[
't.sens'] = $search_direction;
409 $param .=
'&search_direction='.urlencode($search_direction);
411 if (!empty($search_ledger_code)) {
412 $filter[
't.code_journal'] = $search_ledger_code;
413 foreach ($search_ledger_code as $code) {
414 $param .=
'&search_ledger_code[]='.urlencode($code);
417 if (!empty($search_lettering_code)) {
418 $filter[
't.lettering_code'] = $search_lettering_code;
419 $param .=
'&search_lettering_code='.urlencode($search_lettering_code);
421 if (!empty($search_debit)) {
422 $filter[
't.debit'] = $search_debit;
423 $param .=
'&search_debit='.urlencode($search_debit);
425 if (!empty($search_credit)) {
426 $filter[
't.credit'] = $search_credit;
427 $param .=
'&search_credit='.urlencode($search_credit);
429 if (!empty($search_not_reconciled)) {
430 $filter[
't.reconciled_option'] = $search_not_reconciled;
431 $param .=
'&search_not_reconciled='.urlencode($search_not_reconciled);
433 if (!empty($search_date_export_start)) {
434 $filter[
't.date_export>='] = $search_date_export_start;
435 $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;
437 if (!empty($search_date_export_end)) {
438 $filter[
't.date_export<='] = $search_date_export_end;
439 $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;
441 if (!empty($search_date_validation_start)) {
442 $filter[
't.date_validated>='] = $search_date_validation_start;
443 $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;
445 if (!empty($search_date_validation_end)) {
446 $filter[
't.date_validated<='] = $search_date_validation_end;
447 $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;
450 if (!empty($search_date_due_start)) {
451 $filter[
't.date_lim_reglement>='] = $search_date_due_start;
452 $param .=
'&search_date_due_start_day='.$search_date_due_start_day.
'&search_date_due_start_month='.$search_date_due_start_month.
'&search_date_due_start_year='.$search_date_due_start_year;
455 if (!empty($search_date_due_end)) {
456 $filter[
't.date_lim_reglement<='] = $search_date_due_end;
457 $param .=
'&search_date_due_end_day='.$search_date_due_end_day.
'&search_date_due_end_month='.$search_date_due_end_month.
'&search_date_due_end_year='.$search_date_due_end_year;
459 if (!empty($search_import_key)) {
460 $filter[
't.import_key'] = $search_import_key;
461 $param .=
'&search_import_key='.urlencode($search_import_key);
464 $url_param = substr($param, 1);
466 $param =
'&type='.$type.$param;
470 if ($action ===
'exporttopdf' && $permissiontoadd) {
471 if ($type ==
"sub") {
472 $object->fetchAllByAccount($sortorder, $sortfield, 0, 0, $filter,
'AND', 1);
474 $object->fetchAllByAccount($sortorder, $sortfield, 0, 0, $filter);
476 require_once DOL_DOCUMENT_ROOT .
'/core/modules/accountancy/doc/pdf_ledger.modules.php';
478 $pdf->fromDate = $search_date_start;
479 $pdf->toDate = $search_date_end;
480 $pdf->ledgerType = $type;
482 $result = $pdf->write_file($object, $langs);
493 $objectclass =
'Bookkeeping';
494 $objectlabel =
'Bookkeeping';
495 $uploaddir = $conf->societe->dir_output;
498 include DOL_DOCUMENT_ROOT.
'/core/actions_massactions.inc.php';
500 if (!$error && $action ==
'deletebookkeepingwriting' && $confirm ==
"yes" && $user->hasRight(
'accounting',
'mouvements',
'supprimer')) {
505 $nb_lettering = $lettering->bookkeepingLetteringAll($toselect,
true);
506 if ($nb_lettering < 0) {
514 foreach ($toselect as $toselectid) {
515 $result =
$object->fetch($toselectid);
516 if ($result > 0 && (!isset(
$object->date_validation) ||
$object->date_validation ===
'')) {
520 } elseif ($result == 0) {
521 setEventMessages($langs->trans(
"ErrorBookkeepingDocDateNotOnActiveFiscalPeriod"),
null,
'errors');
529 } elseif ($result < 0) {
533 } elseif (isset(
$object->date_validation) &&
$object->date_validation !=
'') {
534 setEventMessages($langs->trans(
"ValidatedRecordWhereFound"),
null,
'errors');
547 } elseif ($nbok > 0) {
553 header(
"Location: ".$_SERVER[
"PHP_SELF"].
"?noreset=1".($param ?
'&'.$param :
''));
561 if (!$error && $action ==
'clonebookkeepingwriting' && $confirm ==
"yes" && $user->hasRight(
'accounting',
'mouvements',
'creer')) {
562 $result =
$object->newCloneMass($toselect, $journal_code, $massdate);
568 header(
"Location: ".$_SERVER[
"PHP_SELF"].
"?noreset=1".($param ?
'&'.$param :
''));
576 if (!$error && $action ==
'assignaccountbookkeepingwriting' && $confirm ==
"yes" && $user->hasRight(
'accounting',
'mouvements',
'creer')) {
577 $result =
$object->assignAccountMass($toselect, (
int) $account);
583 header(
"Location: ".$_SERVER[
"PHP_SELF"].
"?noreset=1".($param ?
'&'.$param :
''));
591 if (!$error && $action ==
'returnaccountbookkeepingwriting' && $confirm ==
"yes" && $user->hasRight(
'accounting',
'mouvements',
'creer')) {
592 $result =
$object->newReturnAccount($toselect, $journal_code, $massdate);
598 header(
"Location: ".$_SERVER[
"PHP_SELF"].
"?noreset=1".($param ?
'&'.$param :
''));
607 if ($massaction ==
'letteringauto' && $permissiontoadd) {
609 $nb_lettering = $lettering->bookkeepingLetteringAll($toselect);
610 if ($nb_lettering < 0) {
613 $nb_lettering = max(0, abs($nb_lettering) - 2);
614 } elseif ($nb_lettering == 0) {
616 setEventMessages($langs->trans(
'AccountancyNoLetteringModified'), array(),
'mesgs');
618 if ($nb_lettering == 1) {
619 setEventMessages($langs->trans(
'AccountancyOneLetteringModifiedSuccessfully'), array(),
'mesgs');
620 } elseif ($nb_lettering > 1) {
621 setEventMessages($langs->trans(
'AccountancyLetteringModifiedSuccessfully', $nb_lettering), array(),
'mesgs');
625 header(
'Location: ' . $_SERVER[
'PHP_SELF'] .
'?noreset=1' . $param);
628 } elseif ($massaction ==
'letteringmanual' && $permissiontoadd) {
630 $result = $lettering->updateLettering($toselect);
634 setEventMessages($langs->trans($result == 0 ?
'AccountancyNoLetteringModified' :
'AccountancyOneLetteringModifiedSuccessfully'), array(),
'mesgs');
635 header(
'Location: ' . $_SERVER[
'PHP_SELF'] .
'?noreset=1' . $param);
638 } elseif ($type ==
'sub' && $massaction ==
'letteringpartial') {
640 $result = $lettering->updateLettering($toselect, 0,
true);
644 setEventMessages($langs->trans($result == 0 ?
'AccountancyNoLetteringModified' :
'AccountancyOneLetteringModifiedSuccessfully'), array(),
'mesgs');
645 header(
'Location: ' . $_SERVER[
'PHP_SELF'] .
'?noreset=1' . $param);
648 } elseif ($action ==
'unletteringauto' && $confirm ==
"yes" && $permissiontoadd) {
650 $nb_lettering = $lettering->bookkeepingLetteringAll($toselect,
true);
651 if ($nb_lettering < 0) {
654 $nb_lettering = max(0, abs($nb_lettering) - 2);
655 } elseif ($nb_lettering == 0) {
657 setEventMessages($langs->trans(
'AccountancyNoUnletteringModified'), array(),
'mesgs');
659 if ($nb_lettering == 1) {
660 setEventMessages($langs->trans(
'AccountancyOneUnletteringModifiedSuccessfully'), array(),
'mesgs');
661 } elseif ($nb_lettering > 1) {
662 setEventMessages($langs->trans(
'AccountancyUnletteringModifiedSuccessfully', $nb_lettering), array(),
'mesgs');
666 header(
'Location: ' . $_SERVER[
'PHP_SELF'] .
'?noreset=1' . $param);
669 } elseif ($action ==
'unletteringmanual' && $confirm ==
"yes" && $permissiontoadd) {
671 $nb_lettering = $lettering->deleteLettering($toselect);
675 setEventMessages($langs->trans($result == 0 ?
'AccountancyNoUnletteringModified' :
'AccountancyOneUnletteringModifiedSuccessfully'), array(),
'mesgs');
676 header(
'Location: ' . $_SERVER[
'PHP_SELF'] .
'?noreset=1' . $param);
691$form =
new Form($db);
693$title_page = $langs->trans(
"Operations").
' - '.$langs->trans(
"VueByAccountAccounting").
' (';
695 $title_page .= $langs->trans(
"BookkeepingSubAccount");
697 $title_page .= $langs->trans(
"Bookkeeping");
700$help_url =
'EN:Module_Double_Entry_Accounting|FR:Module_Comptabilité_en_Partie_Double';
701llxHeader(
'', $title_page, $help_url,
'', 0, 0,
'',
'',
'',
'mod-accountancy accountancy-consultation page-'.(($type ==
'sub') ?
'sub' :
'').
'ledger');
704 $companystatic =
new Societe($db);
705 $res = $companystatic->fetch($socid);
712 print
dol_get_fiche_head($head,
'accounting', $langs->trans(
"ThirdParty"), -1,
'company');
714 $linkback =
'<a href="'.DOL_URL_ROOT.
'/societe/list.php?restore_lastsearch_values=1">'.$langs->trans(
"BackToList").
'</a>';
716 dol_banner_tab($companystatic,
'socid', $linkback, ($user->socid ? 0 : 1),
'rowid',
'nom');
718 print
'<div class="fichecenter">';
720 print
'<div class="underbanner clearboth"></div>';
721 print
'<table class="border centpercent tableforfield">';
724 print
'<tr><td class="titlefield">'.$langs->trans(
'NatureOfThirdParty').
'</td><td>';
725 print $companystatic->getTypeUrl(1);
729 if ($companystatic->client && !empty($companystatic->code_client)) {
730 print
'<tr><td class="titlefield">';
731 print $langs->trans(
'CustomerCode').
'</td><td>';
733 $tmpcheck = $companystatic->check_codeclient();
734 if ($tmpcheck != 0 && $tmpcheck != -5) {
735 print
' <span class="error">('.$langs->trans(
"WrongCustomerCode").
')</span>';
741 if ($companystatic->fournisseur && !empty($companystatic->code_fournisseur)) {
742 print
'<tr><td class="titlefield">';
743 print $langs->trans(
'SupplierCode').
'</td><td>';
745 $tmpcheck = $companystatic->check_codefournisseur();
746 if ($tmpcheck != 0 && $tmpcheck != -5) {
747 print
' <span class="error">('.$langs->trans(
"WrongSupplierCode").
')</span>';
757 print
info_admin($langs->trans(
"WarningThisPageContainsOnlyEntriesTransferredInAccounting"));
761 if (!empty($conf->dol_use_jmobile)) {
762 print
"\n".
'<div class="fichecenter"><div class="nowrap">'.
"\n";
765 if ($companystatic->client && !empty($companystatic->code_compta_client)) {
766 if ($mode !=
'customer') {
767 if (!empty($companystatic->code_compta_client)) {
768 $subledger_start_account = $subledger_end_account = $companystatic->code_compta_client;
770 $subledger_start_account = $subledger_end_account =
'';
772 print
'<a class="a-mesure-disabled marginleftonly marginrightonly reposition" href="' . $_SERVER[
"PHP_SELF"] .
'?mode=customer&socid='.$socid.
'&type=sub&search_accountancy_code_start='.$subledger_start_account.
'&search_accountancy_code_end='.$subledger_end_account.
'">';
774 print
'<span class="a-mesure marginleftonly marginrightonly">';
777 print $langs->trans(
"CustomerAccountancyCodeShort");
778 if ($mode !=
'customer') {
785 if ($companystatic->fournisseur && !empty($companystatic->code_compta_fournisseur)) {
786 if ($mode !=
'supplier') {
787 if (!empty($companystatic->code_compta_fournisseur)) {
788 $subledger_start_account = $subledger_end_account = $companystatic->code_compta_fournisseur;
790 $subledger_start_account = $subledger_end_account =
'';
792 print
'<a class="a-mesure-disabled marginleftonly marginrightonly reposition" href="' . $_SERVER[
"PHP_SELF"] .
'?mode=supplier&socid='.$socid.
'&type=sub&search_accountancy_code_start='.$subledger_start_account.
'&search_accountancy_code_end='.$subledger_end_account.
'">';
794 print
'<span class="a-mesure marginleftonly marginrightonly">';
796 print $langs->trans(
"SupplierAccountancyCodeShort");
797 if ($mode !=
'supplier') {
804 if (!empty($conf->dol_use_jmobile)) {
805 print
'</div></div>';
814$nbtotalofrecords =
'';
817 if ($type ==
'sub') {
818 $nbtotalofrecords =
$object->fetchAllByAccount($sortorder, $sortfield, 0, 0, $filter,
'AND', 1, 1);
820 $nbtotalofrecords =
$object->fetchAllByAccount($sortorder, $sortfield, 0, 0, $filter,
'AND', 0, 1);
823 if ($nbtotalofrecords < 0) {
831 if ($type ==
'sub') {
832 $result =
$object->fetchAllByAccount($sortorder, $sortfield, $limit, $offset, $filter,
'AND', 1);
834 $result =
$object->fetchAllByAccount($sortorder, $sortfield, $limit, $offset, $filter,
'AND', 0);
844$arrayofselected = is_array($toselect) ? $toselect : array();
851$arrayofmassactions = array();
852if (
getDolGlobalInt(
'ACCOUNTING_ENABLE_LETTERING') && $user->hasRight(
'accounting',
'mouvements',
'creer')) {
853 $arrayofmassactions[
'letteringauto'] =
img_picto(
'',
'check',
'class="pictofixedwidth"') . $langs->trans(
'LetteringAuto');
854 $arrayofmassactions[
'preunletteringauto'] =
img_picto(
'',
'uncheck',
'class="pictofixedwidth"') . $langs->trans(
'UnletteringAuto');
855 $arrayofmassactions[
'letteringmanual'] =
img_picto(
'',
'check',
'class="pictofixedwidth"') . $langs->trans(
'LetteringManual');
856 if ($type ==
'sub') {
857 $arrayofmassactions[
'letteringpartial'] =
img_picto(
'',
'check',
'class="pictofixedwidth"') . $langs->trans(
'LetteringPartial');
859 $arrayofmassactions[
'preunletteringmanual'] =
img_picto(
'',
'uncheck',
'class="pictofixedwidth"') . $langs->trans(
'UnletteringManual');
861if ($user->hasRight(
'accounting',
'mouvements',
'creer')) {
862 $arrayofmassactions[
'preclonebookkeepingwriting'] =
img_picto(
'',
'clone',
'class="pictofixedwidth"').$langs->trans(
"Clone");
864if ($user->hasRight(
'accounting',
'mouvements',
'creer')) {
865 $arrayofmassactions[
'preassignaccountbookkeepingwriting'] =
img_picto(
'',
'fa-exchange-alt',
'class="pictofixedwidth"').$langs->trans(
"AssignAccount");
867if ($user->hasRight(
'accounting',
'mouvements',
'creer')) {
868 $arrayofmassactions[
'prereturnaccountbookkeepingwriting'] =
img_picto(
'',
'undo',
'class="pictofixedwidth"').$langs->trans(
"ReturnAccount");
870if ($user->hasRight(
'accounting',
'mouvements',
'supprimer')) {
871 $arrayofmassactions[
'predeletebookkeepingwriting'] =
img_picto(
'',
'delete',
'class="pictofixedwidth"').$langs->trans(
"Delete");
874if (
GETPOSTINT(
'nomassaction') || in_array($massaction, array(
'preunletteringauto',
'preunletteringmanual',
'predeletebookkeepingwriting',
'preclonebookkeepingwriting',
'preassignaccountbookkeepingwriting',
'prereturnaccountbookkeepingwriting'))) {
875 $arrayofmassactions = array();
877$massactionbutton = $form->selectMassAction($massaction, $arrayofmassactions);
879print
'<form method="POST" id="searchFormList" action="'.dolBuildUrl($_SERVER[
"PHP_SELF"]).
'">';
880print
'<input type="hidden" name="token" value="'.newToken().
'">';
881print
'<input type="hidden" name="action" value="list">';
882if ($optioncss !=
'') {
883 print
'<input type="hidden" name="optioncss" value="'.$optioncss.
'">';
885print
'<input type="hidden" name="formfilteraction" id="formfilteraction" value="list">';
886print
'<input type="hidden" name="type" value="'.$type.
'">';
888 print
'<input type="hidden" name="socid" value="' . $socid .
'">';
890print
'<input type="hidden" name="sortfield" value="'.$sortfield.
'">';
891print
'<input type="hidden" name="sortorder" value="'.$sortorder.
'">';
892print
'<input type="hidden" name="contextpage" value="'.$contextpage.
'">';
894$parameters = array(
'param' => $param);
895$reshook = $hookmanager->executeHooks(
'addMoreActionsButtonsList', $parameters, $object, $action);
900$newcardbutton = empty($hookmanager->resPrint) ?
'' : $hookmanager->resPrint;
902if (empty($reshook)) {
905 $newcardbutton =
dolGetButtonTitle($langs->trans(
'ViewFlatList'),
'',
'fa fa-list paddingleft imgforviewmode', DOL_URL_ROOT .
'/accountancy/bookkeeping/list.php?' . $param);
906 if ($type ==
'sub') {
907 $newcardbutton .=
dolGetButtonTitle($langs->trans(
'GroupByAccountAccounting'),
'',
'fa fa-stream paddingleft imgforviewmode', DOL_URL_ROOT .
'/accountancy/bookkeeping/listbyaccount.php?' . $url_param,
'', 1, array(
'morecss' =>
'marginleftonly'));
908 $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'));
910 $newcardbutton .=
dolGetButtonTitle($langs->trans(
'GroupByAccountAccounting'),
'',
'fa fa-stream paddingleft imgforviewmode', DOL_URL_ROOT .
'/accountancy/bookkeeping/listbyaccount.php?' . $url_param,
'', 1, array(
'morecss' =>
'marginleftonly btnTitleSelected'));
911 $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'));
914 $newcardbutton .=
dolGetButtonTitle($langs->trans(
'ExportToPdf'),
'',
'fa fa-file-pdf paddingleft', $_SERVER[
'PHP_SELF'] .
'?action=exporttopdf'.(!empty($type) ?
'&type=sub' :
'').
'&' . $url_param,
'', $permissiontoexport, array(
'morecss' =>
'marginleftonly'));
918 $newcardbutton .=
dolGetButtonTitle($langs->trans(
'NewAccountingMvt'),
'',
'fa fa-plus-circle paddingleft', DOL_URL_ROOT.
'/accountancy/bookkeeping/card.php?action=create'.(!empty($type) ?
'&type=sub' :
'').
'&backtopage='.urlencode($_SERVER[
'PHP_SELF']),
'', $permissiontoadd);
921if ($contextpage != $_SERVER[
"PHP_SELF"]) {
922 $param .=
'&contextpage='.urlencode($contextpage);
924if ($limit > 0 && $limit != $conf->liste_limit) {
925 $param .=
'&limit='.((int) $limit);
928print_barre_liste($title_page, $page, $_SERVER[
"PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords,
'title_accountancy', 0, $newcardbutton,
'', $limit, 0, 0, 1);
930if ($massaction ==
'preunletteringauto') {
931 print $form->formconfirm($_SERVER[
"PHP_SELF"], $langs->trans(
"ConfirmMassUnletteringAuto"), $langs->trans(
"ConfirmMassUnletteringQuestion", count($toselect)),
"unletteringauto",
null,
'', 0, 200, 500, 1);
932} elseif ($massaction ==
'preunletteringmanual') {
933 print $form->formconfirm($_SERVER[
"PHP_SELF"], $langs->trans(
"ConfirmMassUnletteringManual"), $langs->trans(
"ConfirmMassUnletteringQuestion", count($toselect)),
"unletteringmanual",
null,
'', 0, 200, 500, 1);
934} elseif ($massaction ==
'predeletebookkeepingwriting') {
935 print $form->formconfirm($_SERVER[
"PHP_SELF"], $langs->trans(
"ConfirmMassDeleteBookkeepingWriting"), $langs->trans(
"ConfirmMassDeleteBookkeepingWritingQuestion", count($toselect)),
"deletebookkeepingwriting",
null,
'', 0, 200, 500, 1);
936} elseif ($massaction ==
'preassignaccountbookkeepingwriting') {
937 $input = $formaccounting->select_account(
'',
'account', 1);
938 $formquestion = array(array(
'type' =>
'other',
'name' =>
'account',
'label' =>
'<span class="fieldrequired">' . $langs->trans(
"AccountAccountingShort") .
'</span>',
'value' => $input),);
939 print $form->formconfirm($_SERVER[
"PHP_SELF"], $langs->trans(
"confirmMassAssignAccountBookkeepingWritingConfirm"), $langs->trans(
"ConfirmMassAssignAccountBookkeepingWritingQuestion", count($toselect)),
"assignaccountbookkeepingwriting", $formquestion,
'', 0, 200, 500, 1);
940} elseif ($massaction ==
'preclonebookkeepingwriting') {
941 $input1 = $form->selectDate(
'',
'massdate', 0, 0, 0,
"create_mvt", 1, 1);
942 $input2 = $formaccounting->select_journal($journal_code,
'code_journal', 0, 0, 1, 1).
'</td>';
943 $formquestion = array(
946 'name' =>
'massdate',
947 'label' =>
'<span class="fieldrequired">' . $langs->trans(
"Docdate") .
'</span>',
953 $formquestion[] = array(
955 'name' =>
'code_journal',
956 'label' =>
'<span class="fieldrequired">' . $langs->trans(
"Codejournal") .
'</span>',
961 print $form->formconfirm(
962 $_SERVER[
"PHP_SELF"],
963 $langs->trans(
"ConfirmMassCloneBookkeepingWriting"),
964 $langs->trans(
"ConfirmMassCloneBookkeepingWritingQuestion", count($toselect)),
965 "clonebookkeepingwriting",
969} elseif ($massaction ==
'prereturnaccountbookkeepingwriting') {
970 $input1 = $form->selectDate(
'',
'massdate', 0, 0, 0,
"create_mvt", 1, 1);
971 $formquestion = array(array(
'type' =>
'other',
'name' =>
'massdate',
'label' =>
'<span class="fieldrequired">' . $langs->trans(
"Docdate") .
'</span>',
'value' => $input1));
972 print $form->formconfirm($_SERVER[
"PHP_SELF"], $langs->trans(
"ConfirmMassReturnAccountBookkeepingWriting"), $langs->trans(
"ConfirmMassReturnAccountBookkeepingWritingQuestion", count($toselect)),
"returnaccountbookkeepingwriting", $formquestion,
'', 0, 200, 500, 1);
975include DOL_DOCUMENT_ROOT.
'/core/tpl/massactions_pre.tpl.php';
977$varpage = empty($contextpage) ? $_SERVER[
"PHP_SELF"] : $contextpage;
978$selectedfields = $form->multiSelectArrayWithCheckbox(
'selectedfields', $arrayfields, $varpage,
getDolGlobalString(
'MAIN_CHECKBOX_LEFT_COLUMN'));
979if ($massactionbutton && $contextpage !=
'poslist') {
980 $selectedfields .= $form->showCheckAddButtons(
'checkforselect', 1);
984if (preg_match(
'/^asc/i', $sortorder)) {
991if ($type ==
'sub' && !$socid) {
992 print
info_admin($langs->trans(
"WarningRecordWithoutSubledgerAreExcluded"));
999$moreforfilter .=
'<div class="divsearchfield">';
1000$moreforfilter .= $langs->trans(
'AccountAccounting').
': ';
1001$moreforfilter .=
'<div class="nowrap inline-block">';
1002if ($type ==
'sub') {
1004 $moreforfilter .= $formaccounting->select_auxaccount($search_accountancy_code_start,
'search_accountancy_code_start', $langs->trans(
'From'),
'maxwidth200');
1006 $moreforfilter .=
'<input type="text" class="maxwidth150" name="search_accountancy_code_start" value="'.dol_escape_htmltag($search_accountancy_code_start).
'" placeholder="'.$langs->trans(
'From').
'">';
1009 $moreforfilter .= $formaccounting->select_account($search_accountancy_code_start,
'search_accountancy_code_start', $langs->trans(
'From'), array(), 1, 1,
'maxwidth200');
1011$moreforfilter .=
' ';
1012if ($type ==
'sub') {
1014 $moreforfilter .= $formaccounting->select_auxaccount($search_accountancy_code_end,
'search_accountancy_code_end', $langs->trans(
'to'),
'maxwidth200');
1016 $moreforfilter .=
'<input type="text" class="maxwidth150" name="search_accountancy_code_end" value="'.dol_escape_htmltag($search_accountancy_code_end).
'" placeholder="'.$langs->trans(
'to').
'">';
1019 $moreforfilter .= $formaccounting->select_account($search_accountancy_code_end,
'search_accountancy_code_end', $langs->trans(
'to'), array(), 1, 1,
'maxwidth200');
1023 $moreforfilter .=
' <a id="previous_account" accesskey="p" title="' . $conf->browser->stringforfirstkey .
' p" class="classfortooltip" href="#"><i class="fa fa-chevron-left"></i></a>';
1024 $moreforfilter .=
' <a id="next_account" accesskey="n" title="' . $conf->browser->stringforfirstkey .
' n" class="classfortooltip" href="#"><i class="fa fa-chevron-right"></i></a>';
1025 $moreforfilter .= <<<SCRIPT
1026<script
type=
"text/javascript">
1027 jQuery(document).ready(
function() {
1028 var searchFormList = $(
'#searchFormList');
1029 var searchAccountancyCodeStart = $(
'#search_accountancy_code_start');
1030 var searchAccountancyCodeEnd = $(
'#search_accountancy_code_end');
1031 jQuery(
'#previous_account').on(
'click',
function() {
1032 var previousOption = searchAccountancyCodeStart.find(
'option:selected').prev(
'option');
1033 if (previousOption.length == 1) searchAccountancyCodeStart.val(previousOption.attr(
'value'));
1034 searchAccountancyCodeEnd.val(searchAccountancyCodeStart.val());
1035 searchFormList.submit();
1037 jQuery(
'#next_account').on(
'click',
function() {
1038 var nextOption = searchAccountancyCodeStart.find(
'option:selected').next(
'option');
1039 if (nextOption.length == 1) searchAccountancyCodeStart.val(nextOption.attr(
'value'));
1040 searchAccountancyCodeEnd.val(searchAccountancyCodeStart.val());
1041 searchFormList.submit();
1043 jQuery(
'input[name="search_mvt_num"]').on(
"keypress",
function(event) {
1050$moreforfilter .=
'</div>';
1051$moreforfilter .=
'</div>';
1054 $moreforfilter .=
'<div class="divsearchfield">';
1055 $moreforfilter .= $langs->trans(
'AccountingCategory') .
': ';
1056 $moreforfilter .=
'<div class="nowrap inline-block">';
1057 $moreforfilter .= $formaccounting->select_accounting_category($search_account_category,
'search_account_category', 1, 0, 0, 0);
1058 $moreforfilter .=
'</div>';
1059 $moreforfilter .=
'</div>';
1062$parameters = array();
1063$reshook = $hookmanager->executeHooks(
'printFieldPreListTitle', $parameters, $object, $action);
1064if (empty($reshook)) {
1065 $moreforfilter .= $hookmanager->resPrint;
1067 $moreforfilter = $hookmanager->resPrint;
1070print
'<div class="liste_titre liste_titre_bydiv centpercent">';
1071print $moreforfilter;
1074print
'<div class="div-table-responsive">';
1075print
'<table class="tagtable liste centpercent listwithfilterbefore">';
1078print
'<tr class="liste_titre_filter">';
1081 print
'<td class="liste_titre center">';
1082 $searchpicto = $form->showFilterButtons(
'left');
1087if (!empty($arrayfields[
't.piece_num'][
'checked'])) {
1088 print
'<td class="liste_titre"><input type="text" name="search_mvt_num" class="width50" value="'.dol_escape_htmltag($search_mvt_num).
'"></td>';
1091if (!empty($arrayfields[
't.code_journal'][
'checked'])) {
1092 print
'<td class="liste_titre center">';
1093 print $formaccounting->multi_select_journal($search_ledger_code,
'search_ledger_code', 0, 1, 1, 1,
'maxwidth75');
1097if (!empty($arrayfields[
't.doc_date'][
'checked'])) {
1098 print
'<td class="liste_titre center">';
1099 print
'<div class="nowrapfordate">';
1100 print $form->selectDate($search_date_start,
'search_date_start', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
"From"));
1102 print
'<div class="nowrapfordate">';
1103 print $form->selectDate($search_date_end,
'search_date_end', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
"to"));
1108if (!empty($arrayfields[
't.doc_ref'][
'checked'])) {
1109 print
'<td class="liste_titre"><input type="text" size="7" class="flat" name="search_doc_ref" value="'.dol_escape_htmltag($search_doc_ref).
'"/></td>';
1112if (!empty($arrayfields[
't.label_operation'][
'checked'])) {
1113 print
'<td class="liste_titre"><input type="text" size="7" class="flat" name="search_label_operation" value="'.dol_escape_htmltag($search_label_operation).
'"/></td>';
1116if (!empty($arrayfields[
't.lettering_code'][
'checked'])) {
1117 print
'<td class="liste_titre center">';
1118 print
'<input type="text" size="3" class="flat" name="search_lettering_code" value="'.$search_lettering_code.
'"/>';
1119 print
'<br><span class="nowrap"><input type="checkbox" name="search_not_reconciled" value="notreconciled"'.($search_not_reconciled ==
'notreconciled' ?
' checked' :
'').
'>'.$langs->trans(
"NotReconciled").
'</span>';
1123if (!empty($arrayfields[
't.debit'][
'checked'])) {
1124 print
'<td class="liste_titre right"><input type="text" class="flat" name="search_debit" size="4" value="'.dol_escape_htmltag($search_debit).
'"></td>';
1127if (!empty($arrayfields[
't.credit'][
'checked'])) {
1128 print
'<td class="liste_titre right"><input type="text" class="flat" name="search_credit" size="4" value="'.dol_escape_htmltag($search_credit).
'"></td>';
1131if (!empty($arrayfields[
't.balance'][
'checked'])) {
1135if (!empty($arrayfields[
't.date_export'][
'checked'])) {
1136 print
'<td class="liste_titre center">';
1137 print
'<div class="nowrapfordate">';
1138 print $form->selectDate($search_date_export_start,
'search_date_export_start', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
"From"));
1140 print
'<div class="nowrapfordate">';
1141 print $form->selectDate($search_date_export_end,
'search_date_export_end', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
"to"));
1146if (!empty($arrayfields[
't.date_validated'][
'checked'])) {
1147 print
'<td class="liste_titre center">';
1148 print
'<div class="nowrapfordate">';
1149 print $form->selectDate($search_date_validation_start,
'search_date_validation_start', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
"From"));
1151 print
'<div class="nowrapfordate">';
1152 print $form->selectDate($search_date_validation_end,
'search_date_validation_end', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
"to"));
1157if (!empty($arrayfields[
't.date_lim_reglement'][
'checked'])) {
1158 print
'<td class="liste_titre center">';
1159 print
'<div class="nowrapfordate">';
1160 print $form->selectDate($search_date_due_start,
'search_date_due_start_', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
"From"));
1162 print
'<div class="nowrapfordate">';
1163 print $form->selectDate($search_date_due_end,
'search_date_due_end_', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
"to"));
1167if (!empty($arrayfields[
't.import_key'][
'checked'])) {
1168 print
'<td class="liste_titre center">';
1169 print
'<input class="flat searchstring maxwidth50" type="text" name="search_import_key" value="'.dol_escape_htmltag($search_import_key).
'">';
1174$parameters = array(
'arrayfields' => $arrayfields);
1175$reshook = $hookmanager->executeHooks(
'printFieldListOption', $parameters);
1176print $hookmanager->resPrint;
1180 print
'<td class="liste_titre center">';
1181 $searchpicto = $form->showFilterButtons();
1187print
'<tr class="liste_titre">';
1189 print_liste_field_titre($selectedfields, $_SERVER[
"PHP_SELF"],
"",
'',
'',
'', $sortfield, $sortorder,
'center maxwidthsearch ');
1191if (!empty($arrayfields[
't.piece_num'][
'checked'])) {
1192 print_liste_field_titre($arrayfields[
't.piece_num'][
'label'], $_SERVER[
'PHP_SELF'],
"t.piece_num",
"", $param,
'', $sortfield, $sortorder,
'tdoverflowmax80imp ');
1194if (!empty($arrayfields[
't.code_journal'][
'checked'])) {
1195 print_liste_field_titre($arrayfields[
't.code_journal'][
'label'], $_SERVER[
'PHP_SELF'],
"t.code_journal",
"", $param,
'', $sortfield, $sortorder,
'center ');
1197if (!empty($arrayfields[
't.doc_date'][
'checked'])) {
1198 print_liste_field_titre($arrayfields[
't.doc_date'][
'label'], $_SERVER[
'PHP_SELF'],
"t.doc_date",
"", $param,
'', $sortfield, $sortorder,
'center ');
1200if (!empty($arrayfields[
't.doc_ref'][
'checked'])) {
1201 print_liste_field_titre($arrayfields[
't.doc_ref'][
'label'], $_SERVER[
'PHP_SELF'],
"t.doc_ref",
"", $param,
"", $sortfield, $sortorder);
1203if (!empty($arrayfields[
't.label_operation'][
'checked'])) {
1204 print_liste_field_titre($arrayfields[
't.label_operation'][
'label'], $_SERVER[
'PHP_SELF'],
"t.label_operation",
"", $param,
"", $sortfield, $sortorder);
1206if (!empty($arrayfields[
't.lettering_code'][
'checked'])) {
1207 print_liste_field_titre($arrayfields[
't.lettering_code'][
'label'], $_SERVER[
'PHP_SELF'],
"t.lettering_code",
"", $param,
'', $sortfield, $sortorder,
'center ');
1209if (!empty($arrayfields[
't.debit'][
'checked'])) {
1210 print_liste_field_titre($arrayfields[
't.debit'][
'label'], $_SERVER[
'PHP_SELF'],
"t.debit",
"", $param,
'', $sortfield, $sortorder,
'right ');
1212if (!empty($arrayfields[
't.credit'][
'checked'])) {
1213 print_liste_field_titre($arrayfields[
't.credit'][
'label'], $_SERVER[
'PHP_SELF'],
"t.credit",
"", $param,
'', $sortfield, $sortorder,
'right ');
1215if (!empty($arrayfields[
't.balance'][
'checked'])) {
1216 print_liste_field_titre($arrayfields[
't.balance'][
'label'],
"",
"",
"", $param,
'', $sortfield, $sortorder,
'right ');
1218if (!empty($arrayfields[
't.date_export'][
'checked'])) {
1219 print_liste_field_titre($arrayfields[
't.date_export'][
'label'], $_SERVER[
'PHP_SELF'],
"t.date_export",
"", $param,
'', $sortfield, $sortorder,
'center ');
1221if (!empty($arrayfields[
't.date_validated'][
'checked'])) {
1222 print_liste_field_titre($arrayfields[
't.date_validated'][
'label'], $_SERVER[
'PHP_SELF'],
"t.date_validated",
"", $param,
'', $sortfield, $sortorder,
'center ');
1225if (!empty($arrayfields[
't.date_lim_reglement'][
'checked'])) {
1226 print_liste_field_titre($arrayfields[
't.date_lim_reglement'][
'label'], $_SERVER[
'PHP_SELF'],
't.date_lim_reglement',
'', $param,
'', $sortfield, $sortorder,
'center ');
1228if (!empty($arrayfields[
't.import_key'][
'checked'])) {
1229 print_liste_field_titre($arrayfields[
't.import_key'][
'label'], $_SERVER[
"PHP_SELF"],
"t.import_key",
"", $param,
'', $sortfield, $sortorder,
'center ');
1232$parameters = array(
'arrayfields' => $arrayfields,
'param' => $param,
'sortfield' => $sortfield,
'sortorder' => $sortorder);
1233$reshook = $hookmanager->executeHooks(
'printFieldListTitle', $parameters);
1234print $hookmanager->resPrint;
1236 print_liste_field_titre($selectedfields, $_SERVER[
"PHP_SELF"],
"",
'',
'',
'', $sortfield, $sortorder,
'center maxwidthsearch ');
1240$displayed_account_number =
null;
1242$objectstatic =
null;
1252$sous_total_debit = 0;
1253$sous_total_credit = 0;
1266if (!empty($arrayfields[
't.piece_num'][
'checked'])) { $colspan++; }
1267if (!empty($arrayfields[
't.code_journal'][
'checked'])) { $colspan++; }
1268if (!empty($arrayfields[
't.doc_date'][
'checked'])) { $colspan++; }
1269if (!empty($arrayfields[
't.doc_ref'][
'checked'])) { $colspan++; }
1270if (!empty($arrayfields[
't.label_operation'][
'checked'])) { $colspan++; }
1271if (!empty($arrayfields[
't.date_export'][
'checked'])) { $colspanend++; }
1272if (!empty($arrayfields[
't.date_validated'][
'checked'])) { $colspanend++; }
1273if (!empty($arrayfields[
't.lettering_code'][
'checked'])) { $colspanend++; }
1279while ($i < min($num, $limit)) {
1282 if ($type ==
'sub') {
1294 if (!empty($arrayfields[
't.piece_num'][
'checked'])) {
1297 if (!empty($arrayfields[
't.code_journal'][
'checked'])) {
1300 if (!empty($arrayfields[
't.doc_date'][
'checked'])) {
1303 if (!empty($arrayfields[
't.doc_ref'][
'checked'])) {
1306 if (!empty($arrayfields[
't.label_operation'][
'checked'])) {
1309 if (!empty($arrayfields[
't.lettering_code'][
'checked'])) {
1313 if (!empty($arrayfields[
't.balance'][
'checked'])) {
1316 if (!empty($arrayfields[
't.date_export'][
'checked'])) {
1319 if (!empty($arrayfields[
't.date_validated'][
'checked'])) {
1323 if (!empty($arrayfields[
't.date_lim_reglement'][
'checked'])) {
1326 if (!empty($arrayfields[
't.lettering_code'][
'checked'])) {
1329 if (!empty($arrayfields[
't.import_key'][
'checked'])) {
1338 if ($accountg != $displayed_account_number || !isset($displayed_account_number)) {
1340 if (isset($displayed_account_number)) {
1341 print
'<tr class="liste_total">';
1342 if ($type ==
'sub') {
1343 print
'<td class="right" colspan="' . $colspan .
'">' . $langs->trans(
"TotalForAccount") .
' ' .
length_accounta($displayed_account_number) .
':</td>';
1345 print
'<td class="right" colspan="' . $colspan .
'">' . $langs->trans(
"TotalForAccount") .
' ' .
length_accountg($displayed_account_number) .
':</td>';
1347 print
'<td class="nowrap right">'.price(
price2num($sous_total_debit,
'MT')).
'</td>';
1348 print
'<td class="nowrap right">'.price(
price2num($sous_total_credit,
'MT')).
'</td>';
1349 if ($colspanend > 0) {
1350 print
'<td colspan="'.$colspanend.
'"></td>';
1354 $balance = $sous_total_debit - $sous_total_credit;
1355 print
'<tr class="liste_total">';
1356 print
'<td class="right" colspan="'.$colspan.
'">'.$langs->trans(
"Balance").
':</td>';
1358 print
'<td class="nowraponall right">';
1359 print
price(
price2num($sous_total_debit - $sous_total_credit,
'MT'));
1364 print
'<td class="nowraponall right">';
1365 print
price(
price2num($sous_total_credit - $sous_total_debit,
'MT'));
1368 if ($colspanend > 0) {
1369 print
'<td colspan="'.$colspanend.
'"></td>';
1375 print
'<tr class="trforbreaknobg">';
1376 print
'<td colspan="'.($totalarray[
'nbfield'] ?
$totalarray[
'nbfield'] : count($arrayfields) + 1).
'" class="tdforbreak">';
1377 if ($type ==
'sub') {
1378 if ($line->subledger_account !=
"" && $line->subledger_account !=
'-1') {
1379 print empty($line->subledger_label) ?
'<span class="error">'.$langs->trans(
"Unknown").
'</span>' : $line->subledger_label;
1384 print
'<span class="error">' . $langs->trans(
"Unknown");
1385 if ($line->subledger_label) {
1386 print
' (' . $line->subledger_label .
')';
1387 $htmltext =
'EmptyStringForSubledgerAccountButSubledgerLabelDefined';
1389 $htmltext =
'EmptyStringForSubledgerAccountAndSubledgerLabel';
1391 print $form->textwithpicto(
'', $htmltext);
1395 if ($line->numero_compte !=
"" && $line->numero_compte !=
'-1') {
1398 print
'<span class="error">' . $langs->trans(
"Unknown") .
'</span>';
1404 $displayed_account_number = $accountg;
1406 $sous_total_debit = 0;
1407 $sous_total_credit = 0;
1410 print
'<tr class="oddeven">';
1413 print
'<td class="nowraponall center">';
1414 if (($massactionbutton || $massaction) && $contextpage !=
'poslist') {
1416 if (in_array($line->id, $arrayofselected)) {
1419 print
'<input id="cb' . $line->id .
'" class="flat checkforselect" type="checkbox" name="toselect[]" value="' . $line->id .
'"' . ($selected ?
' checked="checked"' :
'') .
' />';
1427 if (!empty($arrayfields[
't.piece_num'][
'checked'])) {
1428 print
'<td class="nowraponall">';
1430 $object->piece_num = $line->piece_num;
1432 print
$object->getNomUrl(1,
'', 0,
'', 1);
1433 print
'<span class="hideonsmartphone">';
1434 if (!empty($line->date_export)) {
1435 print
img_picto($langs->trans(
"DateExport").
": ".
dol_print_date($line->date_export,
'dayhour').
" (".$langs->trans(
"TransactionExportDesc").
")",
'fa-file-export',
'class="paddingleft pictofixedwidth opacitymedium"');
1437 if (!empty($line->date_validation)) {
1438 print
img_picto($langs->trans(
"DateValidation").
": ".
dol_print_date($line->date_validation,
'dayhour').
" (".$langs->trans(
"TransactionBlockedLockedDesc").
")",
'fa-lock',
'class="paddingleft pictofixedwidth opacitymedium"');
1448 if (!empty($arrayfields[
't.code_journal'][
'checked'])) {
1450 $result = $accountingjournal->fetch(0, $line->code_journal);
1451 $journaltoshow = (($result > 0) ? $accountingjournal->getNomUrl(0, 0, 0,
'', 0) : $line->code_journal);
1452 print
'<td class="center tdoverflowmax80">'.$journaltoshow.
'</td>';
1459 if (!empty($arrayfields[
't.doc_date'][
'checked'])) {
1460 print
'<td class="center">'.dol_print_date($line->doc_date,
'day').
'</td>';
1468 if (!empty($arrayfields[
't.doc_ref'][
'checked'])) {
1469 if ($line->doc_type ==
'customer_invoice') {
1470 $langs->loadLangs(array(
'bills'));
1472 require_once DOL_DOCUMENT_ROOT.
'/compta/facture/class/facture.class.php';
1473 $objectstatic =
new Facture($db);
1474 $objectstatic->fetch($line->fk_doc);
1479 $urlsource = $_SERVER[
'PHP_SELF'].
'?id='.$objectstatic->id;
1480 $documentlink = $formfile->getDocumentsLink($objectstatic->element, $filename, $filedir);
1481 } elseif ($line->doc_type ==
'supplier_invoice') {
1482 $langs->loadLangs(array(
'bills'));
1484 require_once DOL_DOCUMENT_ROOT.
'/fourn/class/fournisseur.facture.class.php';
1486 $objectstatic->fetch($line->fk_doc);
1488 $modulepart =
'invoice_supplier';
1490 $filedir = $conf->fournisseur->facture->dir_output.
'/'.
get_exdir($line->fk_doc, 2, 0, 0, $objectstatic, $modulepart).dol_sanitizeFileName($line->doc_ref);
1491 $subdir =
get_exdir($objectstatic->id, 2, 0, 0, $objectstatic, $modulepart).dol_sanitizeFileName($line->doc_ref);
1492 $documentlink = $formfile->getDocumentsLink($objectstatic->element, $subdir, $filedir);
1493 } elseif ($line->doc_type ==
'expense_report') {
1494 $langs->loadLangs(array(
'trips'));
1496 require_once DOL_DOCUMENT_ROOT.
'/expensereport/class/expensereport.class.php';
1498 $objectstatic->fetch($line->fk_doc);
1503 $urlsource = $_SERVER[
'PHP_SELF'].
'?id='.$objectstatic->id;
1504 $documentlink = $formfile->getDocumentsLink($objectstatic->element, $filename, $filedir);
1505 } elseif ($line->doc_type ==
'bank') {
1506 require_once DOL_DOCUMENT_ROOT.
'/compta/bank/class/account.class.php';
1508 $objectstatic->fetch($line->fk_doc);
1513 print
'<td class="tdoverflowmax250">';
1516 if ($line->doc_type ==
'customer_invoice' || $line->doc_type ==
'supplier_invoice' || $line->doc_type ==
'expense_report') {
1517 print $objectstatic->getNomUrl(1,
'', 0, 0,
'', 0, -1, 1);
1518 print $documentlink;
1519 } elseif ($line->doc_type ==
'bank') {
1520 print $objectstatic->getNomUrl(1);
1521 $bank_ref = strstr($line->doc_ref,
'-');
1522 print
' <span class="classfortooltip" title="'.dol_escape_htmltag($line->doc_ref).
'">'.
dol_escape_htmltag($bank_ref).
'</span>';
1524 print $line->doc_ref;
1534 if (!empty($arrayfields[
't.label_operation'][
'checked'])) {
1536 $doc_ref = preg_replace(
'/\(.*\)/',
'', $line->doc_ref);
1538 print
'<td class="small tdoverflowmax350 classfortooltip" title="'.dol_escape_htmltag($line->label_operation).
'">'.
dol_escape_htmltag($line->label_operation).
'</td>';
1540 print
'<td class="small tdoverflowmax350 classfortooltip" title="'.dol_escape_htmltag($line->label_operation.($line->label_operation ?
'<br>' :
'').
'<span style="font-size:0.8em">('.
length_accounta($line->subledger_account).
')').
'">'.
dol_escape_htmltag($line->label_operation).($line->label_operation ?
'<br>' :
'').
'<span style="font-size:0.8em">('.
dol_escape_htmltag(
length_accounta($line->subledger_account)).
')</span></td>';
1548 if (!empty($arrayfields[
't.lettering_code'][
'checked'])) {
1549 print
'<td class="center">'.dol_escape_htmltag((
string) $line->lettering_code).
'</td>';
1556 if (!empty($arrayfields[
't.debit'][
'checked'])) {
1557 print
'<td class="right nowraponall amount">'.($line->debit != 0 ?
price($line->debit) :
'').
'</td>';
1564 $totalarray[
'val'][
'totaldebit'] += (float) $line->debit;
1568 if (!empty($arrayfields[
't.credit'][
'checked'])) {
1569 print
'<td class="right nowraponall amount">'.($line->credit != 0 ?
price($line->credit) :
'').
'</td>';
1576 $totalarray[
'val'][
'totalcredit'] += (float) $line->credit;
1580 if (!empty($arrayfields[
't.balance'][
'checked'])) {
1581 print
'<td class="right nowraponall amount">'.price(
price2num($sous_total_debit + $line->debit - $sous_total_credit - $line->credit,
'MT')).
'</td>';
1588 $totalarray[
'val'][
'totalbalance'] += $line->debit - $line->credit;
1592 if (!empty($arrayfields[
't.date_export'][
'checked'])) {
1593 print
'<td class="center">'.dol_print_date($line->date_export,
'dayhour').
'</td>';
1600 if (!empty($arrayfields[
't.date_validated'][
'checked'])) {
1601 print
'<td class="center">'.dol_print_date($line->date_validation,
'dayhour').
'</td>';
1608 if (!empty($arrayfields[
't.date_lim_reglement'][
'checked'])) {
1609 print
'<td class="center">'.dol_print_date($line->date_lim_reglement,
'day').
'</td>';
1615 if (!empty($arrayfields[
't.import_key'][
'checked'])) {
1616 print
'<td class="tdoverflowmax125" title="'.dol_escape_htmltag($line->import_key).
'">'.
dol_escape_htmltag($line->import_key).
"</td>\n";
1623 $parameters = array(
'arrayfields' => $arrayfields,
'obj' => $line);
1624 $reshook = $hookmanager->executeHooks(
'printFieldListValue', $parameters);
1625 print $hookmanager->resPrint;
1629 print
'<td class="nowraponall center">';
1630 if (($massactionbutton || $massaction) && $contextpage !=
'poslist') {
1632 if (in_array($line->id, $arrayofselected)) {
1635 print
'<input id="cb' . $line->id .
'" class="flat checkforselect" type="checkbox" name="toselect[]" value="' . $line->id .
'"' . ($selected ?
' checked="checked"' :
'') .
' />';
1644 $sous_total_debit += $line->debit;
1645 $sous_total_credit += $line->credit;
1652if ($num > 0 && $colspan > 0) {
1653 print
'<tr class="liste_total">';
1654 print
'<td class="right" colspan="'.$colspan.
'">'.$langs->trans(
"TotalForAccount").
' '.$accountg.
':</td>';
1655 print
'<td class="nowrap right">'.price(
price2num($sous_total_debit,
'MT')).
'</td>';
1656 print
'<td class="nowrap right">'.price(
price2num($sous_total_credit,
'MT')).
'</td>';
1657 if ($colspanend > 0) {
1658 print
'<td colspan="'.$colspanend.
'"></td>';
1663 $balance = $sous_total_debit - $sous_total_credit;
1664 print
'<tr class="liste_total">';
1665 print
'<td class="right" colspan="'.$colspan.
'">'.$langs->trans(
"Balance").
':</td>';
1667 print
'<td class="nowraponall right">';
1668 print
price(
price2num($sous_total_debit - $sous_total_credit,
'MT'));
1673 print
'<td class="nowraponall right">';
1674 print
price(
price2num($sous_total_credit - $sous_total_debit,
'MT'));
1677 if ($colspanend > 0) {
1678 print
'<td colspan="'.$colspanend.
'"></td>';
1685if (!empty($totalarray[
'val'][
'totaldebit'])) {
1688if (!empty($totalarray[
'val'][
'totalcredit'])) {
1689 $totalarray[
'val'][
'totalcredit'] = (float)
price2num($totalarray[
'val'][
'totalcredit'],
'MT');
1691if (!empty($totalarray[
'val'][
'totalbalance'])) {
1692 $totalarray[
'val'][
'totalbalance'] = (float)
price2num($totalarray[
'val'][
'totaldebit'] - $totalarray[
'val'][
'totalcredit'],
'MT');
1697include DOL_DOCUMENT_ROOT.
'/core/tpl/list_print_total.tpl.php';
1702 foreach ($arrayfields as $key => $val) {
1703 if (!empty($val[
'checked'])) {
1707 print
'<tr><td colspan="'.$colspan.
'"><span class="opacitymedium">'.$langs->trans(
"NoRecordFound").
'</span></td></tr>';
1710$parameters = array(
'arrayfields' => $arrayfields);
1711$reshook = $hookmanager->executeHooks(
'printFieldListFooter', $parameters, $object, $action);
1712print $hookmanager->resPrint;
if(! $sortfield) if(! $sortorder) $object
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.
llxFooter($comment='', $zone='private', $disabledoutputofmessages=0)
Empty footer.
if(!defined('NOREQUIRESOC')) if(!defined( 'NOREQUIRETRAN')) if(!defined('NOTOKENRENEWAL')) if(!defined( 'NOREQUIREMENU')) if(!defined('NOREQUIREHTML')) if(!defined( 'NOREQUIREAJAX')) llxHeader($head='', $title='', $help_url='', $target='', $disablejs=0, $disablehead=0, $arrayofjs='', $arrayofcss='', $morequerystring='', $morecssonbody='', $replacemainareaby='', $disablenofollow=0, $disablenoindex=0)
Empty header.
Class to manage bank transaction lines.
Class to manage categories of an accounting account.
Class to manage accounting journals.
Class to manage Ledger (General Ledger and Subledger)
Class to manage Trips and Expenses.
Class to manage suppliers invoices.
Class to manage invoices.
Class to manage third parties objects (customers, suppliers, prospects...)
Class to build sending documents with model Espadon.
societe_prepare_head(Societe $object)
Return array of tabs to used on pages for third parties cards.
dol_get_last_day($year, $month=12, $gm=false)
Return GMT time for last day of a month or year.
dol_now($mode='gmt')
Return date for now.
dol_mktime($hour, $minute, $second, $month, $day, $year, $gm='auto', $check=1)
Return a timestamp date built from detailed information (by default a local PHP server timestamp) Rep...
setEventMessages($mesg, $mesgs, $style='mesgs', $messagekey='', $noduplicate=0, $attop=0)
Set event messages in dol_events session object.
GETPOSTDATE($prefix, $hourTime='', $gm='auto', $saverestore='')
Helper function that combines values of a dolibarr DatePicker (such as Form\selectDate) for year,...
print_liste_field_titre($name, $file="", $field="", $begin="", $param="", $moreattrib="", $sortfield="", $sortorder="", $prefix="", $tooltip="", $forcenowrapcolumntitle=0)
Show title line of an array.
print_barre_liste($title, $page, $file, $options='', $sortfield='', $sortorder='', $morehtmlcenter='', $num=-1, $totalnboflines='', $picto='generic', $pictoisfullpath=0, $morehtmlright='', $morecss='', $limit=-1, $selectlimitsuffix=0, $hidenavigation=0, $pagenavastextinput=0, $morehtmlrightbeforearrow='')
Print a title with navigation controls for pagination.
showValueWithClipboardCPButton($valuetocopy, $showonlyonhover=1, $texttoshow='')
Create a button to copy $valuetocopy in the clipboard (for copy and paste feature).
img_picto($titlealt, $picto, $moreatt='', $pictoisfullpath=0, $srconly=0, $notitle=0, $alt='', $morecss='', $marginleftonlyshort=2, $allowothertags=array())
Show picto whatever it's its name (generic function)
GETPOSTINT($paramname, $method=0)
Return the value of a $_GET or $_POST supervariable, converted into integer.
dol_get_fiche_head($links=array(), $active='', $title='', $notab=0, $picto='', $pictoisfullpath=0, $morehtmlright='', $morecss='', $limittoshow=0, $moretabssuffix='', $dragdropfile=0, $morecssdiv='')
Show tabs of a record.
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.
dol_get_fiche_end($notab=0)
Return tab footer of a card.
setEventMessage($mesgs, $style='mesgs', $noduplicate=0, $attop=0)
Set event message in dol_events session object.
dol_sanitizeFileName($str, $newstr='_', $unaccent=1, $includequotes=0, $allowdash=0)
Clean a string to use it as a file name.
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.
getDolGlobalInt($key, $default=0)
Return a Dolibarr global constant int value.
dolGetButtonTitleSeparator($moreClass="")
Add space between dolGetButtonTitle.
GETPOST($paramname, $check='alphanohtml', $method=0, $filter=null, $options=null, $noreplace=0)
Return value of a param into GET or POST supervariable.
dol_print_date($time, $format='', $tzoutput='auto', $outputlangs=null, $encodetooutput=false, $decorate=0)
Output date in a string format according to outputlangs (or langs if not defined).
getDolGlobalString($key, $default='')
Return a Dolibarr global constant string value.
isModEnabled($module)
Is Dolibarr module enabled.
info_admin($text, $infoonimgalt=0, $nodiv=0, $admin='1', $morecss='hideonsmartphone', $textfordropdown='', $picto='')
Show information in HTML for admin users or standard users.
get_exdir($num, $level, $alpha, $withoutslash, $object, $modulepart='')
Return a path to have a the directory according to object where files are stored.
dol_getdate($timestamp, $fast=false, $forcetimezone='')
Return an array with locale date info.
dol_escape_htmltag($stringtoescape, $keepb=0, $keepn=0, $noescapetags='', $escapeonlyhtmltags=0, $cleanalsojavascript=0)
Returns text escaped for inclusion in HTML alt or title or value tags, or into values of HTML input f...
if(preg_match('/(crypted|dolcrypt):/i', $dolibarr_main_db_pass)||!empty($dolibarr_main_db_encrypted_pass)) $conf db type
'integer', 'integer:ObjectClass:PathToClass[:AddCreateButtonOrNot[:Filter[:Sortfield]]]',...
accessforbidden($message='', $printheader=1, $printfooter=1, $showonlymessage=0, $params=null)
Show a message to say access is forbidden and stop program.