Files
nademitex_admin/dist/assets/OrderPricingView-aYWntVF2.js
T

1 line
13 KiB
JavaScript

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