32require
'../../main.inc.php';
33require_once DOL_DOCUMENT_ROOT.
'/core/lib/bank.lib.php';
34require_once DOL_DOCUMENT_ROOT.
'/societe/class/societe.class.php';
35require_once DOL_DOCUMENT_ROOT.
'/adherents/class/adherent.class.php';
36require_once DOL_DOCUMENT_ROOT.
'/compta/sociales/class/chargesociales.class.php';
37require_once DOL_DOCUMENT_ROOT.
'/compta/paiement/class/paiement.class.php';
38require_once DOL_DOCUMENT_ROOT.
'/compta/tva/class/tva.class.php';
39require_once DOL_DOCUMENT_ROOT.
'/fourn/class/paiementfourn.class.php';
40require_once DOL_DOCUMENT_ROOT.
'/compta/bank/class/account.class.php';
41require_once DOL_DOCUMENT_ROOT.
'/compta/paiement/cheque/class/remisecheque.class.php';
42require_once DOL_DOCUMENT_ROOT.
'/compta/facture/class/facture.class.php';
43require_once DOL_DOCUMENT_ROOT.
'/fourn/class/fournisseur.facture.class.php';
44require_once DOL_DOCUMENT_ROOT.
'/don/class/paymentdonation.class.php';
45require_once DOL_DOCUMENT_ROOT.
'/loan/class/paymentloan.class.php';
46require_once DOL_DOCUMENT_ROOT.
'/compta/bank/class/paymentvarious.class.php';
48require_once DOL_DOCUMENT_ROOT.
'/core/lib/files.lib.php';
49require_once DOL_DOCUMENT_ROOT.
'/core/lib/functions.lib.php';
52$langs->loadLangs(array(
"banks",
"categories",
"companies",
"bills",
"trips",
"donations",
"loan",
"salaries"));
54$action =
GETPOST(
'action',
'aZ09');
57$dvid =
GETPOST(
'dvid',
'alpha');
58$numref =
GETPOST(
'num',
'alpha');
60$brref =
GETPOST(
'brref',
'alpha');
61$oldbankreceipt =
GETPOST(
'oldbankreceipt',
'alpha');
62$newbankreceipt =
GETPOST(
'newbankreceipt',
'alpha');
63$rel =
GETPOST(
"rel",
'alphanohtml');
64$backtopage =
GETPOST(
'backtopage',
'alpha');
67$hookmanager->initHooks(array(
'bankaccountstatement',
'globalcard'));
69if ($user->hasRight(
'banque',
'consolidate') && $action ==
'dvnext' && !empty($dvid)) {
71 $al->datev_next($dvid);
74if ($user->hasRight(
'banque',
'consolidate') && $action ==
'dvprev' && !empty($dvid)) {
76 $al->datev_previous($dvid);
81$sortfield =
GETPOST(
'sortfield',
'aZ09comma');
82$sortorder =
GETPOST(
'sortorder',
'aZ09comma');
84if (empty($page) || $page < 0 ||
GETPOST(
'button_search',
'alpha') ||
GETPOST(
'button_removefilter',
'alpha')) {
88$offset = $limit * $page;
99if ($id > 0 || !empty($ref)) {
100 $result =
$object->fetch($id, $ref);
106$contextpage =
'banktransactionlist'.(empty(
$object->ref) ?
'' :
'-'.$object->id);
109$fieldid = (!empty($ref) ? $ref : $id);
110$fieldname = (!empty($ref) ?
'ref' :
'rowid');
112 $socid = $user->socid;
115$result =
restrictedArea($user,
'banque', $fieldid,
'bank_account',
'',
'', $fieldname);
123$sql =
"SELECT b.num_releve as num";
124$sql .=
" FROM ".MAIN_DB_PREFIX.
"bank as b";
125$sql .=
" WHERE b.num_releve < '".$db->escape($numref).
"'";
126$sql .=
" AND b.num_releve <> ''";
127$sql .=
" AND b.fk_account = ".((int)
$object->id);
128$sql .=
" ORDER BY b.num_releve DESC";
129$sql .= $db->plimit(1);
131dol_syslog(
"htdocs/compta/bank/releve.php", LOG_DEBUG);
132$resql = $db->query($sql);
134 $numrows = $db->num_rows($resql);
136 $obj = $db->fetch_object($resql);
137 if ($rel ==
'prev') {
140 $foundprevious = $obj->num;
146$sql =
"SELECT b.num_releve as num";
147$sql .=
" FROM ".MAIN_DB_PREFIX.
"bank as b";
148$sql .=
" WHERE b.num_releve > '".$db->escape($numref).
"'";
149$sql .=
" AND b.fk_account = ".((int)
$object->id);
150$sql .=
" ORDER BY b.num_releve ASC";
151$sql .= $db->plimit(1);
153dol_syslog(
"htdocs/compta/bank/releve.php", LOG_DEBUG);
154$resql = $db->query($sql);
156 $numrows = $db->num_rows($resql);
158 $obj = $db->fetch_object($resql);
159 if ($rel ==
'next') {
162 $foundnext = $obj->num;
168$sql =
"SELECT b.rowid, b.dateo as do, b.datev as dv,";
169$sql .=
" b.amount, b.label, b.rappro, b.num_releve, b.num_chq, b.fk_type,";
170$sql .=
" b.fk_bordereau,";
172$sql .=
" ba.rowid as bankid, ba.ref as bankref, ba.label as banklabel";
173$sql .=
" FROM ".MAIN_DB_PREFIX.
"bank_account as ba,";
174$sql .=
" ".MAIN_DB_PREFIX.
"bank as b";
175$sql .=
' LEFT JOIN '.MAIN_DB_PREFIX.
'bordereau_cheque as bc ON bc.rowid=b.fk_bordereau';
176$sql .=
" WHERE b.num_releve = '".$db->escape($numref).
"'";
178 $sql .=
" OR b.num_releve is null";
180$sql .=
" AND b.fk_account = ".((int)
$object->id);
181$sql .=
" AND b.fk_account = ba.rowid";
182$sql .=
" AND ba.entity IN (".getEntity(
$object->element).
")";
183$sql .= $db->order(
"b.datev, b.datec",
"ASC");
185$sqlrequestforbankline = $sql;
192if ($action ==
'confirm_editbankreceipt' && !empty($oldbankreceipt) && !empty($newbankreceipt)) {
194 $sqltest =
"SELECT b.rowid FROM ".MAIN_DB_PREFIX.
"bank as b, ".MAIN_DB_PREFIX.
"bank_account as ba";
195 $sqltest .=
" WHERE b.fk_account = ba.rowid AND ba.entity = ".((int) $conf->entity);
196 $sqltest .=
" AND num_releve = '".$db->escape($newbankreceipt).
"'";
197 $sqltest .= $db->plimit(1);
199 $resql = $db->query($sqltest);
201 $obj = $db->fetch_object($resql);
202 if ($obj && $obj->rowid) {
212 $sqlupdate =
"UPDATE ".MAIN_DB_PREFIX.
"bank SET num_releve = '".$db->escape($newbankreceipt).
"'";
213 $sqlupdate .=
" WHERE num_releve = '".$db->escape($oldbankreceipt).
"' AND fk_account = ".((int) $id);
215 $resql = $db->query($sqlupdate);
229$form =
new Form($db);
230$societestatic =
new Societe($db);
235$paymentvatstatic =
new Tva($db);
245if (!empty($contextpage) && $contextpage != $_SERVER[
"PHP_SELF"]) {
246 $param .=
'&contextpage='.$contextpage;
248if ($limit > 0 && $limit != $conf->liste_limit) {
249 $param .=
'&limit='.$limit;
252 $param .=
'&id='.urlencode((
string) ($id));
256 $title =
$object->ref.
' - '.$langs->trans(
"AccountStatements");
259 $title = $langs->trans(
"FinancialAccount").
' - '.$langs->trans(
"AccountStatements");
272 $sql =
"SELECT DISTINCT(b.num_releve) as numr";
273 $sql .=
" FROM ".MAIN_DB_PREFIX.
"bank as b";
274 $sql .=
" WHERE b.fk_account = ".((int)
$object->id);
275 $sql .=
" AND b.num_releve IS NOT NULL AND b.num_releve <> '' AND b.num_releve <> '0'";
276 $sql .= $db->order($sortfield, $sortorder);
281 $result = $db->query($sql);
282 $totalnboflines = $db->num_rows($result);
285 $sql .= $db->plimit($limit + 1, $offset);
287 $resql = $db->query($sql);
289 $num = $db->num_rows($resql);
294 print
dol_get_fiche_head($head,
'statement', $langs->trans(
"FinancialAccount"), 0,
'account');
296 $linkback =
'<a href="'.DOL_URL_ROOT.
'/compta/bank/list.php?restore_lastsearch_values=1">'.$langs->trans(
"BackToList").
'</a>';
300 dol_banner_tab($object,
'ref', $linkback, 1,
'ref',
'ref', $morehtmlref,
'', 0,
'',
'', 1);
305 if (
$object->canBeConciliated() > 0) {
306 $allowautomaticconciliation =
false;
307 $titletoconciliatemanual = $langs->trans(
"Conciliate");
308 $titletoconciliateauto = $langs->trans(
"Conciliate");
309 if ($allowautomaticconciliation) {
310 $titletoconciliatemanual .=
' ('.$langs->trans(
"Manual").
')';
311 $titletoconciliateauto .=
' ('.$langs->trans(
"Auto").
')';
315 if ($user->hasRight(
'banque',
'consolidate')) {
316 $buttonreconcile =
'<a class="butAction" href="'.DOL_URL_ROOT.
'/compta/bank/bankentries_list.php?action=reconcile&token='.newToken().
'&sortfield=b.datev,b.dateo,b.rowid&sortorder=asc,asc,asc&search_conciliated=0&search_account='.$id.$param.
'">'.$titletoconciliatemanual.
'</a>';
318 $buttonreconcile =
'<a class="butActionRefused classfortooltip" title="'.$langs->trans(
"NotEnoughPermissions").
'" href="#">'.$titletoconciliatemanual.
'</a>';
322 if ($allowautomaticconciliation) {
324 if ($user->hasRight(
'banque',
'consolidate')) {
326 $newparam = preg_replace(
'/search_conciliated=\d+/i',
'', $newparam);
327 $buttonreconcile .=
' <a class="butAction" style="margin-bottom: 5px !important; margin-top: 5px !important" href="'.DOL_URL_ROOT.
'/compta/bank/bankentries_list.php?action=reconcile&token='.newToken().
'&sortfield=b.datev,b.dateo,b.rowid&sortorder=asc,asc,asc&search_conciliated=0'.$newparam.
'">'.$titletoconciliateauto.
'</a>';
329 $buttonreconcile .=
' <a class="butActionRefused" style="margin-bottom: 5px !important; margin-top: 5px !important" title="'.$langs->trans(
"NotEnoughPermissions").
'" href="#">'.$titletoconciliateauto.
'</a>';
335 $arrayofmassactions = array(
342 $massactionbutton = $form->selectMassAction(
'', $arrayofmassactions);
345 if ($action !=
'addline' && $action !=
'reconcile') {
346 $morehtml .= $buttonreconcile;
349 print
'<form name="aaa" action="'.$_SERVER[
"PHP_SELF"].
'" method="POST">';
350 print
'<input type="hidden" name="token" value="'.newToken().
'">';
351 print
'<input type="hidden" name="action" value="confirm_editbankreceipt">';
352 print
'<input type="hidden" name="backtopage" value="'.$backtopage.
'">';
353 print
'<input type="hidden" name="account" value="'.$object->id.
'">';
354 print
'<input type="hidden" name="page" value="'.$page.
'">';
356 $param =
"&account=".$object->id.($limit ?
'&limit='.$limit :
'');
357 print_barre_liste($langs->trans(
"AccountStatements"), $page, $_SERVER[
"PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton.$morehtml, $num, $totalnboflines,
'', 0,
'',
'', $limit, 0, 0, 1);
359 print
'<table class="noborder centpercent">';
360 print
'<tr class="liste_titre">';
361 print
'<td>'.$langs->trans(
"Ref").
'</td>';
362 print
'<td class="right">'.$langs->trans(
"InitialBankBalance").
'</td>';
363 print
'<td class="right">'.$langs->trans(
"EndBankBalance").
'</td>';
367 $balancestart = array();
370 $imaxinloop = ($limit ? min($num, $limit) : $num);
371 while ($i < $imaxinloop) {
372 $objp = $db->fetch_object($resql);
374 print
'<tr class="oddeven">';
376 if ($action !=
'editbankreceipt' || $objp->numr != $brref) {
377 print
'<a href="releve.php?num='.$objp->numr.
'&account='.
$object->id.
'">'.$objp->numr.
'</a>';
379 print
'<input type="hidden" name="oldbankreceipt" value="'.$objp->numr.
'">';
380 print
'<input type="text" name="newbankreceipt" value="'.$objp->numr.
'">';
381 print
'<input type="submit" class="button smallpaddingimp" name="actionnewbankreceipt" value="'.$langs->trans(
"Save").
'">';
382 print
'<input type="submit" class="button button-cancel smallpaddingimp" name="cancel" value="'.$langs->trans(
"Cancel").
'">';
387 $sql =
"SELECT sum(b.amount) as amount";
388 $sql .=
" FROM ".MAIN_DB_PREFIX.
"bank as b";
389 $sql .=
" WHERE b.num_releve < '".$db->escape($objp->numr).
"'";
390 $sql .=
" AND b.num_releve <> ''";
391 $sql .=
" AND b.fk_account = ".((int)
$object->id);
392 $resqlstart = $db->query($sql);
394 $obj = $db->fetch_object($resqlstart);
395 $balancestart[$objp->numr] = $obj->amount;
396 $db->free($resqlstart);
398 print
'<td class="right"><span class="amount">'.price($balancestart[$objp->numr], 0, $langs, 1, -1, -1, empty(
$object->currency_code) ? $conf->currency :
$object->currency_code).
'</span></td>';
401 $sql =
"SELECT sum(b.amount) as amount";
402 $sql .=
" FROM ".MAIN_DB_PREFIX.
"bank as b";
403 $sql .=
" WHERE b.num_releve = '".$db->escape($objp->numr).
"'";
404 $sql .=
" AND b.fk_account = ".((int)
$object->id);
405 $resqlend = $db->query($sql);
407 $obj = $db->fetch_object($resqlend);
408 $content[$objp->numr] = $obj->amount;
409 $db->free($resqlend);
411 print
'<td class="right"><span class="amount">'.price(($balancestart[$objp->numr] + $content[$objp->numr]), 0, $langs, 1, -1, -1, empty(
$object->currency_code) ? $conf->currency :
$object->currency_code).
'</span></td>';
413 print
'<td class="center">';
414 if ($user->hasRight(
'banque',
'consolidate') && $action !=
'editbankreceipt') {
415 print
'<a class="editfielda" href="'.$_SERVER[
"PHP_SELF"].
'?account='.
$object->id.($page > 0 ?
'&page='.$page :
'').
'&action=editbankreceipt&token='.newToken().
'&brref='.urlencode($objp->numr).
'">'.
img_edit().
'</a>';
426 print
'<tr><td colspan="5"><span class="opacitymedium">'.$langs->trans(
"None").
'</span></td></tr>';
443 print
dol_get_fiche_head($head,
'statement', $langs->trans(
"AccountStatement"), -1,
'account');
447 $morehtmlright .=
'<div class="pagination"><ul>';
448 if ($foundprevious) {
449 $morehtmlright .=
'<li class="pagination"><a class="paginationnext" href="'.$_SERVER[
"PHP_SELF"].
'?num='.urlencode($foundprevious).
'&ve='.urlencode($ve).
'&account='.((int)
$object->id).
'"><i class="fa fa-chevron-left" title="'.
dol_escape_htmltag($langs->trans(
"Previous")).
'"></i></a></li>';
451 $morehtmlright .=
'<li class="pagination"><span class="active">'.$langs->trans(
"AccountStatement").
" ".$numref.
'</span></li>';
453 $morehtmlright .=
'<li class="pagination"><a class="paginationnext" href="'.$_SERVER[
"PHP_SELF"].
'?num='.urlencode($foundnext).
'&ve='.urlencode($ve).
'&account='.((int)
$object->id).
'"><i class="fa fa-chevron-right" title="'.
dol_escape_htmltag($langs->trans(
"Next")).
'"></i></a></li>';
455 $morehtmlright .=
'</ul></div>';
457 $title = $langs->trans(
"AccountStatement").
' '.$numref.
' - '.$langs->trans(
"BankAccount").
' '.
$object->getNomUrl(1,
'receipts');
460 print
'<form method="POST" action="'.$_SERVER[
"PHP_SELF"].
'">';
461 print
'<input type="hidden" name="token" value="'.newToken().
'">';
462 print
'<input type="hidden" name="action" value="add">';
464 print
'<div class="div-table-responsive">';
465 print
'<table class="noborder centpercent">';
466 print
'<tr class="liste_titre">';
467 print
'<td class="center">'.$langs->trans(
"DateOperationShort").
'</td>';
468 print
'<td class="center">'.$langs->trans(
"DateValueShort").
'</td>';
469 print
'<td>'.$langs->trans(
"Type").
'</td>';
470 print
'<td>'.$langs->trans(
"Description").
'</td>';
471 print
'<td class="right" width="60">'.$langs->trans(
"Debit").
'</td>';
472 print
'<td class="right" width="60">'.$langs->trans(
"Credit").
'</td>';
473 print
'<td class="right">'.$langs->trans(
"Balance").
'</td>';
474 print
'<td> </td>';
478 $sql =
"SELECT sum(b.amount) as amount";
479 $sql .=
" FROM ".MAIN_DB_PREFIX.
"bank as b";
480 $sql .=
" WHERE b.num_releve < '".$db->escape($numref).
"'";
481 $sql .=
" AND b.num_releve <> ''";
482 $sql .=
" AND b.fk_account = ".((int)
$object->id);
484 $resql = $db->query($sql);
486 $obj = $db->fetch_object($resql);
487 $total = $obj->amount;
491 $totalc = $totald = 0;
494 $sql = $sqlrequestforbankline;
496 $resql = $db->query($sql);
498 $num = $db->num_rows($resql);
502 print
'<tr class="oddeven"><td colspan="3"></td>';
503 print
'<td colspan="3"><b>'.$langs->trans(
"InitialBankBalance").
" :</b></td>";
504 print
'<td class="right"><b>'.price($total).
'</b></td><td> </td>';
508 $objp = $db->fetch_object($resql);
509 $total = $total + $objp->amount;
511 print
'<tr class="oddeven">';
514 print
'<td class="nowrap center">'.dol_print_date($db->jdate($objp->do),
"day").
'</td>';
517 print
'<td valign="center" class="center nowrap">';
518 print
'<span class="spanforajaxedit">'.dol_print_date($db->jdate($objp->dv),
"day").
'</span>';
520 print
'<span class="inline-block">';
521 print
'<a class="ajaxforbankoperationchange reposition" href="'.$_SERVER[
'PHP_SELF'].
'?action=dvprev&num='.urlencode($numref).
'&account='.
$object->id.
'&rowid='.$objp->rowid.
'&dvid='.$objp->rowid.
'">';
523 print
'<a class="ajaxforbankoperationchange reposition" href="'.$_SERVER[
'PHP_SELF'].
'?action=dvnext&num='.urlencode($numref).
'&account='.
$object->id.
'&rowid='.$objp->rowid.
'&dvid='.$objp->rowid.
'">';
529 if ($objp->fk_type ==
'SOLD') {
530 $type_label =
' ';
532 $type_label = ($langs->trans(
"PaymentTypeShort".$objp->fk_type) !=
"PaymentTypeShort".$objp->fk_type) ? $langs->trans(
"PaymentTypeShort".$objp->fk_type) : $objp->fk_type;
535 if ($objp->fk_bordereau > 0) {
536 $remisestatic->id = $objp->fk_bordereau;
537 $remisestatic->ref = $objp->ref;
538 $link =
' '.$remisestatic->getNomUrl(1);
540 print
'<td class="nowrap">'.$type_label.
' '.($objp->num_chq ? $objp->num_chq :
'').$link.
'</td>';
543 print
'<td valign="center">';
544 print
'<a href="'.DOL_URL_ROOT.
'/compta/bank/line.php?rowid='.$objp->rowid.
'&account='.
$object->id.
'">';
547 preg_match(
'/\((.+)\)/i', $objp->label, $reg);
548 if (!empty($reg[1]) && $langs->trans($reg[1]) != $reg[1]) {
549 print $langs->trans($reg[1]);
559 $links =
$object->get_url($objp->rowid);
560 foreach ($links as $key => $val) {
566 if ($links[$key][
'type'] ==
'payment') {
567 $paymentstatic->id = $links[$key][
'url_id'];
568 $paymentstatic->ref = $langs->trans(
"Payment");
569 print
' '.$paymentstatic->getNomUrl(1);
571 } elseif ($links[$key][
'type'] ==
'payment_supplier') {
572 $paymentsupplierstatic->id = $links[$key][
'url_id'];
573 $paymentsupplierstatic->ref = $langs->trans(
"Payment");
574 print
' '.$paymentsupplierstatic->getNomUrl(1);
576 } elseif ($links[$key][
'type'] ==
'payment_sc') {
577 print
'<a href="'.DOL_URL_ROOT.
'/compta/payment_sc/card.php?id='.$links[$key][
'url_id'].
'">';
578 print
' '.img_object($langs->trans(
'ShowPayment'),
'payment').
' ';
579 print $langs->trans(
"SocialContributionPayment");
582 } elseif ($links[$key][
'type'] ==
'payment_vat') {
583 $paymentvatstatic->id = $links[$key][
'url_id'];
584 $paymentvatstatic->ref = $langs->trans(
"Payment");
585 print
' '.$paymentvatstatic->getNomUrl(1);
586 } elseif ($links[$key][
'type'] ==
'payment_salary') {
587 print
'<a href="'.DOL_URL_ROOT.
'/salaries/card.php?id='.$links[$key][
'url_id'].
'">';
588 print
' '.img_object($langs->trans(
'ShowPayment'),
'payment').
' ';
589 print $langs->trans(
"Payment");
592 } elseif ($links[$key][
'type'] ==
'payment_donation') {
593 $paymentdonationstatic->id = $links[$key][
'url_id'];
594 $paymentdonationstatic->ref = $langs->trans(
"Payment");
595 print
' '.$paymentdonationstatic->getNomUrl(1);
597 } elseif ($links[$key][
'type'] ==
'payment_loan') {
598 $paymentloanstatic->id = $links[$key][
'url_id'];
599 $paymentloanstatic->ref = $langs->trans(
"Payment");
600 print
' '.$paymentloanstatic->getNomUrl(1);
602 } elseif ($links[$key][
'type'] ==
'payment_various') {
603 $paymentvariousstatic->id = $links[$key][
'url_id'];
604 $paymentvariousstatic->ref = $langs->trans(
"Payment");
605 print
' '.$paymentvariousstatic->getNomUrl(1);
607 } elseif ($links[$key][
'type'] ==
'banktransfert') {
609 if ($objp->amount > 0) {
610 $banklinestatic->fetch($links[$key][
'url_id']);
611 $bankstatic->id = $banklinestatic->fk_account;
612 $bankstatic->label = $banklinestatic->bank_account_label;
613 print
' ('.$langs->trans(
"from").
' ';
614 print $bankstatic->getNomUrl(1,
'transactions');
615 print
' '.$langs->trans(
"toward").
' ';
616 $bankstatic->id = $objp->bankid;
617 $bankstatic->label = $objp->bankref;
618 print $bankstatic->getNomUrl(1,
'');
621 $bankstatic->id = $objp->bankid;
622 $bankstatic->label = $objp->bankref;
623 print
' ('.$langs->trans(
"from").
' ';
624 print $bankstatic->getNomUrl(1,
'');
625 print
' '.$langs->trans(
"toward").
' ';
626 $banklinestatic->fetch($links[$key][
'url_id']);
627 $bankstatic->id = $banklinestatic->fk_account;
628 $bankstatic->label = $banklinestatic->bank_account_label;
629 print $bankstatic->getNomUrl(1,
'transactions');
632 } elseif ($links[$key][
'type'] ==
'company') {
633 $societestatic->id = $links[$key][
'url_id'];
634 $societestatic->name = $links[$key][
'label'];
635 print $societestatic->getNomUrl(1,
'company', 24);
637 } elseif ($links[$key][
'type'] ==
'member') {
638 print
'<a href="'.DOL_URL_ROOT.
'/adherents/card.php?rowid='.$links[$key][
'url_id'].
'">';
639 print
img_object($langs->trans(
'ShowMember'),
'user').
' ';
640 print $links[$key][
'label'];
643 } elseif ($links[$key][
'type'] ==
'user') {
644 print
'<a href="'.DOL_URL_ROOT.
'/user/card.php?id='.$links[$key][
'url_id'].
'">';
645 print
img_object($langs->trans(
'ShowUser'),
'user').
' ';
646 print $links[$key][
'label'];
649 } elseif ($links[$key][
'type'] ==
'sc') {
650 print
'<a href="'.DOL_URL_ROOT.
'/compta/sociales/card.php?id='.$links[$key][
'url_id'].
'">';
651 print
img_object($langs->trans(
'ShowBill'),
'bill').
' ';
652 print $langs->trans(
"SocialContribution");
656 print
'<a href="'.$links[$key][
'url'].$links[$key][
'url_id'].
'">';
657 print $links[$key][
'label'];
665 $sql =
"SELECT label";
666 $sql .=
" FROM ".MAIN_DB_PREFIX.
"category_bank as ct";
667 $sql .=
", ".MAIN_DB_PREFIX.
"bank_class as cl";
668 $sql .=
" WHERE ct.rowid = cl.fk_categ";
669 $sql .=
" AND ct.entity = ".((int) $conf->entity);
670 $sql .=
" AND cl.lineid = ".((int) $objp->rowid);
672 $resc = $db->query($sql);
674 $numc = $db->num_rows($resc);
676 if ($numc && !$newline) {
679 while ($ii < $numc) {
680 $objc = $db->fetch_object($resc);
681 print
"<br>- <i>".$objc->label.
"</i>";
691 if ($objp->amount < 0) {
692 $totald = $totald + abs($objp->amount);
693 print
'<td class="nowrap right">'.price($objp->amount * -1).
"</td><td> </td>\n";
695 $totalc = $totalc + abs($objp->amount);
696 print
'<td> </td><td class="nowrap right">'.price($objp->amount).
"</td>\n";
699 print
'<td class="nowrap right">'.price(
price2num($total,
'MT')).
"</td>\n";
701 if ($user->hasRight(
'banque',
'modifier') || $user->hasRight(
'banque',
'consolidate')) {
702 print
'<td class="center"><a class="editfielda reposition" href="'.DOL_URL_ROOT.
'/compta/bank/line.php?rowid='.$objp->rowid.
'&account='.
$object->id.
'&backtopage='.urlencode($_SERVER[
"PHP_SELF"].
'?account='.
$object->id.
'&num='.urlencode($numref)).
'">';
706 print
"<td class=\"center\"> </td>";
717 print
"\n".
'<tr class="liste_total"><td class="right" colspan="4">'.$langs->trans(
"Total").
' :</td><td class="right">'.
price($totald).
'</td><td class="right">'.
price($totalc).
"</td><td> </td><td> </td></tr>";
721 print
"<td class=\"right\" colspan=\"3\"> </td><td colspan=\"3\"><b>".$langs->trans(
"EndBankBalance").
" :</b></td>";
722 print
'<td class="right"><b>'.price(
price2num($total,
'MT')).
"</b></td><td> </td>";
727 $urlajax = DOL_URL_ROOT.
'/core/ajax/bankconciliate.php?token='.
currentToken();
729 <script type="text/javascript">
731 $("a.ajaxforbankoperationchange").each(function(){
732 var current = $(this);
733 current.click(function()
735 console.log("We click on ajaxforbankoperationchange");
736 var url = "'.$urlajax.
'&"+current.attr("href").split("?")[1];
737 $.get(url, function(data)
741 current.parent().parent().find(".spanforajaxedit").replaceWith(data);
if( $user->socid > 0) if(! $user->hasRight('accounting', 'chartofaccount')) $object
if(!defined('NOREQUIRESOC')) if(!defined( 'NOREQUIRETRAN')) if(!defined('NOTOKENRENEWAL')) if(!defined( 'NOREQUIREMENU')) if(!defined('NOREQUIREHTML')) if(!defined( 'NOREQUIREAJAX')) llxHeader($head='', $title='', $help_url='', $target='', $disablejs=0, $disablehead=0, $arrayofjs='', $arrayofcss='', $morequerystring='', $morecssonbody='', $replacemainareaby='', $disablenofollow=0, $disablenoindex=0)
Empty header.
account_statement_prepare_head($object, $num)
Prepare array with list of tabs.
bank_prepare_head(Account $object)
Prepare array with list of tabs.
Class to manage bank accounts.
Class to manage bank transaction lines.
Class to manage members of a foundation.
Class for managing the social charges.
Class to manage payments for supplier invoices.
Class to manage payments of customer invoices.
Class to manage payments of donations.
Class to manage payments of loans.
Class to manage various payments.
Class to manage cheque delivery receipts.
Class to manage third parties objects (customers, suppliers, prospects...)
Put here description of your class.
load_fiche_titre($title, $morehtmlright='', $picto='generic', $pictoisfullpath=0, $id='', $morecssontable='', $morehtmlcenter='')
Load a title with picto.
img_object($titlealt, $picto, $moreatt='', $pictoisfullpath=0, $srconly=0, $notitle=0)
Show a picto called object_picto (generic function)
GETPOSTINT($paramname, $method=0)
Return the value of a $_GET or $_POST supervariable, converted into integer.
dol_get_fiche_head($links=array(), $active='', $title='', $notab=0, $picto='', $pictoisfullpath=0, $morehtmlright='', $morecss='', $limittoshow=0, $moretabssuffix='', $dragdropfile=0)
Show tabs of a record.
price2num($amount, $rounding='', $option=0)
Function that return a number with universal decimal format (decimal separator is '.
currentToken()
Return the value of token currently saved into session with name 'token'.
dol_get_fiche_end($notab=0)
Return tab footer of a card.
price($amount, $form=0, $outlangs='', $trunc=1, $rounding=-1, $forcerounding=-1, $currency_code='')
Function to format a value into an amount for visual output Function used into PDF and HTML pages.
getDolGlobalInt($key, $default=0)
Return a Dolibarr global constant int value.
print_barre_liste($title, $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.
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.
dol_print_error($db=null, $error='', $errors=null)
Displays error message system with all the information to facilitate the diagnosis and the escalation...
img_edit_add($titlealt='default', $other='')
Show logo +.
img_edit($titlealt='default', $float=0, $other='')
Show logo edit/modify fiche.
dol_syslog($message, $level=LOG_INFO, $ident=0, $suffixinfilename='', $restricttologhandler='', $logcontext=null)
Write log message into outputs.
img_edit_remove($titlealt='default', $other='')
Show logo -.
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...
restrictedArea(User $user, $features, $object=0, $tableandshare='', $feature2='', $dbt_keyfield='fk_soc', $dbt_select='rowid', $isdraft=0, $mode=0)
Check permissions of a user to show a page and an object.