34require
'../../main.inc.php';
35require_once DOL_DOCUMENT_ROOT.
'/compta/bank/class/account.class.php';
36require_once DOL_DOCUMENT_ROOT.
'/categories/class/categorie.class.php';
37require_once DOL_DOCUMENT_ROOT.
'/core/lib/payments.lib.php';
38require_once DOL_DOCUMENT_ROOT.
'/core/class/extrafields.class.php';
41$langs->loadLangs(array(
'banks',
'categories',
'compta',
'bills',
'other'));
42if (isModEnabled(
'adherent')) {
43 $langs->load(
"members");
45if (isModEnabled(
'don')) {
46 $langs->load(
"donations");
48if (isModEnabled(
'loan')) {
51if (isModEnabled(
'salaries')) {
52 $langs->load(
"salaries");
57$rowid =
GETPOST(
"rowid",
'int');
58$accountoldid =
GETPOST(
'account',
'int');
59$accountid =
GETPOST(
'accountid',
'int');
61$action =
GETPOST(
'action',
'aZ09');
62$confirm =
GETPOST(
'confirm',
'alpha');
63$orig_account =
GETPOST(
"orig_account");
64$backtopage =
GETPOST(
'backtopage',
'alpha');
65$cancel =
GETPOST(
'cancel',
'alpha');
68$fieldvalue = (!empty($id) ? $id : (!empty($ref) ? $ref :
''));
69$fieldtype = (!empty($ref) ?
'ref' :
'rowid');
72 $socid = $user->socid;
75$result =
restrictedArea($user,
'banque', $accountoldid,
'bank_account');
76if (empty($user->rights->banque->lire) && empty($user->rights->banque->consolidate)) {
80$hookmanager->initHooks(array(
'bankline'));
83$extrafields->fetch_name_optionals_label($object->element);
89$parameters = array(
'socid' => $socid);
90$reshook = $hookmanager->executeHooks(
'doActions', $parameters, $object, $action);
96 header(
"Location: ".$backtopage);
102if ($user->rights->banque->consolidate && $action ==
'donext') {
104 $al->dateo_next(
GETPOST(
"rowid",
'int'));
105} elseif ($user->rights->banque->consolidate && $action ==
'doprev') {
107 $al->dateo_previous(
GETPOST(
"rowid",
'int'));
108} elseif ($user->rights->banque->consolidate && $action ==
'dvnext') {
110 $al->datev_next(
GETPOST(
"rowid",
'int'));
111} elseif ($user->rights->banque->consolidate && $action ==
'dvprev') {
113 $al->datev_previous(
GETPOST(
"rowid",
'int'));
116if ($action ==
'confirm_delete_categ' && $confirm ==
"yes" && $user->rights->banque->modifier) {
117 $cat1 =
GETPOST(
"cat1",
'int');
118 if (!empty($rowid) && !empty($cat1)) {
119 $sql =
"DELETE FROM ".MAIN_DB_PREFIX.
"bank_class WHERE lineid = ".((int) $rowid).
" AND fk_categ = ".((int) $cat1);
120 if (!$db->query($sql)) {
128if ($user->rights->banque->modifier && $action ==
"update") {
131 $result = $object->fetch($rowid);
133 dol_syslog(
'Failed to read bank line with id '.$rowid, LOG_WARNING);
134 $object->id = $rowid;
138 $acsource->fetch($accountoldid);
141 if (
GETPOST(
'accountid',
'int') > 0 && !$object->rappro && !$object->getVentilExportCompta()) {
142 $actarget->fetch(
GETPOST(
'accountid',
'int'));
144 $actarget->fetch($accountoldid);
147 if (!($actarget->id > 0)) {
148 setEventMessages($langs->trans(
"ErrorFailedToLoadBankAccount"),
null,
'errors');
152 setEventMessages($langs->trans(
"ErrorCashAccountAcceptsOnlyCashMoney"),
null,
'errors');
162 $sql =
"UPDATE ".MAIN_DB_PREFIX.
"bank";
165 if (GETPOSTISSET(
'value')) {
167 $sql .=
" fk_type='".$db->escape(empty($type) && $object->fk_type ==
'SOLD' ?
'SOLD' : $type).
"',";
169 if (GETPOSTISSET(
'num_chq')) {
170 $sql .=
" num_chq='".$db->escape(
GETPOST(
"num_chq")).
"',";
172 if (GETPOSTISSET(
'banque')) {
173 $sql .=
" banque='".$db->escape(
GETPOST(
"banque")).
"',";
175 if (GETPOSTISSET(
'emetteur')) {
176 $sql .=
" emetteur='".$db->escape(
GETPOST(
"emetteur")).
"',";
179 if (!$object->rappro) {
180 if (GETPOSTISSET(
'label')) {
181 $sql .=
" label = '".$db->escape(
GETPOST(
"label")).
"',";
183 if (GETPOSTISSET(
'amount')) {
184 $sql .=
" amount= '".$db->escape($amount).
"',";
186 if (GETPOSTISSET(
'dateomonth')) {
187 $sql .=
" dateo = '".$db->idate($dateop).
"',";
189 if (GETPOSTISSET(
'datevmonth')) {
190 $sql .=
" datev = '".$db->idate($dateval).
"',";
193 $sql .=
" fk_account = ".((int) $actarget->id);
194 $sql .=
" WHERE rowid = ".((int) $object->id);
196 $result = $db->query($sql);
202 $arrayofcategs =
GETPOST(
'custcats',
'array');
203 $sql =
"DELETE FROM ".MAIN_DB_PREFIX.
"bank_class WHERE lineid = ".((int) $rowid);
204 if (!$db->query($sql)) {
208 if (count($arrayofcategs)) {
209 foreach ($arrayofcategs as $val) {
210 $sql =
"INSERT INTO ".MAIN_DB_PREFIX.
"bank_class (lineid, fk_categ) VALUES (".((int) $rowid).
", ".((int) $val).
")";
211 if (!$db->query($sql)) {
221 $extrafields->setOptionalsFromPost(
null, $object,
'@GETPOSTISSET');
222 $object->insertExtraFields();
236if ($user->rights->banque->consolidate && ($action ==
'num_releve' || $action ==
'setreconcile')) {
237 $num_rel = trim(
GETPOST(
"num_rel"));
238 $rappro =
GETPOST(
'reconciled') ? 1 : 0;
241 if ($rappro && empty($num_rel)) {
242 setEventMessages($langs->trans(
"ErrorFieldRequired", $langs->transnoentitiesnoconv(
"AccountStatement")),
null,
'errors');
249 $sql =
"UPDATE ".MAIN_DB_PREFIX.
"bank";
250 $sql .=
" SET num_releve = ".($num_rel ?
"'".$db->escape($num_rel).
"'" :
"null");
251 if (empty($num_rel)) {
252 $sql .=
", rappro = 0";
254 $sql .=
", rappro = ".((int) $rappro);
256 $sql .=
" WHERE rowid = ".((int) $rowid);
259 $result = $db->query($sql);
276$form =
new Form($db);
278llxHeader(
'', $langs->trans(
"BankTransaction"));
280$arrayselected = array();
283$cats = $c->containing($rowid, Categorie::TYPE_BANK_LINE);
284if (is_array($cats)) {
285 foreach ($cats as $cat) {
286 $arrayselected[] = $cat->id;
290$head = bankline_prepare_head($rowid);
293$sql =
"SELECT b.rowid, b.dateo as do, b.datev as dv, b.amount, b.label, b.rappro,";
294$sql .=
" b.num_releve, b.fk_user_author, b.num_chq, b.fk_type, b.fk_account, b.fk_bordereau as receiptid,";
295$sql .=
" b.emetteur,b.banque";
296$sql .=
" FROM ".MAIN_DB_PREFIX.
"bank as b";
297$sql .=
" WHERE rowid=".((int) $rowid);
298$sql .=
" ORDER BY dateo ASC";
299$result = $db->query($sql);
303 if ($db->num_rows($result)) {
304 $objp = $db->fetch_object($result);
306 $total = $total + $objp->amount;
309 $acct->fetch($objp->fk_account);
310 $account = $acct->id;
313 $bankline->fetch($rowid, $ref);
315 $links = $acct->get_url($rowid);
316 $bankline->load_previous_next_ref(
'',
'rowid');
319 if ($action ==
'delete_categ') {
320 print $form->formconfirm($_SERVER[
'PHP_SELF'].
"?rowid=".urlencode($rowid).
"&cat1=".urlencode(
GETPOST(
"fk_categ",
'int')).
"&orig_account=".urlencode($orig_account), $langs->trans(
"RemoveFromRubrique"), $langs->trans(
"RemoveFromRubriqueConfirm"),
"confirm_delete_categ",
'',
'yes', 1);
323 print
'<form name="update" method="POST" action="'.$_SERVER[
'PHP_SELF'].
'?rowid='.$rowid.
'">';
324 print
'<input type="hidden" name="token" value="'.newToken().
'">';
325 print
'<input type="hidden" name="action" value="update">';
326 print
'<input type="hidden" name="orig_account" value="'.$orig_account.
'">';
327 print
'<input type="hidden" name="account" value="'.$acct->id.
'">';
329 print
dol_get_fiche_head($head,
'bankline', $langs->trans(
'LineRecord'), 0,
'accountline', 0);
331 $linkback =
'<a href="'.DOL_URL_ROOT.
'/compta/bank/bankentries_list.php?restore_lastsearch_values=1'.(
GETPOST(
'account',
'int', 1) ?
'&id='.GETPOST(
'account',
'int', 1) :
'').
'">'.$langs->trans(
"BackToList").
'</a>';
336 print
'<div class="fichecenter2">';
338 print
'<div class="underbanner clearboth"></div>';
339 print
'<table class="border centpercent tableforfield">';
344 print
'<tr><td class="titlefieldcreate">'.$langs->trans(
"Account").
'</td>';
347 if (($objp->rappro || $bankline->getVentilExportCompta()) && $objp->fk_account > 0) {
348 print $acct->getNomUrl(1,
'transactions',
'reflabel');
350 print
img_picto(
'',
'bank_account',
'class="paddingright"');
351 print $form->select_comptes($acct->id,
'accountid', 0,
'', ($acct->id > 0 ? $acct->id : 1),
'', 0,
'', 1);
358 print
'<tr><td class="tdtop">'.$langs->trans(
"Links").
'</td>';
360 foreach ($links as $key => $val) {
364 if ($links[$key][
'type'] ==
'payment') {
365 require_once DOL_DOCUMENT_ROOT.
'/compta/paiement/class/paiement.class.php';
367 $paymenttmp->fetch($links[$key][
'url_id']);
368 $paymenttmp->ref = $langs->trans(
"Payment").
' '.$paymenttmp->ref;
373 print $paymenttmp->getNomUrl(1);
374 } elseif ($links[$key][
'type'] ==
'payment_supplier') {
375 require_once DOL_DOCUMENT_ROOT.
'/fourn/class/paiementfourn.class.php';
377 $paymenttmp->fetch($links[$key][
'url_id']);
378 $paymenttmp->ref = $langs->trans(
"Payment").
' '.$paymenttmp->ref;
383 print $paymenttmp->getNomUrl(1);
384 } elseif ($links[$key][
'type'] ==
'company') {
386 $societe->fetch($links[$key][
'url_id']);
387 print $societe->getNomUrl(1);
388 } elseif ($links[$key][
'type'] ==
'sc') {
389 print
'<a href="'.DOL_URL_ROOT.
'/compta/sociales/card.php?id='.$links[$key][
'url_id'].
'">';
390 print
img_object($langs->trans(
'SocialContribution'),
'bill').
' ';
391 print $langs->trans(
"SocialContribution").($links[$key][
'label'] ?
' - '.$links[$key][
'label'] :
'');
393 } elseif ($links[$key][
'type'] ==
'vat') {
394 print
'<a href="'.DOL_URL_ROOT.
'/compta/tva/card.php?id='.$links[$key][
'url_id'].
'">';
395 print
img_object($langs->trans(
'VATDeclaration'),
'bill').
' ';
396 print $langs->trans(
"VATDeclaration").($links[$key][
'label'] ?
' '.$links[$key][
'label'] :
'');
398 } elseif ($links[$key][
'type'] ==
'salary') {
399 print
'<a href="'.DOL_URL_ROOT.
'/salaries/card.php?id='.$links[$key][
'url_id'].
'">';
400 print
img_object($langs->trans(
'Salary'),
'bill').
' ';
401 print $langs->trans(
"Salary").($links[$key][
'label'] ?
' - '.$links[$key][
'label'] :
'');
403 } elseif ($links[$key][
'type'] ==
'payment_sc') {
404 print
'<a href="'.DOL_URL_ROOT.
'/compta/payment_sc/card.php?id='.$links[$key][
'url_id'].
'">';
405 print
img_object($langs->trans(
'Payment'),
'payment').
' ';
406 print $langs->trans(
"SocialContributionPayment");
408 } elseif ($links[$key][
'type'] ==
'payment_vat') {
409 print
'<a href="'.DOL_URL_ROOT.
'/compta/payment_vat/card.php?id='.$links[$key][
'url_id'].
'">';
410 print
img_object($langs->trans(
'VATPayment'),
'payment').
' ';
411 print $langs->trans(
"VATPayment");
413 } elseif ($links[$key][
'type'] ==
'payment_salary') {
414 print
'<a href="'.DOL_URL_ROOT.
'/salaries/payment_salary/card.php?id='.$links[$key][
'url_id'].
'">';
415 print
img_object($langs->trans(
'PaymentSalary'),
'payment').
' ';
416 print $langs->trans(
"SalaryPayment");
418 } elseif ($links[$key][
'type'] ==
'payment_loan') {
419 print
'<a href="'.DOL_URL_ROOT.
'/loan/payment/card.php?id='.$links[$key][
'url_id'].
'">';
420 print
img_object($langs->trans(
'LoanPayment'),
'payment').
' ';
421 print $langs->trans(
"PaymentLoan");
423 } elseif ($links[$key][
'type'] ==
'loan') {
424 print
'<a href="'.DOL_URL_ROOT.
'/loan/card.php?id='.$links[$key][
'url_id'].
'">';
425 print
img_object($langs->trans(
'Loan'),
'bill').
' ';
426 print $langs->trans(
"Loan");
428 } elseif ($links[$key][
'type'] ==
'member') {
429 print
'<a href="'.DOL_URL_ROOT.
'/adherents/card.php?rowid='.$links[$key][
'url_id'].
'">';
430 print
img_object($langs->trans(
'Member'),
'user').
' ';
431 print $links[$key][
'label'];
433 } elseif ($links[$key][
'type'] ==
'payment_donation') {
434 print
'<a href="'.DOL_URL_ROOT.
'/don/payment/card.php?id='.$links[$key][
'url_id'].
'">';
435 print
img_object($langs->trans(
'Donation'),
'payment').
' ';
436 print $langs->trans(
"DonationPayment");
438 } elseif ($links[$key][
'type'] ==
'banktransfert') {
439 print
'<a href="'.DOL_URL_ROOT.
'/compta/bank/line.php?rowid='.$links[$key][
'url_id'].
'">';
440 print
img_object($langs->trans(
'Transaction'),
'payment').
' ';
441 print $langs->trans(
"TransactionOnTheOtherAccount");
443 } elseif ($links[$key][
'type'] ==
'user') {
444 print
'<a href="'.DOL_URL_ROOT.
'/user/card.php?id='.$links[$key][
'url_id'].
'">';
445 print
img_object($langs->trans(
'User'),
'user').
' ';
446 print $langs->trans(
"User");
448 } elseif ($links[$key][
'type'] ==
'payment_various') {
449 print
'<a href="'.DOL_URL_ROOT.
'/compta/bank/various_payment/card.php?id='.$links[$key][
'url_id'].
'">';
450 print
img_object($langs->trans(
'VariousPayment'),
'payment').
' ';
451 print $langs->trans(
"VariousPayment");
454 print
'<a href="'.$links[$key][
'url'].$links[$key][
'url_id'].
'">';
456 print $links[$key][
'label'];
467 print
"<tr><td>".$langs->trans(
"Type").
" / ".$langs->trans(
"Numero");
468 print
' <em>('.$langs->trans(
"ChequeOrTransferNumber").
')</em>';
470 if ($user->rights->banque->modifier || $user->rights->banque->consolidate) {
472 $form->select_types_paiements($objp->fk_type,
"value",
'', 2);
473 print
'<input type="text" class="flat" name="num_chq" value="'.(empty($objp->num_chq) ?
'' : $objp->num_chq).
'">';
474 if ($objp->receiptid) {
475 include_once DOL_DOCUMENT_ROOT.
'/compta/paiement/cheque/class/remisecheque.class.php';
477 $receipt->fetch($objp->receiptid);
478 print
' '.$langs->trans(
"CheckReceipt").
': '.$receipt->getNomUrl(2);
487 print
"<tr><td>".$langs->trans(
"CheckTransmitter");
488 print
' <em>('.$langs->trans(
"ChequeMaker").
')</em>';
490 if ($user->rights->banque->modifier || $user->rights->banque->consolidate) {
492 print
'<input type="text" class="flat minwidth200" name="emetteur" value="'.(empty($objp->emetteur) ?
'' :
dol_escape_htmltag($objp->emetteur)).
'">';
495 print
'<td>'.$objp->emetteur.
'</td>';
500 print
"<tr><td>".$langs->trans(
"Bank");
501 print
' <em>('.$langs->trans(
"ChequeBank").
')</em>';
503 if ($user->rights->banque->modifier || $user->rights->banque->consolidate) {
505 print
'<input type="text" class="flat minwidth200" name="banque" value="'.(empty($objp->banque) ?
'' :
dol_escape_htmltag($objp->banque)).
'">';
508 print
'<td>'.dol_escape_htmltag($objp->banque).
'</td>';
513 print
'<tr><td>'.$langs->trans(
"DateOperation").
'</td>';
514 if ($user->rights->banque->modifier || $user->rights->banque->consolidate) {
516 print $form->selectDate($db->jdate($objp->do),
'dateo',
'',
'',
'',
'update', 1, 0, $objp->rappro);
517 if (!$objp->rappro) {
519 print
'<a class="ajaxforbankoperationchange" href="'.$_SERVER[
'PHP_SELF'].
'?action=doprev&id='.$objp->fk_account.
'&rowid='.$objp->rowid.
'&token='.newToken().
'">';
521 print
'<a class="ajaxforbankoperationchange" href="'.$_SERVER[
'PHP_SELF'].
'?action=donext&id='.$objp->fk_account.
'&rowid='.$objp->rowid.
'&token='.newToken().
'">';
533 print
"<tr><td>".$langs->trans(
"DateValue").
"</td>";
534 if ($user->rights->banque->modifier || $user->rights->banque->consolidate) {
536 print $form->selectDate($db->jdate($objp->dv),
'datev',
'',
'',
'',
'update', 1, 0, $objp->rappro);
537 if (!$objp->rappro) {
539 print
'<a class="ajaxforbankoperationchange" href="'.$_SERVER[
'PHP_SELF'].
'?action=dvprev&id='.$objp->fk_account.
'&rowid='.$objp->rowid.
'&token='.newToken().
'">';
541 print
'<a class="ajaxforbankoperationchange" href="'.$_SERVER[
'PHP_SELF'].
'?action=dvnext&id='.$objp->fk_account.
'&rowid='.$objp->rowid.
'&token='.newToken().
'">';
554 print
"<tr><td>".$langs->trans(
"Label").
"</td>";
555 if ($user->rights->banque->modifier || $user->rights->banque->consolidate) {
557 print
'<input name="label" class="flat minwidth300" '.($objp->rappro ?
' disabled' :
'').
' value="';
558 if (preg_match(
'/^\((.*)\)$/i', $objp->label, $reg)) {
560 print $langs->trans($reg[1]);
568 if (preg_match(
'/^\((.*)\)$/i', $objp->label, $reg)) {
570 print $langs->trans($reg[1]);
579 print
"<tr><td>".$langs->trans(
"Amount").
"</td>";
580 if ($user->rights->banque->modifier) {
582 print
'<input name="amount" class="flat maxwidth100" '.($objp->rappro ?
' disabled' :
'').
' value="'.
price($objp->amount).
'"> '.$langs->trans(
"Currency".$acct->currency_code);
586 print
price($objp->amount);
592 if (isModEnabled(
'categorie') && $user->hasRight(
'categorie',
'lire')) {
593 $langs->load(
'categories');
596 print
'<tr><td class="toptd">'.$form->editfieldkey(
'RubriquesTransactions',
'custcats',
'', $object, 0).
'</td><td>';
597 $cate_arbo = $form->select_all_categories(Categorie::TYPE_BANK_LINE,
null,
'parent',
null,
null, 1);
599 $arrayselected = array();
602 $cats = $c->containing($bankline->id, Categorie::TYPE_BANK_LINE);
603 if (is_array($cats)) {
604 foreach ($cats as $cat) {
605 $arrayselected[] = $cat->id;
608 print
img_picto(
'',
'category',
'class="paddingright"').$form->multiselectarray(
'custcats', $cate_arbo, $arrayselected,
null,
null,
null,
null,
"90%");
613 $parameters = array();
614 $reshook = $hookmanager->executeHooks(
'formObjectOptions', $parameters, $bankline, $action);
615 print $hookmanager->resPrint;
616 if (empty($reshook)) {
617 print $bankline->showOptionals($extrafields, ($objp->rappro ?
'view' :
'create'), $parameters);
650 print
'<div class="center"><input type="submit" class="button" value="'.$langs->trans(
"Update").
'"></div><br>';
657 if ($acct->canBeConciliated() > 0) {
658 print
load_fiche_titre($langs->trans(
"Reconciliation"),
'',
'bank_account');
661 print
'<form method="POST" action="'.$_SERVER[
'PHP_SELF'].
'?rowid='.$objp->rowid.
'">';
662 print
'<input type="hidden" name="token" value="'.newToken().
'">';
663 print
'<input type="hidden" name="action" value="setreconcile">';
664 print
'<input type="hidden" name="orig_account" value="'.$orig_account.
'">';
665 print
'<input type="hidden" name="backtopage" value="'.$backtopage.
'">';
667 print
'<div class="fichecenter">';
669 print
'<table class="border centpercent">';
671 print
'<tr><td class="titlefieldcreate">'.$form->textwithpicto($langs->trans(
"AccountStatement"), $langs->trans(
"InputReceiptNumber")).
"</td>";
672 if ($user->rights->banque->consolidate) {
675 print
'<input name="num_rel_bis" id="num_rel_bis" class="flat" type="text" value="'.$objp->num_releve.
'"'.($objp->rappro ?
' disabled' :
'').
'>';
676 print
'<input name="num_rel" id="num_rel" class="flat" type="hidden" value="'.$objp->num_releve.
'">';
678 print
'<input name="num_rel" id="num_rel" class="flat" value="'.$objp->num_releve.
'"'.($objp->rappro ?
' disabled' :
'').
'>';
680 if ($objp->num_releve) {
681 print
' <a href="'.DOL_URL_ROOT.
'/compta/bank/releve.php?num='.$objp->num_releve.
'&account='.$acct->id.
'">('.$langs->trans(
"AccountStatement").
' '.$objp->num_releve.
')</a>';
685 print
'<td>'.$objp->num_releve.
'</td>';
689 print
'<tr><td><label for="reconciled">'.$langs->trans(
"BankLineConciliated").
'</label></td>';
690 if ($user->rights->banque->consolidate) {
692 print
'<input type="checkbox" id="reconciled" name="reconciled" class="flat" '.(GETPOSTISSET(
"reconciled") ? (
GETPOST(
"reconciled") ?
' checked="checked"' :
'') : ($objp->rappro ?
' checked="checked"' :
'')).
'">';
695 <script type="text/javascript">
696 jQuery(document).ready(function() {
697 $("#reconciled").click(function(){
698 console.log("We click on checkbox reconciled "+$("#reconciled").prop("checked"));
699 if ($("#reconciled").prop("checked") == false) {
700 console.log("we remove disabled");
701 jQuery("#num_rel_bis").removeAttr("disabled");
702 jQuery("#num_rel").removeAttr("disabled");
703 jQuery("#num_rel_bis").attr("type", "hidden");
704 jQuery("#num_rel").attr("type", "text");
705 jQuery("#num_rel_bis").hide();
706 jQuery("#num_rel").show();
717 print
'<td>'.yn($objp->rappro).
'</td>';
724 print
'<div class="center">';
726 print
'<input type="submit" class="button" value="'.$langs->trans(
"Update").
'">';
729 print
'<input type="submit" name="cancel" class="button button-cancel" value="'.$langs->trans(
"Cancel").
'">';
if(!defined('NOREQUIRESOC')) if(!defined( 'NOREQUIRETRAN')) if(!defined('NOTOKENRENEWAL')) if(!defined( 'NOREQUIREMENU')) if(!defined('NOREQUIREHTML')) if(!defined( 'NOREQUIREAJAX')) llxHeader()
Empty header.
Class to manage bank accounts.
const TYPE_CASH
Cash account.
Class to manage bank transaction lines.
Class to manage categories.
Class to manage payments for supplier invoices.
Class to manage payments of customer invoices.
Class to manage cheque delivery receipts.
Class to manage third parties objects (customers, suppliers, prospects...)
dol_banner_tab($object, $paramid, $morehtml='', $shownav=1, $fieldid='rowid', $fieldref='ref', $morehtmlref='', $moreparam='', $nodbprefix=0, $morehtmlleft='', $morehtmlstatus='', $onlybanner=0, $morehtmlright='')
Show tab footer of a card.
dol_mktime($hour, $minute, $second, $month, $day, $year, $gm='auto', $check=1)
Return a timestamp date built from detailed informations (by default a local PHP server timestamp) Re...
load_fiche_titre($titre, $morehtmlright='', $picto='generic', $pictoisfullpath=0, $id='', $morecssontable='', $morehtmlcenter='')
Load a title with picto.
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 '.
dol_print_error($db='', $error='', $errors=null)
Displays error message system with all the information to facilitate the diagnosis and the escalation...
img_object($titlealt, $picto, $moreatt='', $pictoisfullpath=false, $srconly=0, $notitle=0)
Show a picto called object_picto (generic function)
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.
dol_print_date($time, $format='', $tzoutput='auto', $outputlangs='', $encodetooutput=false)
Output date in a string format according to outputlangs (or langs if not defined).
img_picto($titlealt, $picto, $moreatt='', $pictoisfullpath=false, $srconly=0, $notitle=0, $alt='', $morecss='', $marginleftonlyshort=2)
Show picto whatever it's its name (generic function)
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.
img_edit_add($titlealt='default', $other='')
Show logo +.
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.
accessforbidden($message='', $printheader=1, $printfooter=1, $showonlymessage=0, $params=null)
Show a message to say access is forbidden and stop program.