3 lines
16 KiB
JavaScript
3 lines
16 KiB
JavaScript
import{n as X,o as Z,l as J,m as Q,c as V}from"./index.B8XI8FQW.js";import{b as k}from"./vendor-utils.CO3CyGpV.js";import{N as K,a as u,j as z}from"./vendor-core.B6UiYhU_.js";const w=k.create({baseURL:"/roa2web/api/reports",headers:{"Content-Type":"application/json"}});w.interceptors.request.use(o=>{if(X()){const r=new AbortController;return r.abort(),o.signal=r.signal,o}const n=localStorage.getItem("access_token");return n&&(o.headers.Authorization=`Bearer ${n}`),o});w.interceptors.response.use(o=>o,o=>{var n;return((n=o.response)==null?void 0:n.status)===401&&Z(),Promise.reject(o)});const G=async(o,n={})=>(await w.get(o,{...n,headers:{...n.headers,"X-Include-Cache-Metadata":"true"}})).data,de=Object.freeze(Object.defineProperty({__proto__:null,default:w,getWithCacheInfo:G},Symbol.toStringTag,{value:"Module"})),ee=K("dashboard",()=>{const o=u(null),n=u(null),r=u(!1),a=u(null),d=u({}),t=u({}),_=u({}),A=u(null),g=u({loading:!1,error:null,data:null,cacheInfo:{hit:!1,time:0,source:null}}),S=u(0),h=new Map,b=async(e,s=null,i=null)=>{var l,p;r.value=!0,a.value=null;try{const f={company:e};s!==null&&(f.luna=s),i!==null&&(f.an=i);const P=await w.get("/dashboard/summary",{params:f});return o.value=P.data,{success:!0}}catch(f){return a.value=((p=(l=f.response)==null?void 0:l.data)==null?void 0:p.detail)||"Failed to load dashboard",console.error("Failed to load dashboard:",f),{success:!1,error:a.value}}finally{r.value=!1}},N=async(e,s="12m",i="line",l=null,p=null)=>{var f,P,$,M,m;r.value=!0,a.value=null;try{console.log(`Loading trend data for company ${e}, period: ${s}, luna: ${l}, an: ${p}`);const c={company:e,period:s};l!==null&&(c.luna=l),p!==null&&(c.an=p);const O=await w.get("/dashboard/trends",{params:c});if(!O.data)throw new Error("Empty response from trends API");console.log("Raw trends response:",O.data);const H=O.data,W=T(H);if(!W)throw new Error("Failed to transform trends data - invalid format");return n.value=W,console.log("Transformed trends data:",W),{success:!0,data:W}}catch(c){const O=((P=(f=c.response)==null?void 0:f.data)==null?void 0:P.detail)||c.message||"Failed to load trend data";return a.value=O,console.error("Failed to load trend data:",c),console.error("Error details:",{status:($=c.response)==null?void 0:$.status,statusText:(M=c.response)==null?void 0:M.statusText,data:(m=c.response)==null?void 0:m.data}),n.value=null,{success:!1,error:a.value}}finally{r.value=!1}},T=e=>{if(!e||!e.periods||!Array.isArray(e.periods)||e.periods.length===0)return console.warn("Invalid trends data received:",e),null;const s=["trezorerie_sold","clienti_sold","furnizori_sold","clienti_incasat","furnizori_achitat"];for(const p of s)if(!e[p]||!Array.isArray(e[p]))return console.warn(`Missing ${p} data`),null;return{labels:[...e.periods].map(p=>{const[f,P]=p.split("-");return new Date(f,P-1).toLocaleDateString("ro-RO",{month:"2-digit",year:"numeric"})}),raw:{periods:e.periods,clienti_facturat:e.clienti_facturat||[],clienti_incasat:e.clienti_incasat||[],clienti_sold:e.clienti_sold||[],furnizori_facturat:e.furnizori_facturat||[],furnizori_achitat:e.furnizori_achitat||[],furnizori_sold:e.furnizori_sold||[],trezorerie_sold:e.trezorerie_sold||[],previous_periods:e.previous_periods||[],clienti_facturat_prev:e.clienti_facturat_prev||[],clienti_incasat_prev:e.clienti_incasat_prev||[],clienti_sold_prev:e.clienti_sold_prev||[],furnizori_facturat_prev:e.furnizori_facturat_prev||[],furnizori_achitat_prev:e.furnizori_achitat_prev||[],furnizori_sold_prev:e.furnizori_sold_prev||[],trezorerie_sold_prev:e.trezorerie_sold_prev||[]},datasets:[{label:"Trezorerie - Sold Net",data:[...e.trezorerie_sold].map(p=>Number(p)||0),borderColor:"rgb(59, 130, 246)",backgroundColor:"rgba(59, 130, 246, 0.1)",tension:.4,fill:!1,pointBackgroundColor:"rgb(59, 130, 246)",pointBorderColor:"#ffffff",pointBorderWidth:2,pointRadius:4,pointHoverRadius:6}]}},R=async(e,s,i=1,l=25,p="",f=null,P=null)=>{var $,M;r.value=!0,a.value=null;try{const m={company:s,data_type:e,page:i,page_size:l,search:p};f!==null&&(m.luna=f),P!==null&&(m.an=P);const c=await w.get("/dashboard/detailed-data",{params:m});return S.value=c.data.total||0,{success:!0,data:c.data.data||[],total:c.data.total||0,page:c.data.page||1}}catch(m){a.value=((M=($=m.response)==null?void 0:$.data)==null?void 0:M.detail)||"Failed to load detailed data",console.error("Failed to load detailed data:",m);const c=D(e);return S.value=c.length,{success:!1,error:a.value,data:c,total:c.length,page:1}}finally{r.value=!1}},D=e=>{switch(e){case"clients":return[{id:1,client:"SC ALPHA SRL",facturat:15e3,incasat:12e3,sold:3e3,status:"Activ"},{id:2,client:"SC BETA SRL",facturat:8500,incasat:8500,sold:0,status:"Activ"},{id:3,client:"SC GAMMA SRL",facturat:22e3,incasat:15e3,sold:7e3,status:"Activ"},{id:4,client:"SC DELTA SRL",facturat:5500,incasat:2e3,sold:3500,status:"Întârziere"},{id:5,client:"SC EPSILON SRL",facturat:18e3,incasat:18e3,sold:0,status:"Activ"}];case"suppliers":return[{id:1,furnizor:"SC SUPPLIER A SRL",facturat:12e3,achitat:1e4,sold:2e3,status:"Activ"},{id:2,furnizor:"SC SUPPLIER B SRL",facturat:7500,achitat:7500,sold:0,status:"Activ"},{id:3,furnizor:"SC SUPPLIER C SRL",facturat:19e3,achitat:12e3,sold:7e3,status:"Pendente"},{id:4,furnizor:"SC SUPPLIER D SRL",facturat:4200,achitat:4200,sold:0,status:"Activ"},{id:5,furnizor:"SC SUPPLIER E SRL",facturat:16800,achitat:8e3,sold:8800,status:"Pendente"}];case"treasury":return[{id:1,cont:"5121",nume_cont:"Cont curent BCR",sold:45e3,valuta:"RON",tip:"Bancă"},{id:2,cont:"5311",nume_cont:"Casa RON",sold:2500,valuta:"RON",tip:"Numerar"},{id:3,cont:"5124",nume_cont:"Cont curent BRD EUR",sold:8500,valuta:"EUR",tip:"Bancă"},{id:4,cont:"5125",nume_cont:"Cont economii ING",sold:125e3,valuta:"RON",tip:"Economii"},{id:5,cont:"5312",nume_cont:"Casa valută",sold:500,valuta:"EUR",tip:"Numerar"}];default:return[]}},U=async(e,s="7d")=>{const i=`performance-${e}-${s}`;if(h.has(i))return d.value[s]=h.get(i),{success:!0,data:h.get(i)};try{const l=await w.get("/dashboard/performance",{params:{company:e,period:s}});return d.value[s]=l.data,h.set(i,l.data),{success:!0,data:l.data}}catch(l){return console.error("Failed to load performance data:",l),{success:!1,error:l.message}}},j=async(e,s="7d")=>{const i=`cashflow-${e}-${s}`;if(h.has(i))return t.value[s]=h.get(i),{success:!0,data:h.get(i)};try{const l=await w.get("/dashboard/cashflow",{params:{company:e,period:s}});return t.value[s]=l.data,h.set(i,l.data),{success:!0,data:l.data}}catch(l){return console.error("Failed to load cashflow data:",l),{success:!1,error:l.message}}},y=async(e,s="7d",i=null,l=null)=>{const p=`maturity-${e}-${s}-${i}-${l}`;if(h.has(p))return _.value[s]=h.get(p),{success:!0,data:h.get(p)};try{const f={company:e,period:s};i!==null&&(f.luna=i),l!==null&&(f.an=l);const P=await w.get("/dashboard/maturity",{params:f});return _.value[s]=P.data,h.set(p,P.data),{success:!0,data:P.data}}catch(f){return console.error("Failed to load maturity data:",f),{success:!1,error:f.message}}},C=async e=>{try{const s=await w.get("/dashboard/current-period",{params:{company:e}});return A.value=s.data,{success:!0,data:s.data}}catch(s){console.error("Failed to load current period:",s);const i=new Date,l={year:i.getFullYear(),month:i.getMonth()+1,period:`${i.getFullYear()}-${String(i.getMonth()+1).padStart(2,"0")}`};return A.value=l,{success:!1,error:s.message,data:l}}},L=async(e,s=null,i=null)=>{var l,p,f,P,$,M;g.value.loading=!0,g.value.error=null;try{const m={company:e};s!==null&&(m.luna=s),i!==null&&(m.an=i);const c=await G("/dashboard/financial-indicators",{params:m});return g.value.data=c,g.value.loading=!1,g.value.cacheInfo={hit:c.cache_hit||!1,time:c.response_time_ms||0,source:c.cache_source||null},{success:!0,data:c}}catch(m){console.error("Failed to load financial indicators:",m);let c="Nu s-au putut încărca indicatorii financiari.";return((l=m.response)==null?void 0:l.status)===403?c="Nu aveți acces la datele acestei firme.":((p=m.response)==null?void 0:p.status)===400?c=((P=(f=m.response)==null?void 0:f.data)==null?void 0:P.detail)||"Parametri invalizi pentru cerere.":(M=($=m.response)==null?void 0:$.data)!=null&&M.detail&&(c=m.response.data.detail),g.value.error=c,g.value.loading=!1,g.value.data=null,g.value.cacheInfo={hit:!1,time:0,source:null},{success:!1,error:c}}},E=z(()=>{var e;return((e=g.value.data)==null?void 0:e.lichiditate)||null}),v=z(()=>{var e;return((e=g.value.data)==null?void 0:e.eficienta)||null}),F=z(()=>{var e;return((e=g.value.data)==null?void 0:e.risc)||null}),Y=z(()=>{var e;return((e=g.value.data)==null?void 0:e.cash_flow)||null}),x=z(()=>{var e;return((e=g.value.data)==null?void 0:e.dinamica)||null}),I=z(()=>{var e;return((e=g.value.data)==null?void 0:e.altman_zscore)||null}),B=()=>{h.clear()};return{summary:o,trends:n,isLoading:r,error:a,loadDashboardSummary:b,loadTrendData:N,loadDetailedData:R,reset:()=>{o.value=null,n.value=null,r.value=!1,a.value=null,d.value={},t.value={},_.value={},A.value=null,g.value={loading:!1,error:null,data:null,cacheInfo:{hit:!1,time:0,source:null}},B()},performanceData:d,cashflowData:t,maturityData:_,currentPeriod:A,loadPerformanceData:U,loadCashFlowData:j,loadMaturityData:y,loadCurrentPeriod:C,clearCache:B,detailedDataTotal:S,financialIndicators:g,loadFinancialIndicators:L,lichiditate:E,eficienta:v,risc:F,cashFlow:Y,dinamica:x,altmanZScore:I}}),ae=K("invoices",()=>{const o=u([]),n=u(!1),r=u(null),a=u({an:null,luna:null}),d=u(0),t=u({company:null,type:"CLIENTI",dateFrom:null,dateTo:null,searchTerm:""}),_=u({page:1,rows:50,totalRecords:0}),A=z(()=>o.value),g=z(()=>o.value.length>0),S=z(()=>_.value.totalRecords),h=z(()=>o.value.filter(v=>v.css_class==="invoice-paid")),b=z(()=>o.value.filter(v=>v.css_class==="invoice-overdue")),N=z(()=>h.value.reduce((v,F)=>v+(F.suma||0),0)),T=z(()=>b.value.reduce((v,F)=>v+(F.suma||0),0)),R=async(v,F={})=>{var Y,x;if(!v)return r.value="Company code is required",{success:!1,error:r.value};n.value=!0,r.value=null;try{const I={partner_type:t.value.type,page:_.value.page,page_size:_.value.rows,...F};if(t.value.dateFrom)if(t.value.dateFrom instanceof Date){const q=t.value.dateFrom.getFullYear(),e=String(t.value.dateFrom.getMonth()+1).padStart(2,"0"),s=String(t.value.dateFrom.getDate()).padStart(2,"0");I.date_from=`${q}-${e}-${s}`}else I.date_from=t.value.dateFrom;if(t.value.dateTo)if(t.value.dateTo instanceof Date){const q=t.value.dateTo.getFullYear(),e=String(t.value.dateTo.getMonth()+1).padStart(2,"0"),s=String(t.value.dateTo.getDate()).padStart(2,"0");I.date_to=`${q}-${e}-${s}`}else I.date_to=t.value.dateTo;t.value.searchTerm&&(I.search=t.value.searchTerm);const B=await w.get("/invoices/",{params:{company:v,...I}});return o.value=B.data.invoices||[],_.value.totalRecords=B.data.total_count||0,d.value=B.data.total_sold_all||0,B.data.accounting_period&&(a.value=B.data.accounting_period),{success:!0}}catch(I){return r.value=((x=(Y=I.response)==null?void 0:Y.data)==null?void 0:x.detail)||"Failed to load invoices",console.error("Failed to load invoices:",I),{success:!1,error:r.value}}finally{n.value=!1}},D=v=>{t.value={...t.value,...v}},U=v=>{_.value={..._.value,...v}},j=v=>{t.value.type=v},y=()=>{t.value={company:null,type:"CLIENTI",dateFrom:null,dateTo:null,searchTerm:""}};return{invoices:o,isLoading:n,error:r,accountingPeriod:a,totalSoldAll:d,filters:t,pagination:_,invoiceList:A,hasInvoices:g,totalInvoices:S,paidInvoices:h,overdueInvoices:b,totalAmountPaid:N,totalAmountOverdue:T,loadInvoices:R,setFilters:D,setPagination:U,setInvoiceType:j,clearFilters:y,clearError:()=>{r.value=null},reset:()=>{o.value=[],n.value=!1,r.value=null,a.value={an:null,luna:null},d.value=0,y(),_.value={page:1,rows:50,totalRecords:0}},getInvoiceById:v=>o.value.find(F=>F.id===v)}}),te=K("treasury",()=>{const o=u([]),n=u(!1),r=u(null),a=u({page:0,rows:50,totalRecords:0}),d=u({total_incasari:0,total_plati:0,sold_precedent_all:0,total_incasari_all:0,total_plati_all:0,sold_final_all:0}),t=u({an:null,luna:null});return{registers:o,isLoading:n,error:r,pagination:a,totals:d,accountingPeriod:t,loadBankCashRegister:async(S,h={})=>{var b,N;n.value=!0,r.value=null;try{const T={company:S,page:a.value.page+1,page_size:a.value.rows,...h},R=await w.get("/treasury/bank-cash-register",{params:T});return o.value=R.data.registers||[],a.value.totalRecords=R.data.total_count||0,d.value={total_incasari:R.data.total_incasari,total_plati:R.data.total_plati,sold_precedent_all:R.data.sold_precedent_all||0,total_incasari_all:R.data.total_incasari_all||0,total_plati_all:R.data.total_plati_all||0,sold_final_all:R.data.sold_final_all||0},R.data.accounting_period&&(t.value=R.data.accounting_period),{success:!0}}catch(T){return r.value=((N=(b=T.response)==null?void 0:b.data)==null?void 0:N.detail)||"Failed to load register",console.error("Failed to load register:",T),{success:!1,error:r.value}}finally{n.value=!1}},setPagination:S=>{a.value={...a.value,...S}},reset:()=>{o.value=[],n.value=!1,r.value=null,t.value={an:null,luna:null},a.value={page:0,rows:50,totalRecords:0}}}}),re=K("trialBalance",()=>{const o=u([]),n=u(!1),r=u(null),a=u({total_sold_precedent_debit:0,total_sold_precedent_credit:0,total_rulaj_lunar_debit:0,total_rulaj_lunar_credit:0,total_sold_final_debit:0,total_sold_final_credit:0}),d=u({luna:new Date().getMonth()+1,an:new Date().getFullYear(),cont:"",denumire:""}),t=u({currentPage:1,pageSize:50,totalItems:0,totalPages:0}),_=u({sortBy:"CONT",sortOrder:"asc"}),A=z(()=>o.value.length>0),g=z(()=>({luna:d.value.luna,an:d.value.an})),S=async y=>{var C,L;if(!y)return r.value="Company code is required",{success:!1,error:r.value};n.value=!0,r.value=null;try{const E={company:y,luna:d.value.luna,an:d.value.an,page:t.value.currentPage,page_size:t.value.pageSize,sort_by:_.value.sortBy,sort_order:_.value.sortOrder};d.value.cont&&(E.cont_filter=d.value.cont),d.value.denumire&&(E.denumire_filter=d.value.denumire);const v=await w.get("/trial-balance/",{params:E});if(v.data.success){o.value=v.data.data.items||[];const F=v.data.data.pagination;return t.value={currentPage:F.current_page,pageSize:F.page_size,totalItems:F.total_items,totalPages:F.total_pages},v.data.data.totals&&(a.value=v.data.data.totals),{success:!0}}else throw new Error("Invalid response format")}catch(E){return r.value=((L=(C=E.response)==null?void 0:C.data)==null?void 0:L.detail)||"Failed to load trial balance data",console.error("Failed to load trial balance:",E),{success:!1,error:r.value}}finally{n.value=!1}};return{trialBalanceData:o,isLoading:n,error:r,totals:a,filters:d,pagination:t,sorting:_,hasData:A,currentPeriod:g,fetchTrialBalance:S,applyFilters:async(y,C)=>{d.value={...d.value,...y},t.value.currentPage=1,await S(C)},clearFilters:async y=>{d.value={luna:new Date().getMonth()+1,an:new Date().getFullYear(),cont:"",denumire:""},t.value.currentPage=1,await S(y)},changePage:async(y,C)=>{t.value.currentPage=y,await S(C)},changePageSize:async(y,C)=>{t.value.pageSize=y,t.value.currentPage=1,await S(C)},sort:async(y,C,L)=>{_.value={sortBy:y,sortOrder:C},t.value.currentPage=1,await S(L)},changePeriod:async(y,C,L)=>{d.value.luna=y,d.value.an=C,t.value.currentPage=1,await S(L)},clearError:()=>{r.value=null},reset:()=>{o.value=[],n.value=!1,r.value=null,a.value={total_sold_precedent_debit:0,total_sold_precedent_credit:0,total_rulaj_lunar_debit:0,total_rulaj_lunar_credit:0,total_sold_final_debit:0,total_sold_final_credit:0},d.value={luna:new Date().getMonth()+1,an:new Date().getFullYear(),cont:"",denumire:""},t.value={currentPage:1,pageSize:50,totalItems:0,totalPages:0},_.value={sortBy:"CONT",sortOrder:"asc"}}}}),se=(o={})=>{const{username:n,serverId:r}=o;console.log("[Reports] Resetting all stores on logout...",{username:n,serverId:r});try{const a=ee();a.reset&&a.reset()}catch(a){console.warn("[Reports] Could not reset dashboard store:",a.message)}try{const a=ae();a.reset&&a.reset()}catch(a){console.warn("[Reports] Could not reset invoices store:",a.message)}try{const a=te();a.reset&&a.reset()}catch(a){console.warn("[Reports] Could not reset treasury store:",a.message)}try{const a=re();a.reset&&a.reset()}catch(a){console.warn("[Reports] Could not reset trial balance store:",a.message)}try{const a=le();a.resetWithContext&&n?a.resetWithContext(n,r):a.reset&&a.reset()}catch(a){console.warn("[Reports] Could not reset company store:",a.message)}try{const a=ne();a.reset&&a.reset()}catch(a){console.warn("[Reports] Could not reset period store:",a.message)}console.log("[Reports] All stores reset complete")},oe=V(w,{onLogout:se}),le=J(w,oe),ne=Q(w);export{ee as a,ne as b,oe as c,ae as d,te as e,re as f,G as g,w as h,de as i,le as u};
|
|
//# sourceMappingURL=sharedStores.Bb_IRn4Y.js.map
|