1 line
2.3 KiB
JavaScript
1 line
2.3 KiB
JavaScript
import{c as e,nt as t}from"./_plugin-vue_export-helper-1xMDlcEE.js";import{n}from"./pinia-BK9B9Wwf.js";import{n as r,t as i}from"./http-CU_N-R2R.js";var a=`ft_catalog_requests`,o={new:`submitted`,approved:`reviewing`,ready_to_ship:`preparing`,delivered:`delivered`,returned:`delivered`,cancelled:`submitted`};function s(){try{let e=localStorage.getItem(a);if(!e)return[];let t=JSON.parse(e);return Array.isArray(t)?t:[]}catch{return[]}}function c(e){localStorage.setItem(a,JSON.stringify(e))}var l={submitted:`ثبتشده`,reviewing:`در حال بررسی`,preparing:`آمادهسازی`,shipped:`ارسالشده`,delivered:`تحویلشده`,new:`درخواست جدید`,approved:`تأیید شده`,ready_to_ship:`آماده ارسال`,returned:`بازگردانده شده`,cancelled:`لغو شده`};function u(e){return{id:e.id,createdAt:e.createdAt,updatedAt:e.updatedAt,status:o[e.status]??e.status,serverStatus:e.status,note:e.note,items:e.items.map(e=>({productId:e.productId,productName:e.productName,productCode:e.productCode,quantity:e.quantity}))}}var d=n(`catalogRequests`,()=>{let n=t(s()),a=t(!0),o=e(()=>[...n.value].sort((e,t)=>t.createdAt.localeCompare(e.createdAt)));function d(e){return l[e]??e}async function f(){if(!a.value){n.value=s();return}try{let e=await r(`/catalog-requests`);n.value=e.map(u),c(n.value)}catch{a.value=!1,n.value=s()}}async function p(e){let t=e.items.filter(e=>e.productId&&e.quantity>0).map(e=>({...e,quantity:Math.max(1,Math.floor(e.quantity))}));if(!t.length)return{success:!1,message:`حداقل یک قلم با تعداد معتبر لازم است.`};if(a.value)try{let i=u(await r(`/catalog-requests`,{method:`POST`,body:{note:e.note?.trim()||void 0,items:t.map(e=>({productId:e.productId,quantity:e.quantity}))}}));return n.value=[i,...n.value.filter(e=>e.id!==i.id)],c(n.value),{success:!0,request:i}}catch(e){if(e instanceof i&&e.status>=400&&e.status<500)return{success:!1,message:e.message};a.value=!1}let o={id:`cr-${Date.now()}`,createdAt:new Date().toISOString(),status:`submitted`,note:e.note?.trim()||void 0,items:t};return n.value=[o,...n.value],c(n.value),{success:!0,request:o}}function m(e){return n.value.find(t=>t.id===e)??null}return{requests:n,sorted:o,statusLabel:d,create:p,getById:m,hydrate:f}});export{d as t}; |