NEW The margin section can now be shown/hidden

This commit is contained in:
Laurent Destailleur
2024-09-28 15:10:28 +02:00
parent e1587dd0bb
commit 5f21a3a4e3
2 changed files with 31 additions and 28 deletions

View File

@@ -211,7 +211,7 @@ class FormMargin
*/
public function displayMarginInfos($object, $force_price = false)
{
global $langs, $conf, $user, $hookmanager;
global $langs, $user, $hookmanager;
global $action;
if (!empty($user->socid)) {
@@ -224,50 +224,53 @@ class FormMargin
$marginInfo = $this->getMarginInfosArray($object, $force_price);
print '<!-- displayMarginInfos() - Show margin table -->' . "\n";
$parameters = array('marginInfo' => &$marginInfo);
$reshook = $hookmanager->executeHooks('displayMarginInfos', $parameters, $object, $action);
if ($reshook < 0) {
setEventMessages($hookmanager->error, $hookmanager->errors, 'errors');
} elseif (empty($reshook)) {
if (getDolGlobalString('MARGIN_ADD_SHOWHIDE_BUTTON')) {
print $langs->trans('ShowMarginInfos') . ' ';
$hidemargininfos = preg_replace('/[^a-zA-Z0-9_\-]/', '', $_COOKIE['DOLUSER_MARGININFO_HIDE_SHOW']) ?? ''; // Clean cookie
print '<span id="showMarginInfos" class="linkobject valignmiddle ' . (!empty($hidemargininfos) ? '' : 'hideobject') . '">' . img_picto($langs->trans("Disabled"), 'switch_off') . '</span>';
print '<span id="hideMarginInfos" class="linkobject valignmiddle ' . (!empty($hidemargininfos) ? 'hideobject' : '') . '">' . img_picto($langs->trans("Enabled"), 'switch_on') . '</span>';
$hidemargininfos = preg_replace('/[^a-zA-Z0-9_\-]/', '', $_COOKIE['DOLUSER_MARGININFO_HIDE_SHOW']) ?? ''; // Clean cookie
print '<script nonce="'.getNonce().'">$(document).ready(function() {';
print '$("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=/ "; $(".margintable").show(); $("span#showMarginInfos").addClass("hideobject"); $("span#hideMarginInfos").removeClass("hideobject"); });';
print '$("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=/ "; $(".margintable").hide(); $("span#hideMarginInfos").addClass("hideobject"); $("span#showMarginInfos").removeClass("hideobject"); });';
if (!empty($hidemargininfos)) {
print 'console.log("hide the margin info"); $("#margintable").hide();';
}
print '});</script>';
$buttonToShowHideMargin = '<span id="showMarginInfos" class="linkobject valignmiddle ' . (!empty($hidemargininfos) ? '' : 'hideobject') . '">';
$buttonToShowHideMargin .= img_picto($langs->trans("ShowMarginInfos"), 'switch_off', '', 0, 0, 0, '', 'size15x');
$buttonToShowHideMargin .= '</span>';
$buttonToShowHideMargin .= '<span id="hideMarginInfos" class="linkobject valignmiddle ' . (!empty($hidemargininfos) ? 'hideobject' : '') . '">';
$buttonToShowHideMargin .= img_picto($langs->trans("Hide"), 'switch_on_grey', '', 0, 0, 0, '', 'size15x opacitymedium');
$buttonToShowHideMargin .= '</span>';
$buttonToShowHideMargin .= '<script nonce="'.getNonce().'">$(document).ready(function() {';
$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"); });';
$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"); });';
if (!empty($hidemargininfos)) {
$buttonToShowHideMargin .= 'console.log("hide the margin info"); $(".margininfo").hide();';
}
$buttonToShowHideMargin .= '});</script>';
print '<!-- displayMarginInfos() - Show margin table -->' . "\n";
print '<div class="div-table-responsive-no-min">';
print '<table class="noborder margintable centpercent" id="margintable">';
print '<tr class="liste_titre">';
print '<td class="liste_titre">' . $langs->trans('Margins') . '</td>';
print '<td class="liste_titre right">' . $langs->trans('SellingPrice') . '</td>';
print '<td class="liste_titre">' . $langs->trans('Margins') . ' ' . $buttonToShowHideMargin . '</td>';
print '<td class="liste_titre right margininfo'.(empty($_COOKIE['DOLUSER_MARGININFO_HIDE_SHOW']) ? '' : ' hideobject').'">' . $langs->trans('SellingPrice') . '</td>';
if (getDolGlobalString('MARGIN_TYPE') == "1") {
print '<td class="liste_titre right">' . $langs->trans('BuyingPrice') . '</td>';
print '<td class="liste_titre right margininfo'.(empty($_COOKIE['DOLUSER_MARGININFO_HIDE_SHOW']) ? '' : ' hideobject').'">' . $langs->trans('BuyingPrice') . '</td>';
} else {
print '<td class="liste_titre right">' . $langs->trans('CostPrice') . '</td>';
print '<td class="liste_titre right margininfo'.(empty($_COOKIE['DOLUSER_MARGININFO_HIDE_SHOW']) ? '' : ' hideobject').'">' . $langs->trans('CostPrice') . '</td>';
}
print '<td class="liste_titre right">' . $langs->trans('Margin') . '</td>';
print '<td class="liste_titre right margininfo'.(empty($_COOKIE['DOLUSER_MARGININFO_HIDE_SHOW']) ? '' : ' hideobject').'">' . $langs->trans('Margin') . '</td>';
if (getDolGlobalString('DISPLAY_MARGIN_RATES')) {
print '<td class="liste_titre right">' . $langs->trans('MarginRate') . '</td>';
print '<td class="liste_titre right margininfo'.(empty($_COOKIE['DOLUSER_MARGININFO_HIDE_SHOW']) ? '' : ' hideobject').'">' . $langs->trans('MarginRate') . '</td>';
}
if (getDolGlobalString('DISPLAY_MARK_RATES')) {
print '<td class="liste_titre right">' . $langs->trans('MarkRate') . '</td>';
print '<td class="liste_titre right margininfo'.(empty($_COOKIE['DOLUSER_MARGININFO_HIDE_SHOW']) ? '' : ' hideobject').'">' . $langs->trans('MarkRate') . '</td>';
}
print '</tr>';
if (isModEnabled("product")) {
//if ($marginInfo['margin_on_products'] != 0 && $marginInfo['margin_on_services'] != 0) {
print '<tr class="oddeven">';
print '<tr class="oddeven margininfo'.(empty($_COOKIE['DOLUSER_MARGININFO_HIDE_SHOW']) ? '' : ' hideobject').'">';
print '<td>' . $langs->trans('MarginOnProducts') . '</td>';
print '<td class="right">' . price($marginInfo['pv_products']) . '</td>';
print '<td class="right">' . price($marginInfo['pa_products']) . '</td>';
@@ -282,7 +285,7 @@ class FormMargin
}
if (isModEnabled("service")) {
print '<tr class="oddeven">';
print '<tr class="oddeven margininfo'.(empty($_COOKIE['DOLUSER_MARGININFO_HIDE_SHOW']) ? '' : ' hideobject').'">';
print '<td>' . $langs->trans('MarginOnServices') . '</td>';
print '<td class="right">' . price($marginInfo['pv_services']) . '</td>';
print '<td class="right">' . price($marginInfo['pa_services']) . '</td>';
@@ -297,7 +300,7 @@ class FormMargin
}
if (isModEnabled("product") && isModEnabled("service")) {
print '<tr class="liste_total">';
print '<tr class="liste_total margininfo'.(empty($_COOKIE['DOLUSER_MARGININFO_HIDE_SHOW']) ? '' : ' hideobject').'">';
print '<td>' . $langs->trans('TotalMargin') . '</td>';
print '<td class="right">' . price($marginInfo['pv_total']) . '</td>';
print '<td class="right">' . price($marginInfo['pa_total']) . '</td>';
@@ -310,7 +313,7 @@ class FormMargin
}
print '</tr>';
}
print $hookmanager->resPrint;
print $hookmanager->resPrint;
print '</table>';
print '</div>';
} elseif ($reshook > 0) {