31require
'../../main.inc.php';
32require_once DOL_DOCUMENT_ROOT.
'/core/lib/accounting.lib.php';
33require_once DOL_DOCUMENT_ROOT.
'/accountancy/class/lettering.class.php';
34require_once DOL_DOCUMENT_ROOT.
'/accountancy/class/bookkeeping.class.php';
35require_once DOL_DOCUMENT_ROOT.
'/accountancy/class/accountingjournal.class.php';
36require_once DOL_DOCUMENT_ROOT.
'/core/class/html.formfile.class.php';
37require_once DOL_DOCUMENT_ROOT.
'/core/class/html.formother.class.php';
38require_once DOL_DOCUMENT_ROOT.
'/core/class/html.formaccounting.class.php';
39require_once DOL_DOCUMENT_ROOT.
'/core/lib/date.lib.php';
40require_once DOL_DOCUMENT_ROOT.
'/core/lib/admin.lib.php';
43$langs->loadLangs(array(
"accountancy",
"compta"));
45$socid =
GETPOST(
'socid',
'int');
47$action =
GETPOST(
'action',
'aZ09');
48$massaction =
GETPOST(
'massaction',
'alpha');
49$confirm =
GETPOST(
'confirm',
'alpha');
50$toselect =
GETPOST(
'toselect',
'array');
51$contextpage =
GETPOST(
'contextpage',
'aZ') ?
GETPOST(
'contextpage',
'aZ') :
'bookkeepinglist';
52$search_mvt_num =
GETPOST(
'search_mvt_num',
'int');
53$search_doc_type =
GETPOST(
"search_doc_type",
'alpha');
54$search_doc_ref =
GETPOST(
"search_doc_ref",
'alpha');
55$search_date_startyear =
GETPOST(
'search_date_startyear',
'int');
56$search_date_startmonth =
GETPOST(
'search_date_startmonth',
'int');
57$search_date_startday =
GETPOST(
'search_date_startday',
'int');
58$search_date_endyear =
GETPOST(
'search_date_endyear',
'int');
59$search_date_endmonth =
GETPOST(
'search_date_endmonth',
'int');
60$search_date_endday =
GETPOST(
'search_date_endday',
'int');
61$search_date_start =
dol_mktime(0, 0, 0, $search_date_startmonth, $search_date_startday, $search_date_startyear);
62$search_date_end =
dol_mktime(23, 59, 59, $search_date_endmonth, $search_date_endday, $search_date_endyear);
64$search_date_creation_startyear =
GETPOST(
'search_date_creation_startyear',
'int');
65$search_date_creation_startmonth =
GETPOST(
'search_date_creation_startmonth',
'int');
66$search_date_creation_startday =
GETPOST(
'search_date_creation_startday',
'int');
67$search_date_creation_endyear =
GETPOST(
'search_date_creation_endyear',
'int');
68$search_date_creation_endmonth =
GETPOST(
'search_date_creation_endmonth',
'int');
69$search_date_creation_endday =
GETPOST(
'search_date_creation_endday',
'int');
70$search_date_creation_start =
dol_mktime(0, 0, 0, $search_date_creation_startmonth, $search_date_creation_startday, $search_date_creation_startyear);
71$search_date_creation_end =
dol_mktime(23, 59, 59, $search_date_creation_endmonth, $search_date_creation_endday, $search_date_creation_endyear);
72$search_date_modification_startyear =
GETPOST(
'search_date_modification_startyear',
'int');
73$search_date_modification_startmonth =
GETPOST(
'search_date_modification_startmonth',
'int');
74$search_date_modification_startday =
GETPOST(
'search_date_modification_startday',
'int');
75$search_date_modification_endyear =
GETPOST(
'search_date_modification_endyear',
'int');
76$search_date_modification_endmonth =
GETPOST(
'search_date_modification_endmonth',
'int');
77$search_date_modification_endday =
GETPOST(
'search_date_modification_endday',
'int');
78$search_date_modification_start =
dol_mktime(0, 0, 0, $search_date_modification_startmonth, $search_date_modification_startday, $search_date_modification_startyear);
79$search_date_modification_end =
dol_mktime(23, 59, 59, $search_date_modification_endmonth, $search_date_modification_endday, $search_date_modification_endyear);
80$search_date_export_startyear =
GETPOST(
'search_date_export_startyear',
'int');
81$search_date_export_startmonth =
GETPOST(
'search_date_export_startmonth',
'int');
82$search_date_export_startday =
GETPOST(
'search_date_export_startday',
'int');
83$search_date_export_endyear =
GETPOST(
'search_date_export_endyear',
'int');
84$search_date_export_endmonth =
GETPOST(
'search_date_export_endmonth',
'int');
85$search_date_export_endday =
GETPOST(
'search_date_export_endday',
'int');
86$search_date_export_start =
dol_mktime(0, 0, 0, $search_date_export_startmonth, $search_date_export_startday, $search_date_export_startyear);
87$search_date_export_end =
dol_mktime(23, 59, 59, $search_date_export_endmonth, $search_date_export_endday, $search_date_export_endyear);
88$search_date_validation_startyear =
GETPOST(
'search_date_validation_startyear',
'int');
89$search_date_validation_startmonth =
GETPOST(
'search_date_validation_startmonth',
'int');
90$search_date_validation_startday =
GETPOST(
'search_date_validation_startday',
'int');
91$search_date_validation_endyear =
GETPOST(
'search_date_validation_endyear',
'int');
92$search_date_validation_endmonth =
GETPOST(
'search_date_validation_endmonth',
'int');
93$search_date_validation_endday =
GETPOST(
'search_date_validation_endday',
'int');
94$search_date_validation_start =
dol_mktime(0, 0, 0, $search_date_validation_startmonth, $search_date_validation_startday, $search_date_validation_startyear);
95$search_date_validation_end =
dol_mktime(23, 59, 59, $search_date_validation_endmonth, $search_date_validation_endday, $search_date_validation_endyear);
96$search_import_key =
GETPOST(
"search_import_key",
'alpha');
98$search_account_category =
GETPOST(
'search_account_category',
'int');
100$search_accountancy_code =
GETPOST(
"search_accountancy_code",
'alpha');
101$search_accountancy_code_start =
GETPOST(
'search_accountancy_code_start',
'alpha');
102if ($search_accountancy_code_start == - 1) {
103 $search_accountancy_code_start =
'';
105$search_accountancy_code_end =
GETPOST(
'search_accountancy_code_end',
'alpha');
106if ($search_accountancy_code_end == - 1) {
107 $search_accountancy_code_end =
'';
110$search_accountancy_aux_code =
GETPOST(
"search_accountancy_aux_code",
'alpha');
111$search_accountancy_aux_code_start =
GETPOST(
'search_accountancy_aux_code_start',
'alpha');
112if ($search_accountancy_aux_code_start == - 1) {
113 $search_accountancy_aux_code_start =
'';
115$search_accountancy_aux_code_end =
GETPOST(
'search_accountancy_aux_code_end',
'alpha');
116if ($search_accountancy_aux_code_end == - 1) {
117 $search_accountancy_aux_code_end =
'';
119$search_mvt_label =
GETPOST(
'search_mvt_label',
'alpha');
120$search_direction =
GETPOST(
'search_direction',
'alpha');
121$search_debit =
GETPOST(
'search_debit',
'alpha');
122$search_credit =
GETPOST(
'search_credit',
'alpha');
123$search_ledger_code =
GETPOST(
'search_ledger_code',
'array');
124$search_lettering_code =
GETPOST(
'search_lettering_code',
'alpha');
125$search_not_reconciled =
GETPOST(
'search_not_reconciled',
'alpha');
128$limit =
GETPOST(
'limit',
'int') ?
GETPOST(
'limit',
'int') : (empty($conf->global->ACCOUNTING_LIMIT_LIST_VENTILATION) ? $conf->liste_limit : $conf->global->ACCOUNTING_LIMIT_LIST_VENTILATION);
129$sortfield =
GETPOST(
'sortfield',
'aZ09comma');
130$sortorder =
GETPOST(
'sortorder',
'aZ09comma');
131$optioncss =
GETPOST(
'optioncss',
'alpha');
132$page = GETPOSTISSET(
'pageplusone') ? (
GETPOST(
'pageplusone') - 1) :
GETPOST(
"page",
'int');
133if (empty($page) || $page < 0) {
136$offset = $limit * $page;
137$pageprev = $page - 1;
138$pagenext = $page + 1;
139if ($sortorder ==
"") {
142if ($sortfield ==
"") {
143 $sortfield =
"t.piece_num,t.rowid";
148$hookmanager->initHooks(array(
'bookkeepinglist'));
151$form =
new Form($db);
153if (!in_array($action, array(
'delmouv',
'delmouvconfirm')) && !GETPOSTISSET(
'begin') && !GETPOSTISSET(
'formfilteraction') &&
GETPOST(
'page',
'int') ==
'' && !
GETPOST(
'noreset',
'int') && $user->hasRight(
'accounting',
'mouvements',
'export')) {
154 if (empty($search_date_start) && empty($search_date_end) && !GETPOSTISSET(
'restore_lastsearch_values') && !
GETPOST(
'search_accountancy_code_start')) {
155 $query =
"SELECT date_start, date_end from ".MAIN_DB_PREFIX.
"accounting_fiscalyear ";
156 $query .=
" where date_start < '".$db->idate(
dol_now()).
"' and date_end > '".$db->idate(
dol_now()).
"' limit 1";
157 $res = $db->query($query);
159 if ($res->num_rows > 0) {
160 $fiscalYear = $db->fetch_object($res);
161 $search_date_start = strtotime($fiscalYear->date_start);
162 $search_date_end = strtotime($fiscalYear->date_end);
164 $month_start = ($conf->global->SOCIETE_FISCAL_MONTH_START ? ($conf->global->SOCIETE_FISCAL_MONTH_START) : 1);
169 $year_end = $year_start + 1;
170 $month_end = $month_start - 1;
171 if ($month_end < 1) {
175 $search_date_start =
dol_mktime(0, 0, 0, $month_start, 1, $year_start);
183 't.piece_num'=>array(
'label'=>$langs->trans(
"TransactionNumShort"),
'checked'=>1),
184 't.code_journal'=>array(
'label'=>$langs->trans(
"Codejournal"),
'checked'=>1),
185 't.doc_date'=>array(
'label'=>$langs->trans(
"Docdate"),
'checked'=>1),
186 't.doc_ref'=>array(
'label'=>$langs->trans(
"Piece"),
'checked'=>1),
187 't.numero_compte'=>array(
'label'=>$langs->trans(
"AccountAccountingShort"),
'checked'=>1),
188 't.subledger_account'=>array(
'label'=>$langs->trans(
"SubledgerAccount"),
'checked'=>1),
189 't.label_operation'=>array(
'label'=>$langs->trans(
"Label"),
'checked'=>1),
190 't.debit'=>array(
'label'=>$langs->trans(
"AccountingDebit"),
'checked'=>1),
191 't.credit'=>array(
'label'=>$langs->trans(
"AccountingCredit"),
'checked'=>1),
192 't.lettering_code'=>array(
'label'=>$langs->trans(
"LetteringCode"),
'checked'=>1),
193 't.date_creation'=>array(
'label'=>$langs->trans(
"DateCreation"),
'checked'=>0),
194 't.tms'=>array(
'label'=>$langs->trans(
"DateModification"),
'checked'=>0),
195 't.date_export'=>array(
'label'=>$langs->trans(
"DateExport"),
'checked'=>0),
196 't.date_validated'=>array(
'label'=>$langs->trans(
"DateValidationAndLock"),
'checked'=>0,
'enabled'=>!
getDolGlobalString(
"ACCOUNTANCY_DISABLE_CLOSURE_LINE_BY_LINE")),
197 't.import_key'=>array(
'label'=>$langs->trans(
"ImportId"),
'checked'=>0,
'position'=>1100),
200if (empty($conf->global->ACCOUNTING_ENABLE_LETTERING)) {
201 unset($arrayfields[
't.lettering_code']);
206if (!isModEnabled(
'accounting')) {
209if ($user->socid > 0) {
212if (!$user->hasRight(
'accounting',
'mouvements',
'lire')) {
223if (
GETPOST(
'cancel',
'alpha')) {
224 $action =
'list'; $massaction =
'';
226if (!
GETPOST(
'confirmmassaction',
'alpha') && $massaction !=
'preunletteringauto' && $massaction !=
'preunletteringmanual' && $massaction !=
'predeletebookkeepingwriting') {
230$parameters = array(
'socid'=>$socid);
231$reshook = $hookmanager->executeHooks(
'doActions', $parameters, $object, $action);
236if (empty($reshook)) {
237 include DOL_DOCUMENT_ROOT.
'/core/actions_changeselectedfields.inc.php';
239 if (
GETPOST(
'button_removefilter_x',
'alpha') ||
GETPOST(
'button_removefilter.x',
'alpha') ||
GETPOST(
'button_removefilter',
'alpha')) {
240 $search_mvt_num =
'';
241 $search_doc_type =
'';
242 $search_doc_ref =
'';
243 $search_doc_date =
'';
244 $search_account_category =
'';
245 $search_accountancy_code =
'';
246 $search_accountancy_code_start =
'';
247 $search_accountancy_code_end =
'';
248 $search_accountancy_aux_code =
'';
249 $search_accountancy_aux_code_start =
'';
250 $search_accountancy_aux_code_end =
'';
251 $search_mvt_label =
'';
252 $search_direction =
'';
253 $search_ledger_code = array();
254 $search_date_startyear =
'';
255 $search_date_startmonth =
'';
256 $search_date_startday =
'';
257 $search_date_endyear =
'';
258 $search_date_endmonth =
'';
259 $search_date_endday =
'';
260 $search_date_start =
'';
261 $search_date_end =
'';
262 $search_date_creation_startyear =
'';
263 $search_date_creation_startmonth =
'';
264 $search_date_creation_startday =
'';
265 $search_date_creation_endyear =
'';
266 $search_date_creation_endmonth =
'';
267 $search_date_creation_endday =
'';
268 $search_date_creation_start =
'';
269 $search_date_creation_end =
'';
270 $search_date_modification_startyear =
'';
271 $search_date_modification_startmonth =
'';
272 $search_date_modification_startday =
'';
273 $search_date_modification_endyear =
'';
274 $search_date_modification_endmonth =
'';
275 $search_date_modification_endday =
'';
276 $search_date_modification_start =
'';
277 $search_date_modification_end =
'';
278 $search_date_export_startyear =
'';
279 $search_date_export_startmonth =
'';
280 $search_date_export_startday =
'';
281 $search_date_export_endyear =
'';
282 $search_date_export_endmonth =
'';
283 $search_date_export_endday =
'';
284 $search_date_export_start =
'';
285 $search_date_export_end =
'';
286 $search_date_validation_startyear =
'';
287 $search_date_validation_startmonth =
'';
288 $search_date_validation_startday =
'';
289 $search_date_validation_endyear =
'';
290 $search_date_validation_endmonth =
'';
291 $search_date_validation_endday =
'';
292 $search_date_validation_start =
'';
293 $search_date_validation_end =
'';
296 $search_lettering_code =
'';
297 $search_not_reconciled =
'';
298 $search_import_key =
'';
304 if (!empty($search_date_start)) {
305 $filter[
't.doc_date>='] = $search_date_start;
307 $param .=
'&search_date_startmonth='.urlencode($tmp[
'mon']).
'&search_date_startday='.urlencode($tmp[
'mday']).
'&search_date_startyear='.urlencode($tmp[
'year']);
309 if (!empty($search_date_end)) {
310 $filter[
't.doc_date<='] = $search_date_end;
312 $param .=
'&search_date_endmonth='.urlencode($tmp[
'mon']).
'&search_date_endday='.urlencode($tmp[
'mday']).
'&search_date_endyear='.urlencode($tmp[
'year']);
314 if (!empty($search_doc_date)) {
315 $filter[
't.doc_date'] = $search_doc_date;
317 $param .=
'&doc_datemonth='.urlencode($tmp[
'mon']).
'&doc_dateday='.urlencode($tmp[
'mday']).
'&doc_dateyear='.urlencode($tmp[
'year']);
319 if (!empty($search_doc_type)) {
320 $filter[
't.doc_type'] = $search_doc_type;
321 $param .=
'&search_doc_type='.urlencode($search_doc_type);
323 if (!empty($search_doc_ref)) {
324 $filter[
't.doc_ref'] = $search_doc_ref;
325 $param .=
'&search_doc_ref='.urlencode($search_doc_ref);
327 if ($search_account_category !=
'-1' && !empty($search_account_category)) {
328 require_once DOL_DOCUMENT_ROOT.
'/accountancy/class/accountancycategory.class.php';
331 $listofaccountsforgroup = $accountingcategory->getCptsCat(0,
'fk_accounting_category = '.((
int) $search_account_category));
332 $listofaccountsforgroup2 = array();
333 if (is_array($listofaccountsforgroup)) {
334 foreach ($listofaccountsforgroup as $tmpval) {
335 $listofaccountsforgroup2[] =
"'".$db->escape($tmpval[
'id']).
"'";
338 $filter[
't.search_accounting_code_in'] = join(
',', $listofaccountsforgroup2);
339 $param .=
'&search_account_category='.urlencode($search_account_category);
341 if (!empty($search_accountancy_code)) {
342 $filter[
't.numero_compte'] = $search_accountancy_code;
343 $param .=
'&search_accountancy_code='.urlencode($search_accountancy_code);
345 if (!empty($search_accountancy_code_start)) {
346 $filter[
't.numero_compte>='] = $search_accountancy_code_start;
347 $param .=
'&search_accountancy_code_start='.urlencode($search_accountancy_code_start);
349 if (!empty($search_accountancy_code_end)) {
350 $filter[
't.numero_compte<='] = $search_accountancy_code_end;
351 $param .=
'&search_accountancy_code_end='.urlencode($search_accountancy_code_end);
353 if (!empty($search_accountancy_aux_code)) {
354 $filter[
't.subledger_account'] = $search_accountancy_aux_code;
355 $param .=
'&search_accountancy_aux_code='.urlencode($search_accountancy_aux_code);
357 if (!empty($search_accountancy_aux_code_start)) {
358 $filter[
't.subledger_account>='] = $search_accountancy_aux_code_start;
359 $param .=
'&search_accountancy_aux_code_start='.urlencode($search_accountancy_aux_code_start);
361 if (!empty($search_accountancy_aux_code_end)) {
362 $filter[
't.subledger_account<='] = $search_accountancy_aux_code_end;
363 $param .=
'&search_accountancy_aux_code_end='.urlencode($search_accountancy_aux_code_end);
365 if (!empty($search_mvt_label)) {
366 $filter[
't.label_operation'] = $search_mvt_label;
367 $param .=
'&search_mvt_label='.urlencode($search_mvt_label);
369 if (!empty($search_direction)) {
370 $filter[
't.sens'] = $search_direction;
371 $param .=
'&search_direction='.urlencode($search_direction);
373 if (!empty($search_ledger_code)) {
374 $filter[
't.code_journal'] = $search_ledger_code;
375 foreach ($search_ledger_code as $code) {
376 $param .=
'&search_ledger_code[]='.urlencode($code);
379 if (!empty($search_mvt_num)) {
380 $filter[
't.piece_num'] = $search_mvt_num;
381 $param .=
'&search_mvt_num='.urlencode($search_mvt_num);
383 if (!empty($search_date_creation_start)) {
384 $filter[
't.date_creation>='] = $search_date_creation_start;
386 $param .=
'&search_date_creation_startmonth='.urlencode($tmp[
'mon']).
'&search_date_creation_startday='.urlencode($tmp[
'mday']).
'&search_date_creation_startyear='.urlencode($tmp[
'year']);
388 if (!empty($search_date_creation_end)) {
389 $filter[
't.date_creation<='] = $search_date_creation_end;
391 $param .=
'&search_date_creation_endmonth='.urlencode($tmp[
'mon']).
'&search_date_creation_endday='.urlencode($tmp[
'mday']).
'&search_date_creation_endyear='.urlencode($tmp[
'year']);
393 if (!empty($search_date_modification_start)) {
394 $filter[
't.tms>='] = $search_date_modification_start;
395 $tmp =
dol_getdate($search_date_modification_start);
396 $param .=
'&search_date_modification_startmonth='.urlencode($tmp[
'mon']).
'&search_date_modification_startday='.urlencode($tmp[
'mday']).
'&search_date_modification_startyear='.urlencode($tmp[
'year']);
398 if (!empty($search_date_modification_end)) {
399 $filter[
't.tms<='] = $search_date_modification_end;
401 $param .=
'&search_date_modification_endmonth='.urlencode($tmp[
'mon']).
'&search_date_modification_endday='.urlencode($tmp[
'mday']).
'&search_date_modification_endyear='.urlencode($tmp[
'year']);
403 if (!empty($search_date_export_start)) {
404 $filter[
't.date_export>='] = $search_date_export_start;
406 $param .=
'&search_date_export_startmonth='.urlencode($tmp[
'mon']).
'&search_date_export_startday='.urlencode($tmp[
'mday']).
'&search_date_export_startyear='.urlencode($tmp[
'year']);
408 if (!empty($search_date_export_end)) {
409 $filter[
't.date_export<='] = $search_date_export_end;
411 $param .=
'&search_date_export_endmonth='.urlencode($tmp[
'mon']).
'&search_date_export_endday='.urlencode($tmp[
'mday']).
'&search_date_export_endyear='.urlencode($tmp[
'year']);
413 if (!empty($search_date_validation_start)) {
414 $filter[
't.date_validated>='] = $search_date_validation_start;
416 $param .=
'&search_date_validation_startmonth='.urlencode($tmp[
'mon']).
'&search_date_validation_startday='.urlencode($tmp[
'mday']).
'&search_date_validation_startyear='.urlencode($tmp[
'year']);
418 if (!empty($search_date_validation_end)) {
419 $filter[
't.date_validated<='] = $search_date_validation_end;
421 $param .=
'&search_date_validation_endmonth='.urlencode($tmp[
'mon']).
'&search_date_validation_endday='.urlencode($tmp[
'mday']).
'&search_date_validation_endyear='.urlencode($tmp[
'year']);
423 if (!empty($search_debit)) {
424 $filter[
't.debit'] = $search_debit;
425 $param .=
'&search_debit='.urlencode($search_debit);
427 if (!empty($search_credit)) {
428 $filter[
't.credit'] = $search_credit;
429 $param .=
'&search_credit='.urlencode($search_credit);
431 if (!empty($search_lettering_code)) {
432 $filter[
't.lettering_code'] = $search_lettering_code;
433 $param .=
'&search_lettering_code='.urlencode($search_lettering_code);
435 if (!empty($search_not_reconciled)) {
436 $filter[
't.reconciled_option'] = $search_not_reconciled;
437 $param .=
'&search_not_reconciled='.urlencode($search_not_reconciled);
439 if (!empty($search_import_key)) {
440 $filter[
't.import_key'] = $search_import_key;
441 $param .=
'&search_import_key='.urlencode($search_import_key);
445 $objectclass =
'Bookkeeping';
446 $objectlabel =
'Bookkeeping';
447 $permissiontoread = $user->hasRight(
'societe',
'lire');
448 $permissiontodelete = $user->hasRight(
'societe',
'supprimer');
449 $permissiontoadd = $user->hasRight(
'societe',
'creer');
450 $uploaddir = $conf->societe->dir_output;
451 include DOL_DOCUMENT_ROOT.
'/core/actions_massactions.inc.php';
453 if (!$error && $action ==
'deletebookkeepingwriting' && $confirm ==
"yes" && $user->hasRight(
'accounting',
'mouvements',
'supprimer')) {
458 $nb_lettering = $lettering->bookkeepingLetteringAll($toselect,
true);
459 if ($nb_lettering < 0) {
467 foreach ($toselect as $toselectid) {
468 $result = $object->fetch($toselectid);
469 if ($result > 0 && (!isset($object->date_validation) || $object->date_validation ===
'')) {
470 $result = $object->deleteMvtNum($object->piece_num);
478 } elseif ($result < 0) {
482 } elseif (isset($object->date_validation) && $object->date_validation !=
'') {
483 setEventMessages($langs->trans(
"ValidatedRecordWhereFound"),
null,
'errors');
496 } elseif ($nbok > 0) {
502 header(
"Location: ".$_SERVER[
"PHP_SELF"].
"?noreset=1".($param ?
'&'.$param :
''));
510 if (!$error &&
getDolGlobalInt(
'ACCOUNTING_ENABLE_LETTERING') && $user->hasRight(
'accounting',
'mouvements',
'creer')) {
511 if ($massaction ==
'letteringauto') {
513 $nb_lettering = $lettering->bookkeepingLetteringAll($toselect);
514 if ($nb_lettering < 0) {
517 $nb_lettering = max(0, abs($nb_lettering) - 2);
518 } elseif ($nb_lettering == 0) {
520 setEventMessages($langs->trans(
'AccountancyNoLetteringModified'), array(),
'mesgs');
522 if ($nb_lettering == 1) {
523 setEventMessages($langs->trans(
'AccountancyOneLetteringModifiedSuccessfully'), array(),
'mesgs');
524 } elseif ($nb_lettering > 1) {
525 setEventMessages($langs->trans(
'AccountancyLetteringModifiedSuccessfully', $nb_lettering), array(),
'mesgs');
529 header(
'Location: ' . $_SERVER[
'PHP_SELF'] .
'?noreset=1' . $param);
532 } elseif ($massaction ==
'letteringmanual') {
534 $result = $lettering->updateLettering($toselect);
538 setEventMessages($langs->trans(
'AccountancyOneLetteringModifiedSuccessfully'), array(),
'mesgs');
539 header(
'Location: ' . $_SERVER[
'PHP_SELF'] .
'?noreset=1' . $param);
542 } elseif ($action ==
'unletteringauto' && $confirm ==
"yes") {
544 $nb_lettering = $lettering->bookkeepingLetteringAll($toselect,
true);
545 if ($nb_lettering < 0) {
548 $nb_lettering = max(0, abs($nb_lettering) - 2);
549 } elseif ($nb_lettering == 0) {
551 setEventMessages($langs->trans(
'AccountancyNoUnletteringModified'), array(),
'mesgs');
553 if ($nb_lettering == 1) {
554 setEventMessages($langs->trans(
'AccountancyOneUnletteringModifiedSuccessfully'), array(),
'mesgs');
555 } elseif ($nb_lettering > 1) {
556 setEventMessages($langs->trans(
'AccountancyUnletteringModifiedSuccessfully', $nb_lettering), array(),
'mesgs');
560 header(
'Location: ' . $_SERVER[
'PHP_SELF'] .
'?noreset=1' . $param);
563 } elseif ($action ==
'unletteringmanual' && $confirm ==
"yes") {
565 $nb_lettering = $lettering->deleteLettering($toselect);
569 setEventMessages($langs->trans(
'AccountancyOneUnletteringModifiedSuccessfully'), array(),
'mesgs');
570 header(
'Location: ' . $_SERVER[
'PHP_SELF'] .
'?noreset=1' . $param);
583$sql .=
" t.doc_date,";
584$sql .=
" t.doc_type,";
585$sql .=
" t.doc_ref,";
587$sql .=
" t.fk_docdet,";
588$sql .=
" t.thirdparty_code,";
589$sql .=
" t.subledger_account,";
590$sql .=
" t.subledger_label,";
591$sql .=
" t.numero_compte,";
592$sql .=
" t.label_compte,";
593$sql .=
" t.label_operation,";
596$sql .=
" t.lettering_code,";
597$sql .=
" t.montant as amount,";
599$sql .=
" t.fk_user_author,";
600$sql .=
" t.import_key,";
601$sql .=
" t.code_journal,";
602$sql .=
" t.journal_label,";
603$sql .=
" t.piece_num,";
604$sql .=
" t.date_creation,";
605$sql .=
" t.tms as date_modification,";
606$sql .=
" t.date_export,";
607$sql .=
" t.date_validated as date_validation,";
608$sql .=
" t.import_key";
612$sql .=
' FROM '.MAIN_DB_PREFIX.$object->table_element.
' as t';
615if (count($filter) > 0) {
616 foreach ($filter as $key => $value) {
617 if ($key ==
't.doc_date') {
618 $sqlwhere[] = $key.
"='".$db->idate($value).
"'";
619 } elseif ($key ==
't.doc_date>=' || $key ==
't.doc_date<=') {
620 $sqlwhere[] = $key.
"'".$db->idate($value).
"'";
621 } elseif ($key ==
't.numero_compte>=' || $key ==
't.numero_compte<=' || $key ==
't.subledger_account>=' || $key ==
't.subledger_account<=') {
622 $sqlwhere[] = $key.
"'".$db->escape($value).
"'";
623 } elseif ($key ==
't.fk_doc' || $key ==
't.fk_docdet' || $key ==
't.piece_num') {
624 $sqlwhere[] = $key.
'='.((int) $value);
625 } elseif ($key ==
't.subledger_account' || $key ==
't.numero_compte') {
626 $sqlwhere[] = $key.
" LIKE '".$db->escape($value).
"%'";
627 } elseif ($key ==
't.subledger_account') {
629 } elseif ($key ==
't.date_creation>=' || $key ==
't.date_creation<=') {
630 $sqlwhere[] = $key.
"'".$db->idate($value).
"'";
631 } elseif ($key ==
't.tms>=' || $key ==
't.tms<=') {
632 $sqlwhere[] = $key.
"'".$db->idate($value).
"'";
633 } elseif ($key ==
't.date_export>=' || $key ==
't.date_export<=') {
634 $sqlwhere[] = $key.
"'".$db->idate($value).
"'";
635 } elseif ($key ==
't.date_validated>=' || $key ==
't.date_validated<=') {
636 $sqlwhere[] = $key.
"'".$db->idate($value).
"'";
637 } elseif ($key ==
't.credit' || $key ==
't.debit') {
639 } elseif ($key ==
't.reconciled_option') {
640 $sqlwhere[] =
't.lettering_code IS NULL';
641 } elseif ($key ==
't.code_journal' && !empty($value)) {
642 if (is_array($value)) {
643 $sqlwhere[] =
natural_search(
"t.code_journal", join(
',', $value), 3, 1);
647 } elseif ($key ==
't.search_accounting_code_in' && !empty($value)) {
648 $sqlwhere[] =
't.numero_compte IN ('.$db->sanitize($value, 1).
')';
654$sql .=
' WHERE t.entity IN ('.getEntity(
'accountancy').
')';
656if (count($sqlwhere) > 0) {
657 $sql .=
' AND '.implode(
' AND ', $sqlwhere);
668$title_page = $langs->trans(
"Operations").
' - '.$langs->trans(
"Journals");
671$nbtotalofrecords =
'';
674 $sqlforcount = preg_replace(
'/^'.preg_quote($sqlfields,
'/').
'/',
'SELECT COUNT(*) as nbtotalofrecords', $sql);
675 $sqlforcount = preg_replace(
'/GROUP BY .*$/',
'', $sqlforcount);
676 $resql = $db->query($sqlforcount);
678 $objforcount = $db->fetch_object($resql);
679 $nbtotalofrecords = $objforcount->nbtotalofrecords;
684 if (($page * $limit) > $nbtotalofrecords) {
692$sql .= $db->order($sortfield, $sortorder);
694 $sql .= $db->plimit($limit + 1, $offset);
697$resql = $db->query($sql);
703$num = $db->num_rows($resql);
705$arrayofselected = is_array($toselect) ? $toselect : array();
718if (!empty($contextpage) && $contextpage != $_SERVER[
"PHP_SELF"]) {
719 $param .=
'&contextpage='.urlencode($contextpage);
721if ($limit > 0 && $limit != $conf->liste_limit) {
722 $param .=
'&limit='.((int) $limit);
726$arrayofmassactions = array();
727if (
getDolGlobalInt(
'ACCOUNTING_ENABLE_LETTERING') && $user->hasRight(
'accounting',
'mouvements',
'creer')) {
728 $arrayofmassactions[
'letteringauto'] =
img_picto(
'',
'check',
'class="pictofixedwidth"') . $langs->trans(
'LetteringAuto');
729 $arrayofmassactions[
'preunletteringauto'] =
img_picto(
'',
'uncheck',
'class="pictofixedwidth"') . $langs->trans(
'UnletteringAuto');
730 $arrayofmassactions[
'letteringmanual'] =
img_picto(
'',
'check',
'class="pictofixedwidth"') . $langs->trans(
'LetteringManual');
731 $arrayofmassactions[
'preunletteringmanual'] =
img_picto(
'',
'uncheck',
'class="pictofixedwidth"') . $langs->trans(
'UnletteringManual');
733if ($user->hasRight(
'accounting',
'mouvements',
'supprimer')) {
734 $arrayofmassactions[
'predeletebookkeepingwriting'] =
img_picto(
'',
'delete',
'class="pictofixedwidth"').$langs->trans(
"Delete");
736if (
GETPOST(
'nomassaction',
'int') || in_array($massaction, array(
'preunletteringauto',
'preunletteringmanual',
'predeletebookkeepingwriting'))) {
737 $arrayofmassactions = array();
739$massactionbutton = $form->selectMassAction($massaction, $arrayofmassactions);
741print
'<form method="POST" id="searchFormList" action="'.$_SERVER[
"PHP_SELF"].
'">';
742print
'<input type="hidden" name="token" value="'.newToken().
'">';
743print
'<input type="hidden" name="action" value="list">';
744if ($optioncss !=
'') {
745 print
'<input type="hidden" name="optioncss" value="'.urlencode($optioncss).
'">';
747print
'<input type="hidden" name="formfilteraction" id="formfilteraction" value="list">';
748print
'<input type="hidden" name="sortfield" value="'.$sortfield.
'">';
749print
'<input type="hidden" name="sortorder" value="'.$sortorder.
'">';
750print
'<input type="hidden" name="contextpage" value="'.$contextpage.
'">';
753 $buttonLabel = $langs->trans(
"ExportFilteredList");
755 $buttonLabel = $langs->trans(
"ExportList");
758$parameters = array(
'param' => $param);
759$reshook = $hookmanager->executeHooks(
'addMoreActionsButtonsList', $parameters, $object, $action);
764$newcardbutton = empty($hookmanager->resPrint) ?
'' : $hookmanager->resPrint;
766if (empty($reshook)) {
767 $newcardbutton .=
dolGetButtonTitle($langs->trans(
'ViewFlatList'),
'',
'fa fa-list paddingleft imgforviewmode', DOL_URL_ROOT.
'/accountancy/bookkeeping/list.php?'.$param,
'', 1, array(
'morecss' =>
'marginleftonly btnTitleSelected'));
768 $newcardbutton .=
dolGetButtonTitle($langs->trans(
'GroupByAccountAccounting'),
'',
'fa fa-stream paddingleft imgforviewmode', DOL_URL_ROOT.
'/accountancy/bookkeeping/listbyaccount.php?'.$param,
'', 1, array(
'morecss' =>
'marginleftonly'));
769 $newcardbutton .=
dolGetButtonTitle($langs->trans(
'GroupBySubAccountAccounting'),
'',
'fa fa-align-left vmirror paddingleft imgforviewmode', DOL_URL_ROOT.
'/accountancy/bookkeeping/listbyaccount.php?type=sub'.$param,
'', 1, array(
'morecss' =>
'marginleftonly'));
771 $url =
'./card.php?action=create';
772 if (!empty($socid)) {
773 $url .=
'&socid='.$socid;
775 $newcardbutton .=
dolGetButtonTitle($langs->trans(
'NewAccountingMvt'),
'',
'fa fa-plus-circle paddingleft', $url,
'', $user->hasRight(
'accounting',
'mouvements',
'creer'));
778print_barre_liste($title_page, $page, $_SERVER[
"PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords,
'title_accountancy', 0, $newcardbutton,
'', $limit, 0, 0, 1);
780if ($massaction ==
'preunletteringauto') {
781 print $form->formconfirm($_SERVER[
"PHP_SELF"], $langs->trans(
"ConfirmMassUnletteringAuto"), $langs->trans(
"ConfirmMassUnletteringQuestion", count($toselect)),
"unletteringauto",
null,
'', 0, 200, 500, 1);
782} elseif ($massaction ==
'preunletteringmanual') {
783 print $form->formconfirm($_SERVER[
"PHP_SELF"], $langs->trans(
"ConfirmMassUnletteringManual"), $langs->trans(
"ConfirmMassUnletteringQuestion", count($toselect)),
"unletteringmanual",
null,
'', 0, 200, 500, 1);
784} elseif ($massaction ==
'predeletebookkeepingwriting') {
785 print $form->formconfirm($_SERVER[
"PHP_SELF"], $langs->trans(
"ConfirmMassDeleteBookkeepingWriting"), $langs->trans(
"ConfirmMassDeleteBookkeepingWritingQuestion", count($toselect)),
"deletebookkeepingwriting",
null,
'', 0, 200, 500, 1);
792include DOL_DOCUMENT_ROOT.
'/core/tpl/massactions_pre.tpl.php';
794$varpage = empty($contextpage) ? $_SERVER[
"PHP_SELF"] : $contextpage;
795$selectedfields = $form->multiSelectArrayWithCheckbox(
'selectedfields', $arrayfields, $varpage,
getDolGlobalString(
'MAIN_CHECKBOX_LEFT_COLUMN',
''));
796if ($massactionbutton && $contextpage !=
'poslist') {
797 $selectedfields .= $form->showCheckAddButtons(
'checkforselect', 1);
801$moreforfilter .=
'<div class="divsearchfield">';
802$moreforfilter .= $langs->trans(
'AccountingCategory').
': ';
803$moreforfilter .=
'<div class="nowrap inline-block">';
804$moreforfilter .= $formaccounting->select_accounting_category($search_account_category,
'search_account_category', 1, 0, 0, 0);
805$moreforfilter .=
'</div>';
806$moreforfilter .=
'</div>';
808$parameters = array();
809$reshook = $hookmanager->executeHooks(
'printFieldPreListTitle', $parameters, $object, $action);
810if (empty($reshook)) {
811 $moreforfilter .= $hookmanager->resPrint;
813 $moreforfilter = $hookmanager->resPrint;
816print
'<div class="liste_titre liste_titre_bydiv centpercent">';
820print
'<div class="div-table-responsive">';
821print
'<table class="tagtable liste'.($moreforfilter ?
" listwithfilterbefore" :
"").
'">';
824print
'<tr class="liste_titre_filter">';
827 print
'<td class="liste_titre center">';
828 $searchpicto = $form->showFilterButtons(
'left');
833if (!empty($arrayfields[
't.piece_num'][
'checked'])) {
834 print
'<td class="liste_titre"><input type="text" name="search_mvt_num" size="6" value="'.dol_escape_htmltag($search_mvt_num).
'"></td>';
837if (!empty($arrayfields[
't.code_journal'][
'checked'])) {
838 print
'<td class="liste_titre center">';
839 print $formaccounting->multi_select_journal($search_ledger_code,
'search_ledger_code', 0, 1, 1, 1,
'small maxwidth75');
843if (!empty($arrayfields[
't.doc_date'][
'checked'])) {
844 print
'<td class="liste_titre center">';
845 print
'<div class="nowrap">';
846 print $form->selectDate($search_date_start ? $search_date_start : -1,
'search_date_start', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
"From"));
848 print
'<div class="nowrap">';
849 print $form->selectDate($search_date_end ? $search_date_end : -1,
'search_date_end', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
"to"));
854if (!empty($arrayfields[
't.doc_ref'][
'checked'])) {
855 print
'<td class="liste_titre"><input type="text" name="search_doc_ref" size="8" value="'.dol_escape_htmltag($search_doc_ref).
'"></td>';
858if (!empty($arrayfields[
't.numero_compte'][
'checked'])) {
859 print
'<td class="liste_titre">';
860 print
'<div class="nowrap">';
861 print $formaccounting->select_account($search_accountancy_code_start,
'search_accountancy_code_start', $langs->trans(
'From'), array(), 1, 1,
'maxwidth150',
'account');
863 print
'<div class="nowrap">';
864 print $formaccounting->select_account($search_accountancy_code_end,
'search_accountancy_code_end', $langs->trans(
'to'), array(), 1, 1,
'maxwidth150',
'account');
869if (!empty($arrayfields[
't.subledger_account'][
'checked'])) {
870 print
'<td class="liste_titre">';
873 if (!empty($conf->global->ACCOUNTANCY_COMBO_FOR_AUX)) {
874 print
'<div class="nowrap">';
876 print $formaccounting->select_auxaccount($search_accountancy_aux_code_start,
'search_accountancy_aux_code_start', $langs->trans(
'From'),
'maxwidth250',
'subledgeraccount');
878 print
'<div class="nowrap">';
879 print $formaccounting->select_auxaccount($search_accountancy_aux_code_end,
'search_accountancy_aux_code_end', $langs->trans(
'to'),
'maxwidth250',
'subledgeraccount');
882 print
'<input type="text" class="maxwidth75" name="search_accountancy_aux_code" value="'.dol_escape_htmltag($search_accountancy_aux_code).
'">';
887if (!empty($arrayfields[
't.label_operation'][
'checked'])) {
888 print
'<td class="liste_titre">';
889 print
'<input type="text" size="7" class="flat" name="search_mvt_label" value="'.dol_escape_htmltag($search_mvt_label).
'"/>';
893if (!empty($arrayfields[
't.debit'][
'checked'])) {
894 print
'<td class="liste_titre right">';
895 print
'<input type="text" class="flat" name="search_debit" size="4" value="'.dol_escape_htmltag($search_debit).
'">';
899if (!empty($arrayfields[
't.credit'][
'checked'])) {
900 print
'<td class="liste_titre right">';
901 print
'<input type="text" class="flat" name="search_credit" size="4" value="'.dol_escape_htmltag($search_credit).
'">';
905if (!empty($arrayfields[
't.lettering_code'][
'checked'])) {
906 print
'<td class="liste_titre center">';
907 print
'<input type="text" size="3" class="flat" name="search_lettering_code" value="'.dol_escape_htmltag($search_lettering_code).
'"/>';
908 print
'<br><span class="nowrap"><input type="checkbox" name="search_not_reconciled" value="notreconciled"'.($search_not_reconciled ==
'notreconciled' ?
' checked' :
'').
'>'.$langs->trans(
"NotReconciled").
'</span>';
913$parameters = array(
'arrayfields'=>$arrayfields);
914$reshook = $hookmanager->executeHooks(
'printFieldListOption', $parameters);
915print $hookmanager->resPrint;
918if (!empty($arrayfields[
't.date_creation'][
'checked'])) {
919 print
'<td class="liste_titre center">';
920 print
'<div class="nowrap">';
921 print $form->selectDate($search_date_creation_start,
'search_date_creation_start', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
"From"));
923 print
'<div class="nowrap">';
924 print $form->selectDate($search_date_creation_end,
'search_date_creation_end', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
"to"));
929if (!empty($arrayfields[
't.tms'][
'checked'])) {
930 print
'<td class="liste_titre center">';
931 print
'<div class="nowrap">';
932 print $form->selectDate($search_date_modification_start,
'search_date_modification_start', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
"From"));
934 print
'<div class="nowrap">';
935 print $form->selectDate($search_date_modification_end,
'search_date_modification_end', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
"to"));
940if (!empty($arrayfields[
't.date_export'][
'checked'])) {
941 print
'<td class="liste_titre center">';
942 print
'<div class="nowrap">';
943 print $form->selectDate($search_date_export_start,
'search_date_export_start', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
"From"));
945 print
'<div class="nowrap">';
946 print $form->selectDate($search_date_export_end,
'search_date_export_end', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
"to"));
951if (!empty($arrayfields[
't.date_validated'][
'checked'])) {
952 print
'<td class="liste_titre center">';
953 print
'<div class="nowrap">';
954 print $form->selectDate($search_date_validation_start,
'search_date_validation_start', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
"From"));
956 print
'<div class="nowrap">';
957 print $form->selectDate($search_date_validation_end,
'search_date_validation_end', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
"to"));
961if (!empty($arrayfields[
't.import_key'][
'checked'])) {
962 print
'<td class="liste_titre center">';
963 print
'<input class="flat searchstring maxwidth50" type="text" name="search_import_key" value="'.dol_escape_htmltag($search_import_key).
'">';
968 print
'<td class="liste_titre center">';
969 $searchpicto = $form->showFilterButtons();
975print
'<tr class="liste_titre">';
977 print_liste_field_titre($selectedfields, $_SERVER[
"PHP_SELF"],
"",
'',
'',
'', $sortfield, $sortorder,
'center maxwidthsearch actioncolumn ');}
978if (!empty($arrayfields[
't.piece_num'][
'checked'])) {
979 print_liste_field_titre($arrayfields[
't.piece_num'][
'label'], $_SERVER[
'PHP_SELF'],
"t.piece_num",
"", $param,
"", $sortfield, $sortorder);
981if (!empty($arrayfields[
't.code_journal'][
'checked'])) {
982 print_liste_field_titre($arrayfields[
't.code_journal'][
'label'], $_SERVER[
'PHP_SELF'],
"t.code_journal",
"", $param,
'', $sortfield, $sortorder,
'center ');
984if (!empty($arrayfields[
't.doc_date'][
'checked'])) {
985 print_liste_field_titre($arrayfields[
't.doc_date'][
'label'], $_SERVER[
'PHP_SELF'],
"t.doc_date",
"", $param,
'', $sortfield, $sortorder,
'center ');
987if (!empty($arrayfields[
't.doc_ref'][
'checked'])) {
988 print_liste_field_titre($arrayfields[
't.doc_ref'][
'label'], $_SERVER[
'PHP_SELF'],
"t.doc_ref",
"", $param,
"", $sortfield, $sortorder);
990if (!empty($arrayfields[
't.numero_compte'][
'checked'])) {
991 print_liste_field_titre($arrayfields[
't.numero_compte'][
'label'], $_SERVER[
'PHP_SELF'],
"t.numero_compte",
"", $param,
"", $sortfield, $sortorder);
993if (!empty($arrayfields[
't.subledger_account'][
'checked'])) {
994 print_liste_field_titre($arrayfields[
't.subledger_account'][
'label'], $_SERVER[
'PHP_SELF'],
"t.subledger_account",
"", $param,
"", $sortfield, $sortorder);
996if (!empty($arrayfields[
't.label_operation'][
'checked'])) {
997 print_liste_field_titre($arrayfields[
't.label_operation'][
'label'], $_SERVER[
'PHP_SELF'],
"t.label_operation",
"", $param,
"", $sortfield, $sortorder);
999if (!empty($arrayfields[
't.debit'][
'checked'])) {
1000 print_liste_field_titre($arrayfields[
't.debit'][
'label'], $_SERVER[
'PHP_SELF'],
"t.debit",
"", $param,
'', $sortfield, $sortorder,
'right ');
1002if (!empty($arrayfields[
't.credit'][
'checked'])) {
1003 print_liste_field_titre($arrayfields[
't.credit'][
'label'], $_SERVER[
'PHP_SELF'],
"t.credit",
"", $param,
'', $sortfield, $sortorder,
'right ');
1005if (!empty($arrayfields[
't.lettering_code'][
'checked'])) {
1006 print_liste_field_titre($arrayfields[
't.lettering_code'][
'label'], $_SERVER[
'PHP_SELF'],
"t.lettering_code",
"", $param,
'', $sortfield, $sortorder,
'center ');
1009$parameters = array(
'arrayfields'=>$arrayfields,
'param'=>$param,
'sortfield'=>$sortfield,
'sortorder'=>$sortorder);
1010$reshook = $hookmanager->executeHooks(
'printFieldListTitle', $parameters);
1011print $hookmanager->resPrint;
1012if (!empty($arrayfields[
't.date_creation'][
'checked'])) {
1013 print_liste_field_titre($arrayfields[
't.date_creation'][
'label'], $_SERVER[
'PHP_SELF'],
"t.date_creation",
"", $param,
'', $sortfield, $sortorder,
'center ');
1015if (!empty($arrayfields[
't.tms'][
'checked'])) {
1016 print_liste_field_titre($arrayfields[
't.tms'][
'label'], $_SERVER[
'PHP_SELF'],
"t.tms",
"", $param,
'', $sortfield, $sortorder,
'center ');
1018if (!empty($arrayfields[
't.date_export'][
'checked'])) {
1019 print_liste_field_titre($arrayfields[
't.date_export'][
'label'], $_SERVER[
'PHP_SELF'],
"t.date_export,t.doc_date",
"", $param,
'', $sortfield, $sortorder,
'center ');
1021if (!empty($arrayfields[
't.date_validated'][
'checked'])) {
1022 print_liste_field_titre($arrayfields[
't.date_validated'][
'label'], $_SERVER[
'PHP_SELF'],
"t.date_validated,t.doc_date",
"", $param,
'', $sortfield, $sortorder,
'center ');
1024if (!empty($arrayfields[
't.import_key'][
'checked'])) {
1025 print_liste_field_titre($arrayfields[
't.import_key'][
'label'], $_SERVER[
"PHP_SELF"],
"t.import_key",
"", $param,
'', $sortfield, $sortorder,
'center ');
1028 print_liste_field_titre($selectedfields, $_SERVER[
"PHP_SELF"],
"",
'',
'',
'', $sortfield, $sortorder,
'center maxwidthsearch ');
1038$totalarray = array();
1039$totalarray[
'nbfield'] = 0;
1042$totalarray[
'val'] = array ();
1043$totalarray[
'val'][
'totaldebit'] = 0;
1044$totalarray[
'val'][
'totalcredit'] = 0;
1046while ($i < min($num, $limit)) {
1047 $obj = $db->fetch_object($resql);
1052 $line->id = $obj->rowid;
1053 $line->doc_date = $db->jdate($obj->doc_date);
1054 $line->doc_type = $obj->doc_type;
1055 $line->doc_ref = $obj->doc_ref;
1056 $line->fk_doc = $obj->fk_doc;
1057 $line->fk_docdet = $obj->fk_docdet;
1058 $line->thirdparty_code = $obj->thirdparty_code;
1059 $line->subledger_account = $obj->subledger_account;
1060 $line->subledger_label = $obj->subledger_label;
1061 $line->numero_compte = $obj->numero_compte;
1062 $line->label_compte = $obj->label_compte;
1063 $line->label_operation = $obj->label_operation;
1064 $line->debit = $obj->debit;
1065 $line->credit = $obj->credit;
1066 $line->montant = $obj->amount;
1067 $line->amount = $obj->amount;
1068 $line->sens = $obj->sens;
1069 $line->lettering_code = $obj->lettering_code;
1070 $line->fk_user_author = $obj->fk_user_author;
1071 $line->import_key = $obj->import_key;
1072 $line->code_journal = $obj->code_journal;
1073 $line->journal_label = $obj->journal_label;
1074 $line->piece_num = $obj->piece_num;
1075 $line->date_creation = $db->jdate($obj->date_creation);
1076 $line->date_modification = $db->jdate($obj->date_modification);
1077 $line->date_export = $db->jdate($obj->date_export);
1078 $line->date_validation = $db->jdate($obj->date_validation);
1080 $total_debit += $line->debit;
1081 $total_credit += $line->credit;
1083 print
'<tr class="oddeven">';
1086 print
'<td class="nowraponall center">';
1087 if (($massactionbutton || $massaction) && $contextpage !=
'poslist') {
1089 if (in_array($line->id, $arrayofselected)) {
1092 print
'<input id="cb'.$line->id.
'" class="flat checkforselect" type="checkbox" name="toselect[]" value="'.$line->id.
'"'.($selected ?
' checked="checked"' :
'').
' />';
1096 $totalarray[
'nbfield']++;
1101 if (!empty($arrayfields[
't.piece_num'][
'checked'])) {
1103 $object->id = $line->id;
1104 $object->piece_num = $line->piece_num;
1105 print $object->getNomUrl(1,
'', 0,
'', 1);
1108 $totalarray[
'nbfield']++;
1113 if (!empty($arrayfields[
't.code_journal'][
'checked'])) {
1115 $result = $accountingjournal->fetch(
'', $line->code_journal);
1116 $journaltoshow = (($result > 0) ? $accountingjournal->getNomUrl(0, 0, 0,
'', 0) : $line->code_journal);
1117 print
'<td class="center tdoverflowmax150">'.$journaltoshow.
'</td>';
1119 $totalarray[
'nbfield']++;
1124 if (!empty($arrayfields[
't.doc_date'][
'checked'])) {
1125 print
'<td class="center">'.dol_print_date($line->doc_date,
'day').
'</td>';
1127 $totalarray[
'nbfield']++;
1132 if (!empty($arrayfields[
't.doc_ref'][
'checked'])) {
1133 if ($line->doc_type ==
'customer_invoice') {
1134 $langs->loadLangs(array(
'bills'));
1136 require_once DOL_DOCUMENT_ROOT.
'/compta/facture/class/facture.class.php';
1137 $objectstatic =
new Facture($db);
1138 $objectstatic->fetch($line->fk_doc);
1143 $urlsource = $_SERVER[
'PHP_SELF'].
'?id='.$objectstatic->id;
1144 $documentlink = $formfile->getDocumentsLink($objectstatic->element, $filename, $filedir);
1145 } elseif ($line->doc_type ==
'supplier_invoice') {
1146 $langs->loadLangs(array(
'bills'));
1148 require_once DOL_DOCUMENT_ROOT.
'/fourn/class/fournisseur.facture.class.php';
1150 $objectstatic->fetch($line->fk_doc);
1154 $filedir = $conf->fournisseur->facture->dir_output.
'/'.
get_exdir($line->fk_doc, 2, 0, 0, $objectstatic, $modulepart).dol_sanitizeFileName($line->doc_ref);
1155 $subdir =
get_exdir($objectstatic->id, 2, 0, 0, $objectstatic, $modulepart).dol_sanitizeFileName($line->doc_ref);
1156 $documentlink = $formfile->getDocumentsLink($objectstatic->element, $subdir, $filedir);
1157 } elseif ($line->doc_type ==
'expense_report') {
1158 $langs->loadLangs(array(
'trips'));
1160 require_once DOL_DOCUMENT_ROOT.
'/expensereport/class/expensereport.class.php';
1162 $objectstatic->fetch($line->fk_doc);
1167 $urlsource = $_SERVER[
'PHP_SELF'].
'?id='.$objectstatic->id;
1168 $documentlink = $formfile->getDocumentsLink($objectstatic->element, $filename, $filedir);
1169 } elseif ($line->doc_type ==
'bank') {
1170 require_once DOL_DOCUMENT_ROOT.
'/compta/bank/class/account.class.php';
1172 $objectstatic->fetch($line->fk_doc);
1178 $labeltoshowalt =
'';
1179 if ($line->doc_type ==
'customer_invoice' || $line->doc_type ==
'supplier_invoice' || $line->doc_type ==
'expense_report') {
1180 $labeltoshow .= $objectstatic->getNomUrl(1,
'', 0, 0,
'', 0, -1, 1);
1181 $labeltoshow .= $documentlink;
1182 $labeltoshowalt .= $objectstatic->ref;
1183 } elseif ($line->doc_type ==
'bank') {
1184 $labeltoshow .= $objectstatic->getNomUrl(1);
1185 $labeltoshowalt .= $objectstatic->ref;
1186 $bank_ref = strstr($line->doc_ref,
'-');
1187 $labeltoshow .=
" " . $bank_ref;
1188 $labeltoshowalt .=
" " . $bank_ref;
1190 $labeltoshow .= $line->doc_ref;
1191 $labeltoshowalt .= $line->doc_ref;
1194 print
'<td class="nowraponall tdoverflowmax200" title="'.dol_escape_htmltag($labeltoshowalt).
'">';
1198 $totalarray[
'nbfield']++;
1203 if (!empty($arrayfields[
't.numero_compte'][
'checked'])) {
1204 print
'<td>'.length_accountg($line->numero_compte).
'</td>';
1206 $totalarray[
'nbfield']++;
1211 if (!empty($arrayfields[
't.subledger_account'][
'checked'])) {
1212 print
'<td>'.length_accounta($line->subledger_account).
'</td>';
1214 $totalarray[
'nbfield']++;
1219 if (!empty($arrayfields[
't.label_operation'][
'checked'])) {
1220 print
'<td class="small tdoverflowmax200" title="'.dol_escape_htmltag($line->label_operation).
'">'.
dol_escape_htmltag($line->label_operation).
'</td>';
1222 $totalarray[
'nbfield']++;
1227 if (!empty($arrayfields[
't.debit'][
'checked'])) {
1228 print
'<td class="right nowraponall amount">'.($line->debit != 0 ?
price($line->debit) :
'').
'</td>';
1230 $totalarray[
'nbfield']++;
1233 $totalarray[
'pos'][$totalarray[
'nbfield']] =
'totaldebit';
1235 $totalarray[
'val'][
'totaldebit'] += $line->debit;
1239 if (!empty($arrayfields[
't.credit'][
'checked'])) {
1240 print
'<td class="right nowraponall amount">'.($line->credit != 0 ?
price($line->credit) :
'').
'</td>';
1242 $totalarray[
'nbfield']++;
1245 $totalarray[
'pos'][$totalarray[
'nbfield']] =
'totalcredit';
1247 $totalarray[
'val'][
'totalcredit'] += $line->credit;
1251 if (!empty($arrayfields[
't.lettering_code'][
'checked'])) {
1252 print
'<td class="center">'.$line->lettering_code.
'</td>';
1254 $totalarray[
'nbfield']++;
1259 $parameters = array(
'arrayfields'=>$arrayfields,
'obj'=>$obj,
'i'=>$i,
'totalarray'=>&$totalarray);
1260 $reshook = $hookmanager->executeHooks(
'printFieldListValue', $parameters);
1261 print $hookmanager->resPrint;
1264 if (!empty($arrayfields[
't.date_creation'][
'checked'])) {
1265 print
'<td class="center">'.dol_print_date($line->date_creation,
'dayhour',
'tzuserrel').
'</td>';
1267 $totalarray[
'nbfield']++;
1272 if (!empty($arrayfields[
't.tms'][
'checked'])) {
1273 print
'<td class="center">'.dol_print_date($line->date_modification,
'dayhour',
'tzuserrel').
'</td>';
1275 $totalarray[
'nbfield']++;
1280 if (!empty($arrayfields[
't.date_export'][
'checked'])) {
1281 print
'<td class="center nowraponall">'.dol_print_date($line->date_export,
'dayhour',
'tzuserrel').
'</td>';
1283 $totalarray[
'nbfield']++;
1288 if (!empty($arrayfields[
't.date_validated'][
'checked'])) {
1289 print
'<td class="center nowraponall">'.dol_print_date($line->date_validation,
'dayhour',
'tzuserrel').
'</td>';
1291 $totalarray[
'nbfield']++;
1295 if (!empty($arrayfields[
't.import_key'][
'checked'])) {
1296 print
'<td class="center">'.$obj->import_key.
"</td>\n";
1298 $totalarray[
'nbfield']++;
1304 print
'<td class="nowraponall center">';
1305 if (($massactionbutton || $massaction) && $contextpage !=
'poslist') {
1307 if (in_array($line->id, $arrayofselected)) {
1310 print
'<input id="cb'.$line->id.
'" class="flat checkforselect" type="checkbox" name="toselect[]" value="'.$line->id.
'"'.($selected ?
' checked="checked"' :
'').
' />';
1314 $totalarray[
'nbfield']++;
1325include DOL_DOCUMENT_ROOT.
'/core/tpl/list_print_total.tpl.php';
1330 foreach ($arrayfields as $key => $val) {
1331 if (!empty($val[
'checked'])) {
1335 print
'<tr><td colspan="'.$colspan.
'"><span class="opacitymedium">'.$langs->trans(
"NoRecordFound").
'</span></td></tr>';
1338$parameters = array(
'arrayfields'=>$arrayfields,
'sql'=>$sql);
1339$reshook = $hookmanager->executeHooks(
'printFieldListFooter', $parameters, $object, $action);
1340print $hookmanager->resPrint;
if(!defined('NOREQUIRESOC')) if(!defined( 'NOREQUIRETRAN')) if(!defined('NOTOKENRENEWAL')) if(!defined( 'NOREQUIREMENU')) if(!defined('NOREQUIREHTML')) if(!defined( 'NOREQUIREAJAX')) llxHeader()
Empty header.
Class to manage bank transaction lines.
Class to manage categories of an accounting account.
Class to manage accounting accounts.
Class to manage Ledger (General Ledger and Subledger)
Class to manage Trips and Expenses.
Class to manage suppliers invoices.
Class to manage invoices.
dol_get_last_day($year, $month=12, $gm=false)
Return GMT time for last day of a month or year.
dol_mktime($hour, $minute, $second, $month, $day, $year, $gm='auto', $check=1)
Return a timestamp date built from detailed informations (by default a local PHP server timestamp) Re...
dol_print_error($db='', $error='', $errors=null)
Displays error message system with all the information to facilitate the diagnosis and the escalation...
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.
natural_search($fields, $value, $mode=0, $nofirstand=0)
Generate natural SQL search string for a criteria (this criteria can be tested on one or several fiel...
price($amount, $form=0, $outlangs='', $trunc=1, $rounding=-1, $forcerounding=-1, $currency_code='')
Function to format a value into an amount for visual output Function used into PDF and HTML pages.
dol_print_date($time, $format='', $tzoutput='auto', $outputlangs='', $encodetooutput=false)
Output date in a string format according to outputlangs (or langs if not defined).
dol_now($mode='auto')
Return date for now.
getDolGlobalInt($key, $default=0)
Return dolibarr global constant int value.
img_picto($titlealt, $picto, $moreatt='', $pictoisfullpath=false, $srconly=0, $notitle=0, $alt='', $morecss='', $marginleftonlyshort=2)
Show picto whatever it's its name (generic function)
print_liste_field_titre($name, $file="", $field="", $begin="", $moreparam="", $moreattrib="", $sortfield="", $sortorder="", $prefix="", $tooltip="", $forcenowrapcolumntitle=0)
Show title line of an array.
GETPOST($paramname, $check='alphanohtml', $method=0, $filter=null, $options=null, $noreplace=0)
Return value of a param into GET or POST supervariable.
setEventMessages($mesg, $mesgs, $style='mesgs', $messagekey='', $noduplicate=0)
Set event messages in dol_events session object.
print_barre_liste($titre, $page, $file, $options='', $sortfield='', $sortorder='', $morehtmlcenter='', $num=-1, $totalnboflines='', $picto='generic', $pictoisfullpath=0, $morehtmlright='', $morecss='', $limit=-1, $hideselectlimit=0, $hidenavigation=0, $pagenavastextinput=0, $morehtmlrightbeforearrow='')
Print a title with navigation controls for pagination.
dol_sanitizeFileName($str, $newstr='_', $unaccent=1)
Clean a string to use it as a file name.
getDolGlobalString($key, $default='')
Return dolibarr global constant string value.
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...
accessforbidden($message='', $printheader=1, $printfooter=1, $showonlymessage=0, $params=null)
Show a message to say access is forbidden and stop program.