3 lines
10 KiB
JavaScript
3 lines
10 KiB
JavaScript
import{a as h,j as c,w as Y,o as W,c as o,d as s,e,i as v,t as H,_ as J,$ as Q,v as i,F as A,B as L,u as f,S as F,K as X,h as U,q as E,O as u,M as Z,P as ee}from"./vendor-core.B6UiYhU_.js";import{s as ae}from"./vendor-primevue.BN-meDW0.js";import{M as te}from"./MobileTopBar.BnL78WPy.js";import{M as se}from"./MobileBottomNav.Cp8OR33w.js";import{M as oe}from"./MobileDrawerMenu.DJ_STPbv.js";import{a as ne,u as le,c as ie,b as re}from"./sharedStores.Bb_IRn4Y.js";import{_ as K}from"./index.B8XI8FQW.js";import"./vendor-utils.CO3CyGpV.js";import"./vendor-export.BWjBvx7Z.js";const de={class:"maturity-card"},ue={class:"card-controls"},ce=["disabled"],me={key:0,class:"loading-state"},pe={key:1,class:"error-state"},ve={key:2,class:"maturity-content"},ye={key:0,class:"tab-content"},be={class:"maturity-list"},_e={class:"item-info"},he={class:"entity-name"},fe={class:"due-info"},ge={key:0,class:"overdue-days"},Ce={key:1,class:"due-date"},ke={class:"amount-bar"},we={class:"bar-container"},Se={class:"amount-value"},Me={key:0,class:"empty-state"},ze={class:"tab-summary"},Te={class:"summary-value clients-value"},De={key:1,class:"tab-content"},Ie={class:"maturity-list"},Oe={class:"item-info"},$e={class:"entity-name"},Re={class:"due-info"},xe={key:0,class:"overdue-days"},Pe={key:1,class:"due-date"},Ae={class:"amount-bar"},Ne={class:"bar-container"},Ve={class:"amount-value"},Be={key:0,class:"empty-state"},Le={class:"tab-summary"},Ee={class:"summary-value suppliers-value"},Fe={key:3,class:"balance-indicator"},Ue={class:"balance-content"},qe={class:"balance-text"},We={class:"balance-label"},Ke={key:0,class:"recommendations"},je={key:4,class:"card-footer"},Ge={class:"period-info"},Ye={class:"period-value"},He={class:"last-updated"},Je={class:"update-time"},Qe=["disabled"],Xe={__name:"MaturityAnalysisCard",props:{companyId:{type:[Number,String],required:!0},activeTab:{type:String,default:"clients",validator:w=>["clients","suppliers"].includes(w)}},emits:["periodChanged"],setup(w,{emit:D}){const S=w,m=D,k=ne(),g=h("1m"),d=h(!1),y=h(null),b=h(null),M=h({clients:[],suppliers:[],balance:0,recommendations:[]}),z=n=>n==null?"0,00 RON":new Intl.NumberFormat("ro-RO",{style:"currency",currency:"RON",minimumFractionDigits:0,maximumFractionDigits:0}).format(n),p=c(()=>M.value.clients||[]),_=c(()=>M.value.suppliers||[]),I=c(()=>M.value.recommendations||[]),R=c(()=>p.value.reduce((n,a)=>n+(a.amount||0),0)),x=c(()=>_.value.reduce((n,a)=>n+(a.amount||0),0)),T=c(()=>R.value-x.value),N=c(()=>T.value<0?"deficit":"surplus");c(()=>T.value<0?"📉":"📈");const V=c(()=>T.value<0?"Deficit estimat:":"Surplus estimat:"),B=c(()=>Math.max(...p.value.map(n=>n.amount||0),1)),r=c(()=>Math.max(..._.value.map(n=>n.amount||0),1)),t=(n,a)=>a>0?Math.min(n/a*100,100):0,P=n=>({"7d":"Toate restanțele + următoarele 7 zile","1m":"Toate restanțele + următoarea lună","3m":"Toate restanțele + următoarele 3 luni","6m":"Toate restanțele + următoarele 6 luni","12m":"Toate restanțele + următorul an",all:"Toate soldurile (fără filtru)"})[n]||n,C=n=>n?new Date(n).toLocaleString("ro-RO"):"Necunoscut",j=()=>{m("periodChanged",g.value),O()},G=()=>{O(!0)},O=async(n=!1)=>{if(!S.companyId){y.value="ID firmă necunoscut";return}d.value=!0,y.value=null;try{const a=await k.loadMaturityData(S.companyId,g.value);if(a&&a.success)M.value=a.data,b.value=new Date;else throw new Error((a==null?void 0:a.error)||"Eroare la încărcarea datelor")}catch(a){console.error("Failed to load maturity data:",a),y.value=a.message||"Eroare la încărcarea datelor. Vă rugăm încercați din nou."}finally{d.value=!1}};return Y(()=>S.companyId,n=>{n&&O()},{immediate:!1}),W(()=>{S.companyId&&O()}),(n,a)=>(s(),o("div",de,[e("div",ue,[H(e("select",{"onUpdate:modelValue":a[0]||(a[0]=l=>g.value=l),onChange:j,class:"period-selector",disabled:d.value},[...a[1]||(a[1]=[Q('<option value="7d" data-v-116c373d>7 zile</option><option value="1m" data-v-116c373d>1 lună</option><option value="3m" data-v-116c373d>3 luni</option><option value="6m" data-v-116c373d>6 luni</option><option value="12m" data-v-116c373d>12 luni</option><option value="all" data-v-116c373d>Toate</option>',6)])],40,ce),[[J,g.value]])]),d.value?(s(),o("div",me,[...a[2]||(a[2]=[e("div",{class:"loading-spinner"},null,-1),e("p",null,"Se încarcă analiza scadențelor...",-1)])])):y.value?(s(),o("div",pe,[a[3]||(a[3]=e("div",{class:"error-icon"},"!",-1)),e("p",null,i(y.value),1),e("button",{onClick:O,class:"retry-btn"},"Încearcă din nou")])):(s(),o("div",ve,[w.activeTab==="clients"?(s(),o("div",ye,[e("div",be,[(s(!0),o(A,null,L(p.value,(l,$)=>(s(),o("div",{key:`client-${$}`,class:f(["maturity-item",{overdue:l.daysOverdue>0,critical:l.daysOverdue>30}])},[e("div",_e,[e("span",he,i(l.name),1),e("span",fe,[l.daysOverdue>0?(s(),o("span",ge," Restant "+i(l.daysOverdue)+" zile ",1)):(s(),o("span",Ce," Scadent în "+i(Math.abs(l.daysOverdue))+" zile ",1))])]),e("div",ke,[e("div",we,[e("div",{class:"bar-fill clients-bar",style:F({width:t(l.amount,B.value)+"%"})},null,4)]),e("span",Se,i(z(l.amount)),1)])],2))),128)),p.value.length===0?(s(),o("div",Me,[...a[4]||(a[4]=[e("i",{class:"pi pi-inbox empty-icon"},null,-1),e("p",null,"Nu există facturi de încasat pentru această perioadă",-1)])])):v("",!0)]),e("div",ze,[a[5]||(a[5]=e("span",{class:"summary-label"},"Total de încasat:",-1)),e("span",Te,i(z(R.value)),1)])])):w.activeTab==="suppliers"?(s(),o("div",De,[e("div",Ie,[(s(!0),o(A,null,L(_.value,(l,$)=>(s(),o("div",{key:`supplier-${$}`,class:f(["maturity-item",{overdue:l.daysOverdue>0,critical:l.daysOverdue>30}])},[e("div",Oe,[e("span",$e,i(l.name),1),e("span",Re,[l.daysOverdue>0?(s(),o("span",xe," Restant "+i(l.daysOverdue)+" zile ",1)):(s(),o("span",Pe," Scadent în "+i(Math.abs(l.daysOverdue))+" zile ",1))])]),e("div",Ae,[e("div",Ne,[e("div",{class:"bar-fill suppliers-bar",style:F({width:t(l.amount,r.value)+"%"})},null,4)]),e("span",Ve,i(z(l.amount)),1)])],2))),128)),_.value.length===0?(s(),o("div",Be,[...a[6]||(a[6]=[e("i",{class:"pi pi-inbox empty-icon"},null,-1),e("p",null,"Nu există facturi de plătit pentru această perioadă",-1)])])):v("",!0)]),e("div",Le,[a[7]||(a[7]=e("span",{class:"summary-label"},"Total de plătit:",-1)),e("span",Ee,i(z(x.value)),1)])])):v("",!0)])),!d.value&&!y.value?(s(),o("div",Fe,[e("div",Ue,[e("div",qe,[e("span",We,i(V.value),1),e("span",{class:f(["balance-amount",N.value])},i(z(Math.abs(T.value))),3)]),I.value.length>0?(s(),o("div",Ke,[e("details",null,[a[8]||(a[8]=e("summary",null,"Recomandări",-1)),e("ul",null,[(s(!0),o(A,null,L(I.value,(l,$)=>(s(),o("li",{key:$},i(l),1))),128))])])])):v("",!0)])])):v("",!0),!d.value&&!y.value?(s(),o("div",je,[e("div",Ge,[a[9]||(a[9]=e("span",{class:"period-label"},"Perioada analizată:",-1)),e("span",Ye,i(P(g.value)),1)]),e("div",He,[a[10]||(a[10]=e("span",{class:"update-label"},"Actualizat:",-1)),e("span",Je,i(C(b.value)),1),e("button",{onClick:G,class:"refresh-btn",disabled:d.value,title:"Reîmprospătează datele"},[e("i",{class:f(["pi pi-refresh refresh-icon",{spinning:d.value}])},null,2)],8,Qe)])])):v("",!0)]))}},Ze=K(Xe,[["__scopeId","data-v-116c373d"]]),ea={key:1,class:"mobile-tabs-container"},aa={class:"mobile-tabs"},ta={class:"app-container"},sa={key:0,class:"page-header"},oa={key:0,class:"desktop-tabs"},na={key:1,class:"empty-state"},la={key:2,class:"maturity-content"},q="maturity_analysis_active_tab",ia={__name:"MaturityAnalysisView",setup(w){const D=ee(),S=Z(),m=le(),k=ie(),g=re(),d=h(!1),y=h(window.innerWidth),b=c(()=>y.value<768),M=h(null),p=h(S.query.tab==="suppliers"||localStorage.getItem(q)==="suppliers"?"suppliers":"clients"),_=r=>{p.value=r,localStorage.setItem(q,r),D.replace({query:r==="suppliers"?{tab:"suppliers"}:{}})},I=()=>{y.value=window.innerWidth},R=()=>{D.push("/reports/dashboard")},x=async()=>{await k.logout(),D.push("/login")},T=async r=>{var t;await m.loadCompanies(),(t=m.selectedCompany)!=null&&t.id_firma&&await g.loadPeriods(m.selectedCompany.id_firma)},N=r=>{console.log("Company changed:",r==null?void 0:r.id_firma)},V=()=>{console.log("Period changed")},B=r=>{console.log("Maturity period changed:",r)};return W(()=>{window.addEventListener("resize",I)}),X(()=>{window.removeEventListener("resize",I)}),(r,t)=>{var P;return s(),o(A,null,[b.value?(s(),U(te,{key:0,title:"Scadențe","show-menu":!0,onMenuClick:t[0]||(t[0]=C=>d.value=!0)})):v("",!0),E(oe,{modelValue:d.value,"onUpdate:modelValue":t[1]||(t[1]=C=>d.value=C),user:u(k).user,"companies-store":u(m),"period-store":u(g),"available-servers":u(k).availableServers,"current-server-id":u(k).selectedServerId,"auth-store":u(k),onLogout:x,onCompanyChanged:N,onPeriodChanged:V,onServerSwitched:T},null,8,["modelValue","user","companies-store","period-store","available-servers","current-server-id","auth-store"]),b.value&&u(m).selectedCompany?(s(),o("div",ea,[e("div",aa,[e("button",{class:f(["mobile-tab",{active:p.value==="clients"}]),onClick:t[2]||(t[2]=C=>_("clients"))},[...t[6]||(t[6]=[e("span",{class:"tab-label"},"Clienți",-1)])],2),e("button",{class:f(["mobile-tab",{active:p.value==="suppliers"}]),onClick:t[3]||(t[3]=C=>_("suppliers"))},[...t[7]||(t[7]=[e("span",{class:"tab-label"},"Furnizori",-1)])],2)])])):v("",!0),e("main",{class:f(["main-content",{"mobile-layout":b.value,"has-tabs":b.value&&u(m).selectedCompany}])},[e("div",ta,[b.value?v("",!0):(s(),o("div",sa,[t[10]||(t[10]=e("div",{class:"header-top"},[e("div",null,[e("h1",{class:"page-title"},"Analiză Scadențe"),e("p",{class:"page-subtitle"},"Analiza scadențelor clienți și furnizori")])],-1)),u(m).selectedCompany?(s(),o("div",oa,[e("button",{class:f(["desktop-tab",{active:p.value==="clients"}]),onClick:t[4]||(t[4]=C=>_("clients"))},[...t[8]||(t[8]=[e("i",{class:"pi pi-users"},null,-1),e("span",null,"Clienți",-1)])],2),e("button",{class:f(["desktop-tab",{active:p.value==="suppliers"}]),onClick:t[5]||(t[5]=C=>_("suppliers"))},[...t[9]||(t[9]=[e("i",{class:"pi pi-building"},null,-1),e("span",null,"Furnizori",-1)])],2)])):v("",!0)])),u(m).selectedCompany?(s(),o("div",la,[E(Ze,{ref_key:"maturityCardRef",ref:M,companyId:(P=u(m).selectedCompany)==null?void 0:P.id_firma,activeTab:p.value,onPeriodChanged:B},null,8,["companyId","activeTab"])])):(s(),o("div",na,[t[11]||(t[11]=e("i",{class:"pi pi-building empty-icon"},null,-1)),t[12]||(t[12]=e("h2",{class:"empty-title"},"Selectați o companie",-1)),t[13]||(t[13]=e("p",{class:"empty-description"}," Pentru a vizualiza analiza scadențelor, vă rugăm să selectați o companie din Dashboard. ",-1)),E(u(ae),{label:"Mergi la Dashboard",icon:"pi pi-arrow-left",onClick:R,class:"empty-action"})]))])],2),b.value?(s(),U(se,{key:2})):v("",!0)],64)}}},_a=K(ia,[["__scopeId","data-v-be9da083"]]);export{_a as default};
|
|
//# sourceMappingURL=MaturityAnalysisView.TP6afSul.js.map
|