1 line
No EOL
21 KiB
JavaScript
1 line
No EOL
21 KiB
JavaScript
import{f as e,h as t,i as n,r,s as i,t as a}from"./useToast-CS8pZhce.js";import{t as o}from"./truck-D5o8mTsH.js";import{B as s,E as c,H as ee,L as l,b as u,g as d,n as f,r as p,st as m,t as h,w as g,y as te,z as ne}from"./index-CNnq9VO5.js";import{t as re}from"./useOrders-Dp-LV7vp.js";import{t as _}from"./currency-DdDs82F5.js";import{t as v}from"./useInventory-BwKK4D-W.js";var y=t(e(),1),b=i(),x=()=>{let{showToast:e}=a(),{orders:t,products:i,payments:x,shipments:S,createOrder:C,confirmOrder:w,cancelOrder:T,createPayment:E,createShipment:ie,processReturn:ae}=re(),{warehouses:D}=v(),[O,oe]=(0,y.useState)(``),[k,se]=(0,y.useState)(`all`),[A,j]=(0,y.useState)(null),[M,N]=(0,y.useState)(!1),[P,F]=(0,y.useState)(!1),[I,L]=(0,y.useState)(!1),[R,z]=(0,y.useState)(!1),[B,V]=(0,y.useState)(``),[H,U]=(0,y.useState)(``),[W,G]=(0,y.useState)(1),[K,ce]=(0,y.useState)(`bank_transfer`),[q,J]=(0,y.useState)(`wh_main`),[Y,le]=(0,y.useState)(`Не подошел размер / брак`),X=(0,y.useMemo)(()=>A?t.find(e=>e.id===A.id)||A:null,[t,A]),Z=(0,y.useMemo)(()=>t.filter(e=>{let t=k===`all`||e.status===k,n=!O||e.orderNumber.toLowerCase().includes(O.toLowerCase())||e.customerName.toLowerCase().includes(O.toLowerCase());return t&&n}),[t,k,O]),Q=async t=>{try{await w(t,q),e(`Заказ подтвержден! Зарезервирован остаток на складе.`,`success`)}catch(t){e(`Ошибка: ${t instanceof Error?t.message:String(t)}`,`error`)}},ue=async()=>{if(X)try{await E(X.id,X.total,K,!0),F(!1),e(`Оплата успешно принята! Поступление отражено в ДДС Финансов.`,`success`)}catch(t){e(`Ошибка оплаты: ${t instanceof Error?t.message:String(t)}`,`error`)}},de=async()=>{if(X)try{await ie(X.id,q),L(!1),e(`Отгрузка сформирована! Товар списан со склада.`,`success`)}catch(t){e(`Ошибка отгрузки: ${t instanceof Error?t.message:String(t)}`,`error`)}},fe=async t=>{try{await T(t),e(`Заказ отменен. Резервы на складе освобождены.`,`info`)}catch(t){e(`Ошибка отмены: ${t instanceof Error?t.message:String(t)}`,`error`)}},pe=async()=>{if(X)try{let t=X.items.map(e=>({productId:e.productId,sku:e.sku,name:e.name,quantity:e.quantity,refundAmount:e.totalPrice}));await ae(X.id,Y,t,q,!0),z(!1),e(`Возврат оформлен! Товар возвращен на склад, расход отражен в ДДС.`,`success`)}catch(t){e(`Ошибка возврата: ${t instanceof Error?t.message:String(t)}`,`error`)}},me=async t=>{t.preventDefault();let n=i.find(e=>e.id===H)||i[0];if(!n)return;let r=n.price.minor,a=r*W,o=`ORD-${Date.now().toString().slice(-5)}`;await C({orderNumber:o,customerType:`contact`,customerId:`cnt_custom`,customerName:B||`Розничный покупатель`,status:`draft`,paymentStatus:`pending`,fulfillmentStatus:`unfulfilled`,items:[{id:`item_${Date.now()}`,productId:n.id,sku:n.sku,name:n.name,quantity:W,unitPrice:{minor:r,currency:`RUB`},discountMinor:0,totalPrice:{minor:a,currency:`RUB`}}],subtotal:{minor:a,currency:`RUB`},discountMinor:0,taxMinor:Math.round(a*.2),shippingMinor:0,total:{minor:a,currency:`RUB`},channel:`b2b`}),N(!1),V(``),G(1),e(`Заказ ${o} успешно создан`,`success`)},$=e=>{switch(e){case`confirmed`:return(0,b.jsx)(r,{variant:`gold`,size:`sm`,children:`Подтвержден (Резерв)`});case`shipped`:return(0,b.jsx)(r,{variant:`blue`,size:`sm`,children:`Отгружен со склада`});case`delivered`:return(0,b.jsx)(r,{variant:`green`,size:`sm`,children:`Доставлен`});case`cancelled`:return(0,b.jsx)(r,{variant:`danger`,size:`sm`,children:`Отменен`});default:return(0,b.jsx)(r,{variant:`gray`,size:`sm`,children:`Черновик`})}};return(0,b.jsxs)(`div`,{className:`space-y-4 animate-fade-in`,children:[(0,b.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,b.jsxs)(`div`,{children:[(0,b.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,b.jsx)(`h1`,{className:`text-sm font-bold text-krona-primary`,children:`Коммерция & Продажи: Управление Заказами`}),(0,b.jsx)(h,{level:`pilot1`,size:`sm`})]}),(0,b.jsx)(`p`,{className:`text-xs text-krona-secondary mt-0.5`,children:`Жизненный цикл заказа: Черновик → Подтверждение (резерв) → Оплата (ДДС) → Отгрузка (списание со склада) → Доставка / Возврат`})]}),(0,b.jsx)(`div`,{className:`flex items-center gap-2`,children:(0,b.jsxs)(n,{variant:`primary`,size:`sm`,onClick:()=>N(!0),children:[(0,b.jsx)(g,{className:`w-3.5 h-3.5 mr-1`}),` Новый заказ`]})})]}),(0,b.jsxs)(`div`,{className:`flex flex-col sm:flex-row sm:items-center justify-between gap-3`,children:[(0,b.jsx)(`div`,{className:`flex items-center gap-1 overflow-x-auto text-xs`,children:[{key:`all`,label:`Все заказы`},{key:`draft`,label:`Черновики`},{key:`confirmed`,label:`Подтвержденные`},{key:`shipped`,label:`Отгруженные`},{key:`delivered`,label:`Доставленные`},{key:`cancelled`,label:`Отмененные`}].map(e=>(0,b.jsx)(`button`,{onClick:()=>se(e.key),className:`px-3 py-1.5 rounded-lg font-medium transition-colors ${k===e.key?`bg-krona-green text-white shadow-sm`:`bg-krona-surface text-krona-secondary hover:text-krona-primary border border-krona-border`}`,children:e.label},e.key))}),(0,b.jsxs)(`div`,{className:`relative w-64`,children:[(0,b.jsx)(te,{className:`w-3.5 h-3.5 absolute left-2.5 top-2.5 text-krona-secondary`}),(0,b.jsx)(`input`,{type:`text`,value:O,onChange:e=>oe(e.target.value),placeholder:`Поиск по номеру или клиенту...`,className:`w-full pl-8 pr-3 py-1.5 text-xs bg-krona-surface border border-krona-border rounded-lg text-krona-primary focus:outline-none focus:border-krona-green`})]})]}),(0,b.jsx)(`div`,{className:`bg-krona-surface border border-krona-border rounded-xl shadow-krona-soft overflow-hidden`,children:(0,b.jsxs)(`table`,{className:`w-full text-xs text-left`,children:[(0,b.jsx)(`thead`,{className:`bg-krona-workspace text-krona-secondary border-b border-krona-border`,children:(0,b.jsxs)(`tr`,{children:[(0,b.jsx)(`th`,{className:`p-3 font-semibold`,children:`Номер заказа`}),(0,b.jsx)(`th`,{className:`p-3 font-semibold`,children:`Клиент`}),(0,b.jsx)(`th`,{className:`p-3 font-semibold`,children:`Позиций`}),(0,b.jsx)(`th`,{className:`p-3 font-semibold`,children:`Сумма заказа`}),(0,b.jsx)(`th`,{className:`p-3 font-semibold`,children:`Статус заказа`}),(0,b.jsx)(`th`,{className:`p-3 font-semibold`,children:`Оплата`}),(0,b.jsx)(`th`,{className:`p-3 font-semibold`,children:`Складской статус`}),(0,b.jsx)(`th`,{className:`p-3 font-semibold text-right`,children:`Действие`})]})}),(0,b.jsxs)(`tbody`,{className:`divide-y divide-krona-border`,children:[Z.map(e=>(0,b.jsxs)(`tr`,{"data-testid":`order-row-${e.id}`,onClick:()=>j(e),className:`hover:bg-krona-workspace/50 cursor-pointer transition-colors`,children:[(0,b.jsx)(`td`,{className:`p-3 font-mono font-bold text-krona-primary`,children:e.orderNumber}),(0,b.jsx)(`td`,{className:`p-3 font-medium text-krona-primary`,children:e.customerName}),(0,b.jsxs)(`td`,{className:`p-3 text-krona-secondary`,children:[e.items.length,` поз.`]}),(0,b.jsx)(`td`,{className:`p-3 font-bold text-krona-green`,children:_(e.total.minor)}),(0,b.jsx)(`td`,{className:`p-3`,children:$(e.status)}),(0,b.jsx)(`td`,{className:`p-3`,children:(0,b.jsx)(r,{variant:e.paymentStatus===`paid`?`green`:e.paymentStatus===`refunded`?`danger`:`warning`,size:`sm`,children:e.paymentStatus===`paid`?`Оплачен`:e.paymentStatus===`refunded`?`Возврат`:`Ожидает оплаты`})}),(0,b.jsx)(`td`,{className:`p-3`,children:(0,b.jsx)(r,{variant:e.fulfillmentStatus===`fulfilled`?`green`:e.fulfillmentStatus===`returned`?`danger`:`gray`,size:`sm`,children:e.fulfillmentStatus===`fulfilled`?`Отгружен`:e.fulfillmentStatus===`returned`?`Возвращен`:`Не отгружен`})}),(0,b.jsx)(`td`,{className:`p-3 text-right`,children:(0,b.jsxs)(n,{variant:`ghost`,size:`sm`,children:[`Управление `,(0,b.jsx)(ee,{className:`w-3.5 h-3.5 ml-1`})]})})]},e.id)),Z.length===0&&(0,b.jsx)(`tr`,{children:(0,b.jsx)(`td`,{colSpan:8,className:`p-8 text-center text-krona-secondary text-xs italic`,children:`Заказы не найдены`})})]})]})}),(0,b.jsx)(f,{isOpen:!!X,onClose:()=>j(null),title:X?`Заказ ${X.orderNumber}`:``,size:`lg`,children:X&&(0,b.jsxs)(`div`,{className:`space-y-5 text-xs`,children:[(0,b.jsxs)(`div`,{className:`p-3.5 bg-krona-workspace rounded-xl border border-krona-border space-y-3`,children:[(0,b.jsx)(`div`,{className:`text-[11px] font-bold uppercase text-krona-secondary tracking-wider`,children:`Управление жизненным циклом заказа:`}),(0,b.jsxs)(`div`,{className:`flex flex-wrap items-center gap-2`,children:[X.status===`draft`&&(0,b.jsxs)(n,{variant:`primary`,size:`sm`,"data-testid":`confirm-order-btn`,onClick:()=>Q(X.id),children:[(0,b.jsx)(s,{className:`w-3.5 h-3.5 mr-1`}),` Подтвердить заказ (Резерв на складе)`]}),X.paymentStatus===`pending`&&X.status!==`cancelled`&&(0,b.jsxs)(n,{variant:`gold`,size:`sm`,"data-testid":`record-payment-btn`,onClick:()=>F(!0),children:[(0,b.jsx)(l,{className:`w-3.5 h-3.5 mr-1`}),` Зафиксировать оплату (ДДС)`]}),(X.status===`confirmed`||X.paymentStatus===`paid`)&&X.fulfillmentStatus===`unfulfilled`&&X.status!==`cancelled`&&(0,b.jsxs)(n,{variant:`primary`,size:`sm`,"data-testid":`create-shipment-btn`,onClick:()=>L(!0),children:[(0,b.jsx)(o,{className:`w-3.5 h-3.5 mr-1`}),` Сформировать отгрузку (Списать со склада)`]}),X.status===`shipped`&&(0,b.jsxs)(n,{variant:`secondary`,size:`sm`,onClick:()=>Q(X.id),children:[(0,b.jsx)(s,{className:`w-3.5 h-3.5 mr-1`}),` Доставлен покупателю`]}),X.fulfillmentStatus===`fulfilled`&&(0,b.jsxs)(n,{variant:`secondary`,size:`sm`,onClick:()=>z(!0),children:[(0,b.jsx)(u,{className:`w-3.5 h-3.5 mr-1 text-rose-500`}),` Оформить возврат (Возврат на склад & ДДС)`]}),X.status!==`cancelled`&&X.status!==`shipped`&&X.fulfillmentStatus!==`fulfilled`&&(0,b.jsxs)(n,{variant:`ghost`,size:`sm`,className:`text-rose-600 hover:text-rose-700 hover:bg-rose-500/10 ml-auto`,onClick:()=>fe(X.id),children:[(0,b.jsx)(ne,{className:`w-3.5 h-3.5 mr-1`}),` Отменить заказ (Снять резерв)`]})]})]}),(0,b.jsxs)(`div`,{className:`grid grid-cols-2 sm:grid-cols-4 gap-3 bg-krona-surface p-3.5 rounded-xl border border-krona-border`,children:[(0,b.jsxs)(`div`,{children:[(0,b.jsx)(`span`,{className:`text-krona-secondary`,children:`Клиент:`}),(0,b.jsx)(`div`,{className:`font-bold text-krona-primary mt-0.5`,children:X.customerName})]}),(0,b.jsxs)(`div`,{children:[(0,b.jsx)(`span`,{className:`text-krona-secondary`,children:`Сумма:`}),(0,b.jsx)(`div`,{className:`font-bold text-krona-green mt-0.5`,children:_(X.total.minor)})]}),(0,b.jsxs)(`div`,{children:[(0,b.jsx)(`span`,{className:`text-krona-secondary`,children:`Статус заказа:`}),(0,b.jsx)(`div`,{className:`mt-0.5`,children:$(X.status)})]}),(0,b.jsxs)(`div`,{children:[(0,b.jsx)(`span`,{className:`text-krona-secondary`,children:`Оплата:`}),(0,b.jsx)(`div`,{className:`mt-0.5`,children:(0,b.jsx)(r,{variant:X.paymentStatus===`paid`?`green`:`warning`,size:`sm`,children:X.paymentStatus})})]})]}),(0,b.jsxs)(`div`,{children:[(0,b.jsxs)(`div`,{className:`font-bold text-krona-primary mb-2 flex items-center gap-1.5`,children:[(0,b.jsx)(c,{className:`w-4 h-4 text-krona-secondary`}),` Состав заказа:`]}),(0,b.jsx)(`div`,{className:`border border-krona-border rounded-lg overflow-hidden`,children:(0,b.jsxs)(`table`,{className:`w-full text-xs text-left`,children:[(0,b.jsx)(`thead`,{className:`bg-krona-workspace text-krona-secondary border-b border-krona-border`,children:(0,b.jsxs)(`tr`,{children:[(0,b.jsx)(`th`,{className:`p-2.5 font-semibold`,children:`Артикул`}),(0,b.jsx)(`th`,{className:`p-2.5 font-semibold`,children:`Наименование`}),(0,b.jsx)(`th`,{className:`p-2.5 font-semibold`,children:`Кол-во`}),(0,b.jsx)(`th`,{className:`p-2.5 font-semibold`,children:`Цена за ед.`}),(0,b.jsx)(`th`,{className:`p-2.5 font-semibold text-right`,children:`Сумма`})]})}),(0,b.jsx)(`tbody`,{className:`divide-y divide-krona-border`,children:X.items.map(e=>(0,b.jsxs)(`tr`,{children:[(0,b.jsx)(`td`,{className:`p-2.5 font-mono text-krona-secondary`,children:e.sku}),(0,b.jsx)(`td`,{className:`p-2.5 font-medium text-krona-primary`,children:e.name}),(0,b.jsxs)(`td`,{className:`p-2.5 font-bold`,children:[e.quantity,` шт.`]}),(0,b.jsx)(`td`,{className:`p-2.5 text-krona-secondary`,children:_(e.unitPrice.minor)}),(0,b.jsx)(`td`,{className:`p-2.5 font-bold text-krona-primary text-right`,children:_(e.totalPrice.minor)})]},e.id))})]})})]}),(0,b.jsxs)(`div`,{className:`p-3 bg-krona-workspace rounded-lg border border-krona-border space-y-1.5`,children:[(0,b.jsxs)(`div`,{className:`flex justify-between text-krona-secondary`,children:[(0,b.jsx)(`span`,{children:`Промежуточный итог:`}),(0,b.jsx)(`span`,{children:_(X.subtotal.minor)})]}),(0,b.jsxs)(`div`,{className:`flex justify-between text-krona-secondary`,children:[(0,b.jsx)(`span`,{children:`НДС (20%):`}),(0,b.jsx)(`span`,{children:_(X.taxMinor)})]}),(0,b.jsxs)(`div`,{className:`flex justify-between font-bold text-sm text-krona-primary border-t border-krona-border pt-1`,children:[(0,b.jsx)(`span`,{children:`Итого к оплате:`}),(0,b.jsx)(`span`,{className:`text-krona-green`,children:_(X.total.minor)})]})]}),(0,b.jsxs)(`div`,{className:`space-y-2`,children:[(0,b.jsx)(`div`,{className:`font-bold text-krona-primary`,children:`Связанные документы:`}),(0,b.jsxs)(`div`,{className:`grid grid-cols-1 sm:grid-cols-2 gap-2 text-[11px]`,children:[x.filter(e=>e.orderId===X.id).map(e=>(0,b.jsxs)(`div`,{className:`p-2.5 rounded-lg border border-krona-border bg-emerald-500/5 flex items-center justify-between`,children:[(0,b.jsxs)(`div`,{children:[(0,b.jsxs)(`div`,{className:`font-bold text-emerald-700 dark:text-emerald-300`,children:[`Оплата `,e.transactionId]}),(0,b.jsxs)(`div`,{className:`text-krona-secondary`,children:[e.method,` • `,m(e.paidAt)]})]}),(0,b.jsx)(`span`,{className:`font-bold text-krona-green`,children:_(e.amount.minor)})]},e.id)),S.filter(e=>e.orderId===X.id).map(e=>(0,b.jsxs)(`div`,{className:`p-2.5 rounded-lg border border-krona-border bg-blue-500/5 flex items-center justify-between`,children:[(0,b.jsxs)(`div`,{children:[(0,b.jsxs)(`div`,{className:`font-bold text-blue-700 dark:text-blue-300`,children:[`Отгрузка `,e.trackingNumber]}),(0,b.jsxs)(`div`,{className:`text-krona-secondary`,children:[e.carrier,` • `,e.items.length,` поз.`]})]}),(0,b.jsx)(r,{variant:`blue`,size:`sm`,children:e.status})]},e.id))]})]})]})}),(0,b.jsx)(p,{isOpen:P,onClose:()=>F(!1),title:`Зафиксировать оплату по заказу`,size:`md`,children:X&&(0,b.jsxs)(`div`,{className:`space-y-4 text-xs`,children:[(0,b.jsxs)(`p`,{className:`text-krona-secondary`,children:[`Оплата заказа `,(0,b.jsx)(`strong`,{className:`text-krona-primary`,children:X.orderNumber}),` на сумму`,` `,(0,b.jsx)(`strong`,{className:`text-krona-green`,children:_(X.total.minor)}),`. Поступление денежных средств будет мгновенно отражено в модуле Финансы (ДДС) и увеличит остаток расчетного счета.`]}),(0,b.jsxs)(`div`,{children:[(0,b.jsx)(`label`,{className:`block font-semibold text-krona-primary mb-1`,children:`Способ оплаты:`}),(0,b.jsxs)(`select`,{value:K,onChange:e=>ce(e.target.value),className:`w-full px-3 py-1.5 bg-krona-workspace border border-krona-border rounded-lg text-krona-primary`,children:[(0,b.jsx)(`option`,{value:`bank_transfer`,children:`Безналичный расчет (Счет)`}),(0,b.jsx)(`option`,{value:`card`,children:`Банковская карта (Эквайринг)`}),(0,b.jsx)(`option`,{value:`online`,children:`СБП / Онлайн`}),(0,b.jsx)(`option`,{value:`cash`,children:`Наличные в кассу`})]})]}),(0,b.jsxs)(`div`,{className:`flex justify-end gap-2 pt-2 border-t border-krona-border`,children:[(0,b.jsx)(n,{variant:`secondary`,size:`sm`,onClick:()=>F(!1),children:`Отмена`}),(0,b.jsxs)(n,{variant:`primary`,size:`sm`,"data-testid":`submit-payment-btn`,onClick:ue,children:[(0,b.jsx)(l,{className:`w-3.5 h-3.5 mr-1`}),` Провести платеж`]})]})]})}),(0,b.jsx)(p,{isOpen:I,onClose:()=>L(!1),title:`Формирование складской отгрузки`,size:`md`,children:X&&(0,b.jsxs)(`div`,{className:`space-y-4 text-xs`,children:[(0,b.jsxs)(`p`,{className:`text-krona-secondary`,children:[`Формирование накладной на отгрузку для заказа `,(0,b.jsx)(`strong`,{className:`text-krona-primary`,children:X.orderNumber}),`. При отгрузке зарезервированные товары будут списаны с физического складского остатка.`]}),(0,b.jsxs)(`div`,{children:[(0,b.jsx)(`label`,{className:`block font-semibold text-krona-primary mb-1`,children:`Склад списания:`}),(0,b.jsx)(`select`,{value:q,onChange:e=>J(e.target.value),className:`w-full px-3 py-1.5 bg-krona-workspace border border-krona-border rounded-lg text-krona-primary`,children:D.map(e=>(0,b.jsxs)(`option`,{value:e.id,children:[e.name,` (`,e.address,`)`]},e.id))})]}),(0,b.jsxs)(`div`,{className:`flex justify-end gap-2 pt-2 border-t border-krona-border`,children:[(0,b.jsx)(n,{variant:`secondary`,size:`sm`,onClick:()=>L(!1),children:`Отмена`}),(0,b.jsxs)(n,{variant:`primary`,size:`sm`,"data-testid":`submit-shipment-btn`,onClick:de,children:[(0,b.jsx)(o,{className:`w-3.5 h-3.5 mr-1`}),` Сформировать отгрузку`]})]})]})}),(0,b.jsx)(p,{isOpen:R,onClose:()=>z(!1),title:`Оформление возврата товара`,size:`md`,children:X&&(0,b.jsxs)(`div`,{className:`space-y-4 text-xs`,children:[(0,b.jsxs)(`div`,{className:`p-3 bg-rose-500/10 border border-rose-500/30 rounded-lg text-rose-800 dark:text-rose-300`,children:[`При возврате товара остаток на складе будет автоматически восстановлен, а в модуле Финансы (ДДС) сформируется выплата возврата клиенту на сумму `,(0,b.jsx)(`strong`,{className:`font-bold`,children:_(X.total.minor)}),`.`]}),(0,b.jsxs)(`div`,{children:[(0,b.jsx)(`label`,{className:`block font-semibold text-krona-primary mb-1`,children:`Причина возврата:`}),(0,b.jsx)(`input`,{type:`text`,value:Y,onChange:e=>le(e.target.value),className:`w-full px-3 py-1.5 bg-krona-workspace border border-krona-border rounded-lg text-krona-primary`})]}),(0,b.jsxs)(`div`,{children:[(0,b.jsx)(`label`,{className:`block font-semibold text-krona-primary mb-1`,children:`Склад возврата:`}),(0,b.jsx)(`select`,{value:q,onChange:e=>J(e.target.value),className:`w-full px-3 py-1.5 bg-krona-workspace border border-krona-border rounded-lg text-krona-primary`,children:D.map(e=>(0,b.jsx)(`option`,{value:e.id,children:e.name},e.id))})]}),(0,b.jsxs)(`div`,{className:`flex justify-end gap-2 pt-2 border-t border-krona-border`,children:[(0,b.jsx)(n,{variant:`secondary`,size:`sm`,onClick:()=>z(!1),children:`Отмена`}),(0,b.jsxs)(n,{variant:`danger`,size:`sm`,onClick:pe,children:[(0,b.jsx)(u,{className:`w-3.5 h-3.5 mr-1`}),` Провести возврат`]})]})]})}),(0,b.jsx)(p,{isOpen:M,onClose:()=>N(!1),title:`Создание нового коммерческого заказа`,size:`md`,children:(0,b.jsxs)(`form`,{onSubmit:me,className:`space-y-4 text-xs`,children:[(0,b.jsxs)(`div`,{children:[(0,b.jsx)(`label`,{className:`block font-semibold text-krona-primary mb-1`,children:`Клиент (ФИО или название компании):`}),(0,b.jsx)(`input`,{type:`text`,required:!0,placeholder:`Например: ООО «СеверТорг» или Иванов Иван`,value:B,onChange:e=>V(e.target.value),className:`w-full px-3 py-1.5 bg-krona-workspace border border-krona-border rounded-lg text-krona-primary`})]}),(0,b.jsxs)(`div`,{children:[(0,b.jsx)(`label`,{className:`block font-semibold text-krona-primary mb-1`,children:`Товарная позиция:`}),(0,b.jsx)(`select`,{value:H,onChange:e=>U(e.target.value),className:`w-full px-3 py-1.5 bg-krona-workspace border border-krona-border rounded-lg text-krona-primary`,children:i.map(e=>(0,b.jsxs)(`option`,{value:e.id,children:[e.name,` — `,_(e.price.minor)]},e.id))})]}),(0,b.jsxs)(`div`,{children:[(0,b.jsx)(`label`,{className:`block font-semibold text-krona-primary mb-1`,children:`Количество (шт.):`}),(0,b.jsx)(`input`,{type:`number`,min:1,value:W,onChange:e=>G(Number(e.target.value)||1),className:`w-32 px-3 py-1.5 bg-krona-workspace border border-krona-border rounded-lg text-krona-primary`})]}),(0,b.jsxs)(`div`,{className:`flex justify-end gap-2 pt-2 border-t border-krona-border`,children:[(0,b.jsx)(n,{variant:`secondary`,size:`sm`,type:`button`,onClick:()=>N(!1),children:`Отмена`}),(0,b.jsxs)(n,{variant:`primary`,size:`sm`,type:`submit`,children:[(0,b.jsx)(d,{className:`w-3.5 h-3.5 mr-1`}),` Создать заказ`]})]})]})})]})};export{x as SalesModule}; |