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 ===
'')) {
521 } elseif ($result == 0) {
522 setEventMessages($langs->trans(
"ErrorBookkeepingDocDateNotOnActiveFiscalPeriod"),
null,
'errors');
530 } elseif ($result < 0) {
534 } elseif (isset(
$object->date_validation) &&
$object->date_validation !=
'') {
535 setEventMessages($langs->trans(
"ValidatedRecordWhereFound"),
null,
'errors');
548 } elseif ($nbok > 0) {
554 header(
"Location: ".$_SERVER[
"PHP_SELF"].
"?noreset=1".($param ?
'&'.$param :
''));
562 if (!$error && $action ==
'clonebookkeepingwriting' && $confirm ==
"yes" && $user->hasRight(
'accounting',
'mouvements',
'creer')) {
563 $result =
$object->newCloneMass($toselect, $journal_code, $massdate);
569 header(
"Location: ".$_SERVER[
"PHP_SELF"].
"?noreset=1".($param ?
'&'.$param :
''));
577 if (!$error && $action ==
'assignaccountbookkeepingwriting' && $confirm ==
"yes" && $user->hasRight(
'accounting',
'mouvements',
'creer')) {
578 $result =
$object->assignAccountMass($toselect, (
int) $account);
584 header(
"Location: ".$_SERVER[
"PHP_SELF"].
"?noreset=1".($param ?
'&'.$param :
''));
592 if (!$error && $action ==
'returnaccountbookkeepingwriting' && $confirm ==
"yes" && $user->hasRight(
'accounting',
'mouvements',
'creer')) {
593 $result =
$object->newReturnAccount($toselect, $journal_code, $massdate);
599 header(
"Location: ".$_SERVER[
"PHP_SELF"].
"?noreset=1".($param ?
'&'.$param :
''));
608 if ($massaction ==
'generalmatchingmanual' && $permissiontoadd) {
610 $result = $lettering->updateGeneralMatching($toselect);
614 setEventMessages($langs->trans($result == 0 ?
'AccountancyNoMachingModified' :
'AccountancyOneMatchingModifiedSuccessfully'), array(),
'mesgs');
615 header(
'Location: ' . $_SERVER[
'PHP_SELF'] .
'?noreset=1' . $param);
618 } elseif ($massaction ==
'generalmatchingpartial' && $permissiontoadd) {
620 $result = $lettering->updateGeneralMatching($toselect,
true);
624 setEventMessages($langs->trans($result == 0 ?
'AccountancyNoMachingModified' :
'AccountancyOneMatchingModifiedSuccessfully'), array(),
'mesgs');
625 header(
'Location: ' . $_SERVER[
'PHP_SELF'] .
'?noreset=1' . $param);
628 } elseif ($action ==
'generalunmatchingmanual' && $confirm ==
'yes' && $permissiontodelete) {
630 $result = $lettering->deleteGeneralMatching($toselect);
634 setEventMessages($langs->trans($result == 0 ?
'AccountancyNoUnmatchingModified' :
'AccountancyOneUnmatchingModifiedSuccessfully'), array(),
'mesgs');
635 header(
'Location: ' . $_SERVER[
'PHP_SELF'] .
'?noreset=1' . $param);
638 } elseif ($type ==
'sub' && $massaction ==
'letteringauto' && $permissiontoadd) {
640 $nb_lettering = $lettering->bookkeepingLetteringAll($toselect);
641 if ($nb_lettering < 0) {
644 $nb_lettering = max(0, abs($nb_lettering) - 2);
645 } elseif ($nb_lettering == 0) {
647 setEventMessages($langs->trans(
'AccountancyNoMatchingModified'), array(),
'mesgs');
649 if ($nb_lettering == 1) {
650 setEventMessages($langs->trans(
'AccountancyOneMatchingModifiedSuccessfully'), array(),
'mesgs');
651 } elseif ($nb_lettering > 1) {
652 setEventMessages($langs->trans(
'AccountancyMatchingModifiedSuccessfully', $nb_lettering), array(),
'mesgs');
656 header(
'Location: ' . $_SERVER[
'PHP_SELF'] .
'?noreset=1' . $param);
659 } elseif ($type ==
'sub' && $massaction ==
'letteringmanual' && $permissiontoadd) {
661 $result = $lettering->updateLettering($toselect);
665 setEventMessages($langs->trans($result == 0 ?
'AccountancyNoMatchingModified' :
'AccountancyOneMatchingModifiedSuccessfully'), array(),
'mesgs');
666 header(
'Location: ' . $_SERVER[
'PHP_SELF'] .
'?noreset=1' . $param);
669 } elseif ($type ==
'sub' && $massaction ==
'letteringpartial' && $permissiontoadd) {
671 $result = $lettering->updateLettering($toselect, 0,
true);
675 setEventMessages($langs->trans($result == 0 ?
'AccountancyNoMatchingModified' :
'AccountancyOneMatchingModifiedSuccessfully'), array(),
'mesgs');
676 header(
'Location: ' . $_SERVER[
'PHP_SELF'] .
'?noreset=1' . $param);
679 } elseif ($type ==
'sub' && $action ==
'unletteringauto' && $confirm ==
"yes" && $permissiontoadd) {
681 $nb_lettering = $lettering->bookkeepingLetteringAll($toselect,
true);
682 if ($nb_lettering < 0) {
685 $nb_lettering = max(0, abs($nb_lettering) - 2);
686 } elseif ($nb_lettering == 0) {
688 setEventMessages($langs->trans(
'AccountancyNoUnmatchingModified'), array(),
'mesgs');
690 if ($nb_lettering == 1) {
691 setEventMessages($langs->trans(
'AccountancyOneUnmatchingModifiedSuccessfully'), array(),
'mesgs');
692 } elseif ($nb_lettering > 1) {
693 setEventMessages($langs->trans(
'AccountancyUnmatchingModifiedSuccessfully', $nb_lettering), array(),
'mesgs');
697 header(
'Location: ' . $_SERVER[
'PHP_SELF'] .
'?noreset=1' . $param);
700 } elseif ($type ==
'sub' && $action ==
'unletteringmanual' && $confirm ==
"yes" && $permissiontoadd) {
702 $nb_lettering = $lettering->deleteLettering($toselect);
706 setEventMessages($langs->trans($result == 0 ?
'AccountancyNoUnmatchingModified' :
'AccountancyOneUnmatchingModifiedSuccessfully'), array(),
'mesgs');
707 header(
'Location: ' . $_SERVER[
'PHP_SELF'] .
'?noreset=1' . $param);
724$title_page = $langs->trans(
"Operations").
' - '.$langs->trans(
"VueByAccountAccounting").
' (';
726 $title_page .= $langs->trans(
"BookkeepingSubAccount");
728 $title_page .= $langs->trans(
"Bookkeeping");
731$help_url =
'EN:Module_Double_Entry_Accounting|FR:Module_Comptabilité_en_Partie_Double';
732llxHeader(
'', $title_page, $help_url,
'', 0, 0,
'',
'',
'',
'mod-accountancy accountancy-consultation page-'.(($type ==
'sub') ?
'sub' :
'').
'ledger');
736 $res = $companystatic->fetch($socid);
743 print
dol_get_fiche_head($head,
'accounting', $langs->trans(
"ThirdParty"), -1,
'company');
745 $linkback =
'<a href="'.DOL_URL_ROOT.
'/societe/list.php?restore_lastsearch_values=1">'.$langs->trans(
"BackToList").
'</a>';
747 dol_banner_tab($companystatic,
'socid', $linkback, ($user->socid ? 0 : 1),
'rowid',
'nom');
749 print
'<div class="fichecenter">';
751 print
'<div class="underbanner clearboth"></div>';
752 print
'<table class="border centpercent tableforfield">';
755 print
'<tr><td class="titlefield">'.$langs->trans(
'NatureOfThirdParty').
'</td><td>';
756 print $companystatic->getTypeUrl(1);
760 if ($companystatic->client && !empty($companystatic->code_client)) {
761 print
'<tr><td class="titlefield">';
762 print $langs->trans(
'CustomerCode').
'</td><td>';
764 $tmpcheck = $companystatic->check_codeclient();
765 if ($tmpcheck != 0 && $tmpcheck != -5) {
766 print
' <span class="error">('.$langs->trans(
"WrongCustomerCode").
')</span>';
772 if ($companystatic->fournisseur && !empty($companystatic->code_fournisseur)) {
773 print
'<tr><td class="titlefield">';
774 print $langs->trans(
'SupplierCode').
'</td><td>';
776 $tmpcheck = $companystatic->check_codefournisseur();
777 if ($tmpcheck != 0 && $tmpcheck != -5) {
778 print
' <span class="error">('.$langs->trans(
"WrongSupplierCode").
')</span>';
788 print
info_admin($langs->trans(
"WarningThisPageContainsOnlyEntriesTransferredInAccounting"));
792 if (!empty(
$conf->dol_use_jmobile)) {
793 print
"\n".
'<div class="fichecenter"><div class="nowrap">'.
"\n";
796 if ($companystatic->client && !empty($companystatic->code_compta_client)) {
797 if ($mode !=
'customer') {
798 if (!empty($companystatic->code_compta_client)) {
799 $subledger_start_account = $subledger_end_account = $companystatic->code_compta_client;
801 $subledger_start_account = $subledger_end_account =
'';
803 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.
'">';
805 print
'<span class="a-mesure marginleftonly marginrightonly">';
808 print $langs->trans(
"CustomerAccountancyCodeShort");
809 if ($mode !=
'customer') {
816 if ($companystatic->fournisseur && !empty($companystatic->code_compta_fournisseur)) {
817 if ($mode !=
'supplier') {
818 if (!empty($companystatic->code_compta_fournisseur)) {
819 $subledger_start_account = $subledger_end_account = $companystatic->code_compta_fournisseur;
821 $subledger_start_account = $subledger_end_account =
'';
823 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.
'">';
825 print
'<span class="a-mesure marginleftonly marginrightonly">';
827 print $langs->trans(
"SupplierAccountancyCodeShort");
828 if ($mode !=
'supplier') {
835 if (!empty(
$conf->dol_use_jmobile)) {
836 print
'</div></div>';
845$nbtotalofrecords =
'';
848 if ($type ==
'sub') {
849 $nbtotalofrecords =
$object->fetchAllByAccount($sortorder, $sortfield, 0, 0, $filter,
'AND', 1, 1);
851 $nbtotalofrecords =
$object->fetchAllByAccount($sortorder, $sortfield, 0, 0, $filter,
'AND', 0, 1);
854 if ($nbtotalofrecords < 0) {
862 if ($type ==
'sub') {
863 $result =
$object->fetchAllByAccount($sortorder, $sortfield, $limit, $offset, $filter,
'AND', 1);
865 $result =
$object->fetchAllByAccount($sortorder, $sortfield, $limit, $offset, $filter,
'AND', 0);
875$arrayofselected = is_array($toselect) ? $toselect : array();
882$arrayofmassactions = array();
883if (
getDolGlobalInt(
'ACCOUNTING_ENABLE_LETTERING') && $user->hasRight(
'accounting',
'mouvements',
'creer')) {
884 if ($type ==
'sub') {
886 $arrayofmassactions[
'letteringauto'] =
img_picto(
'',
'check',
'class="pictofixedwidth"') . $langs->trans(
'LetteringAuto');
887 $arrayofmassactions[
'preunletteringauto'] =
img_picto(
'',
'uncheck',
'class="pictofixedwidth"') . $langs->trans(
'UnletteringAuto');
888 $arrayofmassactions[
'letteringmanual'] =
img_picto(
'',
'check',
'class="pictofixedwidth"') . $langs->trans(
'LetteringManual');
889 $arrayofmassactions[
'letteringpartial'] =
img_picto(
'',
'check',
'class="pictofixedwidth"') . $langs->trans(
'LetteringPartial');
890 $arrayofmassactions[
'preunletteringmanual'] =
img_picto(
'',
'uncheck',
'class="pictofixedwidth"') . $langs->trans(
'UnletteringManual');
893 $arrayofmassactions[
'generalmatchingmanual'] =
img_picto(
'',
'check',
'class="pictofixedwidth"') . $langs->trans(
'GeneralMatchingManual');
894 $arrayofmassactions[
'generalmatchingpartial'] =
img_picto(
'',
'check',
'class="pictofixedwidth"') . $langs->trans(
'GeneralMatchingPartial');
895 $arrayofmassactions[
'pregeneralunmatchingmanual'] =
img_picto(
'',
'uncheck',
'class="pictofixedwidth"') . $langs->trans(
'GeneralUnmatchingManual');
898if ($user->hasRight(
'accounting',
'mouvements',
'creer')) {
899 $arrayofmassactions[
'preclonebookkeepingwriting'] =
img_picto(
'',
'clone',
'class="pictofixedwidth"').$langs->trans(
"Clone");
901if ($user->hasRight(
'accounting',
'mouvements',
'creer')) {
902 $arrayofmassactions[
'preassignaccountbookkeepingwriting'] =
img_picto(
'',
'fa-exchange-alt',
'class="pictofixedwidth"').$langs->trans(
"AssignAccount");
904if ($user->hasRight(
'accounting',
'mouvements',
'creer')) {
905 $arrayofmassactions[
'prereturnaccountbookkeepingwriting'] =
img_picto(
'',
'undo',
'class="pictofixedwidth"').$langs->trans(
"ReturnAccount");
907if ($user->hasRight(
'accounting',
'mouvements',
'supprimer')) {
908 $arrayofmassactions[
'predeletebookkeepingwriting'] =
img_picto(
'',
'delete',
'class="pictofixedwidth"').$langs->trans(
"Delete");
911if (
GETPOSTINT(
'nomassaction') || in_array($massaction, array(
'preunletteringauto',
'preunletteringmanual',
'pregeneralunmatchingmanual',
'predeletebookkeepingwriting',
'preclonebookkeepingwriting',
'preassignaccountbookkeepingwriting',
'prereturnaccountbookkeepingwriting'))) {
912 $arrayofmassactions = array();
914$massactionbutton = $form->selectMassAction($massaction, $arrayofmassactions);
916print
'<form method="POST" id="searchFormList" action="'.dolBuildUrl($_SERVER[
"PHP_SELF"]).
'">';
917print
'<input type="hidden" name="token" value="'.newToken().
'">';
918print
'<input type="hidden" name="action" value="list">';
919if ($optioncss !=
'') {
920 print
'<input type="hidden" name="optioncss" value="'.$optioncss.
'">';
922print
'<input type="hidden" name="formfilteraction" id="formfilteraction" value="list">';
923print
'<input type="hidden" name="type" value="'.$type.
'">';
925 print
'<input type="hidden" name="socid" value="' . $socid .
'">';
927print
'<input type="hidden" name="sortfield" value="'.$sortfield.
'">';
928print
'<input type="hidden" name="sortorder" value="'.$sortorder.
'">';
929print
'<input type="hidden" name="contextpage" value="'.$contextpage.
'">';
931$parameters = array(
'param' => $param);
932$reshook = $hookmanager->executeHooks(
'addMoreActionsButtonsList', $parameters, $object, $action);
937$newcardbutton = empty($hookmanager->resPrint) ?
'' : $hookmanager->resPrint;
939if (empty($reshook)) {
942 $newcardbutton =
dolGetButtonTitle($langs->trans(
'ViewFlatList'),
'',
'fa fa-list paddingleft imgforviewmode', DOL_URL_ROOT .
'/accountancy/bookkeeping/list.php?' . $param);
943 if ($type ==
'sub') {
944 $newcardbutton .=
dolGetButtonTitle($langs->trans(
'GroupByAccountAccounting'),
'',
'fa fa-stream paddingleft imgforviewmode', DOL_URL_ROOT .
'/accountancy/bookkeeping/listbyaccount.php?' . $url_param,
'', 1, array(
'morecss' =>
'marginleftonly'));
945 $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'));
947 $newcardbutton .=
dolGetButtonTitle($langs->trans(
'GroupByAccountAccounting'),
'',
'fa fa-stream paddingleft imgforviewmode', DOL_URL_ROOT .
'/accountancy/bookkeeping/listbyaccount.php?' . $url_param,
'', 1, array(
'morecss' =>
'marginleftonly btnTitleSelected'));
948 $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'));
951 $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'));
955 $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);
958if ($contextpage != $_SERVER[
"PHP_SELF"]) {
959 $param .=
'&contextpage='.urlencode($contextpage);
961if ($limit > 0 && $limit !=
$conf->liste_limit) {
962 $param .=
'&limit='.((int) $limit);
965print_barre_liste($title_page, $page, $_SERVER[
"PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords,
'title_accountancy', 0, $newcardbutton,
'', $limit, 0, 0, 1);
967if ($massaction ==
'preunletteringauto') {
968 print $form->formconfirm($_SERVER[
"PHP_SELF"], $langs->trans(
"ConfirmMassUnletteringAuto"), $langs->trans(
"ConfirmMassUnletteringQuestion", count($toselect)),
"unletteringauto",
null,
'', 0, 200, 500, 1);
969} elseif ($massaction ==
'preunletteringmanual') {
970 print $form->formconfirm($_SERVER[
"PHP_SELF"], $langs->trans(
"ConfirmMassUnletteringManual"), $langs->trans(
"ConfirmMassUnletteringQuestion", count($toselect)),
"unletteringmanual",
null,
'', 0, 200, 500, 1);
971} elseif ($massaction ==
'pregeneralunmatchingmanual') {
972 print $form->formconfirm($_SERVER[
'PHP_SELF'], $langs->trans(
'ConfirmMassGeneralUnmatchingManual'), $langs->trans(
'ConfirmMassGeneralUnmatchingQuestion', count($toselect)),
'generalunmatchingmanual',
null,
'', 0, 200, 500, 1);
973} elseif ($massaction ==
'predeletebookkeepingwriting') {
974 print $form->formconfirm($_SERVER[
"PHP_SELF"], $langs->trans(
"ConfirmMassDeleteBookkeepingWriting"), $langs->trans(
"ConfirmMassDeleteBookkeepingWritingQuestion", count($toselect)),
"deletebookkeepingwriting",
null,
'', 0, 200, 500, 1);
975} elseif ($massaction ==
'preassignaccountbookkeepingwriting') {
976 $input = $formaccounting->select_account(
'',
'account', 1);
977 $formquestion = array(array(
'type' =>
'other',
'name' =>
'account',
'label' =>
'<span class="fieldrequired">' . $langs->trans(
"AccountAccountingShort") .
'</span>',
'value' => $input),);
978 print $form->formconfirm($_SERVER[
"PHP_SELF"], $langs->trans(
"confirmMassAssignAccountBookkeepingWritingConfirm"), $langs->trans(
"ConfirmMassAssignAccountBookkeepingWritingQuestion", count($toselect)),
"assignaccountbookkeepingwriting", $formquestion,
'', 0, 200, 500, 1);
979} elseif ($massaction ==
'preclonebookkeepingwriting') {
980 $input1 = $form->selectDate(
'',
'massdate', 0, 0, 0,
"create_mvt", 1, 1);
981 $input2 = $formaccounting->select_journal($journal_code,
'code_journal', 0, 0, 1, 1).
'</td>';
982 $formquestion = array(
985 'name' =>
'massdate',
986 'label' =>
'<span class="fieldrequired">' . $langs->trans(
"Docdate") .
'</span>',
992 $formquestion[] = array(
994 'name' =>
'code_journal',
995 'label' =>
'<span class="fieldrequired">' . $langs->trans(
"Codejournal") .
'</span>',
1000 print $form->formconfirm(
1001 $_SERVER[
"PHP_SELF"],
1002 $langs->trans(
"ConfirmMassCloneBookkeepingWriting"),
1003 $langs->trans(
"ConfirmMassCloneBookkeepingWritingQuestion", count($toselect)),
1004 "clonebookkeepingwriting",
1008} elseif ($massaction ==
'prereturnaccountbookkeepingwriting') {
1009 $input1 = $form->selectDate(
'',
'massdate', 0, 0, 0,
"create_mvt", 1, 1);
1010 $formquestion = array(array(
'type' =>
'other',
'name' =>
'massdate',
'label' =>
'<span class="fieldrequired">' . $langs->trans(
"Docdate") .
'</span>',
'value' => $input1));
1011 print $form->formconfirm($_SERVER[
"PHP_SELF"], $langs->trans(
"ConfirmMassReturnAccountBookkeepingWriting"), $langs->trans(
"ConfirmMassReturnAccountBookkeepingWritingQuestion", count($toselect)),
"returnaccountbookkeepingwriting", $formquestion,
'', 0, 200, 500, 1);
1014include DOL_DOCUMENT_ROOT.
'/core/tpl/massactions_pre.tpl.php';
1016$varpage = empty($contextpage) ? $_SERVER[
"PHP_SELF"] : $contextpage;
1017$selectedfields = $form->multiSelectArrayWithCheckbox(
'selectedfields', $arrayfields, $varpage,
$conf->main_checkbox_left_column);
1018if ($massactionbutton && $contextpage !=
'poslist') {
1019 $selectedfields .= $form->showCheckAddButtons(
'checkforselect', 1);
1023if (preg_match(
'/^asc/i', $sortorder)) {
1026 $sortorder =
"desc";
1030if ($type ==
'sub' && !$socid) {
1031 print
info_admin($langs->trans(
"WarningRecordWithoutSubledgerAreExcluded"));
1038$moreforfilter .=
'<div class="divsearchfield">';
1039$moreforfilter .= $langs->trans(
'AccountAccounting').
': ';
1040$moreforfilter .=
'<div class="nowrap inline-block">';
1041if ($type ==
'sub') {
1042 $moreforfilter .= $formaccounting->select_auxaccount($search_accountancy_code_start,
'search_accountancy_code_start', $langs->trans(
'From'),
'maxwidth200');
1044 $moreforfilter .= $formaccounting->select_account($search_accountancy_code_start,
'search_accountancy_code_start', $langs->trans(
'From'), array(), 1, 1,
'maxwidth200');
1046$moreforfilter .=
' ';
1047if ($type ==
'sub') {
1048 $moreforfilter .= $formaccounting->select_auxaccount($search_accountancy_code_end,
'search_accountancy_code_end', $langs->trans(
'to'),
'maxwidth200');
1050 $moreforfilter .= $formaccounting->select_account($search_accountancy_code_end,
'search_accountancy_code_end', $langs->trans(
'to'), array(), 1, 1,
'maxwidth200');
1054 $moreforfilter .=
' <a id="previous_account" accesskey="p" title="' .
$conf->browser->stringforfirstkey .
' p" class="classfortooltip" href="#"><i class="fa fa-chevron-left"></i></a>';
1055 $moreforfilter .=
' <a id="next_account" accesskey="n" title="' .
$conf->browser->stringforfirstkey .
' n" class="classfortooltip" href="#"><i class="fa fa-chevron-right"></i></a>';
1056 $moreforfilter .= <<<SCRIPT
1057<script
type=
"text/javascript">
1058 jQuery(document).ready(
function() {
1059 var searchFormList = $(
'#searchFormList');
1060 var searchAccountancyCodeStart = $(
'#search_accountancy_code_start');
1061 var searchAccountancyCodeEnd = $(
'#search_accountancy_code_end');
1062 jQuery(
'#previous_account').on(
'click',
function() {
1063 var previousOption = searchAccountancyCodeStart.find(
'option:selected').prev(
'option');
1064 if (previousOption.length == 1) searchAccountancyCodeStart.val(previousOption.attr(
'value'));
1065 searchAccountancyCodeEnd.val(searchAccountancyCodeStart.val());
1066 searchFormList.submit();
1068 jQuery(
'#next_account').on(
'click',
function() {
1069 var nextOption = searchAccountancyCodeStart.find(
'option:selected').next(
'option');
1070 if (nextOption.length == 1) searchAccountancyCodeStart.val(nextOption.attr(
'value'));
1071 searchAccountancyCodeEnd.val(searchAccountancyCodeStart.val());
1072 searchFormList.submit();
1074 jQuery(
'input[name="search_mvt_num"]').on(
"keypress",
function(event) {
1081$moreforfilter .=
'</div>';
1082$moreforfilter .=
'</div>';
1085 $moreforfilter .=
'<div class="divsearchfield">';
1086 $moreforfilter .= $langs->trans(
'AccountingCategory') .
': ';
1087 $moreforfilter .=
'<div class="nowrap inline-block">';
1088 $moreforfilter .= $formaccounting->select_accounting_category($search_account_category,
'search_account_category', 1, 0, 0, 0);
1089 $moreforfilter .=
'</div>';
1090 $moreforfilter .=
'</div>';
1093$parameters = array();
1094$reshook = $hookmanager->executeHooks(
'printFieldPreListTitle', $parameters, $object, $action);
1095if (empty($reshook)) {
1096 $moreforfilter .= $hookmanager->resPrint;
1098 $moreforfilter = $hookmanager->resPrint;
1101print
'<div class="liste_titre liste_titre_bydiv centpercent">';
1102print $moreforfilter;
1105print
'<div class="div-table-responsive">';
1106print
'<table class="tagtable liste centpercent listwithfilterbefore">';
1109print
'<tr class="liste_titre_filter">';
1111if (
$conf->main_checkbox_left_column) {
1112 print
'<td class="liste_titre center">';
1113 $searchpicto = $form->showFilterButtons(
'left');
1118if (!empty($arrayfields[
't.piece_num'][
'checked'])) {
1119 print
'<td class="liste_titre"><input type="text" name="search_mvt_num" class="width50" value="'.dol_escape_htmltag($search_mvt_num).
'"></td>';
1122if (!empty($arrayfields[
't.code_journal'][
'checked'])) {
1123 print
'<td class="liste_titre center">';
1124 print $formaccounting->multi_select_journal($search_ledger_code,
'search_ledger_code', 0, 1, 1, 1,
'maxwidth75');
1128if (!empty($arrayfields[
't.doc_date'][
'checked'])) {
1129 print
'<td class="liste_titre center">';
1130 print
'<div class="nowrapfordate">';
1131 print $form->selectDate($search_date_start,
'search_date_start', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
"From"));
1133 print
'<div class="nowrapfordate">';
1134 print $form->selectDate($search_date_end,
'search_date_end', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
"to"));
1139if (!empty($arrayfields[
't.doc_ref'][
'checked'])) {
1140 print
'<td class="liste_titre"><input type="text" size="7" class="flat" name="search_doc_ref" value="'.dol_escape_htmltag($search_doc_ref).
'"/></td>';
1143if (!empty($arrayfields[
't.label_operation'][
'checked'])) {
1144 print
'<td class="liste_titre"><input type="text" size="7" class="flat" name="search_label_operation" value="'.dol_escape_htmltag($search_label_operation).
'"/></td>';
1147if (!empty($arrayfields[
't.lettering_code'][
'checked'])) {
1148 print
'<td class="liste_titre center">';
1149 print
'<input type="text" size="3" class="flat" name="search_lettering_code" value="'.$search_lettering_code.
'"/>';
1150 print
'<br><span class="nowrap"><input type="checkbox" name="search_not_reconciled" value="notreconciled"'.($search_not_reconciled ==
'notreconciled' ?
' checked' :
'').
'>'.$langs->trans(
"NotReconciled").
'</span>';
1154if (!empty($arrayfields[
't.debit'][
'checked'])) {
1155 print
'<td class="liste_titre right"><input type="text" class="flat" name="search_debit" size="4" value="'.dol_escape_htmltag($search_debit).
'"></td>';
1158if (!empty($arrayfields[
't.credit'][
'checked'])) {
1159 print
'<td class="liste_titre right"><input type="text" class="flat" name="search_credit" size="4" value="'.dol_escape_htmltag($search_credit).
'"></td>';
1162if (!empty($arrayfields[
't.balance'][
'checked'])) {
1166if (!empty($arrayfields[
't.date_export'][
'checked'])) {
1167 print
'<td class="liste_titre center">';
1168 print
'<div class="nowrapfordate">';
1169 print $form->selectDate($search_date_export_start,
'search_date_export_start', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
"From"));
1171 print
'<div class="nowrapfordate">';
1172 print $form->selectDate($search_date_export_end,
'search_date_export_end', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
"to"));
1177if (!empty($arrayfields[
't.date_validated'][
'checked'])) {
1178 print
'<td class="liste_titre center">';
1179 print
'<div class="nowrapfordate">';
1180 print $form->selectDate($search_date_validation_start,
'search_date_validation_start', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
"From"));
1182 print
'<div class="nowrapfordate">';
1183 print $form->selectDate($search_date_validation_end,
'search_date_validation_end', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
"to"));
1188if (!empty($arrayfields[
't.date_lim_reglement'][
'checked'])) {
1189 print
'<td class="liste_titre center">';
1190 print
'<div class="nowrapfordate">';
1191 print $form->selectDate($search_date_due_start,
'search_date_due_start_', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
"From"));
1193 print
'<div class="nowrapfordate">';
1194 print $form->selectDate($search_date_due_end,
'search_date_due_end_', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
"to"));
1198if (!empty($arrayfields[
't.import_key'][
'checked'])) {
1199 print
'<td class="liste_titre center">';
1200 print
'<input class="flat searchstring maxwidth50" type="text" name="search_import_key" value="'.dol_escape_htmltag($search_import_key).
'">';
1205$parameters = array(
'arrayfields' => $arrayfields);
1206$reshook = $hookmanager->executeHooks(
'printFieldListOption', $parameters);
1207print $hookmanager->resPrint;
1210if (!
$conf->main_checkbox_left_column) {
1211 print
'<td class="liste_titre center">';
1212 $searchpicto = $form->showFilterButtons();
1218print
'<tr class="liste_titre">';
1219if (
$conf->main_checkbox_left_column) {
1220 print_liste_field_titre($selectedfields, $_SERVER[
"PHP_SELF"],
"",
'',
'',
'', $sortfield, $sortorder,
'center maxwidthsearch ');
1222if (!empty($arrayfields[
't.piece_num'][
'checked'])) {
1223 print_liste_field_titre($arrayfields[
't.piece_num'][
'label'], $_SERVER[
'PHP_SELF'],
"t.piece_num",
"", $param,
'', $sortfield, $sortorder,
'tdoverflowmax80imp ');
1225if (!empty($arrayfields[
't.code_journal'][
'checked'])) {
1226 print_liste_field_titre($arrayfields[
't.code_journal'][
'label'], $_SERVER[
'PHP_SELF'],
"t.code_journal",
"", $param,
'', $sortfield, $sortorder,
'center ');
1228if (!empty($arrayfields[
't.doc_date'][
'checked'])) {
1229 print_liste_field_titre($arrayfields[
't.doc_date'][
'label'], $_SERVER[
'PHP_SELF'],
"t.doc_date",
"", $param,
'', $sortfield, $sortorder,
'center ');
1231if (!empty($arrayfields[
't.doc_ref'][
'checked'])) {
1232 print_liste_field_titre($arrayfields[
't.doc_ref'][
'label'], $_SERVER[
'PHP_SELF'],
"t.doc_ref",
"", $param,
"", $sortfield, $sortorder);
1234if (!empty($arrayfields[
't.label_operation'][
'checked'])) {
1235 print_liste_field_titre($arrayfields[
't.label_operation'][
'label'], $_SERVER[
'PHP_SELF'],
"t.label_operation",
"", $param,
"", $sortfield, $sortorder);
1237if (!empty($arrayfields[
't.lettering_code'][
'checked'])) {
1238 print_liste_field_titre($arrayfields[
't.lettering_code'][
'label'], $_SERVER[
'PHP_SELF'],
"t.lettering_code",
"", $param,
'', $sortfield, $sortorder,
'center ');
1240if (!empty($arrayfields[
't.debit'][
'checked'])) {
1241 print_liste_field_titre($arrayfields[
't.debit'][
'label'], $_SERVER[
'PHP_SELF'],
"t.debit",
"", $param,
'', $sortfield, $sortorder,
'right ');
1243if (!empty($arrayfields[
't.credit'][
'checked'])) {
1244 print_liste_field_titre($arrayfields[
't.credit'][
'label'], $_SERVER[
'PHP_SELF'],
"t.credit",
"", $param,
'', $sortfield, $sortorder,
'right ');
1246if (!empty($arrayfields[
't.balance'][
'checked'])) {
1247 print_liste_field_titre($arrayfields[
't.balance'][
'label'],
"",
"",
"", $param,
'', $sortfield, $sortorder,
'right ');
1249if (!empty($arrayfields[
't.date_export'][
'checked'])) {
1250 print_liste_field_titre($arrayfields[
't.date_export'][
'label'], $_SERVER[
'PHP_SELF'],
"t.date_export",
"", $param,
'', $sortfield, $sortorder,
'center ');
1252if (!empty($arrayfields[
't.date_validated'][
'checked'])) {
1253 print_liste_field_titre($arrayfields[
't.date_validated'][
'label'], $_SERVER[
'PHP_SELF'],
"t.date_validated",
"", $param,
'', $sortfield, $sortorder,
'center ');
1256if (!empty($arrayfields[
't.date_lim_reglement'][
'checked'])) {
1257 print_liste_field_titre($arrayfields[
't.date_lim_reglement'][
'label'], $_SERVER[
'PHP_SELF'],
't.date_lim_reglement',
'', $param,
'', $sortfield, $sortorder,
'center ');
1259if (!empty($arrayfields[
't.import_key'][
'checked'])) {
1260 print_liste_field_titre($arrayfields[
't.import_key'][
'label'], $_SERVER[
"PHP_SELF"],
"t.import_key",
"", $param,
'', $sortfield, $sortorder,
'center ');
1263$parameters = array(
'arrayfields' => $arrayfields,
'param' => $param,
'sortfield' => $sortfield,
'sortorder' => $sortorder);
1264$reshook = $hookmanager->executeHooks(
'printFieldListTitle', $parameters);
1265print $hookmanager->resPrint;
1266if (!
$conf->main_checkbox_left_column) {
1267 print_liste_field_titre($selectedfields, $_SERVER[
"PHP_SELF"],
"",
'',
'',
'', $sortfield, $sortorder,
'center maxwidthsearch ');
1271$displayed_account_number =
null;
1273$objectstatic =
null;
1283$sous_total_debit = 0;
1284$sous_total_credit = 0;
1297if (!empty($arrayfields[
't.piece_num'][
'checked'])) { $colspan++; }
1298if (!empty($arrayfields[
't.code_journal'][
'checked'])) { $colspan++; }
1299if (!empty($arrayfields[
't.doc_date'][
'checked'])) { $colspan++; }
1300if (!empty($arrayfields[
't.doc_ref'][
'checked'])) { $colspan++; }
1301if (!empty($arrayfields[
't.label_operation'][
'checked'])) { $colspan++; }
1302if (!empty($arrayfields[
't.date_export'][
'checked'])) { $colspanend++; }
1303if (!empty($arrayfields[
't.date_validated'][
'checked'])) { $colspanend++; }
1304if (!empty($arrayfields[
't.lettering_code'][
'checked'])) { $colspanend++; }
1305if (
$conf->main_checkbox_left_column) {
1310while ($i < min($num, $limit)) {
1313 if ($type ==
'sub') {
1322 if (
$conf->main_checkbox_left_column) {
1325 if (!empty($arrayfields[
't.piece_num'][
'checked'])) {
1328 if (!empty($arrayfields[
't.code_journal'][
'checked'])) {
1331 if (!empty($arrayfields[
't.doc_date'][
'checked'])) {
1334 if (!empty($arrayfields[
't.doc_ref'][
'checked'])) {
1337 if (!empty($arrayfields[
't.label_operation'][
'checked'])) {
1340 if (!empty($arrayfields[
't.lettering_code'][
'checked'])) {
1344 if (!empty($arrayfields[
't.balance'][
'checked'])) {
1347 if (!empty($arrayfields[
't.date_export'][
'checked'])) {
1350 if (!empty($arrayfields[
't.date_validated'][
'checked'])) {
1354 if (!empty($arrayfields[
't.date_lim_reglement'][
'checked'])) {
1357 if (!empty($arrayfields[
't.lettering_code'][
'checked'])) {
1360 if (!empty($arrayfields[
't.import_key'][
'checked'])) {
1363 if (!
$conf->main_checkbox_left_column) {
1369 if ($accountg != $displayed_account_number || !isset($displayed_account_number)) {
1371 if (isset($displayed_account_number)) {
1372 print
'<tr class="liste_total">';
1373 if ($type ==
'sub') {
1374 print
'<td class="right" colspan="' . $colspan .
'">' . $langs->trans(
"TotalForAccount") .
' ' .
length_accounta($displayed_account_number) .
':</td>';
1376 print
'<td class="right" colspan="' . $colspan .
'">' . $langs->trans(
"TotalForAccount") .
' ' .
length_accountg($displayed_account_number) .
':</td>';
1378 print
'<td class="nowrap right">'.price(
price2num($sous_total_debit,
'MT')).
'</td>';
1379 print
'<td class="nowrap right">'.price(
price2num($sous_total_credit,
'MT')).
'</td>';
1380 if ($colspanend > 0) {
1381 print
'<td colspan="'.$colspanend.
'"></td>';
1385 $balance = $sous_total_debit - $sous_total_credit;
1386 print
'<tr class="liste_total">';
1387 print
'<td class="right" colspan="'.$colspan.
'">'.$langs->trans(
"Balance").
':</td>';
1389 print
'<td class="nowraponall right">';
1390 print
price(
price2num($sous_total_debit - $sous_total_credit,
'MT'));
1395 print
'<td class="nowraponall right">';
1396 print
price(
price2num($sous_total_credit - $sous_total_debit,
'MT'));
1399 if ($colspanend > 0) {
1400 print
'<td colspan="'.$colspanend.
'"></td>';
1406 print
'<tr class="trforbreaknobg">';
1407 print
'<td colspan="'.($totalarray[
'nbfield'] ?
$totalarray[
'nbfield'] : count($arrayfields) + 1).
'" class="tdforbreak">';
1408 if ($type ==
'sub') {
1409 if ($line->subledger_account !=
"" && $line->subledger_account !=
'-1') {
1410 print empty($line->subledger_label) ?
'<span class="error">'.$langs->trans(
"Unknown").
'</span>' : $line->subledger_label;
1415 print
'<span class="error">' . $langs->trans(
"Unknown");
1416 if ($line->subledger_label) {
1417 print
' (' . $line->subledger_label .
')';
1418 $htmltext =
'EmptyStringForSubledgerAccountButSubledgerLabelDefined';
1420 $htmltext =
'EmptyStringForSubledgerAccountAndSubledgerLabel';
1422 print $form->textwithpicto(
'', $htmltext);
1426 if ($line->numero_compte !=
"" && $line->numero_compte !=
'-1') {
1429 print
'<span class="error">' . $langs->trans(
"Unknown") .
'</span>';
1435 $displayed_account_number = $accountg;
1437 $sous_total_debit = 0;
1438 $sous_total_credit = 0;
1441 print
'<tr class="oddeven">';
1443 if (
$conf->main_checkbox_left_column) {
1444 print
'<td class="nowraponall center">';
1445 if (($massactionbutton || $massaction) && $contextpage !=
'poslist') {
1447 if (in_array($line->id, $arrayofselected)) {
1450 print
'<input id="cb' . $line->id .
'" class="flat checkforselect" type="checkbox" name="toselect[]" value="' . $line->id .
'"' . ($selected ?
' checked="checked"' :
'') .
' />';
1458 if (!empty($arrayfields[
't.piece_num'][
'checked'])) {
1459 print
'<td class="nowraponall">';
1461 $object->piece_num = $line->piece_num;
1463 print
$object->getNomUrl(1,
'', 0,
'', 1);
1464 print
'<span class="hideonsmartphone">';
1465 if (!empty($line->date_export)) {
1466 print
img_picto($langs->trans(
"DateExport").
": ".
dol_print_date($line->date_export,
'dayhour').
" (".$langs->trans(
"TransactionExportDesc").
")",
'fa-file-export',
'class="paddingleft pictofixedwidth opacitymedium"');
1468 if (!empty($line->date_validation)) {
1469 print
img_picto($langs->trans(
"DateValidation").
": ".
dol_print_date($line->date_validation,
'dayhour').
" (".$langs->trans(
"TransactionBlockedLockedDesc").
")",
'fa-lock',
'class="paddingleft pictofixedwidth opacitymedium"');
1479 if (!empty($arrayfields[
't.code_journal'][
'checked'])) {
1481 $result = $accountingjournal->fetch(0, $line->code_journal);
1482 $journaltoshow = (($result > 0) ? $accountingjournal->getNomUrl(0, 0, 0,
'', 0) : $line->code_journal);
1483 print
'<td class="center tdoverflowmax80">'.$journaltoshow.
'</td>';
1490 if (!empty($arrayfields[
't.doc_date'][
'checked'])) {
1491 print
'<td class="center">'.dol_print_date($line->doc_date,
'day').
'</td>';
1499 if (!empty($arrayfields[
't.doc_ref'][
'checked'])) {
1500 if ($line->doc_type ==
'customer_invoice') {
1501 $langs->loadLangs(array(
'bills'));
1503 require_once DOL_DOCUMENT_ROOT.
'/compta/facture/class/facture.class.php';
1505 $objectstatic->fetch($line->fk_doc);
1510 $urlsource = $_SERVER[
'PHP_SELF'].
'?id='.$objectstatic->id;
1511 $documentlink = $formfile->getDocumentsLink($objectstatic->element, $filename, $filedir);
1512 } elseif ($line->doc_type ==
'supplier_invoice') {
1513 $langs->loadLangs(array(
'bills'));
1515 require_once DOL_DOCUMENT_ROOT.
'/fourn/class/fournisseur.facture.class.php';
1517 $objectstatic->fetch($line->fk_doc);
1519 $modulepart =
'invoice_supplier';
1521 $filedir =
$conf->fournisseur->facture->dir_output.
'/'.
get_exdir($line->fk_doc, 2, 0, 0, $objectstatic, $modulepart).dol_sanitizeFileName($line->doc_ref);
1522 $subdir =
get_exdir($objectstatic->id, 2, 0, 0, $objectstatic, $modulepart).dol_sanitizeFileName($line->doc_ref);
1523 $documentlink = $formfile->getDocumentsLink($objectstatic->element, $subdir, $filedir);
1524 } elseif ($line->doc_type ==
'expense_report') {
1525 $langs->loadLangs(array(
'trips'));
1527 require_once DOL_DOCUMENT_ROOT.
'/expensereport/class/expensereport.class.php';
1529 $objectstatic->fetch($line->fk_doc);
1534 $urlsource = $_SERVER[
'PHP_SELF'].
'?id='.$objectstatic->id;
1535 $documentlink = $formfile->getDocumentsLink($objectstatic->element, $filename, $filedir);
1536 } elseif ($line->doc_type ==
'bank') {
1537 require_once DOL_DOCUMENT_ROOT.
'/compta/bank/class/account.class.php';
1539 $objectstatic->fetch($line->fk_doc);
1544 print
'<td class="tdoverflowmax250">';
1547 if ($line->doc_type ==
'customer_invoice' || $line->doc_type ==
'supplier_invoice' || $line->doc_type ==
'expense_report') {
1548 print $objectstatic->getNomUrl(1,
'', 0, 0,
'', 0, -1, 1);
1549 print $documentlink;
1550 } elseif ($line->doc_type ==
'bank') {
1551 print $objectstatic->getNomUrl(1);
1552 $bank_ref = strstr($line->doc_ref,
'-');
1553 print
' <span class="classfortooltip" title="'.dol_escape_htmltag($line->doc_ref).
'">'.
dol_escape_htmltag($bank_ref).
'</span>';
1555 print $line->doc_ref;
1565 if (!empty($arrayfields[
't.label_operation'][
'checked'])) {
1567 $doc_ref = preg_replace(
'/\(.*\)/',
'', $line->doc_ref);
1569 print
'<td class="small tdoverflowmax350 classfortooltip" title="'.dol_escape_htmltag($line->label_operation).
'">'.
dol_escape_htmltag($line->label_operation).
'</td>';
1571 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>';
1579 if (!empty($arrayfields[
't.lettering_code'][
'checked'])) {
1581 if (!empty($line->matching_general)) {
1582 $tooltipText .= $langs->trans(
'GeneralMatching');
1583 } elseif (empty($line->matching_general) && !empty($line->lettering_code)) {
1584 $tooltipText .= $langs->trans(
'AuxiliaryMatching');
1586 print
'<td class="center classfortooltip" title="'.$tooltipText.
'">';
1587 if ($type ==
'sub') {
1589 if (!empty($line->lettering_code)) {
1591 print
'<span class="badge badge-status1"><i class="fas fa-user fa-xs"></i> ' .
dol_escape_htmltag((
string) $line->lettering_code) .
'</span>';
1593 } elseif (!empty($line->matching_general) && !empty($line->lettering_code)) {
1594 print
'<span class="badge badge-status4"><i class="fas fa-book fa-xs"></i> ' .
dol_escape_htmltag((
string) $line->lettering_code) .
'</span>';
1601 if (!empty($arrayfields[
't.debit'][
'checked'])) {
1602 print
'<td class="right nowraponall amount">'.($line->debit != 0 ?
price($line->debit) :
'').
'</td>';
1609 $totalarray[
'val'][
'totaldebit'] += (float) $line->debit;
1613 if (!empty($arrayfields[
't.credit'][
'checked'])) {
1614 print
'<td class="right nowraponall amount">'.($line->credit != 0 ?
price($line->credit) :
'').
'</td>';
1621 $totalarray[
'val'][
'totalcredit'] += (float) $line->credit;
1625 if (!empty($arrayfields[
't.balance'][
'checked'])) {
1626 print
'<td class="right nowraponall amount">'.price(
price2num($sous_total_debit + $line->debit - $sous_total_credit - $line->credit,
'MT')).
'</td>';
1633 $totalarray[
'val'][
'totalbalance'] += $line->debit - $line->credit;
1637 if (!empty($arrayfields[
't.date_export'][
'checked'])) {
1638 print
'<td class="center">'.dol_print_date($line->date_export,
'dayhour').
'</td>';
1645 if (!empty($arrayfields[
't.date_validated'][
'checked'])) {
1646 print
'<td class="center">'.dol_print_date($line->date_validation,
'dayhour').
'</td>';
1653 if (!empty($arrayfields[
't.date_lim_reglement'][
'checked'])) {
1654 print
'<td class="center">'.dol_print_date($line->date_lim_reglement,
'day').
'</td>';
1660 if (!empty($arrayfields[
't.import_key'][
'checked'])) {
1661 print
'<td class="tdoverflowmax125" title="'.dol_escape_htmltag($line->import_key).
'">'.
dol_escape_htmltag($line->import_key).
"</td>\n";
1668 $parameters = array(
'arrayfields' => $arrayfields,
'obj' => $line);
1669 $reshook = $hookmanager->executeHooks(
'printFieldListValue', $parameters);
1670 print $hookmanager->resPrint;
1673 if (!
$conf->main_checkbox_left_column) {
1674 print
'<td class="nowraponall center">';
1675 if (($massactionbutton || $massaction) && $contextpage !=
'poslist') {
1677 if (in_array($line->id, $arrayofselected)) {
1680 print
'<input id="cb' . $line->id .
'" class="flat checkforselect" type="checkbox" name="toselect[]" value="' . $line->id .
'"' . ($selected ?
' checked="checked"' :
'') .
' />';
1689 $sous_total_debit += $line->debit;
1690 $sous_total_credit += $line->credit;
1697if ($num > 0 && $colspan > 0) {
1698 print
'<tr class="liste_total">';
1699 print
'<td class="right" colspan="'.$colspan.
'">'.$langs->trans(
"TotalForAccount").
' '.$accountg.
':</td>';
1700 print
'<td class="nowrap right">'.price(
price2num($sous_total_debit,
'MT')).
'</td>';
1701 print
'<td class="nowrap right">'.price(
price2num($sous_total_credit,
'MT')).
'</td>';
1702 if ($colspanend > 0) {
1703 print
'<td colspan="'.$colspanend.
'"></td>';
1708 $balance = $sous_total_debit - $sous_total_credit;
1709 print
'<tr class="liste_total">';
1710 print
'<td class="right" colspan="'.$colspan.
'">'.$langs->trans(
"Balance").
':</td>';
1712 print
'<td class="nowraponall right">';
1713 print
price(
price2num($sous_total_debit - $sous_total_credit,
'MT'));
1718 print
'<td class="nowraponall right">';
1719 print
price(
price2num($sous_total_credit - $sous_total_debit,
'MT'));
1722 if ($colspanend > 0) {
1723 print
'<td colspan="'.$colspanend.
'"></td>';
1730if (!empty($totalarray[
'val'][
'totaldebit'])) {
1733if (!empty($totalarray[
'val'][
'totalcredit'])) {
1734 $totalarray[
'val'][
'totalcredit'] = (float)
price2num($totalarray[
'val'][
'totalcredit'],
'MT');
1736if (!empty($totalarray[
'val'][
'totalbalance'])) {
1737 $totalarray[
'val'][
'totalbalance'] = (float)
price2num($totalarray[
'val'][
'totaldebit'] - $totalarray[
'val'][
'totalcredit'],
'MT');
1742include DOL_DOCUMENT_ROOT.
'/core/tpl/list_print_total.tpl.php';
1747 foreach ($arrayfields as $key => $val) {
1748 if (!empty($val[
'checked'])) {
1752 print
'<tr><td colspan="'.$colspan.
'"><span class="opacitymedium">'.$langs->trans(
"NoRecordFound").
'</span></td></tr>';
1755$parameters = array(
'arrayfields' => $arrayfields);
1756$reshook = $hookmanager->executeHooks(
'printFieldListFooter', $parameters, $object, $action);
1757print $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.
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.
price2num($amount, $rounding='', $option=0)
Function that return a number with universal decimal format (decimal separator is '.
dolGetButtonTitle($label, $helpText='', $iconClass='fa fa-file', $url='', $id='', $status=1, $params=array())
Function dolGetButtonTitle : this kind of buttons are used in title in list.
dol_get_fiche_end($notab=0)
Return tab footer of a card.
setEventMessage($mesgs, $style='mesgs', $noduplicate=0, $attop=0)
Set event message in dol_events session object.
dol_sanitizeFileName($str, $newstr='_', $unaccent=1, $includequotes=0, $allowdash=0)
Clean a string to use it as a file name.
price($amount, $form=0, $outlangs='', $trunc=1, $rounding=-1, $forcerounding=-1, $currency_code='')
Function to format a value into an amount for visual output Function used into PDF and HTML pages.
getDolGlobalInt($key, $default=0)
Return a Dolibarr global constant int value.
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.
dolGetButtonTitleSeparator($moreClass="")
Add space between dolGetButtonTitle.
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).
GETPOSTISSET($paramname)
Return true if we are in a context of submitting the parameter $paramname from a POST of a form.
getDolGlobalString($key, $default='')
Return a Dolibarr global constant string value.
isModEnabled($module)
Is Dolibarr module enabled.
info_admin($text, $infoonimgalt=0, $nodiv=0, $admin='1', $morecss='hideonsmartphone', $textfordropdown='', $picto='', $textonpictotooltip='', $cssfordropdown='info_admin')
Show information in HTML for admin users or standard users.
get_exdir($num, $level, $alpha, $withoutslash, $object, $modulepart='')
Return a path to have a the directory according to object where files are stored.
dol_getdate($timestamp, $fast=false, $forcetimezone='')
Return an array with locale date info.
dol_escape_htmltag($stringtoescape, $keepb=0, $keepn=0, $noescapetags='', $escapeonlyhtmltags=0, $cleanalsojavascript=0)
Returns text escaped for inclusion in HTML alt or title or value tags, or into values of HTML input f...
if(preg_match('/(crypted|dolcrypt):/i', $dolibarr_main_db_pass)||!empty($dolibarr_main_db_encrypted_pass)) $conf db type
'integer', 'integer:ObjectClass:PathToClass[:AddCreateButtonOrNot[:Filter[:Sortfield]]]',...
accessforbidden($message='', $printheader=1, $printfooter=1, $showonlymessage=0, $params=null)
Show a message to say access is forbidden and stop program.