`}}async function i(){const a=document.getElementById("panel-resultados");if(!a)return;const t=a.querySelector(".finance-grid");if(t)try{const a=new Date,r=await e(`/income-statement?year=${a.getFullYear()}&month=${a.getMonth()+1}`),o=t.querySelector(".finance-card");if(!o)return;let c='
Estado de Resultados
';if(c+='
Ingresos
',r.ingresos&&r.ingresos.items)for(const a of r.ingresos.items)c+=`
\n ${a.name}\n $${n(a.amount)}\n
`;if(c+=`
Total Ingresos$${n(r.ingresos?.total||0)}
`,c+='
Costo de Ventas
',r.costos&&r.costos.items)for(const a of r.costos.items)c+=`
\n ${a.name}\n -$${n(Math.abs(a.amount))}\n
`;if(c+=`
Utilidad Bruta$${n(r.utilidad_bruta||0)}
`,c+='
Gastos de Operacion
',r.gastos&&r.gastos.items)for(const a of r.gastos.items)c+=`
\n ${a.name}\n -$${n(Math.abs(a.amount))}\n
`;c+=`
Total Gastos Operacion-$${n(Math.abs(r.gastos?.total||0))}
`;c+=`
\n Utilidad Neta\n $${n(r.utilidad_neta||0)}\n
`,o.innerHTML=c}catch(a){t.innerHTML=`
Error: ${a.message}
`}}async function l(){}async function d(){}async function p(){const a=document.getElementById("panel-cierre");if(!a)return;const n=a.querySelector(".btn--primary");n&&!n.dataset.wired&&(n.dataset.wired="true",n.addEventListener("click",(async()=>{const a=new Date,n=a.getFullYear(),t=a.getMonth()+1;if(confirm(`Cerrar periodo ${t}/${n}? Esta accion no se puede revertir.`))try{await e("/periods/close",{method:"POST",body:JSON.stringify({year:n,month:t})}),alert("Periodo cerrado exitosamente.")}catch(a){alert("Error: "+a.message)}})))}function u(){for(var a=document.querySelectorAll("table"),e=null,n=0;n',a.appendChild(e)}async function m(){const a=document.getElementById("entryDate").value,n=document.getElementById("entryType").value,t=document.getElementById("entryDescription").value.trim(),r=document.getElementById("entryResult");if(!a||!t)return void(r.innerHTML='Fecha y descripcion son obligatorios.');const o=[];if(document.querySelectorAll("#entryLines .entry-line").forEach((a=>{const e=a.querySelector(".entry-account").value.trim(),n=parseFloat(a.querySelector(".entry-debit").value)||0,t=parseFloat(a.querySelector(".entry-credit").value)||0;e&&(n||t)&&o.push({account:e,debit:n,credit:t})})),o.length)try{await e("/entries",{method:"POST",body:JSON.stringify({date:a,type:n,description:t,lines:o})}),r.innerHTML='Poliza creada exitosamente.',setTimeout((()=>v()),1200)}catch(a){r.innerHTML='Error: '+a.message+""}else r.innerHTML='Agregue al menos una partida.'}return document.addEventListener("DOMContentLoaded",(function(){(a()||(window.location.href="/pos/login",0))&&(!function(){const a=document.getElementById("live-clock");if(!a)return;const e=()=>{const e=new Date;a.textContent=e.toLocaleTimeString("es-MX",{hour:"2-digit",minute:"2-digit"})};e(),setInterval(e,1e3)}(),async function(){if(!(document.querySelectorAll(".summary-card").length<4))try{const a=new Date;await e(`/trial-balance?year=${a.getFullYear()}&month=${a.getMonth()+1}`)}catch(a){}}(),o())})),window.switchTab=t,window.exportarContabilidad=u,window.showNewEntryModal=f,window.closeNewEntryModal=v,window.addEntryLine=_,window.submitNewEntry=m,{switchTab:t,loadAging:o,loadAccountsPayable:c,loadBalanceSheet:s,loadIncomeStatement:i,loadCashFlow:l,loadReconciliation:d,loadPeriodClose:p,exportarContabilidad:u,showNewEntryModal:f,closeNewEntryModal:v,addEntryLine:_,submitNewEntry:m}})();