31require
'../../main.inc.php';
33require_once DOL_DOCUMENT_ROOT.
'/core/lib/accounting.lib.php';
34require_once DOL_DOCUMENT_ROOT.
'/core/lib/company.lib.php';
35require_once DOL_DOCUMENT_ROOT.
'/accountancy/class/lettering.class.php';
36require_once DOL_DOCUMENT_ROOT.
'/accountancy/class/bookkeeping.class.php';
37require_once DOL_DOCUMENT_ROOT.
'/accountancy/class/accountingjournal.class.php';
38require_once DOL_DOCUMENT_ROOT.
'/core/class/html.formaccounting.class.php';
39require_once DOL_DOCUMENT_ROOT.
'/core/class/html.formfile.class.php';
40require_once DOL_DOCUMENT_ROOT.
'/core/class/html.formother.class.php';
41require_once DOL_DOCUMENT_ROOT.
'/core/lib/date.lib.php';
52$langs->loadLangs(array(
"accountancy",
"categories",
"compta",
"other"));
54$journal_code =
GETPOST(
'code_journal',
'alpha');
55$account =
GETPOST(
"account",
'int');
58$action =
GETPOST(
'action',
'aZ09');
60$mode = (
GETPOST(
'mode',
'alpha') ?
GETPOST(
'mode',
'alpha') :
'customer');
61$massaction =
GETPOST(
'massaction',
'alpha');
62$confirm =
GETPOST(
'confirm',
'alpha');
63$toselect =
GETPOST(
'toselect',
'array:int');
64$type =
GETPOST(
'type',
'alpha');
66 $context_default =
'bookkeepingbysubaccountlist';
68 $context_default =
'bookkeepingbyaccountlist';
70$contextpage =
GETPOST(
'contextpage',
'aZ') ?
GETPOST(
'contextpage',
'aZ') : $context_default;
72$search_doc_date =
GETPOSTDATE(
'doc_date',
'getpost');
74$search_date_startyear =
GETPOSTINT(
'search_date_startyear');
75$search_date_startmonth =
GETPOSTINT(
'search_date_startmonth');
76$search_date_startday =
GETPOSTINT(
'search_date_startday');
77$search_date_start =
GETPOSTDATE(
'search_date_start',
'getpost',
'auto',
'search_date_start_accountancy');
79$search_date_endyear =
GETPOSTINT(
'search_date_endyear');
80$search_date_endmonth =
GETPOSTINT(
'search_date_endmonth');
81$search_date_endday =
GETPOSTINT(
'search_date_endday');
82$search_date_end =
GETPOSTDATE(
'search_date_end',
'getpostend',
'auto',
'search_date_end_accountancy');
84$search_date_export_startyear =
GETPOSTINT(
'search_date_export_startyear');
85$search_date_export_startmonth =
GETPOSTINT(
'search_date_export_startmonth');
86$search_date_export_startday =
GETPOSTINT(
'search_date_export_startday');
87$search_date_export_start =
GETPOSTDATE(
'search_date_export_start',
'getpost');
89$search_date_export_endyear =
GETPOSTINT(
'search_date_export_endyear');
90$search_date_export_endmonth =
GETPOSTINT(
'search_date_export_endmonth');
91$search_date_export_endday =
GETPOSTINT(
'search_date_export_endday');
92$search_date_export_end =
GETPOSTDATE(
'search_date_export_start',
'getpostend');
94$search_date_validation_startyear =
GETPOSTINT(
'search_date_validation_startyear');
95$search_date_validation_startmonth =
GETPOSTINT(
'search_date_validation_startmonth');
96$search_date_validation_startday =
GETPOSTINT(
'search_date_validation_startday');
97$search_date_validation_start =
GETPOSTDATE(
'search_date_validation_start',
'getpost');
99$search_date_validation_endyear =
GETPOSTINT(
'search_date_validation_endyear');
100$search_date_validation_endmonth =
GETPOSTINT(
'search_date_validation_endmonth');
101$search_date_validation_endday =
GETPOSTINT(
'search_date_validation_endday');
102$search_date_validation_end =
GETPOSTDATE(
'search_date_validation_end',
'getpostend');
105$search_date_due_start_day =
GETPOSTINT(
'search_date_due_start_day');
106$search_date_due_start_month =
GETPOSTINT(
'search_date_due_start_month');
107$search_date_due_start_year =
GETPOSTINT(
'search_date_due_start_year');
108$search_date_due_start =
GETPOSTDATE(
'search_date_due_start_',
'getpost');
111$search_date_due_end_day =
GETPOSTINT(
'search_date_due_end_day');
112$search_date_due_end_month =
GETPOSTINT(
'search_date_due_end_month');
113$search_date_due_end_year =
GETPOSTINT(
'search_date_due_end_year');
114$search_date_due_end =
GETPOSTDATE(
'search_date_due_end_',
'getpostend');
116$search_import_key =
GETPOST(
"search_import_key",
'alpha');
118$search_account_category =
GETPOSTINT(
'search_account_category');
120$search_accountancy_code_start =
GETPOST(
'search_accountancy_code_start',
'alpha');
121if ($search_accountancy_code_start == - 1) {
122 $search_accountancy_code_start =
'';
124$search_accountancy_code_end =
GETPOST(
'search_accountancy_code_end',
'alpha');
125if ($search_accountancy_code_end == - 1) {
126 $search_accountancy_code_end =
'';
128$search_doc_ref =
GETPOST(
'search_doc_ref',
'alpha');
129$search_label_operation =
GETPOST(
'search_label_operation',
'alpha');
130$search_mvt_num =
GETPOST(
'search_mvt_num',
'alpha');
131$search_direction =
GETPOST(
'search_direction',
'alpha');
132$search_ledger_code =
GETPOST(
'search_ledger_code',
'array');
133$search_debit =
GETPOST(
'search_debit',
'alpha');
134$search_credit =
GETPOST(
'search_credit',
'alpha');
135$search_lettering_code =
GETPOST(
'search_lettering_code',
'alpha');
136$search_not_reconciled =
GETPOST(
'search_not_reconciled',
'alpha');
139 $action =
'delbookkeepingyear';
144$sortfield =
GETPOST(
'sortfield',
'aZ09comma');
145$sortorder =
GETPOST(
'sortorder',
'aZ09comma');
146$optioncss =
GETPOST(
'optioncss',
'alpha');
148if (empty($page) || $page < 0) {
151$offset = $limit * $page;
152$pageprev = $page - 1;
153$pagenext = $page + 1;
154if ($sortorder ==
"") {
157if ($sortfield ==
"") {
158 $sortfield =
"t.doc_date,t.rowid";
164$hookmanager->initHooks(array($context_default));
169if (empty($search_date_start) && empty($search_date_end) && !GETPOSTISSET(
'search_date_startday') && !GETPOSTISSET(
'search_date_startmonth') && !GETPOSTISSET(
'search_date_starthour')) {
170 $sql =
"SELECT date_start, date_end";
171 $sql .=
" FROM ".MAIN_DB_PREFIX.
"accounting_fiscalyear ";
173 $sql .=
" WHERE rowid = " .
getDolGlobalInt(
'ACCOUNTANCY_FISCALYEAR_DEFAULT');
175 $sql .=
" WHERE date_start < '" .
$db->idate(
dol_now()) .
"' and date_end > '" .
$db->idate(
dol_now()) .
"'";
177 $sql .=
$db->plimit(1);
178 $res =
$db->query($sql);
180 if ($res !==
false &&
$db->num_rows($res) > 0) {
181 $fiscalYear =
$db->fetch_object($res);
182 $search_date_start = strtotime($fiscalYear->date_start);
183 $search_date_end = strtotime($fiscalYear->date_end);
190 $year_end = $year_start + 1;
191 $month_end = $month_start - 1;
192 if ($month_end < 1) {
196 $search_date_start =
dol_mktime(0, 0, 0, $month_start, 1, $year_start);
203 't.piece_num' => array(
'label' =>
"TransactionNumShort",
'checked' =>
'1'),
204 't.code_journal' => array(
'label' =>
"Codejournal",
'checked' =>
'1'),
205 't.doc_date' => array(
'label' =>
"Docdate",
'checked' =>
'1'),
206 't.doc_ref' => array(
'label' =>
"Piece",
'checked' =>
'1'),
207 't.label_operation' => array(
'label' =>
"Label",
'checked' =>
'1'),
208 't.lettering_code' => array(
'label' =>
"Lettering",
'checked' =>
'1'),
209 't.debit' => array(
'label' =>
"AccountingDebit",
'checked' =>
'1'),
210 't.credit' => array(
'label' =>
"AccountingCredit",
'checked' =>
'1'),
211 't.balance' => array(
'label' =>
"Balance",
'checked' =>
'1'),
212 't.date_export' => array(
'label' =>
"DateExport",
'checked' =>
'-1'),
213 't.date_validated' => array(
'label' =>
"DateValidation",
'checked' =>
'-1',
'enabled' => (
string) (
int) !
getDolGlobalString(
"ACCOUNTANCY_DISABLE_CLOSURE_LINE_BY_LINE")),
214 't.date_lim_reglement' => array(
'label' =>
"DateDue",
'checked' =>
'0'),
215 't.import_key' => array(
'label' =>
"ImportId",
'checked' =>
'-1',
'position' => 1100),
219 unset($arrayfields[
't.lettering_code']);
222if ($search_date_start && empty($search_date_startyear)) {
224 $search_date_startyear = $tmparray[
'year'];
225 $search_date_startmonth = $tmparray[
'mon'];
226 $search_date_startday = $tmparray[
'mday'];
228if ($search_date_end && empty($search_date_endyear)) {
230 $search_date_endyear = $tmparray[
'year'];
231 $search_date_endmonth = $tmparray[
'mon'];
232 $search_date_endday = $tmparray[
'mday'];
238if ($user->socid > 0) {
241if (!$user->hasRight(
'accounting',
'mouvements',
'lire')) {
250$permissiontoread = $user->hasRight(
'accounting',
'mouvements',
'lire');
251$permissiontoadd = $user->hasRight(
'accounting',
'mouvements',
'creer');
252$permissiontodelete = $user->hasRight(
'accounting',
'mouvements',
'supprimer');
253$permissiontoexport = $user->hasRight(
'accounting',
'mouvements',
'export');
264if (
GETPOST(
'cancel',
'alpha')) {
268if (!
GETPOST(
'confirmmassaction',
'alpha') && $massaction !=
'preunletteringauto' && $massaction !=
'preunletteringmanual' && $massaction !=
'predeletebookkeepingwriting') {
272$parameters = array(
'socid' => $socid);
273$reshook = $hookmanager->executeHooks(
'doActions', $parameters, $object, $action);
278if (empty($reshook)) {
279 include DOL_DOCUMENT_ROOT.
'/core/actions_changeselectedfields.inc.php';
281 if (
GETPOST(
'button_removefilter_x',
'alpha') ||
GETPOST(
'button_removefilter.x',
'alpha') ||
GETPOST(
'button_removefilter',
'alpha')) {
282 $search_doc_date =
'';
283 $search_account_category =
'';
284 $search_accountancy_code_start =
'';
285 $search_accountancy_code_end =
'';
286 $search_label_account =
'';
287 $search_doc_ref =
'';
288 $search_label_operation =
'';
289 $search_mvt_num =
'';
290 $search_direction =
'';
291 $search_ledger_code = array();
292 $search_date_start =
'';
293 $search_date_end =
'';
294 $search_date_startyear =
'';
295 $search_date_startmonth =
'';
296 $search_date_startday =
'';
297 $search_date_endyear =
'';
298 $search_date_endmonth =
'';
299 $search_date_endday =
'';
300 $search_date_export_start =
'';
301 $search_date_export_end =
'';
302 $search_date_export_startyear =
'';
303 $search_date_export_startmonth =
'';
304 $search_date_export_startday =
'';
305 $search_date_export_endyear =
'';
306 $search_date_export_endmonth =
'';
307 $search_date_export_endday =
'';
308 $search_date_validation_start =
'';
309 $search_date_validation_end =
'';
310 $search_date_validation_startyear =
'';
311 $search_date_validation_startmonth =
'';
312 $search_date_validation_startday =
'';
313 $search_date_validation_endyear =
'';
314 $search_date_validation_endmonth =
'';
315 $search_date_validation_endday =
'';
317 $search_date_due_start_day =
'';
318 $search_date_due_start_month =
'';
319 $search_date_due_start_year =
'';
320 $search_date_due_start =
'';
322 $search_date_due_end_day =
'';
323 $search_date_due_end_month =
'';
324 $search_date_due_end_year =
'';
325 $search_date_due_end =
'';
326 $search_lettering_code =
'';
329 $search_not_reconciled =
'';
330 $search_import_key =
'';
332 unset($_SESSION[
'DOLDATE_search_date_start_accountancy_day']);
333 unset($_SESSION[
'DOLDATE_search_date_start_accountancy_month']);
334 unset($_SESSION[
'DOLDATE_search_date_start_accountancy_year']);
335 unset($_SESSION[
'DOLDATE_search_date_end_accountancy_day']);
336 unset($_SESSION[
'DOLDATE_search_date_end_accountancy_month']);
337 unset($_SESSION[
'DOLDATE_search_date_end_accountancy_year']);
340 if (!empty($socid)) {
341 $param =
'&socid='.$socid;
343 if (!empty($search_date_start)) {
344 $filter[
't.doc_date>='] = $search_date_start;
345 $param .=
'&search_date_startmonth='.$search_date_startmonth.
'&search_date_startday='.$search_date_startday.
'&search_date_startyear='.$search_date_startyear;
347 if (!empty($search_date_end)) {
348 $filter[
't.doc_date<='] = $search_date_end;
349 $param .=
'&search_date_endmonth='.$search_date_endmonth.
'&search_date_endday='.$search_date_endday.
'&search_date_endyear='.$search_date_endyear;
351 if (!empty($search_doc_date)) {
352 $filter[
't.doc_date'] = $search_doc_date;
353 $param .=
'&doc_datemonth='.GETPOSTINT(
'doc_datemonth').
'&doc_dateday='.
GETPOSTINT(
'doc_dateday').
'&doc_dateyear='.
GETPOSTINT(
'doc_dateyear');
355 if ($search_account_category !=
'-1' && !empty($search_account_category)) {
356 require_once DOL_DOCUMENT_ROOT.
'/accountancy/class/accountancycategory.class.php';
359 $listofaccountsforgroup = $accountingcategory->getCptsCat(0,
'fk_accounting_category = '.((
int) $search_account_category));
360 $listofaccountsforgroup2 = array();
361 if (is_array($listofaccountsforgroup)) {
362 foreach ($listofaccountsforgroup as $tmpval) {
363 $listofaccountsforgroup2[] =
"'".$db->escape((
string) $tmpval[
'account_number']).
"'";
366 if (!empty($listofaccountsforgroup2)) {
367 $filter[
't.search_accounting_code_in'] = implode(
',', $listofaccountsforgroup2);
369 $filter[
't.search_accounting_code_in'] =
"''";
370 setEventMessages($langs->trans(
"ThisCategoryHasNoItems"),
null,
'warnings');
372 $param .=
'&search_account_category='.urlencode((
string) ($search_account_category));
374 if (!empty($search_accountancy_code_start)) {
375 if ($type ==
'sub') {
376 $filter[
't.subledger_account>='] = $search_accountancy_code_start;
378 $filter[
't.numero_compte>='] = $search_accountancy_code_start;
380 $param .=
'&search_accountancy_code_start=' . urlencode($search_accountancy_code_start);
382 if (!empty($search_accountancy_code_end)) {
383 if ($type ==
'sub') {
384 $filter[
't.subledger_account<='] = $search_accountancy_code_end;
386 $filter[
't.numero_compte<='] = $search_accountancy_code_end;
388 $param .=
'&search_accountancy_code_end=' . urlencode($search_accountancy_code_end);
390 if (!empty($search_label_account)) {
391 $filter[
't.label_compte'] = $search_label_account;
392 $param .=
'&search_label_compte='.urlencode($search_label_account);
394 if (!empty($search_mvt_num)) {
395 $filter[
't.piece_num'] = $search_mvt_num;
396 $param .=
'&search_mvt_num='.urlencode((
string) ($search_mvt_num));
398 if (!empty($search_doc_ref)) {
399 $filter[
't.doc_ref'] = $search_doc_ref;
400 $param .=
'&search_doc_ref='.urlencode($search_doc_ref);
402 if (!empty($search_label_operation)) {
403 $filter[
't.label_operation'] = $search_label_operation;
404 $param .=
'&search_label_operation='.urlencode($search_label_operation);
406 if (!empty($search_direction)) {
407 $filter[
't.sens'] = $search_direction;
408 $param .=
'&search_direction='.urlencode($search_direction);
410 if (!empty($search_ledger_code)) {
411 $filter[
't.code_journal'] = $search_ledger_code;
412 foreach ($search_ledger_code as $code) {
413 $param .=
'&search_ledger_code[]='.urlencode($code);
416 if (!empty($search_lettering_code)) {
417 $filter[
't.lettering_code'] = $search_lettering_code;
418 $param .=
'&search_lettering_code='.urlencode($search_lettering_code);
420 if (!empty($search_debit)) {
421 $filter[
't.debit'] = $search_debit;
422 $param .=
'&search_debit='.urlencode($search_debit);
424 if (!empty($search_credit)) {
425 $filter[
't.credit'] = $search_credit;
426 $param .=
'&search_credit='.urlencode($search_credit);
428 if (!empty($search_not_reconciled)) {
429 $filter[
't.reconciled_option'] = $search_not_reconciled;
430 $param .=
'&search_not_reconciled='.urlencode($search_not_reconciled);
432 if (!empty($search_date_export_start)) {
433 $filter[
't.date_export>='] = $search_date_export_start;
434 $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;
436 if (!empty($search_date_export_end)) {
437 $filter[
't.date_export<='] = $search_date_export_end;
438 $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;
440 if (!empty($search_date_validation_start)) {
441 $filter[
't.date_validated>='] = $search_date_validation_start;
442 $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;
444 if (!empty($search_date_validation_end)) {
445 $filter[
't.date_validated<='] = $search_date_validation_end;
446 $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;
449 if (!empty($search_date_due_start)) {
450 $filter[
't.date_lim_reglement>='] = $search_date_due_start;
451 $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;
454 if (!empty($search_date_due_end)) {
455 $filter[
't.date_lim_reglement<='] = $search_date_due_end;
456 $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;
458 if (!empty($search_import_key)) {
459 $filter[
't.import_key'] = $search_import_key;
460 $param .=
'&search_import_key='.urlencode($search_import_key);
463 $url_param = substr($param, 1);
465 $param =
'&type='.$type.$param;
469 if ($action ===
'exporttopdf' && $permissiontoadd) {
470 if ($type ==
"sub") {
471 $object->fetchAllByAccount($sortorder, $sortfield, 0, 0, $filter,
'AND', 1);
473 $object->fetchAllByAccount($sortorder, $sortfield, 0, 0, $filter);
475 require_once DOL_DOCUMENT_ROOT .
'/core/modules/accountancy/doc/pdf_ledger.modules.php';
477 $pdf->fromDate = $search_date_start;
478 $pdf->toDate = $search_date_end;
479 $pdf->ledgerType = $type;
481 $result = $pdf->write_file($object, $langs);
492 $objectclass =
'Bookkeeping';
493 $objectlabel =
'Bookkeeping';
494 $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 ===
'')) {
525 } elseif ($result < 0) {
529 } elseif (isset(
$object->date_validation) &&
$object->date_validation !=
'') {
530 setEventMessages($langs->trans(
"ValidatedRecordWhereFound"),
null,
'errors');
543 } elseif ($nbok > 0) {
549 header(
"Location: ".$_SERVER[
"PHP_SELF"].
"?noreset=1".($param ?
'&'.$param :
''));
557 if (!$error && $action ==
'clonebookkeepingwriting' && $confirm ==
"yes" && $user->hasRight(
'accounting',
'mouvements',
'creer')) {
558 $result =
$object->newCloneMass($toselect, $journal_code, $massdate);
564 header(
"Location: ".$_SERVER[
"PHP_SELF"].
"?noreset=1".($param ?
'&'.$param :
''));
572 if (!$error && $action ==
'assignaccountbookkeepingwriting' && $confirm ==
"yes" && $user->hasRight(
'accounting',
'mouvements',
'creer')) {
573 $result =
$object->assignAccountMass($toselect, (
int) $account);
579 header(
"Location: ".$_SERVER[
"PHP_SELF"].
"?noreset=1".($param ?
'&'.$param :
''));
587 if (!$error && $action ==
'returnaccountbookkeepingwriting' && $confirm ==
"yes" && $user->hasRight(
'accounting',
'mouvements',
'creer')) {
588 $result =
$object->newReturnAccount($toselect, $journal_code, $massdate);
594 header(
"Location: ".$_SERVER[
"PHP_SELF"].
"?noreset=1".($param ?
'&'.$param :
''));
603 if ($massaction ==
'generalmatchingmanual' && $permissiontoadd) {
605 $result = $lettering->updateGeneralMatching($toselect);
609 setEventMessages($langs->trans($result == 0 ?
'AccountancyNoMachingModified' :
'AccountancyOneMatchingModifiedSuccessfully'), array(),
'mesgs');
610 header(
'Location: ' . $_SERVER[
'PHP_SELF'] .
'?noreset=1' . $param);
613 } elseif ($massaction ==
'generalmatchingpartial' && $permissiontoadd) {
615 $result = $lettering->updateGeneralMatching($toselect,
true);
619 setEventMessages($langs->trans($result == 0 ?
'AccountancyNoMachingModified' :
'AccountancyOneMatchingModifiedSuccessfully'), array(),
'mesgs');
620 header(
'Location: ' . $_SERVER[
'PHP_SELF'] .
'?noreset=1' . $param);
623 } elseif ($action ==
'generalunmatchingmanual' && $confirm ==
'yes' && $permissiontodelete) {
625 $result = $lettering->deleteGeneralMatching($toselect);
629 setEventMessages($langs->trans($result == 0 ?
'AccountancyNoUnmatchingModified' :
'AccountancyOneUnmatchingModifiedSuccessfully'), array(),
'mesgs');
630 header(
'Location: ' . $_SERVER[
'PHP_SELF'] .
'?noreset=1' . $param);
633 } elseif ($type ==
'sub' && $massaction ==
'letteringauto' && $permissiontoadd) {
635 $nb_lettering = $lettering->bookkeepingLetteringAll($toselect);
636 if ($nb_lettering < 0) {
639 $nb_lettering = max(0, abs($nb_lettering) - 2);
640 } elseif ($nb_lettering == 0) {
642 setEventMessages($langs->trans(
'AccountancyNoMatchingModified'), array(),
'mesgs');
644 if ($nb_lettering == 1) {
645 setEventMessages($langs->trans(
'AccountancyOneMatchingModifiedSuccessfully'), array(),
'mesgs');
646 } elseif ($nb_lettering > 1) {
647 setEventMessages($langs->trans(
'AccountancyMatchingModifiedSuccessfully', $nb_lettering), array(),
'mesgs');
651 header(
'Location: ' . $_SERVER[
'PHP_SELF'] .
'?noreset=1' . $param);
654 } elseif ($type ==
'sub' && $massaction ==
'letteringmanual' && $permissiontoadd) {
656 $result = $lettering->updateLettering($toselect);
660 setEventMessages($langs->trans($result == 0 ?
'AccountancyNoMatchingModified' :
'AccountancyOneMatchingModifiedSuccessfully'), array(),
'mesgs');
661 header(
'Location: ' . $_SERVER[
'PHP_SELF'] .
'?noreset=1' . $param);
664 } elseif ($type ==
'sub' && $massaction ==
'letteringpartial' && $permissiontoadd) {
666 $result = $lettering->updateLettering($toselect, 0,
true);
670 setEventMessages($langs->trans($result == 0 ?
'AccountancyNoMatchingModified' :
'AccountancyOneMatchingModifiedSuccessfully'), array(),
'mesgs');
671 header(
'Location: ' . $_SERVER[
'PHP_SELF'] .
'?noreset=1' . $param);
674 } elseif ($type ==
'sub' && $action ==
'unletteringauto' && $confirm ==
"yes" && $permissiontoadd) {
676 $nb_lettering = $lettering->bookkeepingLetteringAll($toselect,
true);
677 if ($nb_lettering < 0) {
680 $nb_lettering = max(0, abs($nb_lettering) - 2);
681 } elseif ($nb_lettering == 0) {
683 setEventMessages($langs->trans(
'AccountancyNoUnmatchingModified'), array(),
'mesgs');
685 if ($nb_lettering == 1) {
686 setEventMessages($langs->trans(
'AccountancyOneUnmatchingModifiedSuccessfully'), array(),
'mesgs');
687 } elseif ($nb_lettering > 1) {
688 setEventMessages($langs->trans(
'AccountancyUnmatchingModifiedSuccessfully', $nb_lettering), array(),
'mesgs');
692 header(
'Location: ' . $_SERVER[
'PHP_SELF'] .
'?noreset=1' . $param);
695 } elseif ($type ==
'sub' && $action ==
'unletteringmanual' && $confirm ==
"yes" && $permissiontoadd) {
697 $nb_lettering = $lettering->deleteLettering($toselect);
701 setEventMessages($langs->trans($result == 0 ?
'AccountancyNoUnmatchingModified' :
'AccountancyOneUnmatchingModifiedSuccessfully'), array(),
'mesgs');
702 header(
'Location: ' . $_SERVER[
'PHP_SELF'] .
'?noreset=1' . $param);
719$title_page = $langs->trans(
"Operations").
' - '.$langs->trans(
"VueByAccountAccounting").
' (';
721 $title_page .= $langs->trans(
"BookkeepingSubAccount");
723 $title_page .= $langs->trans(
"Bookkeeping");
726$help_url =
'EN:Module_Double_Entry_Accounting|FR:Module_Comptabilité_en_Partie_Double';
727llxHeader(
'', $title_page, $help_url,
'', 0, 0,
'',
'',
'',
'mod-accountancy accountancy-consultation page-'.(($type ==
'sub') ?
'sub' :
'').
'ledger');
731 $res = $companystatic->fetch($socid);
738 print
dol_get_fiche_head($head,
'accounting', $langs->trans(
"ThirdParty"), -1,
'company');
740 $linkback =
'<a href="'.DOL_URL_ROOT.
'/societe/list.php?restore_lastsearch_values=1">'.$langs->trans(
"BackToList").
'</a>';
742 dol_banner_tab($companystatic,
'socid', $linkback, ($user->socid ? 0 : 1),
'rowid',
'nom');
744 print
'<div class="fichecenter">';
746 print
'<div class="underbanner clearboth"></div>';
747 print
'<table class="border centpercent tableforfield">';
750 print
'<tr><td class="titlefield">'.$langs->trans(
'NatureOfThirdParty').
'</td><td>';
751 print $companystatic->getTypeUrl(1);
755 if ($companystatic->client && !empty($companystatic->code_client)) {
756 print
'<tr><td class="titlefield">';
757 print $langs->trans(
'CustomerCode').
'</td><td>';
758 print showValueWithClipboardCPButton(
dol_escape_htmltag($companystatic->code_client));
759 $tmpcheck = $companystatic->check_codeclient();
760 if ($tmpcheck != 0 && $tmpcheck != -5) {
761 print
' <span class="error">('.$langs->trans(
"WrongCustomerCode").
')</span>';
767 if ($companystatic->fournisseur && !empty($companystatic->code_fournisseur)) {
768 print
'<tr><td class="titlefield">';
769 print $langs->trans(
'SupplierCode').
'</td><td>';
770 print showValueWithClipboardCPButton(
dol_escape_htmltag($companystatic->code_fournisseur));
771 $tmpcheck = $companystatic->check_codefournisseur();
772 if ($tmpcheck != 0 && $tmpcheck != -5) {
773 print
' <span class="error">('.$langs->trans(
"WrongSupplierCode").
')</span>';
783 print
info_admin($langs->trans(
"WarningThisPageContainsOnlyEntriesTransferredInAccounting"));
787 if (!empty(
$conf->dol_use_jmobile)) {
788 print
"\n".
'<div class="fichecenter"><div class="nowrap">'.
"\n";
791 if ($companystatic->client && !empty($companystatic->code_compta_client)) {
792 if ($mode !=
'customer') {
793 if (!empty($companystatic->code_compta_client)) {
794 $subledger_start_account = $subledger_end_account = $companystatic->code_compta_client;
796 $subledger_start_account = $subledger_end_account =
'';
798 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.
'">';
800 print
'<span class="a-mesure marginleftonly marginrightonly">';
803 print $langs->trans(
"CustomerAccountancyCodeShort");
804 if ($mode !=
'customer') {
811 if ($companystatic->fournisseur && !empty($companystatic->code_compta_fournisseur)) {
812 if ($mode !=
'supplier') {
813 if (!empty($companystatic->code_compta_fournisseur)) {
814 $subledger_start_account = $subledger_end_account = $companystatic->code_compta_fournisseur;
816 $subledger_start_account = $subledger_end_account =
'';
818 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.
'">';
820 print
'<span class="a-mesure marginleftonly marginrightonly">';
822 print $langs->trans(
"SupplierAccountancyCodeShort");
823 if ($mode !=
'supplier') {
830 if (!empty(
$conf->dol_use_jmobile)) {
831 print
'</div></div>';
840$nbtotalofrecords =
'';
843 if ($type ==
'sub') {
844 $nbtotalofrecords =
$object->fetchAllByAccount($sortorder, $sortfield, 0, 0, $filter,
'AND', 1, 1);
846 $nbtotalofrecords =
$object->fetchAllByAccount($sortorder, $sortfield, 0, 0, $filter,
'AND', 0, 1);
849 if ($nbtotalofrecords < 0) {
857 if ($type ==
'sub') {
858 $result =
$object->fetchAllByAccount($sortorder, $sortfield, $limit, $offset, $filter,
'AND', 1);
860 $result =
$object->fetchAllByAccount($sortorder, $sortfield, $limit, $offset, $filter,
'AND', 0);
870$arrayofselected = is_array($toselect) ? $toselect : array();
877$arrayofmassactions = array();
878if (
getDolGlobalInt(
'ACCOUNTING_ENABLE_LETTERING') && $user->hasRight(
'accounting',
'mouvements',
'creer')) {
879 if ($type ==
'sub') {
881 $arrayofmassactions[
'letteringauto'] =
img_picto(
'',
'check',
'class="pictofixedwidth"') . $langs->trans(
'LetteringAuto');
882 $arrayofmassactions[
'preunletteringauto'] =
img_picto(
'',
'uncheck',
'class="pictofixedwidth"') . $langs->trans(
'UnletteringAuto');
883 $arrayofmassactions[
'letteringmanual'] =
img_picto(
'',
'check',
'class="pictofixedwidth"') . $langs->trans(
'LetteringManual');
884 $arrayofmassactions[
'letteringpartial'] =
img_picto(
'',
'check',
'class="pictofixedwidth"') . $langs->trans(
'LetteringPartial');
885 $arrayofmassactions[
'preunletteringmanual'] =
img_picto(
'',
'uncheck',
'class="pictofixedwidth"') . $langs->trans(
'UnletteringManual');
888 $arrayofmassactions[
'generalmatchingmanual'] =
img_picto(
'',
'check',
'class="pictofixedwidth"') . $langs->trans(
'GeneralMatchingManual');
889 $arrayofmassactions[
'generalmatchingpartial'] =
img_picto(
'',
'check',
'class="pictofixedwidth"') . $langs->trans(
'GeneralMatchingPartial');
890 $arrayofmassactions[
'pregeneralunmatchingmanual'] =
img_picto(
'',
'uncheck',
'class="pictofixedwidth"') . $langs->trans(
'GeneralUnmatchingManual');
893if ($user->hasRight(
'accounting',
'mouvements',
'creer')) {
894 $arrayofmassactions[
'preclonebookkeepingwriting'] =
img_picto(
'',
'clone',
'class="pictofixedwidth"').$langs->trans(
"Clone");
896if ($user->hasRight(
'accounting',
'mouvements',
'creer')) {
897 $arrayofmassactions[
'preassignaccountbookkeepingwriting'] =
img_picto(
'',
'fa-exchange-alt',
'class="pictofixedwidth"').$langs->trans(
"AssignAccount");
899if ($user->hasRight(
'accounting',
'mouvements',
'creer')) {
900 $arrayofmassactions[
'prereturnaccountbookkeepingwriting'] =
img_picto(
'',
'undo',
'class="pictofixedwidth"').$langs->trans(
"ReturnAccount");
902if ($user->hasRight(
'accounting',
'mouvements',
'supprimer')) {
903 $arrayofmassactions[
'predeletebookkeepingwriting'] =
img_picto(
'',
'delete',
'class="pictofixedwidth"').$langs->trans(
"Delete");
906if (
GETPOSTINT(
'nomassaction') || in_array($massaction, array(
'preunletteringauto',
'preunletteringmanual',
'pregeneralunmatchingmanual',
'predeletebookkeepingwriting',
'preclonebookkeepingwriting',
'preassignaccountbookkeepingwriting',
'prereturnaccountbookkeepingwriting'))) {
907 $arrayofmassactions = array();
909$massactionbutton = $form->selectMassAction($massaction, $arrayofmassactions);
911print
'<form method="POST" id="searchFormList" action="'.dolBuildUrl($_SERVER[
"PHP_SELF"]).
'">';
912print
'<input type="hidden" name="token" value="'.newToken().
'">';
913print
'<input type="hidden" name="action" value="list">';
914if ($optioncss !=
'') {
915 print
'<input type="hidden" name="optioncss" value="'.$optioncss.
'">';
917print
'<input type="hidden" name="formfilteraction" id="formfilteraction" value="list">';
918print
'<input type="hidden" name="type" value="'.$type.
'">';
920 print
'<input type="hidden" name="socid" value="' . $socid .
'">';
922print
'<input type="hidden" name="sortfield" value="'.$sortfield.
'">';
923print
'<input type="hidden" name="sortorder" value="'.$sortorder.
'">';
924print
'<input type="hidden" name="contextpage" value="'.$contextpage.
'">';
926$parameters = array(
'param' => $param);
927$reshook = $hookmanager->executeHooks(
'addMoreActionsButtonsList', $parameters, $object, $action);
932$newcardbutton = empty($hookmanager->resPrint) ?
'' : $hookmanager->resPrint;
934if (empty($reshook)) {
937 $newcardbutton = dolGetButtonTitle($langs->trans(
'ViewFlatList'),
'',
'fa fa-list paddingleft imgforviewmode', DOL_URL_ROOT .
'/accountancy/bookkeeping/list.php?' . $param);
938 if ($type ==
'sub') {
939 $newcardbutton .= dolGetButtonTitle($langs->trans(
'GroupByAccountAccounting'),
'',
'fa fa-stream paddingleft imgforviewmode', DOL_URL_ROOT .
'/accountancy/bookkeeping/listbyaccount.php?' . $url_param,
'', 1, array(
'morecss' =>
'marginleftonly'));
940 $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'));
942 $newcardbutton .= dolGetButtonTitle($langs->trans(
'GroupByAccountAccounting'),
'',
'fa fa-stream paddingleft imgforviewmode', DOL_URL_ROOT .
'/accountancy/bookkeeping/listbyaccount.php?' . $url_param,
'', 1, array(
'morecss' =>
'marginleftonly btnTitleSelected'));
943 $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'));
946 $newcardbutton .= dolGetButtonTitle($langs->trans(
'ExportToPdf'),
'',
'fa fa-file-pdf paddingleft', $_SERVER[
'PHP_SELF'] .
'?token=' . newToken() .
'&action=exporttopdf'.(!empty($type) ?
'&type=sub' :
'').
'&' . $url_param,
'', $permissiontoexport, array(
'morecss' =>
'marginleftonly'));
948 $newcardbutton .= dolGetButtonTitleSeparator();
950 $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);
953if ($contextpage != $_SERVER[
"PHP_SELF"]) {
954 $param .=
'&contextpage='.urlencode($contextpage);
956if ($limit > 0 && $limit !=
$conf->liste_limit) {
957 $param .=
'&limit='.((int) $limit);
960print_barre_liste($title_page, $page, $_SERVER[
"PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords,
'title_accountancy', 0, $newcardbutton,
'', $limit, 0, 0, 1);
962if ($massaction ==
'preunletteringauto') {
963 print $form->formconfirm($_SERVER[
"PHP_SELF"], $langs->trans(
"ConfirmMassUnletteringAuto"), $langs->trans(
"ConfirmMassUnletteringQuestion", count($toselect)),
"unletteringauto",
null,
'', 0, 200, 500, 1);
964} elseif ($massaction ==
'preunletteringmanual') {
965 print $form->formconfirm($_SERVER[
"PHP_SELF"], $langs->trans(
"ConfirmMassUnletteringManual"), $langs->trans(
"ConfirmMassUnletteringQuestion", count($toselect)),
"unletteringmanual",
null,
'', 0, 200, 500, 1);
966} elseif ($massaction ==
'pregeneralunmatchingmanual') {
967 print $form->formconfirm($_SERVER[
'PHP_SELF'], $langs->trans(
'ConfirmMassGeneralUnmatchingManual'), $langs->trans(
'ConfirmMassGeneralUnmatchingQuestion', count($toselect)),
'generalunmatchingmanual',
null,
'', 0, 200, 500, 1);
968} elseif ($massaction ==
'predeletebookkeepingwriting') {
969 print $form->formconfirm($_SERVER[
"PHP_SELF"], $langs->trans(
"ConfirmMassDeleteBookkeepingWriting"), $langs->trans(
"ConfirmMassDeleteBookkeepingWritingQuestion", count($toselect)),
"deletebookkeepingwriting",
null,
'', 0, 200, 500, 1);
970} elseif ($massaction ==
'preassignaccountbookkeepingwriting') {
971 $input = $formaccounting->select_account(
'',
'account', 1);
972 $formquestion = array(array(
'type' =>
'other',
'name' =>
'account',
'label' =>
'<span class="fieldrequired">' . $langs->trans(
"AccountAccountingShort") .
'</span>',
'value' => $input),);
973 print $form->formconfirm($_SERVER[
"PHP_SELF"], $langs->trans(
"confirmMassAssignAccountBookkeepingWritingConfirm"), $langs->trans(
"ConfirmMassAssignAccountBookkeepingWritingQuestion", count($toselect)),
"assignaccountbookkeepingwriting", $formquestion,
'', 0, 200, 500, 1);
974} elseif ($massaction ==
'preclonebookkeepingwriting') {
975 $input1 = $form->selectDate(
'',
'massdate', 0, 0, 0,
"create_mvt", 1, 1);
976 $input2 = $formaccounting->select_journal($journal_code,
'code_journal', 0, 0, 1, 1).
'</td>';
977 $formquestion = array(
980 'name' =>
'massdate',
981 'label' =>
'<span class="fieldrequired">' . $langs->trans(
"Docdate") .
'</span>',
987 $formquestion[] = array(
989 'name' =>
'code_journal',
990 'label' =>
'<span class="fieldrequired">' . $langs->trans(
"Codejournal") .
'</span>',
995 print $form->formconfirm(
996 $_SERVER[
"PHP_SELF"],
997 $langs->trans(
"ConfirmMassCloneBookkeepingWriting"),
998 $langs->trans(
"ConfirmMassCloneBookkeepingWritingQuestion", count($toselect)),
999 "clonebookkeepingwriting",
1003} elseif ($massaction ==
'prereturnaccountbookkeepingwriting') {
1004 $input1 = $form->selectDate(
'',
'massdate', 0, 0, 0,
"create_mvt", 1, 1);
1005 $formquestion = array(array(
'type' =>
'other',
'name' =>
'massdate',
'label' =>
'<span class="fieldrequired">' . $langs->trans(
"Docdate") .
'</span>',
'value' => $input1));
1006 print $form->formconfirm($_SERVER[
"PHP_SELF"], $langs->trans(
"ConfirmMassReturnAccountBookkeepingWriting"), $langs->trans(
"ConfirmMassReturnAccountBookkeepingWritingQuestion", count($toselect)),
"returnaccountbookkeepingwriting", $formquestion,
'', 0, 200, 500, 1);
1009include DOL_DOCUMENT_ROOT.
'/core/tpl/massactions_pre.tpl.php';
1011$varpage = empty($contextpage) ? $_SERVER[
"PHP_SELF"] : $contextpage;
1012$selectedfields = $form->multiSelectArrayWithCheckbox(
'selectedfields', $arrayfields, $varpage,
$conf->main_checkbox_left_column);
1013if ($massactionbutton && $contextpage !=
'poslist') {
1014 $selectedfields .= $form->showCheckAddButtons(
'checkforselect', 1);
1018if (preg_match(
'/^asc/i', $sortorder)) {
1021 $sortorder =
"desc";
1025if ($type ==
'sub' && !$socid) {
1026 print
info_admin($langs->trans(
"WarningRecordWithoutSubledgerAreExcluded"));
1033$moreforfilter .=
'<div class="divsearchfield">';
1034$moreforfilter .= $langs->trans(
'AccountAccounting').
': ';
1035$moreforfilter .=
'<div class="nowrap inline-block">';
1036if ($type ==
'sub') {
1037 $moreforfilter .= $formaccounting->select_auxaccount($search_accountancy_code_start,
'search_accountancy_code_start', $langs->trans(
'From'),
'maxwidth200');
1039 $moreforfilter .= $formaccounting->select_account($search_accountancy_code_start,
'search_accountancy_code_start', $langs->trans(
'From'), array(), 1, 1,
'maxwidth200');
1041$moreforfilter .=
' ';
1042if ($type ==
'sub') {
1043 $moreforfilter .= $formaccounting->select_auxaccount($search_accountancy_code_end,
'search_accountancy_code_end', $langs->trans(
'to'),
'maxwidth200');
1045 $moreforfilter .= $formaccounting->select_account($search_accountancy_code_end,
'search_accountancy_code_end', $langs->trans(
'to'), array(), 1, 1,
'maxwidth200');
1049 $moreforfilter .=
' <a id="previous_account" accesskey="p" title="' .
$conf->browser->stringforfirstkey .
' p" class="classfortooltip" href="#"><i class="fa fa-chevron-left"></i></a>';
1050 $moreforfilter .=
' <a id="next_account" accesskey="n" title="' .
$conf->browser->stringforfirstkey .
' n" class="classfortooltip" href="#"><i class="fa fa-chevron-right"></i></a>';
1051 $moreforfilter .= <<<SCRIPT
1052<script
type=
"text/javascript">
1053 jQuery(document).ready(
function() {
1054 var searchFormList = $(
'#searchFormList');
1055 var searchAccountancyCodeStart = $(
'#search_accountancy_code_start');
1056 var searchAccountancyCodeEnd = $(
'#search_accountancy_code_end');
1057 jQuery(
'#previous_account').on(
'click',
function() {
1058 var previousOption = searchAccountancyCodeStart.find(
'option:selected').prev(
'option');
1059 if (previousOption.length == 1) searchAccountancyCodeStart.val(previousOption.attr(
'value'));
1060 searchAccountancyCodeEnd.val(searchAccountancyCodeStart.val());
1061 searchFormList.submit();
1063 jQuery(
'#next_account').on(
'click',
function() {
1064 var nextOption = searchAccountancyCodeStart.find(
'option:selected').next(
'option');
1065 if (nextOption.length == 1) searchAccountancyCodeStart.val(nextOption.attr(
'value'));
1066 searchAccountancyCodeEnd.val(searchAccountancyCodeStart.val());
1067 searchFormList.submit();
1069 jQuery(
'input[name="search_mvt_num"]').on(
"keypress",
function(event) {
1076$moreforfilter .=
'</div>';
1077$moreforfilter .=
'</div>';
1080 $moreforfilter .=
'<div class="divsearchfield">';
1081 $moreforfilter .= $langs->trans(
'AccountingCategory') .
': ';
1082 $moreforfilter .=
'<div class="nowrap inline-block">';
1083 $moreforfilter .= $formaccounting->select_accounting_category($search_account_category,
'search_account_category', 1, 0, 0, 0);
1084 $moreforfilter .=
'</div>';
1085 $moreforfilter .=
'</div>';
1088$parameters = array();
1089$reshook = $hookmanager->executeHooks(
'printFieldPreListTitle', $parameters, $object, $action);
1090if (empty($reshook)) {
1091 $moreforfilter .= $hookmanager->resPrint;
1093 $moreforfilter = $hookmanager->resPrint;
1096print
'<div class="liste_titre liste_titre_bydiv centpercent">';
1097print $moreforfilter;
1100print
'<div class="div-table-responsive">';
1101print
'<table class="tagtable liste centpercent listwithfilterbefore">';
1104print
'<tr class="liste_titre_filter">';
1106if (
$conf->main_checkbox_left_column) {
1107 print
'<td class="liste_titre center">';
1108 $searchpicto = $form->showFilterButtons(
'left');
1113if (!empty($arrayfields[
't.piece_num'][
'checked'])) {
1114 print
'<td class="liste_titre"><input type="text" name="search_mvt_num" class="width50" value="'.dol_escape_htmltag($search_mvt_num).
'"></td>';
1117if (!empty($arrayfields[
't.code_journal'][
'checked'])) {
1118 print
'<td class="liste_titre center">';
1119 print $formaccounting->multi_select_journal($search_ledger_code,
'search_ledger_code', 0, 1, 1, 1,
'maxwidth75');
1123if (!empty($arrayfields[
't.doc_date'][
'checked'])) {
1124 print
'<td class="liste_titre center">';
1125 print
'<div class="nowrapfordate">';
1126 print $form->selectDate($search_date_start,
'search_date_start', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
"From"));
1128 print
'<div class="nowrapfordate">';
1129 print $form->selectDate($search_date_end,
'search_date_end', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
"to"));
1134if (!empty($arrayfields[
't.doc_ref'][
'checked'])) {
1135 print
'<td class="liste_titre"><input type="text" size="7" class="flat" name="search_doc_ref" value="'.dol_escape_htmltag($search_doc_ref).
'"/></td>';
1138if (!empty($arrayfields[
't.label_operation'][
'checked'])) {
1139 print
'<td class="liste_titre"><input type="text" size="7" class="flat" name="search_label_operation" value="'.dol_escape_htmltag($search_label_operation).
'"/></td>';
1142if (!empty($arrayfields[
't.lettering_code'][
'checked'])) {
1143 print
'<td class="liste_titre center">';
1144 print
'<input type="text" size="3" class="flat" name="search_lettering_code" value="'.$search_lettering_code.
'"/>';
1145 print
'<br><span class="nowrap"><input type="checkbox" name="search_not_reconciled" value="notreconciled"'.($search_not_reconciled ==
'notreconciled' ?
' checked' :
'').
'>'.$langs->trans(
"NotReconciled").
'</span>';
1149if (!empty($arrayfields[
't.debit'][
'checked'])) {
1150 print
'<td class="liste_titre right"><input type="text" class="flat" name="search_debit" size="4" value="'.dol_escape_htmltag($search_debit).
'"></td>';
1153if (!empty($arrayfields[
't.credit'][
'checked'])) {
1154 print
'<td class="liste_titre right"><input type="text" class="flat" name="search_credit" size="4" value="'.dol_escape_htmltag($search_credit).
'"></td>';
1157if (!empty($arrayfields[
't.balance'][
'checked'])) {
1161if (!empty($arrayfields[
't.date_export'][
'checked'])) {
1162 print
'<td class="liste_titre center">';
1163 print
'<div class="nowrapfordate">';
1164 print $form->selectDate($search_date_export_start,
'search_date_export_start', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
"From"));
1166 print
'<div class="nowrapfordate">';
1167 print $form->selectDate($search_date_export_end,
'search_date_export_end', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
"to"));
1172if (!empty($arrayfields[
't.date_validated'][
'checked'])) {
1173 print
'<td class="liste_titre center">';
1174 print
'<div class="nowrapfordate">';
1175 print $form->selectDate($search_date_validation_start,
'search_date_validation_start', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
"From"));
1177 print
'<div class="nowrapfordate">';
1178 print $form->selectDate($search_date_validation_end,
'search_date_validation_end', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
"to"));
1183if (!empty($arrayfields[
't.date_lim_reglement'][
'checked'])) {
1184 print
'<td class="liste_titre center">';
1185 print
'<div class="nowrapfordate">';
1186 print $form->selectDate($search_date_due_start,
'search_date_due_start_', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
"From"));
1188 print
'<div class="nowrapfordate">';
1189 print $form->selectDate($search_date_due_end,
'search_date_due_end_', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
"to"));
1193if (!empty($arrayfields[
't.import_key'][
'checked'])) {
1194 print
'<td class="liste_titre center">';
1195 print
'<input class="flat searchstring maxwidth50" type="text" name="search_import_key" value="'.dol_escape_htmltag($search_import_key).
'">';
1200$parameters = array(
'arrayfields' => $arrayfields);
1201$reshook = $hookmanager->executeHooks(
'printFieldListOption', $parameters);
1202print $hookmanager->resPrint;
1205if (!
$conf->main_checkbox_left_column) {
1206 print
'<td class="liste_titre center">';
1207 $searchpicto = $form->showFilterButtons();
1213print
'<tr class="liste_titre">';
1214if (
$conf->main_checkbox_left_column) {
1215 print_liste_field_titre($selectedfields, $_SERVER[
"PHP_SELF"],
"",
'',
'',
'', $sortfield, $sortorder,
'center maxwidthsearch ');
1217if (!empty($arrayfields[
't.piece_num'][
'checked'])) {
1218 print_liste_field_titre($arrayfields[
't.piece_num'][
'label'], $_SERVER[
'PHP_SELF'],
"t.piece_num",
"", $param,
'', $sortfield, $sortorder,
'tdoverflowmax80imp ');
1220if (!empty($arrayfields[
't.code_journal'][
'checked'])) {
1221 print_liste_field_titre($arrayfields[
't.code_journal'][
'label'], $_SERVER[
'PHP_SELF'],
"t.code_journal",
"", $param,
'', $sortfield, $sortorder,
'center ');
1223if (!empty($arrayfields[
't.doc_date'][
'checked'])) {
1224 print_liste_field_titre($arrayfields[
't.doc_date'][
'label'], $_SERVER[
'PHP_SELF'],
"t.doc_date",
"", $param,
'', $sortfield, $sortorder,
'center ');
1226if (!empty($arrayfields[
't.doc_ref'][
'checked'])) {
1227 print_liste_field_titre($arrayfields[
't.doc_ref'][
'label'], $_SERVER[
'PHP_SELF'],
"t.doc_ref",
"", $param,
"", $sortfield, $sortorder);
1229if (!empty($arrayfields[
't.label_operation'][
'checked'])) {
1230 print_liste_field_titre($arrayfields[
't.label_operation'][
'label'], $_SERVER[
'PHP_SELF'],
"t.label_operation",
"", $param,
"", $sortfield, $sortorder);
1232if (!empty($arrayfields[
't.lettering_code'][
'checked'])) {
1233 print_liste_field_titre($arrayfields[
't.lettering_code'][
'label'], $_SERVER[
'PHP_SELF'],
"t.lettering_code",
"", $param,
'', $sortfield, $sortorder,
'center ');
1235if (!empty($arrayfields[
't.debit'][
'checked'])) {
1236 print_liste_field_titre($arrayfields[
't.debit'][
'label'], $_SERVER[
'PHP_SELF'],
"t.debit",
"", $param,
'', $sortfield, $sortorder,
'right ');
1238if (!empty($arrayfields[
't.credit'][
'checked'])) {
1239 print_liste_field_titre($arrayfields[
't.credit'][
'label'], $_SERVER[
'PHP_SELF'],
"t.credit",
"", $param,
'', $sortfield, $sortorder,
'right ');
1241if (!empty($arrayfields[
't.balance'][
'checked'])) {
1242 print_liste_field_titre($arrayfields[
't.balance'][
'label'],
"",
"",
"", $param,
'', $sortfield, $sortorder,
'right ');
1244if (!empty($arrayfields[
't.date_export'][
'checked'])) {
1245 print_liste_field_titre($arrayfields[
't.date_export'][
'label'], $_SERVER[
'PHP_SELF'],
"t.date_export",
"", $param,
'', $sortfield, $sortorder,
'center ');
1247if (!empty($arrayfields[
't.date_validated'][
'checked'])) {
1248 print_liste_field_titre($arrayfields[
't.date_validated'][
'label'], $_SERVER[
'PHP_SELF'],
"t.date_validated",
"", $param,
'', $sortfield, $sortorder,
'center ');
1251if (!empty($arrayfields[
't.date_lim_reglement'][
'checked'])) {
1252 print_liste_field_titre($arrayfields[
't.date_lim_reglement'][
'label'], $_SERVER[
'PHP_SELF'],
't.date_lim_reglement',
'', $param,
'', $sortfield, $sortorder,
'center ');
1254if (!empty($arrayfields[
't.import_key'][
'checked'])) {
1255 print_liste_field_titre($arrayfields[
't.import_key'][
'label'], $_SERVER[
"PHP_SELF"],
"t.import_key",
"", $param,
'', $sortfield, $sortorder,
'center ');
1258$parameters = array(
'arrayfields' => $arrayfields,
'param' => $param,
'sortfield' => $sortfield,
'sortorder' => $sortorder);
1259$reshook = $hookmanager->executeHooks(
'printFieldListTitle', $parameters);
1260print $hookmanager->resPrint;
1261if (!
$conf->main_checkbox_left_column) {
1262 print_liste_field_titre($selectedfields, $_SERVER[
"PHP_SELF"],
"",
'',
'',
'', $sortfield, $sortorder,
'center maxwidthsearch ');
1266$displayed_account_number =
null;
1268$objectstatic =
null;
1278$sous_total_debit = 0;
1279$sous_total_credit = 0;
1292if (!empty($arrayfields[
't.piece_num'][
'checked'])) { $colspan++; }
1293if (!empty($arrayfields[
't.code_journal'][
'checked'])) { $colspan++; }
1294if (!empty($arrayfields[
't.doc_date'][
'checked'])) { $colspan++; }
1295if (!empty($arrayfields[
't.doc_ref'][
'checked'])) { $colspan++; }
1296if (!empty($arrayfields[
't.label_operation'][
'checked'])) { $colspan++; }
1297if (!empty($arrayfields[
't.date_export'][
'checked'])) { $colspanend++; }
1298if (!empty($arrayfields[
't.date_validated'][
'checked'])) { $colspanend++; }
1299if (!empty($arrayfields[
't.lettering_code'][
'checked'])) { $colspanend++; }
1300if (
$conf->main_checkbox_left_column) {
1305while ($i < min($num, $limit)) {
1308 if ($type ==
'sub') {
1317 if (
$conf->main_checkbox_left_column) {
1320 if (!empty($arrayfields[
't.piece_num'][
'checked'])) {
1323 if (!empty($arrayfields[
't.code_journal'][
'checked'])) {
1326 if (!empty($arrayfields[
't.doc_date'][
'checked'])) {
1329 if (!empty($arrayfields[
't.doc_ref'][
'checked'])) {
1332 if (!empty($arrayfields[
't.label_operation'][
'checked'])) {
1335 if (!empty($arrayfields[
't.lettering_code'][
'checked'])) {
1339 if (!empty($arrayfields[
't.balance'][
'checked'])) {
1342 if (!empty($arrayfields[
't.date_export'][
'checked'])) {
1345 if (!empty($arrayfields[
't.date_validated'][
'checked'])) {
1349 if (!empty($arrayfields[
't.date_lim_reglement'][
'checked'])) {
1352 if (!empty($arrayfields[
't.lettering_code'][
'checked'])) {
1355 if (!empty($arrayfields[
't.import_key'][
'checked'])) {
1358 if (!
$conf->main_checkbox_left_column) {
1364 if ($accountg != $displayed_account_number || !isset($displayed_account_number)) {
1366 if (isset($displayed_account_number)) {
1367 print
'<tr class="liste_total">';
1368 if ($type ==
'sub') {
1369 print
'<td class="right" colspan="' . $colspan .
'">' . $langs->trans(
"TotalForAccount") .
' ' .
length_accounta($displayed_account_number) .
':</td>';
1371 print
'<td class="right" colspan="' . $colspan .
'">' . $langs->trans(
"TotalForAccount") .
' ' .
length_accountg($displayed_account_number) .
':</td>';
1373 print
'<td class="nowrap right">'.price(
price2num($sous_total_debit,
'MT')).
'</td>';
1374 print
'<td class="nowrap right">'.price(
price2num($sous_total_credit,
'MT')).
'</td>';
1375 if ($colspanend > 0) {
1376 print
'<td colspan="'.$colspanend.
'"></td>';
1380 $balance = $sous_total_debit - $sous_total_credit;
1381 print
'<tr class="liste_total">';
1382 print
'<td class="right" colspan="'.$colspan.
'">'.$langs->trans(
"Balance").
':</td>';
1384 print
'<td class="nowraponall right">';
1385 print
price(
price2num($sous_total_debit - $sous_total_credit,
'MT'));
1390 print
'<td class="nowraponall right">';
1391 print
price(
price2num($sous_total_credit - $sous_total_debit,
'MT'));
1394 if ($colspanend > 0) {
1395 print
'<td colspan="'.$colspanend.
'"></td>';
1401 print
'<tr class="trforbreaknobg">';
1402 print
'<td colspan="'.($totalarray[
'nbfield'] ?
$totalarray[
'nbfield'] : count($arrayfields) + 1).
'" class="tdforbreak">';
1403 if ($type ==
'sub') {
1404 if ($line->subledger_account !=
"" && $line->subledger_account !=
'-1') {
1405 print empty($line->subledger_label) ?
'<span class="error">'.$langs->trans(
"Unknown").
'</span>' : $line->subledger_label;
1410 print
'<span class="error">' . $langs->trans(
"Unknown");
1411 if ($line->subledger_label) {
1412 print
' (' . $line->subledger_label .
')';
1413 $htmltext =
'EmptyStringForSubledgerAccountButSubledgerLabelDefined';
1415 $htmltext =
'EmptyStringForSubledgerAccountAndSubledgerLabel';
1417 print $form->textwithpicto(
'', $htmltext);
1421 if ($line->numero_compte !=
"" && $line->numero_compte !=
'-1') {
1424 print
'<span class="error">' . $langs->trans(
"Unknown") .
'</span>';
1430 $displayed_account_number = $accountg;
1432 $sous_total_debit = 0;
1433 $sous_total_credit = 0;
1436 print
'<tr class="oddeven">';
1438 if (
$conf->main_checkbox_left_column) {
1439 print
'<td class="nowraponall center">';
1440 if (($massactionbutton || $massaction) && $contextpage !=
'poslist') {
1442 if (in_array($line->id, $arrayofselected)) {
1445 print
'<input id="cb' . $line->id .
'" class="flat checkforselect" type="checkbox" name="toselect[]" value="' . $line->id .
'"' . ($selected ?
' checked="checked"' :
'') .
' />';
1453 if (!empty($arrayfields[
't.piece_num'][
'checked'])) {
1454 print
'<td class="nowraponall">';
1456 $object->piece_num = $line->piece_num;
1458 print
$object->getNomUrl(1,
'', 0,
'', 1);
1459 print
'<span class="hideonsmartphone">';
1460 if (!empty($line->date_export)) {
1461 print
img_picto($langs->trans(
"DateExport").
": ".
dol_print_date($line->date_export,
'dayhour').
" (".$langs->trans(
"TransactionExportDesc").
")",
'fa-file-export',
'class="paddingleft pictofixedwidth opacitymedium"');
1463 if (!empty($line->date_validation)) {
1464 print
img_picto($langs->trans(
"DateValidation").
": ".
dol_print_date($line->date_validation,
'dayhour').
" (".$langs->trans(
"TransactionBlockedLockedDesc").
")",
'fa-lock',
'class="paddingleft pictofixedwidth opacitymedium"');
1474 if (!empty($arrayfields[
't.code_journal'][
'checked'])) {
1476 $result = $accountingjournal->fetch(0, $line->code_journal);
1477 $journaltoshow = (($result > 0) ? $accountingjournal->getNomUrl(0, 0, 0,
'', 0) : $line->code_journal);
1478 print
'<td class="center tdoverflowmax80">'.$journaltoshow.
'</td>';
1485 if (!empty($arrayfields[
't.doc_date'][
'checked'])) {
1486 print
'<td class="center">'.dol_print_date($line->doc_date,
'day').
'</td>';
1494 if (!empty($arrayfields[
't.doc_ref'][
'checked'])) {
1495 if ($line->doc_type ==
'customer_invoice') {
1496 $langs->loadLangs(array(
'bills'));
1498 require_once DOL_DOCUMENT_ROOT.
'/compta/facture/class/facture.class.php';
1500 $objectstatic->fetch($line->fk_doc);
1505 $urlsource = $_SERVER[
'PHP_SELF'].
'?id='.$objectstatic->id;
1506 $documentlink = $formfile->getDocumentsLink($objectstatic->element, $filename, $filedir);
1507 } elseif ($line->doc_type ==
'supplier_invoice') {
1508 $langs->loadLangs(array(
'bills'));
1510 require_once DOL_DOCUMENT_ROOT.
'/fourn/class/fournisseur.facture.class.php';
1512 $objectstatic->fetch($line->fk_doc);
1514 $modulepart =
'invoice_supplier';
1516 $filedir =
$conf->fournisseur->facture->dir_output.
'/'.
get_exdir($line->fk_doc, 2, 0, 0, $objectstatic, $modulepart).dol_sanitizeFileName($line->doc_ref);
1517 $subdir =
get_exdir($objectstatic->id, 2, 0, 0, $objectstatic, $modulepart).dol_sanitizeFileName($line->doc_ref);
1518 $documentlink = $formfile->getDocumentsLink($objectstatic->element, $subdir, $filedir);
1519 } elseif ($line->doc_type ==
'expense_report') {
1520 $langs->loadLangs(array(
'trips'));
1522 require_once DOL_DOCUMENT_ROOT.
'/expensereport/class/expensereport.class.php';
1524 $objectstatic->fetch($line->fk_doc);
1529 $urlsource = $_SERVER[
'PHP_SELF'].
'?id='.$objectstatic->id;
1530 $documentlink = $formfile->getDocumentsLink($objectstatic->element, $filename, $filedir);
1531 } elseif ($line->doc_type ==
'bank') {
1532 require_once DOL_DOCUMENT_ROOT.
'/compta/bank/class/account.class.php';
1534 $objectstatic->fetch($line->fk_doc);
1539 print
'<td class="tdoverflowmax250">';
1542 if ($line->doc_type ==
'customer_invoice' || $line->doc_type ==
'supplier_invoice' || $line->doc_type ==
'expense_report') {
1543 print $objectstatic->getNomUrl(1,
'', 0, 0,
'', 0, -1, 1);
1544 print $documentlink;
1545 } elseif ($line->doc_type ==
'bank') {
1546 print $objectstatic->getNomUrl(1);
1547 $bank_ref = strstr($line->doc_ref,
'-');
1548 print
" " . $bank_ref;
1550 print $line->doc_ref;
1560 if (!empty($arrayfields[
't.label_operation'][
'checked'])) {
1562 $doc_ref = preg_replace(
'/\(.*\)/',
'', $line->doc_ref);
1564 print
'<td class="small tdoverflowmax350 classfortooltip" title="'.dol_escape_htmltag($line->label_operation).
'">'.
dol_escape_htmltag($line->label_operation).
'</td>';
1566 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>';
1574 if (!empty($arrayfields[
't.lettering_code'][
'checked'])) {
1576 if (!empty($line->matching_general)) {
1577 $tooltipText .= $langs->trans(
'GeneralMatching');
1578 } elseif (empty($line->matching_general) && !empty($line->lettering_code)) {
1579 $tooltipText .= $langs->trans(
'AuxiliaryMatching');
1581 print
'<td class="center classfortooltip" title="'.$tooltipText.
'">';
1582 if ($type ==
'sub') {
1584 if (!empty($line->lettering_code)) {
1586 print
'<span class="badge badge-status1"><i class="fas fa-user fa-xs"></i> ' .
dol_escape_htmltag((
string) $line->lettering_code) .
'</span>';
1588 } elseif (!empty($line->matching_general) && !empty($line->lettering_code)) {
1589 print
'<span class="badge badge-status4"><i class="fas fa-book fa-xs"></i> ' .
dol_escape_htmltag((
string) $line->lettering_code) .
'</span>';
1596 if (!empty($arrayfields[
't.debit'][
'checked'])) {
1597 print
'<td class="right nowraponall amount">'.($line->debit != 0 ?
price($line->debit) :
'').
'</td>';
1604 $totalarray[
'val'][
'totaldebit'] += (float) $line->debit;
1608 if (!empty($arrayfields[
't.credit'][
'checked'])) {
1609 print
'<td class="right nowraponall amount">'.($line->credit != 0 ?
price($line->credit) :
'').
'</td>';
1616 $totalarray[
'val'][
'totalcredit'] += (float) $line->credit;
1620 if (!empty($arrayfields[
't.balance'][
'checked'])) {
1621 print
'<td class="right nowraponall amount">'.price(
price2num($sous_total_debit + $line->debit - $sous_total_credit - $line->credit,
'MT')).
'</td>';
1628 $totalarray[
'val'][
'totalbalance'] += $line->debit - $line->credit;
1632 if (!empty($arrayfields[
't.date_export'][
'checked'])) {
1633 print
'<td class="center">'.dol_print_date($line->date_export,
'dayhour').
'</td>';
1640 if (!empty($arrayfields[
't.date_validated'][
'checked'])) {
1641 print
'<td class="center">'.dol_print_date($line->date_validation,
'dayhour').
'</td>';
1648 if (!empty($arrayfields[
't.date_lim_reglement'][
'checked'])) {
1649 print
'<td class="center">'.dol_print_date($line->date_lim_reglement,
'day').
'</td>';
1655 if (!empty($arrayfields[
't.import_key'][
'checked'])) {
1656 print
'<td class="tdoverflowmax125" title="'.dol_escape_htmltag($line->import_key).
'">'.
dol_escape_htmltag($line->import_key).
"</td>\n";
1663 $parameters = array(
'arrayfields' => $arrayfields,
'obj' => $line);
1664 $reshook = $hookmanager->executeHooks(
'printFieldListValue', $parameters);
1665 print $hookmanager->resPrint;
1668 if (!
$conf->main_checkbox_left_column) {
1669 print
'<td class="nowraponall center">';
1670 if (($massactionbutton || $massaction) && $contextpage !=
'poslist') {
1672 if (in_array($line->id, $arrayofselected)) {
1675 print
'<input id="cb' . $line->id .
'" class="flat checkforselect" type="checkbox" name="toselect[]" value="' . $line->id .
'"' . ($selected ?
' checked="checked"' :
'') .
' />';
1684 $sous_total_debit += $line->debit;
1685 $sous_total_credit += $line->credit;
1692if ($num > 0 && $colspan > 0) {
1693 print
'<tr class="liste_total">';
1694 print
'<td class="right" colspan="'.$colspan.
'">'.$langs->trans(
"TotalForAccount").
' '.$accountg.
':</td>';
1695 print
'<td class="nowrap right">'.price(
price2num($sous_total_debit,
'MT')).
'</td>';
1696 print
'<td class="nowrap right">'.price(
price2num($sous_total_credit,
'MT')).
'</td>';
1697 if ($colspanend > 0) {
1698 print
'<td colspan="'.$colspanend.
'"></td>';
1703 $balance = $sous_total_debit - $sous_total_credit;
1704 print
'<tr class="liste_total">';
1705 print
'<td class="right" colspan="'.$colspan.
'">'.$langs->trans(
"Balance").
':</td>';
1707 print
'<td class="nowraponall right">';
1708 print
price(
price2num($sous_total_debit - $sous_total_credit,
'MT'));
1713 print
'<td class="nowraponall right">';
1714 print
price(
price2num($sous_total_credit - $sous_total_debit,
'MT'));
1717 if ($colspanend > 0) {
1718 print
'<td colspan="'.$colspanend.
'"></td>';
1725if (!empty($totalarray[
'val'][
'totaldebit'])) {
1728if (!empty($totalarray[
'val'][
'totalcredit'])) {
1729 $totalarray[
'val'][
'totalcredit'] = (float)
price2num($totalarray[
'val'][
'totalcredit'],
'MT');
1731if (!empty($totalarray[
'val'][
'totalbalance'])) {
1732 $totalarray[
'val'][
'totalbalance'] = (float)
price2num($totalarray[
'val'][
'totaldebit'] - $totalarray[
'val'][
'totalcredit'],
'MT');
1737include DOL_DOCUMENT_ROOT.
'/core/tpl/list_print_total.tpl.php';
1742 foreach ($arrayfields as $key => $val) {
1743 if (!empty($val[
'checked'])) {
1747 print
'<tr><td colspan="'.$colspan.
'"><span class="opacitymedium">'.$langs->trans(
"NoRecordFound").
'</span></td></tr>';
1750$parameters = array(
'arrayfields' => $arrayfields);
1751$reshook = $hookmanager->executeHooks(
'printFieldListFooter', $parameters, $object, $action);
1752print $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, $subtabs='')
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.
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)
info_admin($text, $infoonimgalt=0, $nodiv=0, $admin='1', $morecss='hideonsmartphone', $textfordropdown='', $picto='', $textonpictotooltip='')
Show information in HTML for admin users or standard users.
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 '.
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.
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.
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.