Files
app/dist/assets/CompanySettings-DP-v9IRs.js
Simon 5550358b15 fix: oprava kritických bezpečnostních chyb a bugů z code review
- 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>
2026-03-17 13:46:20 +01:00

2 lines
20 KiB
JavaScript
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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};