Files
app/dist/assets/ReceivedInvoices-BUF4hQjo.js

2 lines
21 KiB
JavaScript

import{j as e,m as g,A as V}from"./vendor-animation-0s3FMHwK.js";import{r}from"./vendor-react-BVs3cwbi.js";import{a as we,u as ze,b as $e,c as y,e as ne,g as $,F as d,A as O,C as Fe,d as ie}from"./index-fMsy8JiX.js";import{u as De,S}from"./useListData-BE3ZKxdc.js";import"./vendor-utils-Dyr8OjFr.js";const f="/api/admin",re={unpaid:"Neuhrazena",paid:"Uhrazena"},le={unpaid:"admin-badge-invoice-overdue",paid:"admin-badge-invoice-paid"},oe=["CZK","EUR","USD","GBP"],ce=[0,10,12,15,21],Ee=["leden","únor","březen","duben","květen","červen","červenec","srpen","září","říjen","listopad","prosinec"];function de(l){return!l||l.length===0?"0 Kč":l.map(c=>$(c.amount,c.currency)).join(" · ")}function q(l,c){return!l||l.length===0?{value:"0 Kč",detail:null}:l.some(w=>w.currency!=="CZK")&&c!==null&&c!==void 0?{value:$(c,"CZK"),detail:de(l)}:{value:de(l),detail:null}}function Pe(){return{supplier_name:"",invoice_number:"",amount:"",currency:"CZK",vat_rate:"21",issue_date:"",due_date:"",notes:""}}Ue.displayName="ReceivedInvoices";function Ue({statsMonth:l,statsYear:c,uploadOpen:A,setUploadOpen:w}){const o=we(),{hasPermission:B}=ze(),{sort:R,order:j,handleSort:N,activeSort:k}=De("created_at"),[F,me]=r.useState(""),[K,ue]=r.useState([]),[M,J]=r.useState(!0),[m,G]=r.useState(null),[he,Q]=r.useState(!0),Z=r.useRef(!1),D=r.useRef(0),[pe,ve]=r.useState(0),X=r.useRef(l),Y=r.useRef(c),[ee,z]=r.useState(!1),[i,h]=r.useState(null),[E,H]=r.useState({show:!1,invoice:null}),[je,ae]=r.useState(!1),[p,P]=r.useState(!1),[_,I]=r.useState([]),[u,U]=r.useState([]),[b,L]=r.useState({}),te=r.useRef(null);$e(A||ee),r.useEffect(()=>{const t=Y.current*12+X.current,a=c*12+l;a>t&&(D.current=1),a<t&&(D.current=-1),X.current=l,Y.current=c},[l,c]);const C=r.useCallback(async()=>{J(!0);try{const t=new URLSearchParams({month:String(l),year:String(c)});F&&t.set("search",F),R&&t.set("sort",R),j&&t.set("order",j);const s=await(await y(`${f}/received-invoices.php?${t}`)).json();s.success&&ue(s.data.invoices||[])}catch{}finally{J(!1)}},[l,c,F,R,j]);r.useEffect(()=>{C()},[C]);const T=r.useCallback(async()=>{try{const a=await(await y(`${f}/received-invoices.php?action=stats&month=${l}&year=${c}`)).json();a.success&&(G(a.data),Z.current=!0)}catch{}},[l,c]);r.useEffect(()=>{Q(!0),(async()=>{try{const s=await(await y(`${f}/received-invoices.php?action=stats&month=${l}&year=${c}`)).json();s.success&&(G(s.data),Z.current=!0,ve(n=>n+1))}catch{}finally{Q(!1)}})()},[l,c]);const xe=t=>{const a=Array.from(t.target.files||[]);if(a.length===0)return;if(_.length+a.length>20){o.error("Maximálně 20 souborů najednou");return}const s=a.filter(n=>n.size>10*1024*1024?(o.error(`Soubor "${n.name}" je větší než 10 MB`),!1):["application/pdf","image/jpeg","image/png"].includes(n.type)?!0:(o.error(`Soubor "${n.name}": nepodporovaný formát`),!1));I(n=>[...n,...s]),U(n=>[...n,...s.map(()=>Pe())]),t.target.value=""},ye=t=>{I(s=>s.filter((n,v)=>v!==t)),U(s=>s.filter((n,v)=>v!==t));const a={...b};delete a[t],L(a)},x=(t,a,s)=>{if(U(n=>n.map((v,Se)=>Se===t?{...v,[a]:s}:v)),b[t]){const n={...b};n[t]?.[a]&&(delete n[t][a],Object.keys(n[t]).length===0&&delete n[t]),L(n)}},fe=()=>{const t={};return u.forEach((a,s)=>{const n={};a.supplier_name.trim()||(n.supplier_name="Povinné pole"),(!a.amount||parseFloat(a.amount)<=0)&&(n.amount="Částka musí být větší než 0"),Object.keys(n).length>0&&(t[s]=n)}),L(t),Object.keys(t).length===0},be=async()=>{if(_.length===0){o.error("Vyberte alespoň jeden soubor");return}if(fe()){P(!0);try{const t=new FormData;_.forEach(n=>t.append("files[]",n)),t.append("invoices",JSON.stringify(u));const s=await(await y(`${f}/received-invoices.php`,{method:"POST",body:t})).json();s.success?(o.success(s.message||"Faktury byly nahrány"),w(!1),I([]),U([]),L({}),C(),T()):o.error(s.error||"Chyba při nahrávání")}catch{o.error("Chyba připojení")}finally{P(!1)}}},ge=t=>{h({...t,amount:String(t.amount),vat_rate:String(t.vat_rate),_originalStatus:t.status}),z(!0)},Ne=async()=>{if(i){if(!i.supplier_name?.trim()){o.error("Dodavatel je povinný");return}if(!i.amount||parseFloat(i.amount)<=0){o.error("Částka musí být větší než 0");return}P(!0);try{const t={supplier_name:i.supplier_name,invoice_number:i.invoice_number||"",amount:parseFloat(i.amount),currency:i.currency,vat_rate:parseFloat(i.vat_rate),issue_date:i.issue_date||"",due_date:i.due_date||"",notes:i.notes||"",status:i.status},s=await(await y(`${f}/received-invoices.php?id=${i.id}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)})).json();s.success?(o.success(s.message||"Faktura byla aktualizována"),z(!1),h(null),C(),T()):o.error(s.error||"Chyba při ukládání")}catch{o.error("Chyba připojení")}finally{P(!1)}}},ke=async()=>{if(E.invoice){ae(!0);try{const a=await(await y(`${f}/received-invoices.php?id=${E.invoice.id}`,{method:"DELETE"})).json();a.success?(o.success(a.message||"Faktura byla smazána"),H({show:!1,invoice:null}),C(),T()):o.error(a.error||"Chyba při mazání")}catch{o.error("Chyba připojení")}finally{ae(!1)}}},se=async t=>{const a=window.open("","_blank");try{const s=await y(`${f}/received-invoices.php?action=file&id=${t.id}`);if(!s.ok){a.close(),o.error("Nepodařilo se načíst soubor");return}const n=await s.blob(),v=URL.createObjectURL(n);a.location.href=v,setTimeout(()=>URL.revokeObjectURL(v),6e4)}catch{a.close(),o.error("Chyba připojení")}},_e=async t=>{if(t.status!=="paid")try{const s=await(await y(`${f}/received-invoices.php?id=${t.id}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({status:"paid"})})).json();s.success?(o.success("Faktura označena jako uhrazená"),C(),T()):o.error(s.error||"Nepodařilo se změnit stav")}catch{o.error("Chyba připojení")}},W=`${Ee[l-1]}`,Ce=()=>{if(!Z.current&&he)return e.jsx("div",{className:"dash-kpi-grid dash-kpi-4 mb-6",children:[0,1,2,3].map(n=>e.jsxs("div",{className:"admin-stat-card",children:[e.jsx("div",{className:"admin-skeleton-line",style:{width:"60%",height:"11px",marginBottom:"0.5rem"}}),e.jsx("div",{className:"admin-skeleton-line",style:{width:"40%",height:"28px",marginBottom:"0.5rem"}}),e.jsx("div",{className:"admin-skeleton-line",style:{width:"50%",height:"12px"}})]},n))});if(!m)return null;const t=q(m.total_month,m.total_month_czk),a=q(m.vat_month,m.vat_month_czk),s=q(m.unpaid,m.unpaid_czk);return e.jsx("div",{style:{overflow:"hidden",marginBottom:"1.5rem"},children:e.jsx(V,{mode:"popLayout",initial:!1,custom:D.current,children:e.jsxs(g.div,{className:"dash-kpi-grid dash-kpi-4",custom:D.current,variants:{enter:n=>({x:`${(n||0)*105}%`,opacity:0}),center:{x:"0%",opacity:1},exit:n=>({x:`${(n||0)*-105}%`,opacity:0})},initial:"enter",animate:"center",exit:"exit",transition:{type:"spring",stiffness:300,damping:30},children:[e.jsxs("div",{className:"admin-stat-card success",children:[e.jsxs("div",{className:"admin-stat-label",children:["Celkem (",W,")"]}),e.jsx("div",{className:"admin-stat-value admin-mono",children:t.value}),e.jsx("div",{className:"admin-stat-footer",children:t.detail||`${m.month_count} ${ie(m.month_count,"faktura","faktury","faktur")}`})]}),e.jsxs("div",{className:"admin-stat-card info",children:[e.jsxs("div",{className:"admin-stat-label",children:["DPH k odpočtu (",W,")"]}),e.jsx("div",{className:"admin-stat-value admin-mono",children:a.value}),e.jsx("div",{className:"admin-stat-footer",children:a.detail||"z přijatých faktur"})]}),e.jsxs("div",{className:"admin-stat-card warning",children:[e.jsxs("div",{className:"admin-stat-label",children:["Neuhrazeno ",e.jsx("span",{style:{fontWeight:400,opacity:.7},children:"· celkově"})]}),e.jsx("div",{className:"admin-stat-value admin-mono",children:s.value}),e.jsx("div",{className:"admin-stat-footer",children:s.detail||(m.unpaid_count===0?"vše uhrazeno":`${m.unpaid_count} ${ie(m.unpaid_count,"faktura","faktury","faktur")}`)})]}),e.jsxs("div",{className:"admin-stat-card",children:[e.jsxs("div",{className:"admin-stat-label",children:["Počet (",W,")"]}),e.jsx("div",{className:"admin-stat-value admin-mono",children:m.month_count}),e.jsx("div",{className:"admin-stat-footer",children:m.month_count===0?"žádné faktury":"přijatých faktur"})]})]},pe)})})};return e.jsxs(e.Fragment,{children:[Ce(),e.jsx(g.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{duration:.4,delay:.1}}),e.jsx(g.div,{className:"admin-card",initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{duration:.4,delay:.15},children:e.jsxs("div",{className:"admin-card-body",children:[e.jsx("div",{className:"admin-search-bar mb-4",children:e.jsx("input",{type:"text",value:F,onChange:t=>me(t.target.value),className:"admin-form-input",placeholder:"Hledat podle dodavatele nebo čísla faktury..."})}),M&&e.jsx("div",{className:"admin-skeleton",style:{gap:"1rem"},children:[0,1,2,3,4].map(t=>e.jsxs("div",{className:"admin-skeleton-row",children:[e.jsx("div",{className:"admin-skeleton-line w-1/4"}),e.jsx("div",{className:"admin-skeleton-line w-1/4"}),e.jsx("div",{className:"admin-skeleton-line w-1/4"})]},t))}),!M&&K.length===0&&e.jsxs("div",{className:"admin-empty-state",children:[e.jsx("div",{className:"admin-empty-icon",children:e.jsxs("svg",{width:"28",height:"28",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round",children:[e.jsx("path",{d:"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"}),e.jsx("polyline",{points:"14 2 14 8 20 8"}),e.jsx("line",{x1:"16",y1:"13",x2:"8",y2:"13"}),e.jsx("line",{x1:"16",y1:"17",x2:"8",y2:"17"})]})}),e.jsx("p",{children:"Žádné přijaté faktury v tomto měsíci."}),B("invoices.create")&&e.jsx("p",{style:{color:"var(--text-tertiary)",fontSize:"0.875rem"},children:"Nahrajte faktury tlačítkem výše."})]}),!M&&K.length>0&&e.jsx("div",{className:"admin-table-responsive",children:e.jsxs("table",{className:"admin-table",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsxs("th",{style:{cursor:"pointer"},onClick:()=>N("supplier_name"),children:["Dodavatel ",e.jsx(S,{column:"supplier_name",sort:k,order:j})]}),e.jsxs("th",{style:{cursor:"pointer"},onClick:()=>N("invoice_number"),children:["Č. faktury ",e.jsx(S,{column:"invoice_number",sort:k,order:j})]}),e.jsxs("th",{style:{cursor:"pointer"},onClick:()=>N("status"),children:["Stav ",e.jsx(S,{column:"status",sort:k,order:j})]}),e.jsxs("th",{style:{cursor:"pointer"},onClick:()=>N("issue_date"),children:["Vystaveno ",e.jsx(S,{column:"issue_date",sort:k,order:j})]}),e.jsxs("th",{style:{cursor:"pointer"},onClick:()=>N("due_date"),children:["Splatnost ",e.jsx(S,{column:"due_date",sort:k,order:j})]}),e.jsxs("th",{style:{textAlign:"right",cursor:"pointer"},onClick:()=>N("amount"),children:["Částka ",e.jsx(S,{column:"amount",sort:k,order:j})]}),e.jsx("th",{children:"Akce"})]})}),e.jsx("tbody",{children:K.map(t=>e.jsxs("tr",{children:[e.jsx("td",{children:t.supplier_name}),e.jsx("td",{className:"admin-mono",children:t.invoice_number?e.jsx("span",{className:"link-accent",style:{cursor:"pointer"},onClick:()=>se(t),children:t.invoice_number}):"—"}),e.jsx("td",{children:t.status==="paid"?e.jsx("span",{className:`admin-badge ${le[t.status]}`,children:re[t.status]}):e.jsx("button",{onClick:()=>_e(t),className:`admin-badge ${le[t.status]||""}`,style:{cursor:"pointer"},children:re[t.status]||t.status})}),e.jsx("td",{className:"admin-mono",children:ne(t.issue_date)}),e.jsx("td",{className:"admin-mono",children:ne(t.due_date)}),e.jsx("td",{className:"admin-mono text-right fw-500",children:$(t.amount,t.currency)}),e.jsx("td",{children:e.jsxs("div",{className:"admin-table-actions",children:[t.file_name&&e.jsx("button",{className:"admin-btn-icon",title:"Zobrazit soubor",onClick:()=>se(t),children:e.jsxs("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[e.jsx("path",{d:"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z"}),e.jsx("circle",{cx:"12",cy:"12",r:"3"})]})}),B("invoices.edit")&&e.jsx("button",{className:"admin-btn-icon",title:"Upravit",onClick:()=>ge(t),children:e.jsxs("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[e.jsx("path",{d:"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7"}),e.jsx("path",{d:"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z"})]})}),B("invoices.delete")&&e.jsx("button",{className:"admin-btn-icon danger",title:"Smazat",onClick:()=>H({show:!0,invoice:t}),children:e.jsxs("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[e.jsx("polyline",{points:"3 6 5 6 21 6"}),e.jsx("path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2"})]})})]})})]},t.id))})]})})]})}),e.jsx(V,{children:A&&e.jsxs(g.div,{className:"admin-modal-overlay",initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:.2},children:[e.jsx("div",{className:"admin-modal-backdrop",onClick:()=>!p&&w(!1)}),e.jsxs(g.div,{className:"admin-modal admin-modal-lg",initial:{opacity:0,scale:.95,y:20},animate:{opacity:1,scale:1,y:0},exit:{opacity:0,scale:.95,y:20},transition:{duration:.2},children:[e.jsx("div",{className:"admin-modal-header",children:e.jsx("h2",{className:"admin-modal-title",children:"Nahrát přijaté faktury"})}),e.jsxs("div",{className:"admin-modal-body",children:[e.jsxs("div",{className:"mb-4",children:[e.jsx("input",{ref:te,type:"file",multiple:!0,accept:"application/pdf,image/jpeg,image/png",style:{display:"none"},onChange:xe}),e.jsxs("button",{className:"admin-btn admin-btn-secondary admin-btn-sm",onClick:()=>te.current?.click(),children:[e.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[e.jsx("path",{d:"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"}),e.jsx("polyline",{points:"17 8 12 3 7 8"}),e.jsx("line",{x1:"12",y1:"3",x2:"12",y2:"15"})]}),"Vybrat soubory"]}),e.jsx("span",{style:{marginLeft:"0.75rem",fontSize:"0.8125rem",color:"var(--text-tertiary)"},children:"PDF, JPEG, PNG · max 10 MB · max 20 souborů"})]}),_.length===0&&e.jsx("div",{className:"admin-empty-state",style:{padding:"2rem 0"},children:e.jsx("p",{style:{color:"var(--text-tertiary)"},children:"Zatím nebyly vybrány žádné soubory."})}),e.jsx("div",{className:"received-upload-list",children:_.map((t,a)=>e.jsxs("div",{className:"received-upload-card",children:[e.jsxs("div",{className:"received-upload-card-header",children:[e.jsxs("div",{className:"received-upload-file-info",children:[e.jsxs("svg",{width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[e.jsx("path",{d:"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"}),e.jsx("polyline",{points:"14 2 14 8 20 8"})]}),e.jsx("span",{className:"received-upload-file-name",children:t.name}),e.jsxs("span",{className:"received-upload-file-size",children:[Math.round(t.size/1024)," KB"]})]}),e.jsx("button",{className:"admin-btn-icon danger",style:{width:"24px",height:"24px"},onClick:()=>ye(a),children:e.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[e.jsx("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),e.jsx("line",{x1:"6",y1:"6",x2:"18",y2:"18"})]})})]}),e.jsxs("div",{className:"received-upload-card-fields",children:[e.jsx(d,{label:"Dodavatel",error:b[a]?.supplier_name,required:!0,children:e.jsx("input",{type:"text",className:`admin-form-input${b[a]?.supplier_name?" has-error":""}`,value:u[a]?.supplier_name||"",onChange:s=>x(a,"supplier_name",s.target.value)})}),e.jsx(d,{label:"Č. faktury",children:e.jsx("input",{type:"text",className:"admin-form-input",value:u[a]?.invoice_number||"",onChange:s=>x(a,"invoice_number",s.target.value)})}),e.jsxs("div",{className:"received-upload-row",children:[e.jsx(d,{label:"Částka",error:b[a]?.amount,required:!0,style:{flex:1},children:e.jsx("input",{type:"number",step:"0.01",min:"0",className:`admin-form-input${b[a]?.amount?" has-error":""}`,value:u[a]?.amount||"",onChange:s=>x(a,"amount",s.target.value)})}),e.jsx(d,{label:"Měna",style:{width:"90px"},children:e.jsx("select",{className:"admin-form-select",value:u[a]?.currency||"CZK",onChange:s=>x(a,"currency",s.target.value),children:oe.map(s=>e.jsx("option",{value:s,children:s},s))})}),e.jsx(d,{label:"DPH %",style:{width:"90px"},children:e.jsx("select",{className:"admin-form-select",value:u[a]?.vat_rate||"21",onChange:s=>x(a,"vat_rate",s.target.value),children:ce.map(s=>e.jsxs("option",{value:String(s),children:[s,"%"]},s))})})]}),u[a]?.amount&&e.jsxs("div",{style:{fontSize:"0.75rem",color:"var(--text-tertiary)",marginTop:"-0.25rem",marginBottom:"0.5rem"},children:["DPH: ",$(parseFloat(u[a].amount||0)*parseFloat(u[a].vat_rate||21)/100,u[a].currency||"CZK")]}),e.jsxs("div",{className:"received-upload-row",children:[e.jsx(d,{label:"Datum vystavení",style:{flex:1},children:e.jsx(O,{mode:"date",value:u[a]?.issue_date||"",onChange:s=>x(a,"issue_date",s)})}),e.jsx(d,{label:"Datum splatnosti",style:{flex:1},children:e.jsx(O,{mode:"date",value:u[a]?.due_date||"",onChange:s=>x(a,"due_date",s)})})]}),e.jsx(d,{label:"Poznámka",children:e.jsx("input",{type:"text",className:"admin-form-input",value:u[a]?.notes||"",onChange:s=>x(a,"notes",s.target.value)})})]})]},`${t.name}-${a}`))})]}),e.jsxs("div",{className:"admin-modal-footer",children:[e.jsx("button",{className:"admin-btn admin-btn-secondary",onClick:()=>!p&&w(!1),disabled:p,children:"Zrušit"}),e.jsx("button",{className:"admin-btn admin-btn-primary",onClick:be,disabled:p||_.length===0,children:p?"Nahrávání...":"Uložit vše"})]})]})]})}),e.jsx(V,{children:ee&&i&&e.jsxs(g.div,{className:"admin-modal-overlay",initial:{opacity:0},animate:{opacity:1},exit:{opacity:0},transition:{duration:.2},children:[e.jsx("div",{className:"admin-modal-backdrop",onClick:()=>!p&&z(!1)}),e.jsx(g.div,{className:"admin-modal",initial:{opacity:0,scale:.95,y:20},animate:{opacity:1,scale:1,y:0},exit:{opacity:0,scale:.95,y:20},transition:{duration:.2},children:(()=>{const t=i._originalStatus==="paid";return e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"admin-modal-header",children:e.jsx("h2",{className:"admin-modal-title",children:t?"Detail přijaté faktury":"Upravit přijatou fakturu"})}),e.jsx("div",{className:"admin-modal-body",children:e.jsxs("div",{className:"admin-form",children:[e.jsx(d,{label:"Dodavatel",required:!0,children:e.jsx("input",{type:"text",className:"admin-form-input",value:i.supplier_name,onChange:a=>h(s=>({...s,supplier_name:a.target.value})),readOnly:t})}),e.jsx(d,{label:"Č. faktury",children:e.jsx("input",{type:"text",className:"admin-form-input",value:i.invoice_number||"",onChange:a=>h(s=>({...s,invoice_number:a.target.value})),readOnly:t})}),e.jsxs("div",{className:"admin-form-row admin-form-row-3",children:[e.jsx(d,{label:"Částka",required:!0,children:e.jsx("input",{type:"number",step:"0.01",min:"0",className:"admin-form-input",value:i.amount,onChange:a=>h(s=>({...s,amount:a.target.value})),readOnly:t})}),e.jsx(d,{label:"Měna",children:e.jsx("select",{className:"admin-form-select",value:i.currency,onChange:a=>h(s=>({...s,currency:a.target.value})),disabled:t,children:oe.map(a=>e.jsx("option",{value:a,children:a},a))})}),e.jsx(d,{label:"DPH %",children:e.jsx("select",{className:"admin-form-select",value:i.vat_rate,onChange:a=>h(s=>({...s,vat_rate:a.target.value})),disabled:t,children:ce.map(a=>e.jsxs("option",{value:String(a),children:[a,"%"]},a))})})]}),i.amount&&e.jsxs("div",{style:{fontSize:"0.75rem",color:"var(--text-tertiary)",marginBottom:"0.75rem"},children:["DPH: ",$(parseFloat(i.amount||0)*parseFloat(i.vat_rate||21)/100,i.currency||"CZK")]}),e.jsxs("div",{className:"admin-form-row",children:[e.jsx(d,{label:"Datum vystavení",children:e.jsx(O,{mode:"date",value:i.issue_date||"",onChange:a=>h(s=>({...s,issue_date:a})),disabled:t})}),e.jsx(d,{label:"Datum splatnosti",children:e.jsx(O,{mode:"date",value:i.due_date||"",onChange:a=>h(s=>({...s,due_date:a})),disabled:t})})]}),e.jsx(d,{label:"Stav",children:e.jsxs("select",{className:"admin-form-select",value:i.status,onChange:a=>h(s=>({...s,status:a.target.value})),disabled:t,children:[e.jsx("option",{value:"unpaid",children:"Neuhrazena"}),e.jsx("option",{value:"paid",children:"Uhrazena"})]})}),e.jsx(d,{label:"Poznámka",children:e.jsx("textarea",{className:"admin-form-input",rows:3,value:i.notes||"",onChange:a=>h(s=>({...s,notes:a.target.value})),readOnly:t})})]})}),e.jsx("div",{className:"admin-modal-footer",children:t?e.jsx("button",{className:"admin-btn admin-btn-secondary",onClick:()=>z(!1),children:"Zavřít"}):e.jsxs(e.Fragment,{children:[e.jsx("button",{className:"admin-btn admin-btn-secondary",onClick:()=>!p&&z(!1),disabled:p,children:"Zrušit"}),e.jsx("button",{className:"admin-btn admin-btn-primary",onClick:Ne,disabled:p,children:p?"Ukládání...":"Uložit"})]})})]})})()})]})}),e.jsx(Fe,{isOpen:E.show,onClose:()=>H({show:!1,invoice:null}),onConfirm:ke,title:"Smazat přijatou fakturu",message:`Opravdu chcete smazat fakturu "${E.invoice?.supplier_name||""}"? Tato akce je nevratná.`,confirmText:"Smazat",cancelText:"Zrušit",type:"danger",loading:je})]})}export{Ue as default};