- SEC-1: nahrazen exec('fsutil') za PHP-native is_link()+realpath() v NasFileManager - eliminace command injection
- SEC-2: přidáno ověření aktuálního hesla při změně hesla (profile.php + DashProfile.jsx)
- BUG-1: attendance punch obalen do transakce s SELECT FOR UPDATE - prevence race condition při dvojkliku
- BUG-2: eliminován N+1 SQL dotaz pro VAT v invoice listu - výpočet přesunut do subquery
- BUG-5/6: delete a update attendance záznamů obaleny do transakcí - prevence nekonzistentního stavu
- BUG-7: opravena duplikace nabídky - přidáno chybějící pole unit v offer items
ESLint: 0 errors | PHPCS: 0 errors | Build: OK
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2 lines
20 KiB
JavaScript
2 lines
20 KiB
JavaScript
import{j as e,m as y}from"./vendor-animation-0s3FMHwK.js";import{r}from"./vendor-react-BVs3cwbi.js";import{a as ne,u as te,c as j,F as i}from"./index-CCZhiEoc.js";import{F as ie}from"./Forbidden-D25jV3Oq.js";import"./vendor-utils-Dyr8OjFr.js";const p="/api/admin",k=["street","city_postal","country","company_id","vat_id"],W={street:"Ulice",city_postal:"Město + PSČ",country:"Země",company_id:"IČO",vat_id:"DIČ"},A=new Date().getFullYear().toString().slice(-2);function me(){const o=ne(),{hasPermission:Z}=te(),[K,M]=r.useState(!0),[C,w]=r.useState(!1),[F,B]=r.useState(!1),[S,G]=r.useState(null),[d,U]=r.useState({company_name:"",street:"",city:"",postal_code:"",country:"",company_id:"",vat_id:"",quotation_prefix:"N",default_currency:"EUR",default_vat_rate:21,order_type_code:"71",invoice_type_code:"81"}),[m,v]=r.useState([]),z=r.useRef(0),[D,f]=r.useState([...k]),[L,q]=r.useState([]),[V,H]=r.useState(!0),[P,E]=r.useState(!1),[x,I]=r.useState(null),[u,h]=r.useState({account_name:"",bank_name:"",account_number:"",iban:"",bic:"",currency:"CZK",is_default:!1}),g=r.useCallback(()=>{const a=[...k],n=[...D].filter(s=>s!=="company_name");for(const s of a)n.includes(s)||n.push(s);for(let s=0;s<m.length;s++){const t=`custom_${s}`;n.includes(t)||n.push(t)}return n.filter(s=>s.startsWith("custom_")?parseInt(s.split("_")[1])<m.length:!0)},[D,m]),R=(a,n)=>{const s=g(),t=a+n;if(t<0||t>=s.length)return;const l=[...s];[l[a],l[t]]=[l[t],l[a]],f(l)},J=a=>{if(W[a])return W[a];if(a.startsWith("custom_")){const n=parseInt(a.split("_")[1]),s=m[n];if(s)return s.name?`${s.name}: ${s.value||"..."}`:s.value||`Vlastní pole ${n+1}`}return a},N=r.useCallback(async()=>{try{const a=await j(`${p}/company-settings.php?action=logo`);if(a.ok){const n=await a.blob();G(s=>(s&&URL.revokeObjectURL(s),URL.createObjectURL(n)))}}catch{}},[]),O=r.useCallback(async()=>{try{const a=await j(`${p}/company-settings.php`);if(a.status===401)return;const n=await a.json();if(n.success){const s=n.data;U({company_name:s.company_name||"",street:s.street||"",city:s.city||"",postal_code:s.postal_code||"",country:s.country||"",company_id:s.company_id||"",vat_id:s.vat_id||"",quotation_prefix:s.quotation_prefix||"N",default_currency:s.default_currency||"EUR",default_vat_rate:s.default_vat_rate||21,order_type_code:s.order_type_code||"71",invoice_type_code:s.invoice_type_code||"81"});const t=Array.isArray(s.custom_fields)&&s.custom_fields.length>0?s.custom_fields.map(l=>({...l,_key:`cf-${++z.current}`})):[];v(t),Array.isArray(s.supplier_field_order)&&s.supplier_field_order.length>0?f(s.supplier_field_order):f([...k]),s.has_logo&&N()}else o.error(n.error||"Nepodařilo se načíst nastavení")}catch{o.error("Chyba připojení")}finally{M(!1)}},[o,N]),b=r.useCallback(async()=>{try{const a=await j(`${p}/bank-accounts.php`);if(a.status===401)return;const n=await a.json();n.success&&q(n.data)}catch{}finally{H(!1)}},[]),_=()=>{I(null),h({account_name:"",bank_name:"",account_number:"",iban:"",bic:"",currency:"CZK",is_default:!1})},Y=async()=>{if(!u.account_name.trim()){o.error("Název účtu je povinný");return}E(!0);try{const a=x!==null,n=a?`${p}/bank-accounts.php?id=${x}`:`${p}/bank-accounts.php`,t=await(await j(n,{method:a?"PUT":"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(u)})).json();t.success?(o.success(t.message),_(),b()):o.error(t.error||"Chyba při ukládání")}catch{o.error("Chyba připojení")}finally{E(!1)}},X=async a=>{if(confirm("Opravdu smazat tento bankovní účet?"))try{const s=await(await j(`${p}/bank-accounts.php?id=${a}`,{method:"DELETE"})).json();s.success?(o.success(s.message),x===a&&_(),b()):o.error(s.error||"Chyba při mazání")}catch{o.error("Chyba připojení")}},Q=a=>{I(a.id),h({account_name:a.account_name||"",bank_name:a.bank_name||"",account_number:a.account_number||"",iban:a.iban||"",bic:a.bic||"",currency:a.currency||"CZK",is_default:!!a.is_default})};r.useEffect(()=>{O(),b()},[O,b]);const ee=async()=>{w(!0);try{const a={...d,custom_fields:m.filter(t=>t.name.trim()||t.value.trim()),supplier_field_order:g()},s=await(await j(`${p}/company-settings.php`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)})).json();s.success?o.success(s.message||"Nastavení bylo uloženo"):o.error(s.error||"Nepodařilo se uložit nastavení")}catch{o.error("Chyba připojení")}finally{w(!1)}},ae=async a=>{const n=a.target.files[0];if(n){B(!0);try{const s=new FormData;s.append("logo",n);const l=await(await j(`${p}/company-settings.php?action=logo`,{method:"POST",body:s})).json();l.success?(o.success(l.message||"Logo bylo nahráno"),N()):o.error(l.error||"Nepodařilo se nahrát logo")}catch{o.error("Chyba připojení")}finally{B(!1),a.target.value=""}}},c=(a,n)=>{U(s=>({...s,[a]:n}))};if(!Z("offers.settings"))return e.jsx(ie,{});if(K)return e.jsxs("div",{className:"admin-skeleton",style:{padding:0,gap:"1.5rem"},children:[e.jsxs("div",{className:"admin-skeleton-row",style:{justifyContent:"space-between"},children:[e.jsxs("div",{children:[e.jsx("div",{className:"admin-skeleton-line h-8",style:{width:"200px",marginBottom:"0.5rem"}}),e.jsx("div",{className:"admin-skeleton-line",style:{width:"140px"}})]}),e.jsx("div",{className:"admin-skeleton-line h-10",style:{width:"120px",borderRadius:"8px"}})]}),e.jsx("div",{style:{display:"grid",gridTemplateColumns:"repeat(3, 1fr)",gap:"1.25rem"},children:[0,1,2,3,4,5].map(a=>e.jsx("div",{className:"admin-card",children:e.jsxs("div",{className:"admin-skeleton",style:{gap:"1.25rem"},children:[e.jsx("div",{className:"admin-skeleton-line h-8",style:{width:"60%"}}),[0,1,2].map(n=>e.jsxs("div",{className:"admin-skeleton-row",children:[e.jsx("div",{className:"admin-skeleton-line w-1/3"}),e.jsx("div",{className:"admin-skeleton-line w-1/2"})]},n))]})},a))})]});const $=g();function se(){return P?e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"admin-spinner admin-spinner-sm"}),"Ukládání..."]}):x!==null?"Uložit změny":e.jsxs(e.Fragment,{children:[e.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[e.jsx("line",{x1:"12",y1:"5",x2:"12",y2:"19"}),e.jsx("line",{x1:"5",y1:"12",x2:"19",y2:"12"})]}),"Přidat účet"]})}return e.jsxs("div",{children:[e.jsxs(y.div,{className:"admin-page-header",initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{duration:.4},children:[e.jsxs("div",{children:[e.jsx("h1",{className:"admin-page-title",children:"Nastavení firmy"}),e.jsx("p",{className:"admin-page-subtitle",children:"Firemní údaje, číslování dokladů a výchozí hodnoty"})]}),e.jsx("button",{onClick:ee,className:"admin-btn admin-btn-primary",disabled:C,children:C?e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"admin-spinner admin-spinner-sm"}),"Ukládání..."]}):"Uložit nastavení"})]}),e.jsxs("div",{className:"offers-settings-grid",children:[e.jsxs(y.div,{className:"admin-card",initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{duration:.4,delay:.1},children:[e.jsx("div",{className:"admin-card-header",children:e.jsx("h3",{className:"admin-card-title",children:"Firemní údaje"})}),e.jsx("div",{className:"admin-card-body",children:e.jsxs("div",{className:"admin-form",children:[e.jsx(i,{label:"Název firmy",children:e.jsx("input",{type:"text",value:d.company_name,onChange:a=>c("company_name",a.target.value),className:"admin-form-input"})}),e.jsxs("div",{className:"admin-form-row",children:[e.jsx(i,{label:"Ulice",children:e.jsx("input",{type:"text",value:d.street,onChange:a=>c("street",a.target.value),className:"admin-form-input"})}),e.jsx(i,{label:"Město",children:e.jsx("input",{type:"text",value:d.city,onChange:a=>c("city",a.target.value),className:"admin-form-input"})})]}),e.jsxs("div",{className:"admin-form-row",children:[e.jsx(i,{label:"PSČ",children:e.jsx("input",{type:"text",value:d.postal_code,onChange:a=>c("postal_code",a.target.value),className:"admin-form-input"})}),e.jsx(i,{label:"Země",children:e.jsx("input",{type:"text",value:d.country,onChange:a=>c("country",a.target.value),className:"admin-form-input"})})]}),e.jsxs("div",{className:"admin-form-row",children:[e.jsx(i,{label:"IČO",children:e.jsx("input",{type:"text",value:d.company_id,onChange:a=>c("company_id",a.target.value),className:"admin-form-input"})}),e.jsx(i,{label:"DIČ",children:e.jsx("input",{type:"text",value:d.vat_id,onChange:a=>c("vat_id",a.target.value),className:"admin-form-input"})})]}),e.jsxs("div",{style:{marginTop:4},children:[e.jsx("label",{className:"admin-form-label",style:{display:"block",marginBottom:4},children:"Vlastní pole"}),m.map((a,n)=>e.jsxs("div",{style:{marginBottom:8},children:[e.jsxs("div",{className:"admin-form-row",style:{marginBottom:0,alignItems:"flex-end"},children:[e.jsx(i,{label:n===0?"Název":" ",style:{flex:1},children:e.jsx("input",{type:"text",value:a.name,onChange:s=>{const t=[...m];t[n]={...t[n],name:s.target.value},v(t)},className:"admin-form-input",placeholder:"Např. Tel."})}),e.jsx(i,{label:n===0?"Hodnota":" ",style:{flex:1},children:e.jsxs("div",{style:{display:"flex",gap:4,alignItems:"center"},children:[e.jsx("input",{type:"text",value:a.value,onChange:s=>{const t=[...m];t[n]={...t[n],value:s.target.value},v(t)},className:"admin-form-input",style:{flex:1}}),e.jsx("button",{type:"button",onClick:()=>{const s=`custom_${n}`;f(t=>t.filter(l=>l!==s).map(l=>{if(l.startsWith("custom_")){const T=parseInt(l.split("_")[1]);if(T>n)return`custom_${T-1}`}return l})),v(m.filter((t,l)=>l!==n))},className:"admin-btn-icon danger",title:"Odebrat pole","aria-label":"Odebrat pole",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("label",{className:"admin-form-checkbox",style:{marginTop:4},children:[e.jsx("input",{type:"checkbox",checked:a.showLabel!==!1,onChange:s=>{const t=[...m];t[n]={...t[n],showLabel:s.target.checked},v(t)}}),e.jsx("span",{style:{fontSize:"0.8rem"},children:"Zobrazit název v PDF"})]})]},a._key)),e.jsxs("button",{type:"button",onClick:()=>v([...m,{name:"",value:"",showLabel:!0,_key:`cf-${++z.current}`}]),className:"admin-btn admin-btn-secondary",style:{marginTop:4,fontSize:"0.85rem"},children:[e.jsxs("svg",{width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:[e.jsx("line",{x1:"12",y1:"5",x2:"12",y2:"19"}),e.jsx("line",{x1:"5",y1:"12",x2:"19",y2:"12"})]}),"Přidat pole"]})]})]})})]}),e.jsxs(y.div,{className:"admin-card",initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{duration:.4,delay:.15},children:[e.jsx("div",{className:"admin-card-header",children:e.jsx("h3",{className:"admin-card-title",children:"Bankovní účty"})}),e.jsx("div",{className:"admin-card-body",children:V?e.jsx("div",{className:"admin-skeleton",style:{gap:"1rem"},children:[0,1,2].map(a=>e.jsxs("div",{className:"admin-skeleton-row",children:[e.jsx("div",{className:"admin-skeleton-line w-1/3"}),e.jsx("div",{className:"admin-skeleton-line w-1/4"}),e.jsx("div",{className:"admin-skeleton-line w-1/4"})]},a))}):e.jsxs(e.Fragment,{children:[L.length>0&&e.jsx("div",{className:"admin-table-responsive mb-4",children:e.jsxs("table",{className:"admin-table",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:"Název"}),e.jsx("th",{children:"Banka"}),e.jsx("th",{children:"Číslo účtu"}),e.jsx("th",{children:"IBAN"}),e.jsx("th",{children:"BIC/SWIFT"}),e.jsx("th",{children:"Měna"}),e.jsx("th",{style:{width:70},children:"Výchozí"}),e.jsx("th",{style:{width:80}})]})}),e.jsx("tbody",{children:L.map(a=>e.jsxs("tr",{style:x===a.id?{background:"var(--bg-tertiary)"}:void 0,children:[e.jsx("td",{children:a.account_name}),e.jsx("td",{children:a.bank_name}),e.jsx("td",{className:"admin-mono",children:a.account_number}),e.jsx("td",{className:"admin-mono",children:a.iban}),e.jsx("td",{className:"admin-mono",children:a.bic}),e.jsx("td",{children:a.currency}),e.jsx("td",{className:"text-center",children:a.is_default?e.jsx("span",{className:"text-accent fw-600",children:"✓"}):"–"}),e.jsx("td",{children:e.jsxs("div",{style:{display:"flex",gap:4},children:[e.jsx("button",{type:"button",onClick:()=>Q(a),className:"admin-btn-icon",title:"Upravit","aria-label":"Upravit",children:e.jsxs("svg",{width:"14",height:"14",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"})]})}),e.jsx("button",{type:"button",onClick:()=>X(a.id),className:"admin-btn-icon danger",title:"Smazat","aria-label":"Smazat",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"})]})})]})})]},a.id))})]})}),e.jsxs("div",{style:{background:"var(--bg-tertiary)",borderRadius:"var(--border-radius)",padding:16},children:[e.jsx("h4",{className:"text-secondary",style:{margin:"0 0 12px",fontSize:"0.9rem"},children:x!==null?"Upravit účet":"Přidat nový účet"}),e.jsxs("div",{className:"admin-form",children:[e.jsxs("div",{className:"admin-form-row",children:[e.jsx(i,{label:"Název účtu",required:!0,children:e.jsx("input",{type:"text",value:u.account_name,onChange:a=>h(n=>({...n,account_name:a.target.value})),className:"admin-form-input",placeholder:"Např. Hlavní CZK účet"})}),e.jsx(i,{label:"Název banky",children:e.jsx("input",{type:"text",value:u.bank_name,onChange:a=>h(n=>({...n,bank_name:a.target.value})),className:"admin-form-input",placeholder:"Např. MONETA Money Bank, a.s."})})]}),e.jsxs("div",{className:"admin-form-row",children:[e.jsx(i,{label:"Číslo účtu",children:e.jsx("input",{type:"text",value:u.account_number,onChange:a=>h(n=>({...n,account_number:a.target.value})),className:"admin-form-input",placeholder:"123456789/0600"})}),e.jsx(i,{label:"Měna",children:e.jsxs("select",{value:u.currency,onChange:a=>h(n=>({...n,currency:a.target.value})),className:"admin-form-select",children:[e.jsx("option",{value:"CZK",children:"CZK"}),e.jsx("option",{value:"EUR",children:"EUR"}),e.jsx("option",{value:"USD",children:"USD"}),e.jsx("option",{value:"GBP",children:"GBP"})]})})]}),e.jsxs("div",{className:"admin-form-row",children:[e.jsx(i,{label:"IBAN",children:e.jsx("input",{type:"text",value:u.iban,onChange:a=>h(n=>({...n,iban:a.target.value})),className:"admin-form-input",placeholder:"CZ65 0800 0000 1920 0014 5399"})}),e.jsx(i,{label:"BIC / SWIFT",children:e.jsx("input",{type:"text",value:u.bic,onChange:a=>h(n=>({...n,bic:a.target.value})),className:"admin-form-input",placeholder:"GIBACZPX"})})]}),e.jsxs("label",{className:"admin-form-checkbox",children:[e.jsx("input",{type:"checkbox",checked:u.is_default,onChange:a=>h(n=>({...n,is_default:a.target.checked}))}),e.jsx("span",{children:"Výchozí účet (použije se automaticky při vytváření faktury)"})]}),e.jsxs("div",{style:{display:"flex",gap:8,marginTop:8},children:[e.jsx("button",{type:"button",onClick:Y,className:"admin-btn admin-btn-primary",disabled:P,style:{fontSize:"0.85rem"},children:se()}),x!==null&&e.jsx("button",{type:"button",onClick:_,className:"admin-btn admin-btn-secondary",style:{fontSize:"0.85rem"},children:"Zrušit"})]})]})]})]})})]}),e.jsxs(y.div,{className:"admin-card",initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{duration:.4,delay:.15},children:[e.jsx("div",{className:"admin-card-header",children:e.jsx("h3",{className:"admin-card-title",children:"Pořadí polí dodavatele v PDF"})}),e.jsxs("div",{className:"admin-card-body",children:[e.jsx("small",{className:"admin-form-hint",style:{display:"block",marginBottom:12},children:"Určuje pořadí řádků v adresním bloku dodavatele na PDF nabídce."}),e.jsx("div",{className:"admin-reorder-list",children:$.map((a,n)=>e.jsxs("div",{className:"admin-reorder-item",children:[e.jsxs("div",{className:"admin-reorder-arrows",children:[e.jsx("button",{type:"button",onClick:()=>R(n,-1),disabled:n===0,className:"admin-btn-icon",title:"Nahoru","aria-label":"Nahoru",children:e.jsx("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:e.jsx("path",{d:"M18 15l-6-6-6 6"})})}),e.jsx("button",{type:"button",onClick:()=>R(n,1),disabled:n===$.length-1,className:"admin-btn-icon",title:"Dolů","aria-label":"Dolů",children:e.jsx("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",children:e.jsx("path",{d:"M6 9l6 6 6-6"})})})]}),e.jsx("span",{className:`admin-reorder-label${a.startsWith("custom_")?" accent":""}`,children:J(a)})]},a))})]})]}),e.jsxs(y.div,{className:"admin-card",initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{duration:.4,delay:.2},children:[e.jsx("div",{className:"admin-card-header",children:e.jsx("h3",{className:"admin-card-title",children:"Logo"})}),e.jsx("div",{className:"admin-card-body",children:e.jsxs("div",{className:"offers-logo-section",children:[S&&e.jsx("div",{className:"offers-logo-preview",children:e.jsx("img",{src:S,alt:"Logo"})}),e.jsxs("label",{className:"admin-btn admin-btn-secondary",style:{cursor:"pointer"},children:[F?e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"admin-spinner admin-spinner-sm"}),"Nahrávání..."]}):e.jsxs(e.Fragment,{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"})]}),"Nahrát logo"]}),e.jsx("input",{type:"file",accept:"image/*",onChange:ae,style:{display:"none"},disabled:F})]}),e.jsx("small",{className:"admin-form-hint",children:"PNG, JPEG, GIF nebo WebP, max 5 MB"})]})})]}),e.jsxs(y.div,{className:"admin-card",initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{duration:.4,delay:.25},children:[e.jsx("div",{className:"admin-card-header",children:e.jsx("h3",{className:"admin-card-title",children:"Číslování dokladů"})}),e.jsx("div",{className:"admin-card-body",children:e.jsxs("div",{className:"admin-form",children:[e.jsxs(i,{label:"Nabídky — prefix",children:[e.jsx("input",{type:"text",value:d.quotation_prefix,onChange:a=>c("quotation_prefix",a.target.value),className:"admin-form-input",placeholder:"N",style:{maxWidth:120}}),e.jsxs("small",{className:"admin-form-hint",children:["Formát: ROK/PREFIX/ČÍSLO — ukázka: ",new Date().getFullYear(),"/",d.quotation_prefix||"N","/001"]})]}),e.jsx("hr",{style:{border:"none",borderTop:"1px solid var(--border-color)",margin:"0.75rem 0"}}),e.jsxs(i,{label:"Objednávky a projekty — typový kód",children:[e.jsx("input",{type:"text",value:d.order_type_code,onChange:a=>c("order_type_code",a.target.value),className:"admin-form-input",placeholder:"71",style:{maxWidth:120}}),e.jsxs("small",{className:"admin-form-hint",children:["Formát: RRKÓD#### — ukázka: ",A,d.order_type_code||"71","0001"]})]}),e.jsx("hr",{style:{border:"none",borderTop:"1px solid var(--border-color)",margin:"0.75rem 0"}}),e.jsxs(i,{label:"Faktury — typový kód",children:[e.jsx("input",{type:"text",value:d.invoice_type_code,onChange:a=>c("invoice_type_code",a.target.value),className:"admin-form-input",placeholder:"81",style:{maxWidth:120}}),e.jsxs("small",{className:"admin-form-hint",children:["Formát: RRKÓD#### — ukázka: ",A,d.invoice_type_code||"81","0001"]})]})]})})]}),e.jsxs(y.div,{className:"admin-card",initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{duration:.4,delay:.3},children:[e.jsx("div",{className:"admin-card-header",children:e.jsx("h3",{className:"admin-card-title",children:"Výchozí hodnoty"})}),e.jsx("div",{className:"admin-card-body",children:e.jsx("div",{className:"admin-form",children:e.jsxs("div",{className:"admin-form-row",children:[e.jsx(i,{label:"Výchozí měna",children:e.jsxs("select",{value:d.default_currency,onChange:a=>c("default_currency",a.target.value),className:"admin-form-select",children:[e.jsx("option",{value:"EUR",children:"EUR (€)"}),e.jsx("option",{value:"USD",children:"USD ($)"}),e.jsx("option",{value:"CZK",children:"CZK (Kč)"}),e.jsx("option",{value:"GBP",children:"GBP (£)"})]})}),e.jsx(i,{label:"Výchozí sazba DPH (%)",children:e.jsx("input",{type:"number",value:d.default_vat_rate,onChange:a=>c("default_vat_rate",parseFloat(a.target.value)||0),className:"admin-form-input",step:"0.1"})})]})})})]})]})]})}export{me as default};
|