31 require
'../../main.inc.php';
32 require_once DOL_DOCUMENT_ROOT.
'/core/lib/bank.lib.php';
33 require_once DOL_DOCUMENT_ROOT.
'/societe/class/societe.class.php';
34 require_once DOL_DOCUMENT_ROOT.
'/adherents/class/adherent.class.php';
35 require_once DOL_DOCUMENT_ROOT.
'/compta/sociales/class/chargesociales.class.php';
36 require_once DOL_DOCUMENT_ROOT.
'/compta/paiement/class/paiement.class.php';
37 require_once DOL_DOCUMENT_ROOT.
'/compta/tva/class/tva.class.php';
38 require_once DOL_DOCUMENT_ROOT.
'/fourn/class/paiementfourn.class.php';
39 require_once DOL_DOCUMENT_ROOT.
'/compta/bank/class/account.class.php';
40 require_once DOL_DOCUMENT_ROOT.
'/compta/paiement/cheque/class/remisecheque.class.php';
41 require_once DOL_DOCUMENT_ROOT.
'/compta/facture/class/facture.class.php';
42 require_once DOL_DOCUMENT_ROOT.
'/fourn/class/fournisseur.facture.class.php';
43 require_once DOL_DOCUMENT_ROOT.
'/don/class/paymentdonation.class.php';
44 require_once DOL_DOCUMENT_ROOT.
'/loan/class/paymentloan.class.php';
45 require_once DOL_DOCUMENT_ROOT.
'/compta/bank/class/paymentvarious.class.php';
47 require_once DOL_DOCUMENT_ROOT.
'/core/lib/files.lib.php';
48 require_once DOL_DOCUMENT_ROOT.
'/core/lib/functions.lib.php';
51 $langs->loadLangs(array(
"banks",
"categories",
"companies",
"bills",
"trips",
"donations",
"loan",
"salaries"));
53 $action =
GETPOST(
'action',
'aZ09');
56 $dvid =
GETPOST(
'dvid',
'alpha');
57 $numref =
GETPOST(
'num',
'alpha');
59 $brref =
GETPOST(
'brref',
'alpha');
60 $oldbankreceipt =
GETPOST(
'oldbankreceipt',
'alpha');
61 $newbankreceipt =
GETPOST(
'newbankreceipt',
'alpha');
62 $rel =
GETPOST(
"rel",
'alphanohtml');
63 $backtopage =
GETPOST(
'backtopage',
'alpha');
66 $hookmanager->initHooks(array(
'bankaccountstatement',
'globalcard'));
68 if ($user->hasRight(
'banque',
'consolidate') && $action ==
'dvnext' && !empty($dvid)) {
70 $al->datev_next($dvid);
73 if ($user->hasRight(
'banque',
'consolidate') && $action ==
'dvprev' && !empty($dvid)) {
75 $al->datev_previous($dvid);
80 $sortfield =
GETPOST(
'sortfield',
'aZ09comma');
81 $sortorder =
GETPOST(
'sortorder',
'aZ09comma');
85 $page = $pageplusone - 1;
87 if (empty($page) || $page == -1) {
90 $offset = $limit * $page;
91 $pageprev = $page - 1;
92 $pagenext = $page + 1;
101 if ($id > 0 || !empty($ref)) {
102 $result =
$object->fetch($id, $ref);
108 $contextpage =
'banktransactionlist'.(empty(
$object->ref) ?
'' :
'-'.$object->id);
111 $fieldid = (!empty($ref) ? $ref : $id);
112 $fieldname = (!empty($ref) ?
'ref' :
'rowid');
114 $socid = $user->socid;
117 $result =
restrictedArea($user,
'banque', $fieldid,
'bank_account',
'',
'', $fieldname);
125 $sql =
"SELECT b.num_releve as num";
126 $sql .=
" FROM ".MAIN_DB_PREFIX.
"bank as b";
127 $sql .=
" WHERE b.num_releve < '".$db->escape($numref).
"'";
128 $sql .=
" AND b.num_releve <> ''";
129 $sql .=
" AND b.fk_account = ".((int)
$object->id);
130 $sql .=
" ORDER BY b.num_releve DESC";
131 $sql .= $db->plimit(1);
133 dol_syslog(
"htdocs/compta/bank/releve.php", LOG_DEBUG);
134 $resql = $db->query(
$sql);
136 $numrows = $db->num_rows($resql);
138 $obj = $db->fetch_object($resql);
139 if ($rel ==
'prev') {
142 $foundprevious = $obj->num;
148 $sql =
"SELECT b.num_releve as num";
149 $sql .=
" FROM ".MAIN_DB_PREFIX.
"bank as b";
150 $sql .=
" WHERE b.num_releve > '".$db->escape($numref).
"'";
151 $sql .=
" AND b.fk_account = ".((int)
$object->id);
152 $sql .=
" ORDER BY b.num_releve ASC";
153 $sql .= $db->plimit(1);
155 dol_syslog(
"htdocs/compta/bank/releve.php", LOG_DEBUG);
156 $resql = $db->query(
$sql);
158 $numrows = $db->num_rows($resql);
160 $obj = $db->fetch_object($resql);
161 if ($rel ==
'next') {
164 $foundnext = $obj->num;
170 $sql =
"SELECT b.rowid, b.dateo as do, b.datev as dv,";
171 $sql .=
" b.amount, b.label, b.rappro, b.num_releve, b.num_chq, b.fk_type,";
172 $sql .=
" b.fk_bordereau,";
174 $sql .=
" ba.rowid as bankid, ba.ref as bankref, ba.label as banklabel";
175 $sql .=
" FROM ".MAIN_DB_PREFIX.
"bank_account as ba,";
176 $sql .=
" ".MAIN_DB_PREFIX.
"bank as b";
177 $sql .=
' LEFT JOIN '.MAIN_DB_PREFIX.
'bordereau_cheque as bc ON bc.rowid=b.fk_bordereau';
178 $sql .=
" WHERE b.num_releve = '".$db->escape($numref).
"'";
179 if (empty($numref)) {
180 $sql .=
" OR b.num_releve is null";
182 $sql .=
" AND b.fk_account = ".((int)
$object->id);
183 $sql .=
" AND b.fk_account = ba.rowid";
184 $sql .=
" AND ba.entity IN (".getEntity(
$object->element).
")";
185 $sql .= $db->order(
"b.datev, b.datec",
"ASC");
187 $sqlrequestforbankline =
$sql;
194 if ($action ==
'confirm_editbankreceipt' && !empty($oldbankreceipt) && !empty($newbankreceipt)) {
196 $sqltest =
"SELECT b.rowid FROM ".MAIN_DB_PREFIX.
"bank as b, ".MAIN_DB_PREFIX.
"bank_account as ba";
197 $sqltest .=
" WHERE b.fk_account = ba.rowid AND ba.entity = ".((int) $conf->entity);
198 $sqltest .=
" AND num_releve = '".$db->escape($newbankreceipt).
"'";
199 $sqltest .= $db->plimit(1);
201 $resql = $db->query($sqltest);
203 $obj = $db->fetch_object($resql);
204 if ($obj && $obj->rowid) {
214 $sqlupdate =
"UPDATE ".MAIN_DB_PREFIX.
"bank SET num_releve = '".$db->escape($newbankreceipt).
"'";
215 $sqlupdate .=
" WHERE num_releve = '".$db->escape($oldbankreceipt).
"' AND fk_account = ".((int) $id);
217 $resql = $db->query($sqlupdate);
231 $form =
new Form($db);
232 $societestatic =
new Societe($db);
237 $paymentvatstatic =
new Tva($db);
238 $bankstatic =
new Account($db);
247 if (!empty($contextpage) && $contextpage != $_SERVER[
"PHP_SELF"]) {
248 $param .=
'&contextpage='.$contextpage;
250 if ($limit > 0 && $limit != $conf->liste_limit) {
251 $param .=
'&limit='.$limit;
254 $param .=
'&id='.urlencode((
string) ($id));
257 if (empty($numref)) {
258 $title =
$object->ref.
' - '.$langs->trans(
"AccountStatements");
261 $title = $langs->trans(
"FinancialAccount").
' - '.$langs->trans(
"AccountStatements");
269 if (empty($numref)) {
274 $sql =
"SELECT DISTINCT(b.num_releve) as numr";
275 $sql .=
" FROM ".MAIN_DB_PREFIX.
"bank as b";
276 $sql .=
" WHERE b.fk_account = ".((int)
$object->id);
277 $sql .=
" AND b.num_releve IS NOT NULL";
278 $sql .= $db->order($sortfield, $sortorder);
283 $result = $db->query(
$sql);
284 $totalnboflines = $db->num_rows($result);
287 $sql .= $db->plimit($conf->liste_limit + 1, $offset);
289 $resql = $db->query(
$sql);
291 $numrows = $db->num_rows($resql);
296 print
dol_get_fiche_head($head,
'statement', $langs->trans(
"FinancialAccount"), 0,
'account');
298 $linkback =
'<a href="'.DOL_URL_ROOT.
'/compta/bank/list.php?restore_lastsearch_values=1">'.$langs->trans(
"BackToList").
'</a>';
302 dol_banner_tab(
$object,
'ref', $linkback, 1,
'ref',
'ref', $morehtmlref,
'', 0,
'',
'', 1);
307 print
'<div class="tabsAction">';
309 if (
$object->canBeConciliated() > 0) {
310 $allowautomaticconciliation =
false;
311 $titletoconciliatemanual = $langs->trans(
"Conciliate");
312 $titletoconciliateauto = $langs->trans(
"Conciliate");
313 if ($allowautomaticconciliation) {
314 $titletoconciliatemanual .=
' ('.$langs->trans(
"Manual").
')';
315 $titletoconciliateauto .=
' ('.$langs->trans(
"Auto").
')';
319 if ($user->hasRight(
'banque',
'consolidate')) {
320 $buttonreconcile =
'<a class="butAction" href="'.DOL_URL_ROOT.
'/compta/bank/bankentries_list.php?action=reconcile&sortfield=b.datev,b.dateo,b.rowid&sortorder=asc,asc,asc&search_conciliated=0&search_account='.$id.$param.
'">'.$titletoconciliatemanual.
'</a>';
322 $buttonreconcile =
'<a class="butActionRefused classfortooltip" title="'.$langs->trans(
"NotEnoughPermissions").
'" href="#">'.$titletoconciliatemanual.
'</a>';
326 if ($allowautomaticconciliation) {
328 if ($user->hasRight(
'banque',
'consolidate')) {
330 $newparam = preg_replace(
'/search_conciliated=\d+/i',
'', $newparam);
331 $buttonreconcile .=
' <a class="butAction" style="margin-bottom: 5px !important; margin-top: 5px !important" href="'.DOL_URL_ROOT.
'/compta/bank/bankentries_list.php?action=reconcile&sortfield=b.datev,b.dateo,b.rowid&sortorder=asc,asc,asc&search_conciliated=0'.$newparam.
'">'.$titletoconciliateauto.
'</a>';
333 $buttonreconcile .=
' <a class="butActionRefused" style="margin-bottom: 5px !important; margin-top: 5px !important" title="'.$langs->trans(
"NotEnoughPermissions").
'" href="#">'.$titletoconciliateauto.
'</a>';
337 print $buttonreconcile;
343 print_barre_liste(
'', $page, $_SERVER[
"PHP_SELF"],
"&account=".
$object->id, $sortfield, $sortorder,
'', $numrows, $totalnboflines,
'');
345 print
'<form name="aaa" action="'.$_SERVER[
"PHP_SELF"].
'" method="POST">';
346 print
'<input type="hidden" name="token" value="'.newToken().
'">';
347 print
'<input type="hidden" name="action" value="confirm_editbankreceipt">';
348 print
'<input type="hidden" name="backtopage" value="'.$backtopage.
'">';
349 print
'<input type="hidden" name="account" value="'.$object->id.
'">';
350 print
'<input type="hidden" name="page" value="'.$page.
'">';
352 print
'<table class="noborder centpercent">';
353 print
'<tr class="liste_titre">';
354 print
'<td>'.$langs->trans(
"Ref").
'</td>';
355 print
'<td class="right">'.$langs->trans(
"InitialBankBalance").
'</td>';
356 print
'<td class="right">'.$langs->trans(
"EndBankBalance").
'</td>';
360 $balancestart = array();
363 while ($i < min($numrows, $conf->liste_limit)) {
364 $objp = $db->fetch_object($resql);
366 if (!isset($objp->numr)) {
369 print
'<tr class="oddeven">';
371 if ($action !=
'editbankreceipt' || $objp->numr != $brref) {
372 print
'<a href="releve.php?num='.$objp->numr.
'&account='.
$object->id.
'">'.$objp->numr.
'</a>';
374 print
'<input type="hidden" name="oldbankreceipt" value="'.$objp->numr.
'">';
375 print
'<input type="text" name="newbankreceipt" value="'.$objp->numr.
'">';
376 print
'<input type="submit" class="button smallpaddingimp" name="actionnewbankreceipt" value="'.$langs->trans(
"Save").
'">';
377 print
'<input type="submit" class="button button-cancel smallpaddingimp" name="cancel" value="'.$langs->trans(
"Cancel").
'">';
382 $sql =
"SELECT sum(b.amount) as amount";
383 $sql .=
" FROM ".MAIN_DB_PREFIX.
"bank as b";
384 $sql .=
" WHERE b.num_releve < '".$db->escape($objp->numr).
"'";
385 $sql .=
" AND b.num_releve <> ''";
386 $sql .=
" AND b.fk_account = ".((int)
$object->id);
387 $resql = $db->query(
$sql);
389 $obj = $db->fetch_object($resql);
390 $balancestart[$objp->numr] = $obj->amount;
393 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>';
396 $sql =
"SELECT sum(b.amount) as amount";
397 $sql .=
" FROM ".MAIN_DB_PREFIX.
"bank as b";
398 $sql .=
" WHERE b.num_releve = '".$db->escape($objp->numr).
"'";
399 $sql .=
" AND b.fk_account = ".((int)
$object->id);
400 $resql = $db->query(
$sql);
402 $obj = $db->fetch_object($resql);
403 $content[$objp->numr] = $obj->amount;
406 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>';
408 print
'<td class="center">';
409 if ($user->hasRight(
'banque',
'consolidate') && $action !=
'editbankreceipt') {
410 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>';
419 if (empty($numrows)) {
420 print
'<tr><td colspan="5"><span class="opacitymedium">'.$langs->trans(
"None").
'</span></td></tr>';
437 print
dol_get_fiche_head($head,
'statement', $langs->trans(
"AccountStatement"), -1,
'account');
441 $morehtmlright .=
'<div class="pagination"><ul>';
442 if ($foundprevious) {
443 $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>';
445 $morehtmlright .=
'<li class="pagination"><span class="active">'.$langs->trans(
"AccountStatement").
" ".$numref.
'</span></li>';
447 $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>';
449 $morehtmlright .=
'</ul></div>';
451 $title = $langs->trans(
"AccountStatement").
' '.$numref.
' - '.$langs->trans(
"BankAccount").
' '.
$object->getNomUrl(1,
'receipts');
454 print
'<form method="POST" action="'.$_SERVER[
"PHP_SELF"].
'">';
455 print
'<input type="hidden" name="token" value="'.newToken().
'">';
456 print
'<input type="hidden" name="action" value="add">';
458 print
'<div class="div-table-responsive">';
459 print
'<table class="noborder centpercent">';
460 print
'<tr class="liste_titre">';
461 print
'<td class="center">'.$langs->trans(
"DateOperationShort").
'</td>';
462 print
'<td class="center">'.$langs->trans(
"DateValueShort").
'</td>';
463 print
'<td>'.$langs->trans(
"Type").
'</td>';
464 print
'<td>'.$langs->trans(
"Description").
'</td>';
465 print
'<td class="right" width="60">'.$langs->trans(
"Debit").
'</td>';
466 print
'<td class="right" width="60">'.$langs->trans(
"Credit").
'</td>';
467 print
'<td class="right">'.$langs->trans(
"Balance").
'</td>';
468 print
'<td> </td>';
472 $sql =
"SELECT sum(b.amount) as amount";
473 $sql .=
" FROM ".MAIN_DB_PREFIX.
"bank as b";
474 $sql .=
" WHERE b.num_releve < '".$db->escape($numref).
"'";
475 $sql .=
" AND b.num_releve <> ''";
476 $sql .=
" AND b.fk_account = ".((int)
$object->id);
478 $resql = $db->query(
$sql);
480 $obj = $db->fetch_object($resql);
481 $total = $obj->amount;
485 $totalc = $totald = 0;
488 $sql = $sqlrequestforbankline;
490 $resql = $db->query(
$sql);
492 $numrows = $db->num_rows($resql);
496 print
'<tr class="oddeven"><td colspan="3"></td>';
497 print
'<td colspan="3"><b>'.$langs->trans(
"InitialBankBalance").
" :</b></td>";
498 print
'<td class="right"><b>'.price($total).
'</b></td><td> </td>';
501 while ($i < $numrows) {
502 $objp = $db->fetch_object($resql);
503 $total = $total + $objp->amount;
505 print
'<tr class="oddeven">';
508 print
'<td class="nowrap center">'.dol_print_date($db->jdate($objp->do),
"day").
'</td>';
511 print
'<td valign="center" class="center nowrap">';
512 print
'<span class="spanforajaxedit">'.dol_print_date($db->jdate($objp->dv),
"day").
'</span>';
514 print
'<span class="inline-block">';
515 print
'<a class="ajaxforbankoperationchange reposition" href="'.$_SERVER[
'PHP_SELF'].
'?action=dvprev&num='.$numref.
'&account='.
$object->id.
'&rowid='.$objp->rowid.
'&dvid='.$objp->rowid.
'">';
517 print
'<a class="ajaxforbankoperationchange reposition" href="'.$_SERVER[
'PHP_SELF'].
'?action=dvnext&num='.$numref.
'&account='.
$object->id.
'&rowid='.$objp->rowid.
'&dvid='.$objp->rowid.
'">';
523 if ($objp->fk_type ==
'SOLD') {
524 $type_label =
' ';
526 $type_label = ($langs->trans(
"PaymentTypeShort".$objp->fk_type) !=
"PaymentTypeShort".$objp->fk_type) ? $langs->trans(
"PaymentTypeShort".$objp->fk_type) : $objp->fk_type;
529 if ($objp->fk_bordereau > 0) {
530 $remisestatic->id = $objp->fk_bordereau;
531 $remisestatic->ref = $objp->ref;
532 $link =
' '.$remisestatic->getNomUrl(1);
534 print
'<td class="nowrap">'.$type_label.
' '.($objp->num_chq ? $objp->num_chq :
'').$link.
'</td>';
537 print
'<td valign="center">';
538 print
'<a href="'.DOL_URL_ROOT.
'/compta/bank/line.php?rowid='.$objp->rowid.
'&account='.
$object->id.
'">';
541 preg_match(
'/\((.+)\)/i', $objp->label, $reg);
542 if (!empty($reg[1]) && $langs->trans($reg[1]) != $reg[1]) {
543 print $langs->trans($reg[1]);
553 $links =
$object->get_url($objp->rowid);
554 foreach ($links as $key => $val) {
560 if ($links[$key][
'type'] ==
'payment') {
561 $paymentstatic->id = $links[$key][
'url_id'];
562 $paymentstatic->ref = $langs->trans(
"Payment");
563 print
' '.$paymentstatic->getNomUrl(1);
565 } elseif ($links[$key][
'type'] ==
'payment_supplier') {
566 $paymentsupplierstatic->id = $links[$key][
'url_id'];
567 $paymentsupplierstatic->ref = $langs->trans(
"Payment");
568 print
' '.$paymentsupplierstatic->getNomUrl(1);
570 } elseif ($links[$key][
'type'] ==
'payment_sc') {
571 print
'<a href="'.DOL_URL_ROOT.
'/compta/payment_sc/card.php?id='.$links[$key][
'url_id'].
'">';
572 print
' '.img_object($langs->trans(
'ShowPayment'),
'payment').
' ';
573 print $langs->trans(
"SocialContributionPayment");
576 } elseif ($links[$key][
'type'] ==
'payment_vat') {
577 $paymentvatstatic->id = $links[$key][
'url_id'];
578 $paymentvatstatic->ref = $langs->trans(
"Payment");
579 print
' '.$paymentvatstatic->getNomUrl(1);
580 } elseif ($links[$key][
'type'] ==
'payment_salary') {
581 print
'<a href="'.DOL_URL_ROOT.
'/salaries/card.php?id='.$links[$key][
'url_id'].
'">';
582 print
' '.img_object($langs->trans(
'ShowPayment'),
'payment').
' ';
583 print $langs->trans(
"Payment");
586 } elseif ($links[$key][
'type'] ==
'payment_donation') {
587 $paymentdonationstatic->id = $links[$key][
'url_id'];
588 $paymentdonationstatic->ref = $langs->trans(
"Payment");
589 print
' '.$paymentdonationstatic->getNomUrl(1);
591 } elseif ($links[$key][
'type'] ==
'payment_loan') {
592 $paymentloanstatic->id = $links[$key][
'url_id'];
593 $paymentloanstatic->ref = $langs->trans(
"Payment");
594 print
' '.$paymentloanstatic->getNomUrl(1);
596 } elseif ($links[$key][
'type'] ==
'payment_various') {
597 $paymentvariousstatic->id = $links[$key][
'url_id'];
598 $paymentvariousstatic->ref = $langs->trans(
"Payment");
599 print
' '.$paymentvariousstatic->getNomUrl(1);
601 } elseif ($links[$key][
'type'] ==
'banktransfert') {
603 if ($objp->amount > 0) {
604 $banklinestatic->fetch($links[$key][
'url_id']);
605 $bankstatic->id = $banklinestatic->fk_account;
606 $bankstatic->label = $banklinestatic->bank_account_label;
607 print
' ('.$langs->trans(
"from").
' ';
608 print $bankstatic->getNomUrl(1,
'transactions');
609 print
' '.$langs->trans(
"toward").
' ';
610 $bankstatic->id = $objp->bankid;
611 $bankstatic->label = $objp->bankref;
612 print $bankstatic->getNomUrl(1,
'');
615 $bankstatic->id = $objp->bankid;
616 $bankstatic->label = $objp->bankref;
617 print
' ('.$langs->trans(
"from").
' ';
618 print $bankstatic->getNomUrl(1,
'');
619 print
' '.$langs->trans(
"toward").
' ';
620 $banklinestatic->fetch($links[$key][
'url_id']);
621 $bankstatic->id = $banklinestatic->fk_account;
622 $bankstatic->label = $banklinestatic->bank_account_label;
623 print $bankstatic->getNomUrl(1,
'transactions');
626 } elseif ($links[$key][
'type'] ==
'company') {
627 $societestatic->id = $links[$key][
'url_id'];
628 $societestatic->name = $links[$key][
'label'];
629 print $societestatic->getNomUrl(1,
'company', 24);
631 } elseif ($links[$key][
'type'] ==
'member') {
632 print
'<a href="'.DOL_URL_ROOT.
'/adherents/card.php?rowid='.$links[$key][
'url_id'].
'">';
633 print
img_object($langs->trans(
'ShowMember'),
'user').
' ';
634 print $links[$key][
'label'];
637 } elseif ($links[$key][
'type'] ==
'user') {
638 print
'<a href="'.DOL_URL_ROOT.
'/user/card.php?id='.$links[$key][
'url_id'].
'">';
639 print
img_object($langs->trans(
'ShowUser'),
'user').
' ';
640 print $links[$key][
'label'];
643 } elseif ($links[$key][
'type'] ==
'sc') {
644 print
'<a href="'.DOL_URL_ROOT.
'/compta/sociales/card.php?id='.$links[$key][
'url_id'].
'">';
645 print
img_object($langs->trans(
'ShowBill'),
'bill').
' ';
646 print $langs->trans(
"SocialContribution");
650 print
'<a href="'.$links[$key][
'url'].$links[$key][
'url_id'].
'">';
651 print $links[$key][
'label'];
659 $sql =
"SELECT label";
660 $sql .=
" FROM ".MAIN_DB_PREFIX.
"bank_categ as ct";
661 $sql .=
", ".MAIN_DB_PREFIX.
"bank_class as cl";
662 $sql .=
" WHERE ct.rowid = cl.fk_categ";
663 $sql .=
" AND ct.entity = ".((int) $conf->entity);
664 $sql .=
" AND cl.lineid = ".((int) $objp->rowid);
666 $resc = $db->query(
$sql);
668 $numc = $db->num_rows($resc);
670 if ($numc && !$newline) {
673 while ($ii < $numc) {
674 $objc = $db->fetch_object($resc);
675 print
"<br>- <i>".$objc->label.
"</i>";
685 if ($objp->amount < 0) {
686 $totald = $totald + abs($objp->amount);
687 print
'<td class="nowrap right">'.price($objp->amount * -1).
"</td><td> </td>\n";
689 $totalc = $totalc + abs($objp->amount);
690 print
'<td> </td><td class="nowrap right">'.price($objp->amount).
"</td>\n";
693 print
'<td class="nowrap right">'.price(
price2num($total,
'MT')).
"</td>\n";
695 if ($user->hasRight(
'banque',
'modifier') || $user->hasRight(
'banque',
'consolidate')) {
696 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='.$numref).
'">';
700 print
"<td class=\"center\"> </td>";
711 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>";
715 print
"<td class=\"right\" colspan=\"3\"> </td><td colspan=\"3\"><b>".$langs->trans(
"EndBankBalance").
" :</b></td>";
716 print
'<td class="right"><b>'.price(
price2num($total,
'MT')).
"</b></td><td> </td>";
721 $urlajax = DOL_URL_ROOT.
'/core/ajax/bankconciliate.php?token='.
currentToken();
723 <script type="text/javascript">
725 $("a.ajaxforbankoperationchange").each(function(){
726 var current = $(this);
727 current.click(function()
729 console.log("We click on ajaxforbankoperationchange");
730 var url = "'.$urlajax.
'&"+current.attr("href").split("?")[1];
731 $.get(url, function(data)
735 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()
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.
if(isModEnabled('invoice') && $user->hasRight('facture', 'lire')) if((isModEnabled('fournisseur') &&!getDolGlobalString('MAIN_USE_NEW_SUPPLIERMOD') && $user->hasRight("fournisseur", "facture", "lire"))||(isModEnabled('supplier_invoice') && $user->hasRight("supplier_invoice", "lire"))) if(isModEnabled('don') && $user->hasRight('don', 'lire')) if(isModEnabled('tax') && $user->hasRight('tax', 'charges', 'lire')) if(isModEnabled('invoice') &&isModEnabled('order') && $user->hasRight("commande", "lire") &&!getDolGlobalString('WORKFLOW_DISABLE_CREATE_INVOICE_FROM_ORDER')) $sql
Social contributions to pay.
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.
newToken()
Return the value of token currently saved into session with name 'newtoken'.
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...
GETPOSTISSET($paramname)
Return true if we are in a context of submitting the parameter $paramname from a POST of a form.
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.