"use strict";(self.webpackChunkfrontend=self.webpackChunkfrontend||[]).push([[501],{35501:(e,t,a)=>{a.r(t),a.d(t,{default:()=>q});var s=a(89379),n=a(65043),i=a(88787),r=a(85871),l=a(87139),c=a(22107),o=a(98662),d=a(83169),h=a(24330),j=a(44093),u=a(5371),p=a(73225),x=a(76668),g=a(25011),v=a(35699),m=a(45973),y=a(29244),b=a(67516),f=a(35929),C=a(56529),_=a(15071),z=a(11054),S=a(78460),k=a(85421),w=a(97569),A=a(61724),F=a(76659),T=a(96148),H=a(10202),N=a(80511),D=a(82595),E=a(67813),P=a(3313),I=a(55395),M=a(19077),V=a(30502),W=a(28846),$=a(39081),J=a(1009),O=a(46291),Z=a(6583),R=a(70579);const q=()=>{const[e,t]=(0,n.useState)([]),[a,q]=(0,n.useState)(!0),[G,K]=(0,n.useState)(""),[U,Q]=(0,n.useState)(""),[L,X]=(0,n.useState)(""),[Y,B]=(0,n.useState)(!1),[ee,te]=(0,n.useState)(null),[ae,se]=(0,n.useState)(!1),[ne,ie]=(0,n.useState)([]),[re,le]=(0,n.useState)(1),[ce,oe]=(0,n.useState)(0),de=(0,V.d)(),he=(0,j.dU)("white","gray.800"),je=(0,j.dU)("gray.200","gray.700"),[ue,pe]=(0,n.useState)({title:"",description:"",category:"",subcategory:"",amount:0,vat_rate:21,payment_method:"Hotovost",expense_date:(new Date).toISOString().split("T")[0],has_receipt:!1,budget_id:""});(0,n.useEffect)(()=>{xe(),ge()},[re,U,L,G]);const xe=async()=>{try{q(!0);const e=new URLSearchParams({page:re.toString(),limit:"20"});U&&e.append("status",U),L&&e.append("category",L),G&&e.append("search",G);const a=await O.FH.get("/admin/financial/expenses?".concat(e));t(a.data.expenses),oe(a.data.total)}catch(e){de({title:"Chyba p\u0159i na\u010d\xedt\xe1n\xed v\xfddaj\u016f",description:"Nepoda\u0159ilo se na\u010d\xedst seznam v\xfddaj\u016f",status:"error",duration:5e3,isClosable:!0})}finally{q(!1)}},ge=async()=>{try{const e=await O.FH.get("/admin/financial/expenses/categories");ie(e.data)}catch(e){console.error("Failed to fetch categories:",e)}},ve=()=>{pe({title:"",description:"",category:"",subcategory:"",amount:0,vat_rate:21,payment_method:"Hotovost",expense_date:(new Date).toISOString().split("T")[0],has_receipt:!1,budget_id:""})},me=e=>new Intl.NumberFormat("cs-CZ",{style:"currency",currency:"CZK"}).format(e),ye=e=>{switch(e){case"approved":return"green";case"rejected":return"red";case"reimbursed":return"blue";default:return"yellow"}},be=e=>{switch(e){case"approved":return"Schv\xe1leno";case"rejected":return"Zam\xedtnuto";case"reimbursed":return"Proplaceno";default:return"\u010cek\xe1 na schv\xe1len\xed"}};return a&&0===e.length?(0,R.jsx)(Z.A,{children:(0,R.jsx)(u.s,{justify:"center",align:"center",minH:"400px",children:(0,R.jsxs)(H.T,{spacing:4,children:[(0,R.jsx)(F.y,{size:"xl"}),(0,R.jsx)($.E,{children:"Na\u010d\xedt\xe1m v\xfddaje..."})]})})}):(0,R.jsx)(Z.A,{children:(0,R.jsxs)(H.T,{spacing:6,align:"stretch",children:[(0,R.jsxs)(T.z,{justify:"space-between",align:"center",children:[(0,R.jsx)(W.D,{size:"lg",children:"Spr\xe1va v\xfddaj\u016f"}),(0,R.jsx)(o.$,{leftIcon:(0,R.jsx)(J.GGD,{}),colorScheme:"blue",onClick:()=>B(!0),children:"P\u0159idat v\xfddaj"})]}),(0,R.jsx)(d.Z,{bg:he,borderWidth:1,borderColor:je,children:(0,R.jsx)(h.b,{children:(0,R.jsxs)(T.z,{spacing:4,flexWrap:"wrap",children:[(0,R.jsxs)(m.M,{maxW:"300px",children:[(0,R.jsx)(y.W,{pointerEvents:"none",children:(0,R.jsx)(g.I,{as:J.CKj,color:"gray.400"})}),(0,R.jsx)(v.p,{placeholder:"Hledat v\xfddaje...",value:G,onChange:e=>K(e.target.value)})]}),(0,R.jsxs)(A.l,{placeholder:"Filtr stavu",value:U,onChange:e=>Q(e.target.value),maxW:"200px",children:[(0,R.jsx)("option",{value:"",children:"V\u0161echny stavy"}),(0,R.jsx)("option",{value:"pending",children:"\u010cek\xe1 na schv\xe1len\xed"}),(0,R.jsx)("option",{value:"approved",children:"Schv\xe1leno"}),(0,R.jsx)("option",{value:"rejected",children:"Zam\xedtnuto"}),(0,R.jsx)("option",{value:"reimbursed",children:"Proplaceno"})]}),(0,R.jsxs)(A.l,{placeholder:"Filtr kategorie",value:L,onChange:e=>X(e.target.value),maxW:"200px",children:[(0,R.jsx)("option",{value:"",children:"V\u0161echny kategorie"}),ne.map(e=>(0,R.jsx)("option",{value:e,children:e},e))]})]})})}),(0,R.jsx)(d.Z,{bg:he,borderWidth:1,borderColor:je,children:(0,R.jsxs)(h.b,{children:[(0,R.jsxs)(N.X,{variant:"simple",children:[(0,R.jsx)(P.d,{children:(0,R.jsxs)(I.Tr,{children:[(0,R.jsx)("th",{children:"Datum"}),(0,R.jsx)("th",{children:"N\xe1zev"}),(0,R.jsx)("th",{children:"Kategorie"}),(0,R.jsx)("th",{style:{textAlign:"right"},children:"\u010c\xe1stka"}),(0,R.jsx)("th",{children:"Stav"}),(0,R.jsx)("th",{children:"Paragon"}),(0,R.jsx)("th",{style:{textAlign:"center"},children:"Akce"})]})}),(0,R.jsx)(D.N,{children:e.map(e=>(0,R.jsxs)(I.Tr,{children:[(0,R.jsx)(E.Td,{children:new Date(e.expense_date).toLocaleDateString("cs-CZ")}),(0,R.jsx)(E.Td,{children:(0,R.jsxs)(H.T,{align:"start",spacing:1,children:[(0,R.jsx)($.E,{fontWeight:"medium",children:e.title}),e.description&&(0,R.jsx)($.E,{fontSize:"sm",color:"gray.600",noOfLines:1,children:e.description})]})}),(0,R.jsx)(E.Td,{children:e.category}),(0,R.jsx)(E.Td,{style:{textAlign:"right"},children:(0,R.jsxs)(H.T,{align:"end",spacing:1,children:[(0,R.jsx)($.E,{fontWeight:"medium",children:me(e.total_amount)}),e.vat_rate>0&&(0,R.jsxs)($.E,{fontSize:"sm",color:"gray.600",children:["v\u010detn\u011b DPH ",e.vat_rate,"%"]})]})}),(0,R.jsx)(E.Td,{children:(0,R.jsx)(l.E,{colorScheme:ye(e.status),children:be(e.status)})}),(0,R.jsx)(E.Td,{children:(0,R.jsx)(T.z,{children:e.has_receipt?(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(g.I,{as:J.jH2,color:"green.500"}),(0,R.jsx)($.E,{fontSize:"sm",color:"green.600",children:"Ano"})]}):(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(g.I,{as:J.yGN,color:"red.500"}),(0,R.jsx)($.E,{fontSize:"sm",color:"red.600",children:"Ne"})]})})}),(0,R.jsx)(E.Td,{children:(0,R.jsxs)(T.z,{spacing:2,justify:"center",children:[(0,R.jsx)(o.$,{size:"sm",variant:"ghost",onClick:()=>(e=>{var t;te(e),pe({title:e.title,description:e.description,category:e.category,subcategory:e.subcategory,amount:e.amount,vat_rate:e.vat_rate,payment_method:e.payment_method,expense_date:e.expense_date.split("T")[0],has_receipt:e.has_receipt,budget_id:(null===(t=e.budget_id)||void 0===t?void 0:t.toString())||""}),se(!0)})(e),children:(0,R.jsx)(g.I,{as:J.SG1})}),"pending"===e.status&&(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(o.$,{size:"sm",variant:"ghost",colorScheme:"green",onClick:()=>(async e=>{try{await O.FH.patch("/admin/financial/expenses/".concat(e,"/approve")),de({title:"V\xfddaj schv\xe1len",description:"V\xfddaj byl \xfasp\u011b\u0161n\u011b schv\xe1len",status:"success",duration:5e3,isClosable:!0}),xe()}catch(t){de({title:"Chyba p\u0159i schvalov\xe1n\xed",description:"Nepoda\u0159ilo se schv\xe1lit v\xfddaj",status:"error",duration:5e3,isClosable:!0})}})(e.id),children:(0,R.jsx)(g.I,{as:J.YrT})}),(0,R.jsx)(o.$,{size:"sm",variant:"ghost",colorScheme:"red",onClick:()=>{const t=prompt("D\u016fvod zam\xedtnut\xed:");t&&(async(e,t)=>{try{await O.FH.patch("/admin/financial/expenses/".concat(e,"/reject"),{rejection_reason:t}),de({title:"V\xfddaj zam\xedtnut",description:"V\xfddaj byl \xfasp\u011b\u0161n\u011b zam\xedtnut",status:"success",duration:5e3,isClosable:!0}),xe()}catch(a){de({title:"Chyba p\u0159i zam\xedt\xe1n\xed",description:"Nepoda\u0159ilo se zam\xedtnout v\xfddaj",status:"error",duration:5e3,isClosable:!0})}})(e.id,t)},children:(0,R.jsx)(g.I,{as:J.yGN})})]}),(0,R.jsx)(o.$,{size:"sm",variant:"ghost",colorScheme:"red",onClick:()=>(async e=>{if(confirm("Opravdu chcete smazat tento v\xfddaj?"))try{await O.FH.delete("/admin/financial/expenses/".concat(e)),de({title:"V\xfddaj smaz\xe1n",description:"V\xfddaj byl \xfasp\u011b\u0161n\u011b smaz\xe1n",status:"success",duration:5e3,isClosable:!0}),xe()}catch(t){de({title:"Chyba p\u0159i maz\xe1n\xed",description:"Nepoda\u0159ilo se smazat v\xfddaj",status:"error",duration:5e3,isClosable:!0})}})(e.id),children:(0,R.jsx)(g.I,{as:J.IXo})})]})})]},e.id))})]}),0===e.length&&!a&&(0,R.jsxs)(i.F,{status:"info",children:[(0,R.jsx)(r._,{}),"Nebyly nalezeny \u017e\xe1dn\xe9 v\xfddaje"]})]})}),ce>20&&(0,R.jsxs)(T.z,{justify:"center",spacing:2,children:[(0,R.jsx)(o.$,{disabled:1===re,onClick:()=>le(re-1),children:"P\u0159edchoz\xed"}),(0,R.jsxs)($.E,{children:["Strana ",re," z ",Math.ceil(ce/20)]}),(0,R.jsx)(o.$,{disabled:re>=Math.ceil(ce/20),onClick:()=>le(re+1),children:"Dal\u0161\xed"})]}),(0,R.jsxs)(S.aF,{isOpen:Y||ae,onClose:()=>{B(!1),se(!1),te(null),ve()},size:"lg",children:[(0,R.jsx)(z.m,{}),(0,R.jsxs)(k.$,{children:[(0,R.jsx)(_.r,{children:ae?"Upravit v\xfddaj":"P\u0159idat v\xfddaj"}),(0,R.jsx)(f.s,{}),(0,R.jsx)(b.c,{children:(0,R.jsxs)(H.T,{spacing:4,children:[(0,R.jsxs)(p.MJ,{isRequired:!0,children:[(0,R.jsx)(x.l,{children:"N\xe1zev v\xfddaje"}),(0,R.jsx)(v.p,{value:ue.title,onChange:e=>pe((0,s.A)((0,s.A)({},ue),{},{title:e.target.value})),placeholder:"Nap\u0159. N\xe1kup sportovn\xedho vybaven\xed"})]}),(0,R.jsxs)(p.MJ,{children:[(0,R.jsx)(x.l,{children:"Popis"}),(0,R.jsx)(M.T,{value:ue.description,onChange:e=>pe((0,s.A)((0,s.A)({},ue),{},{description:e.target.value})),placeholder:"Detailn\xed popis v\xfddaje",rows:3})]}),(0,R.jsxs)(T.z,{spacing:4,w:"full",children:[(0,R.jsxs)(p.MJ,{isRequired:!0,children:[(0,R.jsx)(x.l,{children:"Kategorie"}),(0,R.jsx)(A.l,{value:ue.category,onChange:e=>pe((0,s.A)((0,s.A)({},ue),{},{category:e.target.value})),placeholder:"Vyberte kategorii",children:ne.map(e=>(0,R.jsx)("option",{value:e,children:e},e))})]}),(0,R.jsxs)(p.MJ,{children:[(0,R.jsx)(x.l,{children:"Podkategorie"}),(0,R.jsx)(v.p,{value:ue.subcategory,onChange:e=>pe((0,s.A)((0,s.A)({},ue),{},{subcategory:e.target.value})),placeholder:"Nap\u0159. M\xed\u010de"})]})]}),(0,R.jsxs)(T.z,{spacing:4,w:"full",children:[(0,R.jsxs)(p.MJ,{isRequired:!0,children:[(0,R.jsx)(x.l,{children:"\u010c\xe1stka bez DPH"}),(0,R.jsxs)(w.Q7,{value:ue.amount,onChange:e=>pe((0,s.A)((0,s.A)({},ue),{},{amount:parseFloat(e)||0})),min:0,precision:2,children:[(0,R.jsx)(w.OO,{}),(0,R.jsxs)(w.lw,{children:[(0,R.jsx)(w.Q0,{}),(0,R.jsx)(w.Sh,{})]})]})]}),(0,R.jsxs)(p.MJ,{children:[(0,R.jsx)(x.l,{children:"DPH sazba (%)"}),(0,R.jsxs)(w.Q7,{value:ue.vat_rate,onChange:e=>pe((0,s.A)((0,s.A)({},ue),{},{vat_rate:parseFloat(e)||0})),min:0,max:25,precision:1,children:[(0,R.jsx)(w.OO,{}),(0,R.jsxs)(w.lw,{children:[(0,R.jsx)(w.Q0,{}),(0,R.jsx)(w.Sh,{})]})]})]})]}),(0,R.jsxs)(T.z,{spacing:4,w:"full",children:[(0,R.jsxs)(p.MJ,{isRequired:!0,children:[(0,R.jsx)(x.l,{children:"Datum v\xfddaje"}),(0,R.jsx)(v.p,{type:"date",value:ue.expense_date,onChange:e=>pe((0,s.A)((0,s.A)({},ue),{},{expense_date:e.target.value}))})]}),(0,R.jsxs)(p.MJ,{isRequired:!0,children:[(0,R.jsx)(x.l,{children:"Zp\u016fsob platby"}),(0,R.jsxs)(A.l,{value:ue.payment_method,onChange:e=>pe((0,s.A)((0,s.A)({},ue),{},{payment_method:e.target.value})),children:[(0,R.jsx)("option",{value:"Hotovost",children:"Hotovost"}),(0,R.jsx)("option",{value:"Karta",children:"Platebn\xed karta"}),(0,R.jsx)("option",{value:"Faktura",children:"Faktura"}),(0,R.jsx)("option",{value:"Proforma",children:"Proforma faktura"})]})]})]}),(0,R.jsxs)(p.MJ,{children:[(0,R.jsx)(x.l,{children:"M\xe1 paragon/dokument?"}),(0,R.jsxs)(A.l,{value:ue.has_receipt.toString(),onChange:e=>pe((0,s.A)((0,s.A)({},ue),{},{has_receipt:"true"===e.target.value})),children:[(0,R.jsx)("option",{value:"true",children:"Ano"}),(0,R.jsx)("option",{value:"false",children:"Ne"})]})]}),ue.amount>0&&(0,R.jsxs)(c.a,{p:4,bg:"gray.50",borderRadius:"md",w:"full",children:[(0,R.jsxs)(T.z,{justify:"space-between",children:[(0,R.jsx)($.E,{fontWeight:"medium",children:"\u010c\xe1stka bez DPH:"}),(0,R.jsx)($.E,{children:me(ue.amount)})]}),(0,R.jsxs)(T.z,{justify:"space-between",children:[(0,R.jsxs)($.E,{fontWeight:"medium",children:["DPH (",ue.vat_rate,"%):"]}),(0,R.jsx)($.E,{children:me(ue.amount*ue.vat_rate/100)})]}),(0,R.jsxs)(T.z,{justify:"space-between",pt:2,borderTop:"1px solid",borderColor:"gray.200",children:[(0,R.jsx)($.E,{fontWeight:"bold",children:"Celkem:"}),(0,R.jsx)($.E,{fontWeight:"bold",fontSize:"lg",children:me(ue.amount*(1+ue.vat_rate/100))})]})]})]})}),(0,R.jsxs)(C.j,{children:[(0,R.jsx)(o.$,{variant:"ghost",onClick:()=>{B(!1),se(!1),te(null),ve()},children:"Zru\u0161it"}),(0,R.jsx)(o.$,{colorScheme:"blue",onClick:ae?async()=>{if(ee)try{const e=(0,s.A)((0,s.A)({},ue),{},{amount:parseFloat(ue.amount.toString()),vat_rate:parseFloat(ue.vat_rate.toString()),budget_id:ue.budget_id?parseInt(ue.budget_id):null});await O.FH.put("/admin/financial/expenses/".concat(ee.id),e),de({title:"V\xfddaj aktualizov\xe1n",description:"V\xfddaj byl \xfasp\u011b\u0161n\u011b aktualizov\xe1n",status:"success",duration:5e3,isClosable:!0}),se(!1),te(null),ve(),xe()}catch(e){de({title:"Chyba p\u0159i aktualizaci v\xfddaje",description:"Nepoda\u0159ilo se aktualizovat v\xfddaj",status:"error",duration:5e3,isClosable:!0})}}:async()=>{try{const e=(0,s.A)((0,s.A)({},ue),{},{amount:parseFloat(ue.amount.toString()),vat_rate:parseFloat(ue.vat_rate.toString()),budget_id:ue.budget_id?parseInt(ue.budget_id):null});await O.FH.post("/admin/financial/expenses",e),de({title:"V\xfddaj vytvo\u0159en",description:"V\xfddaj byl \xfasp\u011b\u0161n\u011b vytvo\u0159en a \u010dek\xe1 na schv\xe1len\xed",status:"success",duration:5e3,isClosable:!0}),B(!1),ve(),xe()}catch(e){de({title:"Chyba p\u0159i vytv\xe1\u0159en\xed v\xfddaje",description:"Nepoda\u0159ilo se vytvo\u0159it v\xfddaj",status:"error",duration:5e3,isClosable:!0})}},isDisabled:!ue.title||!ue.category||ue.amount<=0,children:ae?"Ulo\u017eit zm\u011bny":"Vytvo\u0159it v\xfddaj"})]})]})]})]})})}}}]); //# sourceMappingURL=501.0b99fbb0.chunk.js.map