31 require
'../../main.inc.php';
32 require_once DOL_DOCUMENT_ROOT.
'/core/lib/accounting.lib.php';
33 require_once DOL_DOCUMENT_ROOT.
'/accountancy/class/lettering.class.php';
34 require_once DOL_DOCUMENT_ROOT.
'/accountancy/class/bookkeeping.class.php';
35 require_once DOL_DOCUMENT_ROOT.
'/accountancy/class/accountingjournal.class.php';
36 require_once DOL_DOCUMENT_ROOT.
'/core/class/html.formfile.class.php';
37 require_once DOL_DOCUMENT_ROOT.
'/core/class/html.formother.class.php';
38 require_once DOL_DOCUMENT_ROOT.
'/core/class/html.formaccounting.class.php';
39 require_once DOL_DOCUMENT_ROOT.
'/core/lib/date.lib.php';
40 require_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');
102 if ($search_accountancy_code_start == - 1) {
103 $search_accountancy_code_start =
'';
105 $search_accountancy_code_end =
GETPOST(
'search_accountancy_code_end',
'alpha');
106 if ($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');
112 if ($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');
116 if ($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');
133 if (empty($page) || $page < 0) {
136 $offset = $limit * $page;
137 $pageprev = $page - 1;
138 $pagenext = $page + 1;
139 if ($sortorder ==
"") {
142 if ($sortfield ==
"") {
143 $sortfield =
"t.piece_num,t.rowid";
148 $hookmanager->initHooks(array(
'bookkeepinglist'));
153 if (!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);
182 $arrayfields = array(
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),
200 if (empty($conf->global->ACCOUNTING_ENABLE_LETTERING)) {
201 unset($arrayfields[
't.lettering_code']);
209 if ($user->socid > 0) {
212 if (!$user->hasRight(
'accounting',
'mouvements',
'lire')) {
223 if (
GETPOST(
'cancel',
'alpha')) {
224 $action =
'list'; $massaction =
'';
226 if (!
GETPOST(
'confirmmassaction',
'alpha') && $massaction !=
'preunletteringauto' && $massaction !=
'preunletteringmanual' && $massaction !=
'predeletebookkeepingwriting') {
230 $parameters = array(
'socid'=>$socid);
231 $reshook = $hookmanager->executeHooks(
'doActions', $parameters, $object, $action);
236 if (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) {
492 } elseif ($nbok > 0) {
498 header(
"Location: ".$_SERVER[
"PHP_SELF"].
"?noreset=1".($param ?
'&'.$param :
''));
506 if (!$error &&
getDolGlobalInt(
'ACCOUNTING_ENABLE_LETTERING') && $user->hasRight(
'accounting',
'mouvements',
'creer')) {
507 if ($massaction ==
'letteringauto') {
509 $nb_lettering = $lettering->bookkeepingLetteringAll($toselect);
510 if ($nb_lettering < 0) {
513 $nb_lettering = max(0, abs($nb_lettering) - 2);
514 } elseif ($nb_lettering == 0) {
516 setEventMessages($langs->trans(
'AccountancyNoLetteringModified'), array(),
'mesgs');
518 if ($nb_lettering == 1) {
519 setEventMessages($langs->trans(
'AccountancyOneLetteringModifiedSuccessfully'), array(),
'mesgs');
520 } elseif ($nb_lettering > 1) {
521 setEventMessages($langs->trans(
'AccountancyLetteringModifiedSuccessfully', $nb_lettering), array(),
'mesgs');
525 header(
'Location: ' . $_SERVER[
'PHP_SELF'] .
'?noreset=1' . $param);
528 } elseif ($massaction ==
'letteringmanual') {
530 $result = $lettering->updateLettering($toselect);
534 setEventMessages($langs->trans(
'AccountancyOneLetteringModifiedSuccessfully'), array(),
'mesgs');
535 header(
'Location: ' . $_SERVER[
'PHP_SELF'] .
'?noreset=1' . $param);
538 } elseif ($action ==
'unletteringauto' && $confirm ==
"yes") {
540 $nb_lettering = $lettering->bookkeepingLetteringAll($toselect,
true);
541 if ($nb_lettering < 0) {
544 $nb_lettering = max(0, abs($nb_lettering) - 2);
545 } elseif ($nb_lettering == 0) {
547 setEventMessages($langs->trans(
'AccountancyNoUnletteringModified'), array(),
'mesgs');
549 if ($nb_lettering == 1) {
550 setEventMessages($langs->trans(
'AccountancyOneUnletteringModifiedSuccessfully'), array(),
'mesgs');
551 } elseif ($nb_lettering > 1) {
552 setEventMessages($langs->trans(
'AccountancyUnletteringModifiedSuccessfully', $nb_lettering), array(),
'mesgs');
556 header(
'Location: ' . $_SERVER[
'PHP_SELF'] .
'?noreset=1' . $param);
559 } elseif ($action ==
'unletteringmanual' && $confirm ==
"yes") {
561 $nb_lettering = $lettering->deleteLettering($toselect);
565 setEventMessages($langs->trans(
'AccountancyOneUnletteringModifiedSuccessfully'), array(),
'mesgs');
566 header(
'Location: ' . $_SERVER[
'PHP_SELF'] .
'?noreset=1' . $param);
579 $sql .=
" t.doc_date,";
580 $sql .=
" t.doc_type,";
581 $sql .=
" t.doc_ref,";
582 $sql .=
" t.fk_doc,";
583 $sql .=
" t.fk_docdet,";
584 $sql .=
" t.thirdparty_code,";
585 $sql .=
" t.subledger_account,";
586 $sql .=
" t.subledger_label,";
587 $sql .=
" t.numero_compte,";
588 $sql .=
" t.label_compte,";
589 $sql .=
" t.label_operation,";
591 $sql .=
" t.credit,";
592 $sql .=
" t.lettering_code,";
593 $sql .=
" t.montant as amount,";
595 $sql .=
" t.fk_user_author,";
596 $sql .=
" t.import_key,";
597 $sql .=
" t.code_journal,";
598 $sql .=
" t.journal_label,";
599 $sql .=
" t.piece_num,";
600 $sql .=
" t.date_creation,";
601 $sql .=
" t.tms as date_modification,";
602 $sql .=
" t.date_export,";
603 $sql .=
" t.date_validated as date_validation,";
604 $sql .=
" t.import_key";
608 $sql .=
' FROM '.MAIN_DB_PREFIX.$object->table_element.
' as t';
611 if (count($filter) > 0) {
612 foreach ($filter as $key => $value) {
613 if ($key ==
't.doc_date') {
614 $sqlwhere[] = $key.
"='".$db->idate($value).
"'";
615 } elseif ($key ==
't.doc_date>=' || $key ==
't.doc_date<=') {
616 $sqlwhere[] = $key.
"'".$db->idate($value).
"'";
617 } elseif ($key ==
't.numero_compte>=' || $key ==
't.numero_compte<=' || $key ==
't.subledger_account>=' || $key ==
't.subledger_account<=') {
618 $sqlwhere[] = $key.
"'".$db->escape($value).
"'";
619 } elseif ($key ==
't.fk_doc' || $key ==
't.fk_docdet' || $key ==
't.piece_num') {
620 $sqlwhere[] = $key.
'='.((int) $value);
621 } elseif ($key ==
't.subledger_account' || $key ==
't.numero_compte') {
622 $sqlwhere[] = $key.
" LIKE '".$db->escape($value).
"%'";
623 } elseif ($key ==
't.subledger_account') {
625 } elseif ($key ==
't.date_creation>=' || $key ==
't.date_creation<=') {
626 $sqlwhere[] = $key.
"'".$db->idate($value).
"'";
627 } elseif ($key ==
't.tms>=' || $key ==
't.tms<=') {
628 $sqlwhere[] = $key.
"'".$db->idate($value).
"'";
629 } elseif ($key ==
't.date_export>=' || $key ==
't.date_export<=') {
630 $sqlwhere[] = $key.
"'".$db->idate($value).
"'";
631 } elseif ($key ==
't.date_validated>=' || $key ==
't.date_validated<=') {
632 $sqlwhere[] = $key.
"'".$db->idate($value).
"'";
633 } elseif ($key ==
't.credit' || $key ==
't.debit') {
635 } elseif ($key ==
't.reconciled_option') {
636 $sqlwhere[] =
't.lettering_code IS NULL';
637 } elseif ($key ==
't.code_journal' && !empty($value)) {
638 if (is_array($value)) {
639 $sqlwhere[] =
natural_search(
"t.code_journal", join(
',', $value), 3, 1);
643 } elseif ($key ==
't.search_accounting_code_in' && !empty($value)) {
644 $sqlwhere[] =
't.numero_compte IN ('.$db->sanitize($value, 1).
')';
650 $sql .=
' WHERE t.entity IN ('.getEntity(
'accountancy').
')';
652 if (count($sqlwhere) > 0) {
653 $sql .=
' AND '.implode(
' AND ', $sqlwhere);
664 $title_page = $langs->trans(
"Operations").
' - '.$langs->trans(
"Journals");
667 $nbtotalofrecords =
'';
670 $sqlforcount = preg_replace(
'/^'.preg_quote($sqlfields,
'/').
'/',
'SELECT COUNT(*) as nbtotalofrecords',
$sql);
671 $sqlforcount = preg_replace(
'/GROUP BY .*$/',
'', $sqlforcount);
672 $resql = $db->query($sqlforcount);
674 $objforcount = $db->fetch_object($resql);
675 $nbtotalofrecords = $objforcount->nbtotalofrecords;
680 if (($page * $limit) > $nbtotalofrecords) {
688 $sql .= $db->order($sortfield, $sortorder);
690 $sql .= $db->plimit($limit + 1, $offset);
693 $resql = $db->query(
$sql);
699 $num = $db->num_rows($resql);
701 $arrayofselected = is_array($toselect) ? $toselect : array();
714 if (!empty($contextpage) && $contextpage != $_SERVER[
"PHP_SELF"]) {
715 $param .=
'&contextpage='.urlencode($contextpage);
717 if ($limit > 0 && $limit != $conf->liste_limit) {
718 $param .=
'&limit='.((int) $limit);
722 $arrayofmassactions = array();
723 if (
getDolGlobalInt(
'ACCOUNTING_ENABLE_LETTERING') && $user->hasRight(
'accounting',
'mouvements',
'creer')) {
724 $arrayofmassactions[
'letteringauto'] =
img_picto(
'',
'check',
'class="pictofixedwidth"') . $langs->trans(
'LetteringAuto');
725 $arrayofmassactions[
'preunletteringauto'] =
img_picto(
'',
'uncheck',
'class="pictofixedwidth"') . $langs->trans(
'UnletteringAuto');
726 $arrayofmassactions[
'letteringmanual'] =
img_picto(
'',
'check',
'class="pictofixedwidth"') . $langs->trans(
'LetteringManual');
727 $arrayofmassactions[
'preunletteringmanual'] =
img_picto(
'',
'uncheck',
'class="pictofixedwidth"') . $langs->trans(
'UnletteringManual');
729 if ($user->hasRight(
'accounting',
'mouvements',
'supprimer')) {
730 $arrayofmassactions[
'predeletebookkeepingwriting'] =
img_picto(
'',
'delete',
'class="pictofixedwidth"').$langs->trans(
"Delete");
732 if (
GETPOST(
'nomassaction',
'int') || in_array($massaction, array(
'preunletteringauto',
'preunletteringmanual',
'predeletebookkeepingwriting'))) {
733 $arrayofmassactions = array();
735 $massactionbutton =
$form->selectMassAction($massaction, $arrayofmassactions);
737 print
'<form method="POST" id="searchFormList" action="'.$_SERVER[
"PHP_SELF"].
'">';
738 print
'<input type="hidden" name="token" value="'.newToken().
'">';
739 print
'<input type="hidden" name="action" value="list">';
740 if ($optioncss !=
'') {
741 print
'<input type="hidden" name="optioncss" value="'.urlencode($optioncss).
'">';
743 print
'<input type="hidden" name="formfilteraction" id="formfilteraction" value="list">';
744 print
'<input type="hidden" name="sortfield" value="'.$sortfield.
'">';
745 print
'<input type="hidden" name="sortorder" value="'.$sortorder.
'">';
746 print
'<input type="hidden" name="contextpage" value="'.$contextpage.
'">';
748 if (count($filter)) {
749 $buttonLabel = $langs->trans(
"ExportFilteredList");
751 $buttonLabel = $langs->trans(
"ExportList");
754 $parameters = array(
'param' => $param);
755 $reshook = $hookmanager->executeHooks(
'addMoreActionsButtonsList', $parameters, $object, $action);
760 $newcardbutton = empty($hookmanager->resPrint) ?
'' : $hookmanager->resPrint;
762 if (empty($reshook)) {
763 $newcardbutton .=
dolGetButtonTitle($langs->trans(
'ViewFlatList'),
'',
'fa fa-list paddingleft imgforviewmode', DOL_URL_ROOT.
'/accountancy/bookkeeping/list.php?'.$param,
'', 1, array(
'morecss' =>
'marginleftonly btnTitleSelected'));
764 $newcardbutton .=
dolGetButtonTitle($langs->trans(
'GroupByAccountAccounting'),
'',
'fa fa-stream paddingleft imgforviewmode', DOL_URL_ROOT.
'/accountancy/bookkeeping/listbyaccount.php?'.$param,
'', 1, array(
'morecss' =>
'marginleftonly'));
765 $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'));
767 $url =
'./card.php?action=create';
768 if (!empty($socid)) {
769 $url .=
'&socid='.$socid;
771 $newcardbutton .=
dolGetButtonTitle($langs->trans(
'NewAccountingMvt'),
'',
'fa fa-plus-circle paddingleft', $url,
'', $user->hasRight(
'accounting',
'mouvements',
'creer'));
774 print_barre_liste($title_page, $page, $_SERVER[
"PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords,
'title_accountancy', 0, $newcardbutton,
'', $limit, 0, 0, 1);
776 if ($massaction ==
'preunletteringauto') {
777 print
$form->formconfirm($_SERVER[
"PHP_SELF"], $langs->trans(
"ConfirmMassUnletteringAuto"), $langs->trans(
"ConfirmMassUnletteringQuestion", count($toselect)),
"unletteringauto",
null,
'', 0, 200, 500, 1);
778 } elseif ($massaction ==
'preunletteringmanual') {
779 print
$form->formconfirm($_SERVER[
"PHP_SELF"], $langs->trans(
"ConfirmMassUnletteringManual"), $langs->trans(
"ConfirmMassUnletteringQuestion", count($toselect)),
"unletteringmanual",
null,
'', 0, 200, 500, 1);
780 } elseif ($massaction ==
'predeletebookkeepingwriting') {
781 print
$form->formconfirm($_SERVER[
"PHP_SELF"], $langs->trans(
"ConfirmMassDeleteBookkeepingWriting"), $langs->trans(
"ConfirmMassDeleteBookkeepingWritingQuestion", count($toselect)),
"deletebookkeepingwriting",
null,
'', 0, 200, 500, 1);
788 include DOL_DOCUMENT_ROOT.
'/core/tpl/massactions_pre.tpl.php';
790 $varpage = empty($contextpage) ? $_SERVER[
"PHP_SELF"] : $contextpage;
791 $selectedfields =
$form->multiSelectArrayWithCheckbox(
'selectedfields', $arrayfields, $varpage,
getDolGlobalString(
'MAIN_CHECKBOX_LEFT_COLUMN',
''));
792 if ($massactionbutton && $contextpage !=
'poslist') {
793 $selectedfields .=
$form->showCheckAddButtons(
'checkforselect', 1);
797 $moreforfilter .=
'<div class="divsearchfield">';
798 $moreforfilter .= $langs->trans(
'AccountingCategory').
': ';
799 $moreforfilter .=
'<div class="nowrap inline-block">';
800 $moreforfilter .= $formaccounting->select_accounting_category($search_account_category,
'search_account_category', 1, 0, 0, 0);
801 $moreforfilter .=
'</div>';
802 $moreforfilter .=
'</div>';
804 $parameters = array();
805 $reshook = $hookmanager->executeHooks(
'printFieldPreListTitle', $parameters, $object, $action);
806 if (empty($reshook)) {
807 $moreforfilter .= $hookmanager->resPrint;
809 $moreforfilter = $hookmanager->resPrint;
812 print
'<div class="liste_titre liste_titre_bydiv centpercent">';
813 print $moreforfilter;
816 print
'<div class="div-table-responsive">';
817 print
'<table class="tagtable liste'.($moreforfilter ?
" listwithfilterbefore" :
"").
'">';
820 print
'<tr class="liste_titre_filter">';
823 print
'<td class="liste_titre center">';
824 $searchpicto =
$form->showFilterButtons(
'left');
829 if (!empty($arrayfields[
't.piece_num'][
'checked'])) {
830 print
'<td class="liste_titre"><input type="text" name="search_mvt_num" size="6" value="'.dol_escape_htmltag($search_mvt_num).
'"></td>';
833 if (!empty($arrayfields[
't.code_journal'][
'checked'])) {
834 print
'<td class="liste_titre center">';
835 print $formaccounting->multi_select_journal($search_ledger_code,
'search_ledger_code', 0, 1, 1, 1,
'small maxwidth75');
839 if (!empty($arrayfields[
't.doc_date'][
'checked'])) {
840 print
'<td class="liste_titre center">';
841 print
'<div class="nowrap">';
842 print
$form->selectDate($search_date_start ? $search_date_start : -1,
'search_date_start', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
"From"));
844 print
'<div class="nowrap">';
845 print
$form->selectDate($search_date_end ? $search_date_end : -1,
'search_date_end', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
"to"));
850 if (!empty($arrayfields[
't.doc_ref'][
'checked'])) {
851 print
'<td class="liste_titre"><input type="text" name="search_doc_ref" size="8" value="'.dol_escape_htmltag($search_doc_ref).
'"></td>';
854 if (!empty($arrayfields[
't.numero_compte'][
'checked'])) {
855 print
'<td class="liste_titre">';
856 print
'<div class="nowrap">';
857 print $formaccounting->select_account($search_accountancy_code_start,
'search_accountancy_code_start', $langs->trans(
'From'), array(), 1, 1,
'maxwidth150',
'account');
859 print
'<div class="nowrap">';
860 print $formaccounting->select_account($search_accountancy_code_end,
'search_accountancy_code_end', $langs->trans(
'to'), array(), 1, 1,
'maxwidth150',
'account');
865 if (!empty($arrayfields[
't.subledger_account'][
'checked'])) {
866 print
'<td class="liste_titre">';
869 if (!empty($conf->global->ACCOUNTANCY_COMBO_FOR_AUX)) {
870 print
'<div class="nowrap">';
872 print $formaccounting->select_auxaccount($search_accountancy_aux_code_start,
'search_accountancy_aux_code_start', $langs->trans(
'From'),
'maxwidth250',
'subledgeraccount');
874 print
'<div class="nowrap">';
875 print $formaccounting->select_auxaccount($search_accountancy_aux_code_end,
'search_accountancy_aux_code_end', $langs->trans(
'to'),
'maxwidth250',
'subledgeraccount');
878 print
'<input type="text" class="maxwidth75" name="search_accountancy_aux_code" value="'.dol_escape_htmltag($search_accountancy_aux_code).
'">';
883 if (!empty($arrayfields[
't.label_operation'][
'checked'])) {
884 print
'<td class="liste_titre">';
885 print
'<input type="text" size="7" class="flat" name="search_mvt_label" value="'.dol_escape_htmltag($search_mvt_label).
'"/>';
889 if (!empty($arrayfields[
't.debit'][
'checked'])) {
890 print
'<td class="liste_titre right">';
891 print
'<input type="text" class="flat" name="search_debit" size="4" value="'.dol_escape_htmltag($search_debit).
'">';
895 if (!empty($arrayfields[
't.credit'][
'checked'])) {
896 print
'<td class="liste_titre right">';
897 print
'<input type="text" class="flat" name="search_credit" size="4" value="'.dol_escape_htmltag($search_credit).
'">';
901 if (!empty($arrayfields[
't.lettering_code'][
'checked'])) {
902 print
'<td class="liste_titre center">';
903 print
'<input type="text" size="3" class="flat" name="search_lettering_code" value="'.dol_escape_htmltag($search_lettering_code).
'"/>';
904 print
'<br><span class="nowrap"><input type="checkbox" name="search_not_reconciled" value="notreconciled"'.($search_not_reconciled ==
'notreconciled' ?
' checked' :
'').
'>'.$langs->trans(
"NotReconciled").
'</span>';
909 $parameters = array(
'arrayfields'=>$arrayfields);
910 $reshook = $hookmanager->executeHooks(
'printFieldListOption', $parameters);
911 print $hookmanager->resPrint;
914 if (!empty($arrayfields[
't.date_creation'][
'checked'])) {
915 print
'<td class="liste_titre center">';
916 print
'<div class="nowrap">';
917 print
$form->selectDate($search_date_creation_start,
'search_date_creation_start', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
"From"));
919 print
'<div class="nowrap">';
920 print
$form->selectDate($search_date_creation_end,
'search_date_creation_end', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
"to"));
925 if (!empty($arrayfields[
't.tms'][
'checked'])) {
926 print
'<td class="liste_titre center">';
927 print
'<div class="nowrap">';
928 print
$form->selectDate($search_date_modification_start,
'search_date_modification_start', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
"From"));
930 print
'<div class="nowrap">';
931 print
$form->selectDate($search_date_modification_end,
'search_date_modification_end', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
"From"));
936 if (!empty($arrayfields[
't.date_export'][
'checked'])) {
937 print
'<td class="liste_titre center">';
938 print
'<div class="nowrap">';
939 print
$form->selectDate($search_date_export_start,
'search_date_export_start', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
"From"));
941 print
'<div class="nowrap">';
942 print
$form->selectDate($search_date_export_end,
'search_date_export_end', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
"to"));
947 if (!empty($arrayfields[
't.date_validated'][
'checked'])) {
948 print
'<td class="liste_titre center">';
949 print
'<div class="nowrap">';
950 print
$form->selectDate($search_date_validation_start,
'search_date_validation_start', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
"From"));
952 print
'<div class="nowrap">';
953 print
$form->selectDate($search_date_validation_end,
'search_date_validation_end', 0, 0, 1,
'', 1, 0, 0,
'',
'',
'',
'', 1,
'', $langs->trans(
"to"));
957 if (!empty($arrayfields[
't.import_key'][
'checked'])) {
958 print
'<td class="liste_titre center">';
959 print
'<input class="flat searchstring maxwidth50" type="text" name="search_import_key" value="'.dol_escape_htmltag($search_import_key).
'">';
964 print
'<td class="liste_titre center">';
965 $searchpicto =
$form->showFilterButtons();
971 print
'<tr class="liste_titre">';
973 print_liste_field_titre($selectedfields, $_SERVER[
"PHP_SELF"],
"",
'',
'',
'', $sortfield, $sortorder,
'center maxwidthsearch actioncolumn ');}
974 if (!empty($arrayfields[
't.piece_num'][
'checked'])) {
975 print_liste_field_titre($arrayfields[
't.piece_num'][
'label'], $_SERVER[
'PHP_SELF'],
"t.piece_num",
"", $param,
"", $sortfield, $sortorder);
977 if (!empty($arrayfields[
't.code_journal'][
'checked'])) {
978 print_liste_field_titre($arrayfields[
't.code_journal'][
'label'], $_SERVER[
'PHP_SELF'],
"t.code_journal",
"", $param,
'', $sortfield, $sortorder,
'center ');
980 if (!empty($arrayfields[
't.doc_date'][
'checked'])) {
981 print_liste_field_titre($arrayfields[
't.doc_date'][
'label'], $_SERVER[
'PHP_SELF'],
"t.doc_date",
"", $param,
'', $sortfield, $sortorder,
'center ');
983 if (!empty($arrayfields[
't.doc_ref'][
'checked'])) {
984 print_liste_field_titre($arrayfields[
't.doc_ref'][
'label'], $_SERVER[
'PHP_SELF'],
"t.doc_ref",
"", $param,
"", $sortfield, $sortorder);
986 if (!empty($arrayfields[
't.numero_compte'][
'checked'])) {
987 print_liste_field_titre($arrayfields[
't.numero_compte'][
'label'], $_SERVER[
'PHP_SELF'],
"t.numero_compte",
"", $param,
"", $sortfield, $sortorder);
989 if (!empty($arrayfields[
't.subledger_account'][
'checked'])) {
990 print_liste_field_titre($arrayfields[
't.subledger_account'][
'label'], $_SERVER[
'PHP_SELF'],
"t.subledger_account",
"", $param,
"", $sortfield, $sortorder);
992 if (!empty($arrayfields[
't.label_operation'][
'checked'])) {
993 print_liste_field_titre($arrayfields[
't.label_operation'][
'label'], $_SERVER[
'PHP_SELF'],
"t.label_operation",
"", $param,
"", $sortfield, $sortorder);
995 if (!empty($arrayfields[
't.debit'][
'checked'])) {
996 print_liste_field_titre($arrayfields[
't.debit'][
'label'], $_SERVER[
'PHP_SELF'],
"t.debit",
"", $param,
'', $sortfield, $sortorder,
'right ');
998 if (!empty($arrayfields[
't.credit'][
'checked'])) {
999 print_liste_field_titre($arrayfields[
't.credit'][
'label'], $_SERVER[
'PHP_SELF'],
"t.credit",
"", $param,
'', $sortfield, $sortorder,
'right ');
1001 if (!empty($arrayfields[
't.lettering_code'][
'checked'])) {
1002 print_liste_field_titre($arrayfields[
't.lettering_code'][
'label'], $_SERVER[
'PHP_SELF'],
"t.lettering_code",
"", $param,
'', $sortfield, $sortorder,
'center ');
1005 $parameters = array(
'arrayfields'=>$arrayfields,
'param'=>$param,
'sortfield'=>$sortfield,
'sortorder'=>$sortorder);
1006 $reshook = $hookmanager->executeHooks(
'printFieldListTitle', $parameters);
1007 print $hookmanager->resPrint;
1008 if (!empty($arrayfields[
't.date_creation'][
'checked'])) {
1009 print_liste_field_titre($arrayfields[
't.date_creation'][
'label'], $_SERVER[
'PHP_SELF'],
"t.date_creation",
"", $param,
'', $sortfield, $sortorder,
'center ');
1011 if (!empty($arrayfields[
't.tms'][
'checked'])) {
1012 print_liste_field_titre($arrayfields[
't.tms'][
'label'], $_SERVER[
'PHP_SELF'],
"t.tms",
"", $param,
'', $sortfield, $sortorder,
'center ');
1014 if (!empty($arrayfields[
't.date_export'][
'checked'])) {
1015 print_liste_field_titre($arrayfields[
't.date_export'][
'label'], $_SERVER[
'PHP_SELF'],
"t.date_export,t.doc_date",
"", $param,
'', $sortfield, $sortorder,
'center ');
1017 if (!empty($arrayfields[
't.date_validated'][
'checked'])) {
1018 print_liste_field_titre($arrayfields[
't.date_validated'][
'label'], $_SERVER[
'PHP_SELF'],
"t.date_validated,t.doc_date",
"", $param,
'', $sortfield, $sortorder,
'center ');
1020 if (!empty($arrayfields[
't.import_key'][
'checked'])) {
1021 print_liste_field_titre($arrayfields[
't.import_key'][
'label'], $_SERVER[
"PHP_SELF"],
"t.import_key",
"", $param,
'', $sortfield, $sortorder,
'center ');
1024 print_liste_field_titre($selectedfields, $_SERVER[
"PHP_SELF"],
"",
'',
'',
'', $sortfield, $sortorder,
'center maxwidthsearch ');
1034 $totalarray = array();
1035 $totalarray[
'nbfield'] = 0;
1038 $totalarray[
'val'] = array ();
1039 $totalarray[
'val'][
'totaldebit'] = 0;
1040 $totalarray[
'val'][
'totalcredit'] = 0;
1042 while ($i < min($num, $limit)) {
1043 $obj = $db->fetch_object($resql);
1048 $line->id = $obj->rowid;
1049 $line->doc_date = $db->jdate($obj->doc_date);
1050 $line->doc_type = $obj->doc_type;
1051 $line->doc_ref = $obj->doc_ref;
1052 $line->fk_doc = $obj->fk_doc;
1053 $line->fk_docdet = $obj->fk_docdet;
1054 $line->thirdparty_code = $obj->thirdparty_code;
1055 $line->subledger_account = $obj->subledger_account;
1056 $line->subledger_label = $obj->subledger_label;
1057 $line->numero_compte = $obj->numero_compte;
1058 $line->label_compte = $obj->label_compte;
1059 $line->label_operation = $obj->label_operation;
1060 $line->debit = $obj->debit;
1061 $line->credit = $obj->credit;
1062 $line->montant = $obj->amount;
1063 $line->amount = $obj->amount;
1064 $line->sens = $obj->sens;
1065 $line->lettering_code = $obj->lettering_code;
1066 $line->fk_user_author = $obj->fk_user_author;
1067 $line->import_key = $obj->import_key;
1068 $line->code_journal = $obj->code_journal;
1069 $line->journal_label = $obj->journal_label;
1070 $line->piece_num = $obj->piece_num;
1071 $line->date_creation = $db->jdate($obj->date_creation);
1072 $line->date_modification = $db->jdate($obj->date_modification);
1073 $line->date_export = $db->jdate($obj->date_export);
1074 $line->date_validation = $db->jdate($obj->date_validation);
1076 $total_debit += $line->debit;
1077 $total_credit += $line->credit;
1079 print
'<tr class="oddeven">';
1082 print
'<td class="nowraponall center">';
1083 if (($massactionbutton || $massaction) && $contextpage !=
'poslist') {
1085 if (in_array($line->id, $arrayofselected)) {
1088 print
'<input id="cb'.$line->id.
'" class="flat checkforselect" type="checkbox" name="toselect[]" value="'.$line->id.
'"'.($selected ?
' checked="checked"' :
'').
' />';
1092 $totalarray[
'nbfield']++;
1097 if (!empty($arrayfields[
't.piece_num'][
'checked'])) {
1099 $object->id = $line->id;
1100 $object->piece_num = $line->piece_num;
1101 print $object->getNomUrl(1,
'', 0,
'', 1);
1104 $totalarray[
'nbfield']++;
1109 if (!empty($arrayfields[
't.code_journal'][
'checked'])) {
1111 $result = $accountingjournal->fetch(
'', $line->code_journal);
1112 $journaltoshow = (($result > 0) ? $accountingjournal->getNomUrl(0, 0, 0,
'', 0) : $line->code_journal);
1113 print
'<td class="center tdoverflowmax150">'.$journaltoshow.
'</td>';
1115 $totalarray[
'nbfield']++;
1120 if (!empty($arrayfields[
't.doc_date'][
'checked'])) {
1121 print
'<td class="center">'.dol_print_date($line->doc_date,
'day').
'</td>';
1123 $totalarray[
'nbfield']++;
1128 if (!empty($arrayfields[
't.doc_ref'][
'checked'])) {
1129 if ($line->doc_type ==
'customer_invoice') {
1130 $langs->loadLangs(array(
'bills'));
1132 require_once DOL_DOCUMENT_ROOT.
'/compta/facture/class/facture.class.php';
1133 $objectstatic =
new Facture($db);
1134 $objectstatic->fetch($line->fk_doc);
1139 $urlsource = $_SERVER[
'PHP_SELF'].
'?id='.$objectstatic->id;
1140 $documentlink = $formfile->getDocumentsLink($objectstatic->element, $filename, $filedir);
1141 } elseif ($line->doc_type ==
'supplier_invoice') {
1142 $langs->loadLangs(array(
'bills'));
1144 require_once DOL_DOCUMENT_ROOT.
'/fourn/class/fournisseur.facture.class.php';
1146 $objectstatic->fetch($line->fk_doc);
1150 $filedir = $conf->fournisseur->facture->dir_output.
'/'.
get_exdir($line->fk_doc, 2, 0, 0, $objectstatic, $modulepart).dol_sanitizeFileName($line->doc_ref);
1151 $subdir =
get_exdir($objectstatic->id, 2, 0, 0, $objectstatic, $modulepart).dol_sanitizeFileName($line->doc_ref);
1152 $documentlink = $formfile->getDocumentsLink($objectstatic->element, $subdir, $filedir);
1153 } elseif ($line->doc_type ==
'expense_report') {
1154 $langs->loadLangs(array(
'trips'));
1156 require_once DOL_DOCUMENT_ROOT.
'/expensereport/class/expensereport.class.php';
1158 $objectstatic->fetch($line->fk_doc);
1163 $urlsource = $_SERVER[
'PHP_SELF'].
'?id='.$objectstatic->id;
1164 $documentlink = $formfile->getDocumentsLink($objectstatic->element, $filename, $filedir);
1165 } elseif ($line->doc_type ==
'bank') {
1166 require_once DOL_DOCUMENT_ROOT.
'/compta/bank/class/account.class.php';
1168 $objectstatic->fetch($line->fk_doc);
1174 $labeltoshowalt =
'';
1175 if ($line->doc_type ==
'customer_invoice' || $line->doc_type ==
'supplier_invoice' || $line->doc_type ==
'expense_report') {
1176 $labeltoshow .= $objectstatic->getNomUrl(1,
'', 0, 0,
'', 0, -1, 1);
1177 $labeltoshow .= $documentlink;
1178 $labeltoshowalt .= $objectstatic->ref;
1179 } elseif ($line->doc_type ==
'bank') {
1180 $labeltoshow .= $objectstatic->getNomUrl(1);
1181 $labeltoshowalt .= $objectstatic->ref;
1182 $bank_ref = strstr($line->doc_ref,
'-');
1183 $labeltoshow .=
" " . $bank_ref;
1184 $labeltoshowalt .=
" " . $bank_ref;
1186 $labeltoshow .= $line->doc_ref;
1187 $labeltoshowalt .= $line->doc_ref;
1190 print
'<td class="nowraponall tdoverflowmax200" title="'.dol_escape_htmltag($labeltoshowalt).
'">';
1194 $totalarray[
'nbfield']++;
1199 if (!empty($arrayfields[
't.numero_compte'][
'checked'])) {
1200 print
'<td>'.length_accountg($line->numero_compte).
'</td>';
1202 $totalarray[
'nbfield']++;
1207 if (!empty($arrayfields[
't.subledger_account'][
'checked'])) {
1208 print
'<td>'.length_accounta($line->subledger_account).
'</td>';
1210 $totalarray[
'nbfield']++;
1215 if (!empty($arrayfields[
't.label_operation'][
'checked'])) {
1216 print
'<td class="small tdoverflowmax200" title="'.dol_escape_htmltag($line->label_operation).
'">'.
dol_escape_htmltag($line->label_operation).
'</td>';
1218 $totalarray[
'nbfield']++;
1223 if (!empty($arrayfields[
't.debit'][
'checked'])) {
1224 print
'<td class="right nowraponall amount">'.($line->debit != 0 ?
price($line->debit) :
'').
'</td>';
1226 $totalarray[
'nbfield']++;
1229 $totalarray[
'pos'][$totalarray[
'nbfield']] =
'totaldebit';
1231 $totalarray[
'val'][
'totaldebit'] += $line->debit;
1235 if (!empty($arrayfields[
't.credit'][
'checked'])) {
1236 print
'<td class="right nowraponall amount">'.($line->credit != 0 ?
price($line->credit) :
'').
'</td>';
1238 $totalarray[
'nbfield']++;
1241 $totalarray[
'pos'][$totalarray[
'nbfield']] =
'totalcredit';
1243 $totalarray[
'val'][
'totalcredit'] += $line->credit;
1247 if (!empty($arrayfields[
't.lettering_code'][
'checked'])) {
1248 print
'<td class="center">'.$line->lettering_code.
'</td>';
1250 $totalarray[
'nbfield']++;
1255 $parameters = array(
'arrayfields'=>$arrayfields,
'obj'=>$obj,
'i'=>$i,
'totalarray'=>&$totalarray);
1256 $reshook = $hookmanager->executeHooks(
'printFieldListValue', $parameters);
1257 print $hookmanager->resPrint;
1260 if (!empty($arrayfields[
't.date_creation'][
'checked'])) {
1261 print
'<td class="center">'.dol_print_date($line->date_creation,
'dayhour',
'tzuserrel').
'</td>';
1263 $totalarray[
'nbfield']++;
1268 if (!empty($arrayfields[
't.tms'][
'checked'])) {
1269 print
'<td class="center">'.dol_print_date($line->date_modification,
'dayhour',
'tzuserrel').
'</td>';
1271 $totalarray[
'nbfield']++;
1276 if (!empty($arrayfields[
't.date_export'][
'checked'])) {
1277 print
'<td class="center nowraponall">'.dol_print_date($line->date_export,
'dayhour',
'tzuserrel').
'</td>';
1279 $totalarray[
'nbfield']++;
1284 if (!empty($arrayfields[
't.date_validated'][
'checked'])) {
1285 print
'<td class="center nowraponall">'.dol_print_date($line->date_validation,
'dayhour',
'tzuserrel').
'</td>';
1287 $totalarray[
'nbfield']++;
1291 if (!empty($arrayfields[
't.import_key'][
'checked'])) {
1292 print
'<td class="tdoverflowmax100">'.$obj->import_key.
"</td>\n";
1294 $totalarray[
'nbfield']++;
1300 print
'<td class="nowraponall center">';
1301 if (($massactionbutton || $massaction) && $contextpage !=
'poslist') {
1303 if (in_array($line->id, $arrayofselected)) {
1306 print
'<input id="cb'.$line->id.
'" class="flat checkforselect" type="checkbox" name="toselect[]" value="'.$line->id.
'"'.($selected ?
' checked="checked"' :
'').
' />';
1310 $totalarray[
'nbfield']++;
1321 include DOL_DOCUMENT_ROOT.
'/core/tpl/list_print_total.tpl.php';
1326 foreach ($arrayfields as $key => $val) {
1327 if (!empty($val[
'checked'])) {
1331 print
'<tr><td colspan="'.$colspan.
'"><span class="opacitymedium">'.$langs->trans(
"NoRecordFound").
'</span></td></tr>';
1334 $parameters = array(
'arrayfields'=>$arrayfields,
'sql'=>
$sql);
1335 $reshook = $hookmanager->executeHooks(
'printFieldListFooter', $parameters, $object, $action);
1336 print $hookmanager->resPrint;