30 require
'../main.inc.php';
31 require_once DOL_DOCUMENT_ROOT.
'/core/lib/usergroups.lib.php';
32 require_once DOL_DOCUMENT_ROOT.
'/core/lib/bank.lib.php';
33 require_once DOL_DOCUMENT_ROOT.
'/core/lib/date.lib.php';
34 require_once DOL_DOCUMENT_ROOT.
'/user/class/userbankaccount.class.php';
35 if (!empty($conf->holiday->enabled)) require_once DOL_DOCUMENT_ROOT.
'/holiday/class/holiday.class.php';
36 if (!empty($conf->expensereport->enabled)) require_once DOL_DOCUMENT_ROOT.
'/expensereport/class/expensereport.class.php';
37 if (!empty($conf->salaries->enabled)) require_once DOL_DOCUMENT_ROOT.
'/salaries/class/paymentsalary.class.php';
40 $langs->loadLangs(array(
'companies',
'commercial',
'banks',
'bills',
'trips',
'holiday',
'salaries'));
43 $ref =
GETPOST(
'ref',
'alphanohtml');
44 $bankid =
GETPOST(
'bankid',
'int');
45 $action =
GETPOST(
"action",
'alpha');
46 $cancel =
GETPOST(
'cancel',
'alpha');
50 if ($user->socid > 0) $socid = $user->socid;
51 $feature2 = (($socid && $user->rights->user->self->creer) ?
'' :
'user');
55 if ($user->id == $id) $ok =
true;
56 if (!empty($user->rights->salaries->read)) $ok =
true;
57 if (!empty($user->rights->hrm->read)) $ok =
true;
58 if (!empty($user->rights->expensereport->lire) && ($user->id == $object->id || $user->rights->expensereport->readall)) $ok =
true;
64 $object =
new User($db);
65 if ($id > 0 || !empty($ref))
67 $result = $object->fetch($id, $ref,
'', 1);
74 $account->fetch(0,
'', $id);
76 $account->fetch($bankid);
78 if (empty($account->userid)) $account->userid = $object->id;
80 $permissiontoaddbankaccount = (!empty($user->rights->salaries->write) || !empty($user->rights->hrm->employee->write) || !empty($user->rights->user->creer));
87 if ($action ==
'add' && !$cancel)
89 $account->userid = $object->id;
91 $account->bank =
GETPOST(
'bank',
'alpha');
92 $account->label =
GETPOST(
'label',
'alpha');
93 $account->courant =
GETPOST(
'courant',
'alpha');
94 $account->code_banque =
GETPOST(
'code_banque',
'alpha');
95 $account->code_guichet =
GETPOST(
'code_guichet',
'alpha');
96 $account->number =
GETPOST(
'number',
'alpha');
97 $account->cle_rib =
GETPOST(
'cle_rib',
'alpha');
98 $account->bic =
GETPOST(
'bic',
'alpha');
99 $account->iban =
GETPOST(
'iban',
'alpha');
100 $account->domiciliation =
GETPOST(
'domiciliation',
'alpha');
101 $account->proprio =
GETPOST(
'proprio',
'alpha');
102 $account->owner_address =
GETPOST(
'owner_address',
'alpha');
104 $result = $account->create($user);
116 if ($action ==
'update' && !$cancel)
118 $account->userid = $object->id;
163 $account->bank =
GETPOST(
'bank',
'alpha');
164 $account->label =
GETPOST(
'label',
'alpha');
165 $account->courant =
GETPOST(
'courant',
'alpha');
166 $account->code_banque =
GETPOST(
'code_banque',
'alpha');
167 $account->code_guichet =
GETPOST(
'code_guichet',
'alpha');
168 $account->number =
GETPOST(
'number',
'alpha');
169 $account->cle_rib =
GETPOST(
'cle_rib',
'alpha');
170 $account->bic =
GETPOST(
'bic',
'alpha');
171 $account->iban =
GETPOST(
'iban',
'alpha');
172 $account->domiciliation =
GETPOST(
'domiciliation',
'alpha');
173 $account->proprio =
GETPOST(
'proprio',
'alpha');
174 $account->owner_address =
GETPOST(
'owner_address',
'alpha');
176 $result = $account->update($user);
188 if ($action ==
'setpersonal_email') {
189 $object->personal_email = (string)
GETPOST(
'personal_email',
'alphanohtml');
190 $result = $object->update($user);
191 if ($result < 0)
setEventMessages($object->error, $object->errors,
'errors');
195 if ($action ==
'setpersonal_mobile') {
196 $object->personal_mobile = (string)
GETPOST(
'personal_mobile',
'alphanohtml');
197 $result = $object->update($user);
198 if ($result < 0)
setEventMessages($object->error, $object->errors,
'errors');
202 if ($action ==
'setdefault_c_exp_tax_cat') {
203 $object->default_c_exp_tax_cat =
GETPOST(
'default_c_exp_tax_cat',
'int');
204 $result = $object->update($user);
205 if ($result < 0)
setEventMessages($object->error, $object->errors,
'errors');
209 if ($action ==
'setdefault_range') {
210 $object->default_range =
GETPOST(
'default_range',
'int');
211 $result = $object->update($user);
212 if ($result < 0)
setEventMessages($object->error, $object->errors,
'errors');
221 $form =
new Form($db);
223 $childids = $user->getAllChildIds(1);
225 llxHeader(null, $langs->trans(
"BankAccounts"));
229 if ($id && $bankid && $action ==
'edit' && $user->rights->user->user->creer)
231 print '<form action="'.$_SERVER[
'PHP_SELF'].
'?id='.$object->id.
'" method="post">';
232 print '<input type="hidden" name="token" value="'.newToken().
'">';
233 print '<input type="hidden" name="action" value="update">';
234 print '<input type="hidden" name="id" value="'.GETPOST(
"id",
'int').
'">';
235 print '<input type="hidden" name="bankid" value="'.$bankid.
'">';
237 if ($id && $action ==
'create' && $user->rights->user->user->creer)
239 print '<form action="'.$_SERVER[
'PHP_SELF'].
'?id='.$object->id.
'" method="post">';
240 print '<input type="hidden" name="token" value="'.newToken().
'">';
241 print '<input type="hidden" name="action" value="add">';
242 print '<input type="hidden" name="bankid" value="'.$bankid.
'">';
247 if ($action !=
'edit' && $action !=
'create')
249 $title = $langs->trans(
"User");
254 if ($user->rights->user->user->lire || $user->admin) {
255 $linkback =
'<a href="'.DOL_URL_ROOT.
'/user/list.php?restore_lastsearch_values=1">'.$langs->trans(
"BackToList").
'</a>';
258 dol_banner_tab($object,
'id', $linkback, $user->rights->user->user->lire || $user->admin);
260 print '<div class="fichecenter"><div class="fichehalfleft">';
262 print '<div class="underbanner clearboth"></div>';
264 print '<table class="border centpercent tableforfield">';
266 print '<tr><td class="titlefield">'.$langs->trans(
"Login").
'</td>';
267 print '<td>'.$object->login.
'</td>';
270 print '<tr class="nowrap">';
272 print $form->editfieldkey(
"UserPersonalEmail",
'personal_email', $object->personal_email, $object, $user->rights->user->user->creer);
274 print $form->editfieldval(
"UserPersonalEmail",
'personal_email', $object->personal_email, $object, $user->rights->user->user->creer,
'email', ($object->personal_email !=
'' ?
dol_print_email($object->personal_email) :
''));
278 print '<tr class="nowrap">';
280 print $form->editfieldkey(
"UserPersonalMobile",
'personal_mobile', $object->personal_mobile, $object, $user->rights->user->user->creer);
282 print $form->editfieldval(
"UserPersonalMobile",
'personal_mobile', $object->personal_mobile, $object, $user->rights->user->user->creer,
'string', ($object->personal_mobile !=
'' ?
dol_print_phone($object->personal_mobile) :
''));
286 if (!empty($conf->global->MAIN_USE_EXPENSE_IK))
288 print '<tr class="nowrap">';
290 print $form->editfieldkey(
"DefaultCategoryCar",
'default_c_exp_tax_cat', $object->default_c_exp_tax_cat, $object, $user->rights->user->user->creer);
292 if ($action ==
'editdefault_c_exp_tax_cat') {
293 $ret =
'<form method="post" action="'.$_SERVER[
"PHP_SELF"].($moreparam ?
'?'.$moreparam :
'').
'">';
294 $ret .=
'<input type="hidden" name="action" value="setdefault_c_exp_tax_cat">';
295 $ret .=
'<input type="hidden" name="token" value="'.newToken().
'">';
296 $ret .=
'<input type="hidden" name="id" value="'.$object->id.
'">';
297 $ret .= $form->selectExpenseCategories($object->default_c_exp_tax_cat,
'default_c_exp_tax_cat', 1);
298 $ret .=
'<input type="submit" class="button" name="modify" value="'.$langs->trans(
"Modify").
'"> ';
299 $ret .=
'<input type="submit" class="button button-cancel" name="cancel" value="'.$langs->trans(
"Cancel").
'">';
309 print '<tr class="nowrap">';
311 print $form->editfieldkey(
"DefaultRangeNumber",
'default_range', $object->default_range, $object, $user->rights->user->user->creer);
313 if ($action ==
'editdefault_range') {
314 $ret =
'<form method="post" action="'.$_SERVER[
"PHP_SELF"].($moreparam ?
'?'.$moreparam :
'').
'">';
315 $ret .=
'<input type="hidden" name="action" value="setdefault_range">';
316 $ret .=
'<input type="hidden" name="token" value="'.newToken().
'">';
317 $ret .=
'<input type="hidden" name="id" value="'.$object->id.
'">';
319 $ret .= $form->selectarray(
'default_range', range(0, $maxRangeNum), $object->default_range);
320 $ret .=
'<input type="submit" class="button" name="modify" value="'.$langs->trans(
"Modify").
'"> ';
321 $ret .=
'<input type="submit" class="button button-cancel" name="cancel" value="'.$langs->trans(
"Cancel").
'">';
325 print $object->default_range;
333 print '</div><div class="fichehalfright"><div class="ficheaddleft">';
336 $MAXLIST = $conf->global->MAIN_SIZE_SHORTLIST_LIMIT;
339 if (!empty($conf->salaries->enabled) &&
340 $user->rights->salaries->read && (in_array($object->id, $childids) || $object->id == $user->id)
345 $sql =
"SELECT ps.rowid, ps.datesp, ps.dateep, ps.amount";
346 $sql .=
" FROM ".MAIN_DB_PREFIX.
"payment_salary as ps";
347 $sql .=
" WHERE ps.fk_user = ".$object->id;
348 $sql .=
" AND ps.entity = ".$conf->entity;
349 $sql .=
" ORDER BY ps.datesp DESC";
351 $resql = $db->query($sql);
354 $num = $db->num_rows(
$resql);
356 print '<table class="noborder centpercent">';
358 print '<tr class="liste_titre">';
359 print '<td colspan="4"><table width="100%" class="nobordernopadding"><tr><td>'.$langs->trans(
"LastSalaries", ($num <= $MAXLIST ?
"" : $MAXLIST)).
'</td><td class="right"><a class="notasortlink" href="'.DOL_URL_ROOT.
'/salaries/list.php?search_user='.$object->login.
'">'.$langs->trans(
"AllSalaries").
'<span class="badge marginleftonlyshort">'.$num.
'</span></a></td>';
360 print '</tr></table></td>';
364 while ($i < $num && $i < $MAXLIST)
366 $objp = $db->fetch_object(
$resql);
368 print '<tr class="oddeven">';
369 print '<td class="nowraponall">';
370 $salary->id = $objp->rowid;
371 $salary->ref = $objp->rowid;
372 print $salary->getNomUrl(1);
375 print '<td class="right" width="80px">'.dol_print_date($db->jdate($objp->datesp),
'day').
"</td>\n";
376 print '<td class="right" width="80px">'.dol_print_date($db->jdate($objp->dateep),
'day').
"</td>\n";
377 print '<td class="right" style="min-width: 60px">'.price($objp->amount).
'</td>';
384 if ($num <= 0)
print '<td colspan="4" class="opacitymedium">'.$langs->trans(
"None").
'</a>';
394 if (!empty($conf->holiday->enabled) &&
395 ($user->rights->holiday->readall || ($user->rights->holiday->read && $object->id == $user->id))
400 $sql =
"SELECT h.rowid, h.statut as status, h.fk_type, h.date_debut, h.date_fin, h.halfday";
401 $sql .=
" FROM ".MAIN_DB_PREFIX.
"holiday as h";
402 $sql .=
" WHERE h.fk_user = ".$object->id;
403 $sql .=
" AND h.entity IN (".getEntity(
'holiday').
")";
404 $sql .=
" ORDER BY h.date_debut DESC";
406 $resql = $db->query($sql);
409 $num = $db->num_rows(
$resql);
411 print '<table class="noborder centpercent">';
413 print '<tr class="liste_titre">';
414 print '<td colspan="4"><table class="nobordernopadding centpercent"><tr><td>'.$langs->trans(
"LastHolidays", ($num <= $MAXLIST ?
"" : $MAXLIST)).
'</td><td class="right"><a class="notasortlink" href="'.DOL_URL_ROOT.
'/holiday/list.php?id='.$object->id.
'">'.$langs->trans(
"AllHolidays").
'<span class="badge marginleftonlyshort">'.$num.
'</span></a></td>';
415 print '</tr></table></td>';
419 while ($i < $num && $i < $MAXLIST)
421 $objp = $db->fetch_object(
$resql);
423 $holiday->id = $objp->rowid;
424 $holiday->ref = $objp->rowid;
425 $holiday->fk_type = $objp->fk_type;
426 $holiday->statut = $objp->status;
427 $nbopenedday =
num_open_day($db->jdate($objp->date_debut), $db->jdate($objp->date_fin), 0, 1, $objp->halfday);
429 print '<tr class="oddeven">';
430 print
'<td class="nowrap">';
431 print $holiday->getNomUrl(1);
432 print
'</td><td class="right" width="80px">'.dol_print_date($db->jdate($objp->date_debut),
'day').
"</td>\n";
433 print
'<td class="right" style="min-width: 60px">'.$nbopenedday.
' '.$langs->trans(
'DurationDays').
'</td>';
434 print
'<td class="right" style="min-width: 60px" class="nowrap">'.$holiday->LibStatut($objp->status, 5).
'</td></tr>';
439 if ($num <= 0) print
'<td colspan="4" class="opacitymedium">'.$langs->trans(
"None").
'</a>';
449 if (!empty($conf->expensereport->enabled) &&
450 ($user->rights->expensereport->readall || ($user->rights->expensereport->lire && $object->id == $user->id))
455 $sql =
"SELECT e.rowid, e.ref, e.fk_statut as status, e.date_debut, e.total_ttc";
456 $sql .=
" FROM ".MAIN_DB_PREFIX.
"expensereport as e";
457 $sql .=
" WHERE e.fk_user_author = ".$object->id;
458 $sql .=
" AND e.entity = ".$conf->entity;
459 $sql .=
" ORDER BY e.date_debut DESC";
461 $resql = $db->query($sql);
464 $num = $db->num_rows(
$resql);
466 print
'<table class="noborder centpercent">';
468 print
'<tr class="liste_titre">';
469 print
'<td colspan="4"><table class="nobordernopadding centpercent"><tr><td>'.$langs->trans(
"LastExpenseReports", ($num <= $MAXLIST ?
"" : $MAXLIST)).
'</td><td class="right"><a class="notasortlink" href="'.DOL_URL_ROOT.
'/expensereport/list.php?id='.$object->id.
'">'.$langs->trans(
"AllExpenseReports").
'<span class="badge marginleftonlyshort">'.$num.
'</span></a></td>';
470 print
'</tr></table></td>';
474 while ($i < $num && $i < $MAXLIST)
476 $objp = $db->fetch_object(
$resql);
478 $exp->id = $objp->rowid;
479 $exp->ref = $objp->ref;
480 $exp->fk_type = $objp->fk_type;
481 $exp->status = $objp->status;
483 print
'<tr class="oddeven">';
484 print
'<td class="nowrap">';
485 print $exp->getNomUrl(1);
486 print
'</td><td class="right" width="80px">'.dol_print_date($db->jdate($objp->date_debut),
'day').
"</td>\n";
487 print
'<td class="right" style="min-width: 60px">'.price($objp->total_ttc).
'</td>';
488 print
'<td class="right nowrap" style="min-width: 60px">'.$exp->LibStatut($objp->status, 5).
'</td></tr>';
493 if ($num <= 0) print
'<td colspan="4" class="opacitymedium">'.$langs->trans(
"None").
'</a>';
500 print
'</div></div></div>';
501 print
'<div style="clear:both"></div>';
508 if ($account->id == 0) {
509 if ($permissiontoaddbankaccount) {
510 $morehtmlright =
dolGetButtonTitle($langs->trans(
'Add'),
'',
'fa fa-plus-circle',
$_SERVER[
"PHP_SELF"].
'?id='.$object->id.
'&action=create');
512 $morehtmlright =
dolGetButtonTitle($langs->trans(
'Add'),
'NotEnoughPermission',
'fa fa-plus-circle',
'',
'', -2);
515 $morehtmlright =
dolGetButtonTitle($langs->trans(
'Add'),
'AlreadyOneBankAccount',
'fa fa-plus-circle',
'',
'', -2);
518 print
load_fiche_titre($langs->trans(
"BankAccounts"), $morehtmlright,
'bank_account');
520 print
'<div class="div-table-responsive-no-min">';
521 print
'<table class="liste centpercent">';
523 print
'<tr class="liste_titre">';
532 if ($account->id > 0) {
533 print
'<tr class="oddeven">';
535 print
'<td>'.$account->label.
'</td>';
537 print
'<td>'.$account->bank.
'</td>';
541 foreach ($account->getFieldsToShow() as $val) {
542 if ($val ==
'BankCode') {
543 $string .= $account->code_banque.
' ';
544 } elseif ($val ==
'BankAccountNumber') {
545 $string .= $account->number.
' ';
546 } elseif ($val ==
'DeskCode') {
547 $string .= $account->code_guichet.
' ';
548 } elseif ($val ==
'BankAccountNumberKey') {
549 $string .= $account->cle_rib.
' ';
552 if (!empty($account->label) && $account->number) {
554 $string .=
' '.img_picto($langs->trans(
"ValueIsNotValid"),
'warning');
556 $string .=
' '.img_picto($langs->trans(
"ValueIsValid"),
'info');
563 print
'<td>'.$account->iban;
564 if (!empty($account->iban)) {
566 print
' '.img_picto($langs->trans(
"IbanNotValid"),
'warning');
571 print
'<td>'.$account->bic;
572 if (!empty($account->bic)) {
574 print
' '.img_picto($langs->trans(
"SwiftNotValid"),
'warning');
580 print
'<td class="right nowraponall">';
581 if ($permissiontoaddbankaccount) {
582 print
'<a class="editfielda" href="'.$_SERVER[
"PHP_SELF"].
'?id='.$object->id.
'&bankid='.$account->id.
'&action=edit">';
583 print
img_picto($langs->trans(
"Modify"),
'edit');
592 if ($account->id == 0)
595 print
'<tr><td colspan="'.$colspan.
'" class="opacitymedium">'.$langs->trans(
"NoBANRecord").
'</td></tr>';
603 if ($id && ($action ==
'edit' || $action ==
'create') && $user->rights->user->user->creer)
605 $title = $langs->trans(
"User");
608 $linkback =
'<a href="'.DOL_URL_ROOT.
'/user/list.php?restore_lastsearch_values=1">'.$langs->trans(
"BackToList").
'</a>';
610 dol_banner_tab($object,
'id', $linkback, $user->rights->user->user->lire || $user->admin);
614 print
'<div class="underbanner clearboth"></div>';
615 print
'<table class="border centpercent">';
617 print
'<tr><td class="titlefield fieldrequired">'.$langs->trans(
"LabelRIB").
'</td>';
618 print
'<td colspan="4"><input size="30" type="text" name="label" value="'.$account->label.
'"></td></tr>';
620 print
'<tr><td class="fieldrequired">'.$langs->trans(
"BankName").
'</td>';
621 print
'<td><input size="30" type="text" name="bank" value="'.$account->bank.
'"></td></tr>';
624 foreach ($account->getFieldsToShow() as $val) {
625 if ($val ==
'BankCode') {
626 $name =
'code_banque';
628 $content = $account->code_banque;
629 } elseif ($val ==
'DeskCode') {
630 $name =
'code_guichet';
632 $content = $account->code_guichet;
633 } elseif ($val ==
'BankAccountNumber') {
636 $content = $account->number;
637 } elseif ($val ==
'BankAccountNumberKey') {
640 $content = $account->cle_rib;
643 print
'<td>'.$langs->trans($val).
'</td>';
644 print
'<td><input size="'.$size.
'" type="text" class="flat" name="'.$name.
'" value="'.$content.
'"></td>';
649 print
'<tr><td class="fieldrequired">'.$langs->trans(
"IBAN").
'</td>';
650 print
'<td colspan="4"><input size="30" type="text" name="iban" value="'.$account->iban.
'"></td></tr>';
652 print
'<tr><td class="fieldrequired">'.$langs->trans(
"BIC").
'</td>';
653 print
'<td colspan="4"><input size="12" type="text" name="bic" value="'.$account->bic.
'"></td></tr>';
655 print
'<tr><td class="tdtop">'.$langs->trans(
"BankAccountDomiciliation").
'</td><td colspan="4">';
656 print
'<textarea name="domiciliation" rows="4" class="quatrevingtpercent">';
657 print $account->domiciliation;
658 print
"</textarea></td></tr>";
660 print
'<tr><td>'.$langs->trans(
"BankAccountOwner").
'</td>';
661 print
'<td colspan="4"><input size="30" type="text" name="proprio" value="'.$account->proprio.
'"></td></tr>';
662 print
"</td></tr>\n";
664 print
'<tr><td class="tdtop">'.$langs->trans(
"BankAccountOwnerAddress").
'</td><td colspan="4">';
665 print
'<textarea name="owner_address" rows="4" class="quatrevingtpercent">';
666 print $account->owner_address;
667 print
"</textarea></td></tr>";
675 print
'<div class="center">';
676 print
'<input class="button" value="'.$langs->trans(
"Modify").
'" type="submit">';
677 print
' ';
678 print
'<input class="button button-cancel" name="cancel" value="'.$langs->trans(
"Cancel").
'" type="submit">';
682 if ($id && $action ==
'edit' && $user->rights->user->user->creer) print
'</form>';
684 if ($id && $action ==
'create' && $user->rights->user->user->creer) print
'</form>';
GETPOST($paramname, $check= 'alphanohtml', $method=0, $filter=null, $options=null, $noreplace=0)
Return value of a param into GET or POST supervariable.
Class of the module paid holiday.
static getMaxRangeNumber($default_c_exp_tax_cat=0)
Return the max number of range by a category.
user_prepare_head($object)
Prepare array with list of tabs.
Class to manage salary payments.
dolGetButtonTitle($label, $helpText= '', $iconClass= 'fa fa-file', $url= '', $id= '', $status=1, $params=array())
Function dolGetButtonTitle : this kind of buttons are used in title in list.
Class to manage bank accounts description of users.
Class to manage Dolibarr users.
dol_print_phone($phone, $countrycode= '', $cid=0, $socid=0, $addlink= '', $separ=" ", $withpicto= '', $titlealt= '', $adddivfloat=0)
Format phone numbers according to country.
checkSwiftForAccount($account)
Check SWIFT informations for a bank account.
setEventMessages($mesg, $mesgs, $style= 'mesgs', $messagekey= '')
Set event messages in dol_events session object.
print_liste_field_titre($name, $file="", $field="", $begin="", $moreparam="", $moreattrib="", $sortfield="", $sortorder="", $prefix="", $tooltip="", $forcenowrapcolumntitle=0)
Show title line of an array.
load_fiche_titre($titre, $morehtmlright= '', $picto= 'generic', $pictoisfullpath=0, $id= '', $morecssontable= '', $morehtmlcenter= '')
Load a title with picto.
img_picto($titlealt, $picto, $moreatt= '', $pictoisfullpath=false, $srconly=0, $notitle=0, $alt= '', $morecss= '', $marginleftonlyshort=2)
Show picto whatever it's its name (generic function)
num_open_day($timestampStart, $timestampEnd, $inhour=0, $lastday=0, $halfday=0, $country_code= '')
Function to return number of working days (and text of units) between two dates (working days) ...
accessforbidden($message= '', $printheader=1, $printfooter=1, $showonlymessage=0, $params=null)
Show a message to say access is forbidden and stop program Calling this function terminate execution ...
Class to manage Trips and Expenses.
print $_SERVER["PHP_SELF"]
Edit parameters.
checkBanForAccount($account)
Check account number informations for a bank account.
dol_getIdFromCode($db, $key, $tablename, $fieldkey= 'code', $fieldid= 'id', $entityfilter=0)
Return an id or code from a code or id.
dol_get_fiche_head($links=array(), $active= '', $title= '', $notab=0, $picto= '', $pictoisfullpath=0, $morehtmlright= '', $morecss= '', $limittoshow=0, $moretabssuffix= '')
Show tabs of a record.
print
Draft customers invoices.
checkIbanForAccount($account)
Check IBAN number informations for a bank account.
if(!empty($conf->facture->enabled)&&$user->rights->facture->lire) if((!empty($conf->fournisseur->enabled)&&empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)||!empty($conf->supplier_invoice->enabled))&&$user->rights->fournisseur->facture->lire) if(!empty($conf->don->enabled)&&$user->rights->don->lire) if(!empty($conf->tax->enabled)&&$user->rights->tax->charges->lire) if(!empty($conf->facture->enabled)&&!empty($conf->commande->enabled)&&$user->rights->commande->lire &&empty($conf->global->WORKFLOW_DISABLE_CREATE_INVOICE_FROM_ORDER)) if(!empty($conf->facture->enabled)&&$user->rights->facture->lire) if((!empty($conf->fournisseur->enabled)&&empty($conf->global->MAIN_USE_NEW_SUPPLIERMOD)||!empty($conf->supplier_invoice->enabled))&&$user->rights->fournisseur->facture->lire) $resql
Social contributions to pay.
dol_print_error($db= '', $error= '', $errors=null)
Displays error message system with all the information to facilitate the diagnosis and the escalation...
dol_print_email($email, $cid=0, $socid=0, $addlink=0, $max=64, $showinvalid=1, $withpicto=0)
Show EMail link formatted for HTML output.
dol_get_fiche_end($notab=0)
Return tab footer of a card.
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.