227 global $langs, $user, $hookmanager;
230 if (!empty($user->socid)) {
234 if (!$user->hasRight(
'margins',
'liretous')) {
238 $marginInfo = $this->getMarginInfosArray(
$object, $force_price);
240 print
'<!-- displayMarginInfos() - Show margin table -->' .
"\n";
242 $parameters = array(
'marginInfo' => &$marginInfo);
243 $reshook = $hookmanager->executeHooks(
'displayMarginInfos', $parameters,
$object, $action);
245 setEventMessages($hookmanager->error, $hookmanager->errors,
'errors');
246 } elseif (empty($reshook)) {
247 $hidemargininfos = preg_replace(
'/[^a-zA-Z0-9_\-]/',
'', $_COOKIE[
'DOLUSER_MARGININFO_HIDE_SHOW'] ??
'');
249 $buttonToShowHideMargin =
'<span id="showMarginInfos" class="linkobject valignmiddle ' . (!empty($hidemargininfos) ?
'' :
'hideobject') .
'">';
250 $buttonToShowHideMargin .= img_picto($langs->trans(
"ShowMarginInfos"),
'switch_off',
'', 0, 0, 0,
'',
'size15x');
251 $buttonToShowHideMargin .=
'</span>';
252 $buttonToShowHideMargin .=
'<span id="hideMarginInfos" class="linkobject valignmiddle ' . (!empty($hidemargininfos) ?
'hideobject' :
'') .
'">';
253 $buttonToShowHideMargin .= img_picto($langs->trans(
"Hide"),
'switch_on_grey',
'', 0, 0, 0,
'',
'size15x opacitymedium');
254 $buttonToShowHideMargin .=
'</span>';
256 $buttonToShowHideMargin .=
'<script nonce="'.getNonce().
'">$(document).ready(function() {';
257 $buttonToShowHideMargin .=
'$("span#showMarginInfos").click(function() { console.log("click on showMargininfos"); date = new Date(); date.setTime(date.getTime()+(30*86400000)); document.cookie = "DOLUSER_MARGININFO_HIDE_SHOW=0; expires=" + date.toGMTString() + "; path=/ "; $(".margininfo").show(); $("span#showMarginInfos").addClass("hideobject"); $("span#hideMarginInfos").removeClass("hideobject"); });';
258 $buttonToShowHideMargin .=
'$("span#hideMarginInfos").click(function() { console.log("click on hideMarginInfos"); date = new Date(); date.setTime(date.getTime()+(30*86400000)); document.cookie = "DOLUSER_MARGININFO_HIDE_SHOW=1; expires=" + date.toGMTString() + "; path=/ "; $(".margininfo").hide(); $("span#hideMarginInfos").addClass("hideobject"); $("span#showMarginInfos").removeClass("hideobject"); });';
259 if (!empty($hidemargininfos)) {
260 $buttonToShowHideMargin .=
'console.log("hide the margin info"); $(".margininfo").hide();';
262 $buttonToShowHideMargin .=
'});</script>';
264 print
'<div class="div-table-responsive-no-min">';
266 print
'<table class="noborder margintable centpercent" id="margintable">';
267 print
'<tr class="liste_titre">';
268 print
'<td class="liste_titre">' . $langs->trans(
'Margins') .
' ' . $buttonToShowHideMargin .
'</td>';
269 print
'<td class="liste_titre right margininfo'.(empty($_COOKIE[
'DOLUSER_MARGININFO_HIDE_SHOW']) ?
'' :
' hideobject').
'">' . $langs->trans(
'SellingPrice') .
'</td>';
271 print
'<td class="liste_titre right margininfo'.(empty($_COOKIE[
'DOLUSER_MARGININFO_HIDE_SHOW']) ?
'' :
' hideobject').
'">' . $langs->trans(
'BuyingPrice') .
'</td>';
273 print
'<td class="liste_titre right margininfo'.(empty($_COOKIE[
'DOLUSER_MARGININFO_HIDE_SHOW']) ?
'' :
' hideobject').
'">' . $langs->trans(
'CostPrice') .
'</td>';
275 print
'<td class="liste_titre right margininfo'.(empty($_COOKIE[
'DOLUSER_MARGININFO_HIDE_SHOW']) ?
'' :
' hideobject').
'">' . $langs->trans(
'Margin') .
'</td>';
277 print
'<td class="liste_titre right margininfo'.(empty($_COOKIE[
'DOLUSER_MARGININFO_HIDE_SHOW']) ?
'' :
' hideobject').
'">' . $langs->trans(
'MarginRate') .
'</td>';
280 print
'<td class="liste_titre right margininfo'.(empty($_COOKIE[
'DOLUSER_MARGININFO_HIDE_SHOW']) ?
'' :
' hideobject').
'">' . $langs->trans(
'MarkRate') .
'</td>';
286 print
'<tr class="oddeven margininfo'.(empty($_COOKIE[
'DOLUSER_MARGININFO_HIDE_SHOW']) ?
'' :
' hideobject').
'">';
287 print
'<td>' . $langs->trans(
'MarginOnProducts') .
'</td>';
288 print
'<td class="right">' .
price($marginInfo[
'pv_products']) .
'</td>';
289 print
'<td class="right">' .
price($marginInfo[
'pa_products']) .
'</td>';
290 print
'<td class="right">' .
price($marginInfo[
'margin_on_products']) .
'</td>';
292 print
'<td class="right">' . (($marginInfo[
'margin_rate_products'] ==
'') ?
'' :
price($marginInfo[
'margin_rate_products'], 0,
'', 0, 0, 2) .
'%') .
'</td>';
295 print
'<td class="right">' . (($marginInfo[
'mark_rate_products'] ==
'') ?
'' :
price($marginInfo[
'mark_rate_products'], 0,
'', 0, 0, 2) .
'%') .
'</td>';
301 print
'<tr class="oddeven margininfo'.(empty($_COOKIE[
'DOLUSER_MARGININFO_HIDE_SHOW']) ?
'' :
' hideobject').
'">';
302 print
'<td>' . $langs->trans(
'MarginOnServices') .
'</td>';
303 print
'<td class="right">' .
price($marginInfo[
'pv_services']) .
'</td>';
304 print
'<td class="right">' .
price($marginInfo[
'pa_services']) .
'</td>';
305 print
'<td class="right">' .
price($marginInfo[
'margin_on_services']) .
'</td>';
307 print
'<td class="right">' . (($marginInfo[
'margin_rate_services'] ==
'') ?
'' :
price($marginInfo[
'margin_rate_services'], 0,
'', 0, 0, 2) .
'%') .
'</td>';
310 print
'<td class="right">' . (($marginInfo[
'mark_rate_services'] ==
'') ?
'' :
price($marginInfo[
'mark_rate_services'], 0,
'', 0, 0, 2) .
'%') .
'</td>';
316 print
'<tr class="liste_total margininfo'.(empty($_COOKIE[
'DOLUSER_MARGININFO_HIDE_SHOW']) ?
'' :
' hideobject').
'">';
317 print
'<td>' . $langs->trans(
'TotalMargin') .
'</td>';
318 print
'<td class="right">' .
price($marginInfo[
'pv_total']) .
'</td>';
319 print
'<td class="right">' .
price($marginInfo[
'pa_total']) .
'</td>';
320 print
'<td class="right">' .
price($marginInfo[
'total_margin']) .
'</td>';
322 print
'<td class="right">' . (($marginInfo[
'total_margin_rate'] ==
'') ?
'' :
price($marginInfo[
'total_margin_rate'], 0,
'', 0, 0, 2) .
'%') .
'</td>';
325 print
'<td class="right">' . (($marginInfo[
'total_mark_rate'] ==
'') ?
'' :
price($marginInfo[
'total_mark_rate'], 0,
'', 0, 0, 2) .
'%') .
'</td>';
329 print $hookmanager->resPrint;
332 } elseif ($reshook > 0) {
333 print $hookmanager->resPrint;