32require
'../../main.inc.php';
34require_once DOL_DOCUMENT_ROOT.
'/core/lib/accounting.lib.php';
35require_once DOL_DOCUMENT_ROOT.
'/core/lib/company.lib.php';
36require_once DOL_DOCUMENT_ROOT.
'/accountancy/class/lettering.class.php';
37require_once DOL_DOCUMENT_ROOT.
'/accountancy/class/bookkeeping.class.php';
38require_once DOL_DOCUMENT_ROOT.
'/accountancy/class/accountingjournal.class.php';
39require_once DOL_DOCUMENT_ROOT.
'/core/class/html.formaccounting.class.php';
40require_once DOL_DOCUMENT_ROOT.
'/core/class/html.formfile.class.php';
41require_once DOL_DOCUMENT_ROOT.
'/core/class/html.formother.class.php';
42require_once DOL_DOCUMENT_ROOT.
'/core/lib/date.lib.php';
53$langs->loadLangs(array(
"accountancy",
"categories",
"compta",
"other"));
55$journal_code =
GETPOST(
'code_journal',
'alpha');
56$account =
GETPOST(
"account",
'int');
59$action =
GETPOST(
'action',
'aZ09');
61$mode = (
GETPOST(
'mode',
'alpha') ?
GETPOST(
'mode',
'alpha') :
'customer');
62$massaction =
GETPOST(
'massaction',
'alpha');
63$confirm =
GETPOST(
'confirm',
'alpha');
64$toselect =
GETPOST(
'toselect',
'array:int');
65$type =
GETPOST(
'type',
'alpha');
67 $context_default =
'bookkeepingbysubaccountlist';
69 $context_default =
'bookkeepingbyaccountlist';
71$contextpage =
GETPOST(
'contextpage',
'aZ') ?
GETPOST(
'contextpage',
'aZ') : $context_default;
73$search_doc_date =
GETPOSTDATE(
'doc_date',
'getpost');
75$search_date_startyear =
GETPOSTINT(
'search_date_startyear');
76$search_date_startmonth =
GETPOSTINT(
'search_date_startmonth');
77$search_date_startday =
GETPOSTINT(
'search_date_startday');
78$search_date_start =
GETPOSTDATE(
'search_date_start',
'getpost',
'auto',
'search_date_start_accountancy');
80$search_date_endyear =
GETPOSTINT(
'search_date_endyear');
81$search_date_endmonth =
GETPOSTINT(
'search_date_endmonth');
82$search_date_endday =
GETPOSTINT(
'search_date_endday');
83$search_date_end =
GETPOSTDATE(
'search_date_end',
'getpostend',
'auto',
'search_date_end_accountancy');
85$search_date_export_startyear =
GETPOSTINT(
'search_date_export_startyear');
86$search_date_export_startmonth =
GETPOSTINT(
'search_date_export_startmonth');
87$search_date_export_startday =
GETPOSTINT(
'search_date_export_startday');
88$search_date_export_start =
GETPOSTDATE(
'search_date_export_start',
'getpost');
90$search_date_export_endyear =
GETPOSTINT(
'search_date_export_endyear');
91$search_date_export_endmonth =
GETPOSTINT(
'search_date_export_endmonth');
92$search_date_export_endday =
GETPOSTINT(
'search_date_export_endday');
93$search_date_export_end =
GETPOSTDATE(
'search_date_export_start',
'getpostend');
95$search_date_validation_startyear =
GETPOSTINT(
'search_date_validation_startyear');
96$search_date_validation_startmonth =
GETPOSTINT(
'search_date_validation_startmonth');
97$search_date_validation_startday =
GETPOSTINT(
'search_date_validation_startday');
98$search_date_validation_start =
GETPOSTDATE(
'search_date_validation_start',
'getpost');
100$search_date_validation_endyear =
GETPOSTINT(
'search_date_validation_endyear');
101$search_date_validation_endmonth =
GETPOSTINT(
'search_date_validation_endmonth');
102$search_date_validation_endday =
GETPOSTINT(
'search_date_validation_endday');
103$search_date_validation_end =
GETPOSTDATE(
'search_date_validation_end',
'getpostend');
106$search_date_due_start_day =
GETPOSTINT(
'search_date_due_start_day');
107$search_date_due_start_month =
GETPOSTINT(
'search_date_due_start_month');
108$search_date_due_start_year =
GETPOSTINT(
'search_date_due_start_year');
109$search_date_due_start =
GETPOSTDATE(
'search_date_due_start_',
'getpost');
112$search_date_due_end_day =
GETPOSTINT(
'search_date_due_end_day');
113$search_date_due_end_month =
GETPOSTINT(
'search_date_due_end_month');
114$search_date_due_end_year =
GETPOSTINT(
'search_date_due_end_year');
115$search_date_due_end =
GETPOSTDATE(
'search_date_due_end_',
'getpostend');
117$search_import_key =
GETPOST(
"search_import_key",
'alpha');
119$search_account_category =
GETPOSTINT(
'search_account_category');
121$search_accountancy_code_start =
GETPOST(
'search_accountancy_code_start',
'alpha');
122if ($search_accountancy_code_start == - 1) {
123 $search_accountancy_code_start =
'';
125$search_accountancy_code_end =
GETPOST(
'search_accountancy_code_end',
'alpha');
126if ($search_accountancy_code_end == - 1) {
127 $search_accountancy_code_end =
'';
129$search_doc_ref =
GETPOST(
'search_doc_ref',
'alpha');
130$search_label_operation =
GETPOST(
'search_label_operation',
'alpha');
131$search_mvt_num =
GETPOST(
'search_mvt_num',
'alpha');
132$search_direction =
GETPOST(
'search_direction',
'alpha');
133$search_ledger_code =
GETPOST(
'search_ledger_code',
'array');
134$search_debit =
GETPOST(
'search_debit',
'alpha');
135$search_credit =
GETPOST(
'search_credit',
'alpha');
136$search_lettering_code =
GETPOST(
'search_lettering_code',
'alpha');
137$search_not_reconciled =
GETPOST(
'search_not_reconciled',
'alpha');
140 $action =
'delbookkeepingyear';
145$sortfield =
GETPOST(
'sortfield',
'aZ09comma');
146$sortorder =
GETPOST(
'sortorder',
'aZ09comma');
147$optioncss =
GETPOST(
'optioncss',
'alpha');
149if (empty($page) || $page < 0) {
152$offset = $limit * $page;
153$pageprev = $page - 1;
154$pagenext = $page + 1;
155if ($sortorder ==
"") {
158if ($sortfield ==
"") {
159 $sortfield =
"t.doc_date,t.rowid";
165$hookmanager->initHooks(array($context_default));
170if (empty($search_date_start) && empty($search_date_end) && !GETPOSTISSET(
'search_date_startday') && !GETPOSTISSET(
'search_date_startmonth') && !GETPOSTISSET(
'search_date_starthour')) {
171 $sql =
"SELECT date_start, date_end";
172 $sql .=
" FROM ".MAIN_DB_PREFIX.
"accounting_fiscalyear ";
174 $sql .=
" WHERE rowid = " .
getDolGlobalInt(
'ACCOUNTANCY_FISCALYEAR_DEFAULT');
176 $sql .=
" WHERE date_start < '" .
$db->idate(
dol_now()) .
"' and date_end > '" .
$db->idate(
dol_now()) .
"'";
178 $sql .=
$db->plimit(1);
179 $res =
$db->query($sql);
181 if ($res !==
false &&
$db->num_rows($res) > 0) {
182 $fiscalYear =
$db->fetch_object($res);
183 $search_date_start = strtotime($fiscalYear->date_start);
184 $search_date_end = strtotime($fiscalYear->date_end);
191 $year_end = $year_start + 1;
192 $month_end = $month_start - 1;
193 if ($month_end < 1) {
197 $search_date_start =
dol_mktime(0, 0, 0, $month_start, 1, $year_start);
204 't.piece_num' => array(
'label' =>
"TransactionNumShort",
'checked' =>
'1'),
205 't.code_journal' => array(
'label' =>
"Codejournal",
'checked' =>
'1'),
206 't.doc_date' => array(
'label' =>
"Docdate",
'checked' =>
'1'),
207 't.doc_ref' => array(
'label' =>
"Piece",
'checked' =>
'1'),
208 't.label_operation' => array(
'label' =>
"Label",
'checked' =>
'1'),
209 't.lettering_code' => array(
'label' =>
"Lettering",
'checked' =>
'1'),
210 't.debit' => array(
'label' =>
"AccountingDebit",
'checked' =>
'1'),
211 't.credit' => array(
'label' =>
"AccountingCredit",
'checked' =>
'1'),
212 't.balance' => array(
'label' =>
"Balance",
'checked' =>
'1'),
213 't.date_export' => array(
'label' =>
"DateExport",
'checked' =>
'-1'),
214 't.date_validated' => array(
'label' =>
"DateValidation",
'checked' =>
'-1',
'enabled' => (
string) (
int) !
getDolGlobalString(
"ACCOUNTANCY_DISABLE_CLOSURE_LINE_BY_LINE")),
215 't.date_lim_reglement' => array(
'label' =>
"DateDue",
'checked' =>
'0'),
216 't.import_key' => array(
'label' =>
"ImportId",
'checked' =>
'-1',
'position' => 1100),
220 unset($arrayfields[
't.lettering_code']);
223if ($search_date_start && empty($search_date_startyear)) {
225 $search_date_startyear = $tmparray[
'year'];
226 $search_date_startmonth = $tmparray[
'mon'];
227 $search_date_startday = $tmparray[
'mday'];
229if ($search_date_end && empty($search_date_endyear)) {
231 $search_date_endyear = $tmparray[
'year'];
232 $search_date_endmonth = $tmparray[
'mon'];
233 $search_date_endday = $tmparray[
'mday'];
239if ($user->socid > 0) {
242if (!$user->hasRight(
'accounting',
'mouvements',
'lire')) {
251$permissiontoread = $user->hasRight(
'accounting',
'mouvements',
'lire');
252$permissiontoadd = $user->hasRight(
'accounting',
'mouvements',
'creer');
253$permissiontodelete = $user->hasRight(
'accounting',
'mouvements',
'supprimer');
254$permissiontoexport = $user->hasRight(
'accounting',
'mouvements',
'export');
265if (
GETPOST(
'cancel',
'alpha')) {
269if (!
GETPOST(
'confirmmassaction',
'alpha') && $massaction !=
'preunletteringauto' && $massaction !=
'preunletteringmanual' && $massaction !=
'predeletebookkeepingwriting') {
273$parameters = array(
'socid' => $socid);
274$reshook = $hookmanager->executeHooks(
'doActions', $parameters, $object, $action);
279if (empty($reshook)) {
280 include DOL_DOCUMENT_ROOT.
'/core/actions_changeselectedfields.inc.php';
282 if (
GETPOST(
'button_removefilter_x',
'alpha') ||
GETPOST(
'button_removefilter.x',
'alpha') ||
GETPOST(
'button_removefilter',
'alpha')) {
283 $search_doc_date =
'';
284 $search_account_category =
'';
285 $search_accountancy_code_start =
'';
286 $search_accountancy_code_end =
'';
287 $search_label_account =
'';
288 $search_doc_ref =
'';
289 $search_label_operation =
'';
290 $search_mvt_num =
'';
291 $search_direction =
'';
292 $search_ledger_code = array();
293 $search_date_start =
'';
294 $search_date_end =
'';
295 $search_date_startyear =
'';
296 $search_date_startmonth =
'';
297 $search_date_startday =
'';
298 $search_date_endyear =
'';
299 $search_date_endmonth =
'';
300 $search_date_endday =
'';
301 $search_date_export_start =
'';
302 $search_date_export_end =
'';
303 $search_date_export_startyear =
'';
304 $search_date_export_startmonth =
'';
305 $search_date_export_startday =
'';
306 $search_date_export_endyear =
'';
307 $search_date_export_endmonth =
'';
308 $search_date_export_endday =
'';
309 $search_date_validation_start =
'';
310 $search_date_validation_end =
'';
311 $search_date_validation_startyear =
'';
312 $search_date_validation_startmonth =
'';
313 $search_date_validation_startday =
'';
314 $search_date_validation_endyear =
'';
315 $search_date_validation_endmonth =
'';
316 $search_date_validation_endday =
'';
318 $search_date_due_start_day =
'';
319 $search_date_due_start_month =
'';
320 $search_date_due_start_year =
'';
321 $search_date_due_start =
'';
323 $search_date_due_end_day =
'';
324 $search_date_due_end_month =
'';
325 $search_date_due_end_year =
'';
326 $search_date_due_end =
'';
327 $search_lettering_code =
'';
330 $search_not_reconciled =
'';
331 $search_import_key =
'';
333 unset($_SESSION[
'DOLDATE_search_date_start_accountancy_day']);
334 unset($_SESSION[
'DOLDATE_search_date_start_accountancy_month']);
335 unset($_SESSION[
'DOLDATE_search_date_start_accountancy_year']);
336 unset($_SESSION[
'DOLDATE_search_date_end_accountancy_day']);
337 unset($_SESSION[
'DOLDATE_search_date_end_accountancy_month']);
338 unset($_SESSION[
'DOLDATE_search_date_end_accountancy_year']);
341 if (!empty($socid)) {
342 $param =
'&socid='.$socid;
344 if (!empty($search_date_start)) {
345 $filter[
't.doc_date>='] = $search_date_start;
346 $param .=
'&search_date_startmonth='.$search_date_startmonth.
'&search_date_startday='.$search_date_startday.
'&search_date_startyear='.$search_date_startyear;
348 if (!empty($search_date_end)) {
349 $filter[
't.doc_date<='] = $search_date_end;
350 $param .=
'&search_date_endmonth='.$search_date_endmonth.
'&search_date_endday='.$search_date_endday.
'&search_date_endyear='.$search_date_endyear;
352 if (!empty($search_doc_date)) {
353 $filter[
't.doc_date'] = $search_doc_date;
354 $param .=
'&doc_datemonth='.GETPOSTINT(
'doc_datemonth').
'&doc_dateday='.
GETPOSTINT(
'doc_dateday').
'&doc_dateyear='.
GETPOSTINT(
'doc_dateyear');
356 if ($search_account_category !=
'-1' && !empty($search_account_category)) {
357 require_once DOL_DOCUMENT_ROOT.
'/accountancy/class/accountancycategory.class.php';
360 $listofaccountsforgroup = $accountingcategory->getCptsCat(0,
'fk_accounting_category = '.((
int) $search_account_category));
361 $listofaccountsforgroup2 = array();
362 if (is_array($listofaccountsforgroup)) {
363 foreach ($listofaccountsforgroup as $tmpval) {
364 $listofaccountsforgroup2[] =
"'".$db->escape((
string) $tmpval[
'account_number']).
"'";
367 if (!empty($listofaccountsforgroup2)) {
368 $filter[
't.search_accounting_code_in'] = implode(
',', $listofaccountsforgroup2);
370 $filter[
't.search_accounting_code_in'] =
"''";
371 setEventMessages($langs->trans(
"ThisCategoryHasNoItems"),
null,
'warnings');
373 $param .=
'&search_account_category='.urlencode((
string) ($search_account_category));
375 if (!empty($search_accountancy_code_start)) {
376 if ($type ==
'sub') {
377 $filter[
't.subledger_account>='] = $search_accountancy_code_start;
379 $filter[
't.numero_compte>='] = $search_accountancy_code_start;
381 $param .=
'&search_accountancy_code_start=' . urlencode($search_accountancy_code_start);
383 if (!empty($search_accountancy_code_end)) {
384 if ($type ==
'sub') {
385 $filter[
't.subledger_account<='] = $search_accountancy_code_end;
387 $filter[
't.numero_compte<='] = $search_accountancy_code_end;
389 $param .=
'&search_accountancy_code_end=' . urlencode($search_accountancy_code_end);
391 if (!empty($search_label_account)) {
392 $filter[
't.label_compte'] = $search_label_account;
393 $param .=
'&search_label_compte='.urlencode($search_label_account);
395 if (!empty($search_mvt_num)) {
396 $filter[
't.piece_num'] = $search_mvt_num;
397 $param .=
'&search_mvt_num='.urlencode((
string) ($search_mvt_num));
399 if (!empty($search_doc_ref)) {
400 $filter[
't.doc_ref'] = $search_doc_ref;
401 $param .=
'&search_doc_ref='.urlencode($search_doc_ref);
403 if (!empty($search_label_operation)) {
404 $filter[
't.label_operation'] = $search_label_operation;
405 $param .=
'&search_label_operation='.urlencode($search_label_operation);
407 if (!empty($search_direction)) {
408 $filter[
't.sens'] = $search_direction;
409 $param .=
'&search_direction='.urlencode($search_direction);
411 if (!empty($search_ledger_code)) {
412 $filter[
't.code_journal'] = $search_ledger_code;
413 foreach ($search_ledger_code as $code) {
414 $param .=
'&search_ledger_code[]='.urlencode($code);
417 if (!empty($search_lettering_code)) {
418 $filter[
't.lettering_code'] = $search_lettering_code;
419 $param .=
'&search_lettering_code='.urlencode($search_lettering_code);
421 if (!empty($search_debit)) {
422 $filter[
't.debit'] = $search_debit;
423 $param .=
'&search_debit='.urlencode($search_debit);
425 if (!empty($search_credit)) {
426 $filter[
't.credit'] = $search_credit;
427 $param .=
'&search_credit='.urlencode($search_credit);
429 if (!empty($search_not_reconciled)) {
430 $filter[
't.reconciled_option'] = $search_not_reconciled;
431 $param .=
'&search_not_reconciled='.urlencode($search_not_reconciled);
433 if (!empty($search_date_export_start)) {
434 $filter[
't.date_export>='] = $search_date_export_start;
435 $param .=
'&search_date_export_startmonth='.$search_date_export_startmonth.
'&search_date_export_startday='.$search_date_export_startday.
'&search_date_export_startyear='.$search_date_export_startyear;
437 if (!empty($search_date_export_end)) {
438 $filter[
't.date_export<='] = $search_date_export_end;
439 $param .=
'&search_date_export_endmonth='.$search_date_export_endmonth.
'&search_date_export_endday='.$search_date_export_endday.
'&search_date_export_endyear='.$search_date_export_endyear;
441 if (!empty($search_date_validation_start)) {
442 $filter[
't.date_validated>='] = $search_date_validation_start;
443 $param .=
'&search_date_validation_startmonth='.$search_date_validation_startmonth.
'&search_date_validation_startday='.$search_date_validation_startday.
'&search_date_validation_startyear='.$search_date_validation_startyear;
445 if (!empty($search_date_validation_end)) {
446 $filter[
't.date_validated<='] = $search_date_validation_end;
447 $param .=
'&search_date_validation_endmonth='.$search_date_validation_endmonth.
'&search_date_validation_endday='.$search_date_validation_endday.
'&search_date_validation_endyear='.$search_date_validation_endyear;
450 if (!empty($search_date_due_start)) {
451 $filter[
't.date_lim_reglement>='] = $search_date_due_start;
452 $param .=
'&search_date_due_start_day='.$search_date_due_start_day.
'&search_date_due_start_month='.$search_date_due_start_month.
'&search_date_due_start_year='.$search_date_due_start_year;
455 if (!empty($search_date_due_end)) {
456 $filter[
't.date_lim_reglement<='] = $search_date_due_end;
457 $param .=
'&search_date_due_end_day='.$search_date_due_end_day.
'&search_date_due_end_month='.$search_date_due_end_month.
'&search_date_due_end_year='.$search_date_due_end_year;
459 if (!empty($search_import_key)) {
460 $filter[
't.import_key'] = $search_import_key;
461 $param .=
'&search_import_key='.urlencode($search_import_key);
464 $url_param = substr($param, 1);
466 $param =
'&type='.$type.$param;
470 if ($action ===
'exporttopdf' && $permissiontoadd) {
471 if ($type ==
"sub") {
472 $object->fetchAllByAccount($sortorder, $sortfield, 0, 0, $filter,
'AND', 1);
474 $object->fetchAllByAccount($sortorder, $sortfield, 0, 0, $filter);
476 require_once DOL_DOCUMENT_ROOT .
'/core/modules/accountancy/doc/pdf_ledger.modules.php';
478 $pdf->fromDate = $search_date_start;
479 $pdf->toDate = $search_date_end;
480 $pdf->ledgerType = $type;
482 $result = $pdf->write_file($object, $langs);
493 $objectclass =
'Bookkeeping';
494 $objectlabel =
'Bookkeeping';
495 $uploaddir =
$conf->societe->dir_output;
499 include DOL_DOCUMENT_ROOT.
'/core/actions_massactions.inc.php';
501 if (!$error && $action ==
'deletebookkeepingwriting' && $confirm ==
"yes" && $user->hasRight(
'accounting',
'mouvements',
'supprimer')) {
506 $nb_lettering = $lettering->bookkeepingLetteringAll($toselect,
true);
507 if ($nb_lettering < 0) {
515 foreach ($toselect as $toselectid) {
516 $result =
$object->fetch($toselectid);
517 if ($result > 0 && (!isset(
$object->date_validation) ||
$object->date_validation ===
'')) {
526 } elseif ($result < 0) {
530 } elseif (isset(
$object->date_validation) &&
$object->date_validation !=
'') {
531 setEventMessages($langs->trans(
"ValidatedRecordWhereFound"),
null,
'errors');
544 } elseif ($nbok > 0) {
550 header(
"Location: ".$_SERVER[
"PHP_SELF"].
"?noreset=1".($param ?
'&'.$param :
''));
558 if (!$error && $action ==
'clonebookkeepingwriting' && $confirm ==
"yes" && $user->hasRight(
'accounting',
'mouvements',
'creer')) {
559 $result =
$object->newCloneMass($toselect, $journal_code, $massdate);
565 header(
"Location: ".$_SERVER[
"PHP_SELF"].
"?noreset=1".($param ?
'&'.$param :
''));
573 if (!$error && $action ==
'assignaccountbookkeepingwriting' && $confirm ==
"yes" && $user->hasRight(
'accounting',
'mouvements',
'creer')) {
574 $result =
$object->assignAccountMass($toselect, (
int) $account);
580 header(
"Location: ".$_SERVER[
"PHP_SELF"].
"?noreset=1".($param ?
'&'.$param :
''));
588 if (!$error && $action ==
'returnaccountbookkeepingwriting' && $confirm ==
"yes" && $user->hasRight(
'accounting',
'mouvements',
'creer')) {
589 $result =
$object->newReturnAccount($toselect, $journal_code, $massdate);
595 header(
"Location: ".$_SERVER[
"PHP_SELF"].
"?noreset=1".($param ?
'&'.$param :
''));
604 if ($massaction ==
'generalmatchingmanual' && $permissiontoadd) {
606 $result = $lettering->updateGeneralMatching($toselect);
610 setEventMessages($langs->trans($result == 0 ?
'AccountancyNoMachingModified' :
'AccountancyOneMatchingModifiedSuccessfully'), array(),
'mesgs');
611 header(
'Location: ' . $_SERVER[
'PHP_SELF'] .
'?noreset=1' . $param);
614 } elseif ($massaction ==
'generalmatchingpartial' && $permissiontoadd) {
616 $result = $lettering->updateGeneralMatching($toselect,
true);
620 setEventMessages($langs->trans($result == 0 ?
'AccountancyNoMachingModified' :
'AccountancyOneMatchingModifiedSuccessfully'), array(),
'mesgs');
621 header(
'Location: ' . $_SERVER[
'PHP_SELF'] .
'?noreset=1' . $param);
624 } elseif ($action ==
'generalunmatchingmanual' && $confirm ==
'yes' && $permissiontodelete) {
626 $result = $lettering->deleteGeneralMatching($toselect);
630 setEventMessages($langs->trans($result == 0 ?
'AccountancyNoUnmatchingModified' :
'AccountancyOneUnmatchingModifiedSuccessfully'), array(),
'mesgs');
631 header(
'Location: ' . $_SERVER[
'PHP_SELF'] .
'?noreset=1' . $param);
634 } elseif ($type ==
'sub' && $massaction ==
'letteringauto' && $permissiontoadd) {
636 $nb_lettering = $lettering->bookkeepingLetteringAll($toselect);
637 if ($nb_lettering < 0) {
640 $nb_lettering = max(0, abs($nb_lettering) - 2);
641 } elseif ($nb_lettering == 0) {
643 setEventMessages($langs->trans(
'AccountancyNoMatchingModified'), array(),
'mesgs');
645 if ($nb_lettering == 1) {
646 setEventMessages($langs->trans(
'AccountancyOneMatchingModifiedSuccessfully'), array(),
'mesgs');
647 } elseif ($nb_lettering > 1) {
648 setEventMessages($langs->trans(
'AccountancyMatchingModifiedSuccessfully', $nb_lettering), array(),
'mesgs');
652 header(
'Location: ' . $_SERVER[
'PHP_SELF'] .
'?noreset=1' . $param);
655 } elseif ($type ==
'sub' && $massaction ==
'letteringmanual' && $permissiontoadd) {
657 $result = $lettering->updateLettering($toselect);
661 setEventMessages($langs->trans($result == 0 ?
'AccountancyNoMatchingModified' :
'AccountancyOneMatchingModifiedSuccessfully'), array(),
'mesgs');
662 header(
'Location: ' . $_SERVER[
'PHP_SELF'] .
'?noreset=1' . $param);
665 } elseif ($type ==
'sub' && $massaction ==
'letteringpartial' && $permissiontoadd) {
667 $result = $lettering->updateLettering($toselect, 0,
true);
671 setEventMessages($langs->trans($result == 0 ?
'AccountancyNoMatchingModified' :
'AccountancyOneMatchingModifiedSuccessfully'), array(),
'mesgs');
672 header(
'Location: ' . $_SERVER[
'PHP_SELF'] .
'?noreset=1' . $param);
675 } elseif ($type ==
'sub' && $action ==
'unletteringauto' && $confirm ==
"yes" && $permissiontoadd) {
677 $nb_lettering = $lettering->bookkeepingLetteringAll($toselect,
true);
678 if ($nb_lettering < 0) {
681 $nb_lettering = max(0, abs($nb_lettering) - 2);
682 } elseif ($nb_lettering == 0) {
684 setEventMessages($langs->trans(
'AccountancyNoUnmatchingModified'), array(),
'mesgs');
686 if ($nb_lettering == 1) {
687 setEventMessages($langs->trans(
'AccountancyOneUnmatchingModifiedSuccessfully'), array(),
'mesgs');
688 } elseif ($nb_lettering > 1) {
689 setEventMessages($langs->trans(
'AccountancyUnmatchingModifiedSuccessfully', $nb_lettering), array(),
'mesgs');
693 header(
'Location: ' . $_SERVER[
'PHP_SELF'] .
'?noreset=1' . $param);
696 } elseif ($type ==
'sub' && $action ==
'unletteringmanual' && $confirm ==
"yes" && $permissiontoadd) {
698 $nb_lettering = $lettering->deleteLettering($toselect);
702 setEventMessages($langs->trans($result == 0 ?
'AccountancyNoUnmatchingModified' :
'AccountancyOneUnmatchingModifiedSuccessfully'), array(),
'mesgs');
703 header(
'Location: ' . $_SERVER[
'PHP_SELF'] .
'?noreset=1' . $param);
720$title_page = $langs->trans(
"Operations").
' - '.$langs->trans(
"VueByAccountAccounting").
' (';
722 $title_page .= $langs->trans(
"BookkeepingSubAccount");
724 $title_page .= $langs->trans(
"Bookkeeping");
727$help_url =
'EN:Module_Double_Entry_Accounting|FR:Module_Comptabilité_en_Partie_Double';
728llxHeader(
'', $title_page, $help_url,
'', 0, 0,
'',
'',
'',
'mod-accountancy accountancy-consultation page-'.(($type ==
'sub') ?
'sub' :
'').
'ledger');
732 $res = $companystatic->fetch($socid);
739 print
dol_get_fiche_head($head,
'accounting', $langs->trans(
"ThirdParty"), -1,
'company');
741 $linkback =
'<a href="'.DOL_URL_ROOT.
'/societe/list.php?restore_lastsearch_values=1">'.$langs->trans(
"BackToList").
'</a>';
743 dol_banner_tab($companystatic,
'socid', $linkback, ($user->socid ? 0 : 1),
'rowid',
'nom');
745 print
'<div class="fichecenter">';
747 print
'<div class="underbanner clearboth"></div>';
748 print
'<table class="border centpercent tableforfield">';
751 print
'<tr><td class="titlefield">'.$langs->trans(
'NatureOfThirdParty').
'</td><td>';
752 print $companystatic->getTypeUrl(1);
756 if ($companystatic->client && !empty($companystatic->code_client)) {
757 print
'<tr><td class="titlefield">';
758 print $langs->trans(
'CustomerCode').
'</td><td>';
760 $tmpcheck = $companystatic->check_codeclient();
761 if ($tmpcheck != 0 && $tmpcheck != -5) {
762 print
' <span class="error">('.$langs->trans(
"WrongCustomerCode").
')</span>';
768 if ($companystatic->fournisseur && !empty($companystatic->code_fournisseur)) {
769 print
'<tr><td class="titlefield">';
770 print $langs->trans(
'SupplierCode').
'</td><td>';
772 $tmpcheck = $companystatic->check_codefournisseur();
773 if ($tmpcheck != 0 && $tmpcheck != -5) {
774 print
' <span class="error">('.$langs->trans(
"WrongSupplierCode").
')</span>';
784 print
info_admin($langs->trans(
"WarningThisPageContainsOnlyEntriesTransferredInAccounting"));
788 if (!empty(
$conf->dol_use_jmobile)) {
789 print
"\n".
'<div class="fichecenter"><div class="nowrap">'.
"\n";
792 if ($companystatic->client && !empty($companystatic->code_compta_client)) {
793 if ($mode !=
'customer') {
794 if (!empty($companystatic->code_compta_client)) {
795 $subledger_start_account = $subledger_end_account = $companystatic->code_compta_client;
797 $subledger_start_account = $subledger_end_account =
'';
799 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.
'">';
801 print
'<span class="a-mesure marginleftonly marginrightonly">';
804 print $langs->trans(
"CustomerAccountancyCodeShort");
805 if ($mode !=
'customer') {
812 if ($companystatic->fournisseur && !empty($companystatic->code_compta_fournisseur)) {
813 if ($mode !=
'supplier') {
814 if (!empty($companystatic->code_compta_fournisseur)) {
815 $subledger_start_account = $subledger_end_account = $companystatic->code_compta_fournisseur;
817 $subledger_start_account = $subledger_end_account =
'';
819 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.
'">';
821 print
'<span class="a-mesure marginleftonly marginrightonly">';
823 print $langs->trans(
"SupplierAccountancyCodeShort");
824 if ($mode !=
'supplier') {
831 if (!empty(
$conf->dol_use_jmobile)) {
832 print
'</div></div>';
841$nbtotalofrecords =
'';
844 if ($type ==
'sub') {
845 $nbtotalofrecords =
$object->fetchAllByAccount($sortorder, $sortfield, 0, 0, $filter,
'AND', 1, 1);
847 $nbtotalofrecords =
$object->fetchAllByAccount($sortorder, $sortfield, 0, 0, $filter,
'AND', 0, 1);
850 if ($nbtotalofrecords < 0) {
858 if ($type ==
'sub') {
859 $result =
$object->fetchAllByAccount($sortorder, $sortfield, $limit, $offset, $filter,
'AND', 1);
861 $result =
$object->fetchAllByAccount($sortorder, $sortfield, $limit, $offset, $filter,
'AND', 0);
871$arrayofselected = is_array($toselect) ? $toselect : array();
878$arrayofmassactions = array();
879if (
getDolGlobalInt(
'ACCOUNTING_ENABLE_LETTERING') && $user->hasRight(
'accounting',
'mouvements',
'creer')) {
880 if ($type ==
'sub') {
882 $arrayofmassactions[
'letteringauto'] =
img_picto(
'',
'check',
'class="pictofixedwidth"') . $langs->trans(
'LetteringAuto');
883 $arrayofmassactions[
'preunletteringauto'] =
img_picto(
'',
'uncheck',
'class="pictofixedwidth"') . $langs->trans(
'UnletteringAuto');
884 $arrayofmassactions[
'letteringmanual'] =
img_picto(
'',
'check',
'class="pictofixedwidth"') . $langs->trans(
'LetteringManual');
885 $arrayofmassactions[
'letteringpartial'] =
img_picto(
'',
'check',
'class="pictofixedwidth"') . $langs->trans(
'LetteringPartial');
886 $arrayofmassactions[
'preunletteringmanual'] =
img_picto(
'',
'uncheck',
'class="pictofixedwidth"') . $langs->trans(
'UnletteringManual');
889 $arrayofmassactions[
'generalmatchingmanual'] =
img_picto(
'',
'check',
'class="pictofixedwidth"') . $langs->trans(
'GeneralMatchingManual');
890 $arrayofmassactions[
'generalmatchingpartial'] =
img_picto(
'',
'check',
'class="pictofixedwidth"') . $langs->trans(
'GeneralMatchingPartial');
891 $arrayofmassactions[
'pregeneralunmatchingmanual'] =
img_picto(
'',
'uncheck',
'class="pictofixedwidth"') . $langs->trans(
'GeneralUnmatchingManual');
894if ($user->hasRight(
'accounting',
'mouvements',
'creer')) {
895 $arrayofmassactions[
'preclonebookkeepingwriting'] =
img_picto(
'',
'clone',
'class="pictofixedwidth"').$langs->trans(
"Clone");
897if ($user->hasRight(
'accounting',
'mouvements',
'creer')) {
898 $arrayofmassactions[
'preassignaccountbookkeepingwriting'] =
img_picto(
'',
'fa-exchange-alt',
'class="pictofixedwidth"').$langs->trans(
"AssignAccount");
900if ($user->hasRight(
'accounting',
'mouvements',
'creer')) {
901 $arrayofmassactions[
'prereturnaccountbookkeepingwriting'] =
img_picto(
'',
'undo',
'class="pictofixedwidth"').$langs->trans(
"ReturnAccount");
903if ($user->hasRight(
'accounting',
'mouvements',
'supprimer')) {
904 $arrayofmassactions[
'predeletebookkeepingwriting'] =
img_picto(
'',
'delete',
'class="pictofixedwidth"').$langs->trans(
"Delete");
907if (
GETPOSTINT(
'nomassaction') || in_array($massaction, array(
'preunletteringauto',
'preunletteringmanual',
'pregeneralunmatchingmanual',
'predeletebookkeepingwriting',
'preclonebookkeepingwriting',
'preassignaccountbookkeepingwriting',
'prereturnaccountbookkeepingwriting'))) {
908 $arrayofmassactions = array();
910$massactionbutton = $form->selectMassAction($massaction, $arrayofmassactions);
912print
'<form method="POST" id="searchFormList" action="'.dolBuildUrl($_SERVER[
"PHP_SELF"]).
'">';
913print
'<input type="hidden" name="token" value="'.newToken().
'">';
914print
'<input type="hidden" name="action" value="list">';
915if ($optioncss !=
'') {
916 print
'<input type="hidden" name="optioncss" value="'.$optioncss.
'">';
918print
'<input type="hidden" name="formfilteraction" id="formfilteraction" value="list">';
919print
'<input type="hidden" name="type" value="'.$type.
'">';
921 print
'<input type="hidden" name="socid" value="' . $socid .
'">';
923print
'<input type="hidden" name="sortfield" value="'.$sortfield.
'">';
924print
'<input type="hidden" name="sortorder" value="'.$sortorder.
'">';
925print
'<input type="hidden" name="contextpage" value="'.$contextpage.
'">';
927$parameters = array(
'param' => $param);
928$reshook = $hookmanager->executeHooks(
'addMoreActionsButtonsList', $parameters, $object, $action);
933$newcardbutton = empty($hookmanager->resPrint) ?
'' : $hookmanager->resPrint;
935if (empty($reshook)) {
938 $newcardbutton =
dolGetButtonTitle($langs->trans(
'ViewFlatList'),
'',
'fa fa-list paddingleft imgforviewmode', DOL_URL_ROOT .
'/accountancy/bookkeeping/list.php?' . $param);
939 if ($type ==
'sub') {
940 $newcardbutton .=
dolGetButtonTitle($langs->trans(
'GroupByAccountAccounting'),
'',
'fa fa-stream paddingleft imgforviewmode', DOL_URL_ROOT .
'/accountancy/bookkeeping/listbyaccount.php?' . $url_param,
'', 1, array(
'morecss' =>
'marginleftonly'));
941 $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'));
943 $newcardbutton .=
dolGetButtonTitle($langs->trans(
'GroupByAccountAccounting'),
'',
'fa fa-stream paddingleft imgforviewmode', DOL_URL_ROOT .
'/accountancy/bookkeeping/listbyaccount.php?' . $url_param,
'', 1, array(
'morecss' =>
'marginleftonly btnTitleSelected'));
944 $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'));
947 $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'));
951 $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);
954if ($contextpage != $_SERVER[
"PHP_SELF"]) {
955 $param .=
'&contextpage='.urlencode($contextpage);
957if ($limit > 0 && $limit !=
$conf->liste_limit) {
958 $param .=
'&limit='.((int) $limit);
961print_barre_liste($title_page, $page, $_SERVER[
"PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords,
'title_accountancy', 0, $newcardbutton,
'', $limit, 0, 0, 1);
963if ($massaction ==
'preunletteringauto') {
964 print $form->formconfirm($_SERVER[
"PHP_SELF"], $langs->trans(
"ConfirmMassUnletteringAuto"), $langs->trans(
"ConfirmMassUnletteringQuestion", count($toselect)),
"unletteringauto",
null,
'', 0, 200, 500, 1);
965} elseif ($massaction ==
'preunletteringmanual') {
966 print $form->formconfirm($_SERVER[
"PHP_SELF"], $langs->trans(
"ConfirmMassUnletteringManual"), $langs->trans(
"ConfirmMassUnletteringQuestion", count($toselect)),
"unletteringmanual",
null,
'', 0, 200, 500, 1);
967} elseif ($massaction ==
'pregeneralunmatchingmanual') {
968 print $form->formconfirm($_SERVER[
'PHP_SELF'], $langs->trans(
'ConfirmMassGeneralUnmatchingManual'), $langs->trans(
'ConfirmMassGeneralUnmatchingQuestion', count($toselect)),
'generalunmatchingmanual',
null,
'', 0, 200, 500, 1);
969} elseif ($massaction ==
'predeletebookkeepingwriting') {
970 print $form->formconfirm($_SERVER[
"PHP_SELF"], $langs->trans(
"ConfirmMassDeleteBookkeepingWriting"), $langs->trans(
"ConfirmMassDeleteBookkeepingWritingQuestion", count($toselect)),
"deletebookkeepingwriting",
null,
'', 0, 200, 500, 1);
971} elseif ($massaction ==
'preassignaccountbookkeepingwriting') {
972 $input = $formaccounting->select_account(
'',
'account', 1);
973 $formquestion = array(array(
'type' =>
'other',
'name' =>
'account',
'label' =>
'<span class="fieldrequired">' . $langs->trans(
"AccountAccountingShort") .
'</span>',
'value' => $input),);
974 print $form->formconfirm($_SERVER[
"PHP_SELF"], $langs->trans(
"confirmMassAssignAccountBookkeepingWritingConfirm"), $langs->trans(
"ConfirmMassAssignAccountBookkeepingWritingQuestion", count($toselect)),
"assignaccountbookkeepingwriting", $formquestion,
'', 0, 200, 500, 1);
975} elseif ($massaction ==
'preclonebookkeepingwriting') {
976 $input1 = $form->selectDate(
'',
'massdate', 0, 0, 0,
"create_mvt", 1, 1);
977 $input2 = $formaccounting->select_journal($journal_code,
'code_journal', 0, 0, 1, 1).
'</td>';
978 $formquestion = array(
981 'name' =>
'massdate',
982 'label' =>
'<span class="fieldrequired">' . $langs->trans(
"Docdate") .
'</span>',
988 $formquestion[] = array(
990 'name' =>
'code_journal',
991 'label' =>
'<span class="fieldrequired">' . $langs->trans(
"Codejournal") .
'</span>',
996 print $form->formconfirm(
997 $_SERVER[
"PHP_SELF"],
998 $langs->trans(
"ConfirmMassCloneBookkeepingWriting"),
999 $langs->trans(
"ConfirmMassCloneBookkeepingWritingQuestion", count($toselect)),
1000 "clonebookkeepingwriting",
1004} elseif ($massaction ==
'prereturnaccountbookkeepingwriting') {
1005 $input1 = $form->selectDate(
'',
'massdate', 0, 0, 0,
"create_mvt", 1, 1);
1006 $formquestion = array(array(
'type' =>
'other',
'name' =>
'massdate',
'label' =>
'<span class="fieldrequired">' . $langs->trans(
"Docdate") .
'</span>',
'value' => $input1));
1007 print $form->formconfirm($_SERVER[
"PHP_SELF"], $langs->trans(
"ConfirmMassReturnAccountBookkeepingWriting"), $langs->trans(
"ConfirmMassReturnAccountBookkeepingWritingQuestion", count($toselect)),
"returnaccountbookkeepingwriting", $formquestion,
'', 0, 200, 500, 1);
1010include DOL_DOCUMENT_ROOT.
'/core/tpl/massactions_pre.tpl.php';
1012$varpage = empty($contextpage) ? $_SERVER[
"PHP_SELF"] : $contextpage;
1013$selectedfields = $form->multiSelectArrayWithCheckbox(
'selectedfields', $arrayfields, $varpage,
$conf->main_checkbox_left_column);
1014if ($massactionbutton && $contextpage !=
'poslist') {
1015 $selectedfields .= $form->showCheckAddButtons(
'checkforselect', 1);
1019if (preg_match(
'/^asc/i', $sortorder)) {
1022 $sortorder =
"desc";
1026if ($type ==
'sub' && !$socid) {
1027 print
info_admin($langs->trans(
"WarningRecordWithoutSubledgerAreExcluded"));
1034$moreforfilter .=
'<div class="divsearchfield">';
1035$moreforfilter .= $langs->trans(
'AccountAccounting').
': ';
1036$moreforfilter .=
'<div class="nowrap inline-block">';
1037if ($type ==
'sub') {
1038 $moreforfilter .= $formaccounting->select_auxaccount($search_accountancy_code_start,
'search_accountancy_code_start', $langs->trans(
'From'),
'maxwidth200');
1040 $moreforfilter .= $formaccounting->select_account($search_accountancy_code_start,
'search_accountancy_code_start', $langs->trans(
'From'), array(), 1, 1,
'maxwidth200');
1042$moreforfilter .=
' ';
1043if ($type ==
'sub') {
1044 $moreforfilter .= $formaccounting->select_auxaccount($search_accountancy_code_end,
'search_accountancy_code_end', $langs->trans(
'to'),
'maxwidth200');
1046 $moreforfilter .= $formaccounting->select_account($search_accountancy_code_end,
'search_accountancy_code_end', $langs->trans(
'to'), array(), 1, 1,
'maxwidth200');
1050 $moreforfilter .=
' <a id="previous_account" accesskey="p" title="' .
$conf->browser->stringforfirstkey .
' p" class="classfortooltip" href="#"><i class="fa fa-chevron-left"></i></a>';
1051 $moreforfilter .=
' <a id="next_account" accesskey="n" title="' .
$conf->browser->stringforfirstkey .
' n" class="classfortooltip" href="#"><i class="fa fa-chevron-right"></i></a>';
1052 $moreforfilter .= <<<SCRIPT
1053<script
type=
"text/javascript">
1054 jQuery(document).ready(
function() {
1055 var searchFormList = $(
'#searchFormList');
1056 var searchAccountancyCodeStart = $(
'#search_accountancy_code_start');
1057 var searchAccountancyCodeEnd = $(
'#search_accountancy_code_end');
1058 jQuery(
'#previous_account').on(
'click',
function() {
1059 var previousOption = searchAccountancyCodeStart.find(
'option:selected').prev(
'option');
1060 if (previousOption.length == 1) searchAccountancyCodeStart.val(previousOption.attr(
'value'));
1061 searchAccountancyCodeEnd.val(searchAccountancyCodeStart.val());
1062 searchFormList.submit();
1064 jQuery(
'#next_account').on(
'click',
function() {
1065 var nextOption = searchAccountancyCodeStart.find(
'option:selected').next(
'option');
1066 if (nextOption.length == 1) searchAccountancyCodeStart.val(nextOption.attr(
'value'));
1067 searchAccountancyCodeEnd.val(searchAccountancyCodeStart.val());
1068 searchFormList.submit();
1070 jQuery(
'input[name="search_mvt_num"]').on(
"keypress",
function(event) {
1077$moreforfilter .=
'</div>';
1078$moreforfilter .=
'</div>';
1081 $moreforfilter .=
'<div class="divsearchfield">';
1082 $moreforfilter .= $langs->trans(
'AccountingCategory') .
': ';
1083 $moreforfilter .=
'<div class="nowrap inline-block">';
1084 $moreforfilter .= $formaccounting->select_accounting_category($search_account_category,
'search_account_category', 1, 0, 0, 0);
1085 $moreforfilter .=
'</div>';
1086 $moreforfilter .=
'</div>';
1089$parameters = array();
1090$reshook = $hookmanager->executeHooks(
'printFieldPreListTitle', $parameters, $object, $action);
1091if (empty($reshook)) {
1092 $moreforfilter .= $hookmanager->resPrint;
1094 $moreforfilter = $hookmanager->resPrint;
1097print
'<div class="liste_titre liste_titre_bydiv centpercent">';
1098print $moreforfilter;
1101print
'<div class="div-table-responsive">';
1102print
'<table class="tagtable liste centpercent listwithfilterbefore">';
1105print
'<tr class="liste_titre_filter">';
1107if (
$conf->main_checkbox_left_column) {
1108 print
'<td class="liste_titre center">';
1109 $searchpicto = $form->showFilterButtons(
'left');
1114if (!empty($arrayfields[
't.piece_num'][
'checked'])) {
1115 print
'<td class="liste_titre"><input type="text" name="search_mvt_num" class="width50" value="'.dol_escape_htmltag($search_mvt_num).
'"></td>';
1118if (!empty($arrayfields[
't.code_journal'][
'checked'])) {
1119 print
'<td class="liste_titre center">';
1120 print $formaccounting->multi_select_journal($search_ledger_code,
'search_ledger_code', 0, 1, 1, 1,
'maxwidth75');
1124if (!empty($arrayfields[
't.doc_date'][
'checked'])) {
1125 print
'<td class="liste_titre center">';
1126 print
'<div class="nowrapfordate">';
1127 print $form->selectDate($search_date_start,
'search_date_start', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
"From"));
1129 print
'<div class="nowrapfordate">';
1130 print $form->selectDate($search_date_end,
'search_date_end', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
"to"));
1135if (!empty($arrayfields[
't.doc_ref'][
'checked'])) {
1136 print
'<td class="liste_titre"><input type="text" size="7" class="flat" name="search_doc_ref" value="'.dol_escape_htmltag($search_doc_ref).
'"/></td>';
1139if (!empty($arrayfields[
't.label_operation'][
'checked'])) {
1140 print
'<td class="liste_titre"><input type="text" size="7" class="flat" name="search_label_operation" value="'.dol_escape_htmltag($search_label_operation).
'"/></td>';
1143if (!empty($arrayfields[
't.lettering_code'][
'checked'])) {
1144 print
'<td class="liste_titre center">';
1145 print
'<input type="text" size="3" class="flat" name="search_lettering_code" value="'.$search_lettering_code.
'"/>';
1146 print
'<br><span class="nowrap"><input type="checkbox" name="search_not_reconciled" value="notreconciled"'.($search_not_reconciled ==
'notreconciled' ?
' checked' :
'').
'>'.$langs->trans(
"NotReconciled").
'</span>';
1150if (!empty($arrayfields[
't.debit'][
'checked'])) {
1151 print
'<td class="liste_titre right"><input type="text" class="flat" name="search_debit" size="4" value="'.dol_escape_htmltag($search_debit).
'"></td>';
1154if (!empty($arrayfields[
't.credit'][
'checked'])) {
1155 print
'<td class="liste_titre right"><input type="text" class="flat" name="search_credit" size="4" value="'.dol_escape_htmltag($search_credit).
'"></td>';
1158if (!empty($arrayfields[
't.balance'][
'checked'])) {
1162if (!empty($arrayfields[
't.date_export'][
'checked'])) {
1163 print
'<td class="liste_titre center">';
1164 print
'<div class="nowrapfordate">';
1165 print $form->selectDate($search_date_export_start,
'search_date_export_start', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
"From"));
1167 print
'<div class="nowrapfordate">';
1168 print $form->selectDate($search_date_export_end,
'search_date_export_end', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
"to"));
1173if (!empty($arrayfields[
't.date_validated'][
'checked'])) {
1174 print
'<td class="liste_titre center">';
1175 print
'<div class="nowrapfordate">';
1176 print $form->selectDate($search_date_validation_start,
'search_date_validation_start', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
"From"));
1178 print
'<div class="nowrapfordate">';
1179 print $form->selectDate($search_date_validation_end,
'search_date_validation_end', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
"to"));
1184if (!empty($arrayfields[
't.date_lim_reglement'][
'checked'])) {
1185 print
'<td class="liste_titre center">';
1186 print
'<div class="nowrapfordate">';
1187 print $form->selectDate($search_date_due_start,
'search_date_due_start_', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
"From"));
1189 print
'<div class="nowrapfordate">';
1190 print $form->selectDate($search_date_due_end,
'search_date_due_end_', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
"to"));
1194if (!empty($arrayfields[
't.import_key'][
'checked'])) {
1195 print
'<td class="liste_titre center">';
1196 print
'<input class="flat searchstring maxwidth50" type="text" name="search_import_key" value="'.dol_escape_htmltag($search_import_key).
'">';
1201$parameters = array(
'arrayfields' => $arrayfields);
1202$reshook = $hookmanager->executeHooks(
'printFieldListOption', $parameters);
1203print $hookmanager->resPrint;
1206if (!
$conf->main_checkbox_left_column) {
1207 print
'<td class="liste_titre center">';
1208 $searchpicto = $form->showFilterButtons();
1214print
'<tr class="liste_titre">';
1215if (
$conf->main_checkbox_left_column) {
1216 print_liste_field_titre($selectedfields, $_SERVER[
"PHP_SELF"],
"",
'',
'',
'', $sortfield, $sortorder,
'center maxwidthsearch ');
1218if (!empty($arrayfields[
't.piece_num'][
'checked'])) {
1219 print_liste_field_titre($arrayfields[
't.piece_num'][
'label'], $_SERVER[
'PHP_SELF'],
"t.piece_num",
"", $param,
'', $sortfield, $sortorder,
'tdoverflowmax80imp ');
1221if (!empty($arrayfields[
't.code_journal'][
'checked'])) {
1222 print_liste_field_titre($arrayfields[
't.code_journal'][
'label'], $_SERVER[
'PHP_SELF'],
"t.code_journal",
"", $param,
'', $sortfield, $sortorder,
'center ');
1224if (!empty($arrayfields[
't.doc_date'][
'checked'])) {
1225 print_liste_field_titre($arrayfields[
't.doc_date'][
'label'], $_SERVER[
'PHP_SELF'],
"t.doc_date",
"", $param,
'', $sortfield, $sortorder,
'center ');
1227if (!empty($arrayfields[
't.doc_ref'][
'checked'])) {
1228 print_liste_field_titre($arrayfields[
't.doc_ref'][
'label'], $_SERVER[
'PHP_SELF'],
"t.doc_ref",
"", $param,
"", $sortfield, $sortorder);
1230if (!empty($arrayfields[
't.label_operation'][
'checked'])) {
1231 print_liste_field_titre($arrayfields[
't.label_operation'][
'label'], $_SERVER[
'PHP_SELF'],
"t.label_operation",
"", $param,
"", $sortfield, $sortorder);
1233if (!empty($arrayfields[
't.lettering_code'][
'checked'])) {
1234 print_liste_field_titre($arrayfields[
't.lettering_code'][
'label'], $_SERVER[
'PHP_SELF'],
"t.lettering_code",
"", $param,
'', $sortfield, $sortorder,
'center ');
1236if (!empty($arrayfields[
't.debit'][
'checked'])) {
1237 print_liste_field_titre($arrayfields[
't.debit'][
'label'], $_SERVER[
'PHP_SELF'],
"t.debit",
"", $param,
'', $sortfield, $sortorder,
'right ');
1239if (!empty($arrayfields[
't.credit'][
'checked'])) {
1240 print_liste_field_titre($arrayfields[
't.credit'][
'label'], $_SERVER[
'PHP_SELF'],
"t.credit",
"", $param,
'', $sortfield, $sortorder,
'right ');
1242if (!empty($arrayfields[
't.balance'][
'checked'])) {
1243 print_liste_field_titre($arrayfields[
't.balance'][
'label'],
"",
"",
"", $param,
'', $sortfield, $sortorder,
'right ');
1245if (!empty($arrayfields[
't.date_export'][
'checked'])) {
1246 print_liste_field_titre($arrayfields[
't.date_export'][
'label'], $_SERVER[
'PHP_SELF'],
"t.date_export",
"", $param,
'', $sortfield, $sortorder,
'center ');
1248if (!empty($arrayfields[
't.date_validated'][
'checked'])) {
1249 print_liste_field_titre($arrayfields[
't.date_validated'][
'label'], $_SERVER[
'PHP_SELF'],
"t.date_validated",
"", $param,
'', $sortfield, $sortorder,
'center ');
1252if (!empty($arrayfields[
't.date_lim_reglement'][
'checked'])) {
1253 print_liste_field_titre($arrayfields[
't.date_lim_reglement'][
'label'], $_SERVER[
'PHP_SELF'],
't.date_lim_reglement',
'', $param,
'', $sortfield, $sortorder,
'center ');
1255if (!empty($arrayfields[
't.import_key'][
'checked'])) {
1256 print_liste_field_titre($arrayfields[
't.import_key'][
'label'], $_SERVER[
"PHP_SELF"],
"t.import_key",
"", $param,
'', $sortfield, $sortorder,
'center ');
1259$parameters = array(
'arrayfields' => $arrayfields,
'param' => $param,
'sortfield' => $sortfield,
'sortorder' => $sortorder);
1260$reshook = $hookmanager->executeHooks(
'printFieldListTitle', $parameters);
1261print $hookmanager->resPrint;
1262if (!
$conf->main_checkbox_left_column) {
1263 print_liste_field_titre($selectedfields, $_SERVER[
"PHP_SELF"],
"",
'',
'',
'', $sortfield, $sortorder,
'center maxwidthsearch ');
1267$displayed_account_number =
null;
1269$objectstatic =
null;
1279$sous_total_debit = 0;
1280$sous_total_credit = 0;
1293if (!empty($arrayfields[
't.piece_num'][
'checked'])) { $colspan++; }
1294if (!empty($arrayfields[
't.code_journal'][
'checked'])) { $colspan++; }
1295if (!empty($arrayfields[
't.doc_date'][
'checked'])) { $colspan++; }
1296if (!empty($arrayfields[
't.doc_ref'][
'checked'])) { $colspan++; }
1297if (!empty($arrayfields[
't.label_operation'][
'checked'])) { $colspan++; }
1298if (!empty($arrayfields[
't.date_export'][
'checked'])) { $colspanend++; }
1299if (!empty($arrayfields[
't.date_validated'][
'checked'])) { $colspanend++; }
1300if (!empty($arrayfields[
't.lettering_code'][
'checked'])) { $colspanend++; }
1301if (
$conf->main_checkbox_left_column) {
1306while ($i < min($num, $limit)) {
1309 if ($type ==
'sub') {
1318 if (
$conf->main_checkbox_left_column) {
1321 if (!empty($arrayfields[
't.piece_num'][
'checked'])) {
1324 if (!empty($arrayfields[
't.code_journal'][
'checked'])) {
1327 if (!empty($arrayfields[
't.doc_date'][
'checked'])) {
1330 if (!empty($arrayfields[
't.doc_ref'][
'checked'])) {
1333 if (!empty($arrayfields[
't.label_operation'][
'checked'])) {
1336 if (!empty($arrayfields[
't.lettering_code'][
'checked'])) {
1340 if (!empty($arrayfields[
't.balance'][
'checked'])) {
1343 if (!empty($arrayfields[
't.date_export'][
'checked'])) {
1346 if (!empty($arrayfields[
't.date_validated'][
'checked'])) {
1350 if (!empty($arrayfields[
't.date_lim_reglement'][
'checked'])) {
1353 if (!empty($arrayfields[
't.lettering_code'][
'checked'])) {
1356 if (!empty($arrayfields[
't.import_key'][
'checked'])) {
1359 if (!
$conf->main_checkbox_left_column) {
1365 if ($accountg != $displayed_account_number || !isset($displayed_account_number)) {
1367 if (isset($displayed_account_number)) {
1368 print
'<tr class="liste_total">';
1369 if ($type ==
'sub') {
1370 print
'<td class="right" colspan="' . $colspan .
'">' . $langs->trans(
"TotalForAccount") .
' ' .
length_accounta($displayed_account_number) .
':</td>';
1372 print
'<td class="right" colspan="' . $colspan .
'">' . $langs->trans(
"TotalForAccount") .
' ' .
length_accountg($displayed_account_number) .
':</td>';
1374 print
'<td class="nowrap right">'.price(
price2num($sous_total_debit,
'MT')).
'</td>';
1375 print
'<td class="nowrap right">'.price(
price2num($sous_total_credit,
'MT')).
'</td>';
1376 if ($colspanend > 0) {
1377 print
'<td colspan="'.$colspanend.
'"></td>';
1381 $balance = $sous_total_debit - $sous_total_credit;
1382 print
'<tr class="liste_total">';
1383 print
'<td class="right" colspan="'.$colspan.
'">'.$langs->trans(
"Balance").
':</td>';
1385 print
'<td class="nowraponall right">';
1386 print
price(
price2num($sous_total_debit - $sous_total_credit,
'MT'));
1391 print
'<td class="nowraponall right">';
1392 print
price(
price2num($sous_total_credit - $sous_total_debit,
'MT'));
1395 if ($colspanend > 0) {
1396 print
'<td colspan="'.$colspanend.
'"></td>';
1402 print
'<tr class="trforbreaknobg">';
1403 print
'<td colspan="'.($totalarray[
'nbfield'] ?
$totalarray[
'nbfield'] : count($arrayfields) + 1).
'" class="tdforbreak">';
1404 if ($type ==
'sub') {
1405 if ($line->subledger_account !=
"" && $line->subledger_account !=
'-1') {
1406 print empty($line->subledger_label) ?
'<span class="error">'.$langs->trans(
"Unknown").
'</span>' : $line->subledger_label;
1411 print
'<span class="error">' . $langs->trans(
"Unknown");
1412 if ($line->subledger_label) {
1413 print
' (' . $line->subledger_label .
')';
1414 $htmltext =
'EmptyStringForSubledgerAccountButSubledgerLabelDefined';
1416 $htmltext =
'EmptyStringForSubledgerAccountAndSubledgerLabel';
1418 print $form->textwithpicto(
'', $htmltext);
1422 if ($line->numero_compte !=
"" && $line->numero_compte !=
'-1') {
1425 print
'<span class="error">' . $langs->trans(
"Unknown") .
'</span>';
1431 $displayed_account_number = $accountg;
1433 $sous_total_debit = 0;
1434 $sous_total_credit = 0;
1437 print
'<tr class="oddeven">';
1439 if (
$conf->main_checkbox_left_column) {
1440 print
'<td class="nowraponall center">';
1441 if (($massactionbutton || $massaction) && $contextpage !=
'poslist') {
1443 if (in_array($line->id, $arrayofselected)) {
1446 print
'<input id="cb' . $line->id .
'" class="flat checkforselect" type="checkbox" name="toselect[]" value="' . $line->id .
'"' . ($selected ?
' checked="checked"' :
'') .
' />';
1454 if (!empty($arrayfields[
't.piece_num'][
'checked'])) {
1455 print
'<td class="nowraponall">';
1457 $object->piece_num = $line->piece_num;
1459 print
$object->getNomUrl(1,
'', 0,
'', 1);
1460 print
'<span class="hideonsmartphone">';
1461 if (!empty($line->date_export)) {
1462 print
img_picto($langs->trans(
"DateExport").
": ".
dol_print_date($line->date_export,
'dayhour').
" (".$langs->trans(
"TransactionExportDesc").
")",
'fa-file-export',
'class="paddingleft pictofixedwidth opacitymedium"');
1464 if (!empty($line->date_validation)) {
1465 print
img_picto($langs->trans(
"DateValidation").
": ".
dol_print_date($line->date_validation,
'dayhour').
" (".$langs->trans(
"TransactionBlockedLockedDesc").
")",
'fa-lock',
'class="paddingleft pictofixedwidth opacitymedium"');
1475 if (!empty($arrayfields[
't.code_journal'][
'checked'])) {
1477 $result = $accountingjournal->fetch(0, $line->code_journal);
1478 $journaltoshow = (($result > 0) ? $accountingjournal->getNomUrl(0, 0, 0,
'', 0) : $line->code_journal);
1479 print
'<td class="center tdoverflowmax80">'.$journaltoshow.
'</td>';
1486 if (!empty($arrayfields[
't.doc_date'][
'checked'])) {
1487 print
'<td class="center">'.dol_print_date($line->doc_date,
'day').
'</td>';
1495 if (!empty($arrayfields[
't.doc_ref'][
'checked'])) {
1496 if ($line->doc_type ==
'customer_invoice') {
1497 $langs->loadLangs(array(
'bills'));
1499 require_once DOL_DOCUMENT_ROOT.
'/compta/facture/class/facture.class.php';
1501 $objectstatic->fetch($line->fk_doc);
1506 $urlsource = $_SERVER[
'PHP_SELF'].
'?id='.$objectstatic->id;
1507 $documentlink = $formfile->getDocumentsLink($objectstatic->element, $filename, $filedir);
1508 } elseif ($line->doc_type ==
'supplier_invoice') {
1509 $langs->loadLangs(array(
'bills'));
1511 require_once DOL_DOCUMENT_ROOT.
'/fourn/class/fournisseur.facture.class.php';
1513 $objectstatic->fetch($line->fk_doc);
1515 $modulepart =
'invoice_supplier';
1517 $filedir =
$conf->fournisseur->facture->dir_output.
'/'.
get_exdir($line->fk_doc, 2, 0, 0, $objectstatic, $modulepart).dol_sanitizeFileName($line->doc_ref);
1518 $subdir =
get_exdir($objectstatic->id, 2, 0, 0, $objectstatic, $modulepart).dol_sanitizeFileName($line->doc_ref);
1519 $documentlink = $formfile->getDocumentsLink($objectstatic->element, $subdir, $filedir);
1520 } elseif ($line->doc_type ==
'expense_report') {
1521 $langs->loadLangs(array(
'trips'));
1523 require_once DOL_DOCUMENT_ROOT.
'/expensereport/class/expensereport.class.php';
1525 $objectstatic->fetch($line->fk_doc);
1530 $urlsource = $_SERVER[
'PHP_SELF'].
'?id='.$objectstatic->id;
1531 $documentlink = $formfile->getDocumentsLink($objectstatic->element, $filename, $filedir);
1532 } elseif ($line->doc_type ==
'bank') {
1533 require_once DOL_DOCUMENT_ROOT.
'/compta/bank/class/account.class.php';
1535 $objectstatic->fetch($line->fk_doc);
1540 print
'<td class="tdoverflowmax250">';
1543 if ($line->doc_type ==
'customer_invoice' || $line->doc_type ==
'supplier_invoice' || $line->doc_type ==
'expense_report') {
1544 print $objectstatic->getNomUrl(1,
'', 0, 0,
'', 0, -1, 1);
1545 print $documentlink;
1546 } elseif ($line->doc_type ==
'bank') {
1547 print $objectstatic->getNomUrl(1);
1548 $bank_ref = strstr($line->doc_ref,
'-');
1549 print
' <span class="classfortooltip" title="'.dol_escape_htmltag($line->doc_ref).
'">'.
dol_escape_htmltag($bank_ref).
'</span>';
1551 print $line->doc_ref;
1561 if (!empty($arrayfields[
't.label_operation'][
'checked'])) {
1563 $doc_ref = preg_replace(
'/\(.*\)/',
'', $line->doc_ref);
1565 print
'<td class="small tdoverflowmax350 classfortooltip" title="'.dol_escape_htmltag($line->label_operation).
'">'.
dol_escape_htmltag($line->label_operation).
'</td>';
1567 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>';
1575 if (!empty($arrayfields[
't.lettering_code'][
'checked'])) {
1577 if (!empty($line->matching_general)) {
1578 $tooltipText .= $langs->trans(
'GeneralMatching');
1579 } elseif (empty($line->matching_general) && !empty($line->lettering_code)) {
1580 $tooltipText .= $langs->trans(
'AuxiliaryMatching');
1582 print
'<td class="center classfortooltip" title="'.$tooltipText.
'">';
1583 if ($type ==
'sub') {
1585 if (!empty($line->lettering_code)) {
1587 print
'<span class="badge badge-status1"><i class="fas fa-user fa-xs"></i> ' .
dol_escape_htmltag((
string) $line->lettering_code) .
'</span>';
1589 } elseif (!empty($line->matching_general) && !empty($line->lettering_code)) {
1590 print
'<span class="badge badge-status4"><i class="fas fa-book fa-xs"></i> ' .
dol_escape_htmltag((
string) $line->lettering_code) .
'</span>';
1597 if (!empty($arrayfields[
't.debit'][
'checked'])) {
1598 print
'<td class="right nowraponall amount">'.($line->debit != 0 ?
price($line->debit) :
'').
'</td>';
1605 $totalarray[
'val'][
'totaldebit'] += (float) $line->debit;
1609 if (!empty($arrayfields[
't.credit'][
'checked'])) {
1610 print
'<td class="right nowraponall amount">'.($line->credit != 0 ?
price($line->credit) :
'').
'</td>';
1617 $totalarray[
'val'][
'totalcredit'] += (float) $line->credit;
1621 if (!empty($arrayfields[
't.balance'][
'checked'])) {
1622 print
'<td class="right nowraponall amount">'.price(
price2num($sous_total_debit + $line->debit - $sous_total_credit - $line->credit,
'MT')).
'</td>';
1629 $totalarray[
'val'][
'totalbalance'] += $line->debit - $line->credit;
1633 if (!empty($arrayfields[
't.date_export'][
'checked'])) {
1634 print
'<td class="center">'.dol_print_date($line->date_export,
'dayhour').
'</td>';
1641 if (!empty($arrayfields[
't.date_validated'][
'checked'])) {
1642 print
'<td class="center">'.dol_print_date($line->date_validation,
'dayhour').
'</td>';
1649 if (!empty($arrayfields[
't.date_lim_reglement'][
'checked'])) {
1650 print
'<td class="center">'.dol_print_date($line->date_lim_reglement,
'day').
'</td>';
1656 if (!empty($arrayfields[
't.import_key'][
'checked'])) {
1657 print
'<td class="tdoverflowmax125" title="'.dol_escape_htmltag($line->import_key).
'">'.
dol_escape_htmltag($line->import_key).
"</td>\n";
1664 $parameters = array(
'arrayfields' => $arrayfields,
'obj' => $line);
1665 $reshook = $hookmanager->executeHooks(
'printFieldListValue', $parameters);
1666 print $hookmanager->resPrint;
1669 if (!
$conf->main_checkbox_left_column) {
1670 print
'<td class="nowraponall center">';
1671 if (($massactionbutton || $massaction) && $contextpage !=
'poslist') {
1673 if (in_array($line->id, $arrayofselected)) {
1676 print
'<input id="cb' . $line->id .
'" class="flat checkforselect" type="checkbox" name="toselect[]" value="' . $line->id .
'"' . ($selected ?
' checked="checked"' :
'') .
' />';
1685 $sous_total_debit += $line->debit;
1686 $sous_total_credit += $line->credit;
1693if ($num > 0 && $colspan > 0) {
1694 print
'<tr class="liste_total">';
1695 print
'<td class="right" colspan="'.$colspan.
'">'.$langs->trans(
"TotalForAccount").
' '.$accountg.
':</td>';
1696 print
'<td class="nowrap right">'.price(
price2num($sous_total_debit,
'MT')).
'</td>';
1697 print
'<td class="nowrap right">'.price(
price2num($sous_total_credit,
'MT')).
'</td>';
1698 if ($colspanend > 0) {
1699 print
'<td colspan="'.$colspanend.
'"></td>';
1704 $balance = $sous_total_debit - $sous_total_credit;
1705 print
'<tr class="liste_total">';
1706 print
'<td class="right" colspan="'.$colspan.
'">'.$langs->trans(
"Balance").
':</td>';
1708 print
'<td class="nowraponall right">';
1709 print
price(
price2num($sous_total_debit - $sous_total_credit,
'MT'));
1714 print
'<td class="nowraponall right">';
1715 print
price(
price2num($sous_total_credit - $sous_total_debit,
'MT'));
1718 if ($colspanend > 0) {
1719 print
'<td colspan="'.$colspanend.
'"></td>';
1726if (!empty($totalarray[
'val'][
'totaldebit'])) {
1729if (!empty($totalarray[
'val'][
'totalcredit'])) {
1730 $totalarray[
'val'][
'totalcredit'] = (float)
price2num($totalarray[
'val'][
'totalcredit'],
'MT');
1732if (!empty($totalarray[
'val'][
'totalbalance'])) {
1733 $totalarray[
'val'][
'totalbalance'] = (float)
price2num($totalarray[
'val'][
'totaldebit'] - $totalarray[
'val'][
'totalcredit'],
'MT');
1738include DOL_DOCUMENT_ROOT.
'/core/tpl/list_print_total.tpl.php';
1743 foreach ($arrayfields as $key => $val) {
1744 if (!empty($val[
'checked'])) {
1748 print
'<tr><td colspan="'.$colspan.
'"><span class="opacitymedium">'.$langs->trans(
"NoRecordFound").
'</span></td></tr>';
1751$parameters = array(
'arrayfields' => $arrayfields);
1752$reshook = $hookmanager->executeHooks(
'printFieldListFooter', $parameters, $object, $action);
1753print $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...
GETPOSTDATE($prefix, $hourTime='', $gm='auto', $saverestore='')
Helper function that combines values of a dolibarr DatePicker (such as Form\selectDate) for year,...
price2num($amount, $rounding='', $option=0)
Function that return a number with universal decimal format (decimal separator is '.
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.
newToken()
Return the value of token currently saved into session with name 'newtoken'.
GETPOST($paramname, $check='alphanohtml', $method=0, $filter=null, $options=null, $noreplace=0, $nodefault=0)
Return value of a param into GET or POST supervariable.
GETPOSTINT($paramname, $method=0, $nodefault=0)
Return the value of a $_GET or $_POST supervariable, converted into integer.
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.
setEventMessages($mesg, $mesgs, $style='mesgs', $messagekey='', $noduplicate=0, $attop=0)
Set event messages in dol_events session object.
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)
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.
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.
dolGetButtonTitleSeparator($moreClass="")
Add space between dolGetButtonTitle.
info_admin($text, $infoonimgalt=0, $nodiv=0, $admin='1', $morecss='hideonsmartphone', $textfordropdown='', $picto='', $textonpictotooltip='', $cssfordropdown='info_admin')
Show information in HTML for admin users or standard users.
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.