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"));
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');
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'];
236if (!isModEnabled(
'accounting')) {
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")).
'';
760 if (!empty(
$conf->dol_use_jmobile)) {
761 print
"\n".
'<div class="fichecenter"><div class="nowrap">'.
"\n";
764 if ($companystatic->client && !empty($companystatic->code_compta_client)) {
765 if ($mode !=
'customer') {
766 if (!empty($companystatic->code_compta_client)) {
767 $subledger_start_account = $subledger_end_account = $companystatic->code_compta_client;
769 $subledger_start_account = $subledger_end_account =
'';
771 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.
'">';
773 print
'<span class="a-mesure marginleftonly marginrightonly">';
776 print $langs->trans(
"CustomerAccountancyCodeShort");
777 if ($mode !=
'customer') {
784 if ($companystatic->fournisseur && !empty($companystatic->code_compta_fournisseur)) {
785 if ($mode !=
'supplier') {
786 if (!empty($companystatic->code_compta_fournisseur)) {
787 $subledger_start_account = $subledger_end_account = $companystatic->code_compta_fournisseur;
789 $subledger_start_account = $subledger_end_account =
'';
791 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.
'">';
793 print
'<span class="a-mesure marginleftonly marginrightonly">';
795 print $langs->trans(
"SupplierAccountancyCodeShort");
796 if ($mode !=
'supplier') {
803 if (!empty(
$conf->dol_use_jmobile)) {
804 print
'</div></div>';
813$nbtotalofrecords =
'';
816 if ($type ==
'sub') {
817 $nbtotalofrecords =
$object->fetchAllByAccount($sortorder, $sortfield, 0, 0, $filter,
'AND', 1, 1);
819 $nbtotalofrecords =
$object->fetchAllByAccount($sortorder, $sortfield, 0, 0, $filter,
'AND', 0, 1);
822 if ($nbtotalofrecords < 0) {
830 if ($type ==
'sub') {
831 $result =
$object->fetchAllByAccount($sortorder, $sortfield, $limit, $offset, $filter,
'AND', 1);
833 $result =
$object->fetchAllByAccount($sortorder, $sortfield, $limit, $offset, $filter,
'AND', 0);
843$arrayofselected = is_array($toselect) ? $toselect : array();
850$arrayofmassactions = array();
851if (
getDolGlobalInt(
'ACCOUNTING_ENABLE_LETTERING') && $user->hasRight(
'accounting',
'mouvements',
'creer')) {
852 $arrayofmassactions[
'letteringauto'] =
img_picto(
'',
'check',
'class="pictofixedwidth"') . $langs->trans(
'LetteringAuto');
853 $arrayofmassactions[
'preunletteringauto'] =
img_picto(
'',
'uncheck',
'class="pictofixedwidth"') . $langs->trans(
'UnletteringAuto');
854 $arrayofmassactions[
'letteringmanual'] =
img_picto(
'',
'check',
'class="pictofixedwidth"') . $langs->trans(
'LetteringManual');
855 if ($type ==
'sub') {
856 $arrayofmassactions[
'letteringpartial'] =
img_picto(
'',
'check',
'class="pictofixedwidth"') . $langs->trans(
'LetteringPartial');
858 $arrayofmassactions[
'preunletteringmanual'] =
img_picto(
'',
'uncheck',
'class="pictofixedwidth"') . $langs->trans(
'UnletteringManual');
860if ($user->hasRight(
'accounting',
'mouvements',
'creer')) {
861 $arrayofmassactions[
'preclonebookkeepingwriting'] =
img_picto(
'',
'clone',
'class="pictofixedwidth"').$langs->trans(
"Clone");
863if ($user->hasRight(
'accounting',
'mouvements',
'creer')) {
864 $arrayofmassactions[
'preassignaccountbookkeepingwriting'] =
img_picto(
'',
'fa-exchange-alt',
'class="pictofixedwidth"').$langs->trans(
"AssignAccount");
866if ($user->hasRight(
'accounting',
'mouvements',
'creer')) {
867 $arrayofmassactions[
'prereturnaccountbookkeepingwriting'] =
img_picto(
'',
'undo',
'class="pictofixedwidth"').$langs->trans(
"ReturnAccount");
869if ($user->hasRight(
'accounting',
'mouvements',
'supprimer')) {
870 $arrayofmassactions[
'predeletebookkeepingwriting'] =
img_picto(
'',
'delete',
'class="pictofixedwidth"').$langs->trans(
"Delete");
873if (
GETPOSTINT(
'nomassaction') || in_array($massaction, array(
'preunletteringauto',
'preunletteringmanual',
'predeletebookkeepingwriting',
'preclonebookkeepingwriting',
'preassignaccountbookkeepingwriting',
'prereturnaccountbookkeepingwriting'))) {
874 $arrayofmassactions = array();
876$massactionbutton = $form->selectMassAction($massaction, $arrayofmassactions);
878print
'<form method="POST" id="searchFormList" action="'.$_SERVER[
"PHP_SELF"].
'">';
879print
'<input type="hidden" name="token" value="'.newToken().
'">';
880print
'<input type="hidden" name="action" value="list">';
881if ($optioncss !=
'') {
882 print
'<input type="hidden" name="optioncss" value="'.$optioncss.
'">';
884print
'<input type="hidden" name="formfilteraction" id="formfilteraction" value="list">';
885print
'<input type="hidden" name="type" value="'.$type.
'">';
887 print
'<input type="hidden" name="socid" value="' . $socid .
'">';
889print
'<input type="hidden" name="sortfield" value="'.$sortfield.
'">';
890print
'<input type="hidden" name="sortorder" value="'.$sortorder.
'">';
891print
'<input type="hidden" name="contextpage" value="'.$contextpage.
'">';
893$parameters = array(
'param' => $param);
894$reshook = $hookmanager->executeHooks(
'addMoreActionsButtonsList', $parameters, $object, $action);
899$newcardbutton = empty($hookmanager->resPrint) ?
'' : $hookmanager->resPrint;
901if (empty($reshook)) {
904 $newcardbutton =
dolGetButtonTitle($langs->trans(
'ViewFlatList'),
'',
'fa fa-list paddingleft imgforviewmode', DOL_URL_ROOT .
'/accountancy/bookkeeping/list.php?' . $param);
905 if ($type ==
'sub') {
906 $newcardbutton .=
dolGetButtonTitle($langs->trans(
'GroupByAccountAccounting'),
'',
'fa fa-stream paddingleft imgforviewmode', DOL_URL_ROOT .
'/accountancy/bookkeeping/listbyaccount.php?' . $url_param,
'', 1, array(
'morecss' =>
'marginleftonly'));
907 $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'));
909 $newcardbutton .=
dolGetButtonTitle($langs->trans(
'GroupByAccountAccounting'),
'',
'fa fa-stream paddingleft imgforviewmode', DOL_URL_ROOT .
'/accountancy/bookkeeping/listbyaccount.php?' . $url_param,
'', 1, array(
'morecss' =>
'marginleftonly btnTitleSelected'));
910 $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'));
913 $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'));
917 $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);
920if (!empty($contextpage) && $contextpage != $_SERVER[
"PHP_SELF"]) {
921 $param .=
'&contextpage='.urlencode($contextpage);
923if ($limit > 0 && $limit !=
$conf->liste_limit) {
924 $param .=
'&limit='.((int) $limit);
927print_barre_liste($title_page, $page, $_SERVER[
"PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords,
'title_accountancy', 0, $newcardbutton,
'', $limit, 0, 0, 1);
929if ($massaction ==
'preunletteringauto') {
930 print $form->formconfirm($_SERVER[
"PHP_SELF"], $langs->trans(
"ConfirmMassUnletteringAuto"), $langs->trans(
"ConfirmMassUnletteringQuestion", count($toselect)),
"unletteringauto",
null,
'', 0, 200, 500, 1);
931} elseif ($massaction ==
'preunletteringmanual') {
932 print $form->formconfirm($_SERVER[
"PHP_SELF"], $langs->trans(
"ConfirmMassUnletteringManual"), $langs->trans(
"ConfirmMassUnletteringQuestion", count($toselect)),
"unletteringmanual",
null,
'', 0, 200, 500, 1);
933} elseif ($massaction ==
'predeletebookkeepingwriting') {
934 print $form->formconfirm($_SERVER[
"PHP_SELF"], $langs->trans(
"ConfirmMassDeleteBookkeepingWriting"), $langs->trans(
"ConfirmMassDeleteBookkeepingWritingQuestion", count($toselect)),
"deletebookkeepingwriting",
null,
'', 0, 200, 500, 1);
935} elseif ($massaction ==
'preassignaccountbookkeepingwriting') {
936 $input = $formaccounting->select_account(
'',
'account', 1);
937 $formquestion = array(array(
'type' =>
'other',
'name' =>
'account',
'label' =>
'<span class="fieldrequired">' . $langs->trans(
"AccountAccountingShort") .
'</span>',
'value' => $input),);
938 print $form->formconfirm($_SERVER[
"PHP_SELF"], $langs->trans(
"confirmMassAssignAccountBookkeepingWritingConfirm"), $langs->trans(
"ConfirmMassAssignAccountBookkeepingWritingQuestion", count($toselect)),
"assignaccountbookkeepingwriting", $formquestion,
'', 0, 200, 500, 1);
939} elseif ($massaction ==
'preclonebookkeepingwriting') {
940 $input1 = $form->selectDate(
'',
'massdate', 0, 0, 0,
"create_mvt", 1, 1);
941 $input2 = $formaccounting->select_journal($journal_code,
'code_journal', 0, 0, 1, 1).
'</td>';
942 $formquestion = array(
945 'name' =>
'massdate',
946 'label' =>
'<span class="fieldrequired">' . $langs->trans(
"Docdate") .
'</span>',
952 $formquestion[] = array(
954 'name' =>
'code_journal',
955 'label' =>
'<span class="fieldrequired">' . $langs->trans(
"Codejournal") .
'</span>',
960 print $form->formconfirm(
961 $_SERVER[
"PHP_SELF"],
962 $langs->trans(
"ConfirmMassCloneBookkeepingWriting"),
963 $langs->trans(
"ConfirmMassCloneBookkeepingWritingQuestion", count($toselect)),
964 "clonebookkeepingwriting",
968} elseif ($massaction ==
'prereturnaccountbookkeepingwriting') {
969 $input1 = $form->selectDate(
'',
'massdate', 0, 0, 0,
"create_mvt", 1, 1);
970 $formquestion = array(array(
'type' =>
'other',
'name' =>
'massdate',
'label' =>
'<span class="fieldrequired">' . $langs->trans(
"Docdate") .
'</span>',
'value' => $input1));
971 print $form->formconfirm($_SERVER[
"PHP_SELF"], $langs->trans(
"ConfirmMassReturnAccountBookkeepingWriting"), $langs->trans(
"ConfirmMassReturnAccountBookkeepingWritingQuestion", count($toselect)),
"returnaccountbookkeepingwriting", $formquestion,
'', 0, 200, 500, 1);
974include DOL_DOCUMENT_ROOT.
'/core/tpl/massactions_pre.tpl.php';
976$varpage = empty($contextpage) ? $_SERVER[
"PHP_SELF"] : $contextpage;
977$selectedfields = $form->multiSelectArrayWithCheckbox(
'selectedfields', $arrayfields, $varpage,
getDolGlobalString(
'MAIN_CHECKBOX_LEFT_COLUMN'));
978if ($massactionbutton && $contextpage !=
'poslist') {
979 $selectedfields .= $form->showCheckAddButtons(
'checkforselect', 1);
983if (preg_match(
'/^asc/i', $sortorder)) {
990if ($type ==
'sub' && !$socid) {
991 print
info_admin($langs->trans(
"WarningRecordWithoutSubledgerAreExcluded"));
998$moreforfilter .=
'<div class="divsearchfield">';
999$moreforfilter .= $langs->trans(
'AccountAccounting').
': ';
1000$moreforfilter .=
'<div class="nowrap inline-block">';
1001if ($type ==
'sub') {
1003 $moreforfilter .= $formaccounting->select_auxaccount($search_accountancy_code_start,
'search_accountancy_code_start', $langs->trans(
'From'),
'maxwidth200');
1005 $moreforfilter .=
'<input type="text" class="maxwidth150" name="search_accountancy_code_start" value="'.dol_escape_htmltag($search_accountancy_code_start).
'" placeholder="'.$langs->trans(
'From').
'">';
1008 $moreforfilter .= $formaccounting->select_account($search_accountancy_code_start,
'search_accountancy_code_start', $langs->trans(
'From'), array(), 1, 1,
'maxwidth200');
1010$moreforfilter .=
' ';
1011if ($type ==
'sub') {
1013 $moreforfilter .= $formaccounting->select_auxaccount($search_accountancy_code_end,
'search_accountancy_code_end', $langs->trans(
'to'),
'maxwidth200');
1015 $moreforfilter .=
'<input type="text" class="maxwidth150" name="search_accountancy_code_end" value="'.dol_escape_htmltag($search_accountancy_code_end).
'" placeholder="'.$langs->trans(
'to').
'">';
1018 $moreforfilter .= $formaccounting->select_account($search_accountancy_code_end,
'search_accountancy_code_end', $langs->trans(
'to'), array(), 1, 1,
'maxwidth200');
1022 $stringforfirstkey = $langs->trans(
"KeyboardShortcut");
1023 if (
$conf->browser->name ==
'chrome') {
1024 $stringforfirstkey .=
' ALT +';
1025 } elseif (
$conf->browser->name ==
'firefox') {
1026 $stringforfirstkey .=
' ALT + SHIFT +';
1028 $stringforfirstkey .=
' CTL +';
1030 $moreforfilter .=
' <a id="previous_account" accesskey="p" title="' . $stringforfirstkey .
' p" class="classfortooltip" href="#"><i class="fa fa-chevron-left"></i></a>';
1031 $moreforfilter .=
' <a id="next_account" accesskey="n" title="' . $stringforfirstkey .
' n" class="classfortooltip" href="#"><i class="fa fa-chevron-right"></i></a>';
1032 $moreforfilter .= <<<SCRIPT
1033<script
type=
"text/javascript">
1034 jQuery(document).ready(
function() {
1035 var searchFormList = $(
'#searchFormList');
1036 var searchAccountancyCodeStart = $(
'#search_accountancy_code_start');
1037 var searchAccountancyCodeEnd = $(
'#search_accountancy_code_end');
1038 jQuery(
'#previous_account').on(
'click',
function() {
1039 var previousOption = searchAccountancyCodeStart.find(
'option:selected').prev(
'option');
1040 if (previousOption.length == 1) searchAccountancyCodeStart.val(previousOption.attr(
'value'));
1041 searchAccountancyCodeEnd.val(searchAccountancyCodeStart.val());
1042 searchFormList.submit();
1044 jQuery(
'#next_account').on(
'click',
function() {
1045 var nextOption = searchAccountancyCodeStart.find(
'option:selected').next(
'option');
1046 if (nextOption.length == 1) searchAccountancyCodeStart.val(nextOption.attr(
'value'));
1047 searchAccountancyCodeEnd.val(searchAccountancyCodeStart.val());
1048 searchFormList.submit();
1050 jQuery(
'input[name="search_mvt_num"]').on(
"keypress",
function(event) {
1057$moreforfilter .=
'</div>';
1058$moreforfilter .=
'</div>';
1061 $moreforfilter .=
'<div class="divsearchfield">';
1062 $moreforfilter .= $langs->trans(
'AccountingCategory') .
': ';
1063 $moreforfilter .=
'<div class="nowrap inline-block">';
1064 $moreforfilter .= $formaccounting->select_accounting_category($search_account_category,
'search_account_category', 1, 0, 0, 0);
1065 $moreforfilter .=
'</div>';
1066 $moreforfilter .=
'</div>';
1069$parameters = array();
1070$reshook = $hookmanager->executeHooks(
'printFieldPreListTitle', $parameters, $object, $action);
1071if (empty($reshook)) {
1072 $moreforfilter .= $hookmanager->resPrint;
1074 $moreforfilter = $hookmanager->resPrint;
1077print
'<div class="liste_titre liste_titre_bydiv centpercent">';
1078print $moreforfilter;
1081print
'<div class="div-table-responsive">';
1082print
'<table class="tagtable liste centpercent listwithfilterbefore">';
1085print
'<tr class="liste_titre_filter">';
1088 print
'<td class="liste_titre center">';
1089 $searchpicto = $form->showFilterButtons(
'left');
1094if (!empty($arrayfields[
't.piece_num'][
'checked'])) {
1095 print
'<td class="liste_titre"><input type="text" name="search_mvt_num" class="width50" value="'.dol_escape_htmltag($search_mvt_num).
'"></td>';
1098if (!empty($arrayfields[
't.code_journal'][
'checked'])) {
1099 print
'<td class="liste_titre center">';
1100 print $formaccounting->multi_select_journal($search_ledger_code,
'search_ledger_code', 0, 1, 1, 1,
'maxwidth75');
1104if (!empty($arrayfields[
't.doc_date'][
'checked'])) {
1105 print
'<td class="liste_titre center">';
1106 print
'<div class="nowrapfordate">';
1107 print $form->selectDate($search_date_start,
'search_date_start', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
"From"));
1109 print
'<div class="nowrapfordate">';
1110 print $form->selectDate($search_date_end,
'search_date_end', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
"to"));
1115if (!empty($arrayfields[
't.doc_ref'][
'checked'])) {
1116 print
'<td class="liste_titre"><input type="text" size="7" class="flat" name="search_doc_ref" value="'.dol_escape_htmltag($search_doc_ref).
'"/></td>';
1119if (!empty($arrayfields[
't.label_operation'][
'checked'])) {
1120 print
'<td class="liste_titre"><input type="text" size="7" class="flat" name="search_label_operation" value="'.dol_escape_htmltag($search_label_operation).
'"/></td>';
1123if (!empty($arrayfields[
't.lettering_code'][
'checked'])) {
1124 print
'<td class="liste_titre center">';
1125 print
'<input type="text" size="3" class="flat" name="search_lettering_code" value="'.$search_lettering_code.
'"/>';
1126 print
'<br><span class="nowrap"><input type="checkbox" name="search_not_reconciled" value="notreconciled"'.($search_not_reconciled ==
'notreconciled' ?
' checked' :
'').
'>'.$langs->trans(
"NotReconciled").
'</span>';
1130if (!empty($arrayfields[
't.debit'][
'checked'])) {
1131 print
'<td class="liste_titre right"><input type="text" class="flat" name="search_debit" size="4" value="'.dol_escape_htmltag($search_debit).
'"></td>';
1134if (!empty($arrayfields[
't.credit'][
'checked'])) {
1135 print
'<td class="liste_titre right"><input type="text" class="flat" name="search_credit" size="4" value="'.dol_escape_htmltag($search_credit).
'"></td>';
1138if (!empty($arrayfields[
't.balance'][
'checked'])) {
1142if (!empty($arrayfields[
't.date_export'][
'checked'])) {
1143 print
'<td class="liste_titre center">';
1144 print
'<div class="nowrapfordate">';
1145 print $form->selectDate($search_date_export_start,
'search_date_export_start', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
"From"));
1147 print
'<div class="nowrapfordate">';
1148 print $form->selectDate($search_date_export_end,
'search_date_export_end', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
"to"));
1153if (!empty($arrayfields[
't.date_validated'][
'checked'])) {
1154 print
'<td class="liste_titre center">';
1155 print
'<div class="nowrapfordate">';
1156 print $form->selectDate($search_date_validation_start,
'search_date_validation_start', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
"From"));
1158 print
'<div class="nowrapfordate">';
1159 print $form->selectDate($search_date_validation_end,
'search_date_validation_end', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
"to"));
1164if (!empty($arrayfields[
't.date_lim_reglement'][
'checked'])) {
1165 print
'<td class="liste_titre center">';
1166 print
'<div class="nowrapfordate">';
1167 print $form->selectDate($search_date_due_start,
'search_date_due_start_', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
"From"));
1169 print
'<div class="nowrapfordate">';
1170 print $form->selectDate($search_date_due_end,
'search_date_due_end_', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
"to"));
1174if (!empty($arrayfields[
't.import_key'][
'checked'])) {
1175 print
'<td class="liste_titre center">';
1176 print
'<input class="flat searchstring maxwidth50" type="text" name="search_import_key" value="'.dol_escape_htmltag($search_import_key).
'">';
1181$parameters = array(
'arrayfields' => $arrayfields);
1182$reshook = $hookmanager->executeHooks(
'printFieldListOption', $parameters);
1183print $hookmanager->resPrint;
1187 print
'<td class="liste_titre center">';
1188 $searchpicto = $form->showFilterButtons();
1194print
'<tr class="liste_titre">';
1196 print_liste_field_titre($selectedfields, $_SERVER[
"PHP_SELF"],
"",
'',
'',
'', $sortfield, $sortorder,
'center maxwidthsearch ');
1198if (!empty($arrayfields[
't.piece_num'][
'checked'])) {
1199 print_liste_field_titre($arrayfields[
't.piece_num'][
'label'], $_SERVER[
'PHP_SELF'],
"t.piece_num",
"", $param,
'', $sortfield, $sortorder,
'tdoverflowmax80imp ');
1201if (!empty($arrayfields[
't.code_journal'][
'checked'])) {
1202 print_liste_field_titre($arrayfields[
't.code_journal'][
'label'], $_SERVER[
'PHP_SELF'],
"t.code_journal",
"", $param,
'', $sortfield, $sortorder,
'center ');
1204if (!empty($arrayfields[
't.doc_date'][
'checked'])) {
1205 print_liste_field_titre($arrayfields[
't.doc_date'][
'label'], $_SERVER[
'PHP_SELF'],
"t.doc_date",
"", $param,
'', $sortfield, $sortorder,
'center ');
1207if (!empty($arrayfields[
't.doc_ref'][
'checked'])) {
1208 print_liste_field_titre($arrayfields[
't.doc_ref'][
'label'], $_SERVER[
'PHP_SELF'],
"t.doc_ref",
"", $param,
"", $sortfield, $sortorder);
1210if (!empty($arrayfields[
't.label_operation'][
'checked'])) {
1211 print_liste_field_titre($arrayfields[
't.label_operation'][
'label'], $_SERVER[
'PHP_SELF'],
"t.label_operation",
"", $param,
"", $sortfield, $sortorder);
1213if (!empty($arrayfields[
't.lettering_code'][
'checked'])) {
1214 print_liste_field_titre($arrayfields[
't.lettering_code'][
'label'], $_SERVER[
'PHP_SELF'],
"t.lettering_code",
"", $param,
'', $sortfield, $sortorder,
'center ');
1216if (!empty($arrayfields[
't.debit'][
'checked'])) {
1217 print_liste_field_titre($arrayfields[
't.debit'][
'label'], $_SERVER[
'PHP_SELF'],
"t.debit",
"", $param,
'', $sortfield, $sortorder,
'right ');
1219if (!empty($arrayfields[
't.credit'][
'checked'])) {
1220 print_liste_field_titre($arrayfields[
't.credit'][
'label'], $_SERVER[
'PHP_SELF'],
"t.credit",
"", $param,
'', $sortfield, $sortorder,
'right ');
1222if (!empty($arrayfields[
't.balance'][
'checked'])) {
1223 print_liste_field_titre($arrayfields[
't.balance'][
'label'],
"",
"",
"", $param,
'', $sortfield, $sortorder,
'right ');
1225if (!empty($arrayfields[
't.date_export'][
'checked'])) {
1226 print_liste_field_titre($arrayfields[
't.date_export'][
'label'], $_SERVER[
'PHP_SELF'],
"t.date_export",
"", $param,
'', $sortfield, $sortorder,
'center ');
1228if (!empty($arrayfields[
't.date_validated'][
'checked'])) {
1229 print_liste_field_titre($arrayfields[
't.date_validated'][
'label'], $_SERVER[
'PHP_SELF'],
"t.date_validated",
"", $param,
'', $sortfield, $sortorder,
'center ');
1232if (!empty($arrayfields[
't.date_lim_reglement'][
'checked'])) {
1233 print_liste_field_titre($arrayfields[
't.date_lim_reglement'][
'label'], $_SERVER[
'PHP_SELF'],
't.date_lim_reglement',
'', $param,
'', $sortfield, $sortorder,
'center ');
1235if (!empty($arrayfields[
't.import_key'][
'checked'])) {
1236 print_liste_field_titre($arrayfields[
't.import_key'][
'label'], $_SERVER[
"PHP_SELF"],
"t.import_key",
"", $param,
'', $sortfield, $sortorder,
'center ');
1239$parameters = array(
'arrayfields' => $arrayfields,
'param' => $param,
'sortfield' => $sortfield,
'sortorder' => $sortorder);
1240$reshook = $hookmanager->executeHooks(
'printFieldListTitle', $parameters);
1241print $hookmanager->resPrint;
1243 print_liste_field_titre($selectedfields, $_SERVER[
"PHP_SELF"],
"",
'',
'',
'', $sortfield, $sortorder,
'center maxwidthsearch ');
1247$displayed_account_number =
null;
1249$objectstatic =
null;
1259$sous_total_debit = 0;
1260$sous_total_credit = 0;
1273if (!empty($arrayfields[
't.piece_num'][
'checked'])) { $colspan++; }
1274if (!empty($arrayfields[
't.code_journal'][
'checked'])) { $colspan++; }
1275if (!empty($arrayfields[
't.doc_date'][
'checked'])) { $colspan++; }
1276if (!empty($arrayfields[
't.doc_ref'][
'checked'])) { $colspan++; }
1277if (!empty($arrayfields[
't.label_operation'][
'checked'])) { $colspan++; }
1278if (!empty($arrayfields[
't.date_export'][
'checked'])) { $colspanend++; }
1279if (!empty($arrayfields[
't.date_validated'][
'checked'])) { $colspanend++; }
1280if (!empty($arrayfields[
't.lettering_code'][
'checked'])) { $colspanend++; }
1286while ($i < min($num, $limit)) {
1289 if ($type ==
'sub') {
1301 if (!empty($arrayfields[
't.piece_num'][
'checked'])) {
1304 if (!empty($arrayfields[
't.code_journal'][
'checked'])) {
1307 if (!empty($arrayfields[
't.doc_date'][
'checked'])) {
1310 if (!empty($arrayfields[
't.doc_ref'][
'checked'])) {
1313 if (!empty($arrayfields[
't.label_operation'][
'checked'])) {
1316 if (!empty($arrayfields[
't.lettering_code'][
'checked'])) {
1320 if (!empty($arrayfields[
't.balance'][
'checked'])) {
1323 if (!empty($arrayfields[
't.date_export'][
'checked'])) {
1326 if (!empty($arrayfields[
't.date_validated'][
'checked'])) {
1330 if (!empty($arrayfields[
't.date_lim_reglement'][
'checked'])) {
1333 if (!empty($arrayfields[
't.lettering_code'][
'checked'])) {
1336 if (!empty($arrayfields[
't.import_key'][
'checked'])) {
1345 if ($accountg != $displayed_account_number || !isset($displayed_account_number)) {
1347 if (isset($displayed_account_number)) {
1348 print
'<tr class="liste_total">';
1349 if ($type ==
'sub') {
1350 print
'<td class="right" colspan="' . $colspan .
'">' . $langs->trans(
"TotalForAccount") .
' ' .
length_accounta($displayed_account_number) .
':</td>';
1352 print
'<td class="right" colspan="' . $colspan .
'">' . $langs->trans(
"TotalForAccount") .
' ' .
length_accountg($displayed_account_number) .
':</td>';
1354 print
'<td class="nowrap right">'.price(
price2num($sous_total_debit,
'MT')).
'</td>';
1355 print
'<td class="nowrap right">'.price(
price2num($sous_total_credit,
'MT')).
'</td>';
1356 if ($colspanend > 0) {
1357 print
'<td colspan="'.$colspanend.
'"></td>';
1361 $balance = $sous_total_debit - $sous_total_credit;
1362 print
'<tr class="liste_total">';
1363 print
'<td class="right" colspan="'.$colspan.
'">'.$langs->trans(
"Balance").
':</td>';
1365 print
'<td class="nowraponall right">';
1366 print
price(
price2num($sous_total_debit - $sous_total_credit,
'MT'));
1371 print
'<td class="nowraponall right">';
1372 print
price(
price2num($sous_total_credit - $sous_total_debit,
'MT'));
1375 if ($colspanend > 0) {
1376 print
'<td colspan="'.$colspanend.
'"></td>';
1382 print
'<tr class="trforbreaknobg">';
1383 print
'<td colspan="'.($totalarray[
'nbfield'] ?
$totalarray[
'nbfield'] : count($arrayfields) + 1).
'" class="tdforbreak">';
1384 if ($type ==
'sub') {
1385 if ($line->subledger_account !=
"" && $line->subledger_account !=
'-1') {
1386 print empty($line->subledger_label) ?
'<span class="error">'.$langs->trans(
"Unknown").
'</span>' : $line->subledger_label;
1391 print
'<span class="error">' . $langs->trans(
"Unknown");
1392 if ($line->subledger_label) {
1393 print
' (' . $line->subledger_label .
')';
1394 $htmltext =
'EmptyStringForSubledgerAccountButSubledgerLabelDefined';
1396 $htmltext =
'EmptyStringForSubledgerAccountAndSubledgerLabel';
1398 print $form->textwithpicto(
'', $htmltext);
1402 if ($line->numero_compte !=
"" && $line->numero_compte !=
'-1') {
1405 print
'<span class="error">' . $langs->trans(
"Unknown") .
'</span>';
1411 $displayed_account_number = $accountg;
1413 $sous_total_debit = 0;
1414 $sous_total_credit = 0;
1417 print
'<tr class="oddeven">';
1420 print
'<td class="nowraponall center">';
1421 if (($massactionbutton || $massaction) && $contextpage !=
'poslist') {
1423 if (in_array($line->id, $arrayofselected)) {
1426 print
'<input id="cb' . $line->id .
'" class="flat checkforselect" type="checkbox" name="toselect[]" value="' . $line->id .
'"' . ($selected ?
' checked="checked"' :
'') .
' />';
1434 if (!empty($arrayfields[
't.piece_num'][
'checked'])) {
1437 $object->piece_num = $line->piece_num;
1439 print
$object->getNomUrl(1,
'', 0,
'', 1);
1447 if (!empty($arrayfields[
't.code_journal'][
'checked'])) {
1449 $result = $accountingjournal->fetch(0, $line->code_journal);
1450 $journaltoshow = (($result > 0) ? $accountingjournal->getNomUrl(0, 0, 0,
'', 0) : $line->code_journal);
1451 print
'<td class="center tdoverflowmax80">'.$journaltoshow.
'</td>';
1458 if (!empty($arrayfields[
't.doc_date'][
'checked'])) {
1459 print
'<td class="center">'.dol_print_date($line->doc_date,
'day').
'</td>';
1467 if (!empty($arrayfields[
't.doc_ref'][
'checked'])) {
1468 if ($line->doc_type ==
'customer_invoice') {
1469 $langs->loadLangs(array(
'bills'));
1471 require_once DOL_DOCUMENT_ROOT.
'/compta/facture/class/facture.class.php';
1472 $objectstatic =
new Facture($db);
1473 $objectstatic->fetch($line->fk_doc);
1478 $urlsource = $_SERVER[
'PHP_SELF'].
'?id='.$objectstatic->id;
1479 $documentlink = $formfile->getDocumentsLink($objectstatic->element, $filename, $filedir);
1480 } elseif ($line->doc_type ==
'supplier_invoice') {
1481 $langs->loadLangs(array(
'bills'));
1483 require_once DOL_DOCUMENT_ROOT.
'/fourn/class/fournisseur.facture.class.php';
1485 $objectstatic->fetch($line->fk_doc);
1487 $modulepart =
'invoice_supplier';
1489 $filedir =
$conf->fournisseur->facture->dir_output.
'/'.
get_exdir($line->fk_doc, 2, 0, 0, $objectstatic, $modulepart).dol_sanitizeFileName($line->doc_ref);
1490 $subdir =
get_exdir($objectstatic->id, 2, 0, 0, $objectstatic, $modulepart).dol_sanitizeFileName($line->doc_ref);
1491 $documentlink = $formfile->getDocumentsLink($objectstatic->element, $subdir, $filedir);
1492 } elseif ($line->doc_type ==
'expense_report') {
1493 $langs->loadLangs(array(
'trips'));
1495 require_once DOL_DOCUMENT_ROOT.
'/expensereport/class/expensereport.class.php';
1497 $objectstatic->fetch($line->fk_doc);
1502 $urlsource = $_SERVER[
'PHP_SELF'].
'?id='.$objectstatic->id;
1503 $documentlink = $formfile->getDocumentsLink($objectstatic->element, $filename, $filedir);
1504 } elseif ($line->doc_type ==
'bank') {
1505 require_once DOL_DOCUMENT_ROOT.
'/compta/bank/class/account.class.php';
1507 $objectstatic->fetch($line->fk_doc);
1512 print
'<td class="tdoverflowmax250">';
1515 if ($line->doc_type ==
'customer_invoice' || $line->doc_type ==
'supplier_invoice' || $line->doc_type ==
'expense_report') {
1516 print $objectstatic->getNomUrl(1,
'', 0, 0,
'', 0, -1, 1);
1517 print $documentlink;
1518 } elseif ($line->doc_type ==
'bank') {
1519 print $objectstatic->getNomUrl(1);
1520 $bank_ref = strstr($line->doc_ref,
'-');
1521 print
' <span class="classfortooltip" title="'.dol_escape_htmltag($line->doc_ref).
'">'.
dol_escape_htmltag($bank_ref).
'</span>';
1523 print $line->doc_ref;
1533 if (!empty($arrayfields[
't.label_operation'][
'checked'])) {
1535 $doc_ref = preg_replace(
'/\(.*\)/',
'', $line->doc_ref);
1537 print
'<td class="small tdoverflowmax350 classfortooltip" title="'.dol_escape_htmltag($line->label_operation).
'">'.
dol_escape_htmltag($line->label_operation).
'</td>';
1539 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>';
1547 if (!empty($arrayfields[
't.lettering_code'][
'checked'])) {
1548 print
'<td class="center">'.dol_escape_htmltag((
string) $line->lettering_code).
'</td>';
1555 if (!empty($arrayfields[
't.debit'][
'checked'])) {
1556 print
'<td class="right nowraponall amount">'.($line->debit != 0 ?
price($line->debit) :
'').
'</td>';
1563 $totalarray[
'val'][
'totaldebit'] += (float) $line->debit;
1567 if (!empty($arrayfields[
't.credit'][
'checked'])) {
1568 print
'<td class="right nowraponall amount">'.($line->credit != 0 ?
price($line->credit) :
'').
'</td>';
1575 $totalarray[
'val'][
'totalcredit'] += (float) $line->credit;
1579 if (!empty($arrayfields[
't.balance'][
'checked'])) {
1580 print
'<td class="right nowraponall amount">'.price(
price2num($sous_total_debit + $line->debit - $sous_total_credit - $line->credit,
'MT')).
'</td>';
1587 $totalarray[
'val'][
'totalbalance'] += $line->debit - $line->credit;
1591 if (!empty($arrayfields[
't.date_export'][
'checked'])) {
1592 print
'<td class="center">'.dol_print_date($line->date_export,
'dayhour').
'</td>';
1599 if (!empty($arrayfields[
't.date_validated'][
'checked'])) {
1600 print
'<td class="center">'.dol_print_date($line->date_validation,
'dayhour').
'</td>';
1607 if (!empty($arrayfields[
't.date_lim_reglement'][
'checked'])) {
1608 print
'<td class="center">'.dol_print_date($line->date_lim_reglement,
'day').
'</td>';
1614 if (!empty($arrayfields[
't.import_key'][
'checked'])) {
1615 print
'<td class="tdoverflowmax125" title="'.dol_escape_htmltag($line->import_key).
'">'.
dol_escape_htmltag($line->import_key).
"</td>\n";
1622 $parameters = array(
'arrayfields' => $arrayfields,
'obj' => $line);
1623 $reshook = $hookmanager->executeHooks(
'printFieldListValue', $parameters);
1624 print $hookmanager->resPrint;
1628 print
'<td class="nowraponall center">';
1629 if (($massactionbutton || $massaction) && $contextpage !=
'poslist') {
1631 if (in_array($line->id, $arrayofselected)) {
1634 print
'<input id="cb' . $line->id .
'" class="flat checkforselect" type="checkbox" name="toselect[]" value="' . $line->id .
'"' . ($selected ?
' checked="checked"' :
'') .
' />';
1643 $sous_total_debit += $line->debit;
1644 $sous_total_credit += $line->credit;
1651if ($num > 0 && $colspan > 0) {
1652 print
'<tr class="liste_total">';
1653 print
'<td class="right" colspan="'.$colspan.
'">'.$langs->trans(
"TotalForAccount").
' '.$accountg.
':</td>';
1654 print
'<td class="nowrap right">'.price(
price2num($sous_total_debit,
'MT')).
'</td>';
1655 print
'<td class="nowrap right">'.price(
price2num($sous_total_credit,
'MT')).
'</td>';
1656 if ($colspanend > 0) {
1657 print
'<td colspan="'.$colspanend.
'"></td>';
1662 $balance = $sous_total_debit - $sous_total_credit;
1663 print
'<tr class="liste_total">';
1664 print
'<td class="right" colspan="'.$colspan.
'">'.$langs->trans(
"Balance").
':</td>';
1666 print
'<td class="nowraponall right">';
1667 print
price(
price2num($sous_total_debit - $sous_total_credit,
'MT'));
1672 print
'<td class="nowraponall right">';
1673 print
price(
price2num($sous_total_credit - $sous_total_debit,
'MT'));
1676 if ($colspanend > 0) {
1677 print
'<td colspan="'.$colspanend.
'"></td>';
1684if (!empty($totalarray[
'val'][
'totaldebit'])) {
1687if (!empty($totalarray[
'val'][
'totalcredit'])) {
1688 $totalarray[
'val'][
'totalcredit'] = (float)
price2num($totalarray[
'val'][
'totalcredit'],
'MT');
1690if (!empty($totalarray[
'val'][
'totalbalance'])) {
1691 $totalarray[
'val'][
'totalbalance'] = (float)
price2num($totalarray[
'val'][
'totaldebit'] - $totalarray[
'val'][
'totalcredit'],
'MT');
1696include DOL_DOCUMENT_ROOT.
'/core/tpl/list_print_total.tpl.php';
1701 foreach ($arrayfields as $key => $val) {
1702 if (!empty($val[
'checked'])) {
1706 print
'<tr><td colspan="'.$colspan.
'"><span class="opacitymedium">'.$langs->trans(
"NoRecordFound").
'</span></td></tr>';
1709$parameters = array(
'arrayfields' => $arrayfields);
1710$reshook = $hookmanager->executeHooks(
'printFieldListFooter', $parameters, $object, $action);
1711print $hookmanager->resPrint;
if( $user->socid > 0) if(! $user->hasRight('accounting', 'chartofaccount')) $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_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.
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_now($mode='auto')
Return date for now.
getDolGlobalInt($key, $default=0)
Return a Dolibarr global constant int value.
dol_print_date($time, $format='', $tzoutput='auto', $outputlangs=null, $encodetooutput=false)
Output date in a string format according to outputlangs (or langs if not defined).
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_sanitizeFileName($str, $newstr='_', $unaccent=1, $includequotes=0)
Clean a string to use it as a file name.
getDolGlobalString($key, $default='')
Return a Dolibarr global constant string value.
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...
global $conf
The following vars must be defined: $type2label $form $conf, $lang, The following vars may also be de...
if(preg_match('/(crypted|dolcrypt):/i', $dolibarr_main_db_pass)||!empty($dolibarr_main_db_encrypted_pass)) $conf db type
accessforbidden($message='', $printheader=1, $printfooter=1, $showonlymessage=0, $params=null)
Show a message to say access is forbidden and stop program.