diff --git a/htdocs/compta/facture/class/facture.class.php b/htdocs/compta/facture/class/facture.class.php
index 75869a900dd..ed2c729b424 100644
--- a/htdocs/compta/facture/class/facture.class.php
+++ b/htdocs/compta/facture/class/facture.class.php
@@ -1766,6 +1766,71 @@ class Facture extends CommonInvoice
return $deposit;
}
+ /**
+ * getTooltipContentArray
+ *
+ * @param array $params ex option, infologin
+ * @since v18
+ * @return array
+ */
+ public function getTooltipContentArray($params)
+ {
+ global $conf, $langs, $mysoc, $user;
+
+ $langs->load('bills');
+
+ $datas = [];
+ $moretitle = $params['moretitle'] ?? '';
+ $picto = $this->picto;
+ if ($this->type == self::TYPE_REPLACEMENT) {
+ $picto .= 'r'; // Replacement invoice
+ }
+ if ($this->type == self::TYPE_CREDIT_NOTE) {
+ $picto .= 'a'; // Credit note
+ }
+ if ($this->type == self::TYPE_DEPOSIT) {
+ $picto .= 'd'; // Deposit invoice
+ }
+
+ if ($user->hasRight("facture", "read")) {
+ $datas['picto'] = img_picto('', $picto).' '.$langs->trans("Invoice").'';
+ if (isset($this->statut) && isset($this->alreadypaid)) {
+ $datas['picto'] .= ' '.$this->getLibStatut(5, $this->alreadypaid);
+ }
+ $datas['picto'] .= ' '.$this->getLibType(1);
+ if ($moretitle) {
+ $datas['picto'] = ' - '.$moretitle;
+ }
+ if (!empty($this->ref)) {
+ $datas['ref'] = '
'.$langs->trans('Ref').': '.$this->ref;
+ }
+ if (!empty($this->ref_customer)) {
+ $datas['refcustomer'] = '
'.$langs->trans('RefCustomer').': '.$this->ref_customer;
+ }
+ if (!empty($this->date)) {
+ $datas['date'] = '
'.$langs->trans('Date').': '.dol_print_date($this->date, 'day');
+ }
+ if (!empty($this->total_ht)) {
+ $datas['amountht'] = '
'.$langs->trans('AmountHT').': '.price($this->total_ht, 0, $langs, 0, -1, -1, $conf->currency);
+ }
+ if (!empty($this->total_tva)) {
+ $datas['amountvat'] = '
'.$langs->trans('AmountVAT').': '.price($this->total_tva, 0, $langs, 0, -1, -1, $conf->currency);
+ }
+ if (!empty($this->total_localtax1) && $this->total_localtax1 != 0) {
+ // We keep test != 0 because $this->total_localtax1 can be '0.00000000'
+ $datas['amountlt1'] = '
'.$langs->transcountry('AmountLT1', $mysoc->country_code).': '.price($this->total_localtax1, 0, $langs, 0, -1, -1, $conf->currency);
+ }
+ if (!empty($this->total_localtax2) && $this->total_localtax2 != 0) {
+ $datas['amountlt2'] = '
'.$langs->transcountry('AmountLT2', $mysoc->country_code).': '.price($this->total_localtax2, 0, $langs, 0, -1, -1, $conf->currency);
+ }
+ if (!empty($this->total_ttc)) {
+ $datas['amountttc'] = '
'.$langs->trans('AmountTTC').': '.price($this->total_ttc, 0, $langs, 0, -1, -1, $conf->currency);
+ }
+ }
+
+ return $datas;
+ }
+
/**
* Return clicable link of object (with eventually picto)
*
@@ -1863,13 +1928,26 @@ class Facture extends CommonInvoice
}
$linkclose = ($target ? ' target="'.$target.'"' : '');
+ $classfortooltip = 'classfortooltip';
+ $dataparams = '';
+ if (getDolGlobalInt('MAIN_ENABLE_AJAX_TOOLTIP')) {
+ $params = [
+ 'id' => $this->id,
+ 'objecttype' => $this->element,
+ 'moretitle' => $moretitle,
+ 'option' => $option,
+ ];
+ $classfortooltip = 'classforajaxtooltip';
+ $dataparams = ' data-params='.json_encode($params);
+ $label = $langs->trans('Loading');
+ }
if (empty($notooltip) && $user->hasRight("facture", "read")) {
if (!empty($conf->global->MAIN_OPTIMIZEFORTEXTBROWSER)) {
$label = $langs->trans("Invoice");
$linkclose .= ' alt="'.dol_escape_htmltag($label, 1).'"';
}
- $linkclose .= ' title="'.dol_escape_htmltag($label, 1).'"';
- $linkclose .= ' class="classfortooltip"';
+ $linkclose .= $dataparams.' title="'.dol_escape_htmltag($label, 1).'"';
+ $linkclose .= ' class="'.$classfortooltip.'"';
}
$linkstart = 'ref, $max) : $this->ref);