Files
app/dist/assets/Orders--vmT4S56.js

2 lines
9.0 KiB
JavaScript

import{j as e,m as N}from"./vendor-animation-0s3FMHwK.js";import{r as a,L as i}from"./vendor-react-BVs3cwbi.js";import{a as _,u as B,d as D,e as T,g as A,C as L,c as E}from"./index-fMsy8JiX.js";import{F as M}from"./Forbidden-D25jV3Oq.js";import{u as O,a as P,S as v}from"./useListData-BE3ZKxdc.js";import{P as V}from"./Pagination-B1sbY6V7.js";import"./vendor-utils-Dyr8OjFr.js";const $="/api/admin",F={prijata:"Přijatá",v_realizaci:"V realizaci",dokoncena:"Dokončená",stornovana:"Stornována"},W={prijata:"admin-badge-order-prijata",v_realizaci:"admin-badge-order-realizace",dokoncena:"admin-badge-order-dokoncena",stornovana:"admin-badge-order-stornovana"};function K(){const r=_(),{hasPermission:d}=B(),{sort:g,order:n,handleSort:o,activeSort:c}=O("order_number"),[p,f]=a.useState(""),[b,u]=a.useState(1),[t,m]=a.useState({show:!1,order:null}),[w,k]=a.useState(!1),[y,h]=a.useState(!1),{items:l,loading:S,pagination:x,refetch:z}=P("orders.php",{dataKey:"orders",search:p,sort:g,order:n,page:b,errorMsg:"Nepodařilo se načíst objednávky"});if(!d("orders.view"))return e.jsx(M,{});const C=async()=>{if(t.order){k(!0);try{const j=await(await E(`${$}/orders.php?id=${t.order.id}`,{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({delete_files:y})})).json();j.success?(m({show:!1,order:null}),h(!1),r.success(j.message||"Objednávka byla smazána"),z()):r.error(j.error||"Nepodařilo se smazat objednávku")}catch{r.error("Chyba připojení")}finally{k(!1)}}};return S?e.jsx("div",{children: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:"140px",borderRadius:"8px"}})]}),e.jsx("div",{className:"admin-card",children:e.jsxs("div",{className:"admin-skeleton",style:{gap:"1.25rem"},children:[e.jsxs("div",{className:"admin-skeleton-row",children:[e.jsx("div",{className:"admin-skeleton-line circle"}),e.jsxs("div",{className:"flex-1",children:[e.jsx("div",{className:"admin-skeleton-line w-1/3",style:{marginBottom:"0.5rem"}}),e.jsx("div",{className:"admin-skeleton-line w-1/4",style:{height:"10px"}})]}),e.jsx("div",{className:"admin-skeleton-line w-1/4"})]}),e.jsxs("div",{className:"admin-skeleton-row",children:[e.jsx("div",{className:"admin-skeleton-line circle"}),e.jsxs("div",{className:"flex-1",children:[e.jsx("div",{className:"admin-skeleton-line w-1/2",style:{marginBottom:"0.5rem"}}),e.jsx("div",{className:"admin-skeleton-line w-1/3",style:{height:"10px"}})]}),e.jsx("div",{className:"admin-skeleton-line w-1/4"})]}),e.jsxs("div",{className:"admin-skeleton-row",children:[e.jsx("div",{className:"admin-skeleton-line circle"}),e.jsxs("div",{className:"flex-1",children:[e.jsx("div",{className:"admin-skeleton-line w-3/4",style:{marginBottom:"0.5rem"}}),e.jsx("div",{className:"admin-skeleton-line w-1/4",style:{height:"10px"}})]}),e.jsx("div",{className:"admin-skeleton-line w-1/4"})]}),e.jsxs("div",{className:"admin-skeleton-row",children:[e.jsx("div",{className:"admin-skeleton-line circle"}),e.jsxs("div",{className:"flex-1",children:[e.jsx("div",{className:"admin-skeleton-line w-1/2",style:{marginBottom:"0.5rem"}}),e.jsx("div",{className:"admin-skeleton-line w-1/3",style:{height:"10px"}})]}),e.jsx("div",{className:"admin-skeleton-line w-1/4"})]}),e.jsxs("div",{className:"admin-skeleton-row",children:[e.jsx("div",{className:"admin-skeleton-line circle"}),e.jsxs("div",{className:"flex-1",children:[e.jsx("div",{className:"admin-skeleton-line w-1/3",style:{marginBottom:"0.5rem"}}),e.jsx("div",{className:"admin-skeleton-line w-1/4",style:{height:"10px"}})]}),e.jsx("div",{className:"admin-skeleton-line w-1/4"})]})]})})]})}):e.jsxs("div",{children:[e.jsx(N.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:"Objednávky"}),e.jsxs("p",{className:"admin-page-subtitle",children:[x?.total??l.length," ",D(x?.total??l.length,"objednávka","objednávky","objednávek")]})]})}),e.jsx(N.div,{className:"admin-card",initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{duration:.4,delay:.1},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:p,onChange:s=>{f(s.target.value),u(1)},className:"admin-form-input",placeholder:"Hledat podle čísla, nabídky, projektu nebo zákazníka..."})}),l.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:"M6 2L3 6v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6l-3-4z"}),e.jsx("line",{x1:"3",y1:"6",x2:"21",y2:"6"}),e.jsx("path",{d:"M16 10a4 4 0 0 1-8 0"})]})}),e.jsx("p",{children:"Zatím nejsou žádné objednávky."}),e.jsx("p",{className:"text-tertiary",style:{fontSize:"0.875rem"},children:"Objednávky se vytvářejí z nabídek."})]}):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:()=>o("order_number"),children:["Číslo ",e.jsx(v,{column:"order_number",sort:c,order:n})]}),e.jsx("th",{children:"Nabídka"}),e.jsx("th",{children:"Zákazník"}),e.jsxs("th",{style:{cursor:"pointer"},onClick:()=>o("status"),children:["Stav ",e.jsx(v,{column:"status",sort:c,order:n})]}),e.jsxs("th",{style:{cursor:"pointer"},onClick:()=>o("created_at"),children:["Datum ",e.jsx(v,{column:"created_at",sort:c,order:n})]}),e.jsx("th",{className:"text-right",children:"Celkem"}),e.jsx("th",{children:"Akce"})]})}),e.jsx("tbody",{children:l.map(s=>e.jsxs("tr",{children:[e.jsx("td",{className:"admin-mono",children:e.jsx(i,{to:`/orders/${s.id}`,className:"link-accent",children:s.order_number})}),e.jsx("td",{children:e.jsx(i,{to:`/offers/${s.quotation_id}`,className:"text-secondary",style:{textDecoration:"none"},children:s.quotation_number})}),e.jsx("td",{children:s.customer_name||"—"}),e.jsx("td",{children:e.jsx("span",{className:`admin-badge ${W[s.status]||""}`,children:F[s.status]||s.status})}),e.jsx("td",{className:"admin-mono",children:T(s.created_at)}),e.jsx("td",{className:"admin-mono text-right fw-500",children:A(s.total,s.currency)}),e.jsx("td",{children:e.jsxs("div",{className:"admin-table-actions",children:[e.jsx(i,{to:`/orders/${s.id}`,className:"admin-btn-icon",title:"Detail","aria-label":"Detail",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"})]})}),s.invoice_id?e.jsx(i,{to:`/invoices/${s.invoice_id}`,className:"admin-btn-icon accent",title:"Zobrazit fakturu","aria-label":"Zobrazit fakturu",children:e.jsxs("svg",{width:"18",height:"18",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("text",{x:"12",y:"16.5",textAnchor:"middle",fill:"currentColor",stroke:"none",fontSize:"9",fontWeight:"700",children:"F"})]})}):d("invoices.create")&&e.jsx(i,{to:`/invoices/new?fromOrder=${s.id}`,className:"admin-btn-icon",title:"Vytvořit fakturu","aria-label":"Vytvořit fakturu",children:e.jsxs("svg",{width:"18",height:"18",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("line",{x1:"12",y1:"11",x2:"12",y2:"17"}),e.jsx("line",{x1:"9",y1:"14",x2:"15",y2:"14"})]})}),d("orders.delete")&&e.jsx("button",{onClick:()=>m({show:!0,order:s}),className:"admin-btn-icon danger",title:"Smazat",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"})]})})]})})]},s.id))})]})}),e.jsx(V,{pagination:x,onPageChange:u})]})}),e.jsx(L,{isOpen:t.show,onClose:()=>{m({show:!1,order:null}),h(!1)},onConfirm:C,title:"Smazat objednávku",message:e.jsxs(e.Fragment,{children:['Opravdu chcete smazat objednávku "',t.order?.order_number,'"? Bude smazán i přidružený projekt. Tato akce je nevratná.',e.jsxs("label",{className:"admin-form-checkbox",style:{marginTop:"1rem",display:"flex"},children:[e.jsx("input",{type:"checkbox",checked:y,onChange:s=>h(s.target.checked)}),e.jsx("span",{children:"Smazat i soubory projektu na disku"})]})]}),confirmText:"Smazat",cancelText:"Zrušit",type:"danger",loading:w})]})}export{K as default};