diff --git a/modules/helpdesk/pages/helpdesk/debitor(default).phtml b/modules/helpdesk/pages/helpdesk/debitor(default).phtml
index 6951994..19305ad 100644
--- a/modules/helpdesk/pages/helpdesk/debitor(default).phtml
+++ b/modules/helpdesk/pages/helpdesk/debitor(default).phtml
@@ -85,16 +85,6 @@ $searchConfig = is_array($searchConfig ?? null) ? $searchConfig : null;
-
-
@@ -141,32 +131,6 @@ $searchConfig = is_array($searchConfig ?? null) ? $searchConfig : null;
-
-
-
-
-
- —
-
-
-
-
- —
-
-
-
-
- —
-
-
-
-
- —
-
-
-
-
-
diff --git a/modules/helpdesk/web/js/helpdesk-detail.js b/modules/helpdesk/web/js/helpdesk-detail.js
index cefbb4d..d62d65f 100644
--- a/modules/helpdesk/web/js/helpdesk-detail.js
+++ b/modules/helpdesk/web/js/helpdesk-detail.js
@@ -417,70 +417,6 @@ function init(container) {
return html;
}
- function renderSupportContractKpis(contracts) {
- const entries = Array.isArray(contracts) ? contracts : [];
- const wrapper = document.getElementById('support-contract-kpis-wrapper');
- if (!wrapper) return;
-
- if (entries.length === 0) {
- wrapper.hidden = true;
- return;
- }
-
- const amountFmt = new Intl.NumberFormat(undefined, {
- style: 'currency',
- currency: 'EUR',
- maximumFractionDigits: 0,
- });
-
- const activeCount = entries.filter(c => String(c.state || '').toLowerCase() !== 'ended').length;
- const totalVolume = entries.reduce((sum, c) => sum + Number(c.total_payoff_amount ?? 0), 0);
- const totalSupportHours = entries.reduce((sum, c) => sum + Number(c.support_hours ?? 0), 0);
-
- // Find nearest next invoicing
- const now = Date.now();
- let nearestInvoicing = null;
- for (const c of entries) {
- const raw = String(c.next_invoicing_date || '').trim();
- if (!raw || raw.startsWith('0001-01-01')) continue;
- const date = new Date(raw);
- if (!Number.isNaN(date.getTime()) && date.getTime() > now) {
- if (!nearestInvoicing || date < nearestInvoicing) nearestInvoicing = date;
- }
- }
-
- setText('support-kpi-active-contracts', activeCount);
- const totalContracts = entries.length;
- if (totalContracts > activeCount) {
- setHtml('support-kpi-active-contracts-trend',
- `${esc(t('of {total} total').replace('{total}', totalContracts))}`);
- }
-
- setText('support-kpi-monthly-volume', amountFmt.format(totalVolume));
-
- if (totalSupportHours > 0) {
- setText('support-kpi-support-hours',
- (Number.isInteger(totalSupportHours) ? totalSupportHours : totalSupportHours.toFixed(1)) + 'h');
- } else {
- setText('support-kpi-support-hours', '—');
- }
-
- if (nearestInvoicing) {
- setText('support-kpi-next-invoicing', nearestInvoicing.toLocaleDateString());
- const daysUntil = Math.ceil((nearestInvoicing.getTime() - now) / 86400000);
- if (daysUntil >= 0) {
- const cls = daysUntil <= 7 ? 'helpdesk-kpi-trend-negative'
- : daysUntil <= 30 ? 'helpdesk-kpi-trend-neutral'
- : 'helpdesk-kpi-trend-positive';
- setHtml('support-kpi-next-invoicing-trend',
- `${esc(t('in {days} days').replace('{days}', daysUntil))}`);
- }
- } else {
- setText('support-kpi-next-invoicing', '—');
- }
-
- wrapper.hidden = false;
- }
function contractTypeLabel(productType) {
return String(productType || '').trim() || '—';
@@ -925,9 +861,6 @@ function init(container) {
ageHintEl.innerHTML = `${criticalTickets} ${t('critical')}`;
}
- // Contract KPIs (second row)
- const contracts = Array.isArray(result.contracts) ? result.contracts : [];
- renderSupportContractKpis(contracts);
// Recommendations + escalations merged — only show section when there are entries
const recommendationsWrapper = document.getElementById('support-recommendations-wrapper');