1 line
13 KiB
JavaScript
1 line
13 KiB
JavaScript
import{A as e,B as t,D as n,E as r,G as i,H as a,I as ee,K as o,L as s,O as c,P as l,Q as u,T as d,U as f,X as te,at as p,ct as m,et as h,ft as g,g as _,h as ne,it as v,j as re,k as ie,lt as y,n as b,o as x,q as S,st as ae,w as C,z as w}from"./index-dG7O4aC2.js";import{i as oe,t as se}from"./StatusBadge-D-XqK4sa.js";import{t as T}from"./AdminCurrencyInput-Bo4teStb.js";var ce={class:`pricing-page`},le={class:`admin-page-header`},ue={class:`admin-action-group`},de=[`disabled`],fe=[`disabled`],pe={class:`pricing-page__summary admin-card`},me={class:`pricing-page__order-meta`},he={class:`pricing-page__order-id`},ge={class:`pricing-page__customer`},_e={class:`admin-summary-grid`},ve={class:`admin-summary-item`},ye={class:`admin-summary-item__value`},be={class:`admin-summary-item`},xe={class:`admin-summary-item__value`},Se={class:`admin-summary-item`},Ce={class:`admin-summary-item__value`},we={class:`pricing-page__table admin-card desktop-only`},E={class:`admin-table-wrap`},D={class:`admin-table`},O=[`onUpdate:modelValue`],k=[`onClick`],Te={class:`compact-only admin-card-list pricing-page__compact-items`},Ee={class:`admin-card-item__header`},De={class:`admin-card-item__title`},Oe={class:`pricing-page__item-index`},ke={class:`admin-card-item__meta`},Ae={key:0},je={class:`pricing-page__compact-fields`},Me=[`onUpdate:modelValue`],Ne={key:0,class:`pricing-page__line-total`},Pe={class:`admin-card-item__actions`},Fe=[`onClick`],Ie={class:`admin-form-grid`},Le={class:`admin-form-field`},Re={class:`admin-form-field`},ze={class:`admin-footer-actions`},Be=[`disabled`],A=[`disabled`],Ve={class:`pricing-page__invoice-hint`},He={key:0,class:`admin-form__error`,role:`alert`},Ue={class:`admin-form__row`},We={class:`admin-form__field`},Ge={class:`admin-form__field`},Ke={class:`admin-form__field`},qe={class:`admin-form__row`},Je={class:`admin-form__field`},Ye={class:`admin-form__field`},Xe=[`disabled`],j=re(S({__name:`OrderPricingView`,setup(re){let S=r(),j=n(),M=e(),N=m(null),P=m([]),F=m(0),I=m(``),L=m(!1),R=m(``),z=m(!1),B=m(!1),V=m(!0),H=()=>({catalogCode:``,productName:``,color:``,requestedMeterage:100,confirmedMeterage:100}),U=ae(H()),W=w(()=>U.catalogCode.trim().length>0&&U.productName.trim().length>0&&U.requestedMeterage>0),G=w(()=>N.value?ne(N.value):null),K=w(()=>N.value?!oe.includes(N.value.status):!1),q=w(()=>!!N.value?.finalAmount&&!K.value);async function Ze(){V.value=!0;try{let e=await _.get(String(S.params.id));N.value=e,P.value=(e.items??[]).map(e=>({id:e.id,catalogCode:e.catalogCode,productName:e.productName,color:e.color,requestedMeterage:e.requestedMeterage,confirmedMeterage:e.confirmedMeterage,supplyPrice:e.supplyPrice,totalAmount:e.totalAmount,companyId:e.companyId,companyName:e.companyName})),F.value=e.shippingCost??0}catch(e){M.error(e instanceof C?e.message:`بارگذاری سفارش انجام نشد.`)}finally{V.value=!1}}te(()=>{Ze()});function Qe(){j.push(`/orders`)}async function J(e){let t=P.value.find(t=>t.id===e);await c({title:`حذف محصول`,message:t?`آیا از حذف «${t.productName}» از سفارش مطمئن هستید؟`:`آیا از حذف این محصول از سفارش مطمئن هستید؟`,confirmLabel:`حذف`,cancelLabel:`انصراف`,tone:`danger`})&&(P.value=P.value.filter(t=>t.id!==e))}function Y(){Object.assign(U,H()),R.value=``,L.value=!0}function X(){L.value=!1,R.value=``}function Z(){if(!W.value){R.value=`کالیته، نام محصول و متراژ الزامی هستند.`;return}P.value.push({id:`oi-${crypto.randomUUID().slice(0,8)}`,catalogCode:U.catalogCode.trim(),productName:U.productName.trim(),color:U.color.trim()||`—`,requestedMeterage:U.requestedMeterage,confirmedMeterage:U.confirmedMeterage||U.requestedMeterage,supplyPrice:null,totalAmount:null,companyId:N.value?.companyId,companyName:N.value?.companyName}),X()}async function Q(){if(!N.value)return;let e=P.value.filter(e=>!e.id.startsWith(`oi-`));if(!e.length){M.error(`اقلام قابل قیمتگذاری یافت نشد.`);return}z.value=!0;try{let t=await _.updatePricing(N.value.id,{items:e.map(e=>({id:e.id,confirmedMeterage:e.confirmedMeterage??void 0,supplyPrice:e.supplyPrice??void 0})),shippingCost:F.value,note:I.value.trim()||void 0});N.value=t,P.value=(t.items??[]).map(e=>({id:e.id,catalogCode:e.catalogCode,productName:e.productName,color:e.color,requestedMeterage:e.requestedMeterage,confirmedMeterage:e.confirmedMeterage,supplyPrice:e.supplyPrice,totalAmount:e.totalAmount,companyId:e.companyId,companyName:e.companyName})),M.success(`قیمتگذاری ذخیره شد.`)}catch(e){M.error(e instanceof C?e.message:`ذخیره قیمتگذاری انجام نشد.`)}finally{z.value=!1}}async function $(){if(N.value){if(!N.value.finalAmount){M.error(`ابتدا قیمتگذاری را ذخیره کنید تا مبلغ فاکتور مشخص شود.`);return}if(await c({title:`ارسال فاکتور برای مشتری`,message:`فاکتور ${b(N.value.finalAmount)} برای مشتری ارسال میشود و او روش تسویه را انتخاب میکند. ادامه میدهید؟`,confirmLabel:`ارسال فاکتور`,cancelLabel:`انصراف`})){B.value=!0;try{let e=await _.updateStatus(N.value.id,{status:`awaiting_settlement`,note:I.value.trim()||void 0});N.value=e,M.success(`فاکتور برای مشتری ارسال شد.`)}catch(e){M.error(e instanceof C?e.message:`ارسال فاکتور انجام نشد.`)}finally{B.value=!1}}}}return(e,n)=>(u(),f(`div`,ce,[t(`div`,le,[n[7]||=t(`div`,null,[t(`h1`,{class:`admin-page-header__title`},`قیمتگذاری سفارش`),t(`p`,{class:`admin-page-header__breadcrumb`},`سفارشها / قیمتگذاری سفارش`)],-1),t(`div`,ue,[t(`button`,{type:`button`,class:`admin-btn admin-btn--success admin-btn--sm`,disabled:z.value||V.value,onClick:Q},g(z.value?`در حال ذخیره…`:`ذخیره قیمتگذاری`),9,de),t(`button`,{type:`button`,class:`admin-btn admin-btn--primary admin-btn--sm`,disabled:!q.value||B.value||z.value,onClick:$},g(B.value?`در حال ارسال…`:`ارسال فاکتور برای مشتری`),9,fe),t(`button`,{type:`button`,class:`admin-btn admin-btn--outline admin-btn--sm`,onClick:Qe},` بازگشت `)])]),G.value?(u(),f(s,{key:0},[t(`div`,pe,[t(`div`,me,[t(`div`,null,[t(`strong`,he,g(G.value.orderNumber),1),t(`p`,ge,g(G.value.customerName),1),o(se,{status:G.value.status},null,8,[`status`])])]),t(`div`,_e,[t(`div`,ve,[n[8]||=t(`p`,{class:`admin-summary-item__label`},`مجموع مبلغ`,-1),t(`p`,ye,g(G.value.totalAmount?y(b)(G.value.totalAmount):`—`),1)]),t(`div`,be,[n[9]||=t(`p`,{class:`admin-summary-item__label`},`هزینه حمل`,-1),t(`p`,xe,g(y(b)(F.value)),1)]),t(`div`,Se,[n[10]||=t(`p`,{class:`admin-summary-item__label`},`مبلغ نهایی`,-1),t(`p`,Ce,g(N.value?.finalAmount?y(b)(N.value.finalAmount):`—`),1)])])]),t(`div`,we,[t(`div`,E,[t(`table`,D,[n[11]||=t(`thead`,null,[t(`tr`,null,[t(`th`,null,`ردیف`),t(`th`,null,`شرکت`),t(`th`,null,`کالیته`),t(`th`,null,`محصول`),t(`th`,null,`رنگ / نوع`),t(`th`,null,`متراژ درخواستی`),t(`th`,null,`متراژ تأیید شده`),t(`th`,null,`قیمت تأمینی (واحد)`),t(`th`,null,`مبلغ کل (تومان)`),t(`th`,null,`عملیات`)])],-1),t(`tbody`,null,[(u(!0),f(s,null,h(P.value,(e,n)=>(u(),f(`tr`,{key:e.id},[t(`td`,null,g(n+1),1),t(`td`,null,g(e.companyName||N.value?.companyName||`—`),1),t(`td`,null,g(e.catalogCode),1),t(`td`,null,g(e.productName),1),t(`td`,null,g(e.color),1),t(`td`,null,g(y(x)(e.requestedMeterage)),1),t(`td`,null,[p(t(`input`,{"onUpdate:modelValue":t=>e.confirmedMeterage=t,type:`number`,class:`admin-input admin-input--sm`},null,8,O),[[l,e.confirmedMeterage,void 0,{number:!0}]])]),t(`td`,null,[o(T,{modelValue:e.supplyPrice,"onUpdate:modelValue":t=>e.supplyPrice=t,"input-class":`admin-input admin-input--sm`,placeholder:`—`},null,8,[`modelValue`,`onUpdate:modelValue`])]),t(`td`,null,g(e.totalAmount?y(b)(e.totalAmount):`—`),1),t(`td`,null,[t(`button`,{type:`button`,class:`admin-btn admin-btn--outline-danger admin-btn--xs`,onClick:t=>J(e.id)},` حذف `,8,k)])]))),128))])])]),t(`button`,{type:`button`,class:`admin-btn admin-btn--ghost pricing-page__add-btn`,onClick:Y},[o(d,{name:`products`,size:16}),n[12]||=i(` افزودن محصول `,-1)])]),t(`div`,Te,[(u(!0),f(s,null,h(P.value,(e,r)=>(u(),f(`article`,{key:e.id,class:`admin-card-item`},[t(`div`,Ee,[t(`p`,De,g(e.productName),1),t(`span`,Oe,`#`+g(r+1),1)]),t(`div`,ke,[e.companyName||N.value?.companyName?(u(),f(`span`,Ae,g(e.companyName||N.value?.companyName),1)):a(``,!0),t(`span`,null,`کالیته `+g(e.catalogCode),1),t(`span`,null,g(e.color),1),t(`span`,null,`درخواست: `+g(y(x)(e.requestedMeterage))+` متر`,1)]),t(`div`,je,[t(`label`,null,[n[13]||=i(` متراژ تأیید شده `,-1),p(t(`input`,{"onUpdate:modelValue":t=>e.confirmedMeterage=t,type:`number`,class:`admin-input`},null,8,Me),[[l,e.confirmedMeterage,void 0,{number:!0}]])]),t(`label`,null,[n[14]||=i(` قیمت تأمینی `,-1),o(T,{modelValue:e.supplyPrice,"onUpdate:modelValue":t=>e.supplyPrice=t,placeholder:`—`},null,8,[`modelValue`,`onUpdate:modelValue`])]),e.totalAmount?(u(),f(`p`,Ne,` مبلغ کل: `+g(y(b)(e.totalAmount)),1)):a(``,!0)]),t(`div`,Pe,[t(`button`,{type:`button`,class:`admin-btn admin-btn--outline-danger admin-btn--xs`,onClick:t=>J(e.id)},` حذف `,8,Fe)])]))),128)),t(`button`,{type:`button`,class:`admin-btn admin-btn--ghost`,onClick:Y},[o(d,{name:`products`,size:16}),n[15]||=i(` افزودن محصول `,-1)])]),t(`div`,Ie,[t(`div`,Le,[n[16]||=t(`label`,null,`هزینه حمل (تومان)`,-1),o(T,{modelValue:F.value,"onUpdate:modelValue":n[0]||=e=>F.value=e,"allow-empty":!1},null,8,[`modelValue`])]),t(`div`,Re,[n[17]||=t(`label`,null,`توضیحات برای مشتری`,-1),p(t(`textarea`,{"onUpdate:modelValue":n[1]||=e=>I.value=e,placeholder:`توضیحات خود را وارد کنید...`},null,512),[[l,I.value]])])]),t(`div`,ze,[t(`button`,{type:`button`,class:`admin-btn admin-btn--success`,disabled:z.value,onClick:Q},g(z.value?`در حال ذخیره…`:`ذخیره قیمتگذاری`),9,Be),t(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,disabled:!q.value||B.value||z.value,onClick:$},g(B.value?`در حال ارسال…`:`ارسال فاکتور برای مشتری`),9,A)]),t(`p`,Ve,[K.value?(u(),f(s,{key:0},[i(` فاکتور این سفارش برای مشتری ارسال شده است؛ انتخاب روش تسویه در اختیار اوست. `)],64)):q.value?(u(),f(s,{key:1},[i(` مبلغ نهایی آماده است. با ارسال فاکتور، مشتری برای انتخاب نقدی یا چک مطلع میشود. `)],64)):(u(),f(s,{key:2},[i(` ابتدا قیمت واحد اقلام و هزینه حمل را ذخیره کنید تا مبلغ نهایی فاکتور ساخته شود. `)],64))])],64)):a(``,!0),o(ie,{open:L.value,title:`افزودن محصول`,size:`lg`,onClose:X},{footer:v(()=>[t(`button`,{type:`button`,class:`admin-btn admin-btn--outline`,onClick:X},` انصراف `),t(`button`,{type:`button`,class:`admin-btn admin-btn--primary`,disabled:!W.value,onClick:Z},` افزودن به سفارش `,8,Xe)]),default:v(()=>[t(`form`,{class:`admin-form`,onSubmit:ee(Z,[`prevent`])},[R.value?(u(),f(`p`,He,g(R.value),1)):a(``,!0),t(`div`,Ue,[t(`div`,We,[n[18]||=t(`label`,{for:`catalog-code`},[i(`کالیته `),t(`span`,{class:`admin-form__required`},`*`)],-1),p(t(`input`,{id:`catalog-code`,"onUpdate:modelValue":n[2]||=e=>U.catalogCode=e,type:`text`,class:`admin-input`,placeholder:`377`},null,512),[[l,U.catalogCode]])]),t(`div`,Ge,[n[19]||=t(`label`,{for:`product-name`},[i(`محصول `),t(`span`,{class:`admin-form__required`},`*`)],-1),p(t(`input`,{id:`product-name`,"onUpdate:modelValue":n[3]||=e=>U.productName=e,type:`text`,class:`admin-input`,placeholder:`پارچه آبی`},null,512),[[l,U.productName]])])]),t(`div`,Ke,[n[20]||=t(`label`,{for:`product-color`},`رنگ / نوع`,-1),p(t(`input`,{id:`product-color`,"onUpdate:modelValue":n[4]||=e=>U.color=e,type:`text`,class:`admin-input`,placeholder:`آبی`},null,512),[[l,U.color]])]),t(`div`,qe,[t(`div`,Je,[n[21]||=t(`label`,{for:`requested-meterage`},[i(` متراژ درخواستی `),t(`span`,{class:`admin-form__required`},`*`)],-1),p(t(`input`,{id:`requested-meterage`,"onUpdate:modelValue":n[5]||=e=>U.requestedMeterage=e,type:`number`,min:`1`,class:`admin-input`},null,512),[[l,U.requestedMeterage,void 0,{number:!0}]])]),t(`div`,Ye,[n[22]||=t(`label`,{for:`confirmed-meterage`},`متراژ تأیید شده`,-1),p(t(`input`,{id:`confirmed-meterage`,"onUpdate:modelValue":n[6]||=e=>U.confirmedMeterage=e,type:`number`,min:`0`,class:`admin-input`},null,512),[[l,U.confirmedMeterage,void 0,{number:!0}]])])])],32)]),_:1},8,[`open`])]))}}),[[`__scopeId`,`data-v-334518e1`]]);export{j as default}; |