Files
nademitex_admin/dist/assets/OrdersView-BCieQtX2.js
T
2026-09-30 09:53:30 +03:30

1 line
33 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{$ as e,A as t,At as n,B as r,D as i,Dt as a,E as o,H as s,J as c,M as l,U as u,Z as d,a as f,c as p,d as m,g as h,h as g,k as _,kt as v,l as y,m as b,p as x,r as S,s as C,st as w,t as T,u as E,w as D,x as O}from"./_plugin-vue_export-helper-QrIvvHC8.js";import{a as k,f as ee,m as A,t as j}from"./http-BjLkjdQu.js";import{B as M,C as N,D as P,E as F,H as I,P as L,R,T as z,c as B,i as V,o as H,s as U,v as W,y as G,z as K}from"./index-BzcByePp.js";import{t as q}from"./AdminSelect-8XDtPu3U.js";import{t as J}from"./AdminImageLightbox-CE3ZJ5-o.js";import{n as Y,r as X}from"./adminLabels-Cz9ccm1Z.js";import{a as te,n as Z,o as ne,s as Q,t as re}from"./orderStatus-CeC05Cv4.js";import{t as ie}from"./StatusBadge-jGFZVW4C.js";function ae(){let t=K(),n=M(),i=k(),a=e([]),s=e([]),c=new Set(Z.map(e=>e.key));function l(){let e=typeof t.query.tab==`string`?t.query.tab:``;return c.has(e)?e:`all`}let u=e([]),f=e(l()),p=e(``),m=e(``),h=e(!1),g=e(!1),_=e(!1),v=e(``),y=e(!1),b=()=>({customerId:``,customerName:``,customerPhone:``,items:[]}),x=d(b()),S=C(()=>x.customerId.length>0&&x.items.length>0),w=C(()=>{let e=[...s.value];return e.sort((e,t)=>Number(t.isActive)-Number(e.isActive)||e.name.localeCompare(t.name,`fa`)),e});function T(e){let t=s.value.find(t=>t.id===e);x.customerId=e,x.customerName=t?.name??``,x.customerPhone=t?.phone??``}async function E(){try{s.value=await G.list()}catch(e){i.error(e instanceof j?e.message:`بارگذاری مشتریان انجام نشد.`)}}let D=C(()=>{let e=u.value;if(f.value!==`all`&&(e=e.filter(e=>e.status===f.value)),m.value.trim()){let t=m.value.trim();e=e.filter(e=>e.orderNumber.includes(t)||e.customerName.includes(t))}return e}),O=C(()=>u.value.find(e=>e.id===p.value)??null);function ee(e){let t=e.trim();if(t)return u.value.find(e=>e.id===t||e.orderNumber.toUpperCase()===t.toUpperCase())}async function A(){let e=typeof t.query.order==`string`?t.query.order:``;if(!e||!u.value.length)return;let r=ee(e);if(!r){m.value=e;return}let i=typeof t.query.focus==`string`?t.query.focus:``;if(i===`pricing`){await n.replace(`/orders/${r.id}/pricing`);return}if(i===`checks`){await n.replace(`/orders/${r.id}/checks`);return}I(r),m.value=r.orderNumber}async function P(){try{let[e,t,n]=await Promise.all([z.list(),W.list(),G.list()]);u.value=e.map(e=>N(e)),a.value=t,s.value=n,await A()}catch(e){i.error(e instanceof j?e.message:`بارگذاری سفارش‌ها انجام نشد.`)}}o(()=>{P()}),r(()=>[t.query.order,t.query.focus],()=>{A()}),r(()=>t.query.tab,()=>{let e=l();f.value!==e&&(f.value=e)}),r(f,e=>{let r=typeof t.query.tab==`string`?t.query.tab:`all`,i=e===`all`?void 0:e;(r===`all`?void 0:r)!==i&&n.replace({query:{...t.query,tab:i}})});function F(e,t=!1){p.value=e.id,t&&(g.value=!0)}async function I(e){p.value=e.id,_.value=!0;try{let t=N(await z.get(e.id)),n=u.value.findIndex(t=>t.id===e.id);n>=0&&(u.value[n]={...u.value[n],...t})}catch{}}function L(){g.value=!1}function R(){_.value=!1}function B(e){return e?e===`check`?`چکی`:`نقدی`:`انتخاب‌نشده`}let V=e(!1);async function H(e){if(V.value)return null;V.value=!0;try{let t=await z.updateStatus(e.orderId,{status:e.status,note:e.note}),n=N(t),r=u.value.findIndex(t=>t.id===e.orderId);return r>=0&&(u.value[r]={...u.value[r],...n}),i.success(`وضعیت سفارش به «${Q(e.status)}» تغییر کرد.`),n}catch(e){return i.error(e instanceof j?e.message:`تغییر وضعیت انجام نشد.`),null}finally{V.value=!1}}function U(e){n.push(`/orders/${e.id}/pricing`)}function q(e){n.push(`/orders/${e.id}/checks`)}function J(e){n.push({path:`/cash-payments`,query:{order:e.orderNumber}})}function Y(){Object.assign(x,b()),v.value=``,h.value=!0,E()}function X(){h.value=!1,v.value=``}function te(e){return x.items.some(t=>t.productId===e.productId)?(v.value=`این محصول قبلاً به سفارش اضافه شده است.`,!1):(x.items.push(e),v.value=``,!0)}function ne(e){x.items=x.items.filter(t=>t.productId!==e)}async function re(){if(!S.value){v.value=`انتخاب مشتری و حداقل یک محصول الزامی است.`;return}y.value=!0;try{let e=await z.create({customerId:x.customerId||void 0,userId:x.customerId||void 0,customerName:x.customerName.trim(),customerPhone:x.customerPhone.trim()||void 0,items:x.items.map(e=>({productId:e.productId,meterage:e.meterage}))}),t=N(e);u.value.unshift(t),p.value=t.id,i.success(`سفارش جدید ثبت شد.`),X()}catch(e){i.error(e instanceof j?e.message:`ثبت سفارش انجام نشد.`)}finally{y.value=!1}}return{companies:a,customers:s,activeCustomers:w,applyCustomer:T,loadCustomers:E,orderList:u,activeTab:f,selectedOrderId:p,searchQuery:m,showAddModal:h,showDetailPanel:g,showDetailModal:_,formError:v,form:x,addFormItem:te,removeFormItem:ne,isFormValid:S,filteredOrders:D,selectedOrder:O,selectOrder:F,openOrderDetail:I,closeDetailPanel:L,closeDetailModal:R,settlementLabel:B,changeStatus:H,statusSaving:V,goPricing:U,goChecks:q,goCashReceipt:J,openAddModal:Y,closeAddModal:X,submitAddOrder:re,saving:y}}var oe=Symbol(`orders-page`);function se(){let e=ae();return t(oe,e),e}function ce(){let e=O(oe);if(!e)throw Error(`Orders page context is missing`);return e}var $={class:`order-detail__hero`},le={class:`order-detail__hero-text`},ue={class:`order-detail__id`},de={key:0,class:`order-detail__raw-status`},fe={class:`order-detail__actions no-print`},pe=[`disabled`],me={class:`order-detail__panels`},he={class:`order-detail__section`},ge={class:`order-detail__info`},_e={class:`order-detail__info-row`},ve={class:`order-detail__info-value`},ye={class:`order-detail__info-row`},be={class:`order-detail__info-value order-detail__info-value--phone`,dir:`ltr`},xe={class:`order-detail__info-row`},Se={class:`order-detail__info-value`},Ce={class:`order-detail__info-row`},we={class:`order-detail__info-value`},Te={class:`order-detail__section`},Ee={class:`order-detail__info`},De={class:`order-detail__info-row`},Oe={class:`order-detail__info-value`},ke={class:`order-detail__info-row`},Ae={class:`order-detail__info-value`},je={class:`order-detail__info-row`},Me={class:`order-detail__info-value`},Ne={class:`order-detail__info-row`},Pe={class:`order-detail__info-value`},Fe={key:0,class:`order-detail__section`},Ie={key:0,class:`admin-table-wrap order-detail__table`},Le={class:`admin-table admin-table--compact`},Re={key:1,class:`order-detail__items`},ze={class:`order-detail__item-head`},Be={class:`order-detail__item-meta`},Ve={key:0},He={key:1},Ue={key:2,class:`order-detail__item-total`},We={key:1,class:`order-detail__section`},Ge={class:`order-detail__info`},Ke={class:`order-detail__info-row`},qe={class:`order-detail__info-value`},Je={class:`order-detail__info-row`},Ye={class:`order-detail__info-value`},Xe={key:0,class:`order-detail__info-row`},Ze={class:`order-detail__info-value`},Qe={key:1,class:`order-detail__info-row`},$e={class:`order-detail__info-value`,dir:`ltr`},et={key:2,class:`order-detail__info-row`},tt={class:`order-detail__info-value`},nt={key:0,class:`order-detail__receipt`},rt=[`src`],it={key:1,class:`order-detail__status-hint`},at={class:`order-detail__section order-detail__status no-print`},ot={key:0,class:`order-detail__status-hint`},st={key:1,class:`order-detail__status-form`},ct={class:`admin-form__field`},lt={class:`admin-form__field`},ut=[`disabled`],dt=T(h({__name:`OrderDetailContent`,props:{order:{},settlementLabel:{},layout:{default:`compact`},statusSaving:{type:Boolean}},emits:[`pricing`,`checks`,`cashReceipt`,`finalApprove`,`status`],setup(t,{emit:i}){let o=t,s=i,c=e(``),d=e(``),f=e(!1),h=C(()=>o.order.cashReceipt??null),v=C(()=>o.order.allowedTransitions??[]),x=C(()=>[...v.value]),T=C(()=>[{value:``,label:`انتخاب کنید…`},...x.value.map(e=>({value:e,label:Q(e)}))]),D=C(()=>!!c.value),O=C(()=>o.layout===`desktop`),k=C(()=>re[o.order.status]?.label??o.order.status),A=C(()=>{let e=Q(o.order.rawStatus);return!e||e===k.value?``:e}),j=C(()=>{let e=o.order.customerType;return e?X[e]??o.order.customerType??`—`:`—`}),M=C(()=>ne(o.order)),N=C(()=>te(o.order)),P=C(()=>o.order.settlementMethod===`check`&&!M.value),F=C(()=>o.order.settlementMethod===`cash`&&!M.value&&o.order.rawStatus!==`cash_confirmed`),I=C(()=>M.value?`pricing`:N.value?`final`:P.value?`checks`:F.value?`cash`:null);r(()=>o.order.id,()=>{c.value=``,d.value=``});function L(){if(!c.value||!D.value)return;let e=d.value.trim()||void 0;s(`status`,{orderId:o.order.id,status:c.value,note:e}),c.value=``,d.value=``}function z(){if(h.value?.receiptImage){f.value=!0;return}s(`cashReceipt`)}return(e,r)=>(_(),m(`div`,{class:a([`order-detail`,`order-detail--${t.layout}`])},[p(`header`,$,[p(`div`,le,[p(`div`,ue,[p(`strong`,null,n(t.order.orderNumber),1),g(ie,{status:t.order.status},null,8,[`status`])]),A.value?(_(),m(`p`,de,n(A.value),1)):E(``,!0)]),p(`div`,fe,[M.value?(_(),m(`button`,{key:0,type:`button`,class:a([`admin-btn admin-btn--sm`,I.value===`pricing`?`admin-btn--primary`:`admin-btn--outline`]),onClick:r[0]||=e=>s(`pricing`)},` قیمت‌گذاری سفارش `,2)):E(``,!0),P.value?(_(),m(`button`,{key:1,type:`button`,class:a([`admin-btn admin-btn--sm`,I.value===`checks`?`admin-btn--primary`:`admin-btn--outline`]),onClick:r[1]||=e=>s(`checks`)},` مدیریت چک‌ها `,2)):E(``,!0),F.value?(_(),m(`button`,{key:2,type:`button`,class:a([`admin-btn admin-btn--sm`,I.value===`cash`?`admin-btn--primary`:`admin-btn--outline`]),onClick:z},n(h.value?.receiptImage?`مشاهده رسید`:`رسید پرداخت`),3)):E(``,!0),N.value?(_(),m(`button`,{key:3,type:`button`,class:a([`admin-btn admin-btn--sm`,I.value===`final`?`admin-btn--primary`:`admin-btn--outline`]),disabled:t.statusSaving,onClick:r[2]||=e=>s(`finalApprove`)},` تأیید نهایی `,10,pe)):E(``,!0)])]),p(`div`,me,[p(`section`,he,[r[12]||=p(`h3`,{class:`order-detail__section-title`},`اطلاعات مشتری`,-1),p(`div`,ge,[p(`div`,_e,[g(R,{name:`building`,size:16}),r[8]||=p(`span`,{class:`order-detail__info-label`},`مشتری`,-1),p(`span`,ve,n(t.order.customerName),1)]),p(`div`,ye,[g(R,{name:`phone`,size:16}),r[9]||=p(`span`,{class:`order-detail__info-label`},`تلفن`,-1),p(`span`,be,n(t.order.customerPhone??`—`),1)]),p(`div`,xe,[g(R,{name:`id-card`,size:16}),r[10]||=p(`span`,{class:`order-detail__info-label`},`شناسه ملی`,-1),p(`span`,Se,n(t.order.customerNationalId??`—`),1)]),p(`div`,Ce,[g(R,{name:`user`,size:16}),r[11]||=p(`span`,{class:`order-detail__info-label`},`نوع مشتری`,-1),p(`span`,we,n(j.value),1)])])]),p(`section`,Te,[r[17]||=p(`h3`,{class:`order-detail__section-title`},`اطلاعات سفارش`,-1),p(`div`,Ee,[p(`div`,De,[r[13]||=p(`span`,{class:`order-detail__info-label`},`شرکت`,-1),p(`span`,Oe,n(t.order.companyName),1)]),p(`div`,ke,[r[14]||=p(`span`,{class:`order-detail__info-label`},`روش تسویه`,-1),p(`span`,Ae,n(t.settlementLabel(t.order.settlementMethod)),1)]),p(`div`,je,[r[15]||=p(`span`,{class:`order-detail__info-label`},`متراژ کل`,-1),p(`span`,Me,n(w(U)(t.order.meterage)),1)]),p(`div`,Ne,[r[16]||=p(`span`,{class:`order-detail__info-label`},`مبلغ کل`,-1),p(`span`,Pe,n(t.order.totalAmount==null?`پس از قیمت‌گذاری`:w(V)(t.order.totalAmount)),1)])])])]),t.order.items?.length?(_(),m(`section`,Fe,[r[19]||=p(`h3`,{class:`order-detail__section-title`},`محصولات سفارش`,-1),O.value?(_(),m(`div`,Ie,[p(`table`,Le,[r[18]||=p(`thead`,null,[p(`tr`,null,[p(`th`,null,`شرکت`),p(`th`,null,`کالیته`),p(`th`,null,`محصول`),p(`th`,null,`رنگ`),p(`th`,null,`متراژ`),p(`th`,null,`قیمت`),p(`th`,null,`مبلغ`)])],-1),p(`tbody`,null,[(_(!0),m(S,null,l(t.order.items,e=>(_(),m(`tr`,{key:e.id},[p(`td`,null,n(e.companyName||t.order.companyName),1),p(`td`,null,n(e.catalogCode),1),p(`td`,null,n(e.productName),1),p(`td`,null,n(e.color),1),p(`td`,null,n(w(B)(e.confirmedMeterage??e.requestedMeterage)),1),p(`td`,null,n(e.supplyPrice==null?`—`:w(V)(e.supplyPrice)),1),p(`td`,null,n(e.totalAmount==null?`—`:w(V)(e.totalAmount)),1)]))),128))])])])):(_(),m(`ul`,Re,[(_(!0),m(S,null,l(t.order.items,e=>(_(),m(`li`,{key:e.id,class:`order-detail__item`},[p(`div`,ze,[p(`strong`,null,n(e.productName),1),p(`span`,null,n(e.catalogCode),1)]),p(`div`,Be,[e.companyName?(_(),m(`span`,Ve,n(e.companyName),1)):E(``,!0),p(`span`,null,n(e.color),1),p(`span`,null,n(w(U)(e.confirmedMeterage??e.requestedMeterage)),1),e.supplyPrice==null?E(``,!0):(_(),m(`span`,He,n(w(V)(e.supplyPrice)),1)),e.totalAmount==null?E(``,!0):(_(),m(`span`,Ue,n(w(V)(e.totalAmount)),1))])]))),128))]))])):E(``,!0),h.value?(_(),m(`section`,We,[r[25]||=p(`h3`,{class:`order-detail__section-title`},`رسید پرداخت نقدی`,-1),p(`div`,Ge,[p(`div`,Ke,[r[20]||=p(`span`,{class:`order-detail__info-label`},`وضعیت`,-1),p(`span`,qe,n(w(Y)[h.value.status]),1)]),p(`div`,Je,[r[21]||=p(`span`,{class:`order-detail__info-label`},`مبلغ واریزی`,-1),p(`span`,Ye,n(h.value.paidAmount==null?w(V)(h.value.amount):w(V)(h.value.paidAmount)),1)]),h.value.transferDate?(_(),m(`div`,Xe,[r[22]||=p(`span`,{class:`order-detail__info-label`},`تاریخ واریز`,-1),p(`span`,Ze,[b(n(w(H)(h.value.transferDate))+` `,1),h.value.transferTime?(_(),m(S,{key:0},[b(` · `+n(h.value.transferTime),1)],64)):E(``,!0)])])):E(``,!0),h.value.trackingNumber||h.value.trackingCode?(_(),m(`div`,Qe,[r[23]||=p(`span`,{class:`order-detail__info-label`},`پیگیری`,-1),p(`span`,$e,n(h.value.trackingNumber||h.value.trackingCode),1)])):E(``,!0),h.value.notes?(_(),m(`div`,et,[r[24]||=p(`span`,{class:`order-detail__info-label`},`یادداشت`,-1),p(`span`,tt,n(h.value.notes),1)])):E(``,!0)]),h.value.receiptImage?(_(),m(`div`,nt,[p(`button`,{type:`button`,class:`order-detail__receipt-thumb`,onClick:r[3]||=e=>f.value=!0},[p(`img`,{src:h.value.receiptImage,alt:`تصویر رسید پرداخت`},null,8,rt)]),p(`button`,{type:`button`,class:`admin-btn admin-btn--outline admin-btn--sm`,onClick:r[4]||=e=>f.value=!0},` مشاهده تصویر رسید `)])):(_(),m(`p`,it,`تصویر رسید هنوز آپلود نشده است.`))])):E(``,!0),h.value?.receiptImage?(_(),y(J,{key:2,modelValue:f.value,"onUpdate:modelValue":r[5]||=e=>f.value=e,src:h.value.receiptImage,alt:`تصویر رسید پرداخت`},null,8,[`modelValue`,`src`])):E(``,!0),p(`section`,at,[r[28]||=p(`h3`,{class:`order-detail__section-title`},`تغییر وضعیت`,-1),x.value.length?E(``,!0):(_(),m(`p`,ot,` در این مرحله گذر مجازی از این بخش نیست؛ از اقدام‌های مرحله‌ای بالا (قیمت‌گذاری، چک، رسید نقدی و …) استفاده کنید. `)),x.value.length?(_(),m(`div`,st,[p(`div`,ct,[r[26]||=p(`label`,null,`وضعیت بعدی`,-1),g(q,{modelValue:c.value,"onUpdate:modelValue":r[6]||=e=>c.value=e,block:``,"aria-label":`وضعیت بعدی`,placeholder:`انتخاب کنید…`,options:T.value},null,8,[`modelValue`,`options`])]),p(`div`,lt,[r[27]||=p(`label`,{for:`status-note`},`یادداشت (اختیاری)`,-1),u(p(`input`,{id:`status-note`,"onUpdate:modelValue":r[7]||=e=>d.value=e,type:`text`,class:`admin-input`,placeholder:`دلیل یا توضیح این تغییر`},null,512),[[ee,d.value]])]),p(`button`,{type:`button`,class:`admin-btn admin-btn--primary admin-btn--sm`,disabled:!D.value||t.statusSaving,onClick:L},n(t.statusSaving?`در حال ثبت…`:`ثبت وضعیت`),9,ut)])):E(``,!0)])],2))}}),[[`__scopeId`,`data-v-bff74c28`]]),ft={class:`orders-page`},pt={class:`orders-page__list-panel admin-card`},mt={class:`orders-page__list-header`},ht={class:`orders-page__list-actions`},gt={type:`button`,class:`admin-btn admin-btn--outline admin-btn--sm`},_t={class:`orders-page__search`},vt={class:`admin-tabs`},yt=[`onClick`],bt={class:`admin-table-wrap`},xt={class:`admin-table admin-table--compact`},St=[`onClick`],Ct={class:`orders-page__actions-cell`},wt=[`aria-expanded`,`onClick`],Tt={type:`button`,class:`admin-btn admin-btn--outline admin-btn--sm`},Et=T(h({__name:`DesktopOrdersPage`,setup(t){let r=L(`(min-width: 1280px)`),{activeTab:d,selectedOrderId:h,searchQuery:C,filteredOrders:T,selectedOrder:O,showDetailModal:k,openOrderDetail:j,closeDetailModal:M,settlementLabel:N,goPricing:P,goChecks:F,goCashReceipt:z,changeStatus:B,statusSaving:W,openAddModal:G}=ce(),K=e(null),q=e({});function J(){K.value=null}async function Y(e,t){if(t.stopPropagation(),K.value?.id===e.id){J();return}let n=t.currentTarget.getBoundingClientRect();K.value=e,await D();let r=Math.min(Math.max(8,n.right-168),window.innerWidth-168-8);q.value={position:`fixed`,top:`${n.bottom+4}px`,left:`${r}px`,width:`168px`}}function X(){J()}o(()=>{document.addEventListener(`click`,X),window.addEventListener(`scroll`,J,!0),window.addEventListener(`resize`,J)}),i(()=>{document.removeEventListener(`click`,X),window.removeEventListener(`scroll`,J,!0),window.removeEventListener(`resize`,J)});function Q(){O.value&&(M(),P(O.value))}function re(){O.value&&(M(),F(O.value))}function ae(){O.value&&(M(),z(O.value))}function oe(){O.value&&B({orderId:O.value.id,status:`final_approved`,note:`تأیید نهایی سفارش`})}function se(){if(!O.value)return;document.documentElement.classList.add(`printing-order-detail`);let e=()=>{document.documentElement.classList.remove(`printing-order-detail`),window.removeEventListener(`afterprint`,e)};window.addEventListener(`afterprint`,e),window.setTimeout(e,6e4),window.print()}function $(e){let t=K.value;if(t){if(J(),e===`detail`){j(t);return}if(e===`pricing`){P(t);return}if(e===`checks`){F(t);return}if(e===`final`){B({orderId:t.id,status:`final_approved`,note:`تأیید نهایی سفارش`});return}z(t)}}return(e,t)=>(_(),m(`div`,ft,[p(`div`,pt,[p(`div`,mt,[t[9]||=p(`div`,null,[p(`h2`,{class:`orders-page__list-title`},`سفارش‌ها`)],-1),p(`div`,ht,[p(`button`,gt,[g(R,{name:`filter`,size:16}),t[8]||=b(` فیلتر `,-1)]),p(`button`,{type:`button`,class:`admin-btn admin-btn--primary admin-btn--sm`,onClick:t[0]||=(...e)=>w(G)&&w(G)(...e)},` سفارش جدید `)])]),p(`div`,_t,[g(R,{name:`search`,size:18}),u(p(`input`,{"onUpdate:modelValue":t[1]||=e=>c(C)?C.value=e:null,type:`search`,placeholder:`جستجو در شماره سفارش، مشتری...`,class:`orders-page__search-input`},null,512),[[ee,w(C)]])]),p(`div`,vt,[(_(!0),m(S,null,l(w(Z),e=>(_(),m(`button`,{key:e.key,type:`button`,class:a([`admin-tab`,{active:w(d)===e.key}]),onClick:t=>d.value=e.key},[b(n(e.label)+` `,1),`count`in e&&e.count?(_(),m(S,{key:0},[b(` (`+n(e.count)+`)`,1)],64)):E(``,!0)],10,yt))),128))]),p(`div`,bt,[p(`table`,xt,[t[10]||=p(`thead`,null,[p(`tr`,null,[p(`th`,null,`شماره سفارش`),p(`th`,null,`مشتری`),p(`th`,null,`روش تسویه`),p(`th`,null,`مبلغ کل`),p(`th`,null,`متراژ`),p(`th`,null,`وضعیت`),p(`th`,null,`تاریخ ثبت`),p(`th`,null,`عملیات`)])],-1),p(`tbody`,null,[(_(!0),m(S,null,l(w(T),e=>(_(),m(`tr`,{key:e.id,class:a({"is-selected":w(h)===e.id}),onClick:t=>w(j)(e)},[p(`td`,null,n(e.orderNumber),1),p(`td`,null,n(e.customerName),1),p(`td`,null,n(w(N)(e.settlementMethod)),1),p(`td`,null,n(e.totalAmount?w(V)(e.totalAmount):`—`),1),p(`td`,null,n(w(U)(e.meterage)),1),p(`td`,null,[g(ie,{status:e.status},null,8,[`status`])]),p(`td`,null,n(w(H)(e.createdAt)),1),p(`td`,Ct,[p(`button`,{type:`button`,class:`orders-page__more-btn`,"aria-expanded":K.value?.id===e.id,"aria-haspopup":`menu`,"aria-label":`عملیات سفارش`,onClick:t=>Y(e,t)},[g(R,{name:`more`,size:18})],8,wt)])],10,St))),128))])])]),t[11]||=x(`<div class="admin-pagination" data-v-cfed03e1><span data-v-cfed03e1>نمایش ۱ تا ۷ از ۱۰۳ سفارش</span><div class="admin-pagination__pages" data-v-cfed03e1><button type="button" class="admin-pagination__page active" data-v-cfed03e1>۱</button><button type="button" class="admin-pagination__page" data-v-cfed03e1>۲</button><button type="button" class="admin-pagination__page" data-v-cfed03e1>۳</button><span data-v-cfed03e1>...</span><button type="button" class="admin-pagination__page" data-v-cfed03e1>۱۲</button></div></div>`,1)]),(_(),y(f,{to:`body`},[K.value?(_(),m(`div`,{key:0,class:`orders-page__menu`,role:`menu`,style:v(q.value),onClick:t[7]||=A(()=>{},[`stop`])},[p(`button`,{type:`button`,role:`menuitem`,class:`orders-page__menu-item`,onClick:t[2]||=e=>$(`detail`)},` جزئیات سفارش `),K.value&&w(ne)(K.value)?(_(),m(`button`,{key:0,type:`button`,role:`menuitem`,class:`orders-page__menu-item`,onClick:t[3]||=e=>$(`pricing`)},` قیمت‌گذاری `)):E(``,!0),K.value.settlementMethod===`check`?(_(),m(`button`,{key:1,type:`button`,role:`menuitem`,class:`orders-page__menu-item`,onClick:t[4]||=e=>$(`checks`)},` مدیریت چک‌ها `)):E(``,!0),K.value.settlementMethod===`cash`&&K.value.rawStatus!==`cash_confirmed`?(_(),m(`button`,{key:2,type:`button`,role:`menuitem`,class:`orders-page__menu-item`,onClick:t[5]||=e=>$(`cash`)},` رسید پرداخت `)):E(``,!0),w(te)(K.value)?(_(),m(`button`,{key:3,type:`button`,role:`menuitem`,class:`orders-page__menu-item`,onClick:t[6]||=e=>$(`final`)},` تأیید نهایی `)):E(``,!0)],4)):E(``,!0)])),g(I,{open:w(r)&&w(k)&&!!w(O),title:`جزئیات سفارش`,size:`xl`,onClose:w(M)},{footer:s(()=>[p(`button`,Tt,[g(R,{name:`sms`,size:16}),t[12]||=b(` ارسال پیامک `,-1)]),p(`button`,{type:`button`,class:`admin-btn admin-btn--outline admin-btn--sm`,onClick:se},[g(R,{name:`print`,size:16}),t[13]||=b(` چاپ `,-1)])]),default:s(()=>[w(O)?(_(),y(dt,{key:0,order:w(O),layout:`desktop`,"settlement-label":w(N),"status-saving":w(W),onPricing:Q,onChecks:re,onCashReceipt:ae,onFinalApprove:oe,onStatus:w(B)},null,8,[`order`,`settlement-label`,`status-saving`,`onStatus`])):E(``,!0)]),_:1},8,[`open`,`onClose`])]))}}),[[`__scopeId`,`data-v-cfed03e1`]]),Dt={class:`compact-orders`},Ot={class:`compact-page-header`},kt={class:`compact-page-header__row`},At={class:`compact-page-header__actions`},jt={key:0,class:`compact-orders__filter-dot`,"aria-hidden":`true`},Mt={class:`orders-page__search admin-card`},Nt={key:0,class:`compact-orders__filter-chip admin-card`},Pt={key:1,class:`admin-tabs compact-orders__tabs`},Ft=[`onClick`],It={class:`compact-orders__filter-form`,role:`listbox`,"aria-label":`وضعیت سفارش`},Lt=[`aria-selected`,`onClick`],Rt={key:0,class:`compact-orders__filter-check`,"aria-hidden":`true`},zt={class:`admin-card-list`},Bt=[`onClick`],Vt={class:`admin-card-item__header`},Ht={class:`admin-card-item__title`},Ut={class:`admin-card-item__meta`},Wt={key:0,class:`admin-detail-panel__inner`},Gt={class:`admin-detail-panel__header`},Kt={class:`admin-detail-panel__body`},qt=T(h({__name:`CompactOrdersPage`,setup(t){let r=L(`(max-width: 767px)`),i=L(`(max-width: 1279px)`),{activeTab:o,selectedOrderId:d,searchQuery:f,filteredOrders:h,selectedOrder:v,showDetailPanel:x,showDetailModal:T,selectOrder:D,openOrderDetail:O,closeDetailPanel:k,closeDetailModal:A,settlementLabel:j,goPricing:M,goChecks:N,goCashReceipt:P,changeStatus:F,statusSaving:z,openAddModal:B}=ce(),W=e(!1),G=C(()=>o.value!==`all`),K=C(()=>Z.find(e=>e.key===o.value)?.label??`همه`);function q(){W.value=!0}function J(){W.value=!1}function Y(){o.value=`all`,W.value=!1}function X(e){o.value=e,W.value=!1}function te(e){if(r.value){D(e,!0);return}O(e)}function ne(){v.value&&(A(),k(),M(v.value))}function Q(){v.value&&(A(),k(),N(v.value))}function re(){v.value&&(A(),k(),P(v.value))}function ae(){v.value&&F({orderId:v.value.id,status:`final_approved`,note:`تأیید نهایی سفارش`})}return(e,t)=>(_(),m(`div`,Dt,[p(`div`,Ot,[p(`div`,kt,[t[4]||=p(`div`,null,[p(`h2`,{class:`compact-page-header__title`},`سفارش‌ها`)],-1),p(`div`,At,[p(`button`,{type:`button`,class:a([`admin-btn admin-btn--outline admin-btn--sm`,{"admin-btn--filter-active":G.value}]),onClick:q},[g(R,{name:`filter`,size:16}),t[3]||=b(` فیلتر `,-1),G.value?(_(),m(`span`,jt)):E(``,!0)],2),p(`button`,{type:`button`,class:`admin-btn admin-btn--primary admin-btn--sm`,onClick:t[0]||=(...e)=>w(B)&&w(B)(...e)},` سفارش جدید `)])])]),p(`div`,Mt,[g(R,{name:`search`,size:18}),u(p(`input`,{"onUpdate:modelValue":t[1]||=e=>c(f)?f.value=e:null,type:`search`,placeholder:`جستجو در شماره سفارش، مشتری...`,class:`orders-page__search-input`},null,512),[[ee,w(f)]])]),w(r)&&G.value?(_(),m(`div`,Nt,[p(`span`,null,`وضعیت: `+n(K.value),1),p(`button`,{type:`button`,class:`compact-orders__filter-clear`,onClick:Y},`پاک کردن`)])):E(``,!0),w(r)?E(``,!0):(_(),m(`div`,Pt,[(_(!0),m(S,null,l(w(Z),e=>(_(),m(`button`,{key:e.key,type:`button`,class:a([`admin-tab`,{active:w(o)===e.key}]),onClick:t=>o.value=e.key},[b(n(e.label)+` `,1),`count`in e&&e.count?(_(),m(S,{key:0},[b(` (`+n(e.count)+`)`,1)],64)):E(``,!0)],10,Ft))),128))])),g(I,{open:W.value,title:`فیلتر سفارش‌ها`,onClose:J},{footer:s(()=>[p(`button`,{type:`button`,class:`admin-btn admin-btn--outline`,onClick:Y},` پاک کردن `),p(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,onClick:J},` بستن `)]),default:s(()=>[p(`div`,It,[(_(!0),m(S,null,l(w(Z),e=>(_(),m(`button`,{key:e.key,type:`button`,class:a([`compact-orders__filter-option`,{"is-active":w(o)===e.key}]),role:`option`,"aria-selected":w(o)===e.key,onClick:t=>X(e.key)},[p(`span`,null,n(e.label),1),w(o)===e.key?(_(),m(`span`,Rt,`✓`)):E(``,!0)],10,Lt))),128))])]),_:1},8,[`open`]),p(`div`,zt,[(_(!0),m(S,null,l(w(h),e=>(_(),m(`button`,{key:e.id,type:`button`,class:a([`admin-card-item`,{selected:w(d)===e.id}]),onClick:t=>te(e)},[p(`div`,Vt,[p(`p`,Ht,n(e.orderNumber),1),g(ie,{status:e.status},null,8,[`status`])]),p(`div`,Ut,[p(`span`,null,[t[5]||=p(`strong`,null,`مشتری:`,-1),b(` `+n(e.customerName),1)]),p(`span`,null,[t[6]||=p(`strong`,null,`متراژ:`,-1),b(` `+n(w(U)(e.meterage)),1)]),p(`span`,null,[t[7]||=p(`strong`,null,`مبلغ:`,-1),b(` `+n(e.totalAmount?w(V)(e.totalAmount):`—`),1)]),p(`span`,null,n(w(H)(e.createdAt)),1)])],10,Bt))),128))]),p(`div`,{class:a([`admin-detail-panel compact-orders__mobile-panel`,{open:w(r)&&w(x)&&w(v)}])},[w(v)?(_(),m(`div`,Wt,[p(`div`,Gt,[p(`button`,{type:`button`,class:`admin-detail-panel__back`,"aria-label":`بازگشت به لیست`,onClick:t[2]||=(...e)=>w(k)&&w(k)(...e)},[g(R,{name:`chevron-back`,size:20})]),t[8]||=p(`h2`,{class:`admin-detail-panel__title`},`جزئیات سفارش`,-1)]),p(`div`,Kt,[g(dt,{order:w(v),"settlement-label":w(j),"status-saving":w(z),onPricing:ne,onChecks:Q,onCashReceipt:re,onFinalApprove:ae,onStatus:w(F)},null,8,[`order`,`settlement-label`,`status-saving`,`onStatus`])])])):E(``,!0)],2),g(I,{open:w(i)&&!w(r)&&w(T)&&!!w(v),title:`جزئیات سفارش`,size:`xl`,onClose:w(A)},{default:s(()=>[w(v)?(_(),y(dt,{key:0,order:w(v),"settlement-label":w(j),"status-saving":w(z),onPricing:ne,onChecks:Q,onCashReceipt:re,onFinalApprove:ae,onStatus:w(F)},null,8,[`order`,`settlement-label`,`status-saving`,`onStatus`])):E(``,!0)]),_:1},8,[`open`,`onClose`])]))}}),[[`__scopeId`,`data-v-fe86c1c8`]]);function Jt(e){return e.rollMeters&&e.rollMeters>0?e.rollMeters:e.minMeterage>0?e.minMeterage:50}function Yt(e){let t=e.orderMultiplier??e.orderStep;return t&&t>0?t:10}function Xt(e,t,n){return t===`roll`?n*Jt(e):n}function Zt(e,t){let n=Jt(e);return n>0?t/n:0}function Qt(e,t,n=1){if(!t||t<=0)return`مقدار باید بزرگ‌تر از صفر باشد.`;if(t<e.minMeterage)return`حداقل متراژ برای ${e.name} برابر ${e.minMeterage} است`;let r=Yt(e),i=Math.round(t/r*1e3)/1e3;if(Math.abs(i-Math.round(i))>1e-6)return`متراژ ${e.name} باید مضرب ${r} باشد`;let a=Jt(e),o=n>0?n:1;return t/a+1e-9<o?`حداقل سفارش برای ${e.name} برابر ${o} طاقه است`:null}var $t={key:0,class:`admin-form__error`,role:`alert`},en={class:`admin-form__field`},tn={key:0,class:`admin-form__hint`},nn={class:`admin-form__field`},rn={class:`admin-form__row order-add__qty-row`},an={class:`admin-form__field`},on={class:`order-add__mode`,role:`group`,"aria-label":`واحد سفارش`},sn={class:`admin-form__field`},cn={for:`order-item-quantity`},ln={key:1,class:`order-add__items`},un=[`onClick`],dn={key:2,class:`admin-form__hint`},fn=[`disabled`],pn=T(h({__name:`OrderAddModal`,setup(t){let{showAddModal:i,formError:o,form:c,isFormValid:f,activeCustomers:h,applyCustomer:v,addFormItem:x,removeFormItem:T,closeAddModal:D,submitAddOrder:O}=ce(),M=k(),N=e([]),L=e(1),R=d({productId:``,quantityMode:`roll`,quantity:0}),z=C(()=>h.value.map(e=>{let t=e.phone?` — ${e.phone}`:``,n=e.isActive===!1?` (غیرفعال)`:``;return{value:e.id,label:`${e.name}${t}${n}`}})),V=C(()=>N.value.filter(e=>e.isActive!==!1).map(e=>({value:e.id,label:`${e.name} — ${e.catalogCode} (${e.companyName})`}))),H=C(()=>N.value.find(e=>e.id===R.productId)??null),U=C(()=>R.quantityMode===`roll`?`تعداد طاقه`:`متراژ (متر)`);r(()=>c.customerId,e=>{if(!e){c.customerName=``,c.customerPhone=``;return}v(e)});function W(e,t){let n=L.value>0?L.value:1;if(t===`roll`)return n;let r=Jt(e);return Math.max(e.minMeterage||0,n*r)}r(i,async e=>{if(e){R.productId=``,R.quantityMode=`roll`,R.quantity=0,o.value=``;try{let[e,t]=await Promise.all([F.list({activeOnly:!0}),P.get().catch(()=>null)]);N.value=e,L.value=t?.minOrderRollsPerProduct??1}catch(e){M.error(e instanceof j?e.message:`بارگذاری محصولات انجام نشد.`)}}}),r(()=>[R.productId,R.quantityMode],([e,t])=>{let n=N.value.find(t=>t.id===e);n&&(R.quantity=W(n,t))});function G(){o.value=``;let e=H.value;if(!e){o.value=`محصول را انتخاب کنید.`,M.error(o.value);return}if(!R.quantity||R.quantity<=0){o.value=`مقدار باید بزرگ‌تر از صفر باشد.`,M.error(o.value);return}let t=Xt(e,R.quantityMode,R.quantity),n=Qt(e,t,L.value);if(n){o.value=n,M.error(n);return}if(!x({productId:e.id,productName:e.name,catalogCode:e.catalogCode,meterage:t})){M.error(o.value||`افزودن محصول انجام نشد.`);return}R.productId=``,R.quantityMode=`roll`,R.quantity=0}function K(e){let t=N.value.find(t=>t.id===e.productId);if(!t)return null;let n=Zt(t,e.meterage);if(!Number.isFinite(n))return null;let r=Math.round(n*100)/100;return r%1,B(r)}return(e,t)=>(_(),y(I,{open:w(i),title:`پیش‌سفارش جدید`,size:`lg`,onClose:w(D)},{footer:s(()=>[p(`button`,{type:`button`,class:`admin-btn admin-btn--outline`,onClick:t[6]||=(...e)=>w(D)&&w(D)(...e)},` انصراف `),p(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,disabled:!w(f),onClick:t[7]||=(...e)=>w(O)&&w(O)(...e)},` ثبت پیش‌سفارش `,8,fn)]),default:s(()=>[p(`form`,{class:`admin-form`,onSubmit:t[5]||=A((...e)=>w(O)&&w(O)(...e),[`prevent`])},[w(o)?(_(),m(`p`,$t,n(w(o)),1)):E(``,!0),t[11]||=p(`p`,{class:`admin-form__hint`},` مثل سفارش مشتری: ابتدا اقلام ثبت می‌شود، قیمت‌گذاری و تسویه بعداً انجام می‌شود. `,-1),p(`div`,en,[t[8]||=p(`label`,{id:`order-customer-label`},[b(` مشتری `),p(`span`,{class:`admin-form__required`},`*`)],-1),g(q,{id:`order-customer`,modelValue:w(c).customerId,"onUpdate:modelValue":t[0]||=e=>w(c).customerId=e,block:``,searchable:``,"aria-label":`انتخاب مشتری از لیست`,placeholder:`انتخاب مشتری از لیست`,"search-placeholder":`جستجوی نام یا موبایل…`,options:z.value},null,8,[`modelValue`,`options`]),z.value.length?E(``,!0):(_(),m(`p`,tn,` مشتری‌ای در سیستم نیست. ابتدا از بخش «مشتریان» یک مشتری ثبت کنید. `))]),p(`div`,nn,[t[9]||=p(`label`,null,`محصول`,-1),g(q,{modelValue:R.productId,"onUpdate:modelValue":t[1]||=e=>R.productId=e,block:``,searchable:``,"aria-label":`انتخاب محصول`,placeholder:`جستجو و انتخاب محصول`,"search-placeholder":`نام، کد یا کالیته…`,options:V.value},null,8,[`modelValue`,`options`])]),p(`div`,rn,[p(`div`,an,[t[10]||=p(`span`,{class:`admin-form__label`},`واحد سفارش`,-1),p(`div`,on,[p(`button`,{type:`button`,class:a([`order-add__mode-btn`,{"order-add__mode-btn--active":R.quantityMode===`roll`}]),onClick:t[2]||=e=>R.quantityMode=`roll`},` طاقه `,2),p(`button`,{type:`button`,class:a([`order-add__mode-btn`,{"order-add__mode-btn--active":R.quantityMode===`meter`}]),onClick:t[3]||=e=>R.quantityMode=`meter`},` متراژ `,2)])]),p(`div`,sn,[p(`label`,cn,n(U.value),1),u(p(`input`,{id:`order-item-quantity`,"onUpdate:modelValue":t[4]||=e=>R.quantity=e,type:`number`,min:`0`,step:`any`,class:`admin-input`},null,512),[[ee,R.quantity,void 0,{number:!0}]])])]),p(`button`,{type:`button`,class:`admin-btn admin-btn--outline admin-btn--sm`,onClick:G},` افزودن به اقلام `),w(c).items.length?(_(),m(`div`,ln,[(_(!0),m(S,null,l(w(c).items,e=>(_(),m(`div`,{key:e.productId,class:`order-add__item`},[p(`div`,null,[p(`strong`,null,n(e.productName),1),p(`span`,null,[b(` کالیته `+n(e.catalogCode)+` — `+n(w(B)(e.meterage))+` متر `,1),K(e)?(_(),m(S,{key:0},[b(` (`+n(K(e))+` طاقه) `,1)],64)):E(``,!0)])]),p(`button`,{type:`button`,class:`admin-btn admin-btn--outline-danger admin-btn--xs`,onClick:t=>w(T)(e.productId)},` حذف `,8,un)]))),128))])):(_(),m(`p`,dn,`هنوز محصولی به پیش‌سفارش اضافه نشده است.`))],32)]),_:1},8,[`open`,`onClose`]))}}),[[`__scopeId`,`data-v-165a6b8d`]]),mn=h({__name:`OrdersView`,setup(e){return se(),(e,t)=>(_(),m(S,null,[g(Et,{class:`desktop-only`}),g(qt,{class:`compact-only`}),g(pn)],64))}});export{mn as default};