krona-front/dist/assets/OperationsModule-DU0oT0Rt.js

1 line
No EOL
83 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

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{f as e,h as t,i as n,l as r,r as i,s as a,t as o}from"./useToast-CS8pZhce.js";import{t as s}from"./building-BdUpGLM5.js";import{t as c}from"./dollar-sign-Bf6JneNn.js";import{t as l}from"./phone-DpnQw4if.js";import{t as u}from"./truck-D5o8mTsH.js";import{t as d}from"./user-CuEEaB8a.js";import{t as f}from"./utensils-BhILG_B7.js";import{B as p,G as m,H as h,I as g,K as _,L as v,O as y,S as b,U as x,a as S,b as C,ct as w,dt as T,i as E,k as D,m as ee,o as te,r as O,t as k,u as A,ut as j,w as M,y as N,z as P}from"./index-CT8iDYYK.js";import{t as F}from"./formatters-WvGQLZg0.js";import{c as I,t as L}from"./mockData-DAqQG5te.js";import{InventoryModule as ne}from"./InventoryModule-DWliKRH1.js";import{SalesModule as re}from"./SalesModule-DAKBTXjF.js";var ie={name:`banknote`,size:24,node:[[`rect`,{width:`20`,height:`12`,x:`2`,y:`6`,rx:`2`,key:`9lu3g6`}],[`circle`,{cx:`12`,cy:`12`,r:`2`,key:`1c9p78`}],[`path`,{d:`M6 12h.01M18 12h.01`,key:`113zkx`}]]};ie.node;var ae=r(ie),R={name:`chef-hat`,size:24,node:[[`path`,{d:`M17 21a1 1 0 0 0 1-1v-5.35c0-.457.316-.844.727-1.041a4 4 0 0 0-2.134-7.589 5 5 0 0 0-9.186 0 4 4 0 0 0-2.134 7.588c.411.198.727.585.727 1.041V20a1 1 0 0 0 1 1Z`,key:`1qvrer`}],[`path`,{d:`M6 17h12`,key:`1jwigz`}]]};R.node;var z=r(R),B={name:`flame`,size:24,node:[[`path`,{d:`M12 3q1 4 4 6.5t3 5.5a1 1 0 0 1-14 0 5 5 0 0 1 1-3 1 1 0 0 0 5 0c0-2-1.5-3-1.5-5q0-2 2.5-4`,key:`1slcih`}]]};B.node;var V=r(B),H={name:`printer`,size:24,node:[[`path`,{d:`M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2`,key:`143wyd`}],[`path`,{d:`M6 9V3a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v6`,key:`1itne7`}],[`rect`,{x:`6`,y:`14`,width:`12`,height:`8`,rx:`1`,key:`1ue0tg`}]]};H.node;var oe=r(H),U={name:`qr-code`,size:24,node:[[`rect`,{width:`5`,height:`5`,x:`3`,y:`3`,rx:`1`,key:`1tu5fj`}],[`rect`,{width:`5`,height:`5`,x:`16`,y:`3`,rx:`1`,key:`1v8r4q`}],[`rect`,{width:`5`,height:`5`,x:`3`,y:`16`,rx:`1`,key:`1x03jg`}],[`path`,{d:`M21 16h-3a2 2 0 0 0-2 2v3`,key:`177gqh`}],[`path`,{d:`M21 21v.01`,key:`ents32`}],[`path`,{d:`M12 7v3a2 2 0 0 1-2 2H7`,key:`8crl2c`}],[`path`,{d:`M3 12h.01`,key:`nlz23k`}],[`path`,{d:`M12 3h.01`,key:`n36tog`}],[`path`,{d:`M12 16v.01`,key:`133mhm`}],[`path`,{d:`M16 12h1`,key:`1slzba`}],[`path`,{d:`M21 12v.01`,key:`1lwtk9`}],[`path`,{d:`M12 21v-1`,key:`1880an`}]]};U.node;var se=r(U),W={name:`volume-2`,size:24,node:[[`path`,{d:`M11 4.702a.705.705 0 0 0-1.203-.498L6.413 7.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298z`,key:`uqj9uw`}],[`path`,{d:`M16 9a5 5 0 0 1 0 6`,key:`1q6k2b`}],[`path`,{d:`M19.364 18.364a9 9 0 0 0 0-12.728`,key:`ijwkga`}]]};W.node;var G=r(W),K={name:`volume-x`,size:24,node:[[`path`,{d:`M11 4.702a.7.7 0 0 0-1.203-.498L6.413 7.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.7.7 0 0 0 11 19.298z`,key:`1p7khw`}],[`path`,{d:`m16.5 14.5 5-5`,key:`cul3yw`}],[`path`,{d:`m16.5 9.5 5 5`,key:`1akey5`}]]};K.node;var q=r(K),J=t(e(),1),Y=a(),ce=[{name:`Александр Романов`,phone:`+7 (913) 900-11-22`,tag:`VIP • Скидка 10%`},{name:`Елена Морозова`,phone:`+7 (923) 456-78-90`,tag:`Постоянный гость`},{name:`Михаил Васильев`,phone:`+7 (905) 111-22-33`,tag:`Бонусная карта 5%`},{name:`ООО Альфа Консалт`,phone:`+7 (383) 200-40-50`,tag:`B2B безнал`}],le=()=>{let{showToast:e}=o(),{posCart:t,addToCart:r,removeFromCart:a,updateCartQuantity:s,clearCart:c,posDiscountPercent:l,setPosDiscount:u,posCustomerName:f,setPosCustomer:m,posOrderType:_,setPosOrderType:v,posTableNumber:x,setPosTableNumber:S,posPaymentModalOpen:C,setPosPaymentModalOpen:T,posLastReceipt:E,completeCheckout:D,getActiveProfile:ee,activeLocation:te}=w(),j=ee(),[I,ne]=(0,J.useState)(`Все`),[re,ie]=(0,J.useState)(``),[R,z]=(0,J.useState)(!1),[B,V]=(0,J.useState)(!1),[H,U]=(0,J.useState)(!1),[W,G]=(0,J.useState)(0),[K,q]=(0,J.useState)(0),le=[`Все`,`Роллы`,`Горячее`,`Супы`,`Автоуслуги`,`Автосервис`],ue=L.filter(e=>{let t=I===`Все`||e.category===I,n=e.name.toLowerCase().includes(re.toLowerCase());return t&&n}),X=t.reduce((e,t)=>e+t.price*t.quantity,0),de=X*l/100,Z=Math.max(0,X-de),fe=()=>{t.length!==0&&(U(!1),T(!0))},pe=()=>{let e=Math.round(Z/2);G(e),q(Z-e),U(!0)},me=()=>{W+K===Z&&(T(!1),U(!1),D(`split`),z(!0))},Q=e=>{if(e===`split`){pe();return}T(!1),D(e),z(!0)},he=()=>{e({title:`Печать фискального чека`,message:`Чек ${E?.orderNumber||``} отправлен на кассовый регистратор (Атол 54-Ф)`,type:`success`})},$=Z-(W+K);return(0,Y.jsxs)(`div`,{className:`h-[calc(100vh-8.5rem)] flex flex-col md:flex-row gap-4 animate-fade-in overflow-hidden`,children:[(0,Y.jsxs)(`div`,{className:`flex-1 flex flex-col min-w-0 bg-krona-surface border border-krona-border rounded-xl shadow-krona-soft overflow-hidden`,children:[(0,Y.jsxs)(`div`,{className:`p-3 border-b border-krona-border flex flex-wrap items-center justify-between gap-3 bg-krona-surface/70`,children:[(0,Y.jsx)(`div`,{className:`flex items-center gap-1.5 overflow-x-auto`,children:le.map(e=>(0,Y.jsx)(`button`,{onClick:()=>ne(e),className:`px-3 py-1.5 rounded-lg text-xs font-medium transition-colors ${I===e?`bg-[#2F684C] text-[#F8F6F0] shadow-sm`:`bg-krona-workspace text-krona-secondary hover:text-krona-primary border border-krona-border`}`,children:e},e))}),(0,Y.jsxs)(`div`,{className:`relative w-56`,children:[(0,Y.jsx)(N,{className:`w-3.5 h-3.5 absolute left-2.5 top-2.5 text-krona-secondary`}),(0,Y.jsx)(`input`,{type:`text`,value:re,onChange:e=>ie(e.target.value),placeholder:`Поиск по названию...`,className:`w-full pl-8 pr-3 py-1.5 text-xs bg-krona-workspace border border-krona-border rounded-lg text-krona-primary placeholder:text-krona-secondary focus:outline-none focus:border-krona-green`})]})]}),(0,Y.jsx)(`div`,{className:`flex-1 overflow-y-auto p-4 grid grid-cols-2 sm:grid-cols-3 xl:grid-cols-4 gap-3`,children:ue.map(e=>{let n=t.find(t=>t.id===e.id),a=e.isStopListed;return(0,Y.jsxs)(`div`,{onClick:()=>!a&&r(e),className:`group relative p-3.5 rounded-xl border flex flex-col justify-between transition-all select-none ${a?`opacity-50 border-krona-danger/40 bg-krona-danger/5 cursor-not-allowed`:`cursor-pointer border-krona-border bg-krona-surface hover:border-krona-green/60 hover:shadow-krona-soft active:scale-[0.99]`} ${n?`ring-2 ring-krona-green/40`:``}`,children:[(0,Y.jsxs)(`div`,{children:[(0,Y.jsxs)(`div`,{className:`flex items-center justify-between gap-1 mb-1.5`,children:[(0,Y.jsx)(`span`,{className:`text-[10px] text-krona-secondary uppercase font-semibold`,children:e.category}),a?(0,Y.jsx)(i,{variant:`danger`,size:`sm`,children:`Стоп-лист`}):n?(0,Y.jsxs)(i,{variant:`green`,size:`sm`,children:[n.quantity,` в чеке`]}):null]}),(0,Y.jsx)(`h4`,{className:`text-xs font-bold text-krona-primary leading-snug line-clamp-2`,children:e.name}),e.description&&(0,Y.jsx)(`p`,{className:`text-[11px] text-krona-secondary line-clamp-2 mt-1`,children:e.description})]}),(0,Y.jsxs)(`div`,{className:`mt-3 pt-2.5 border-t border-krona-border/40 flex items-baseline justify-between`,children:[(0,Y.jsx)(`span`,{className:`text-sm font-bold text-krona-primary`,children:F(e.price)}),(0,Y.jsxs)(`span`,{className:`text-[10px] text-krona-secondary`,children:[`Себест: `,e.cost,` ₽ (`,e.marginPercent,`%)`]})]})]},e.id)})})]}),(0,Y.jsxs)(`div`,{className:`w-full md:w-80 lg:w-96 flex flex-col bg-krona-surface border border-krona-border rounded-xl shadow-krona-soft overflow-hidden`,children:[(0,Y.jsxs)(`div`,{className:`p-3 border-b border-krona-border bg-krona-surface/80 space-y-2`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Y.jsx)(`span`,{className:`text-xs font-bold text-krona-primary uppercase tracking-wider`,children:`Текущий чек`}),(0,Y.jsx)(k,{level:`target`,size:`sm`})]}),(0,Y.jsx)(`span`,{className:`text-xs text-krona-secondary`,children:te})]}),(0,Y.jsxs)(`div`,{className:`grid grid-cols-3 gap-1 bg-krona-workspace p-1 rounded-lg border border-krona-border text-xs`,children:[(0,Y.jsx)(`button`,{onClick:()=>v(`hall`),className:`py-1 rounded font-medium transition-colors ${_===`hall`?`bg-[#2F684C] text-white shadow-sm`:`text-krona-secondary`}`,children:`В зале`}),(0,Y.jsx)(`button`,{onClick:()=>v(`takeaway`),className:`py-1 rounded font-medium transition-colors ${_===`takeaway`?`bg-[#2F684C] text-white shadow-sm`:`text-krona-secondary`}`,children:`Навынос`}),(0,Y.jsx)(`button`,{onClick:()=>v(`delivery`),className:`py-1 rounded font-medium transition-colors ${_===`delivery`?`bg-[#2F684C] text-white shadow-sm`:`text-krona-secondary`}`,children:`Доставка`})]}),(0,Y.jsxs)(`div`,{className:`relative`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Y.jsxs)(`div`,{className:`flex-1 flex items-center gap-1.5 px-2.5 py-1 bg-krona-workspace border border-krona-border rounded-md text-xs`,children:[(0,Y.jsx)(d,{className:`w-3.5 h-3.5 text-krona-secondary`}),(0,Y.jsx)(`input`,{type:`text`,value:f,onChange:e=>m(e.target.value),placeholder:`Клиент / Выбрать...`,className:`w-full bg-transparent focus:outline-none text-xs text-krona-primary`}),(0,Y.jsx)(`button`,{type:`button`,onClick:()=>V(!B),className:`text-krona-secondary hover:text-krona-primary`,title:`Выбрать из справочника`,children:(0,Y.jsx)(h,{className:`w-3.5 h-3.5`})})]}),_===`hall`&&(0,Y.jsx)(`div`,{className:`w-24`,children:(0,Y.jsx)(`input`,{type:`text`,value:x,onChange:e=>S(e.target.value),placeholder:`Стол...`,className:`w-full px-2 py-1 bg-krona-workspace border border-krona-border rounded-md text-xs text-krona-primary text-center font-medium focus:outline-none`})})]}),B&&(0,Y.jsxs)(`div`,{className:`absolute left-0 right-0 top-full mt-1 bg-krona-surface border border-krona-border rounded-xl shadow-lg z-20 p-2 space-y-1 text-xs`,children:[(0,Y.jsx)(`div`,{className:`text-[10px] font-bold text-krona-secondary px-2 py-1 uppercase`,children:`Быстрый выбор клиента CRM`}),ce.map((e,t)=>(0,Y.jsxs)(`button`,{type:`button`,onClick:()=>{m(e.name),V(!1),e.tag.includes(`10%`)?u(10):e.tag.includes(`5%`)&&u(5)},className:`w-full text-left p-2 rounded-lg hover:bg-krona-workspace flex items-center justify-between text-xs transition-colors`,children:[(0,Y.jsxs)(`div`,{children:[(0,Y.jsx)(`div`,{className:`font-semibold text-krona-primary`,children:e.name}),(0,Y.jsx)(`div`,{className:`text-[10px] text-krona-secondary`,children:e.phone})]}),(0,Y.jsx)(i,{variant:`gold`,size:`sm`,children:e.tag})]},t)),(0,Y.jsx)(`div`,{className:`pt-1 border-t border-krona-border/50 text-center`,children:(0,Y.jsx)(`button`,{type:`button`,onClick:()=>V(!1),className:`text-[11px] text-krona-secondary hover:text-krona-primary`,children:`Закрыть список`})})]})]})]}),(0,Y.jsx)(`div`,{className:`flex-1 overflow-y-auto p-3 divide-y divide-krona-border/40`,children:t.length===0?(0,Y.jsxs)(`div`,{className:`py-16 text-center text-xs text-krona-secondary`,children:[(0,Y.jsx)(b,{className:`w-8 h-8 mx-auto mb-2 opacity-30`}),`Чек пуст. Добавьте позиции из каталога слева.`]}):t.map(e=>(0,Y.jsxs)(`div`,{className:`py-2.5 first:pt-0 last:pb-0 flex items-center justify-between gap-2 text-xs`,children:[(0,Y.jsxs)(`div`,{className:`flex-1 min-w-0`,children:[(0,Y.jsx)(`div`,{className:`font-semibold text-krona-primary truncate`,children:e.name}),(0,Y.jsxs)(`div`,{className:`text-[11px] text-krona-secondary`,children:[F(e.price),` × `,e.quantity,` = `,F(e.price*e.quantity)]})]}),(0,Y.jsxs)(`div`,{className:`flex items-center gap-1 shrink-0`,children:[(0,Y.jsx)(`button`,{onClick:()=>s(e.id,-1),className:`w-6 h-6 rounded bg-krona-workspace border border-krona-border flex items-center justify-center hover:bg-krona-border/50 text-krona-primary`,"aria-label":`Уменьшить количество ${e.name}`,children:(0,Y.jsx)(y,{className:`w-3 h-3`})}),(0,Y.jsx)(`span`,{className:`w-6 text-center font-semibold text-xs text-krona-primary`,children:e.quantity}),(0,Y.jsx)(`button`,{onClick:()=>s(e.id,1),className:`w-6 h-6 rounded bg-krona-workspace border border-krona-border flex items-center justify-center hover:bg-krona-border/50 text-krona-primary`,"aria-label":`Увеличить количество ${e.name}`,children:(0,Y.jsx)(M,{className:`w-3 h-3`})}),(0,Y.jsx)(`button`,{onClick:()=>a(e.id),className:`p-1 text-krona-secondary hover:text-krona-danger ml-1`,"aria-label":`Удалить ${e.name} из чека`,children:(0,Y.jsx)(A,{className:`w-3.5 h-3.5`})})]})]},e.id))}),(0,Y.jsxs)(`div`,{className:`p-3.5 border-t border-krona-border bg-krona-surface/80 space-y-2 text-xs`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center justify-between gap-1 text-[11px]`,children:[(0,Y.jsx)(`span`,{className:`text-krona-secondary`,children:`Скидка:`}),(0,Y.jsx)(`div`,{className:`flex items-center gap-1`,children:[0,5,10,15,20].map(e=>(0,Y.jsxs)(`button`,{onClick:()=>u(e),className:`px-2 py-0.5 rounded border transition-colors ${l===e?`bg-krona-gold text-white font-bold border-krona-gold`:`bg-krona-workspace border-krona-border text-krona-secondary`}`,children:[e,`%`]},e))})]}),(0,Y.jsxs)(`div`,{className:`space-y-1 pt-1`,children:[(0,Y.jsxs)(`div`,{className:`flex justify-between text-krona-secondary`,children:[(0,Y.jsx)(`span`,{children:`Сумма позиций:`}),(0,Y.jsx)(`span`,{children:F(X)})]}),l>0&&(0,Y.jsxs)(`div`,{className:`flex justify-between text-krona-danger`,children:[(0,Y.jsxs)(`span`,{children:[`Скидка (`,l,`%):`]}),(0,Y.jsxs)(`span`,{children:[`-`,F(de)]})]}),(0,Y.jsxs)(`div`,{className:`flex justify-between text-base font-bold text-krona-primary pt-1 border-t border-krona-border`,children:[(0,Y.jsx)(`span`,{children:`К оплате:`}),(0,Y.jsx)(`span`,{className:`text-krona-green`,children:F(Z)})]})]}),(0,Y.jsxs)(`div`,{className:`pt-2 flex gap-2`,children:[(0,Y.jsx)(n,{variant:`secondary`,size:`md`,onClick:c,disabled:t.length===0,className:`px-3`,title:`Очистить чек`,children:`Сброс`}),(0,Y.jsxs)(n,{variant:`primary`,size:`md`,onClick:fe,disabled:t.length===0,className:`flex-1 text-sm font-semibold`,children:[`Оплатить `,F(Z)]})]})]})]}),(0,Y.jsx)(O,{isOpen:C,onClose:()=>{T(!1),U(!1)},title:H?`Смешанная оплата (Наличные + Карта)`:`Оплата заказа`,subtitle:`Сумма к оплате: ${F(Z)}`,maxWidth:`md`,children:H?(0,Y.jsxs)(`div`,{className:`space-y-4 text-xs`,children:[(0,Y.jsxs)(`div`,{className:`bg-krona-workspace p-3 rounded-lg border border-krona-border space-y-2`,children:[(0,Y.jsxs)(`div`,{className:`flex justify-between font-bold text-krona-primary`,children:[(0,Y.jsx)(`span`,{children:`Общая сумма к оплате:`}),(0,Y.jsx)(`span`,{children:F(Z)})]}),(0,Y.jsx)(`p`,{className:`text-[11px] text-krona-secondary`,children:`Распределите сумму между наличным расчетом и банковской картой:`})]}),(0,Y.jsxs)(`div`,{className:`grid grid-cols-2 gap-3`,children:[(0,Y.jsxs)(`div`,{className:`space-y-1`,children:[(0,Y.jsxs)(`label`,{className:`text-[11px] font-semibold text-krona-secondary flex items-center gap-1`,children:[(0,Y.jsx)(ae,{className:`w-3.5 h-3.5 text-krona-green`}),` Сумма наличными (₽):`]}),(0,Y.jsx)(`input`,{type:`number`,min:0,max:Z,value:W,onChange:e=>{let t=Math.max(0,Number(e.target.value));G(t),q(Math.max(0,Z-t))},className:`w-full p-2 bg-krona-surface border border-krona-border rounded-lg font-mono font-bold text-sm text-krona-primary focus:outline-none focus:border-krona-green`})]}),(0,Y.jsxs)(`div`,{className:`space-y-1`,children:[(0,Y.jsxs)(`label`,{className:`text-[11px] font-semibold text-krona-secondary flex items-center gap-1`,children:[(0,Y.jsx)(g,{className:`w-3.5 h-3.5 text-sky-600`}),` Сумма картой (₽):`]}),(0,Y.jsx)(`input`,{type:`number`,min:0,max:Z,value:K,onChange:e=>{let t=Math.max(0,Number(e.target.value));q(t),G(Math.max(0,Z-t))},className:`w-full p-2 bg-krona-surface border border-krona-border rounded-lg font-mono font-bold text-sm text-krona-primary focus:outline-none focus:border-krona-green`})]})]}),(0,Y.jsxs)(`div`,{className:`p-2.5 rounded-lg border flex items-center justify-between ${$===0?`bg-emerald-500/10 border-emerald-500/30 text-emerald-700 dark:text-emerald-300`:`bg-rose-500/10 border-rose-500/30 text-rose-700 dark:text-rose-300`}`,children:[(0,Y.jsx)(`div`,{className:`flex items-center gap-1.5 font-medium`,children:$===0?(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(P,{className:`w-4 h-4 text-emerald-600`}),(0,Y.jsx)(`span`,{children:`Сумма распределена верно (100%)`})]}):(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(p,{className:`w-4 h-4 text-rose-600`}),(0,Y.jsx)(`span`,{children:$>0?`Не распределено: ${F($)}`:`Переплата: ${F(Math.abs($))}`})]})}),(0,Y.jsxs)(`span`,{className:`font-mono font-bold`,children:[F(W+K),` / `,F(Z)]})]}),(0,Y.jsxs)(`div`,{className:`flex gap-2 pt-2 border-t border-krona-border`,children:[(0,Y.jsx)(n,{variant:`secondary`,size:`md`,onClick:()=>U(!1),className:`w-1/3`,children:`Назад`}),(0,Y.jsx)(n,{variant:`primary`,size:`md`,onClick:me,disabled:$!==0,className:`flex-1`,children:`Подтвердить раздельную оплату`})]})]}):(0,Y.jsxs)(`div`,{className:`space-y-3`,children:[(0,Y.jsxs)(`p`,{className:`text-xs text-krona-secondary`,children:[`Выберите способ расчета клиента на кассе точки «`,te,`»:`]}),(0,Y.jsxs)(`div`,{className:`grid grid-cols-2 gap-3 pt-1`,children:[(0,Y.jsxs)(`button`,{onClick:()=>Q(`card`),className:`p-4 rounded-xl border border-krona-border hover:border-krona-green hover:bg-krona-green/5 text-left flex flex-col items-center justify-center gap-2 group transition-all`,children:[(0,Y.jsx)(g,{className:`w-8 h-8 text-krona-green group-hover:scale-110 transition-transform`}),(0,Y.jsx)(`div`,{className:`text-xs font-bold text-krona-primary`,children:`Банковская карта`}),(0,Y.jsx)(`div`,{className:`text-[10px] text-krona-secondary`,children:`Терминал эквайринга`})]}),(0,Y.jsxs)(`button`,{onClick:()=>Q(`cash`),className:`p-4 rounded-xl border border-krona-border hover:border-krona-green hover:bg-krona-green/5 text-left flex flex-col items-center justify-center gap-2 group transition-all`,children:[(0,Y.jsx)(ae,{className:`w-8 h-8 text-krona-green group-hover:scale-110 transition-transform`}),(0,Y.jsx)(`div`,{className:`text-xs font-bold text-krona-primary`,children:`Наличные`}),(0,Y.jsx)(`div`,{className:`text-[10px] text-krona-secondary`,children:`С выдачей сдачи`})]}),(0,Y.jsxs)(`button`,{onClick:()=>Q(`qr`),className:`p-4 rounded-xl border border-krona-border hover:border-krona-green hover:bg-krona-green/5 text-left flex flex-col items-center justify-center gap-2 group transition-all`,children:[(0,Y.jsx)(se,{className:`w-8 h-8 text-krona-gold group-hover:scale-110 transition-transform`}),(0,Y.jsx)(`div`,{className:`text-xs font-bold text-krona-primary`,children:`СБП / QR-код`}),(0,Y.jsx)(`div`,{className:`text-[10px] text-krona-secondary`,children:`Мгновенное зачисление`})]}),(0,Y.jsxs)(`button`,{onClick:()=>Q(`split`),className:`p-4 rounded-xl border border-krona-border hover:border-krona-green hover:bg-krona-green/5 text-left flex flex-col items-center justify-center gap-2 group transition-all`,children:[(0,Y.jsx)(b,{className:`w-8 h-8 text-krona-secondary group-hover:scale-110 transition-transform`}),(0,Y.jsx)(`div`,{className:`text-xs font-bold text-krona-primary`,children:`Смешанная оплата`}),(0,Y.jsx)(`div`,{className:`text-[10px] text-krona-secondary`,children:`Часть нал + часть карта`})]})]})]})}),R&&E&&(0,Y.jsx)(O,{isOpen:R,onClose:()=>z(!1),title:`Чек успешно пробит!`,subtitle:`Заказ ${E.orderNumber} • ${E.timestamp}`,maxWidth:`sm`,footer:(0,Y.jsxs)(`div`,{className:`flex gap-2 w-full`,children:[(0,Y.jsxs)(n,{variant:`secondary`,onClick:he,className:`flex-1 flex items-center justify-center gap-1.5`,children:[(0,Y.jsx)(oe,{className:`w-4 h-4`}),`Распечатать чек`]}),(0,Y.jsx)(n,{variant:`primary`,onClick:()=>z(!1),className:`flex-1`,children:`Новый заказ`})]}),children:(0,Y.jsxs)(`div`,{className:`font-mono text-xs bg-krona-workspace p-3.5 rounded-lg border border-krona-border space-y-2`,children:[(0,Y.jsxs)(`div`,{className:`text-center font-bold pb-1 border-b border-dashed border-krona-border`,children:[j.companyName,(0,Y.jsx)(`div`,{className:`text-[10px] font-normal text-krona-secondary`,children:E.location}),(0,Y.jsx)(`div`,{className:`text-[10px] text-krona-secondary font-normal`,children:`Касса №1 • Смена открыта`})]}),(0,Y.jsx)(`div`,{className:`space-y-1 py-1`,children:E.items.map((e,t)=>(0,Y.jsxs)(`div`,{className:`flex justify-between`,children:[(0,Y.jsxs)(`span`,{children:[e.name,` × `,e.quantity]}),(0,Y.jsx)(`span`,{children:F(e.price*e.quantity)})]},t))}),(0,Y.jsxs)(`div`,{className:`pt-2 border-t border-dashed border-krona-border space-y-1`,children:[(0,Y.jsxs)(`div`,{className:`flex justify-between`,children:[(0,Y.jsx)(`span`,{children:`Сумма:`}),(0,Y.jsx)(`span`,{children:F(E.subtotal)})]}),E.discount>0&&(0,Y.jsxs)(`div`,{className:`flex justify-between text-krona-danger`,children:[(0,Y.jsx)(`span`,{children:`Скидка:`}),(0,Y.jsxs)(`span`,{children:[`-`,F(E.discount)]})]}),(0,Y.jsxs)(`div`,{className:`flex justify-between font-bold text-sm pt-1 border-t border-dotted border-krona-border`,children:[(0,Y.jsx)(`span`,{children:`ИТОГ К ОПЛАТЕ:`}),(0,Y.jsx)(`span`,{children:F(E.total)})]}),(0,Y.jsxs)(`div`,{className:`flex justify-between text-[11px] text-krona-secondary`,children:[(0,Y.jsx)(`span`,{children:`Способ оплаты:`}),(0,Y.jsx)(`span`,{className:`uppercase font-semibold`,children:E.paymentType})]}),E.customer&&(0,Y.jsxs)(`div`,{className:`flex justify-between text-[11px] text-krona-secondary`,children:[(0,Y.jsx)(`span`,{children:`Клиент:`}),(0,Y.jsx)(`span`,{children:E.customer})]}),(0,Y.jsxs)(`div`,{className:`flex justify-between text-[10px] text-krona-secondary pt-1`,children:[(0,Y.jsx)(`span`,{children:`ФП (фискальный признак):`}),(0,Y.jsx)(`span`,{children:`ФП: 49204910283`})]}),(0,Y.jsx)(`div`,{className:`flex justify-between text-[10px] text-krona-secondary`,children:(0,Y.jsx)(`span`,{children:`ФН: 996044030198 • РН ККТ: 00049281001`})})]}),(0,Y.jsxs)(`div`,{className:`pt-2 text-center text-[10px] text-krona-secondary border-t border-dashed border-krona-border`,children:[`Спасибо за заказ в «`,j.companyName,`»!`]})]})})]})},ue=()=>{let{kdsTickets:e,updateKdsTicketStatus:t}=w(),{showToast:r}=o(),[a,s]=(0,J.useState)(!0),[c,l]=(0,J.useState)(`Все цеха`),[u,d]=(0,J.useState)(0);(0,J.useEffect)(()=>{let e=setInterval(()=>{d(e=>e+1)},1e3);return()=>clearInterval(e)},[]);let f=()=>{let e=!a;s(e),r({title:e?`Звуковые оповещения включены`:`Звук отключен`,message:e?`Звуковой сигнал будет воспроизводиться при поступлении нового заказа`:`Уведомления без звука`,type:`info`})},p=[`Все цеха`,`Суши-цех`,`Кухня`,`Горячий цех`],m=e.filter(e=>c===`Все цеха`||e.items.some(e=>e.station===c)),h=m.filter(e=>e.status===`new`),g=m.filter(e=>e.status===`cooking`),_=m.filter(e=>e.status===`ready`),y=e=>{let r=e.elapsedMinutes+Math.floor(u/60),a=r>20,o=r>10&&r<=20;return(0,Y.jsxs)(`div`,{className:`p-3.5 rounded-xl border flex flex-col justify-between transition-all shadow-krona-soft bg-krona-surface ${e.isUrgent?`border-rose-500/80 bg-rose-500/5 ring-1 ring-rose-500/40 animate-pulse`:a?`border-rose-500/70 bg-rose-500/5`:o?`border-amber-500/70`:`border-krona-border`}`,children:[(0,Y.jsxs)(`div`,{children:[(0,Y.jsxs)(`div`,{className:`flex items-center justify-between pb-2 border-b border-krona-border/60`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-1.5`,children:[(0,Y.jsx)(`span`,{className:`font-bold text-sm text-krona-primary`,children:e.orderNumber}),(0,Y.jsx)(i,{variant:`neutral`,size:`sm`,children:e.tableOrChannel}),e.isUrgent&&(0,Y.jsx)(i,{variant:`danger`,size:`sm`,children:`Срочно`})]}),(0,Y.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,Y.jsx)(v,{className:`w-3.5 h-3.5 ${a?`text-rose-600`:o?`text-amber-600`:`text-krona-secondary`}`}),(0,Y.jsxs)(`span`,{className:`text-xs font-mono font-bold ${a?`text-rose-600`:o?`text-amber-600`:`text-krona-secondary`}`,children:[r,` мин`]})]})]}),(0,Y.jsx)(`div`,{className:`py-2.5 space-y-2 text-xs`,children:e.items.map((e,t)=>(0,Y.jsxs)(`div`,{className:`flex items-start justify-between gap-2`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-1.5 font-medium text-krona-primary`,children:[(0,Y.jsx)(`span`,{className:`w-5 h-5 rounded bg-krona-workspace border border-krona-border flex items-center justify-center font-bold text-xs`,children:e.quantity}),(0,Y.jsx)(`span`,{children:e.name})]}),(0,Y.jsx)(`span`,{className:`text-[10px] px-1.5 py-0.5 rounded bg-krona-muted text-krona-secondary`,children:e.station})]},t))})]}),(0,Y.jsxs)(`div`,{className:`pt-2.5 border-t border-krona-border/60 flex items-center justify-between gap-2`,children:[e.status===`new`&&(0,Y.jsxs)(n,{variant:`gold`,size:`sm`,className:`w-full text-xs`,onClick:()=>t(e.id,`cooking`),children:[(0,Y.jsx)(V,{className:`w-3.5 h-3.5 mr-1.5`}),`В работу (Начать готовить)`]}),e.status===`cooking`&&(0,Y.jsxs)(`div`,{className:`flex items-center gap-1.5 w-full`,children:[(0,Y.jsx)(n,{variant:`secondary`,size:`sm`,className:`px-2`,title:`Вернуть в новые`,onClick:()=>t(e.id,`new`),children:(0,Y.jsx)(C,{className:`w-3 h-3 text-krona-secondary`})}),(0,Y.jsxs)(n,{variant:`primary`,size:`sm`,className:`flex-1 text-xs`,onClick:()=>t(e.id,`ready`),children:[(0,Y.jsx)(x,{className:`w-3.5 h-3.5 mr-1.5`}),`Готово к выдаче`]})]}),e.status===`ready`&&(0,Y.jsxs)(`div`,{className:`flex items-center gap-1.5 w-full`,children:[(0,Y.jsx)(n,{variant:`secondary`,size:`sm`,className:`px-2`,title:`Вернуть в готовку`,onClick:()=>t(e.id,`cooking`),children:(0,Y.jsx)(C,{className:`w-3 h-3 text-krona-secondary`})}),(0,Y.jsxs)(n,{variant:`secondary`,size:`sm`,className:`flex-1 text-xs hover:bg-emerald-500/10 hover:border-emerald-500/50`,onClick:()=>t(e.id,`served`),children:[(0,Y.jsx)(P,{className:`w-3.5 h-3.5 mr-1.5 text-emerald-600`}),`Выдано гостю / курьеру`]})]})]})]},e.id)};return(0,Y.jsxs)(`div`,{className:`space-y-4 animate-fade-in`,children:[(0,Y.jsxs)(`div`,{className:`flex flex-col sm:flex-row sm:items-center justify-between gap-3 bg-krona-surface p-3.5 rounded-xl border border-krona-border shadow-krona-soft`,children:[(0,Y.jsxs)(`div`,{children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Y.jsx)(`h2`,{className:`text-sm font-bold text-krona-primary`,children:`Кухонный монитор заказов & Экран цехов (KDS)`}),(0,Y.jsx)(k,{level:`target`,size:`sm`})]}),(0,Y.jsx)(`p`,{className:`text-xs text-krona-secondary mt-0.5`,children:`Управление очередью приготовления блюд по станциям в реальном времени с таймерами готовки`})]}),(0,Y.jsxs)(`div`,{className:`flex items-center gap-2 text-xs flex-wrap`,children:[(0,Y.jsx)(`div`,{className:`flex items-center gap-1 bg-krona-workspace p-1 rounded-lg border border-krona-border`,children:p.map(e=>(0,Y.jsx)(`button`,{onClick:()=>l(e),className:`px-2.5 py-1 rounded text-xs font-medium transition-colors ${c===e?`bg-[#2F684C] text-white shadow-sm`:`text-krona-secondary hover:text-krona-primary`}`,children:e},e))}),(0,Y.jsx)(n,{variant:`secondary`,size:`sm`,onClick:f,title:a?`Звук включен`:`Звук выключен`,className:`px-2.5`,children:a?(0,Y.jsx)(G,{className:`w-3.5 h-3.5 text-emerald-600`}):(0,Y.jsx)(q,{className:`w-3.5 h-3.5 text-krona-secondary`})}),(0,Y.jsxs)(i,{variant:`warning`,size:`md`,children:[`В работе: `,g.length]}),(0,Y.jsxs)(i,{variant:`green`,size:`md`,children:[`Готово: `,_.length]})]})]}),(0,Y.jsxs)(`div`,{className:`grid grid-cols-1 md:grid-cols-3 gap-4`,children:[(0,Y.jsxs)(`div`,{className:`bg-krona-workspace/80 border border-krona-border rounded-xl p-3 flex flex-col min-h-[500px]`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center justify-between pb-2 mb-2 border-b border-krona-border`,children:[(0,Y.jsxs)(`span`,{className:`text-xs font-bold text-krona-primary flex items-center gap-1.5`,children:[(0,Y.jsx)(`span`,{className:`w-2 h-2 rounded-full bg-sky-500`}),`Новые заказы`]}),(0,Y.jsx)(`span`,{className:`text-xs font-mono font-bold text-krona-secondary`,children:h.length})]}),(0,Y.jsx)(`div`,{className:`space-y-3 flex-1 overflow-y-auto`,children:h.length===0?(0,Y.jsx)(`div`,{className:`text-center py-16 text-xs text-krona-secondary`,children:`Нет новых заказов в цехе`}):h.map(y)})]}),(0,Y.jsxs)(`div`,{className:`bg-krona-workspace/80 border border-krona-border rounded-xl p-3 flex flex-col min-h-[500px]`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center justify-between pb-2 mb-2 border-b border-krona-border`,children:[(0,Y.jsxs)(`span`,{className:`text-xs font-bold text-krona-primary flex items-center gap-1.5`,children:[(0,Y.jsx)(`span`,{className:`w-2 h-2 rounded-full bg-amber-500`}),`Готовятся на кухне`]}),(0,Y.jsx)(`span`,{className:`text-xs font-mono font-bold text-krona-secondary`,children:g.length})]}),(0,Y.jsx)(`div`,{className:`space-y-3 flex-1 overflow-y-auto`,children:g.length===0?(0,Y.jsx)(`div`,{className:`text-center py-16 text-xs text-krona-secondary`,children:`Цех свободен`}):g.map(y)})]}),(0,Y.jsxs)(`div`,{className:`bg-krona-workspace/80 border border-krona-border rounded-xl p-3 flex flex-col min-h-[500px]`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center justify-between pb-2 mb-2 border-b border-krona-border`,children:[(0,Y.jsxs)(`span`,{className:`text-xs font-bold text-krona-primary flex items-center gap-1.5`,children:[(0,Y.jsx)(`span`,{className:`w-2 h-2 rounded-full bg-emerald-500`}),`Готовы к выдаче`]}),(0,Y.jsx)(`span`,{className:`text-xs font-mono font-bold text-krona-secondary`,children:_.length})]}),(0,Y.jsx)(`div`,{className:`space-y-3 flex-1 overflow-y-auto`,children:_.length===0?(0,Y.jsx)(`div`,{className:`text-center py-16 text-xs text-krona-secondary`,children:`Нет готовых к выдаче`}):_.map(y)})]})]})]})},X=[{id:`t1`,name:`Стол 1 (VIP)`,zone:`VIP-зона`,capacity:6,status:`occupied`,waiter:`Алина Соколова`,seatedMinutes:45,currentTotal:6850,guestsCount:5,items:[{name:`Филадельфия Премиум`,qty:2,price:950},{name:`Том Ям с морепродуктами`,qty:2,price:680},{name:`Сет Дракон`,qty:1,price:2190},{name:`Морс клюквенный 1л`,qty:2,price:350}]},{id:`t2`,name:`Стол 2`,zone:`Основной зал`,capacity:2,status:`occupied`,waiter:`Артем Васильев`,seatedMinutes:22,currentTotal:2450,guestsCount:2,items:[{name:`Калифорния краб`,qty:2,price:790},{name:`Рамен Тонкоцу`,qty:1,price:590},{name:`Зеленый чай Сентя`,qty:1,price:280}]},{id:`t3`,name:`Стол 3`,zone:`Основной зал`,capacity:4,status:`free`},{id:`t4`,name:`Стол 4 (у окна)`,zone:`Основной зал`,capacity:4,status:`occupied`,waiter:`Алина Соколова`,seatedMinutes:18,currentTotal:4200,guestsCount:3,items:[{name:`Гёдза со свининой`,qty:3,price:420},{name:`Сет Горячая Шестерка`,qty:1,price:2450},{name:`Лимонад Юдзу`,qty:1,price:490}]},{id:`t5`,name:`Стол 5 (диван)`,zone:`Основной зал`,capacity:6,status:`reserved`,reservationTime:`19:00`,reservationClient:`Анна Воронина (3 чел)`},{id:`t6`,name:`Стол 6`,zone:`Основной зал`,capacity:2,status:`free`},{id:`t7`,name:`Стол 7`,zone:`Терраса`,capacity:4,status:`bill_printed`,waiter:`Артем Васильев`,seatedMinutes:62,currentTotal:5100,guestsCount:4,items:[{name:`Сет Филадельфия Мания`,qty:1,price:2890},{name:`Салат Чука с ореховым соусом`,qty:2,price:450},{name:`Чайник Эрл Грей`,qty:1,price:350},{name:`Десерт Моти ассорти`,qty:2,price:480}]},{id:`t8`,name:`Стол 8`,zone:`Терраса`,capacity:4,status:`free`},{id:`bar1`,name:`Барная стойка 1-3`,zone:`Бар`,capacity:3,status:`occupied`,waiter:`Бармен`,seatedMinutes:12,currentTotal:1800,guestsCount:2,items:[{name:`Коктейль Саке Сауэр`,qty:2,price:650},{name:`Эдамаме с морской солью`,qty:1,price:350}]}],de=()=>{let[e,t]=(0,J.useState)(X),[r,a]=(0,J.useState)(null),[s,c]=(0,J.useState)(`Все зоны`),[l,u]=(0,J.useState)(!1),[d,p]=(0,J.useState)(``),[m,h]=(0,J.useState)(`20:00`),[g,y]=(0,J.useState)(2),{setPosTableNumber:b}=w(),{showToast:x}=o(),S=T(),C=[`Все зоны`,`Основной зал`,`VIP-зона`,`Терраса`,`Бар`],E=e.filter(e=>s===`Все зоны`||e.zone===s),D=e=>{b(e.name),S(`/operations/pos`)},ee=e=>{t(t=>t.map(t=>t.id===e?{...t,status:`bill_printed`}:t)),r&&r.id===e&&a({...r,status:`bill_printed`}),x({title:`Пречек напечатан`,message:`Предварительный счет для стола «${r?.name||e}» отправлен на печать`,type:`success`})},A=e=>{t(t=>t.map(t=>t.id===e?{...t,status:`free`,currentTotal:0,guestsCount:void 0,waiter:void 0,seatedMinutes:void 0,items:[]}:t)),a(null),x({title:`Стол освобожден`,message:`Стол готов к приему новых гостей`,type:`info`})},j=e=>{t(t=>t.map(t=>t.id===e?{...t,status:`occupied`,waiter:`Дежурный официант`,seatedMinutes:1,guestsCount:t.capacity,currentTotal:0,items:[]}:t)),r&&r.id===e&&a({...r,status:`occupied`,waiter:`Дежурный официант`,seatedMinutes:1,guestsCount:r.capacity,currentTotal:0,items:[]}),x({title:`Гости рассажены`,message:`Стол ${r?.name||``} переведен в статус «Занят»`,type:`success`})},M=()=>{r&&(t(e=>e.map(e=>e.id===r.id?{...e,status:`reserved`,reservationTime:m,reservationClient:`${d} (${g} чел)`}:e)),u(!1),a(null),x({title:`Бронь подтверждена`,message:`Бронь на время ${m} для ${d} сохранена`,type:`success`}))},N=e=>{switch(e){case`occupied`:return(0,Y.jsx)(i,{variant:`green`,size:`sm`,children:`Занят`});case`reserved`:return(0,Y.jsx)(i,{variant:`gold`,size:`sm`,children:`Бронь`});case`bill_printed`:return(0,Y.jsx)(i,{variant:`warning`,size:`sm`,children:`Пречек`});default:return(0,Y.jsx)(i,{variant:`neutral`,size:`sm`,children:`Свободен`})}},P=e.filter(e=>e.status===`occupied`||e.status===`bill_printed`).length,I=e.filter(e=>e.status===`reserved`).length,L=e.filter(e=>e.status===`free`).length;return(0,Y.jsxs)(`div`,{className:`space-y-4 animate-fade-in`,children:[(0,Y.jsxs)(`div`,{className:`flex flex-col sm:flex-row sm:items-center justify-between gap-3 bg-krona-surface p-3.5 rounded-xl border border-krona-border shadow-krona-soft`,children:[(0,Y.jsxs)(`div`,{children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Y.jsx)(`h2`,{className:`text-sm font-bold text-krona-primary`,children:`Схема залов, столы и обслуживание гостей`}),(0,Y.jsx)(k,{level:`target`,size:`sm`})]}),(0,Y.jsx)(`p`,{className:`text-xs text-krona-secondary mt-0.5`,children:`Интерактивная карта посадочных мест, статусы чеков, пречеки и назначенные официанты`})]}),(0,Y.jsxs)(`div`,{className:`flex items-center gap-2 flex-wrap`,children:[(0,Y.jsx)(`div`,{className:`flex items-center gap-1 bg-krona-workspace p-1 rounded-lg border border-krona-border text-xs`,children:C.map(e=>(0,Y.jsx)(`button`,{onClick:()=>c(e),className:`px-2.5 py-1 rounded font-medium transition-colors ${s===e?`bg-[#2F684C] text-white shadow-sm`:`text-krona-secondary hover:text-krona-primary`}`,children:e},e))}),(0,Y.jsxs)(i,{variant:`green`,size:`md`,children:[`Занято: `,P]}),(0,Y.jsxs)(i,{variant:`gold`,size:`md`,children:[`Бронь: `,I]}),(0,Y.jsxs)(i,{variant:`neutral`,size:`md`,children:[`Свободно: `,L]})]})]}),(0,Y.jsx)(`div`,{className:`grid grid-cols-2 sm:grid-cols-3 lg:grid-cols-4 gap-4`,children:E.map(e=>{let t=e.status===`occupied`||e.status===`bill_printed`;return(0,Y.jsxs)(`div`,{onClick:()=>a(e),className:`p-4 rounded-xl border flex flex-col justify-between transition-all cursor-pointer shadow-krona-soft select-none ${e.status===`occupied`?`border-emerald-500/70 bg-emerald-500/5 hover:border-emerald-500`:e.status===`bill_printed`?`border-amber-500/70 bg-amber-500/5 hover:border-amber-500`:e.status===`reserved`?`border-krona-gold/70 bg-krona-gold/5 hover:border-krona-gold`:`border-krona-border bg-krona-surface hover:border-krona-border-strong`}`,children:[(0,Y.jsxs)(`div`,{children:[(0,Y.jsxs)(`div`,{className:`flex items-center justify-between mb-2`,children:[(0,Y.jsx)(`span`,{className:`font-bold text-sm text-krona-primary`,children:e.name}),N(e.status)]}),(0,Y.jsxs)(`div`,{className:`flex items-center justify-between text-xs text-krona-secondary mb-2`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,Y.jsx)(te,{className:`w-3.5 h-3.5`}),(0,Y.jsxs)(`span`,{children:[`До `,e.capacity,` гостей`]})]}),(0,Y.jsx)(`span`,{className:`text-[10px] bg-krona-workspace px-1.5 py-0.5 rounded border border-krona-border/50`,children:e.zone})]}),t&&(0,Y.jsxs)(`div`,{className:`space-y-1 py-1 text-xs`,children:[(0,Y.jsxs)(`div`,{className:`flex justify-between font-bold text-krona-primary`,children:[(0,Y.jsx)(`span`,{children:`Счет:`}),(0,Y.jsx)(`span`,{children:F(e.currentTotal||0)})]}),(0,Y.jsxs)(`div`,{className:`flex justify-between text-krona-secondary text-[11px]`,children:[(0,Y.jsx)(`span`,{children:`Официант:`}),(0,Y.jsx)(`span`,{className:`truncate`,children:e.waiter})]}),(0,Y.jsxs)(`div`,{className:`flex justify-between text-krona-secondary text-[11px]`,children:[(0,Y.jsx)(`span`,{children:`Время:`}),(0,Y.jsxs)(`span`,{children:[e.seatedMinutes,` мин`]})]})]}),e.status===`reserved`&&(0,Y.jsxs)(`div`,{className:`py-1 text-xs text-krona-gold-text bg-krona-gold/10 p-2 rounded-lg space-y-1`,children:[(0,Y.jsxs)(`div`,{className:`font-semibold flex items-center gap-1`,children:[(0,Y.jsx)(v,{className:`w-3.5 h-3.5`}),` `,e.reservationTime]}),(0,Y.jsx)(`div`,{className:`text-[11px] truncate`,children:e.reservationClient})]}),e.status===`free`&&(0,Y.jsx)(`div`,{className:`py-4 text-center text-xs text-krona-secondary`,children:`Готов к посадке`})]}),(0,Y.jsxs)(`div`,{className:`pt-2 border-t border-krona-border/50 flex justify-between items-center text-xs text-krona-green font-medium`,children:[(0,Y.jsx)(`span`,{children:`Подробнее`}),(0,Y.jsx)(`span`,{children:`→`})]})]},e.id)})}),r&&!l&&(0,Y.jsx)(O,{isOpen:!!r,onClose:()=>a(null),title:`Управление столом: ${r.name}`,subtitle:`${r.zone} • Вместимость: ${r.capacity} персон`,maxWidth:`md`,children:(0,Y.jsxs)(`div`,{className:`space-y-4 text-xs`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center justify-between p-3 bg-krona-workspace rounded-lg border border-krona-border`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Y.jsx)(`span`,{className:`text-krona-secondary`,children:`Текущий статус:`}),N(r.status)]}),r.waiter&&(0,Y.jsxs)(`div`,{className:`text-krona-secondary`,children:[`Официант: `,(0,Y.jsx)(`strong`,{className:`text-krona-primary`,children:r.waiter})]})]}),(r.status===`occupied`||r.status===`bill_printed`)&&(0,Y.jsxs)(`div`,{className:`space-y-3`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,Y.jsx)(`h4`,{className:`font-bold text-krona-primary`,children:`Заказ стола:`}),(0,Y.jsx)(`span`,{className:`font-mono font-bold text-sm text-krona-green`,children:F(r.currentTotal||0)})]}),(0,Y.jsx)(`div`,{className:`bg-krona-surface border border-krona-border rounded-lg divide-y divide-krona-border/50 max-h-48 overflow-y-auto`,children:r.items&&r.items.length>0?r.items.map((e,t)=>(0,Y.jsxs)(`div`,{className:`p-2.5 flex items-center justify-between`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Y.jsx)(`span`,{className:`w-5 h-5 rounded bg-krona-workspace flex items-center justify-center font-bold text-[11px]`,children:e.qty}),(0,Y.jsx)(`span`,{className:`font-medium text-krona-primary`,children:e.name})]}),(0,Y.jsx)(`span`,{className:`font-mono font-medium text-krona-primary`,children:F(e.price*e.qty)})]},t)):(0,Y.jsx)(`div`,{className:`p-4 text-center text-krona-secondary text-xs`,children:`Заказ еще формируется на кассе`})}),(0,Y.jsxs)(`div`,{className:`grid grid-cols-2 sm:grid-cols-3 gap-2 pt-2`,children:[(0,Y.jsx)(n,{variant:`primary`,size:`sm`,onClick:()=>D(r),children:`Открыть в кассе POS`}),(0,Y.jsxs)(n,{variant:`secondary`,size:`sm`,onClick:()=>ee(r.id),children:[(0,Y.jsx)(oe,{className:`w-3.5 h-3.5 mr-1`}),`Напечатать пречек`]}),(0,Y.jsx)(n,{variant:`danger`,size:`sm`,onClick:()=>A(r.id),children:`Освободить стол`})]})]}),r.status===`free`&&(0,Y.jsxs)(`div`,{className:`space-y-3 py-2 text-center`,children:[(0,Y.jsx)(`p`,{className:`text-krona-secondary`,children:`Стол свободен и готов принять гостей. Выберите действие:`}),(0,Y.jsxs)(`div`,{className:`flex justify-center gap-3`,children:[(0,Y.jsxs)(n,{variant:`primary`,size:`md`,onClick:()=>j(r.id),children:[(0,Y.jsx)(f,{className:`w-4 h-4 mr-1.5`}),`Посадить гостей (Занять стол)`]}),(0,Y.jsxs)(n,{variant:`gold`,size:`md`,onClick:()=>{y(r.capacity),u(!0)},children:[(0,Y.jsx)(_,{className:`w-4 h-4 mr-1.5`}),`Забронировать стол`]})]})]}),r.status===`reserved`&&(0,Y.jsxs)(`div`,{className:`space-y-3`,children:[(0,Y.jsxs)(`div`,{className:`p-3 bg-krona-gold/10 border border-krona-gold/30 rounded-lg`,children:[(0,Y.jsx)(`div`,{className:`font-bold text-krona-primary mb-1`,children:`Детали бронирования:`}),(0,Y.jsxs)(`div`,{className:`text-krona-secondary`,children:[`Время: `,(0,Y.jsx)(`strong`,{children:r.reservationTime})]}),(0,Y.jsxs)(`div`,{className:`text-krona-secondary`,children:[`Гость: `,(0,Y.jsx)(`strong`,{children:r.reservationClient})]})]}),(0,Y.jsxs)(`div`,{className:`flex justify-end gap-2 pt-2`,children:[(0,Y.jsx)(n,{variant:`secondary`,size:`sm`,onClick:()=>A(r.id),children:`Отменить бронь`}),(0,Y.jsx)(n,{variant:`primary`,size:`sm`,onClick:()=>j(r.id),children:`Гости прибыли (Посадить за стол)`})]})]})]})}),l&&r&&(0,Y.jsx)(O,{isOpen:l,onClose:()=>u(!1),title:`Бронирование: ${r.name}`,subtitle:`Внесение записи в журнал бронирования столов`,maxWidth:`sm`,footer:(0,Y.jsxs)(`div`,{className:`flex gap-2 w-full justify-end`,children:[(0,Y.jsx)(n,{variant:`secondary`,onClick:()=>u(!1),children:`Отмена`}),(0,Y.jsx)(n,{variant:`primary`,onClick:M,disabled:!d.trim(),children:`Сохранить бронь`})]}),children:(0,Y.jsxs)(`div`,{className:`space-y-3 text-xs`,children:[(0,Y.jsxs)(`div`,{className:`space-y-1`,children:[(0,Y.jsx)(`label`,{className:`font-semibold text-krona-primary`,children:`Имя и телефон гостя:`}),(0,Y.jsx)(`input`,{type:`text`,value:d,onChange:e=>p(e.target.value),placeholder:`Иван Петров, +7 913...`,className:`w-full p-2 bg-krona-workspace border border-krona-border rounded-lg text-krona-primary focus:outline-none focus:border-krona-green`})]}),(0,Y.jsxs)(`div`,{className:`grid grid-cols-2 gap-3`,children:[(0,Y.jsxs)(`div`,{className:`space-y-1`,children:[(0,Y.jsx)(`label`,{className:`font-semibold text-krona-primary`,children:`Время брони:`}),(0,Y.jsx)(`input`,{type:`text`,value:m,onChange:e=>h(e.target.value),placeholder:`19:30`,className:`w-full p-2 bg-krona-workspace border border-krona-border rounded-lg text-krona-primary focus:outline-none focus:border-krona-green`})]}),(0,Y.jsxs)(`div`,{className:`space-y-1`,children:[(0,Y.jsx)(`label`,{className:`font-semibold text-krona-primary`,children:`Количество персон:`}),(0,Y.jsx)(`input`,{type:`number`,min:1,max:r.capacity,value:g,onChange:e=>y(Number(e.target.value)),className:`w-full p-2 bg-krona-workspace border border-krona-border rounded-lg text-krona-primary focus:outline-none focus:border-krona-green`})]})]})]})})]})},Z=()=>{let{workOrders:e,updateWorkOrderStatus:t,setIsQuickActionsOpen:r}=w(),[a,o]=(0,J.useState)(null),s=e=>{switch(e){case`in_progress`:return(0,Y.jsx)(i,{variant:`warning`,size:`sm`,children:`В работе на посту`});case`ready`:return(0,Y.jsx)(i,{variant:`gold`,size:`sm`,children:`Готов к выдаче`});case`paid`:return(0,Y.jsx)(i,{variant:`green`,size:`sm`,children:`Оплачен и выдан`});default:return(0,Y.jsx)(i,{variant:`neutral`,size:`sm`,children:`Черновик / Заезд`})}};return(0,Y.jsxs)(`div`,{className:`space-y-4 animate-fade-in`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center justify-between bg-krona-surface p-3.5 rounded-xl border border-krona-border shadow-krona-soft`,children:[(0,Y.jsxs)(`div`,{children:[(0,Y.jsx)(`h2`,{className:`text-sm font-bold text-krona-primary`,children:`Заказ-наряды автокомплекса и постов`}),(0,Y.jsx)(`p`,{className:`text-xs text-krona-secondary`,children:`Учет автомобилей, выполненных работ, списанных запчастей и нормо-часов`})]}),(0,Y.jsxs)(n,{variant:`primary`,size:`sm`,onClick:()=>r(!0),children:[(0,Y.jsx)(M,{className:`w-3.5 h-3.5 mr-1.5`}),`Новый заказ-наряд`]})]}),(0,Y.jsx)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 gap-4`,children:e.map(e=>{let r=e.partsAmount+e.laborAmount;return(0,Y.jsxs)(`div`,{onClick:()=>o(e),className:`p-4 rounded-xl border border-krona-border bg-krona-surface hover:border-krona-border-strong shadow-krona-soft cursor-pointer transition-all space-y-3`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Y.jsx)(`div`,{className:`p-2 rounded-lg bg-krona-workspace text-krona-info border border-krona-border`,children:(0,Y.jsx)(m,{className:`w-4 h-4`})}),(0,Y.jsxs)(`div`,{children:[(0,Y.jsx)(`h4`,{className:`text-sm font-bold text-krona-primary`,children:e.vehicle}),(0,Y.jsxs)(`span`,{className:`text-xs text-krona-secondary font-mono`,children:[e.id,` • `,e.bay]})]})]}),s(e.status)]}),(0,Y.jsxs)(`div`,{className:`grid grid-cols-2 gap-2 text-xs py-1`,children:[(0,Y.jsxs)(`div`,{children:[(0,Y.jsx)(`span`,{className:`text-krona-secondary block text-[11px]`,children:`Владелец:`}),(0,Y.jsx)(`span`,{className:`font-medium text-krona-primary`,children:e.ownerName})]}),(0,Y.jsxs)(`div`,{children:[(0,Y.jsx)(`span`,{className:`text-krona-secondary block text-[11px]`,children:`Мастер поста:`}),(0,Y.jsx)(`span`,{className:`font-medium text-krona-primary`,children:e.masterName})]})]}),(0,Y.jsxs)(`div`,{className:`p-2.5 rounded-lg bg-krona-workspace text-xs space-y-1`,children:[(0,Y.jsx)(`span`,{className:`text-[11px] font-semibold text-krona-secondary uppercase`,children:`Работы и услуги:`}),(0,Y.jsx)(`ul`,{className:`list-disc list-inside space-y-0.5 text-krona-primary`,children:e.services.map((e,t)=>(0,Y.jsx)(`li`,{className:`truncate`,children:e},t))})]}),(0,Y.jsxs)(`div`,{className:`pt-2 border-t border-krona-border/60 flex items-center justify-between text-xs`,children:[(0,Y.jsxs)(`div`,{children:[(0,Y.jsx)(`span`,{className:`text-krona-secondary block text-[10px]`,children:`Итоговая стоимость:`}),(0,Y.jsx)(`span`,{className:`text-sm font-bold text-krona-green`,children:F(r)})]}),(0,Y.jsxs)(`div`,{className:`flex gap-2`,children:[e.status===`in_progress`&&(0,Y.jsx)(n,{variant:`primary`,size:`sm`,onClick:n=>{n.stopPropagation(),t(e.id,`ready`)},children:`Готово`}),e.status===`ready`&&(0,Y.jsx)(n,{variant:`gold`,size:`sm`,onClick:n=>{n.stopPropagation(),t(e.id,`paid`)},children:`Принять оплату`})]})]})]},e.id)})}),a&&(0,Y.jsx)(O,{isOpen:!!a,onClose:()=>o(null),title:`Заказ-наряд ${a.id}`,subtitle:`${a.vehicle} • ${a.bay}`,maxWidth:`md`,footer:(0,Y.jsx)(n,{variant:`secondary`,onClick:()=>o(null),children:`Закрыть`}),children:(0,Y.jsxs)(`div`,{className:`space-y-4 text-xs`,children:[(0,Y.jsxs)(`div`,{className:`grid grid-cols-2 gap-3 p-3 rounded-lg bg-krona-workspace`,children:[(0,Y.jsxs)(`div`,{children:[(0,Y.jsx)(`span`,{className:`text-krona-secondary block`,children:`Владелец:`}),(0,Y.jsx)(`span`,{className:`font-semibold text-krona-primary`,children:a.ownerName}),(0,Y.jsx)(`span`,{className:`text-krona-secondary block text-[11px]`,children:a.phone})]}),(0,Y.jsxs)(`div`,{children:[(0,Y.jsx)(`span`,{className:`text-krona-secondary block`,children:`Ответственный специалист:`}),(0,Y.jsx)(`span`,{className:`font-semibold text-krona-primary`,children:a.masterName}),(0,Y.jsx)(`span`,{className:`text-krona-secondary block text-[11px]`,children:a.bay})]})]}),(0,Y.jsxs)(`div`,{children:[(0,Y.jsx)(`span`,{className:`font-semibold text-krona-primary block mb-1`,children:`Калькуляция:`}),(0,Y.jsxs)(`div`,{className:`p-3 border border-krona-border rounded-lg space-y-1.5`,children:[(0,Y.jsxs)(`div`,{className:`flex justify-between`,children:[(0,Y.jsx)(`span`,{className:`text-krona-secondary`,children:`Работы мастера:`}),(0,Y.jsx)(`span`,{className:`font-medium`,children:F(a.laborAmount)})]}),(0,Y.jsxs)(`div`,{className:`flex justify-between`,children:[(0,Y.jsx)(`span`,{className:`text-krona-secondary`,children:`Материалы и запчасти:`}),(0,Y.jsx)(`span`,{className:`font-medium`,children:F(a.partsAmount)})]}),(0,Y.jsxs)(`div`,{className:`flex justify-between pt-1 border-t border-krona-border font-bold text-sm`,children:[(0,Y.jsx)(`span`,{children:`ИТОГО К ОПЛАТЕ:`}),(0,Y.jsx)(`span`,{className:`text-krona-green`,children:F(a.laborAmount+a.partsAmount)})]})]})]})]})})]})},fe=()=>{let{bookings:e,updateBookingStatus:t,setIsQuickActionsOpen:r,getActiveProfile:a}=w(),o=a(),s=e=>{switch(e){case`confirmed`:return(0,Y.jsx)(i,{variant:`gold`,size:`sm`,children:`Подтверждена`});case`seated`:return(0,Y.jsx)(i,{variant:`green`,size:`sm`,children:`Гость пришел / Заезд`});case`completed`:return(0,Y.jsx)(i,{variant:`neutral`,size:`sm`,children:`Завершено`});case`cancelled`:return(0,Y.jsx)(i,{variant:`danger`,size:`sm`,children:`Отменена / No-Show`})}};return(0,Y.jsxs)(`div`,{className:`space-y-4 animate-fade-in`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center justify-between bg-krona-surface p-3.5 rounded-xl border border-krona-border shadow-krona-soft`,children:[(0,Y.jsxs)(`div`,{children:[(0,Y.jsxs)(`h2`,{className:`text-sm font-bold text-krona-primary`,children:[`Журнал бронирования & Запись ресурсов (`,o.terminology.bookingResourceLabel,`)`]}),(0,Y.jsx)(`p`,{className:`text-xs text-krona-secondary`,children:`Сетка временных слотов, подтверждение депозитов и контроль неявок (no-show)`})]}),(0,Y.jsxs)(n,{variant:`primary`,size:`sm`,onClick:()=>r(!0),children:[(0,Y.jsx)(M,{className:`w-3.5 h-3.5 mr-1.5`}),`Записать клиента`]})]}),(0,Y.jsx)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-3.5`,children:e.map(e=>(0,Y.jsxs)(`div`,{className:`p-4 rounded-xl border border-krona-border bg-krona-surface shadow-krona-soft flex flex-col justify-between space-y-3`,children:[(0,Y.jsxs)(`div`,{children:[(0,Y.jsxs)(`div`,{className:`flex items-center justify-between pb-2 border-b border-krona-border/60`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-1.5 font-bold text-sm text-krona-primary`,children:[(0,Y.jsx)(v,{className:`w-4 h-4 text-krona-gold`}),(0,Y.jsx)(`span`,{children:e.time})]}),s(e.status)]}),(0,Y.jsxs)(`div`,{className:`py-2 space-y-1.5 text-xs`,children:[(0,Y.jsxs)(`div`,{children:[(0,Y.jsxs)(`span`,{className:`text-[10px] text-krona-secondary uppercase font-semibold`,children:[o.terminology.bookingResourceLabel,`:`]}),(0,Y.jsx)(`div`,{className:`font-semibold text-krona-primary`,children:e.resourceName})]}),(0,Y.jsxs)(`div`,{children:[(0,Y.jsx)(`span`,{className:`text-[10px] text-krona-secondary uppercase font-semibold`,children:`Клиент:`}),(0,Y.jsx)(`div`,{className:`text-krona-primary font-medium`,children:e.clientName}),(0,Y.jsx)(`div`,{className:`text-[11px] text-krona-secondary font-mono`,children:e.clientPhone}),e.guestsOrCar&&(0,Y.jsx)(`div`,{className:`text-[11px] text-krona-secondary italic mt-0.5`,children:e.guestsOrCar})]}),e.deposit>0&&(0,Y.jsxs)(`div`,{className:`flex justify-between pt-1 border-t border-krona-border/40 text-[11px]`,children:[(0,Y.jsx)(`span`,{className:`text-krona-secondary`,children:`Внесен депозит:`}),(0,Y.jsx)(`span`,{className:`font-semibold text-krona-green`,children:F(e.deposit)})]})]})]}),(0,Y.jsxs)(`div`,{className:`pt-2 border-t border-krona-border/60 flex items-center justify-end gap-2`,children:[e.status===`confirmed`&&(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(n,{variant:`outline`,size:`sm`,className:`text-xs`,onClick:()=>t(e.id,`cancelled`),children:`No-Show`}),(0,Y.jsx)(n,{variant:`primary`,size:`sm`,className:`text-xs`,onClick:()=>t(e.id,`seated`),children:`Прибыл`})]}),e.status===`seated`&&(0,Y.jsx)(n,{variant:`secondary`,size:`sm`,className:`w-full text-xs`,onClick:()=>t(e.id,`completed`),children:`Завершить визит`})]})]},e.id))})]})},pe=({initialMobile:e=!1})=>{let{deliveries:t,updateDeliveryStatus:r}=w(),[a,o]=(0,J.useState)(e),s=e=>{switch(e){case`in_transit`:return(0,Y.jsx)(i,{variant:`info`,size:`sm`,children:`Курьер в пути`});case`delivered`:return(0,Y.jsx)(i,{variant:`green`,size:`sm`,children:`Доставлен`});default:return(0,Y.jsx)(i,{variant:`warning`,size:`sm`,children:`Ожидает курьера`})}};return(0,Y.jsxs)(`div`,{className:`space-y-4 animate-fade-in`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center justify-between bg-krona-surface p-3.5 rounded-xl border border-krona-border shadow-krona-soft`,children:[(0,Y.jsxs)(`div`,{children:[(0,Y.jsx)(`h2`,{className:`text-sm font-bold text-krona-primary`,children:`Управление доставкой & Мониторинг курьеров`}),(0,Y.jsx)(`p`,{className:`text-xs text-krona-secondary`,children:`Логистический контур: распределение заказов, расчет времени прибытия (ETA) и контроль налички`})]}),(0,Y.jsxs)(n,{variant:a?`gold`:`secondary`,size:`sm`,onClick:()=>o(!a),children:[(0,Y.jsx)(ee,{className:`w-3.5 h-3.5 mr-1.5`}),a?`Обычный диспетчерский вид`:`Экран курьера (Mobile View)`]})]}),a?(0,Y.jsxs)(`div`,{className:`max-w-md mx-auto bg-krona-surface border-2 border-krona-gold/60 rounded-2xl p-4 shadow-xl space-y-4`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center justify-between pb-3 border-b border-krona-border`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Y.jsx)(`div`,{className:`w-8 h-8 rounded-full bg-krona-gold/20 flex items-center justify-center text-krona-gold`,children:(0,Y.jsx)(u,{className:`w-4 h-4`})}),(0,Y.jsxs)(`div`,{children:[(0,Y.jsx)(`h4`,{className:`text-xs font-bold text-krona-primary`,children:`Алексей Смирнов (Авто)`}),(0,Y.jsx)(`span`,{className:`text-[10px] text-krona-secondary`,children:`Смена активна • Наличные: 24 500 ₽`})]})]}),(0,Y.jsx)(i,{variant:`green`,size:`sm`,children:`Онлайн`})]}),(0,Y.jsxs)(`div`,{className:`space-y-3`,children:[(0,Y.jsxs)(`span`,{className:`text-xs font-semibold uppercase tracking-wider text-krona-secondary block`,children:[`Мои текущие доставки (`,t.filter(e=>e.status!==`delivered`).length,`)`]}),t.map(e=>(0,Y.jsxs)(`div`,{className:`p-3.5 rounded-xl border border-krona-border bg-krona-workspace space-y-2.5`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,Y.jsx)(`span`,{className:`font-bold text-xs text-krona-primary`,children:e.orderId}),s(e.status)]}),(0,Y.jsxs)(`div`,{className:`space-y-1 text-xs`,children:[(0,Y.jsxs)(`div`,{className:`flex items-start gap-1.5 text-krona-primary font-medium`,children:[(0,Y.jsx)(D,{className:`w-3.5 h-3.5 text-krona-danger shrink-0 mt-0.5`}),(0,Y.jsx)(`span`,{children:e.address})]}),(0,Y.jsxs)(`div`,{className:`flex items-center justify-between pt-1 text-[11px] text-krona-secondary`,children:[(0,Y.jsx)(`span`,{children:e.recipientName}),(0,Y.jsxs)(`a`,{href:`tel:${e.phone}`,className:`text-krona-green font-semibold flex items-center gap-1`,children:[(0,Y.jsx)(l,{className:`w-3 h-3`}),e.phone]})]}),(0,Y.jsxs)(`div`,{className:`flex items-center justify-between pt-1 border-t border-krona-border/60`,children:[(0,Y.jsx)(`span`,{className:`text-krona-secondary`,children:`К оплате:`}),(0,Y.jsxs)(`span`,{className:`font-bold text-krona-primary`,children:[F(e.amount),` (`,e.paymentMethod,`)`]})]})]}),(0,Y.jsxs)(`div`,{className:`pt-2 flex gap-2`,children:[e.status===`pending`&&(0,Y.jsx)(n,{variant:`primary`,size:`sm`,className:`w-full text-xs`,onClick:()=>r(e.id,`in_transit`),children:`Заказ забрал, еду к клиенту`}),e.status===`in_transit`&&(0,Y.jsxs)(n,{variant:`gold`,size:`sm`,className:`w-full text-xs`,onClick:()=>r(e.id,`delivered`),children:[(0,Y.jsx)(P,{className:`w-3.5 h-3.5 mr-1`}),`Заказ вручен и оплачен`]})]})]},e.id))]})]}):(0,Y.jsx)(`div`,{className:`grid grid-cols-1 md:grid-cols-3 gap-4`,children:t.map(e=>(0,Y.jsxs)(`div`,{className:`p-4 rounded-xl border border-krona-border bg-krona-surface shadow-krona-soft space-y-3`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center justify-between pb-2 border-b border-krona-border/60`,children:[(0,Y.jsx)(`span`,{className:`font-bold text-sm text-krona-primary`,children:e.orderId}),s(e.status)]}),(0,Y.jsxs)(`div`,{className:`space-y-1.5 text-xs`,children:[(0,Y.jsxs)(`div`,{className:`flex items-start gap-1.5`,children:[(0,Y.jsx)(D,{className:`w-3.5 h-3.5 text-krona-danger shrink-0 mt-0.5`}),(0,Y.jsx)(`span`,{className:`text-krona-primary font-medium leading-tight`,children:e.address})]}),(0,Y.jsxs)(`div`,{className:`pt-1 text-krona-secondary`,children:[(0,Y.jsxs)(`div`,{children:[`Получатель: `,(0,Y.jsx)(`strong`,{className:`text-krona-primary`,children:e.recipientName})]}),(0,Y.jsxs)(`div`,{children:[`Телефон: `,(0,Y.jsx)(`span`,{className:`font-mono`,children:e.phone})]}),(0,Y.jsxs)(`div`,{children:[`Курьер: `,(0,Y.jsx)(`strong`,{className:`text-krona-primary`,children:e.courierName})]})]}),(0,Y.jsxs)(`div`,{className:`flex justify-between pt-1 border-t border-krona-border/40 font-bold`,children:[(0,Y.jsx)(`span`,{children:`Сумма:`}),(0,Y.jsx)(`span`,{className:`text-krona-green`,children:F(e.amount)})]})]}),(0,Y.jsxs)(`div`,{className:`pt-2 border-t border-krona-border/60 flex justify-end gap-2`,children:[e.status===`pending`&&(0,Y.jsx)(n,{variant:`primary`,size:`sm`,className:`w-full text-xs`,onClick:()=>r(e.id,`in_transit`),children:`Передать курьеру`}),e.status===`in_transit`&&(0,Y.jsx)(n,{variant:`secondary`,size:`sm`,className:`w-full text-xs`,onClick:()=>r(e.id,`delivered`),children:`Отметить вручение`}),e.status===`delivered`&&(0,Y.jsx)(`div`,{className:`w-full text-center text-xs text-krona-green font-semibold py-1`,children:`✓ Успешно доставлен`})]})]},e.id))})]})},me=()=>{let[e]=(0,J.useState)(I),[t,r]=(0,J.useState)(null);return(0,Y.jsxs)(`div`,{className:`space-y-4 animate-fade-in`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center justify-between bg-krona-surface p-3.5 rounded-xl border border-krona-border shadow-krona-soft`,children:[(0,Y.jsxs)(`div`,{children:[(0,Y.jsx)(`h2`,{className:`text-sm font-bold text-krona-primary`,children:`Технологические карты & Калькуляция (BOM)`}),(0,Y.jsx)(`p`,{className:`text-xs text-krona-secondary`,children:`Нормы расхода сырья, расчет food cost %, плановая себестоимость и маржинальность`})]}),(0,Y.jsxs)(n,{variant:`primary`,size:`sm`,onClick:()=>r(e[0]),children:[(0,Y.jsx)(z,{className:`w-3.5 h-3.5 mr-1.5`}),`Посмотреть калькуляцию`]})]}),(0,Y.jsx)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 gap-4`,children:e.map(e=>(0,Y.jsxs)(`div`,{onClick:()=>r(e),className:`p-4 rounded-xl border border-krona-border bg-krona-surface hover:border-krona-border-strong shadow-krona-soft cursor-pointer transition-all space-y-3`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,Y.jsxs)(`div`,{children:[(0,Y.jsx)(`h4`,{className:`text-sm font-bold text-krona-primary`,children:e.name}),(0,Y.jsxs)(`span`,{className:`text-xs text-krona-secondary`,children:[`Выход: `,e.yieldWeight,` • `,e.category]})]}),(0,Y.jsxs)(i,{variant:`green`,size:`sm`,children:[`Food Cost: `,e.foodCostPercent,`%`]})]}),(0,Y.jsxs)(`div`,{className:`grid grid-cols-3 gap-2 p-2.5 rounded-lg bg-krona-workspace text-xs`,children:[(0,Y.jsxs)(`div`,{children:[(0,Y.jsx)(`span`,{className:`text-krona-secondary block text-[10px]`,children:`Себестоимость:`}),(0,Y.jsx)(`span`,{className:`font-bold text-krona-primary`,children:F(e.primeCost)})]}),(0,Y.jsxs)(`div`,{children:[(0,Y.jsx)(`span`,{className:`text-krona-secondary block text-[10px]`,children:`Цена продажи:`}),(0,Y.jsx)(`span`,{className:`font-bold text-krona-green`,children:F(e.sellingPrice)})]}),(0,Y.jsxs)(`div`,{children:[(0,Y.jsx)(`span`,{className:`text-krona-secondary block text-[10px]`,children:`Маржа (руб):`}),(0,Y.jsx)(`span`,{className:`font-bold text-krona-gold`,children:F(e.marginRub)})]})]}),(0,Y.jsxs)(`div`,{className:`text-xs text-krona-secondary`,children:[(0,Y.jsxs)(`span`,{className:`font-medium text-krona-primary`,children:[`Ингредиенты (`,e.ingredients.length,`): `]}),e.ingredients.map(e=>e.name).join(`, `)]})]},e.id))}),t&&(0,Y.jsx)(O,{isOpen:!!t,onClose:()=>r(null),title:`Техкарта: ${t.name}`,subtitle:`Выход готового блюда: ${t.yieldWeight}`,maxWidth:`lg`,footer:(0,Y.jsx)(n,{variant:`secondary`,onClick:()=>r(null),children:`Закрыть`}),children:(0,Y.jsxs)(`div`,{className:`space-y-4 text-xs`,children:[(0,Y.jsxs)(`div`,{className:`grid grid-cols-4 gap-2 p-3 bg-krona-workspace rounded-lg text-center`,children:[(0,Y.jsxs)(`div`,{children:[(0,Y.jsx)(`span`,{className:`text-krona-secondary block text-[10px]`,children:`Цена в меню:`}),(0,Y.jsx)(`span`,{className:`font-bold text-sm text-krona-primary`,children:F(t.sellingPrice)})]}),(0,Y.jsxs)(`div`,{children:[(0,Y.jsx)(`span`,{className:`text-krona-secondary block text-[10px]`,children:`Себестоимость:`}),(0,Y.jsx)(`span`,{className:`font-bold text-sm text-krona-danger`,children:F(t.primeCost)})]}),(0,Y.jsxs)(`div`,{children:[(0,Y.jsx)(`span`,{className:`text-krona-secondary block text-[10px]`,children:`Food Cost %:`}),(0,Y.jsxs)(`span`,{className:`font-bold text-sm text-krona-green`,children:[t.foodCostPercent,`%`]})]}),(0,Y.jsxs)(`div`,{children:[(0,Y.jsx)(`span`,{className:`text-krona-secondary block text-[10px]`,children:`Маржинальный доход:`}),(0,Y.jsx)(`span`,{className:`font-bold text-sm text-krona-gold`,children:F(t.marginRub)})]})]}),(0,Y.jsxs)(`div`,{children:[(0,Y.jsx)(`h5`,{className:`font-semibold text-krona-primary mb-2`,children:`Расход сырья и калькуляция:`}),(0,Y.jsxs)(`table`,{className:`w-full text-left border-collapse`,children:[(0,Y.jsx)(`thead`,{children:(0,Y.jsxs)(`tr`,{className:`border-b border-krona-border text-krona-secondary text-[11px]`,children:[(0,Y.jsx)(`th`,{className:`pb-1.5 font-medium`,children:`Ингредиент`}),(0,Y.jsx)(`th`,{className:`pb-1.5 font-medium`,children:`Брутто`}),(0,Y.jsx)(`th`,{className:`pb-1.5 font-medium`,children:`Нетто`}),(0,Y.jsx)(`th`,{className:`pb-1.5 font-medium text-right`,children:`Стоимость`})]})}),(0,Y.jsx)(`tbody`,{className:`divide-y divide-krona-border/40`,children:t.ingredients.map((e,t)=>(0,Y.jsxs)(`tr`,{className:`py-1.5`,children:[(0,Y.jsx)(`td`,{className:`py-1.5 font-medium text-krona-primary`,children:e.name}),(0,Y.jsx)(`td`,{className:`py-1.5 text-krona-secondary`,children:e.gross}),(0,Y.jsx)(`td`,{className:`py-1.5 text-krona-secondary`,children:e.net}),(0,Y.jsx)(`td`,{className:`py-1.5 font-semibold text-right text-krona-primary`,children:F(e.cost)})]},t))})]})]})]})})]})},Q=[{id:`sup-1`,name:`СибРыбТорг`,category:`Рыба и морепродукты`,phone:`+7 (383) 310-20-40`,contactPerson:`Олег Васильев`,debt:48500,deliveryDays:`Пн, Ср, Пт (до 11:00)`},{id:`sup-2`,name:`Хорека Логистик`,category:`Сыры, молочная продукция`,phone:`+7 (383) 220-11-88`,contactPerson:`Елена Белова`,debt:12400,deliveryDays:`Вторник, Четверг`},{id:`sup-3`,name:`Восточный Экспресс`,category:`Рис, соусы, водоросли, специи`,phone:`+7 (383) 299-44-33`,contactPerson:`Алексей Чэнь`,debt:0,deliveryDays:`По заявке (1 день)`},{id:`sup-4`,name:`ЭкоУпаковка Сибирь`,category:`Контейнеры, пакеты, палочки`,phone:`+7 (383) 345-67-89`,contactPerson:`Мария Семенова`,debt:3200,deliveryDays:`Среда`}],he=[{id:`PO-901`,supplierName:`СибРыбТорг`,date:`10.09.2026`,itemsCount:3,totalAmount:48500,status:`in_transit`,deliveryEta:`Сегодня к 15:30`},{id:`PO-900`,supplierName:`Хорека Логистик`,date:`09.09.2026`,itemsCount:2,totalAmount:23600,status:`received`,deliveryEta:`Получен 09.09`},{id:`PO-899`,supplierName:`Восточный Экспресс`,date:`08.09.2026`,itemsCount:5,totalAmount:38400,status:`received`,deliveryEta:`Получен 08.09`},{id:`PO-902`,supplierName:`ЭкоУпаковка Сибирь`,date:`10.09.2026`,itemsCount:4,totalAmount:14200,status:`sent`,deliveryEta:`Завтра к 12:00`}],$=()=>{let[e]=(0,J.useState)(Q),[t,r]=(0,J.useState)(he),[a,o]=(0,J.useState)(`orders`),[l,d]=(0,J.useState)(!1),[f,p]=(0,J.useState)(Q[0].name),[m,h]=(0,J.useState)(`25000`),[g,_]=(0,J.useState)(`3`),[v,y]=(0,J.useState)(`Завтра к 11:00`),b=e.reduce((e,t)=>e+t.debt,0),x=e=>{e.preventDefault();let n={id:`PO-${Math.floor(903+Math.random()*90)}`,supplierName:f,date:new Date().toLocaleDateString(`ru-RU`),itemsCount:Number(g)||1,totalAmount:Number(m)||0,status:`sent`,deliveryEta:v};r([n,...t]),d(!1)},C=e=>{switch(e){case`received`:return(0,Y.jsx)(i,{variant:`green`,size:`sm`,children:`Принят на склад`});case`in_transit`:return(0,Y.jsx)(i,{variant:`info`,size:`sm`,children:`В пути / Доставка`});case`sent`:return(0,Y.jsx)(i,{variant:`gold`,size:`sm`,children:`Отправлен поставщику`});default:return(0,Y.jsx)(i,{variant:`neutral`,size:`sm`,children:`Черновик`})}};return(0,Y.jsxs)(`div`,{className:`space-y-4 animate-fade-in`,children:[(0,Y.jsxs)(`div`,{className:`flex flex-col sm:flex-row sm:items-center justify-between gap-3 bg-krona-surface p-3.5 rounded-xl border border-krona-border shadow-krona-soft`,children:[(0,Y.jsxs)(`div`,{children:[(0,Y.jsx)(`h2`,{className:`text-sm font-bold text-krona-primary`,children:`Закупки, заказы поставщикам и приходные накладные`}),(0,Y.jsx)(`p`,{className:`text-xs text-krona-secondary`,children:`Управление контрагентами, графиками поставок сырья и расчетами`})]}),(0,Y.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center bg-krona-workspace p-1 rounded-lg border border-krona-border text-xs`,children:[(0,Y.jsxs)(`button`,{onClick:()=>o(`orders`),className:`px-3 py-1 rounded font-medium transition-colors ${a===`orders`?`bg-[#2F684C] text-white shadow-sm`:`text-krona-secondary`}`,children:[`Заказы (`,t.length,`)`]}),(0,Y.jsxs)(`button`,{onClick:()=>o(`suppliers`),className:`px-3 py-1 rounded font-medium transition-colors ${a===`suppliers`?`bg-[#2F684C] text-white shadow-sm`:`text-krona-secondary`}`,children:[`Поставщики (`,e.length,`)`]})]}),(0,Y.jsxs)(n,{variant:`primary`,size:`sm`,onClick:()=>d(!0),children:[(0,Y.jsx)(M,{className:`w-3.5 h-3.5 mr-1`}),`Новый заказ поставщику`]})]})]}),(0,Y.jsxs)(`div`,{className:`grid grid-cols-1 sm:grid-cols-3 gap-3.5`,children:[(0,Y.jsx)(E,{title:`Задолженность перед поставщиками`,value:F(b),change:{value:`-12%`,trend:`neutral`},subtitle:`Срок оплаты: до 15.09`,icon:(0,Y.jsx)(c,{className:`w-4 h-4 text-krona-gold`})}),(0,Y.jsx)(E,{title:`Заказов в пути`,value:`${t.filter(e=>e.status===`in_transit`).length} поставки`,subtitle:`Ожидаются сегодня`,icon:(0,Y.jsx)(u,{className:`w-4 h-4 text-krona-info`})}),(0,Y.jsx)(E,{title:`Активных поставщиков`,value:`${e.length} контрагента`,subtitle:`Регулярные поставки сырья`,icon:(0,Y.jsx)(s,{className:`w-4 h-4 text-krona-green`})})]}),a===`orders`?(0,Y.jsxs)(`div`,{className:`bg-krona-surface border border-krona-border rounded-xl shadow-krona-soft overflow-hidden p-4 space-y-3`,children:[(0,Y.jsx)(`h4`,{className:`text-xs font-bold text-krona-primary uppercase tracking-wider`,children:`Журнал заказов поставщикам`}),(0,Y.jsx)(`div`,{className:`overflow-x-auto`,children:(0,Y.jsxs)(`table`,{className:`w-full text-left text-xs border-collapse`,children:[(0,Y.jsx)(`thead`,{className:`bg-krona-workspace/80 text-krona-secondary border-b border-krona-border`,children:(0,Y.jsxs)(`tr`,{children:[(0,Y.jsx)(`th`,{className:`p-3 font-semibold`,children:`Номер заказа`}),(0,Y.jsx)(`th`,{className:`p-3 font-semibold`,children:`Поставщик`}),(0,Y.jsx)(`th`,{className:`p-3 font-semibold`,children:`Дата`}),(0,Y.jsx)(`th`,{className:`p-3 font-semibold`,children:`Позиций сырья`}),(0,Y.jsx)(`th`,{className:`p-3 font-semibold`,children:`Сумма заказа`}),(0,Y.jsx)(`th`,{className:`p-3 font-semibold`,children:`Ожидаемая поставка`}),(0,Y.jsx)(`th`,{className:`p-3 font-semibold`,children:`Статус`})]})}),(0,Y.jsx)(`tbody`,{className:`divide-y divide-krona-border/50`,children:t.map(e=>(0,Y.jsxs)(`tr`,{className:`hover:bg-krona-workspace/50 transition-colors`,children:[(0,Y.jsx)(`td`,{className:`p-3 font-mono font-bold text-krona-primary`,children:e.id}),(0,Y.jsx)(`td`,{className:`p-3 font-medium text-krona-primary`,children:e.supplierName}),(0,Y.jsx)(`td`,{className:`p-3 text-krona-secondary`,children:e.date}),(0,Y.jsxs)(`td`,{className:`p-3 text-krona-secondary`,children:[e.itemsCount,` наим.`]}),(0,Y.jsx)(`td`,{className:`p-3 font-bold text-krona-primary`,children:F(e.totalAmount)}),(0,Y.jsx)(`td`,{className:`p-3 text-krona-secondary`,children:e.deliveryEta}),(0,Y.jsx)(`td`,{className:`p-3`,children:C(e.status)})]},e.id))})]})})]}):(0,Y.jsx)(`div`,{className:`grid grid-cols-1 md:grid-cols-2 gap-4`,children:e.map(e=>(0,Y.jsxs)(`div`,{className:`p-4 rounded-xl border border-krona-border bg-krona-surface shadow-krona-soft space-y-3`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,Y.jsxs)(`div`,{children:[(0,Y.jsx)(`h4`,{className:`text-sm font-bold text-krona-primary`,children:e.name}),(0,Y.jsx)(`span`,{className:`text-xs text-krona-secondary`,children:e.category})]}),e.debt>0?(0,Y.jsxs)(i,{variant:`warning`,size:`sm`,children:[`Долг: `,F(e.debt)]}):(0,Y.jsx)(i,{variant:`green`,size:`sm`,children:`Сверено (0 ₽)`})]}),(0,Y.jsxs)(`div`,{className:`space-y-1 text-xs text-krona-secondary pt-1 border-t border-krona-border/40`,children:[(0,Y.jsxs)(`div`,{className:`flex justify-between`,children:[(0,Y.jsx)(`span`,{children:`Контактное лицо:`}),(0,Y.jsx)(`span`,{className:`font-medium text-krona-primary`,children:e.contactPerson})]}),(0,Y.jsxs)(`div`,{className:`flex justify-between`,children:[(0,Y.jsx)(`span`,{children:`Телефон:`}),(0,Y.jsx)(`span`,{className:`font-mono text-krona-primary`,children:e.phone})]}),(0,Y.jsxs)(`div`,{className:`flex justify-between`,children:[(0,Y.jsx)(`span`,{children:`Дни доставки:`}),(0,Y.jsx)(`span`,{className:`text-krona-primary`,children:e.deliveryDays})]})]})]},e.id))}),l&&(0,Y.jsx)(O,{isOpen:l,onClose:()=>d(!1),title:`Новый заказ поставщику`,subtitle:`Формирование заявки на поставку сырья и материалов`,maxWidth:`sm`,children:(0,Y.jsxs)(`form`,{onSubmit:x,className:`space-y-3 text-xs`,children:[(0,Y.jsxs)(`div`,{className:`flex flex-col gap-1.5 text-left`,children:[(0,Y.jsx)(`label`,{className:`text-xs font-medium text-krona-secondary`,children:`Поставщик`}),(0,Y.jsx)(`select`,{value:f,onChange:e=>p(e.target.value),className:`w-full bg-krona-surface border border-krona-border rounded-md px-3 py-2 text-xs text-krona-primary`,children:e.map(e=>(0,Y.jsxs)(`option`,{value:e.name,children:[e.name,` (`,e.category,`)`]},e.id))})]}),(0,Y.jsx)(S,{label:`Количество позиций в заявке`,type:`number`,value:g,onChange:e=>_(e.target.value),required:!0}),(0,Y.jsx)(S,{label:`Плановая сумма заказа (₽)`,type:`number`,value:m,onChange:e=>h(e.target.value),required:!0}),(0,Y.jsx)(S,{label:`Желаемый срок доставки`,value:v,onChange:e=>y(e.target.value),placeholder:`Завтра к 10:00`,required:!0}),(0,Y.jsxs)(`div`,{className:`pt-2 flex justify-end gap-2`,children:[(0,Y.jsx)(n,{type:`button`,variant:`secondary`,onClick:()=>d(!1),children:`Отмена`}),(0,Y.jsx)(n,{type:`submit`,variant:`primary`,children:`Отправить заказ`})]})]})})]})},ge=[{id:`b1`,name:`Пост 1 (Мойка + Детейлинг)`,type:`Моечный пост`,status:`busy`,vehicleOrMaster:`BMW X5 (А001АА 154)`,orderNumber:`WO-880`,timeRemaining:`12 мин`,workOrderType:`Комплекс Люкс`},{id:`b2`,name:`Пост 2 (Подъёмник гидравлический)`,type:`Слесарный пост`,status:`busy`,vehicleOrMaster:`Toyota Land Cruiser (Р777УУ 154)`,orderNumber:`WO-881`,timeRemaining:`25 мин`,workOrderType:`Замена масла + колодки`},{id:`b3`,name:`Пост 3 (Подъёмник 4-стоечный / Сход-развал)`,type:`Сход-развал`,status:`free`},{id:`b4`,name:`Пост 4 (Детейлинг бокс / Керамика)`,type:`Детейлинг`,status:`busy`,vehicleOrMaster:`Porsche Cayenne (В500ВВ 154)`,orderNumber:`WO-882`,timeRemaining:`45 мин`,workOrderType:`Керамика кузова`},{id:`b5`,name:`Пост 5 (Быстрая мойка кузова)`,type:`Моечный пост`,status:`free`},{id:`b6`,name:`Пост 6 (Шиномонтаж / Балансировка)`,type:`Шиномонтаж`,status:`free`}],_e=()=>{let{getActiveProfile:e,setIsQuickActionsOpen:t}=w(),r=e(),a=T();return(0,Y.jsxs)(`div`,{className:`space-y-4 animate-fade-in`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center justify-between bg-krona-surface p-3.5 rounded-xl border border-krona-border shadow-krona-soft`,children:[(0,Y.jsxs)(`div`,{children:[(0,Y.jsxs)(`h2`,{className:`text-sm font-bold text-krona-primary`,children:[`Посты, подъемники и рабочие зоны (`,r.terminology.bookingResourceLabel,`)`]}),(0,Y.jsx)(`p`,{className:`text-xs text-krona-secondary`,children:`Мониторинг загрузки постов, времени обслуживания и закрепленных заказ-нарядов`})]}),(0,Y.jsxs)(n,{variant:`primary`,size:`sm`,onClick:()=>t(!0),children:[(0,Y.jsx)(M,{className:`w-3.5 h-3.5 mr-1`}),`Заезд на пост`]})]}),(0,Y.jsx)(`div`,{className:`grid grid-cols-1 md:grid-cols-3 gap-4`,children:ge.map(e=>{let r=e.status===`busy`;return(0,Y.jsxs)(`div`,{className:`p-4 rounded-xl border shadow-krona-soft flex flex-col justify-between space-y-3 transition-all ${r?`border-krona-gold/60 bg-krona-surface`:`border-krona-border bg-krona-surface/60 opacity-90`}`,children:[(0,Y.jsxs)(`div`,{children:[(0,Y.jsxs)(`div`,{className:`flex items-center justify-between mb-2`,children:[(0,Y.jsx)(`span`,{className:`font-bold text-xs text-krona-primary`,children:e.name}),(0,Y.jsx)(i,{variant:r?`gold`:`green`,size:`sm`,children:r?`Занят`:`Свободен`})]}),(0,Y.jsx)(`div`,{className:`text-[11px] text-krona-secondary mb-2`,children:e.type}),r?(0,Y.jsxs)(`div`,{className:`p-3 rounded-lg bg-krona-workspace space-y-1.5 text-xs`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-1.5 font-bold text-krona-primary`,children:[(0,Y.jsx)(m,{className:`w-3.5 h-3.5 text-krona-info`}),(0,Y.jsx)(`span`,{children:e.vehicleOrMaster})]}),(0,Y.jsx)(`div`,{className:`text-krona-secondary text-[11px]`,children:e.workOrderType}),(0,Y.jsxs)(`div`,{className:`flex items-center justify-between pt-1 border-t border-krona-border/60 text-[11px]`,children:[(0,Y.jsx)(`span`,{className:`text-krona-secondary font-mono`,children:e.orderNumber}),(0,Y.jsxs)(`span`,{className:`text-krona-warning font-semibold flex items-center gap-1`,children:[(0,Y.jsx)(v,{className:`w-3 h-3`}),`Осталось `,e.timeRemaining]})]})]}):(0,Y.jsx)(`div`,{className:`py-6 text-center text-xs text-krona-secondary`,children:`Пост свободен. Готов к приему автомобиля.`})]}),(0,Y.jsx)(`div`,{className:`pt-2 border-t border-krona-border/60 flex justify-end gap-2`,children:r?(0,Y.jsx)(n,{variant:`outline`,size:`sm`,className:`w-full text-xs`,onClick:()=>a(`/operations/work-orders`),children:`Открыть заказ-наряд`}):(0,Y.jsx)(n,{variant:`primary`,size:`sm`,className:`w-full text-xs`,onClick:()=>t(!0),children:`Назначить автомобиль`})})]},e.id)})})]})},ve=()=>{let e=j(),t=T(),{getActiveProfile:r,getActiveCapabilities:a,setIsQuickActionsOpen:o,activeLocation:s}=w(),c=r(),l=a(),u=e.pathname;return u===`/operations/pos`?(0,Y.jsx)(le,{}):u===`/operations/kds`?(0,Y.jsx)(ue,{}):u===`/operations/dining`?(0,Y.jsx)(de,{}):u===`/operations/work-orders`?(0,Y.jsx)(Z,{}):u===`/operations/booking`?(0,Y.jsx)(fe,{}):u===`/operations/delivery`?(0,Y.jsx)(pe,{}):u===`/operations/courier`?(0,Y.jsx)(pe,{initialMobile:!0}):u===`/operations/recipes`?(0,Y.jsx)(me,{}):u===`/operations/inventory`?(0,Y.jsx)(ne,{}):u===`/operations/orders`?(0,Y.jsx)(re,{}):u===`/operations/purchasing`?(0,Y.jsx)($,{}):u===`/operations/bays`?(0,Y.jsx)(_e,{}):u===`/operations/catalog`?(0,Y.jsxs)(`div`,{className:`space-y-4 animate-fade-in`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center justify-between bg-krona-surface p-3.5 rounded-xl border border-krona-border shadow-krona-soft`,children:[(0,Y.jsxs)(`div`,{children:[(0,Y.jsxs)(`h2`,{className:`text-sm font-bold text-krona-primary`,children:[c.terminology.itemsLabel,` (`,s,`)`]}),(0,Y.jsx)(`p`,{className:`text-xs text-krona-secondary`,children:`Управление ассортиментом, ценами продажи, себестоимостью и стоп-листом`})]}),(0,Y.jsxs)(n,{variant:`primary`,size:`sm`,onClick:()=>o(!0),children:[`+ Добавить `,c.terminology.itemLabel.toLowerCase()]})]}),(0,Y.jsx)(`div`,{className:`bg-krona-surface border border-krona-border rounded-xl shadow-krona-soft overflow-hidden`,children:(0,Y.jsxs)(`table`,{className:`w-full text-left text-xs border-collapse`,children:[(0,Y.jsx)(`thead`,{className:`bg-krona-workspace/80 text-krona-secondary border-b border-krona-border`,children:(0,Y.jsxs)(`tr`,{children:[(0,Y.jsx)(`th`,{className:`p-3 font-semibold`,children:`Наименование`}),(0,Y.jsx)(`th`,{className:`p-3 font-semibold`,children:`Категория`}),(0,Y.jsx)(`th`,{className:`p-3 font-semibold`,children:`Цена продажи`}),(0,Y.jsx)(`th`,{className:`p-3 font-semibold`,children:`Себестоимость`}),(0,Y.jsx)(`th`,{className:`p-3 font-semibold`,children:`Маржа %`}),(0,Y.jsx)(`th`,{className:`p-3 font-semibold text-center`,children:`Статус в меню`})]})}),(0,Y.jsx)(`tbody`,{className:`divide-y divide-krona-border/50`,children:L.map(e=>(0,Y.jsxs)(`tr`,{className:`hover:bg-krona-workspace/50 transition-colors`,children:[(0,Y.jsxs)(`td`,{className:`p-3 font-medium text-krona-primary`,children:[(0,Y.jsx)(`div`,{children:e.name}),e.description&&(0,Y.jsx)(`div`,{className:`text-[11px] text-krona-secondary`,children:e.description})]}),(0,Y.jsx)(`td`,{className:`p-3 text-krona-secondary`,children:e.category}),(0,Y.jsx)(`td`,{className:`p-3 font-bold text-krona-primary`,children:F(e.price)}),(0,Y.jsx)(`td`,{className:`p-3 text-krona-secondary`,children:F(e.cost)}),(0,Y.jsxs)(`td`,{className:`p-3 font-semibold text-krona-green`,children:[e.marginPercent,`%`]}),(0,Y.jsx)(`td`,{className:`p-3 text-center`,children:e.isStopListed?(0,Y.jsx)(i,{variant:`danger`,size:`sm`,children:`В стоп-листе`}):(0,Y.jsx)(i,{variant:`green`,size:`sm`,children:`Доступно`})})]},e.id))})]})})]}):(0,Y.jsxs)(`div`,{className:`space-y-4 animate-fade-in`,children:[(0,Y.jsxs)(`div`,{className:`flex flex-col sm:flex-row sm:items-center justify-between gap-3 bg-krona-surface p-4 rounded-xl border border-krona-border shadow-krona-soft`,children:[(0,Y.jsxs)(`div`,{children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Y.jsxs)(`h1`,{className:`text-base font-bold text-krona-primary`,children:[`Операционный хаб: `,c.name]}),(0,Y.jsx)(k,{level:`target`,size:`sm`})]}),(0,Y.jsxs)(`p`,{className:`text-xs text-krona-secondary mt-0.5`,children:[`Точка: `,(0,Y.jsx)(`strong`,{className:`text-krona-primary`,children:s}),` • Отраслевой рабочий контур с быстрым доступом`]})]}),(0,Y.jsxs)(`div`,{className:`flex items-center gap-2`,children:[l.pos&&(0,Y.jsx)(n,{variant:`primary`,size:`sm`,onClick:()=>t(`/operations/pos`),children:`Открыть кассу (POS)`}),l.kds&&(0,Y.jsx)(n,{variant:`gold`,size:`sm`,onClick:()=>t(`/operations/kds`),children:`Кухонный экран (KDS)`})]})]}),(0,Y.jsx)(`div`,{className:`grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-3.5`,children:c.operationsTabs.filter(e=>e.id!==`overview`).map(e=>(0,Y.jsxs)(`div`,{onClick:()=>t(e.route),className:`p-4 rounded-xl border border-krona-border bg-krona-surface hover:border-krona-green/70 hover:shadow-krona-soft cursor-pointer transition-all space-y-2 group`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,Y.jsx)(`span`,{className:`font-bold text-sm text-krona-primary group-hover:text-krona-green transition-colors`,children:e.label}),e.badge&&(0,Y.jsx)(i,{variant:`gold`,size:`sm`,children:e.badge})]}),(0,Y.jsxs)(`p`,{className:`text-xs text-krona-secondary`,children:[`Перейти в рабочий экран «`,e.label,`» для текущей смены`]}),(0,Y.jsx)(`div`,{className:`text-xs text-krona-green font-medium pt-1`,children:`Открыть раздел →`})]},e.id))})]})};export{ve as OperationsModule};