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