/* Mahour Professional 2 — Phase 4 UI hotfix: dashboard week placement + payroll totals */
(function(){
'use strict';
const q=s=>document.querySelector(s);
function faN(n){try{return Number(n||0).toLocaleString('fa-IR')}catch(e){return String(n||0)}}
function moveWeekToEnd(){const page=q('#page-dashboard'),week=q('#m2WeekWrap');if(page&&week&&page.lastElementChild!==week)page.appendChild(week)}
function ensurePayrollSummary(){const table=q('#payrollTable');if(!table)return null;let box=q('#m4PayrollSummary');if(!box){box=document.createElement('div');box.id='m4PayrollSummary';box.className='m4-payroll-summary';const panel=table.closest('.panel');if(panel)panel.parentNode.insertBefore(box,panel);else table.parentNode.insertBefore(box,table)}return box}
function renderPayrollSummary(){if(typeof db==='undefined'||typeof payrollForEmployee!=='function')return;const box=ensurePayrollSummary();if(!box)return;const input=q('#payrollMonth');const month=(typeof latinDigits==='function'?latinDigits((input&&input.value)||''):((input&&input.value)||'')).replaceAll('-','/').slice(0,7);let work=0,leave=0,absent=0,overtime=0,total=0;for(const s of (db.employees||[])){const p=payrollForEmployee(s,month);work+=Number(p.workDays)||0;leave+=Number(p.leaveDays)||0;absent+=Number(p.absentDays)||0;overtime+=Number(p.overtime)||0;total+=Number(p.total)||0}box.innerHTML='<div><small>کل روزهای حضور</small><strong>'+faN(work)+'</strong></div><div><small>کل مرخصی</small><strong>'+faN(leave)+'</strong></div><div><small>کل غیبت</small><strong>'+faN(absent)+'</strong></div><div><small>کل اضافه‌کاری</small><strong>'+faN(Number(overtime.toFixed(2)))+' ساعت</strong></div><div class="wide"><small>جمع قابل پرداخت پرسنل</small><strong>'+faN(Math.round(total))+' تومان</strong></div>'}
function init(){setTimeout(()=>{moveWeekToEnd();renderPayrollSummary()},0);const old=window.renderPayroll;if(typeof old==='function'&&!old.__m4totals){const wrapped=function(){const r=old.apply(this,arguments);setTimeout(renderPayrollSummary,0);return r};wrapped.__m4totals=true;window.renderPayroll=wrapped}const oldDash=window.renderDashboard;if(typeof oldDash==='function'&&!oldDash.__m4weekend){const wrapped=function(){const r=oldDash.apply(this,arguments);setTimeout(moveWeekToEnd,0);return r};wrapped.__m4weekend=true;window.renderDashboard=wrapped}}
if(document.readyState==='loading')document.addEventListener('DOMContentLoaded',init);else init();
})();
