dealpos 26.41.0 → 26.41.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/browser/{chunk-YHHK3WPT.js → chunk-264LT5LF.js} +1 -1
- package/browser/{chunk-FXT2KEZT.js → chunk-2FN2BZOU.js} +1 -1
- package/browser/{chunk-HKKP4JZT.js → chunk-2J3OZSCY.js} +1 -1
- package/browser/{chunk-FLGCUYG7.js → chunk-333HGO3S.js} +1 -1
- package/browser/{chunk-XLXPRFGE.js → chunk-3O5GEZ6K.js} +1 -1
- package/browser/{chunk-RVWZH22I.js → chunk-3XFSJG7X.js} +1 -1
- package/browser/{chunk-K7C56UFX.js → chunk-465ZZI2K.js} +1 -1
- package/browser/{chunk-N6Y4GOBK.js → chunk-47SPFSL2.js} +1 -1
- package/browser/{chunk-CNX2WBNH.js → chunk-47T2ALJ5.js} +1 -1
- package/browser/{chunk-MKBAICBN.js → chunk-4IT2ER6C.js} +2 -2
- package/browser/{chunk-XE3V3ZGQ.js → chunk-5273EM7D.js} +1 -1
- package/browser/{chunk-JVJ6HO5K.js → chunk-5AH4SV7V.js} +1 -1
- package/browser/{chunk-2QG2LTFC.js → chunk-5EYDWE3R.js} +1 -1
- package/browser/{chunk-PIGDJL6F.js → chunk-5KCBJERY.js} +1 -1
- package/browser/{chunk-B3PATSEF.js → chunk-5PXDXMUH.js} +1 -1
- package/browser/{chunk-UII6K4IV.js → chunk-64REDJ3C.js} +1 -1
- package/browser/{chunk-DKO2INQ4.js → chunk-6CNQUJT6.js} +1 -1
- package/browser/{chunk-NAENEPKW.js → chunk-6S36SWGY.js} +1 -1
- package/browser/{chunk-BZI7QN6A.js → chunk-6SNNZFXU.js} +1 -1
- package/browser/{chunk-AC2ZSR4B.js → chunk-6UE25266.js} +2 -2
- package/browser/{chunk-SKNK5KAL.js → chunk-7AZ35ALY.js} +1 -1
- package/browser/{chunk-32B22BLM.js → chunk-AGUOHO7A.js} +1 -1
- package/browser/{chunk-DNC7I5E6.js → chunk-AJEO5G2O.js} +1 -1
- package/browser/{chunk-THMBWQRN.js → chunk-AQIPHIGL.js} +1 -1
- package/browser/{chunk-UG6ZCCMP.js → chunk-B4NCJOZR.js} +1 -1
- package/browser/{chunk-RBLDEAS3.js → chunk-BBEJHGXX.js} +1 -1
- package/browser/{chunk-HKDZHMMX.js → chunk-BUVINZJS.js} +1 -1
- package/browser/{chunk-AHCZTFMZ.js → chunk-BW4EBCYP.js} +1 -1
- package/browser/{chunk-NJD5YT3O.js → chunk-BWAWQYFA.js} +1 -1
- package/browser/{chunk-ABLTXKBO.js → chunk-C6EUI5VF.js} +1 -1
- package/browser/{chunk-2VQEQZBS.js → chunk-CMT7KZZM.js} +1 -1
- package/browser/{chunk-F5Z3PWVH.js → chunk-CRVQ4QBI.js} +1 -1
- package/browser/{chunk-Y7P5S722.js → chunk-D4DPYGA6.js} +2 -2
- package/browser/{chunk-46XJCTF5.js → chunk-D52EZBFO.js} +1 -1
- package/browser/{chunk-WM5G2BYW.js → chunk-E6K6GOJT.js} +1 -1
- package/browser/{chunk-6GPJ4NHL.js → chunk-EGBIADBW.js} +1 -1
- package/browser/{chunk-Y7C5MAGE.js → chunk-ERW7532U.js} +1 -1
- package/browser/{chunk-CIU2XZSB.js → chunk-EZXYQFSL.js} +1 -1
- package/browser/{chunk-LWRDUXS2.js → chunk-F72K5UCE.js} +1 -1
- package/browser/{chunk-43G6HJUT.js → chunk-FDPH3F3S.js} +1 -1
- package/browser/{chunk-PJIPVBTP.js → chunk-FGHRI62J.js} +1 -1
- package/browser/{chunk-AB4PS76I.js → chunk-G4QBSKSB.js} +1 -1
- package/browser/{chunk-V6GYITWT.js → chunk-GKHHPWT7.js} +1 -1
- package/browser/{chunk-M3JRQ6ER.js → chunk-GL4EQ3MC.js} +1 -1
- package/browser/{chunk-YOTE6JNI.js → chunk-GRGRMD7I.js} +2 -2
- package/browser/{chunk-I5SP43RQ.js → chunk-HHFDST3O.js} +1 -1
- package/browser/{chunk-RVK2SBEP.js → chunk-HRXHVZVR.js} +1 -1
- package/browser/{chunk-JMY37BAV.js → chunk-I4NLNFWN.js} +1 -1
- package/browser/chunk-I7ECOHHK.js +1 -0
- package/browser/{chunk-NCCWKUFP.js → chunk-IA6YPWX4.js} +1 -1
- package/browser/{chunk-BHP4XXDM.js → chunk-IOR6XOFR.js} +1 -1
- package/browser/{chunk-3JXCOPGH.js → chunk-IQMQ4OAN.js} +1 -1
- package/browser/{chunk-B3QU6VYD.js → chunk-JECLH5KZ.js} +1 -1
- package/browser/{chunk-YVDSCTVW.js → chunk-JVOM55HF.js} +1 -1
- package/browser/{chunk-BSEW5ZM7.js → chunk-K34FGXDF.js} +2 -2
- package/browser/{chunk-NRM5CTMH.js → chunk-K72N5AX5.js} +1 -1
- package/browser/{chunk-VOIUTKNL.js → chunk-KKIPY5RE.js} +1 -1
- package/browser/{chunk-LZQPNGMP.js → chunk-KMZSP4P6.js} +2 -2
- package/browser/{chunk-UZELJDIL.js → chunk-KPAM4TJH.js} +1 -1
- package/browser/{chunk-QYJKWN26.js → chunk-KTTO3PCD.js} +1 -1
- package/browser/{chunk-3W35O6ML.js → chunk-L2ELKPUY.js} +1 -1
- package/browser/{chunk-OGRMBTCY.js → chunk-LNAT6NNA.js} +1 -1
- package/browser/{chunk-RR76MJCQ.js → chunk-LWBDCAVH.js} +1 -1
- package/browser/{chunk-K35T435P.js → chunk-M4NQ7BCL.js} +1 -1
- package/browser/{chunk-URSYD4RV.js → chunk-MM4BTGGU.js} +1 -1
- package/browser/{chunk-NFHASZSK.js → chunk-MOLBHV56.js} +1 -1
- package/browser/{chunk-YVXY2B4B.js → chunk-N7XGC6CB.js} +1 -1
- package/browser/{chunk-6G7K3NP4.js → chunk-NLFCEPCU.js} +1 -1
- package/browser/{chunk-J2KJPVDF.js → chunk-NLREFBD3.js} +1 -1
- package/browser/{chunk-AFOCZ52I.js → chunk-NVLKX46V.js} +1 -1
- package/browser/{chunk-K7H2FAJJ.js → chunk-OPWMIOM6.js} +1 -1
- package/browser/{chunk-EMK4SDIG.js → chunk-P7LSV4Z4.js} +1 -1
- package/browser/{chunk-Z6FVHBY7.js → chunk-PYELBWX3.js} +1 -1
- package/browser/{chunk-OQTT3T7V.js → chunk-QGPNH6Q6.js} +1 -1
- package/browser/{chunk-O6UGX656.js → chunk-QIJQSL4Q.js} +1 -1
- package/browser/{chunk-AZ65X7TA.js → chunk-QKQ442MP.js} +1 -1
- package/browser/{chunk-U2YSXYDH.js → chunk-RAA5HNK5.js} +1 -1
- package/browser/{chunk-RD3AVJLN.js → chunk-RFYDAOUC.js} +1 -1
- package/browser/{chunk-DLHRB6S7.js → chunk-RPQZN4OB.js} +1 -1
- package/browser/{chunk-2DN2C4RW.js → chunk-RQ6QCFVS.js} +1 -1
- package/browser/{chunk-AVREGHMZ.js → chunk-SBPUJNJV.js} +1 -1
- package/browser/{chunk-TG4YDAKZ.js → chunk-SPP6KWE6.js} +1 -1
- package/browser/{chunk-SUCWCJ47.js → chunk-SV6ROSXF.js} +1 -1
- package/browser/{chunk-MILTNYN2.js → chunk-TG2QWEW4.js} +1 -1
- package/browser/{chunk-TAPEYB4U.js → chunk-TZTVAOCY.js} +1 -1
- package/browser/{chunk-P2A76GVV.js → chunk-VA2CMQGL.js} +1 -1
- package/browser/{chunk-JNHJW4KZ.js → chunk-VGZJUGJI.js} +1 -1
- package/browser/{chunk-FDAOKL54.js → chunk-VH5C42XP.js} +1 -1
- package/browser/{chunk-PGZ2V2HW.js → chunk-VUXWWVZK.js} +1 -1
- package/browser/{chunk-MA4PMLIQ.js → chunk-W25JXKBC.js} +1 -1
- package/browser/{chunk-QUKURHP7.js → chunk-W57VBLG4.js} +1 -1
- package/browser/{chunk-P72JLRD2.js → chunk-WOXUBN4X.js} +1 -1
- package/browser/{chunk-SMOW2ZUH.js → chunk-WUQVHWOG.js} +1 -1
- package/browser/{chunk-RPDI5E75.js → chunk-X4D2DSWB.js} +2 -2
- package/browser/{chunk-OESQXQQC.js → chunk-XB6OD3MN.js} +1 -1
- package/browser/{chunk-HAPTXGUX.js → chunk-XNRXHR7L.js} +1 -1
- package/browser/{chunk-J45NU5E4.js → chunk-XWUQNAO7.js} +1 -1
- package/browser/index.html +2 -2
- package/browser/{main-7ETGZT6X.js → main-LFEAZJQK.js} +1 -1
- package/browser/ngsw-config.json +1 -1
- package/browser/ngsw.json +495 -495
- package/package.json +1 -1
- package/browser/chunk-5QUFVJAQ.js +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as eo}from"./chunk-UFTCRVGX.js";import{a as no}from"./chunk-VYWFOSAW.js";import{a as qi,b as to}from"./chunk-76GXE6QT.js";import{a as mn}from"./chunk-FPVLLAJS.js";import{a as Ki,b as zi,c as Yi,d as Zi,e as Xi,f as Qe}from"./chunk-IIL2WABF.js";import{a as cn}from"./chunk-CKRAYZKU.js";import"./chunk-L6DNET2E.js";import{b as Lt}from"./chunk-RCI6QZX7.js";import{b as Li,c as Ui}from"./chunk-OXW2MORS.js";import{b as Gi}from"./chunk-V5XJGH2W.js";import"./chunk-Q3ZNI7UU.js";import{a as sn}from"./chunk-DXCCNV36.js";import{a as Wi}from"./chunk-TFMDC7ZG.js";import{a as Ji,b as Hi}from"./chunk-I3OTL6ZL.js";import{a as rn,b as $i,c as ji}from"./chunk-X55I2643.js";import{b as Qi}from"./chunk-2344RSSE.js";import{b as Ai}from"./chunk-H7JNNBL2.js";import"./chunk-VLKLGJDL.js";import{a as vi}from"./chunk-AO63R3DI.js";import"./chunk-P3KIIKY4.js";import"./chunk-ZPIILEA6.js";import"./chunk-7HMU6MXA.js";import{a as ln}from"./chunk-GWNGKIUL.js";import{a as Bi}from"./chunk-2LD4VKHV.js";import"./chunk-BYXBJQAS.js";import{a as an}from"./chunk-R7LRJ4RW.js";import"./chunk-BYXBJQAS.js";import{a as jn}from"./chunk-RQCACWGY.js";import"./chunk-7DHW3UBN.js";import"./chunk-DDLXGCOB.js";import"./chunk-53CYOKMD.js";import{a as Ri}from"./chunk-2KWWTRZP.js";import"./chunk-QIUN3PYQ.js";import{e as Tt}from"./chunk-MBSYHKPE.js";import"./chunk-PT6PCXOU.js";import"./chunk-OY6GIZXH.js";import{a as on}from"./chunk-3XYL5JLY.js";import{c as Di}from"./chunk-F76MWCWQ.js";import"./chunk-SCH7M36Q.js";import"./chunk-7TQOVQ3O.js";import"./chunk-G53IMHKY.js";import"./chunk-3EAA4CUP.js";import"./chunk-5U2B2SGN.js";import"./chunk-YJV74F2X.js";import"./chunk-WPCHBRKW.js";import{c as Ei,d as Fi}from"./chunk-J5EM5XXB.js";import"./chunk-UPH5FSV4.js";import"./chunk-5VC2XYC5.js";import{a as Ii}from"./chunk-ONECCHQ5.js";import"./chunk-GKGUNK27.js";import{a as Nt}from"./chunk-G56UPMKR.js";import"./chunk-XBINTEVI.js";import"./chunk-BAIS4TWD.js";import{b as Vi,c as ki}from"./chunk-O2F7SUYY.js";import"./chunk-XHLEWVPO.js";import"./chunk-ONKLHHM3.js";import"./chunk-4YPA4HZ3.js";import"./chunk-XTOFMSDQ.js";import"./chunk-ZM456L6A.js";import"./chunk-644K7HEV.js";import{a as _i,d as xi,f as Si,h as Mi}from"./chunk-LN7LGRLI.js";import"./chunk-EP7SKSJT.js";import"./chunk-LAQZXTBX.js";import{a as Oi}from"./chunk-N6Y4GOBK.js";import{a as Ci}from"./chunk-3DC26I3D.js";import{d as wi}from"./chunk-I5AMN7BZ.js";import{k as hi,o as Pi,q as Ti,r as Ni}from"./chunk-4BITXMRY.js";import"./chunk-2AOZZW2I.js";import"./chunk-TM2I5PAG.js";import{a as nt,b as it}from"./chunk-JXEPD3CF.js";import"./chunk-PPMQE2JW.js";import"./chunk-FGU4QONB.js";import"./chunk-OVCNCVGF.js";import{a as di,b as pi,c as ui}from"./chunk-OKQYRKDJ.js";import{d as nn}from"./chunk-BUIP3UCE.js";import"./chunk-SIAVPMSP.js";import"./chunk-CZ4UU2E4.js";import{a as we,b as Ue,c as ee,h as tn}from"./chunk-3V6FZIJD.js";import"./chunk-DEJ5V3PF.js";import"./chunk-T45W4CQR.js";import"./chunk-OK7LFGGQ.js";import"./chunk-VGLTFO5N.js";import"./chunk-UTSVZMZD.js";import{a as O,b as jt,c as N}from"./chunk-BP6PECKT.js";import{a as Be}from"./chunk-GNDUQZGK.js";import"./chunk-SKJSLBZP.js";import"./chunk-ZS4XLRDB.js";import"./chunk-NNQW72HA.js";import{a as ve,b as Te,c as Ne}from"./chunk-BKOMMH62.js";import"./chunk-TNXMA723.js";import"./chunk-TYFAIMTW.js";import"./chunk-SXVOKLC4.js";import{E as yi,F as Le,G as tt,a as Xe,b as fi,c as Pe,h as fe,m as ge,p as je,s as gi,t as et}from"./chunk-AJDQZ346.js";import{a as bi}from"./chunk-RBLDEAS3.js";import"./chunk-YY6WVNU4.js";import{b as Ce}from"./chunk-KLHHVIRS.js";import{a as I}from"./chunk-PPTZHIIZ.js";import{a as mi}from"./chunk-AHCZTFMZ.js";import{n as $e,q as me}from"./chunk-QGYXJUX3.js";import{$ as Ke,$a as f,Ab as pt,Ba as _,Bb as ze,C as dt,Cb as Ye,Da as Zn,Db as y,E as R,Eb as a,Fb as r,Fc as V,Ga as Bn,Gb as M,Gc as $,H as qn,Hb as Dt,Hc as $t,Hd as si,I as ye,Ib as _t,Jb as oi,Kb as Wt,L as Kn,Lb as Gt,Lc as zt,M as kt,Mb as ai,Na as Ht,Oc as Ie,P as zn,Pa as St,Pb as te,Pd as ci,Rd as Zt,Sb as C,Sd as Xt,T as Yn,Ta as Xn,Tb as qt,Tc as T,Ua as l,Ub as p,Uc as ft,Ud as en,W as Rt,Y as ie,_a as ei,aa as z,ac as Mt,bb as ti,bc as It,cc as Ot,db as B,e as xe,ea as k,ec as Pt,f as vt,g as Hn,ga as ue,gc as Bt,hc as m,ib as ni,ic as X,j as ae,jb as At,jc as A,k as Wn,ka as se,kc as st,kd as gt,l as qe,m as Gn,mc as ke,na as G,nc as Oe,oa as E,oc as Re,p as Jt,pc as ut,pd as ri,qc as Ze,qd as Yt,ra as Q,rc as he,s as d,sa as J,sc as $n,sd as li,t as Se,u as An,ud as Me,wb as h,wc as Ae,x as ht,xa as ce,xc as Kt,xd as oe,yb as D,yc as pe,zb as ii,zc as ct}from"./chunk-7D344CRC.js";import{a as S,b as w,e as Vt,j as ne}from"./chunk-NF7PG5F2.js";var io=()=>({deliveryEntityID:I.GuidEmpty,fulfillmentDate:null,fulfillmentTime:null,fulfillmentDateTime:null});var q=class i{constructor(t,e){this.http=e;this.buyForm=t.group({NewOrderID:[""],Order:t.group({Att:[""],SupplierID:[""],Number:[""],Date:[new Date],ID:[I.GuidEmpty]}),Invoice:t.group({ID:[I.GuidEmpty],Due:[new Date],Tax:[0]}),Payment:t.group({ID:[I.GuidEmpty],Amount:[0],MethodID:[0],Code:[""],Note:[""],ImageUrl:[""]})})}http;outlet=new ge({ID:"",Name:"Choose an Outlet"});dueDays=new ge(0);fulfillmentResult=new ge(io());noteForm=new ge({Note:"",TagID:"",Currency:{ID:"",ExchangeRate:0,Symbol:""},InvoiceNumber:""});discountAndTaxForm=new ge({Discount:{Amount:0,Percentage:0},Tax:{ID:"",CalculationTypeName:"",Rate:0,Label:"",Discontinue:!1}});buyForm;setPONumber(t){let e="";if(t.Seed){let n=t.Seed+"";for(;n.length<t.Digit;)n="0"+n;e=I.StringFormat(t.Prefix,n)}this.buyForm.controls.Order.controls.Number.setValue(e)}setDueDateBasedOnDaysDue(t){console.log(t);let e=this.invoiceDate,n=new Date(I.cloneObject(e));n.setDate(n.getDate()+t),this.buyForm.controls.Invoice.controls.Due.setValue(n)}get dueDate(){return this.buyForm.controls.Invoice.controls.Due.value}get invoiceDate(){return this.buyForm.controls.Order.controls.Date.value}setAmount(t){this.buyForm.controls.Payment.controls.Amount.setValue(t)}setPaymentMethodID(t){this.buyForm.controls.Payment.controls.MethodID.setValue(t)}setTaxAmount(t){this.buyForm.controls.Invoice.controls.Tax.setValue(t)}setNewOrderID(t){this.buyForm.controls.NewOrderID.setValue(t)}setTax(t){let e=S({},this.discountAndTaxForm.value.Discount);this.discountAndTaxForm.setValue({Discount:e,Tax:t})}setCurrency(t){let e=this.noteForm.value;this.noteForm.setValue(w(S({},e),{Currency:t}))}setDeliveryEntityID(t){this.fulfillmentResult.setValue(w(S({},this.fulfillmentResult.value),{deliveryEntityID:t}))}setdueDays(t){this.dueDays.setValue(t)}setBulkOrderForm(t){this.buyForm.controls.Order.setValue(t)}setBulkNoteForm(t){this.noteForm.setValue(t)}setBulkDiscountAndTaxForm(t){this.discountAndTaxForm.setValue(t)}setOutletForm(t){this.outlet.setValue(t)}setBulkInvoice(t){this.buyForm.controls.Invoice.setValue(S(S({},this.buyForm.controls.Invoice.value),t))}setBulkPayment(t){this.buyForm.controls.Payment.setValue(t)}resetOutletForm(){this.outlet.setValue({ID:"",Name:"Choose an Outlet"})}resetFulfillmentDate(){this.fulfillmentResult.setValue(w(S({},this.fulfillmentResult.value),{fulfillmentDate:null,fulfillmentTime:null,fulfillmentDateTime:null}))}resetDueDaysForm(){this.dueDays.setValue(0)}resetNoteForm(){this.noteForm.setValue(w(S({},this.noteForm.value),{Note:"",TagID:"",InvoiceNumber:""}))}resetDiscountAndTaxForm(){let t=this.discountAndTaxForm.value;this.discountAndTaxForm.setValue(w(S({},t),{Discount:{Amount:0,Percentage:0}}))}resetBuyForm(){this.buyForm.reset(),this.buyForm.controls.Invoice.controls.ID.setValue(I.GuidEmpty),this.buyForm.controls.Invoice.controls.Due.setValue(new Date),this.buyForm.controls.Order.controls.Date.setValue(new Date),this.buyForm.controls.Order.controls.ID.setValue(I.GuidEmpty),this.generateNumberOnNewTransaction()}generateNumberOnNewTransaction(){this.http.post("/API/Buy/GenerateNumber",{ID:this.outlet.value.ID}).subscribe(t=>{this.buyForm.controls.Order.controls.Number.setValue(t.Number)})}static \u0275fac=function(e){return new(e||i)(G(yi),G(me))};static \u0275prov=se({token:i,factory:i.\u0275fac,providedIn:"root"})};var de=class i{entities$;appConfigJSON$;taxes$;currencies$;supplierPOTypes$;predefinedNotes$;denomination$;defaultDueDays$;constructor(t,e){let n=t.get("/API/Buy2/Load").pipe(k(o=>{e.setCurrency(o.Currencies.find(s=>s.ID==o.AppConfigJSON.CoreDefaults.CurrencyID)),e.setNewOrderID(o.NewOrderID)}),ye(()=>ae),ie(1));this.denomination$=n.pipe(d(o=>o.Denomination)),this.entities$=n.pipe(d(o=>o.Entities)),this.appConfigJSON$=n.pipe(d(o=>o.AppConfigJSON)),this.taxes$=n.pipe(d(o=>o.Taxes),ie(1)),this.currencies$=n.pipe(d(o=>o.Currencies),ie(1)),this.supplierPOTypes$=n.pipe(d(o=>o.SupplierPOTypes)),this.predefinedNotes$=n.pipe(d(o=>o.PredefinedNotes)),this.defaultDueDays$=n.pipe(d(o=>o.AppConfigJSON.ModuleBuy.PaymentDialog.DefaultDueDays),k(o=>e.setdueDays(o)),k(o=>e.setDueDateBasedOnDaysDue(o)))}updateDueDays(){this.defaultDueDays$.subscribe()}static \u0275fac=function(e){return new(e||i)(G(me),G(q))};static \u0275prov=se({token:i,factory:i.\u0275fac,providedIn:"root"})};var yt=class i extends qi{connection;_Data=new Hn(1);Data=this._Data.asObservable();httpService=E(me);toastService=E($e);_cache=new Map;previousCountByEpc={};_isConnected=new vt(!1);isConnected=this._isConnected.asObservable();_bufferTime=new vt(100);set bufferTime(t){this._bufferTime.next(t)}get bufferTime(){return this._bufferTime.getValue()}_baseUrl=_("https://localhost:5001/rfidhub");baseUrl=Ie(()=>this._baseUrl());intializeWebSocket(t="/"){return ne(this,null,function*(){if(t.length<=0){this.toastService.error("RFID URL cannot be empty",ve.Error);return}if(!(this.connection&&this.connection.state===pi.Connected)){this.connection=new ui().withUrl(t).configureLogging(di.Information).withAutomaticReconnect().build();try{yield this.connection.start(),yield this.initiateGroupSubscription(),this.onWebSocketMessageReceived(),this._isConnected.next(!0),this.toastService.success("RFID Connected",ve.Success),this._baseUrl.set(t)}catch(e){throw this._isConnected.next(!1),this.toastService.error(JSON.stringify(e),ve.Error),this._baseUrl.set(null),new Error(JSON.stringify(e))}}})}disconnectWebSocket(){this.connection&&(this.connection.stop(),this.connection=void 0,this._isConnected.next(!1),this._baseUrl.set(null),this.toastService.info("RFID Disconnected",ve.Info))}initiateGroupSubscription(){return ne(this,null,function*(){try{yield this.connection.invoke("SubscribeGroup",{CurrentID:"Buy"})}catch(t){throw this.toastService.error(JSON.stringify(t),ve.Error),new Error(JSON.stringify(t))}})}onWebSocketMessageReceived(){this.connection.on("ReceiveSignal",t=>{this._Data.next(t)})}getVariantByCode(t,e=I.GuidEmpty){let n=[{key:"Code",value:t},{key:"EntityID",value:e}];return this.httpService.get(Be.GetVariantByCode,n).pipe(ye(o=>o instanceof si?qe(null):Gn(()=>new Error(o.message))))}processGroupedData(t=I.GuidEmpty){return this._Data.pipe(R(e=>e!==null&&e&&Object.keys(e).length>0),qn(this._bufferTime.getValue()),An(e=>Wn(e)),Yn(e=>e.epc),An(e=>e.pipe(Rt((n,o)=>[...n,o],[]),z(n=>{let o=e.key;if(this._cache.has(o))return this._cache.get(o).pipe(d(s=>({epc:o,items:n,response:s})));{let s=this.getVariantByCode(o,t).pipe(R(H=>H),k(H=>this._cache.set(o,qe(H))));return this._cache.set(o,s),s.pipe(d(H=>({epc:o,items:n,response:H})))}}))),Rt((e,n)=>{let o=this.previousCountByEpc&&this.previousCountByEpc[n.epc]||0,s=n.items.length,H=s-o;return e[n.epc]={data:n.items,count:H,variant:n.response},this.previousCountByEpc[n.epc]=s,e},{}),ie({bufferSize:1,refCount:!0}))}constructor(){super(),this.connection&&(this.connection.onclose=t=>ne(this,null,function*(){console.error("SignalR connection closed:",t)}),this.connection.onreconnecting=t=>ne(this,null,function*(){console.warn("SignalR reconnecting:",t)}),this.connection.onreconnected=t=>ne(this,null,function*(){console.log("SignalR reconnected:",t)}))}static \u0275fac=function(e){return new(e||i)};static \u0275prov=se({token:i,factory:i.\u0275fac,providedIn:"root"})};var bt=class i{returnInvoiceNumber=new ge("");invoiceInfo$;constructor(t,e,n){let o=e.outlet.valueChanges.pipe(d(c=>c.ID),O());this.invoiceInfo$=this.returnInvoiceNumber.valueChanges.pipe(R(c=>!!c),ue(o),z(([c,v])=>t.post("/API/Buy/GetSupplierInvoiceRetur2",{EntityID:v,Number:c}).pipe(ye(()=>ae))),ie(1),O());let s=this.invoiceInfo$.pipe(d(c=>S({},c.Order)),k(c=>{let v={Att:c.Att,SupplierID:{Key:c.SupplierID,Value:c.SupplierName,OnSet:!0},Date:new Date,Number:e.buyForm.controls.Order.controls.Number.value,ID:I.GuidEmpty};e.setBulkOrderForm(v)}),O()),H=this.invoiceInfo$.pipe(d(c=>c.Order),ue(n.currencies$,n.appConfigJSON$),k(([c,v,L])=>{let Z=L.CoreDefaults.CurrencyID,g=v.find(F=>F.ID===Z)?.Symbol??"$",j={Note:`Return #${c.Number}`,TagID:c.TypeID,Currency:{ID:c.CurrencyID||Z,ExchangeRate:c.CurrencyRate,Symbol:c.CurrencySymbol||g},InvoiceNumber:c.Number};e.setBulkNoteForm(j)}),O()),u=this.invoiceInfo$.pipe(d(c=>c.Order),ue(n.taxes$),d(([c,v])=>w(S({},c),{Tax:v.find(L=>L.ID===c.TaxTypeID)})),k(c=>{let v={Discount:{Amount:c.DiscountAmount,Percentage:c.Discount},Tax:{ID:c.TaxTypeID,Rate:c.Tax?.Rate,CalculationTypeName:c.Tax?.CalculationTypeName,Label:c.Tax?.Label,Discontinue:!c.Tax?.Label}};e.setBulkDiscountAndTaxForm(v)}),O()),P=this.invoiceInfo$.pipe(d(c=>c.DeliveryEntityID),k(c=>e.setDeliveryEntityID(c)),O()),W=this.invoiceInfo$.pipe(d(c=>c.Invoice),k(c=>{let v={ID:c.ID,Tax:c.Tax};e.setBulkInvoice(v)}),O()),x=this.invoiceInfo$.pipe(d(c=>c.Payment),k(c=>{let v={ID:I.GuidEmpty,Amount:c.Amount,MethodID:c.MethodID,Note:c.Note,Code:c.Code,ImageUrl:c.ImageUrl};e.setBulkPayment(v)}),O());Se(s,H,u,P,W,x).pipe(O()).subscribe()}static \u0275fac=function(e){return new(e||i)(G(me),G(q),G(de))};static \u0275prov=se({token:i,factory:i.\u0275fac,providedIn:"root"})};var Y=class i{constructor(t,e,n,o){this.matDialog=o;let s=e.outlet.valueChanges.pipe(d(c=>c.ID));this.addVariantThroughSerial$=this._addVariantThroughSerial.asObservable().pipe(ue(s),z(([c,v])=>t.get(Be.GetVariantBySerial,[{key:"Serial",value:c},{key:"EntityID",value:v}]).pipe(ye(()=>ae))),d(c=>this.setUnitPrice(c)),d(c=>w(S({},c),{Quantity:1,Total:c.UnitPrice,VariantID:c.ID,InventoryTypeID:c.TypeID})),d(c=>({action:"addAsSerial",variant:c})));let H=this.variantAutocomplete.valueChanges.pipe(R(c=>I.IsNotEmpty(c)&&c.type=="Code"),d(c=>c.str),ue(s),R(([c,v])=>I.IsNotEmpty(v)),z(([c,v])=>t.get(Be.GetVariantByCode,[{key:"Code",value:c},{key:"EntityID",value:v},{key:"Promotion",value:!0}]).pipe(ye(()=>ae))),d(c=>this.setUnitPrice(c)),d(c=>w(S({},c),{Quantity:1,Total:c.UnitPrice*((100-c.PriceDiscount)/100),Discount:c.PriceDiscount,VariantID:c.ID,InventoryTypeID:c.TypeID}))),u=this.variantAutocomplete.valueChanges.pipe(R(c=>I.IsNotEmpty(c)&&c.type=="ID"),d(c=>c.str)),P=this.variantQuickKey.valueChanges,W=dt(u,P).pipe(ue(s),z(([c,v])=>t.get(Be.GetVariantByID,[{key:"ID",value:c},{key:"EntityID",value:v}]).pipe(ye(()=>ae))),d(c=>this.setUnitPrice(c)),d(c=>w(S({},c),{Quantity:1,Total:c.UnitPrice*((100-c.OrderPriceDiscount)/100),Discount:c.OrderPriceDiscount,VariantID:c.ID,InventoryTypeID:c.TypeID}))),x=dt(W,H).pipe(k(c=>{c.CategoryTypeID===1&&this.toastr.info(`${c.Name} is sellable only.`,ve.Info)}),R(c=>c.CategoryTypeID!==1),d(c=>({action:"add",variant:c})),k(()=>{this.cartDisplayRef&&setTimeout(()=>{let c=this.cartDisplayRef.nativeElement.scrollHeight;this.cartDisplayRef.nativeElement.scrollTop=c},1)})),U=n.invoiceInfo$.pipe(k(c=>{this.isReturn.set(c.IsReturn)}),d(c=>({action:"returnInvoice",variants:c.Items.map(v=>w(S({},v.Variant),{Quantity:v.Quantity,Total:v.Total,UnitPrice:v.UnitPrice,Discount:v.Discount,Serial:v.Serial,ID:v.ID,DiscountAmount:v.DiscountAmount,VariantID:v.VariantID,UnitQuantity:v.UnitQuantity}))})));this.cart$=dt(x,U,this.deleteVariant$,this.dragDropCart$,this.returnCart$,this.updateVariant$,this.returnVariant$,this.purchaseVariant$,this.clearCart$,this.onEditForm$,this.addVariantThroughSerial$,this.addVariant$,this.onUploadCart$,this.listenRFID$).pipe(Rt((c,v)=>{let L=[...c],Z=[],b=v.action;if(b=="add"){let g=v.variant;Z=!!L.find(F=>F.VariantID==g.ID)?L.map(F=>F.VariantID==g.ID?w(S({},F),{Quantity:F.Quantity+1,Total:F.Total+F.UnitPrice}):F):[...L,g]}else if(b=="returnInvoice"||b=="onEditForm")Z=v.variants;else if(b=="delete"){let g=v.index;Z=L.filter((j,F)=>F!=g)}else if(b=="sort"){let g=v.ev;Z=L,_i(Z,g.previousIndex,g.currentIndex)}else if(b=="returnCart")Z=L.map(g=>w(S({},g),{Quantity:-Math.abs(g.Quantity),Total:-Math.abs(g.Total)}));else if(b=="update"){let g=v.index;Z=L.map((j,F)=>F==g?v.variant:j)}else if(b=="returnVariant"){let g=v.index;Z=L.map((j,F)=>F==g?w(S({},j),{Quantity:-Math.abs(j.Quantity),Total:-Math.abs(j.Total)}):j)}else if(b=="purchaseVariant"){let g=v.index;Z=L.map((j,F)=>F==g?w(S({},j),{Quantity:Math.abs(j.Quantity),Total:Math.abs(j.Total)}):j)}else if(b=="clearCart")Z=[];else if(b=="addAsSerial"){let g=w(S({},v.variant),{Serial:[{Number:v.variant.Serial.Number,Quantity:1,ExpiryDate:v.variant.Serial.ExpiryDate}]});if(!!L.find(F=>F.ID==g.ID)){let F=g.Serial[0],be=L.find(le=>le.ID==g.ID),_e=!!be.Serial.find(le=>le.Number==F.Number)?[...be.Serial].map(le=>le.Number==F.Number?w(S({},le),{Quantity:le.Quantity+1}):le):[...be.Serial,F];Z=L.map(le=>le.ID==g.ID?w(S({},le),{Quantity:le.Quantity+1,Total:le.Total+le.UnitPrice,Serial:_e}):le)}else Z=[...L,w(S({},g),{Quantity:1,Total:g.UnitPrice})]}else if(b=="uploadCart")Z=[...L,...v.variants];else if(b=="addNewRow"){let g=v.variant;Z=[...L,g]}else if(b=="rfid"){let g=v.variants;Object.keys(g).forEach(j=>{if(g.hasOwnProperty(j)){let F=g[j];if(F&&Object.keys(F.variant).length>0){let be=L.findIndex(Fe=>Fe.Code.toLowerCase()===j.toLowerCase());if(be!==-1){let Fe=Number(F.count);L[be].Quantity+=Fe,L[be].Total=+L[be].UnitPrice*+L[be].Quantity,delete g[j],Z=[...L]}else{let Fe=F.variant,_e=Number(F.count),le=this.setUnitPrice(Fe),Ve=this.formatItemObject(w(S({},le),{Quantity:_e,Total:+le.UnitPrice*+_e}));delete g[j],Z=[...L,Ve]}}}})}return Z},[]),Ke([]),ie(1)),this.totalVariantOrdered$=this.cart$.pipe(d(c=>c.map(v=>v.Quantity)),d(c=>c.reduce((v,L)=>v+L,0)),Ke(0))}matDialog;toastr=E($e);roleService=E(Ce);decimalPipe=E(Me);cartDisplayRef;variantAutocomplete=new ge;variantQuickKey=new ge;priceMaximumRestrictionWarning=_("");_listenRFID=new xe;listenRFID$=this._listenRFID.asObservable().pipe(d(t=>({action:"rfid",variants:t})));_deleteVariant=new xe;deleteVariant$=this._deleteVariant.asObservable().pipe(d(t=>({action:"delete",index:t})));_dragDropCart=new xe;dragDropCart$=this._dragDropCart.asObservable().pipe(d(t=>({action:"sort",ev:t})));_returnCart=new xe;returnCart$=this._returnCart.asObservable().pipe(d(()=>({action:"returnCart"})));_onEditForm=new vt(null);onEditForm$=this._onEditForm.asObservable().pipe(R(t=>!!t),d(t=>({action:"onEditForm",variants:t})));_clearCart=new xe;clearCart$=this._clearCart.asObservable().pipe(d(()=>({action:"clearCart"})));_updateVariant=new xe;updateVariant$=this._updateVariant.asObservable().pipe(d(t=>({action:"update",variant:t.variant,index:t.index})));_returnVariant=new xe;returnVariant$=this._returnVariant.asObservable().pipe(d(t=>({action:"returnVariant",index:t})));_purchaseVariant=new xe;purchaseVariant$=this._purchaseVariant.asObservable().pipe(d(t=>({action:"purchaseVariant",index:t})));_addVariant=new xe;addVariant$=this._addVariant.asObservable().pipe(d(t=>({action:"addNewRow",variant:t})));_onUploadCart=new xe;onUploadCart$=this._onUploadCart.asObservable().pipe(d(t=>({action:"uploadCart",variants:t})));cart$;totalVariantOrdered$;isReturn=_(!1);_addVariantThroughSerial=new xe;addVariantThroughSerial$;deleteVariant(t){this._deleteVariant.next(t)}dragDropCart(t){this._dragDropCart.next(t)}returnCart(){this._returnCart.next()}updateVariant(t,e){this._updateVariant.next({variant:t,index:e})}returnVariant(t){this._returnVariant.next(t)}purchaseVariant(t){this._purchaseVariant.next(t)}clearCart(){this._clearCart.next()}editForm(t){this._onEditForm.next(t)}addVariant(t){this._addVariant.next(t)}addVariantThroughSerial(t){this._addVariantThroughSerial.next(t)}uploadCart(t){this._onUploadCart.next(t)}setUnitPrice(t){let e=S({},t);return I.IsNotEmpty(t.OrderPrice)?e.UnitPrice=t.OrderPrice:e.UnitPrice=t.UnitCost,e}formatItemObject=t=>{let o=t,{ID:e}=o,n=Vt(o,["ID"]);return w(S({},n),{Quantity:n.Quantity??1,Total:n.Total??n.UnitPrice,VariantID:e})};addCartRFID(t){this._listenRFID.next(t)}validatePriceMaximum(t){let e=!0;if(this.roleService.buyRestriction.CostMax&&t.MaxOrderPrice>0)if(t.UnitPrice>t.MaxOrderPrice){e=!1;let o=I.StringFormat("<span><i class='fa-solid fa-triangle-exclamation me-2 d-inline'></i>Cannot buy more than <h5 class='d-inline m-0'>{0}</h5></span>",this.decimalPipe.transform(t.MaxOrderPrice));this.priceMaximumRestrictionWarning.set(o)}else e=!0,this.priceMaximumRestrictionWarning.set("");return e}static \u0275fac=function(e){return new(e||i)(G(me),G(q),G(bt),G(ee))};static \u0275prov=se({token:i,factory:i.\u0275fac,providedIn:"root"})};var He=class i{_isEdit=new xe;isEdit$;id$;isUnpaid$;dialog=E(ee);constructor(t,e,n,o,s){let H=qe(t.snapshot.queryParams);this.isEdit$=dt(H.pipe(d(b=>!!b.ID)),this._isEdit.asObservable()).pipe(ie(1)),this.id$=H.pipe(R(b=>b.ID),d(b=>b.ID));let u=this.id$.pipe(z(b=>e.post("/api/Buy2/GetDataByID2",{ID:b})),ie(1)),P=ht(()=>o.entities$).pipe(z(b=>u.pipe(d(g=>[g.Order,b]))),k(([b,g])=>{let j={Att:b.Att,SupplierID:{Key:b.SupplierID,Value:b.SupplierName,OnSet:!0},Date:b.Date,Number:b.Number,ID:b.ID};n.setBulkOrderForm(j)}),k(([b,g])=>{let j=g.find(F=>F.ID==b.EntityID);n.setOutletForm(j)})),W=u.pipe(d(b=>b.Items),d(b=>b.map(g=>w(S({},g.Variant),{Quantity:g.Quantity,Total:g.Total,Note:g.Note,UnitPrice:g.UnitPrice,Discount:g.Discount,Serial:g.Serial,ID:g.ID,VariantID:g.VariantID,UnitQuantity:g.UnitQuantity,QtyRequested:g.QtyRequested,DiscountAmount:g.DiscountAmount}))),k(b=>s.editForm(b))),x=ht(()=>o.currencies$).pipe(z(b=>u.pipe(d(g=>[g.Order,b,g.Invoice]))),d(([b,g,j])=>w(S({},b),{Number:b.Number!=j.Number?j.Number:b.Number,Currency:g.find(F=>F.ID===b.CurrencyID)})),k(b=>{let g={Note:b.Note,TagID:b.TypeID,Currency:S({},b.Currency),InvoiceNumber:b.Number};n.setBulkNoteForm(g)})),U=u.pipe(d(b=>b.DeliveryEntityID),k(b=>n.setDeliveryEntityID(b))),c=ht(()=>o.taxes$).pipe(z(b=>u.pipe(d(g=>[g.Order,b]))),d(([b,g])=>w(S({},b),{Taxes:g})),k(b=>{let g=b.Taxes.find(F=>F.ID===b.TaxTypeID);g?.Bin&&this.dialog.open(rn,{id:"ModalInfo",data:{title:"Default Tax Discontinued",message:`
|
|
1
|
+
import{a as eo}from"./chunk-UFTCRVGX.js";import{a as no}from"./chunk-VYWFOSAW.js";import{a as qi,b as to}from"./chunk-76GXE6QT.js";import{a as mn}from"./chunk-FPVLLAJS.js";import{a as Ki,b as zi,c as Yi,d as Zi,e as Xi,f as Qe}from"./chunk-IIL2WABF.js";import{a as cn}from"./chunk-CKRAYZKU.js";import"./chunk-L6DNET2E.js";import{b as Lt}from"./chunk-RCI6QZX7.js";import{b as Li,c as Ui}from"./chunk-OXW2MORS.js";import{b as Gi}from"./chunk-V5XJGH2W.js";import"./chunk-Q3ZNI7UU.js";import{a as sn}from"./chunk-DXCCNV36.js";import{a as Wi}from"./chunk-TFMDC7ZG.js";import{a as Ji,b as Hi}from"./chunk-I3OTL6ZL.js";import{a as rn,b as $i,c as ji}from"./chunk-X55I2643.js";import{b as Qi}from"./chunk-2344RSSE.js";import{b as Ai}from"./chunk-H7JNNBL2.js";import"./chunk-VLKLGJDL.js";import{a as vi}from"./chunk-AO63R3DI.js";import"./chunk-P3KIIKY4.js";import"./chunk-ZPIILEA6.js";import"./chunk-7HMU6MXA.js";import{a as ln}from"./chunk-GWNGKIUL.js";import{a as Bi}from"./chunk-2LD4VKHV.js";import"./chunk-BYXBJQAS.js";import{a as an}from"./chunk-R7LRJ4RW.js";import"./chunk-BYXBJQAS.js";import{a as jn}from"./chunk-RQCACWGY.js";import"./chunk-7DHW3UBN.js";import"./chunk-DDLXGCOB.js";import"./chunk-53CYOKMD.js";import{a as Ri}from"./chunk-2KWWTRZP.js";import"./chunk-QIUN3PYQ.js";import{e as Tt}from"./chunk-MBSYHKPE.js";import"./chunk-PT6PCXOU.js";import"./chunk-OY6GIZXH.js";import{a as on}from"./chunk-3XYL5JLY.js";import{c as Di}from"./chunk-F76MWCWQ.js";import"./chunk-SCH7M36Q.js";import"./chunk-7TQOVQ3O.js";import"./chunk-G53IMHKY.js";import"./chunk-3EAA4CUP.js";import"./chunk-5U2B2SGN.js";import"./chunk-YJV74F2X.js";import"./chunk-WPCHBRKW.js";import{c as Ei,d as Fi}from"./chunk-J5EM5XXB.js";import"./chunk-UPH5FSV4.js";import"./chunk-5VC2XYC5.js";import{a as Ii}from"./chunk-ONECCHQ5.js";import"./chunk-GKGUNK27.js";import{a as Nt}from"./chunk-G56UPMKR.js";import"./chunk-XBINTEVI.js";import"./chunk-BAIS4TWD.js";import{b as Vi,c as ki}from"./chunk-O2F7SUYY.js";import"./chunk-XHLEWVPO.js";import"./chunk-ONKLHHM3.js";import"./chunk-4YPA4HZ3.js";import"./chunk-XTOFMSDQ.js";import"./chunk-ZM456L6A.js";import"./chunk-644K7HEV.js";import{a as _i,d as xi,f as Si,h as Mi}from"./chunk-LN7LGRLI.js";import"./chunk-EP7SKSJT.js";import"./chunk-LAQZXTBX.js";import{a as Oi}from"./chunk-47SPFSL2.js";import{a as Ci}from"./chunk-3DC26I3D.js";import{d as wi}from"./chunk-I5AMN7BZ.js";import{k as hi,o as Pi,q as Ti,r as Ni}from"./chunk-4BITXMRY.js";import"./chunk-2AOZZW2I.js";import"./chunk-TM2I5PAG.js";import{a as nt,b as it}from"./chunk-JXEPD3CF.js";import"./chunk-PPMQE2JW.js";import"./chunk-FGU4QONB.js";import"./chunk-OVCNCVGF.js";import{a as di,b as pi,c as ui}from"./chunk-OKQYRKDJ.js";import{d as nn}from"./chunk-BUIP3UCE.js";import"./chunk-SIAVPMSP.js";import"./chunk-CZ4UU2E4.js";import{a as we,b as Ue,c as ee,h as tn}from"./chunk-3V6FZIJD.js";import"./chunk-DEJ5V3PF.js";import"./chunk-T45W4CQR.js";import"./chunk-OK7LFGGQ.js";import"./chunk-VGLTFO5N.js";import"./chunk-UTSVZMZD.js";import{a as O,b as jt,c as N}from"./chunk-BP6PECKT.js";import{a as Be}from"./chunk-GNDUQZGK.js";import"./chunk-SKJSLBZP.js";import"./chunk-ZS4XLRDB.js";import"./chunk-NNQW72HA.js";import{a as ve,b as Te,c as Ne}from"./chunk-BKOMMH62.js";import"./chunk-TNXMA723.js";import"./chunk-TYFAIMTW.js";import"./chunk-SXVOKLC4.js";import{E as yi,F as Le,G as tt,a as Xe,b as fi,c as Pe,h as fe,m as ge,p as je,s as gi,t as et}from"./chunk-AJDQZ346.js";import{a as bi}from"./chunk-BBEJHGXX.js";import"./chunk-YY6WVNU4.js";import{b as Ce}from"./chunk-KLHHVIRS.js";import{a as I}from"./chunk-PPTZHIIZ.js";import{a as mi}from"./chunk-BW4EBCYP.js";import{n as $e,q as me}from"./chunk-QGYXJUX3.js";import{$ as Ke,$a as f,Ab as pt,Ba as _,Bb as ze,C as dt,Cb as Ye,Da as Zn,Db as y,E as R,Eb as a,Fb as r,Fc as V,Ga as Bn,Gb as M,Gc as $,H as qn,Hb as Dt,Hc as $t,Hd as si,I as ye,Ib as _t,Jb as oi,Kb as Wt,L as Kn,Lb as Gt,Lc as zt,M as kt,Mb as ai,Na as Ht,Oc as Ie,P as zn,Pa as St,Pb as te,Pd as ci,Rd as Zt,Sb as C,Sd as Xt,T as Yn,Ta as Xn,Tb as qt,Tc as T,Ua as l,Ub as p,Uc as ft,Ud as en,W as Rt,Y as ie,_a as ei,aa as z,ac as Mt,bb as ti,bc as It,cc as Ot,db as B,e as xe,ea as k,ec as Pt,f as vt,g as Hn,ga as ue,gc as Bt,hc as m,ib as ni,ic as X,j as ae,jb as At,jc as A,k as Wn,ka as se,kc as st,kd as gt,l as qe,m as Gn,mc as ke,na as G,nc as Oe,oa as E,oc as Re,p as Jt,pc as ut,pd as ri,qc as Ze,qd as Yt,ra as Q,rc as he,s as d,sa as J,sc as $n,sd as li,t as Se,u as An,ud as Me,wb as h,wc as Ae,x as ht,xa as ce,xc as Kt,xd as oe,yb as D,yc as pe,zb as ii,zc as ct}from"./chunk-7D344CRC.js";import{a as S,b as w,e as Vt,j as ne}from"./chunk-NF7PG5F2.js";var io=()=>({deliveryEntityID:I.GuidEmpty,fulfillmentDate:null,fulfillmentTime:null,fulfillmentDateTime:null});var q=class i{constructor(t,e){this.http=e;this.buyForm=t.group({NewOrderID:[""],Order:t.group({Att:[""],SupplierID:[""],Number:[""],Date:[new Date],ID:[I.GuidEmpty]}),Invoice:t.group({ID:[I.GuidEmpty],Due:[new Date],Tax:[0]}),Payment:t.group({ID:[I.GuidEmpty],Amount:[0],MethodID:[0],Code:[""],Note:[""],ImageUrl:[""]})})}http;outlet=new ge({ID:"",Name:"Choose an Outlet"});dueDays=new ge(0);fulfillmentResult=new ge(io());noteForm=new ge({Note:"",TagID:"",Currency:{ID:"",ExchangeRate:0,Symbol:""},InvoiceNumber:""});discountAndTaxForm=new ge({Discount:{Amount:0,Percentage:0},Tax:{ID:"",CalculationTypeName:"",Rate:0,Label:"",Discontinue:!1}});buyForm;setPONumber(t){let e="";if(t.Seed){let n=t.Seed+"";for(;n.length<t.Digit;)n="0"+n;e=I.StringFormat(t.Prefix,n)}this.buyForm.controls.Order.controls.Number.setValue(e)}setDueDateBasedOnDaysDue(t){console.log(t);let e=this.invoiceDate,n=new Date(I.cloneObject(e));n.setDate(n.getDate()+t),this.buyForm.controls.Invoice.controls.Due.setValue(n)}get dueDate(){return this.buyForm.controls.Invoice.controls.Due.value}get invoiceDate(){return this.buyForm.controls.Order.controls.Date.value}setAmount(t){this.buyForm.controls.Payment.controls.Amount.setValue(t)}setPaymentMethodID(t){this.buyForm.controls.Payment.controls.MethodID.setValue(t)}setTaxAmount(t){this.buyForm.controls.Invoice.controls.Tax.setValue(t)}setNewOrderID(t){this.buyForm.controls.NewOrderID.setValue(t)}setTax(t){let e=S({},this.discountAndTaxForm.value.Discount);this.discountAndTaxForm.setValue({Discount:e,Tax:t})}setCurrency(t){let e=this.noteForm.value;this.noteForm.setValue(w(S({},e),{Currency:t}))}setDeliveryEntityID(t){this.fulfillmentResult.setValue(w(S({},this.fulfillmentResult.value),{deliveryEntityID:t}))}setdueDays(t){this.dueDays.setValue(t)}setBulkOrderForm(t){this.buyForm.controls.Order.setValue(t)}setBulkNoteForm(t){this.noteForm.setValue(t)}setBulkDiscountAndTaxForm(t){this.discountAndTaxForm.setValue(t)}setOutletForm(t){this.outlet.setValue(t)}setBulkInvoice(t){this.buyForm.controls.Invoice.setValue(S(S({},this.buyForm.controls.Invoice.value),t))}setBulkPayment(t){this.buyForm.controls.Payment.setValue(t)}resetOutletForm(){this.outlet.setValue({ID:"",Name:"Choose an Outlet"})}resetFulfillmentDate(){this.fulfillmentResult.setValue(w(S({},this.fulfillmentResult.value),{fulfillmentDate:null,fulfillmentTime:null,fulfillmentDateTime:null}))}resetDueDaysForm(){this.dueDays.setValue(0)}resetNoteForm(){this.noteForm.setValue(w(S({},this.noteForm.value),{Note:"",TagID:"",InvoiceNumber:""}))}resetDiscountAndTaxForm(){let t=this.discountAndTaxForm.value;this.discountAndTaxForm.setValue(w(S({},t),{Discount:{Amount:0,Percentage:0}}))}resetBuyForm(){this.buyForm.reset(),this.buyForm.controls.Invoice.controls.ID.setValue(I.GuidEmpty),this.buyForm.controls.Invoice.controls.Due.setValue(new Date),this.buyForm.controls.Order.controls.Date.setValue(new Date),this.buyForm.controls.Order.controls.ID.setValue(I.GuidEmpty),this.generateNumberOnNewTransaction()}generateNumberOnNewTransaction(){this.http.post("/API/Buy/GenerateNumber",{ID:this.outlet.value.ID}).subscribe(t=>{this.buyForm.controls.Order.controls.Number.setValue(t.Number)})}static \u0275fac=function(e){return new(e||i)(G(yi),G(me))};static \u0275prov=se({token:i,factory:i.\u0275fac,providedIn:"root"})};var de=class i{entities$;appConfigJSON$;taxes$;currencies$;supplierPOTypes$;predefinedNotes$;denomination$;defaultDueDays$;constructor(t,e){let n=t.get("/API/Buy2/Load").pipe(k(o=>{e.setCurrency(o.Currencies.find(s=>s.ID==o.AppConfigJSON.CoreDefaults.CurrencyID)),e.setNewOrderID(o.NewOrderID)}),ye(()=>ae),ie(1));this.denomination$=n.pipe(d(o=>o.Denomination)),this.entities$=n.pipe(d(o=>o.Entities)),this.appConfigJSON$=n.pipe(d(o=>o.AppConfigJSON)),this.taxes$=n.pipe(d(o=>o.Taxes),ie(1)),this.currencies$=n.pipe(d(o=>o.Currencies),ie(1)),this.supplierPOTypes$=n.pipe(d(o=>o.SupplierPOTypes)),this.predefinedNotes$=n.pipe(d(o=>o.PredefinedNotes)),this.defaultDueDays$=n.pipe(d(o=>o.AppConfigJSON.ModuleBuy.PaymentDialog.DefaultDueDays),k(o=>e.setdueDays(o)),k(o=>e.setDueDateBasedOnDaysDue(o)))}updateDueDays(){this.defaultDueDays$.subscribe()}static \u0275fac=function(e){return new(e||i)(G(me),G(q))};static \u0275prov=se({token:i,factory:i.\u0275fac,providedIn:"root"})};var yt=class i extends qi{connection;_Data=new Hn(1);Data=this._Data.asObservable();httpService=E(me);toastService=E($e);_cache=new Map;previousCountByEpc={};_isConnected=new vt(!1);isConnected=this._isConnected.asObservable();_bufferTime=new vt(100);set bufferTime(t){this._bufferTime.next(t)}get bufferTime(){return this._bufferTime.getValue()}_baseUrl=_("https://localhost:5001/rfidhub");baseUrl=Ie(()=>this._baseUrl());intializeWebSocket(t="/"){return ne(this,null,function*(){if(t.length<=0){this.toastService.error("RFID URL cannot be empty",ve.Error);return}if(!(this.connection&&this.connection.state===pi.Connected)){this.connection=new ui().withUrl(t).configureLogging(di.Information).withAutomaticReconnect().build();try{yield this.connection.start(),yield this.initiateGroupSubscription(),this.onWebSocketMessageReceived(),this._isConnected.next(!0),this.toastService.success("RFID Connected",ve.Success),this._baseUrl.set(t)}catch(e){throw this._isConnected.next(!1),this.toastService.error(JSON.stringify(e),ve.Error),this._baseUrl.set(null),new Error(JSON.stringify(e))}}})}disconnectWebSocket(){this.connection&&(this.connection.stop(),this.connection=void 0,this._isConnected.next(!1),this._baseUrl.set(null),this.toastService.info("RFID Disconnected",ve.Info))}initiateGroupSubscription(){return ne(this,null,function*(){try{yield this.connection.invoke("SubscribeGroup",{CurrentID:"Buy"})}catch(t){throw this.toastService.error(JSON.stringify(t),ve.Error),new Error(JSON.stringify(t))}})}onWebSocketMessageReceived(){this.connection.on("ReceiveSignal",t=>{this._Data.next(t)})}getVariantByCode(t,e=I.GuidEmpty){let n=[{key:"Code",value:t},{key:"EntityID",value:e}];return this.httpService.get(Be.GetVariantByCode,n).pipe(ye(o=>o instanceof si?qe(null):Gn(()=>new Error(o.message))))}processGroupedData(t=I.GuidEmpty){return this._Data.pipe(R(e=>e!==null&&e&&Object.keys(e).length>0),qn(this._bufferTime.getValue()),An(e=>Wn(e)),Yn(e=>e.epc),An(e=>e.pipe(Rt((n,o)=>[...n,o],[]),z(n=>{let o=e.key;if(this._cache.has(o))return this._cache.get(o).pipe(d(s=>({epc:o,items:n,response:s})));{let s=this.getVariantByCode(o,t).pipe(R(H=>H),k(H=>this._cache.set(o,qe(H))));return this._cache.set(o,s),s.pipe(d(H=>({epc:o,items:n,response:H})))}}))),Rt((e,n)=>{let o=this.previousCountByEpc&&this.previousCountByEpc[n.epc]||0,s=n.items.length,H=s-o;return e[n.epc]={data:n.items,count:H,variant:n.response},this.previousCountByEpc[n.epc]=s,e},{}),ie({bufferSize:1,refCount:!0}))}constructor(){super(),this.connection&&(this.connection.onclose=t=>ne(this,null,function*(){console.error("SignalR connection closed:",t)}),this.connection.onreconnecting=t=>ne(this,null,function*(){console.warn("SignalR reconnecting:",t)}),this.connection.onreconnected=t=>ne(this,null,function*(){console.log("SignalR reconnected:",t)}))}static \u0275fac=function(e){return new(e||i)};static \u0275prov=se({token:i,factory:i.\u0275fac,providedIn:"root"})};var bt=class i{returnInvoiceNumber=new ge("");invoiceInfo$;constructor(t,e,n){let o=e.outlet.valueChanges.pipe(d(c=>c.ID),O());this.invoiceInfo$=this.returnInvoiceNumber.valueChanges.pipe(R(c=>!!c),ue(o),z(([c,v])=>t.post("/API/Buy/GetSupplierInvoiceRetur2",{EntityID:v,Number:c}).pipe(ye(()=>ae))),ie(1),O());let s=this.invoiceInfo$.pipe(d(c=>S({},c.Order)),k(c=>{let v={Att:c.Att,SupplierID:{Key:c.SupplierID,Value:c.SupplierName,OnSet:!0},Date:new Date,Number:e.buyForm.controls.Order.controls.Number.value,ID:I.GuidEmpty};e.setBulkOrderForm(v)}),O()),H=this.invoiceInfo$.pipe(d(c=>c.Order),ue(n.currencies$,n.appConfigJSON$),k(([c,v,L])=>{let Z=L.CoreDefaults.CurrencyID,g=v.find(F=>F.ID===Z)?.Symbol??"$",j={Note:`Return #${c.Number}`,TagID:c.TypeID,Currency:{ID:c.CurrencyID||Z,ExchangeRate:c.CurrencyRate,Symbol:c.CurrencySymbol||g},InvoiceNumber:c.Number};e.setBulkNoteForm(j)}),O()),u=this.invoiceInfo$.pipe(d(c=>c.Order),ue(n.taxes$),d(([c,v])=>w(S({},c),{Tax:v.find(L=>L.ID===c.TaxTypeID)})),k(c=>{let v={Discount:{Amount:c.DiscountAmount,Percentage:c.Discount},Tax:{ID:c.TaxTypeID,Rate:c.Tax?.Rate,CalculationTypeName:c.Tax?.CalculationTypeName,Label:c.Tax?.Label,Discontinue:!c.Tax?.Label}};e.setBulkDiscountAndTaxForm(v)}),O()),P=this.invoiceInfo$.pipe(d(c=>c.DeliveryEntityID),k(c=>e.setDeliveryEntityID(c)),O()),W=this.invoiceInfo$.pipe(d(c=>c.Invoice),k(c=>{let v={ID:c.ID,Tax:c.Tax};e.setBulkInvoice(v)}),O()),x=this.invoiceInfo$.pipe(d(c=>c.Payment),k(c=>{let v={ID:I.GuidEmpty,Amount:c.Amount,MethodID:c.MethodID,Note:c.Note,Code:c.Code,ImageUrl:c.ImageUrl};e.setBulkPayment(v)}),O());Se(s,H,u,P,W,x).pipe(O()).subscribe()}static \u0275fac=function(e){return new(e||i)(G(me),G(q),G(de))};static \u0275prov=se({token:i,factory:i.\u0275fac,providedIn:"root"})};var Y=class i{constructor(t,e,n,o){this.matDialog=o;let s=e.outlet.valueChanges.pipe(d(c=>c.ID));this.addVariantThroughSerial$=this._addVariantThroughSerial.asObservable().pipe(ue(s),z(([c,v])=>t.get(Be.GetVariantBySerial,[{key:"Serial",value:c},{key:"EntityID",value:v}]).pipe(ye(()=>ae))),d(c=>this.setUnitPrice(c)),d(c=>w(S({},c),{Quantity:1,Total:c.UnitPrice,VariantID:c.ID,InventoryTypeID:c.TypeID})),d(c=>({action:"addAsSerial",variant:c})));let H=this.variantAutocomplete.valueChanges.pipe(R(c=>I.IsNotEmpty(c)&&c.type=="Code"),d(c=>c.str),ue(s),R(([c,v])=>I.IsNotEmpty(v)),z(([c,v])=>t.get(Be.GetVariantByCode,[{key:"Code",value:c},{key:"EntityID",value:v},{key:"Promotion",value:!0}]).pipe(ye(()=>ae))),d(c=>this.setUnitPrice(c)),d(c=>w(S({},c),{Quantity:1,Total:c.UnitPrice*((100-c.PriceDiscount)/100),Discount:c.PriceDiscount,VariantID:c.ID,InventoryTypeID:c.TypeID}))),u=this.variantAutocomplete.valueChanges.pipe(R(c=>I.IsNotEmpty(c)&&c.type=="ID"),d(c=>c.str)),P=this.variantQuickKey.valueChanges,W=dt(u,P).pipe(ue(s),z(([c,v])=>t.get(Be.GetVariantByID,[{key:"ID",value:c},{key:"EntityID",value:v}]).pipe(ye(()=>ae))),d(c=>this.setUnitPrice(c)),d(c=>w(S({},c),{Quantity:1,Total:c.UnitPrice*((100-c.OrderPriceDiscount)/100),Discount:c.OrderPriceDiscount,VariantID:c.ID,InventoryTypeID:c.TypeID}))),x=dt(W,H).pipe(k(c=>{c.CategoryTypeID===1&&this.toastr.info(`${c.Name} is sellable only.`,ve.Info)}),R(c=>c.CategoryTypeID!==1),d(c=>({action:"add",variant:c})),k(()=>{this.cartDisplayRef&&setTimeout(()=>{let c=this.cartDisplayRef.nativeElement.scrollHeight;this.cartDisplayRef.nativeElement.scrollTop=c},1)})),U=n.invoiceInfo$.pipe(k(c=>{this.isReturn.set(c.IsReturn)}),d(c=>({action:"returnInvoice",variants:c.Items.map(v=>w(S({},v.Variant),{Quantity:v.Quantity,Total:v.Total,UnitPrice:v.UnitPrice,Discount:v.Discount,Serial:v.Serial,ID:v.ID,DiscountAmount:v.DiscountAmount,VariantID:v.VariantID,UnitQuantity:v.UnitQuantity}))})));this.cart$=dt(x,U,this.deleteVariant$,this.dragDropCart$,this.returnCart$,this.updateVariant$,this.returnVariant$,this.purchaseVariant$,this.clearCart$,this.onEditForm$,this.addVariantThroughSerial$,this.addVariant$,this.onUploadCart$,this.listenRFID$).pipe(Rt((c,v)=>{let L=[...c],Z=[],b=v.action;if(b=="add"){let g=v.variant;Z=!!L.find(F=>F.VariantID==g.ID)?L.map(F=>F.VariantID==g.ID?w(S({},F),{Quantity:F.Quantity+1,Total:F.Total+F.UnitPrice}):F):[...L,g]}else if(b=="returnInvoice"||b=="onEditForm")Z=v.variants;else if(b=="delete"){let g=v.index;Z=L.filter((j,F)=>F!=g)}else if(b=="sort"){let g=v.ev;Z=L,_i(Z,g.previousIndex,g.currentIndex)}else if(b=="returnCart")Z=L.map(g=>w(S({},g),{Quantity:-Math.abs(g.Quantity),Total:-Math.abs(g.Total)}));else if(b=="update"){let g=v.index;Z=L.map((j,F)=>F==g?v.variant:j)}else if(b=="returnVariant"){let g=v.index;Z=L.map((j,F)=>F==g?w(S({},j),{Quantity:-Math.abs(j.Quantity),Total:-Math.abs(j.Total)}):j)}else if(b=="purchaseVariant"){let g=v.index;Z=L.map((j,F)=>F==g?w(S({},j),{Quantity:Math.abs(j.Quantity),Total:Math.abs(j.Total)}):j)}else if(b=="clearCart")Z=[];else if(b=="addAsSerial"){let g=w(S({},v.variant),{Serial:[{Number:v.variant.Serial.Number,Quantity:1,ExpiryDate:v.variant.Serial.ExpiryDate}]});if(!!L.find(F=>F.ID==g.ID)){let F=g.Serial[0],be=L.find(le=>le.ID==g.ID),_e=!!be.Serial.find(le=>le.Number==F.Number)?[...be.Serial].map(le=>le.Number==F.Number?w(S({},le),{Quantity:le.Quantity+1}):le):[...be.Serial,F];Z=L.map(le=>le.ID==g.ID?w(S({},le),{Quantity:le.Quantity+1,Total:le.Total+le.UnitPrice,Serial:_e}):le)}else Z=[...L,w(S({},g),{Quantity:1,Total:g.UnitPrice})]}else if(b=="uploadCart")Z=[...L,...v.variants];else if(b=="addNewRow"){let g=v.variant;Z=[...L,g]}else if(b=="rfid"){let g=v.variants;Object.keys(g).forEach(j=>{if(g.hasOwnProperty(j)){let F=g[j];if(F&&Object.keys(F.variant).length>0){let be=L.findIndex(Fe=>Fe.Code.toLowerCase()===j.toLowerCase());if(be!==-1){let Fe=Number(F.count);L[be].Quantity+=Fe,L[be].Total=+L[be].UnitPrice*+L[be].Quantity,delete g[j],Z=[...L]}else{let Fe=F.variant,_e=Number(F.count),le=this.setUnitPrice(Fe),Ve=this.formatItemObject(w(S({},le),{Quantity:_e,Total:+le.UnitPrice*+_e}));delete g[j],Z=[...L,Ve]}}}})}return Z},[]),Ke([]),ie(1)),this.totalVariantOrdered$=this.cart$.pipe(d(c=>c.map(v=>v.Quantity)),d(c=>c.reduce((v,L)=>v+L,0)),Ke(0))}matDialog;toastr=E($e);roleService=E(Ce);decimalPipe=E(Me);cartDisplayRef;variantAutocomplete=new ge;variantQuickKey=new ge;priceMaximumRestrictionWarning=_("");_listenRFID=new xe;listenRFID$=this._listenRFID.asObservable().pipe(d(t=>({action:"rfid",variants:t})));_deleteVariant=new xe;deleteVariant$=this._deleteVariant.asObservable().pipe(d(t=>({action:"delete",index:t})));_dragDropCart=new xe;dragDropCart$=this._dragDropCart.asObservable().pipe(d(t=>({action:"sort",ev:t})));_returnCart=new xe;returnCart$=this._returnCart.asObservable().pipe(d(()=>({action:"returnCart"})));_onEditForm=new vt(null);onEditForm$=this._onEditForm.asObservable().pipe(R(t=>!!t),d(t=>({action:"onEditForm",variants:t})));_clearCart=new xe;clearCart$=this._clearCart.asObservable().pipe(d(()=>({action:"clearCart"})));_updateVariant=new xe;updateVariant$=this._updateVariant.asObservable().pipe(d(t=>({action:"update",variant:t.variant,index:t.index})));_returnVariant=new xe;returnVariant$=this._returnVariant.asObservable().pipe(d(t=>({action:"returnVariant",index:t})));_purchaseVariant=new xe;purchaseVariant$=this._purchaseVariant.asObservable().pipe(d(t=>({action:"purchaseVariant",index:t})));_addVariant=new xe;addVariant$=this._addVariant.asObservable().pipe(d(t=>({action:"addNewRow",variant:t})));_onUploadCart=new xe;onUploadCart$=this._onUploadCart.asObservable().pipe(d(t=>({action:"uploadCart",variants:t})));cart$;totalVariantOrdered$;isReturn=_(!1);_addVariantThroughSerial=new xe;addVariantThroughSerial$;deleteVariant(t){this._deleteVariant.next(t)}dragDropCart(t){this._dragDropCart.next(t)}returnCart(){this._returnCart.next()}updateVariant(t,e){this._updateVariant.next({variant:t,index:e})}returnVariant(t){this._returnVariant.next(t)}purchaseVariant(t){this._purchaseVariant.next(t)}clearCart(){this._clearCart.next()}editForm(t){this._onEditForm.next(t)}addVariant(t){this._addVariant.next(t)}addVariantThroughSerial(t){this._addVariantThroughSerial.next(t)}uploadCart(t){this._onUploadCart.next(t)}setUnitPrice(t){let e=S({},t);return I.IsNotEmpty(t.OrderPrice)?e.UnitPrice=t.OrderPrice:e.UnitPrice=t.UnitCost,e}formatItemObject=t=>{let o=t,{ID:e}=o,n=Vt(o,["ID"]);return w(S({},n),{Quantity:n.Quantity??1,Total:n.Total??n.UnitPrice,VariantID:e})};addCartRFID(t){this._listenRFID.next(t)}validatePriceMaximum(t){let e=!0;if(this.roleService.buyRestriction.CostMax&&t.MaxOrderPrice>0)if(t.UnitPrice>t.MaxOrderPrice){e=!1;let o=I.StringFormat("<span><i class='fa-solid fa-triangle-exclamation me-2 d-inline'></i>Cannot buy more than <h5 class='d-inline m-0'>{0}</h5></span>",this.decimalPipe.transform(t.MaxOrderPrice));this.priceMaximumRestrictionWarning.set(o)}else e=!0,this.priceMaximumRestrictionWarning.set("");return e}static \u0275fac=function(e){return new(e||i)(G(me),G(q),G(bt),G(ee))};static \u0275prov=se({token:i,factory:i.\u0275fac,providedIn:"root"})};var He=class i{_isEdit=new xe;isEdit$;id$;isUnpaid$;dialog=E(ee);constructor(t,e,n,o,s){let H=qe(t.snapshot.queryParams);this.isEdit$=dt(H.pipe(d(b=>!!b.ID)),this._isEdit.asObservable()).pipe(ie(1)),this.id$=H.pipe(R(b=>b.ID),d(b=>b.ID));let u=this.id$.pipe(z(b=>e.post("/api/Buy2/GetDataByID2",{ID:b})),ie(1)),P=ht(()=>o.entities$).pipe(z(b=>u.pipe(d(g=>[g.Order,b]))),k(([b,g])=>{let j={Att:b.Att,SupplierID:{Key:b.SupplierID,Value:b.SupplierName,OnSet:!0},Date:b.Date,Number:b.Number,ID:b.ID};n.setBulkOrderForm(j)}),k(([b,g])=>{let j=g.find(F=>F.ID==b.EntityID);n.setOutletForm(j)})),W=u.pipe(d(b=>b.Items),d(b=>b.map(g=>w(S({},g.Variant),{Quantity:g.Quantity,Total:g.Total,Note:g.Note,UnitPrice:g.UnitPrice,Discount:g.Discount,Serial:g.Serial,ID:g.ID,VariantID:g.VariantID,UnitQuantity:g.UnitQuantity,QtyRequested:g.QtyRequested,DiscountAmount:g.DiscountAmount}))),k(b=>s.editForm(b))),x=ht(()=>o.currencies$).pipe(z(b=>u.pipe(d(g=>[g.Order,b,g.Invoice]))),d(([b,g,j])=>w(S({},b),{Number:b.Number!=j.Number?j.Number:b.Number,Currency:g.find(F=>F.ID===b.CurrencyID)})),k(b=>{let g={Note:b.Note,TagID:b.TypeID,Currency:S({},b.Currency),InvoiceNumber:b.Number};n.setBulkNoteForm(g)})),U=u.pipe(d(b=>b.DeliveryEntityID),k(b=>n.setDeliveryEntityID(b))),c=ht(()=>o.taxes$).pipe(z(b=>u.pipe(d(g=>[g.Order,b]))),d(([b,g])=>w(S({},b),{Taxes:g})),k(b=>{let g=b.Taxes.find(F=>F.ID===b.TaxTypeID);g?.Bin&&this.dialog.open(rn,{id:"ModalInfo",data:{title:"Default Tax Discontinued",message:`
|
|
2
2
|
<div class="d-flex justify-content-center my-4">
|
|
3
3
|
<img class="img-2x" src="https://cdn.dealpos.xyz/web-image/globalerror.svg"
|
|
4
4
|
alt="Empty Sales Order Tag" />
|