dealpos 25.41.3 → 25.41.5

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.
Files changed (136) hide show
  1. package/browser/{chunk-XU5SOTZS.js → chunk-2EXFDYJN.js} +1 -1
  2. package/browser/{chunk-ILF7FISN.js → chunk-2U6W2RNU.js} +1 -1
  3. package/browser/{chunk-MSKOV2RA.js → chunk-33WV2FMR.js} +1 -1
  4. package/browser/{chunk-XUVY2IO6.js → chunk-3FE73ETM.js} +1 -1
  5. package/browser/{chunk-GYJUMROD.js → chunk-3SAACCHX.js} +1 -1
  6. package/browser/{chunk-HV6ZFQAQ.js → chunk-3UUHT4HG.js} +1 -1
  7. package/browser/{chunk-HUMRIGHZ.js → chunk-46WFGTJC.js} +1 -1
  8. package/browser/chunk-4GJN3MWR.js +1 -0
  9. package/browser/{chunk-UCIQAWIS.js → chunk-4QVTRID4.js} +14 -14
  10. package/browser/{chunk-KLNPXOJ5.js → chunk-5AB2ISPI.js} +1 -1
  11. package/browser/{chunk-N5QWMN2M.js → chunk-5POWTQ67.js} +1 -1
  12. package/browser/{chunk-X44SOZNW.js → chunk-5RH6OF4M.js} +1 -1
  13. package/browser/{chunk-L2PLXSAS.js → chunk-5YBGDA3S.js} +1 -1
  14. package/browser/{chunk-HKHEVZ4F.js → chunk-5ZAYS3JF.js} +1 -1
  15. package/browser/{chunk-BJQ54S6Z.js → chunk-634TAIXR.js} +2 -2
  16. package/browser/{chunk-JSMI5ZR4.js → chunk-6B25MKRR.js} +2 -2
  17. package/browser/{chunk-KZTKYVZF.js → chunk-6JJK75CC.js} +1 -1
  18. package/browser/{chunk-6YPVUOD7.js → chunk-6MIFRUEO.js} +1 -1
  19. package/browser/chunk-6QU3PKUL.js +1 -0
  20. package/browser/{chunk-5FMYOBKP.js → chunk-74PDTNMY.js} +1 -1
  21. package/browser/{chunk-M3WKPJ2B.js → chunk-7CW2MHLT.js} +1 -1
  22. package/browser/{chunk-45BASVRZ.js → chunk-7G4UPOQP.js} +1 -1
  23. package/browser/{chunk-CEWIZH2D.js → chunk-7YH2YAYC.js} +1 -1
  24. package/browser/{chunk-YQEL63SF.js → chunk-A3QLEFQR.js} +1 -1
  25. package/browser/{chunk-BAORXMVG.js → chunk-A5XBD65B.js} +1 -1
  26. package/browser/{chunk-J3C5CJEH.js → chunk-AJHV3SOU.js} +1 -1
  27. package/browser/chunk-AXA6IRPD.js +1 -0
  28. package/browser/{chunk-WRHYTFLY.js → chunk-B5MRMJS3.js} +1 -1
  29. package/browser/{chunk-2DQBDX5E.js → chunk-BBXK3YKT.js} +1 -1
  30. package/browser/{chunk-LCACDZMC.js → chunk-BF6Y4CHO.js} +1 -1
  31. package/browser/{chunk-ABSSU2NG.js → chunk-BN7DN222.js} +1 -1
  32. package/browser/{chunk-DNLMIUJF.js → chunk-C3WNOC5F.js} +1 -1
  33. package/browser/{chunk-4VQWWUZQ.js → chunk-C4HJRACH.js} +1 -1
  34. package/browser/{chunk-EHW56RWW.js → chunk-CVCNJHSS.js} +2 -2
  35. package/browser/{chunk-B73NC3X2.js → chunk-DAMKEWK6.js} +1 -1
  36. package/browser/{chunk-EPBMDUPY.js → chunk-DF2W7YLH.js} +1 -1
  37. package/browser/{chunk-7USMFPWJ.js → chunk-DVOCY3CZ.js} +1 -1
  38. package/browser/{chunk-7KSMBMSW.js → chunk-DYP2BZTL.js} +1 -1
  39. package/browser/{chunk-4E2C3JC6.js → chunk-E3SP7B7S.js} +1 -1
  40. package/browser/{chunk-MACI2QKN.js → chunk-E7E3BWHS.js} +2 -2
  41. package/browser/{chunk-DINWVJP7.js → chunk-EGOF4SFE.js} +1 -1
  42. package/browser/{chunk-G6ZQA47T.js → chunk-F67GEFYG.js} +1 -1
  43. package/browser/{chunk-ZUQOVN3G.js → chunk-FPQZUYL3.js} +1 -1
  44. package/browser/{chunk-MVI65ECT.js → chunk-FWA4TLQY.js} +1 -1
  45. package/browser/{chunk-BWWKUWPU.js → chunk-GD4MWJRO.js} +1 -1
  46. package/browser/{chunk-UESUOHI6.js → chunk-GLQBFUNO.js} +1 -1
  47. package/browser/{chunk-SFCQJQF3.js → chunk-GSTEQZ5S.js} +1 -1
  48. package/browser/{chunk-AMNMXSBW.js → chunk-GVBX4EE5.js} +1 -1
  49. package/browser/{chunk-Z2U7HIL5.js → chunk-H7RQQ6HC.js} +1 -1
  50. package/browser/{chunk-JVR63RQB.js → chunk-HIHG2RFU.js} +1 -1
  51. package/browser/{chunk-6LQ6DVZN.js → chunk-HJIQRJBG.js} +1 -1
  52. package/browser/{chunk-MWQQC4XE.js → chunk-IFLP36IX.js} +1 -1
  53. package/browser/{chunk-6WKUSM4P.js → chunk-J77B5XIE.js} +1 -1
  54. package/browser/chunk-JWGMK364.js +1 -0
  55. package/browser/{chunk-24OZA3GF.js → chunk-K4P3FNHD.js} +1 -1
  56. package/browser/{chunk-NKHFNNJE.js → chunk-KOM2EF2Y.js} +2 -2
  57. package/browser/{chunk-OGM24Q2D.js → chunk-L3LDI6PO.js} +1 -1
  58. package/browser/{chunk-NPTTEU4B.js → chunk-LE5ZGH7A.js} +1 -1
  59. package/browser/{chunk-5DDIIEIO.js → chunk-LFRP6C5Y.js} +1 -1
  60. package/browser/{chunk-FUQBPPS7.js → chunk-LGTEQYGM.js} +1 -1
  61. package/browser/{chunk-PJHIUSNN.js → chunk-LJW6HW5T.js} +1 -1
  62. package/browser/{chunk-RDWRQIJV.js → chunk-LNNB7KML.js} +1 -1
  63. package/browser/{chunk-ZKO7GVNO.js → chunk-LPSVXMJ6.js} +1 -1
  64. package/browser/{chunk-VFFCV3EX.js → chunk-LZKYLVTJ.js} +1 -1
  65. package/browser/{chunk-YHDEAPG3.js → chunk-M2HG7HA7.js} +1 -1
  66. package/browser/{chunk-XXCIMR5I.js → chunk-MNDTLKMW.js} +1 -1
  67. package/browser/{chunk-5YEXNQCT.js → chunk-NPC7SDKQ.js} +1 -1
  68. package/browser/{chunk-6CJCT6YT.js → chunk-NRDJEOWR.js} +1 -1
  69. package/browser/{chunk-UZFW2WNI.js → chunk-O5RZTQKV.js} +1 -1
  70. package/browser/{chunk-BAXQFKT2.js → chunk-ODP3QYXX.js} +1 -1
  71. package/browser/{chunk-Z7LRKY4R.js → chunk-OGI634A2.js} +1 -1
  72. package/browser/{chunk-GAZ6XT73.js → chunk-OHO36AUC.js} +1 -1
  73. package/browser/{chunk-GPCFKZB6.js → chunk-OXPZ3KGJ.js} +3 -3
  74. package/browser/{chunk-R5IO2SN4.js → chunk-P6TNAQ2F.js} +1 -1
  75. package/browser/{chunk-3VQLYVVB.js → chunk-PRGXQYOR.js} +1 -1
  76. package/browser/{chunk-BYDCQMR7.js → chunk-PUM4FRUI.js} +1 -1
  77. package/browser/{chunk-IVUIJMPR.js → chunk-PUONBWVK.js} +1 -1
  78. package/browser/{chunk-GA554R72.js → chunk-PVBVBQPF.js} +1 -1
  79. package/browser/{chunk-NHP3HQCR.js → chunk-PVUH6PE4.js} +1 -1
  80. package/browser/{chunk-Q6WPU7FA.js → chunk-QR6TH2ZM.js} +1 -1
  81. package/browser/{chunk-2F5STFEV.js → chunk-QTXCHVAR.js} +1 -1
  82. package/browser/{chunk-Y3CUYCSX.js → chunk-RB6SQ4EV.js} +1 -1
  83. package/browser/{chunk-2E4PNSTT.js → chunk-RXMKLLFP.js} +1 -1
  84. package/browser/{chunk-CSAGSFL3.js → chunk-S32IOJJR.js} +1 -1
  85. package/browser/{chunk-O3EERFQN.js → chunk-S47JQKWT.js} +1 -1
  86. package/browser/{chunk-3C6ELYCG.js → chunk-S5KT7VHZ.js} +1 -1
  87. package/browser/{chunk-SWF5BE5P.js → chunk-S6AVEKNV.js} +1 -1
  88. package/browser/{chunk-ZEDVQYXH.js → chunk-SA32E5WD.js} +1 -1
  89. package/browser/{chunk-YMA57E2M.js → chunk-SAV555HC.js} +2 -2
  90. package/browser/{chunk-SMW5YQZJ.js → chunk-SFIZ555B.js} +1 -1
  91. package/browser/{chunk-W2NHEKCW.js → chunk-SGIO47PC.js} +1 -1
  92. package/browser/{chunk-PZRVUFEQ.js → chunk-SJ5CJVR4.js} +2 -2
  93. package/browser/{chunk-VV7L7X33.js → chunk-SUDQN46A.js} +1 -1
  94. package/browser/{chunk-EUZWX7OP.js → chunk-SZ3CHFYL.js} +1 -1
  95. package/browser/{chunk-5TV4QYNO.js → chunk-T6L7V6VB.js} +1 -1
  96. package/browser/{chunk-YYR3XEAQ.js → chunk-T7EVNQJZ.js} +1 -1
  97. package/browser/{chunk-EPYFG6SH.js → chunk-T7UL42MO.js} +1 -1
  98. package/browser/{chunk-JJK4XCMN.js → chunk-TBQRBWDN.js} +1 -1
  99. package/browser/{chunk-DOTR5PYR.js → chunk-TDFRMUQQ.js} +1 -1
  100. package/browser/{chunk-WIB47ZGF.js → chunk-TDG64PZU.js} +1 -1
  101. package/browser/{chunk-PVWFJKSW.js → chunk-TI6ZG6L5.js} +2 -2
  102. package/browser/{chunk-YAO3JFMU.js → chunk-TNIJKAQD.js} +1 -1
  103. package/browser/{chunk-S4FLFLTR.js → chunk-TU4DJ5OY.js} +1 -1
  104. package/browser/{chunk-BT6BH634.js → chunk-ULF57NM6.js} +1 -1
  105. package/browser/{chunk-6ZRIMZHA.js → chunk-V2LMRLES.js} +1 -1
  106. package/browser/{chunk-3XIXVYS4.js → chunk-V5BM5U4L.js} +1 -1
  107. package/browser/{chunk-3XMWVJ2L.js → chunk-V5O3E5XQ.js} +1 -1
  108. package/browser/{chunk-WA5AGHFF.js → chunk-V7RYZJVN.js} +1 -1
  109. package/browser/{chunk-7KXMZBQB.js → chunk-V7XF5OHI.js} +1 -1
  110. package/browser/{chunk-QTEEAYLA.js → chunk-VAFE2Y4E.js} +1 -1
  111. package/browser/{chunk-EV7CDK2S.js → chunk-VD5XNUVY.js} +1 -1
  112. package/browser/{chunk-4CRQAT4Y.js → chunk-VF6HKAFR.js} +1 -1
  113. package/browser/{chunk-C5J6BILV.js → chunk-VIPFFHEY.js} +2 -2
  114. package/browser/{chunk-T4K6XLBG.js → chunk-VVRKHHKB.js} +1 -1
  115. package/browser/{chunk-3HGQ6VA3.js → chunk-W2ZX2MWM.js} +1 -1
  116. package/browser/{chunk-6ZEEVCRE.js → chunk-W6BB4ADK.js} +1 -1
  117. package/browser/{chunk-LOMNHHBV.js → chunk-WUBF7SHA.js} +1 -1
  118. package/browser/{chunk-4DT4J5SA.js → chunk-X3DKYLID.js} +1 -1
  119. package/browser/{chunk-5BY3OQNX.js → chunk-XDAWDJAU.js} +1 -1
  120. package/browser/{chunk-V7USIKBO.js → chunk-YM2RXRAI.js} +1 -1
  121. package/browser/{chunk-ZEYY4NI2.js → chunk-YMIFPX5E.js} +1 -1
  122. package/browser/{chunk-LDYXX7R3.js → chunk-YVTZUWGI.js} +1 -1
  123. package/browser/{chunk-SN3DTCGO.js → chunk-YYZIKSOW.js} +1 -1
  124. package/browser/{chunk-3CCLSY4U.js → chunk-Z3VGSV3R.js} +1 -1
  125. package/browser/{chunk-ET53BRO2.js → chunk-ZCX6NGM6.js} +1 -1
  126. package/browser/{chunk-WEAIMPRM.js → chunk-ZJDIZNTX.js} +1 -1
  127. package/browser/{chunk-4SOJX57D.js → chunk-ZJMIEPWF.js} +1 -1
  128. package/browser/chunk-ZT3ZXQJB.js +1 -0
  129. package/browser/index.html +2 -2
  130. package/browser/{main-JSZQET37.js → main-BXU5MGB6.js} +2 -2
  131. package/package.json +1 -1
  132. package/browser/chunk-6MYRWSZC.js +0 -1
  133. package/browser/chunk-AD5C5J25.js +0 -1
  134. package/browser/chunk-ITQTUFNF.js +0 -1
  135. package/browser/chunk-JQ5JMDRA.js +0 -1
  136. package/browser/chunk-Q3AG7LWW.js +0 -1
@@ -1 +1 @@
1
- import{a as me}from"./chunk-NQX7EX5A.js";import{a as le}from"./chunk-DINWVJP7.js";import{a as ie,c as ne,e as re,f as ae,g as oe}from"./chunk-R5IO2SN4.js";import{a as Y}from"./chunk-7UFQPOGN.js";import{a as Z,c as ee}from"./chunk-CN5SHMHF.js";import{m as X}from"./chunk-45BASVRZ.js";import{N as te}from"./chunk-4SOJX57D.js";import{d as T}from"./chunk-3GV7FUAX.js";import{a as J}from"./chunk-2FWFPV5I.js";import{F as z,c as G,h as U,o as q}from"./chunk-CB33ZMNF.js";import{a as K}from"./chunk-TYBAV5LT.js";import{$a as m,Ac as F,Bc as Q,Fa as y,Fc as A,Ib as a,Jb as l,Kb as x,Lb as h,Mb as g,Ob as S,Qb as f,Rb as s,Vd as $,Y as D,Yc as H,Zc as W,cd as L,db as I,dc as C,ec as _,ed as j,fa as N,fc as k,gc as b,jc as v,jd as B,ka as O,kb as P,kc as E,lb as R,lc as w,qb as u,t as V,va as p,vb as c,wa as d,zc as M}from"./chunk-DJOHANFC.js";function de(i,t){i&1&&(h(0),a(1,"div",5)(2,"div",6),_(3,"Edit Serial is disabled during EDIT MODE"),l(),a(4,"div"),_(5," If you make a mistake, please delete the item and then add again "),l()(),g())}function _e(i,t){if(i&1){let e=S();a(0,"mat-chip-row",19),f("removed",function(){let r=p(e).$implicit,o=s(3);return d(o.onRemoveSerialChip(r))}),_(1),a(2,"button",20),x(3,"i",21),l()()}if(i&2){let e=t.$implicit;m(),b(" ",e," ")}}function ue(i,t){if(i&1){let e=S();h(0),a(1,"div",10)(2,"div",11)(3,"mat-form-field",12),f("keyup.enter",function(r){return p(e),d(r.stopPropagation())}),a(4,"mat-chip-grid",null,1),u(6,_e,4,1,"mat-chip-row",13),a(7,"input",14,2),f("matChipInputTokenEnd",function(r){p(e);let o=C(8),pe=s(2);return d(pe.addSerial(r,o))}),l()()()(),a(9,"div",15)(10,"button",16),f("click",function(){p(e);let r=C(8),o=s(2);return d(o.submitSerial(r))}),x(11,"i",17),a(12,"strong",18),_(13,"ADD"),l()()()(),g()}if(i&2){let e=C(5),n=s(2);m(6),c("ngForOf",n.serials),m(),c("matChipInputFor",e)("matChipInputSeparatorKeyCodes",n.separatorKeysCodes)}}function he(i,t){if(i&1){let e=S();a(0,"ng-select",22),M(1,"async"),w("ngModelChange",function(r){p(e);let o=s(2);return E(o.serials,r)||(o.serials=r),d(r)}),f("remove",function(r){p(e);let o=s(2);return d(o.onRemoveSerialFromOption(r.value))})("change",function(r){p(e);let o=s(2);return d(o.onSelectSerial(r))}),l()}if(i&2){let e=s(2);c("items",F(1,3,e.serials$)),v("ngModel",e.serials),c("multiple",!0)}}function ge(i,t){if(i&1&&(h(0),a(1,"div",7)(2,"div",8),u(3,ue,14,3,"ng-container",9)(4,he,2,5,"ng-template",null,0,A),l()(),g()),i&2){let e=C(5),n=s();m(3),c("ngIf",n.isReturn)("ngIfElse",e)}}function fe(i,t){i&1&&(h(0),x(1,"th",29),g())}function Se(i,t){i&1&&(h(0),a(1,"th",30),_(2,"Expiry Date"),l(),g())}function Ce(i,t){if(i&1){let e=S();h(0),a(1,"td",32)(2,"i",33),f("click",function(){p(e);let r=s().index,o=s(2);return d(o.onRemoveSerial(r))}),l()(),g()}}function xe(i,t){if(i&1&&(h(0),a(1,"td"),_(2),M(3,"date"),l(),g()),i&2){let e=s().$implicit;m(2),b(" ",e.ExpiryDate?Q(3,1,e.ExpiryDate,"dd MMM yyyy"):"-"," ")}}function ye(i,t){if(i&1){let e=S();a(0,"tr"),u(1,Ce,3,0,"ng-container",4),a(2,"td"),_(3),l(),u(4,xe,4,4,"ng-container",4),a(5,"td")(6,"input",31),w("ngModelChange",function(r){let o=p(e).$implicit;return E(o.Quantity,r)||(o.Quantity=r),d(r)}),f("change",function(){p(e);let r=s(2);return d(r.onChangeQty())}),l()()()}if(i&2){let e=t.$implicit,n=s(2);m(),c("ngIf",!n.disabled),m(2),k(e.Number),m(),c("ngIf",n.showExpiryDate),m(2),v("ngModel",e.Quantity),c("disabled",n.disabled)("decimalPlaces",0)}}function Ie(i,t){if(i&1&&(h(0),a(1,"div",23)(2,"div",8)(3,"table",24)(4,"thead",25)(5,"tr"),u(6,fe,2,0,"ng-container",4),a(7,"th",26),_(8,"Serial Number"),l(),u(9,Se,3,0,"ng-container",4),a(10,"th",27),_(11,"Quantity"),l()()(),a(12,"tbody"),u(13,ye,7,6,"tr",28),l()()()(),g()),i&2){let e=s();m(6),c("ngIf",!e.disabled),m(3),c("ngIf",e.showExpiryDate),m(4),c("ngForOf",e.selectedSerial)}}var se=class i{constructor(t,e){this.productService=t;this.toastr=e;this.cartItemChange=new y,this.serialsChange=new y}separatorKeysCodes=[13,188];_cartItem;isReturn=!1;disabled=!1;set cartItem(t){t&&(this._cartItem=t,this.initSelectedSerial(),t.Quantity<0?this.isReturn=!0:this.getSerialVariant())}get cartItem(){return this._cartItem}cartItemChange;entityId;serials;serialsChange;serials$;selectedSerial=[];showExpiryDate;ngOnDestroy(){this.serialsChange.emit([])}initSelectedSerial(){let t=this.cartItem.Serial;t&&t.length>0&&(this.selectedSerial=t,this.checkShowExpiryDate())}getSerialVariant(){let t=this.cartItem.VariantID,e;this.serials$=this.productService.getVariantSerial(this.entityId,t).pipe(V(n=>n.map(r=>(e=new me,e.Number=r.Number,e.Quantity=r.Quantity?r.Quantity:1,e.ExpiryDate=r.ExpiryDate,e))),N(()=>{this.isReturn||(this.serials=this.generateSerialCode(this.selectedSerial))}),D())}generateSerialCode(t=[]){return t.map(e=>e.Number)}onSelectSerial(t){let e=t.filter(n=>this.selectedSerial.findIndex(r=>r.Number==n.Number)==-1);e.length>0&&(e[0].Quantity=1,this.selectedSerial=[...this.selectedSerial,...e],this.updateCartItem())}onRemoveSerial(t){this.selectedSerial=this.selectedSerial.filter((e,n)=>n!==t),this.serials=this.generateSerialCode(this.selectedSerial),this.updateCartItem()}onRemoveSerialChip(t){this.serials=this.serials.filter(e=>e!==t),this.serialsChange.emit(this.serials)}onRemoveSerialFromOption(t){this.selectedSerial=this.selectedSerial.filter(e=>e.Number!==t.Number),this.serials=this.generateSerialCode(this.selectedSerial)}onChangeQty(){this.updateCartItem()}submitSerial(t){t.value.trim()&&(this.serials.push(t.value.trim()),t.value="");let e=this.generateSerialData();this.selectedSerial=[...this.selectedSerial,...e],this.serials=[],this.updateCartItem()}generateSerialData(){return this.serials.filter(e=>this.selectedSerial.findIndex(n=>n.Number==e)==-1).map(e=>({Number:e,Quantity:this.isReturn?-1:1,ExpiryDate:null}))}addSerial(t,e){let n=(t.value||"").trim();if(n)if(this.serials.find(r=>r==n)){e.value="",this.toastr.info("Serial already exists",J.Info);return}else this.serials.push(n),this.serialsChange.emit(this.serials);t.chipInput.clear()}updateCartItem(){this.cartItem.Serial=this.selectedSerial,this.checkShowExpiryDate(),this.calculateSerialQty(),this.cartItemChange.emit(this.cartItem)}calculateSerialQty(){let t=0;this.selectedSerial.forEach(e=>{t+=e.Quantity}),this.cartItem.Quantity=t}checkShowExpiryDate(){let t=0;this.selectedSerial.forEach(e=>{K.IsNotEmpty(e.ExpiryDate)&&(t+=1)}),this.showExpiryDate=t>0}static \u0275fac=function(e){return new(e||i)(I(le),I($))};static \u0275cmp=P({type:i,selectors:[["app-item-serial"]],inputs:{disabled:"disabled",cartItem:"cartItem",entityId:"entityId",serials:"serials"},outputs:{cartItemChange:"cartItemChange",serialsChange:"serialsChange"},standalone:!1,decls:4,vars:3,consts:[["NOT_RETURN",""],["chipGrid",""],["inputChip",""],[1,"my-8"],[4,"ngIf"],[1,"alert","alert-warning","text-center","my-5","py-3"],[1,"fw-bold"],[1,"row"],[1,"col-12"],[4,"ngIf","ngIfElse"],[1,"input-group","mb-3"],[1,"col"],["appearance","outline",1,"serial-chip",3,"keyup.enter"],[3,"removed",4,"ngFor","ngForOf"],["placeholder","E.g. Serial1 Serial2",3,"matChipInputTokenEnd","matChipInputFor","matChipInputSeparatorKeyCodes"],[1,"col-auto"],["type","button",1,"btn","btn-outline-secondary","btn-sm","add-chip",3,"click"],["aria-hidden","true",1,"fa","fa-plus","me-1","fs-6"],[1,"headings-font-family","h6","font-weight-bold"],[3,"removed"],["matChipRemove",""],[1,"fa-solid","fa-circle-xmark"],["bindLabel","Number","appendTo","body","bindValue","Number","placeholder","Insert Number",1,"ng-select-multiple",3,"ngModelChange","remove","change","items","ngModel","multiple"],[1,"row","mt-8"],[1,"table","table-bordered"],[1,"thead-light"],[1,"border-end"],[1,"border-end","text-end",2,"width","60px"],[4,"ngFor","ngForOf"],[1,"border-end",2,"width","40px"],[1,"border-end",2,"width","100px"],["type","text","placeholder","Serial Quantity","autoNum","",1,"form-control","text-end",3,"ngModelChange","change","ngModel","disabled","decimalPlaces"],[1,"text-center"],["aria-hidden","true","title","Remove serial",1,"fa","fa-xmark","text-danger","cursor-pointer","fa-2x",3,"click"]],template:function(e,n){e&1&&(a(0,"div",3),u(1,de,6,0,"ng-container",4)(2,ge,6,2,"ng-container",4)(3,Ie,14,3,"ng-container",4),l()),e&2&&(m(),c("ngIf",n.disabled),m(),c("ngIf",!n.disabled),m(),c("ngIf",n.selectedSerial.length>0))},dependencies:()=>[H,W,T,G,U,q,ee,re,ae,ie,ne,X,L,j],styles:[".serial-chip[_ngcontent-%COMP%]{width:100%}.serial-chip[_ngcontent-%COMP%] .mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__trailing{border-top-right-radius:0!important;border-bottom-right-radius:0!important}.serial-chip[_ngcontent-%COMP%] .mdc-text-field--no-label:not(.mdc-text-field--textarea) .mat-mdc-form-field-input-control.mdc-text-field__input, .serial-chip[_ngcontent-%COMP%] .mat-mdc-text-field-wrapper .mat-mdc-form-field-input-control{height:40px!important}.serial-chip[_ngcontent-%COMP%] .mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-notched-outline__trailing, .serial-chip[_ngcontent-%COMP%] .mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-notched-outline__notch, .serial-chip[_ngcontent-%COMP%] .mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-notched-outline__leading{border-color:#ccc!important}.serial-chip[_ngcontent-%COMP%] .mat-mdc-text-field-wrapper.mdc-text-field--outlined .mat-mdc-form-field-infix{padding-top:8px;padding-bottom:8px}.add-chip[_ngcontent-%COMP%]{height:calc(100% - 18.4px);margin-left:1px;border-top-left-radius:0;border-bottom-left-radius:0}"]})},ce=class i{static \u0275fac=function(e){return new(e||i)};static \u0275mod=R({type:i});static \u0275inj=O({imports:[B,te,T,z,Z,oe,Y]})};export{se as a,ce as b};
1
+ import{a as me}from"./chunk-NQX7EX5A.js";import{a as le}from"./chunk-EGOF4SFE.js";import{a as ie,c as ne,e as re,f as ae,g as oe}from"./chunk-P6TNAQ2F.js";import{a as Y}from"./chunk-7UFQPOGN.js";import{a as Z,c as ee}from"./chunk-CN5SHMHF.js";import{m as X}from"./chunk-7G4UPOQP.js";import{N as te}from"./chunk-ZJMIEPWF.js";import{d as T}from"./chunk-3GV7FUAX.js";import{a as J}from"./chunk-2FWFPV5I.js";import{F as z,c as G,h as U,o as q}from"./chunk-CB33ZMNF.js";import{a as K}from"./chunk-TYBAV5LT.js";import{$a as m,Ac as F,Bc as Q,Fa as y,Fc as A,Ib as a,Jb as l,Kb as x,Lb as h,Mb as g,Ob as S,Qb as f,Rb as s,Vd as $,Y as D,Yc as H,Zc as W,cd as L,db as I,dc as C,ec as _,ed as j,fa as N,fc as k,gc as b,jc as v,jd as B,ka as O,kb as P,kc as E,lb as R,lc as w,qb as u,t as V,va as p,vb as c,wa as d,zc as M}from"./chunk-DJOHANFC.js";function de(i,t){i&1&&(h(0),a(1,"div",5)(2,"div",6),_(3,"Edit Serial is disabled during EDIT MODE"),l(),a(4,"div"),_(5," If you make a mistake, please delete the item and then add again "),l()(),g())}function _e(i,t){if(i&1){let e=S();a(0,"mat-chip-row",19),f("removed",function(){let r=p(e).$implicit,o=s(3);return d(o.onRemoveSerialChip(r))}),_(1),a(2,"button",20),x(3,"i",21),l()()}if(i&2){let e=t.$implicit;m(),b(" ",e," ")}}function ue(i,t){if(i&1){let e=S();h(0),a(1,"div",10)(2,"div",11)(3,"mat-form-field",12),f("keyup.enter",function(r){return p(e),d(r.stopPropagation())}),a(4,"mat-chip-grid",null,1),u(6,_e,4,1,"mat-chip-row",13),a(7,"input",14,2),f("matChipInputTokenEnd",function(r){p(e);let o=C(8),pe=s(2);return d(pe.addSerial(r,o))}),l()()()(),a(9,"div",15)(10,"button",16),f("click",function(){p(e);let r=C(8),o=s(2);return d(o.submitSerial(r))}),x(11,"i",17),a(12,"strong",18),_(13,"ADD"),l()()()(),g()}if(i&2){let e=C(5),n=s(2);m(6),c("ngForOf",n.serials),m(),c("matChipInputFor",e)("matChipInputSeparatorKeyCodes",n.separatorKeysCodes)}}function he(i,t){if(i&1){let e=S();a(0,"ng-select",22),M(1,"async"),w("ngModelChange",function(r){p(e);let o=s(2);return E(o.serials,r)||(o.serials=r),d(r)}),f("remove",function(r){p(e);let o=s(2);return d(o.onRemoveSerialFromOption(r.value))})("change",function(r){p(e);let o=s(2);return d(o.onSelectSerial(r))}),l()}if(i&2){let e=s(2);c("items",F(1,3,e.serials$)),v("ngModel",e.serials),c("multiple",!0)}}function ge(i,t){if(i&1&&(h(0),a(1,"div",7)(2,"div",8),u(3,ue,14,3,"ng-container",9)(4,he,2,5,"ng-template",null,0,A),l()(),g()),i&2){let e=C(5),n=s();m(3),c("ngIf",n.isReturn)("ngIfElse",e)}}function fe(i,t){i&1&&(h(0),x(1,"th",29),g())}function Se(i,t){i&1&&(h(0),a(1,"th",30),_(2,"Expiry Date"),l(),g())}function Ce(i,t){if(i&1){let e=S();h(0),a(1,"td",32)(2,"i",33),f("click",function(){p(e);let r=s().index,o=s(2);return d(o.onRemoveSerial(r))}),l()(),g()}}function xe(i,t){if(i&1&&(h(0),a(1,"td"),_(2),M(3,"date"),l(),g()),i&2){let e=s().$implicit;m(2),b(" ",e.ExpiryDate?Q(3,1,e.ExpiryDate,"dd MMM yyyy"):"-"," ")}}function ye(i,t){if(i&1){let e=S();a(0,"tr"),u(1,Ce,3,0,"ng-container",4),a(2,"td"),_(3),l(),u(4,xe,4,4,"ng-container",4),a(5,"td")(6,"input",31),w("ngModelChange",function(r){let o=p(e).$implicit;return E(o.Quantity,r)||(o.Quantity=r),d(r)}),f("change",function(){p(e);let r=s(2);return d(r.onChangeQty())}),l()()()}if(i&2){let e=t.$implicit,n=s(2);m(),c("ngIf",!n.disabled),m(2),k(e.Number),m(),c("ngIf",n.showExpiryDate),m(2),v("ngModel",e.Quantity),c("disabled",n.disabled)("decimalPlaces",0)}}function Ie(i,t){if(i&1&&(h(0),a(1,"div",23)(2,"div",8)(3,"table",24)(4,"thead",25)(5,"tr"),u(6,fe,2,0,"ng-container",4),a(7,"th",26),_(8,"Serial Number"),l(),u(9,Se,3,0,"ng-container",4),a(10,"th",27),_(11,"Quantity"),l()()(),a(12,"tbody"),u(13,ye,7,6,"tr",28),l()()()(),g()),i&2){let e=s();m(6),c("ngIf",!e.disabled),m(3),c("ngIf",e.showExpiryDate),m(4),c("ngForOf",e.selectedSerial)}}var se=class i{constructor(t,e){this.productService=t;this.toastr=e;this.cartItemChange=new y,this.serialsChange=new y}separatorKeysCodes=[13,188];_cartItem;isReturn=!1;disabled=!1;set cartItem(t){t&&(this._cartItem=t,this.initSelectedSerial(),t.Quantity<0?this.isReturn=!0:this.getSerialVariant())}get cartItem(){return this._cartItem}cartItemChange;entityId;serials;serialsChange;serials$;selectedSerial=[];showExpiryDate;ngOnDestroy(){this.serialsChange.emit([])}initSelectedSerial(){let t=this.cartItem.Serial;t&&t.length>0&&(this.selectedSerial=t,this.checkShowExpiryDate())}getSerialVariant(){let t=this.cartItem.VariantID,e;this.serials$=this.productService.getVariantSerial(this.entityId,t).pipe(V(n=>n.map(r=>(e=new me,e.Number=r.Number,e.Quantity=r.Quantity?r.Quantity:1,e.ExpiryDate=r.ExpiryDate,e))),N(()=>{this.isReturn||(this.serials=this.generateSerialCode(this.selectedSerial))}),D())}generateSerialCode(t=[]){return t.map(e=>e.Number)}onSelectSerial(t){let e=t.filter(n=>this.selectedSerial.findIndex(r=>r.Number==n.Number)==-1);e.length>0&&(e[0].Quantity=1,this.selectedSerial=[...this.selectedSerial,...e],this.updateCartItem())}onRemoveSerial(t){this.selectedSerial=this.selectedSerial.filter((e,n)=>n!==t),this.serials=this.generateSerialCode(this.selectedSerial),this.updateCartItem()}onRemoveSerialChip(t){this.serials=this.serials.filter(e=>e!==t),this.serialsChange.emit(this.serials)}onRemoveSerialFromOption(t){this.selectedSerial=this.selectedSerial.filter(e=>e.Number!==t.Number),this.serials=this.generateSerialCode(this.selectedSerial)}onChangeQty(){this.updateCartItem()}submitSerial(t){t.value.trim()&&(this.serials.push(t.value.trim()),t.value="");let e=this.generateSerialData();this.selectedSerial=[...this.selectedSerial,...e],this.serials=[],this.updateCartItem()}generateSerialData(){return this.serials.filter(e=>this.selectedSerial.findIndex(n=>n.Number==e)==-1).map(e=>({Number:e,Quantity:this.isReturn?-1:1,ExpiryDate:null}))}addSerial(t,e){let n=(t.value||"").trim();if(n)if(this.serials.find(r=>r==n)){e.value="",this.toastr.info("Serial already exists",J.Info);return}else this.serials.push(n),this.serialsChange.emit(this.serials);t.chipInput.clear()}updateCartItem(){this.cartItem.Serial=this.selectedSerial,this.checkShowExpiryDate(),this.calculateSerialQty(),this.cartItemChange.emit(this.cartItem)}calculateSerialQty(){let t=0;this.selectedSerial.forEach(e=>{t+=e.Quantity}),this.cartItem.Quantity=t}checkShowExpiryDate(){let t=0;this.selectedSerial.forEach(e=>{K.IsNotEmpty(e.ExpiryDate)&&(t+=1)}),this.showExpiryDate=t>0}static \u0275fac=function(e){return new(e||i)(I(le),I($))};static \u0275cmp=P({type:i,selectors:[["app-item-serial"]],inputs:{disabled:"disabled",cartItem:"cartItem",entityId:"entityId",serials:"serials"},outputs:{cartItemChange:"cartItemChange",serialsChange:"serialsChange"},standalone:!1,decls:4,vars:3,consts:[["NOT_RETURN",""],["chipGrid",""],["inputChip",""],[1,"my-8"],[4,"ngIf"],[1,"alert","alert-warning","text-center","my-5","py-3"],[1,"fw-bold"],[1,"row"],[1,"col-12"],[4,"ngIf","ngIfElse"],[1,"input-group","mb-3"],[1,"col"],["appearance","outline",1,"serial-chip",3,"keyup.enter"],[3,"removed",4,"ngFor","ngForOf"],["placeholder","E.g. Serial1 Serial2",3,"matChipInputTokenEnd","matChipInputFor","matChipInputSeparatorKeyCodes"],[1,"col-auto"],["type","button",1,"btn","btn-outline-secondary","btn-sm","add-chip",3,"click"],["aria-hidden","true",1,"fa","fa-plus","me-1","fs-6"],[1,"headings-font-family","h6","font-weight-bold"],[3,"removed"],["matChipRemove",""],[1,"fa-solid","fa-circle-xmark"],["bindLabel","Number","appendTo","body","bindValue","Number","placeholder","Insert Number",1,"ng-select-multiple",3,"ngModelChange","remove","change","items","ngModel","multiple"],[1,"row","mt-8"],[1,"table","table-bordered"],[1,"thead-light"],[1,"border-end"],[1,"border-end","text-end",2,"width","60px"],[4,"ngFor","ngForOf"],[1,"border-end",2,"width","40px"],[1,"border-end",2,"width","100px"],["type","text","placeholder","Serial Quantity","autoNum","",1,"form-control","text-end",3,"ngModelChange","change","ngModel","disabled","decimalPlaces"],[1,"text-center"],["aria-hidden","true","title","Remove serial",1,"fa","fa-xmark","text-danger","cursor-pointer","fa-2x",3,"click"]],template:function(e,n){e&1&&(a(0,"div",3),u(1,de,6,0,"ng-container",4)(2,ge,6,2,"ng-container",4)(3,Ie,14,3,"ng-container",4),l()),e&2&&(m(),c("ngIf",n.disabled),m(),c("ngIf",!n.disabled),m(),c("ngIf",n.selectedSerial.length>0))},dependencies:()=>[H,W,T,G,U,q,ee,re,ae,ie,ne,X,L,j],styles:[".serial-chip[_ngcontent-%COMP%]{width:100%}.serial-chip[_ngcontent-%COMP%] .mdc-text-field--outlined .mdc-notched-outline .mdc-notched-outline__trailing{border-top-right-radius:0!important;border-bottom-right-radius:0!important}.serial-chip[_ngcontent-%COMP%] .mdc-text-field--no-label:not(.mdc-text-field--textarea) .mat-mdc-form-field-input-control.mdc-text-field__input, .serial-chip[_ngcontent-%COMP%] .mat-mdc-text-field-wrapper .mat-mdc-form-field-input-control{height:40px!important}.serial-chip[_ngcontent-%COMP%] .mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-notched-outline__trailing, .serial-chip[_ngcontent-%COMP%] .mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-notched-outline__notch, .serial-chip[_ngcontent-%COMP%] .mdc-text-field--outlined:not(.mdc-text-field--disabled) .mdc-notched-outline__leading{border-color:#ccc!important}.serial-chip[_ngcontent-%COMP%] .mat-mdc-text-field-wrapper.mdc-text-field--outlined .mat-mdc-form-field-infix{padding-top:8px;padding-bottom:8px}.add-chip[_ngcontent-%COMP%]{height:calc(100% - 18.4px);margin-left:1px;border-top-left-radius:0;border-bottom-left-radius:0}"]})},ce=class i{static \u0275fac=function(e){return new(e||i)};static \u0275mod=R({type:i});static \u0275inj=O({imports:[B,te,T,z,Z,oe,Y]})};export{se as a,ce as b};
@@ -1,4 +1,4 @@
1
- import{a as fo}from"./chunk-YXCPHYC5.js";import{a as Qt,b as Ut}from"./chunk-JFLT7NX3.js";import{a as Io}from"./chunk-ISWF7KQF.js";import{a as vi}from"./chunk-YTGZYBEI.js";import{a as xo}from"./chunk-KS37A3HL.js";import{e as _o}from"./chunk-EPBMDUPY.js";import{a as Ye}from"./chunk-J6U6UYNI.js";import{a as Xe,b as st,c as ce}from"./chunk-HT35KHLT.js";import{a as Ci,b as Pe}from"./chunk-CHSEYRJF.js";import{a as co}from"./chunk-QGNOVY53.js";import{b as Po}from"./chunk-YYR3XEAQ.js";import{d as So}from"./chunk-LOMNHHBV.js";import{a as bo}from"./chunk-JXJUXV43.js";import{a as ho}from"./chunk-3AIABMW2.js";import{a as de,b as Te,e as Mo}from"./chunk-4E2C3JC6.js";import{b as vo}from"./chunk-M7EO4UVO.js";import{a as uo,b as Oo,c as Do}from"./chunk-WEAIMPRM.js";import{a as go}from"./chunk-DINWVJP7.js";import{a as To}from"./chunk-I2O3VGCS.js";import{g as mo}from"./chunk-R5IO2SN4.js";import{b as fn,c as po}from"./chunk-FBOZUHXS.js";import{a as un,b as jt,c as gn}from"./chunk-G5HGRNM6.js";import{b as lo}from"./chunk-WOZLNXGI.js";import{a as Pt}from"./chunk-ZCQOFB7U.js";import{a as Yn}from"./chunk-QWZ5AM3L.js";import{a as _i,b as yi,c as bi}from"./chunk-DPKYMDVN.js";import{a as Co}from"./chunk-UZFW2WNI.js";import{a as yo}from"./chunk-3CCOX4FN.js";import{d as hi}from"./chunk-Z7LRKY4R.js";import{p as Zn}from"./chunk-2F5STFEV.js";import{d as Kn}from"./chunk-Y3CUYCSX.js";import{a as to,c as bt}from"./chunk-CN5SHMHF.js";import{h as Xn}from"./chunk-3M5M2T4L.js";import{B as ao,C as ee,D as be,G as so,u as Z,v as X,w as yt}from"./chunk-45BASVRZ.js";import{b as ui,c as Ht}from"./chunk-XOQ4SW2R.js";import{F as St,N as fi,O as H,g as io,n as gi,o as no,q as oo,t as ro}from"./chunk-4SOJX57D.js";import{a as it}from"./chunk-GHC4BCCW.js";import{a as Bn,c as Hn}from"./chunk-GIKR6Y2K.js";import{d as _t,e as eo}from"./chunk-3GV7FUAX.js";import{a as oe,b as zn,e as K,f as pe,g as xe}from"./chunk-6BL2JKZG.js";import{a as le}from"./chunk-2FWFPV5I.js";import{A as $n,B as Jn,F as pi,c as Me,e as mi,h as _e,i as jn,k as Qn,l as Ze,n as Un,o as Ie,p as Wn,s as vt,x as Gn,y as qn}from"./chunk-CB33ZMNF.js";import{a as h,d as di}from"./chunk-TYBAV5LT.js";import{a as Ln}from"./chunk-2DQBDX5E.js";import{$ as ii,$a as l,$b as Bt,$c as Rn,Ac as M,Bc as ie,Cc as Ct,Db as w,E as ae,Eb as gt,Fc as De,Gb as ft,Hb as ht,I as tt,Ia as oi,Ib as a,Ja as dn,Jb as s,Kb as _,Lb as Q,M as dt,Ma as q,Mb as U,N as He,Nb as li,Ob as T,Pc as $e,Q as ke,Qb as b,Qd as kn,Rb as d,Rd as Vn,Td as Fn,Va as qe,Vd as B,Wa as ut,Wc as Fe,Xa as Dn,Y as Ve,Yc as ve,Yd as ye,Zb as Ft,Zc as re,_b as Lt,_c as Tn,aa as Y,ad as wn,b as Xt,bd as En,cd as Je,d as Ae,da as Oe,db as S,dc as G,e as Ce,ec as m,ed as ze,fa as se,fc as D,gc as O,gd as $,hc as ci,ib as ri,ic as In,ja as I,jc as V,jd as me,k as mt,ka as ni,kb as E,kc as N,lb as ai,lc as F,ma as g,n as Pn,na as x,o as Ee,p as pt,q as ei,qb as f,r as ti,rc as L,sc as je,t as J,td as Nn,u as Ge,ub as Mn,uc as xn,v as On,va as C,vb as p,wa as v,xd as An,zb as si,zc as y}from"./chunk-DJOHANFC.js";import{a as Kt,h as Ke,j as Zt}from"./chunk-7DCB7DB2.js";var Qe=class{constructor(e){this.roleService=e;e&&this.setRole()}_Retrieve;_DateEditor;_NumberEditor;_PriceVisible;_UnitPriceEditor;_PricebookSelector;_Cost;_Return;_Discount;_SalesPerson;_PriceMinimum;_Payment;_CreditSalesLock;_CustomerInputLock;_PaymentCodeLock;_Shipping;_Tax;_DeleteItem;_BundlingPrice;_EmailRestriction;_ParkedDeletionAuthorized;_SellEditor;_ContactCreate;_PrepaidPackageCreate;_Order;_Reprint;_Contacts;_ContactsCreate;_InventoryView;_DebtView;_ClearCart;_SellDelete;_DeliveryEditor;_CouponInputLock;_Park;_Commission;setRole(){this._Retrieve=this.roleService.sell.RetrieveR,this._DateEditor=this.roleService.global.Date,this._NumberEditor=this.roleService.sell.Number,this._PriceVisible=this.roleService.sell.PriceVisible,this._SalesPerson=this.roleService.sell.SalesPerson,this._UnitPriceEditor=this.roleService.sell.UnitPriceEditor,this._PricebookSelector=this.roleService.sell.PricebookSelector,this._Cost=this.roleService.product.Cost,this._Return=this.roleService.sell.Return,this._Discount=this.roleService.sell.Discount,this._PriceMinimum=this.roleService.sell.PriceMinimum,this._Payment=this.roleService.sell.Payment,this._CreditSalesLock=this.roleService.sell.CreditSalesLock,this._CustomerInputLock=this.roleService.sell.CustomerInputLock,this._PaymentCodeLock=this.roleService.sell.PaymentCodeLock,this._Shipping=this.roleService.sell.Shipping,this._Tax=this.roleService.sell.Tax,this._DeleteItem=this.roleService.sell.DeleteItem,this._BundlingPrice=this.roleService.sell.BundlingPrice,this._EmailRestriction=this.roleService.sell.Email,this._SellEditor=this.roleService.sell.Edit,this._ContactCreate=this.roleService.contact.Create,this._PrepaidPackageCreate=this.roleService.prepaidPackage.Create,this._Order=this.roleService.order.View,this._Contacts=this.roleService.contact.View,this._ContactsCreate=this.roleService.contact.Create,this._InventoryView=this.roleService.inventory.View,this._DebtView=this.roleService.debt.View,this._ClearCart=this.roleService.sell.DeleteItem,this._SellDelete=this.roleService.sell.Delete,this._DeliveryEditor=this.roleService.logistic.Edit,this._Reprint=this.roleService.order.Print,this._CouponInputLock=this.roleService.sell.CouponInputLock,this._Park=this.roleService.sell.Park,this._Commission=this.roleService.product.CommissionView}get Park(){return this._Park}get CouponInputLock(){return this._CouponInputLock}set CouponInputLock(e){this._CouponInputLock=e}get Retrieve(){return this._Retrieve}get DateEditor(){return this._DateEditor}set DateEditor(e){this._DateEditor=e}get NumberEditor(){return this._NumberEditor}set NumberEditor(e){this._NumberEditor=e}get PriceVisible(){return this._PriceVisible}get UnitPriceEditor(){return this._UnitPriceEditor}set UnitPriceEditor(e){this._UnitPriceEditor=e}get PricebookSelector(){return this._PricebookSelector}set PricebookSelector(e){this._PricebookSelector=e}get Cost(){return this._Cost}get Return(){return this._Return}set Return(e){this._Return=e}get Discount(){return this._Discount}set Discount(e){this._Discount=e}get SalesPerson(){return this._SalesPerson}get PriceMinimum(){return this._PriceMinimum}get Payment(){return this._Payment}get CreditSalesLock(){return this._CreditSalesLock}get CustomerInputLock(){return this._CustomerInputLock}get PaymentCodeLock(){return this._PaymentCodeLock}get Shipping(){return this._Shipping}get Tax(){return this._Tax}set Tax(e){this._Tax=e}get DeleteItem(){return this._DeleteItem}set DeleteItem(e){this._DeleteItem=e}get BundlingPrice(){return this._BundlingPrice}get Email(){return this._EmailRestriction}get ParkedDeletionAuthorized(){return this._ParkedDeletionAuthorized}set ParkedDeletionAuthorized(e){this._ParkedDeletionAuthorized=e}get SellEditor(){return this._SellEditor}get PrepaidPackageCreate(){return this._PrepaidPackageCreate}get Order(){return this._Order}get Reprint(){return this._Reprint}get Contacts(){return this._Contacts}get ContactsCreate(){return this._ContactsCreate}get InventoryView(){return this._InventoryView}get DebtView(){return this._DebtView}get ClearCartRestriction(){return this._ClearCart}get SellDelete(){return this._SellDelete}get DeliveryEditor(){return this._DeliveryEditor}get Commission(){return this._Commission}};var Wt=class{DeliveryEntityID;Type;NewOrderID;constructor(){this.DeliveryEntityID="",this.Type=3}};var Si=class{Type;Amount;Notification;ApplyToProduct;Requirement};var W=class{Order;Invoice;Shipping;Action;Payments;Items;CartItems;Promotion;ContactName;SplitParkLabel;get cartQuantity(){let e=0;for(let t of this.CartItems)e+=t.Quantity;return e}constructor(){this.Order=new fn,this.Invoice=new jt,this.Shipping=new gn,this.Action=new Wt,this.Payments=Array(),this.Items=Array(),this.CartItems=Array(),this.ContactName=""}get TotalPaidAmount(){let e=0;return this.Payments.forEach(t=>{e+=t.PaidAmount}),e}get RedeemableAmount(){let e=this.CartItems.filter(t=>t.Variant.PaymentTypeID!=1);return this.GetAmountByCart(e)}get TotalQuantity(){let e=0;return this.CartItems.forEach(t=>{t.PromotionGift||(e+=t.Quantity)}),e}get CashOnlyAmount(){let e=this.CartItems.filter(t=>t.Variant.PaymentTypeID==1);return this.GetAmountByCart(e)}get PointOnlyAmount(){let e=this.CartItems.filter(t=>t.Variant.PaymentTypeID==2);return this.GetAmountByCart(e)}get PrepaidPackageItem(){return this.CartItems.filter(t=>t.Variant.TypeID==10)}GetAmountByCart(e){let t=0;return e.forEach(i=>{t+=i.Total}),t=t*(100-this.Order.Discount)/100,t=t*(100-this.Order.Discount2)/100,t}getRewards(){return this.CartItems.filter(t=>t.PromotionGift)}};Ke([Xe(()=>fn)],W.prototype,"Order",2),Ke([Xe(()=>jt)],W.prototype,"Invoice",2),Ke([Xe(()=>gn)],W.prototype,"Shipping",2),Ke([Xe(()=>Wt)],W.prototype,"Action",2),Ke([Xe(()=>Ye)],W.prototype,"Payments",2),Ke([Xe(()=>Ci)],W.prototype,"Items",2),Ke([Xe(()=>Pe)],W.prototype,"CartItems",2),Ke([Xe(()=>Si)],W.prototype,"Promotion",2);var Pi=class{Success;Message;message;ObjectID;SalesOrderID;OutDeliveryID;Contact;LoyaltyPoint;InvoiceNumber;Creator;OrderTimeString;PrintMode;PaymentStateID;PaymentStateLabel;Final;constructor(){this.Success=!0,this.Message="",this.ObjectID="",this.SalesOrderID="",this.OutDeliveryID="",this.Contact=null,this.LoyaltyPoint="",this.InvoiceNumber="",this.Creator="",this.OrderTimeString="",this.PrintMode=0,this.PaymentStateID=0,this.PaymentStateLabel="",this.Final=0}};var Ot=class n{constructor(e,t,i,o){this.httpService=e;this._localDataService=t;this._onlineStatusService=i;this._toastrService=o;this._onlineStatusService.getOnlineStatus$().subscribe(r=>{this.isOnline=r})}_Data=new Ce(null);Data$=this._Data.pipe(ke(),ae(e=>e!==null));isOnline;get Data(){return this._Data.value}pushNewValue(e){this._Data.next(e)}getSalesOrderPrint(e){return this.httpService.post("/API/POS/GetSalesOrderPrint",{TemplateID:e})}submitOrder(e,t){let i=this.generatePOSDataForSubmission(e,this.isOnline);if(this.isOnline)return this.submitOnline(i).pipe(this.handleTimeOutError(i));if(t.ModuleSell.EnableOfflineTransaction)return this._localDataService.syncOrder(i).pipe(J(()=>this.generateCompleteData(i)));this._toastrService.warning("Offline order is not Supported!","Info!")}uploadOfflineOrder(e){return this._localDataService.uploadSingleOrder(e).pipe(tt(t=>t?.message?.includes("objectStore does not exists")?this.submitOnline(e):pt(()=>t)))}submitOnline(e){return this.httpService.post(H.SubmitOrder,e,Ln.pos.submitOrderTimeout)}handleTimeOutError(e){return Xt(tt(t=>{if(t instanceof ti||t?.name=="TimeoutError"){let i=this.generateCompleteData(e);this.pushNewValue(i)}throw t}))}generatePOSDataForSubmission(e,t=!0){let i=Object.assign(new W,e);i.Items=[],i.Order.CustomerID==null&&(i.Order.CustomerID=h.GuidEmpty),i.Order.SalesID==null&&(i.Order.SalesID=h.GuidEmpty);let o=1;i.Payments=i.Payments.map(c=>(c.Date=i.Order.Date,c.Index=o,o++,delete c.TypeID,c));let r=1;for(let c of i.CartItems){let u=new Ci;u.ID=c.ID,u.VariantID=c.VariantID,u.Quantity=c.Quantity,u.Cost=c.Cost,u.Price=c.Price,u.Discount=c.Discount,u.DiscountAmount=c.DiscountAmount,u.Note=c.Note,u.Taxable=c.Variant.Taxable,u.LoyaltyPoint=c.LoyaltyPoint,u.UnitCost=c.Cost,u.UnitPrice=c.Price,u.UnitPriceOriginal=c.UnitPriceOriginal,u.UnitExpense=c.UnitExpense,u.EntityID=c.EntityID,u.Index=r,u.UnitQuantity=c.UnitQuantity,u.PriceTypeID=c.PriceTypeID,u.PriceNote=c.PriceNote,u.Splited=c.SplitQuantity>0,u.SplitQuantity=c.SplitQuantity,u.InventoryTypeID=c.Variant.TypeID,u.SalesID="",u.Serial=c.Serial,c.SalesID&&(u.SalesID=c.SalesID),delete c.CouponDiscount,i.Items.push(u),r++}return t?(delete i.CartItems,delete i.Order.ClientTimestamp):i.Order.ClientTimestamp=new Date,i}generateCompleteData(e){let t=new Pi;return t.InvoiceNumber=e.Order.Number,t.OrderTimeString=new Date().toString(),t.PaymentStateID=e.Action?.Type,t.PaymentStateLabel="Offline",t.Success=!0,t.OutDeliveryID=e.Action.DeliveryEntityID,t}GetReturnInvoice(e,t){return this.httpService.get(H.ReturInvoice,[{key:"EntityID",value:t},{key:"Number",value:e}])}GetInvoiceBySoID(e){return this.httpService.get(H.GetPOSDataByID,[{key:"ID",value:e}])}UploadCSV(e,t){let i={CartItems:e,EntityID:t};return this.httpService.post(H.UploadCsv,i)}sendEmail(e,t){return new Promise((i,o)=>{this._localDataService.isProductFromServer().subscribe(r=>{if(r){let c={invoiceID:t,email:e};this.httpService.post(H.SendInvoiceEmail,c).subscribe({next:u=>{i(u)},error:u=>{o(u)}})}else o(ee.wrongOfflineAction)})})}sendWhatsaap(e,t){let i={InvoiceID:e,PhoneNumber:t};return this.httpService.post(H.SendInvoiceWhatsapp,i)}createCustomerByInvoice(e,t){let i={InvoiceID:e,Mobile:t};return this.httpService.post(H.CreateCustomerInvoice,i)}saveCommission(e,t){let i={SOID:e,commission:t};return this.httpService.POSText("/API/Transaction/SetCommission",i)}generateReceiptA4(e){let t={ID:e};return this.httpService.post(H.InvoiceA4,t)}getVacant(e){return this.httpService.get(H.GetVacant,[{key:"EntityID",value:e}])}static \u0275fac=function(t){return new(t||n)(g(ye),g(be),g(de),g(B))};static \u0275prov=I({token:n,factory:n.\u0275fac,providedIn:"root"})};var $t=(r=>(r[r.cash=1]="cash",r[r.card=2]="card",r[r.emoney=3]="emoney",r[r.other=4]="other",r[r.ECR=99]="ECR",r))($t||{});var k=class n{constructor(e,t,i){this._OrderHttpService=e;this._customerHttpService=t;this._toastrService=i}_Data=new Ce(new W);transaction_id;Data$=this._Data.asObservable();get Data(){return this._Data.value}pushNewValue(e){if(e)this._Data.next(e);else{let t=this.Data;this._Data.next(t)}}submitOrder(e){return new Promise((t,i)=>{this.checkTransactionId(),this._OrderHttpService.submitOrder(this.Data,e).subscribe({next:o=>{t(o)},error:o=>{this.Data.Items=[],i(o)}})})}uploadOfflineOrder(){return this.checkTransactionId(),this._OrderHttpService.uploadOfflineOrder(this.Data)}checkTransactionId(){let t=this.Data.Payments.find(i=>i.TypeID==3);h.IsNotEmpty(t)&&h.IsEmpty(this.transaction_id)&&this._toastrService.warning("Midtrans transaction_id is empty. Please verify manually!","Mobile Payment Failure")}updateCustomerID(e){return this.Data.Order.CustomerID=e,this.pushNewValue(this.Data),new Promise((t,i)=>{this._customerHttpService.GetPrivilegeByID(e,this.Data.Order.EntityID).subscribe({next:o=>{this._customerHttpService.Data=o,this.pushNewValue(this.Data),t(o)},error:o=>{this.Data.Order.CustomerID=null,this.Data.ContactName=null;let r=o.error?.Message;o.status==409?this._toastrService.warning(r,"Warning"):this._toastrService.error(r,`API Error - ${o.status}`),i(o)}})})}static \u0275fac=function(t){return new(t||n)(g(Ot),g(Te),g(B))};static \u0275prov=I({token:n,factory:n.\u0275fac,providedIn:"root"})};var z=class n{constructor(e,t,i){this._localDataService=e;this._onlineStatusService=t;this._httpService=i;this._onlineStatusService.getOnlineStatus$().subscribe(o=>{this.isOnline=o})}_Data=new Ce(null);Data$=this._Data.asObservable().pipe(ae(e=>e!==null),ke());isOnline;get Data(){return this._Data.value}pushNewValue(e){this._Data.next(e)}requestObservable(){return this.isOnline?this._httpService.get(H.GetPOSStorage).pipe(J(e=>({data:e,type:"Online"}))):this._localDataService.getPOSStorage().pipe(ae(e=>e!=null),J(e=>({data:e,type:"Offline"})))}getOutletName(e){return this.Data.Entities.find(i=>i.ID==e)?.Name}static \u0275fac=function(t){return new(t||n)(g(be),g(de),g(ye))};static \u0275prov=I({token:n,factory:n.\u0275fac,providedIn:"root"})};var Se=class n{constructor(e){this.roleService=e;this.pushNewValue(new Qe(e))}_Data=new Ce(new Qe(null));get Data(){return this._Data.value}Data$=this._Data.asObservable();pushNewValue(e){this._Data.next(e)}static \u0275fac=function(t){return new(t||n)(g(di))};static \u0275prov=I({token:n,factory:n.\u0275fac,providedIn:"root"})};var zt=class{ID;Code;EntityID;Name;Description;Start;StartDisplay;State;Open;CashierID;OpeningCash;EntityName;LoginID;Active;CustomerDisplayEnabled;OvoConfigurationID;CustomerDisplayID;ListImage;Suspended};var Jo=n=>({active:n}),zo=n=>({gray:n});function Yo(n,e){if(n&1){let t=T();a(0,"span",17),b("click",function(o){C(t);let r=d().$implicit;return d().closeRegister(r),v(o.stopPropagation())}),s()}}function Ko(n,e){n&1&&(a(0,"div")(1,"span",18),m(2,"VACANT"),s()())}function Zo(n,e){if(n&1&&(a(0,"div")(1,"span",19),_(2,"i",20),a(3,"span",21),m(4),s()(),a(5,"span",22),_(6,"i",23),a(7,"span",21),m(8),s()()()),n&2){let t=d().$implicit;l(4),D(t.LoginID),l(4),O("",t.StartDisplay.split(" ")[3]," - Now")}}function Xo(n,e){if(n&1){let t=T();a(0,"div",9)(1,"div",10)(2,"div",11)(3,"h5",12),b("click",function(){let o=C(t).$implicit,r=d();return v(r.select(o))}),a(4,"span"),_(5,"i",13),m(6),y(7,"limitTo"),s(),f(8,Yo,1,0,"span",14),s(),a(9,"div",15),b("click",function(){let o=C(t).$implicit,r=d();return v(r.select(o))}),f(10,Ko,3,0,"div",16)(11,Zo,9,2,"div",16),s()()()()}if(n&2){let t=e.$implicit,i=d();l(),p("ngClass",t.Active?"active":""),l(),p("ngClass",L(11,Jo,(t==null?null:t.ID)==(i.selectedRegister==null?null:i.selectedRegister.ID))),l(),p("ngClass",L(13,zo,t!=i.selectedRegister)),l(3),D(ie(7,8,t.Name,15)),l(2),p("ngIf",t.State!="Close"),l(),p("ngSwitch",t.State),l(),p("ngSwitchCase","Close"),l(),p("ngSwitchCase","Open")}}var Oi=class n{constructor(e,t,i,o,r){this._dialogRef=e;this._outletService=t;this._posService=i;this._userRoleService=o;this.router=r}originalSelectedRegister=null;registers;searchInput="";selectedRegister=new zt;modalConfig=new Z;role;get AppConfigJSON(){return this._posService.Data.AppConfigJSON}destroy$=new Ae;ngOnInit(){this.subscribeToObsChanges(),this.initModalConfig()}subscribeToObsChanges(){this._posService.Data$.pipe(Oe(this.destroy$)).subscribe(e=>{this.registers=e.Registers}),this._outletService.Data$.pipe(Oe(this.destroy$)).subscribe(e=>{this.selectedRegister=this.findOutletRegisterById(e.RegisterID),this.originalSelectedRegister=this.selectedRegister?Kt({},this.selectedRegister):null}),this._userRoleService.Data$.pipe(Oe(this.destroy$)).subscribe(e=>{this.role=e})}findOutletRegisterById(e){let t=this.registers.find(i=>i.ID===e);return t||new zt}initModalConfig(){this.modalConfig.hideFooter=!0,this.modalConfig.hideScrollbar=!0,this.modalConfig.title="Choose an outlet"}ngOnDestroy(){this.destroy$.next(!0),this.destroy$.complete()}onClose(){this._dialogRef.close()}select(e){if(this.AppConfigJSON.ModuleShift.Closure.Enabled)if(this.selectedRegister.ID!=null&&this.selectedRegister.Open&&e.CashierID==null)confirm("You already have an active register with "+this.selectedRegister.Name+`!
1
+ import{a as fo}from"./chunk-YXCPHYC5.js";import{a as Qt,b as Ut}from"./chunk-JFLT7NX3.js";import{a as Io}from"./chunk-ISWF7KQF.js";import{a as vi}from"./chunk-YTGZYBEI.js";import{a as xo}from"./chunk-KS37A3HL.js";import{e as _o}from"./chunk-DF2W7YLH.js";import{a as Ye}from"./chunk-J6U6UYNI.js";import{a as Xe,b as st,c as ce}from"./chunk-HT35KHLT.js";import{a as Ci,b as Pe}from"./chunk-CHSEYRJF.js";import{a as co}from"./chunk-QGNOVY53.js";import{b as Po}from"./chunk-T7EVNQJZ.js";import{d as So}from"./chunk-WUBF7SHA.js";import{a as bo}from"./chunk-JXJUXV43.js";import{a as ho}from"./chunk-3AIABMW2.js";import{a as de,b as Te,e as Mo}from"./chunk-E3SP7B7S.js";import{b as vo}from"./chunk-M7EO4UVO.js";import{a as uo,b as Oo,c as Do}from"./chunk-ZJDIZNTX.js";import{a as go}from"./chunk-EGOF4SFE.js";import{a as To}from"./chunk-I2O3VGCS.js";import{g as mo}from"./chunk-P6TNAQ2F.js";import{b as fn,c as po}from"./chunk-FBOZUHXS.js";import{a as un,b as jt,c as gn}from"./chunk-G5HGRNM6.js";import{b as lo}from"./chunk-WOZLNXGI.js";import{a as Pt}from"./chunk-ZCQOFB7U.js";import{a as Yn}from"./chunk-QWZ5AM3L.js";import{a as _i,b as yi,c as bi}from"./chunk-DPKYMDVN.js";import{a as Co}from"./chunk-O5RZTQKV.js";import{a as yo}from"./chunk-3CCOX4FN.js";import{d as hi}from"./chunk-OGI634A2.js";import{p as Zn}from"./chunk-QTXCHVAR.js";import{d as Kn}from"./chunk-RB6SQ4EV.js";import{a as to,c as bt}from"./chunk-CN5SHMHF.js";import{h as Xn}from"./chunk-3M5M2T4L.js";import{B as ao,C as ee,D as be,G as so,u as Z,v as X,w as yt}from"./chunk-7G4UPOQP.js";import{b as ui,c as Ht}from"./chunk-XOQ4SW2R.js";import{F as St,N as fi,O as H,g as io,n as gi,o as no,q as oo,t as ro}from"./chunk-ZJMIEPWF.js";import{a as it}from"./chunk-GHC4BCCW.js";import{a as Bn,c as Hn}from"./chunk-GIKR6Y2K.js";import{d as _t,e as eo}from"./chunk-3GV7FUAX.js";import{a as oe,b as zn,e as K,f as pe,g as xe}from"./chunk-6BL2JKZG.js";import{a as le}from"./chunk-2FWFPV5I.js";import{A as $n,B as Jn,F as pi,c as Me,e as mi,h as _e,i as jn,k as Qn,l as Ze,n as Un,o as Ie,p as Wn,s as vt,x as Gn,y as qn}from"./chunk-CB33ZMNF.js";import{a as h,d as di}from"./chunk-TYBAV5LT.js";import{a as Ln}from"./chunk-BBXK3YKT.js";import{$ as ii,$a as l,$b as Bt,$c as Rn,Ac as M,Bc as ie,Cc as Ct,Db as w,E as ae,Eb as gt,Fc as De,Gb as ft,Hb as ht,I as tt,Ia as oi,Ib as a,Ja as dn,Jb as s,Kb as _,Lb as Q,M as dt,Ma as q,Mb as U,N as He,Nb as li,Ob as T,Pc as $e,Q as ke,Qb as b,Qd as kn,Rb as d,Rd as Vn,Td as Fn,Va as qe,Vd as B,Wa as ut,Wc as Fe,Xa as Dn,Y as Ve,Yc as ve,Yd as ye,Zb as Ft,Zc as re,_b as Lt,_c as Tn,aa as Y,ad as wn,b as Xt,bd as En,cd as Je,d as Ae,da as Oe,db as S,dc as G,e as Ce,ec as m,ed as ze,fa as se,fc as D,gc as O,gd as $,hc as ci,ib as ri,ic as In,ja as I,jc as V,jd as me,k as mt,ka as ni,kb as E,kc as N,lb as ai,lc as F,ma as g,n as Pn,na as x,o as Ee,p as pt,q as ei,qb as f,r as ti,rc as L,sc as je,t as J,td as Nn,u as Ge,ub as Mn,uc as xn,v as On,va as C,vb as p,wa as v,xd as An,zb as si,zc as y}from"./chunk-DJOHANFC.js";import{a as Kt,h as Ke,j as Zt}from"./chunk-7DCB7DB2.js";var Qe=class{constructor(e){this.roleService=e;e&&this.setRole()}_Retrieve;_DateEditor;_NumberEditor;_PriceVisible;_UnitPriceEditor;_PricebookSelector;_Cost;_Return;_Discount;_SalesPerson;_PriceMinimum;_Payment;_CreditSalesLock;_CustomerInputLock;_PaymentCodeLock;_Shipping;_Tax;_DeleteItem;_BundlingPrice;_EmailRestriction;_ParkedDeletionAuthorized;_SellEditor;_ContactCreate;_PrepaidPackageCreate;_Order;_Reprint;_Contacts;_ContactsCreate;_InventoryView;_DebtView;_ClearCart;_SellDelete;_DeliveryEditor;_CouponInputLock;_Park;_Commission;setRole(){this._Retrieve=this.roleService.sell.RetrieveR,this._DateEditor=this.roleService.global.Date,this._NumberEditor=this.roleService.sell.Number,this._PriceVisible=this.roleService.sell.PriceVisible,this._SalesPerson=this.roleService.sell.SalesPerson,this._UnitPriceEditor=this.roleService.sell.UnitPriceEditor,this._PricebookSelector=this.roleService.sell.PricebookSelector,this._Cost=this.roleService.product.Cost,this._Return=this.roleService.sell.Return,this._Discount=this.roleService.sell.Discount,this._PriceMinimum=this.roleService.sell.PriceMinimum,this._Payment=this.roleService.sell.Payment,this._CreditSalesLock=this.roleService.sell.CreditSalesLock,this._CustomerInputLock=this.roleService.sell.CustomerInputLock,this._PaymentCodeLock=this.roleService.sell.PaymentCodeLock,this._Shipping=this.roleService.sell.Shipping,this._Tax=this.roleService.sell.Tax,this._DeleteItem=this.roleService.sell.DeleteItem,this._BundlingPrice=this.roleService.sell.BundlingPrice,this._EmailRestriction=this.roleService.sell.Email,this._SellEditor=this.roleService.sell.Edit,this._ContactCreate=this.roleService.contact.Create,this._PrepaidPackageCreate=this.roleService.prepaidPackage.Create,this._Order=this.roleService.order.View,this._Contacts=this.roleService.contact.View,this._ContactsCreate=this.roleService.contact.Create,this._InventoryView=this.roleService.inventory.View,this._DebtView=this.roleService.debt.View,this._ClearCart=this.roleService.sell.DeleteItem,this._SellDelete=this.roleService.sell.Delete,this._DeliveryEditor=this.roleService.logistic.Edit,this._Reprint=this.roleService.order.Print,this._CouponInputLock=this.roleService.sell.CouponInputLock,this._Park=this.roleService.sell.Park,this._Commission=this.roleService.product.CommissionView}get Park(){return this._Park}get CouponInputLock(){return this._CouponInputLock}set CouponInputLock(e){this._CouponInputLock=e}get Retrieve(){return this._Retrieve}get DateEditor(){return this._DateEditor}set DateEditor(e){this._DateEditor=e}get NumberEditor(){return this._NumberEditor}set NumberEditor(e){this._NumberEditor=e}get PriceVisible(){return this._PriceVisible}get UnitPriceEditor(){return this._UnitPriceEditor}set UnitPriceEditor(e){this._UnitPriceEditor=e}get PricebookSelector(){return this._PricebookSelector}set PricebookSelector(e){this._PricebookSelector=e}get Cost(){return this._Cost}get Return(){return this._Return}set Return(e){this._Return=e}get Discount(){return this._Discount}set Discount(e){this._Discount=e}get SalesPerson(){return this._SalesPerson}get PriceMinimum(){return this._PriceMinimum}get Payment(){return this._Payment}get CreditSalesLock(){return this._CreditSalesLock}get CustomerInputLock(){return this._CustomerInputLock}get PaymentCodeLock(){return this._PaymentCodeLock}get Shipping(){return this._Shipping}get Tax(){return this._Tax}set Tax(e){this._Tax=e}get DeleteItem(){return this._DeleteItem}set DeleteItem(e){this._DeleteItem=e}get BundlingPrice(){return this._BundlingPrice}get Email(){return this._EmailRestriction}get ParkedDeletionAuthorized(){return this._ParkedDeletionAuthorized}set ParkedDeletionAuthorized(e){this._ParkedDeletionAuthorized=e}get SellEditor(){return this._SellEditor}get PrepaidPackageCreate(){return this._PrepaidPackageCreate}get Order(){return this._Order}get Reprint(){return this._Reprint}get Contacts(){return this._Contacts}get ContactsCreate(){return this._ContactsCreate}get InventoryView(){return this._InventoryView}get DebtView(){return this._DebtView}get ClearCartRestriction(){return this._ClearCart}get SellDelete(){return this._SellDelete}get DeliveryEditor(){return this._DeliveryEditor}get Commission(){return this._Commission}};var Wt=class{DeliveryEntityID;Type;NewOrderID;constructor(){this.DeliveryEntityID="",this.Type=3}};var Si=class{Type;Amount;Notification;ApplyToProduct;Requirement};var W=class{Order;Invoice;Shipping;Action;Payments;Items;CartItems;Promotion;ContactName;SplitParkLabel;get cartQuantity(){let e=0;for(let t of this.CartItems)e+=t.Quantity;return e}constructor(){this.Order=new fn,this.Invoice=new jt,this.Shipping=new gn,this.Action=new Wt,this.Payments=Array(),this.Items=Array(),this.CartItems=Array(),this.ContactName=""}get TotalPaidAmount(){let e=0;return this.Payments.forEach(t=>{e+=t.PaidAmount}),e}get RedeemableAmount(){let e=this.CartItems.filter(t=>t.Variant.PaymentTypeID!=1);return this.GetAmountByCart(e)}get TotalQuantity(){let e=0;return this.CartItems.forEach(t=>{t.PromotionGift||(e+=t.Quantity)}),e}get CashOnlyAmount(){let e=this.CartItems.filter(t=>t.Variant.PaymentTypeID==1);return this.GetAmountByCart(e)}get PointOnlyAmount(){let e=this.CartItems.filter(t=>t.Variant.PaymentTypeID==2);return this.GetAmountByCart(e)}get PrepaidPackageItem(){return this.CartItems.filter(t=>t.Variant.TypeID==10)}GetAmountByCart(e){let t=0;return e.forEach(i=>{t+=i.Total}),t=t*(100-this.Order.Discount)/100,t=t*(100-this.Order.Discount2)/100,t}getRewards(){return this.CartItems.filter(t=>t.PromotionGift)}};Ke([Xe(()=>fn)],W.prototype,"Order",2),Ke([Xe(()=>jt)],W.prototype,"Invoice",2),Ke([Xe(()=>gn)],W.prototype,"Shipping",2),Ke([Xe(()=>Wt)],W.prototype,"Action",2),Ke([Xe(()=>Ye)],W.prototype,"Payments",2),Ke([Xe(()=>Ci)],W.prototype,"Items",2),Ke([Xe(()=>Pe)],W.prototype,"CartItems",2),Ke([Xe(()=>Si)],W.prototype,"Promotion",2);var Pi=class{Success;Message;message;ObjectID;SalesOrderID;OutDeliveryID;Contact;LoyaltyPoint;InvoiceNumber;Creator;OrderTimeString;PrintMode;PaymentStateID;PaymentStateLabel;Final;constructor(){this.Success=!0,this.Message="",this.ObjectID="",this.SalesOrderID="",this.OutDeliveryID="",this.Contact=null,this.LoyaltyPoint="",this.InvoiceNumber="",this.Creator="",this.OrderTimeString="",this.PrintMode=0,this.PaymentStateID=0,this.PaymentStateLabel="",this.Final=0}};var Ot=class n{constructor(e,t,i,o){this.httpService=e;this._localDataService=t;this._onlineStatusService=i;this._toastrService=o;this._onlineStatusService.getOnlineStatus$().subscribe(r=>{this.isOnline=r})}_Data=new Ce(null);Data$=this._Data.pipe(ke(),ae(e=>e!==null));isOnline;get Data(){return this._Data.value}pushNewValue(e){this._Data.next(e)}getSalesOrderPrint(e){return this.httpService.post("/API/POS/GetSalesOrderPrint",{TemplateID:e})}submitOrder(e,t){let i=this.generatePOSDataForSubmission(e,this.isOnline);if(this.isOnline)return this.submitOnline(i).pipe(this.handleTimeOutError(i));if(t.ModuleSell.EnableOfflineTransaction)return this._localDataService.syncOrder(i).pipe(J(()=>this.generateCompleteData(i)));this._toastrService.warning("Offline order is not Supported!","Info!")}uploadOfflineOrder(e){return this._localDataService.uploadSingleOrder(e).pipe(tt(t=>t?.message?.includes("objectStore does not exists")?this.submitOnline(e):pt(()=>t)))}submitOnline(e){return this.httpService.post(H.SubmitOrder,e,Ln.pos.submitOrderTimeout)}handleTimeOutError(e){return Xt(tt(t=>{if(t instanceof ti||t?.name=="TimeoutError"){let i=this.generateCompleteData(e);this.pushNewValue(i)}throw t}))}generatePOSDataForSubmission(e,t=!0){let i=Object.assign(new W,e);i.Items=[],i.Order.CustomerID==null&&(i.Order.CustomerID=h.GuidEmpty),i.Order.SalesID==null&&(i.Order.SalesID=h.GuidEmpty);let o=1;i.Payments=i.Payments.map(c=>(c.Date=i.Order.Date,c.Index=o,o++,delete c.TypeID,c));let r=1;for(let c of i.CartItems){let u=new Ci;u.ID=c.ID,u.VariantID=c.VariantID,u.Quantity=c.Quantity,u.Cost=c.Cost,u.Price=c.Price,u.Discount=c.Discount,u.DiscountAmount=c.DiscountAmount,u.Note=c.Note,u.Taxable=c.Variant.Taxable,u.LoyaltyPoint=c.LoyaltyPoint,u.UnitCost=c.Cost,u.UnitPrice=c.Price,u.UnitPriceOriginal=c.UnitPriceOriginal,u.UnitExpense=c.UnitExpense,u.EntityID=c.EntityID,u.Index=r,u.UnitQuantity=c.UnitQuantity,u.PriceTypeID=c.PriceTypeID,u.PriceNote=c.PriceNote,u.Splited=c.SplitQuantity>0,u.SplitQuantity=c.SplitQuantity,u.InventoryTypeID=c.Variant.TypeID,u.SalesID="",u.Serial=c.Serial,c.SalesID&&(u.SalesID=c.SalesID),delete c.CouponDiscount,i.Items.push(u),r++}return t?(delete i.CartItems,delete i.Order.ClientTimestamp):i.Order.ClientTimestamp=new Date,i}generateCompleteData(e){let t=new Pi;return t.InvoiceNumber=e.Order.Number,t.OrderTimeString=new Date().toString(),t.PaymentStateID=e.Action?.Type,t.PaymentStateLabel="Offline",t.Success=!0,t.OutDeliveryID=e.Action.DeliveryEntityID,t}GetReturnInvoice(e,t){return this.httpService.get(H.ReturInvoice,[{key:"EntityID",value:t},{key:"Number",value:e}])}GetInvoiceBySoID(e){return this.httpService.get(H.GetPOSDataByID,[{key:"ID",value:e}])}UploadCSV(e,t){let i={CartItems:e,EntityID:t};return this.httpService.post(H.UploadCsv,i)}sendEmail(e,t){return new Promise((i,o)=>{this._localDataService.isProductFromServer().subscribe(r=>{if(r){let c={invoiceID:t,email:e};this.httpService.post(H.SendInvoiceEmail,c).subscribe({next:u=>{i(u)},error:u=>{o(u)}})}else o(ee.wrongOfflineAction)})})}sendWhatsaap(e,t){let i={InvoiceID:e,PhoneNumber:t};return this.httpService.post(H.SendInvoiceWhatsapp,i)}createCustomerByInvoice(e,t){let i={InvoiceID:e,Mobile:t};return this.httpService.post(H.CreateCustomerInvoice,i)}saveCommission(e,t){let i={SOID:e,commission:t};return this.httpService.POSText("/API/Transaction/SetCommission",i)}generateReceiptA4(e){let t={ID:e};return this.httpService.post(H.InvoiceA4,t)}getVacant(e){return this.httpService.get(H.GetVacant,[{key:"EntityID",value:e}])}static \u0275fac=function(t){return new(t||n)(g(ye),g(be),g(de),g(B))};static \u0275prov=I({token:n,factory:n.\u0275fac,providedIn:"root"})};var $t=(r=>(r[r.cash=1]="cash",r[r.card=2]="card",r[r.emoney=3]="emoney",r[r.other=4]="other",r[r.ECR=99]="ECR",r))($t||{});var k=class n{constructor(e,t,i){this._OrderHttpService=e;this._customerHttpService=t;this._toastrService=i}_Data=new Ce(new W);transaction_id;Data$=this._Data.asObservable();get Data(){return this._Data.value}pushNewValue(e){if(e)this._Data.next(e);else{let t=this.Data;this._Data.next(t)}}submitOrder(e){return new Promise((t,i)=>{this.checkTransactionId(),this._OrderHttpService.submitOrder(this.Data,e).subscribe({next:o=>{t(o)},error:o=>{this.Data.Items=[],i(o)}})})}uploadOfflineOrder(){return this.checkTransactionId(),this._OrderHttpService.uploadOfflineOrder(this.Data)}checkTransactionId(){let t=this.Data.Payments.find(i=>i.TypeID==3);h.IsNotEmpty(t)&&h.IsEmpty(this.transaction_id)&&this._toastrService.warning("Midtrans transaction_id is empty. Please verify manually!","Mobile Payment Failure")}updateCustomerID(e){return this.Data.Order.CustomerID=e,this.pushNewValue(this.Data),new Promise((t,i)=>{this._customerHttpService.GetPrivilegeByID(e,this.Data.Order.EntityID).subscribe({next:o=>{this._customerHttpService.Data=o,this.pushNewValue(this.Data),t(o)},error:o=>{this.Data.Order.CustomerID=null,this.Data.ContactName=null;let r=o.error?.Message;o.status==409?this._toastrService.warning(r,"Warning"):this._toastrService.error(r,`API Error - ${o.status}`),i(o)}})})}static \u0275fac=function(t){return new(t||n)(g(Ot),g(Te),g(B))};static \u0275prov=I({token:n,factory:n.\u0275fac,providedIn:"root"})};var z=class n{constructor(e,t,i){this._localDataService=e;this._onlineStatusService=t;this._httpService=i;this._onlineStatusService.getOnlineStatus$().subscribe(o=>{this.isOnline=o})}_Data=new Ce(null);Data$=this._Data.asObservable().pipe(ae(e=>e!==null),ke());isOnline;get Data(){return this._Data.value}pushNewValue(e){this._Data.next(e)}requestObservable(){return this.isOnline?this._httpService.get(H.GetPOSStorage).pipe(J(e=>({data:e,type:"Online"}))):this._localDataService.getPOSStorage().pipe(ae(e=>e!=null),J(e=>({data:e,type:"Offline"})))}getOutletName(e){return this.Data.Entities.find(i=>i.ID==e)?.Name}static \u0275fac=function(t){return new(t||n)(g(be),g(de),g(ye))};static \u0275prov=I({token:n,factory:n.\u0275fac,providedIn:"root"})};var Se=class n{constructor(e){this.roleService=e;this.pushNewValue(new Qe(e))}_Data=new Ce(new Qe(null));get Data(){return this._Data.value}Data$=this._Data.asObservable();pushNewValue(e){this._Data.next(e)}static \u0275fac=function(t){return new(t||n)(g(di))};static \u0275prov=I({token:n,factory:n.\u0275fac,providedIn:"root"})};var zt=class{ID;Code;EntityID;Name;Description;Start;StartDisplay;State;Open;CashierID;OpeningCash;EntityName;LoginID;Active;CustomerDisplayEnabled;OvoConfigurationID;CustomerDisplayID;ListImage;Suspended};var Jo=n=>({active:n}),zo=n=>({gray:n});function Yo(n,e){if(n&1){let t=T();a(0,"span",17),b("click",function(o){C(t);let r=d().$implicit;return d().closeRegister(r),v(o.stopPropagation())}),s()}}function Ko(n,e){n&1&&(a(0,"div")(1,"span",18),m(2,"VACANT"),s()())}function Zo(n,e){if(n&1&&(a(0,"div")(1,"span",19),_(2,"i",20),a(3,"span",21),m(4),s()(),a(5,"span",22),_(6,"i",23),a(7,"span",21),m(8),s()()()),n&2){let t=d().$implicit;l(4),D(t.LoginID),l(4),O("",t.StartDisplay.split(" ")[3]," - Now")}}function Xo(n,e){if(n&1){let t=T();a(0,"div",9)(1,"div",10)(2,"div",11)(3,"h5",12),b("click",function(){let o=C(t).$implicit,r=d();return v(r.select(o))}),a(4,"span"),_(5,"i",13),m(6),y(7,"limitTo"),s(),f(8,Yo,1,0,"span",14),s(),a(9,"div",15),b("click",function(){let o=C(t).$implicit,r=d();return v(r.select(o))}),f(10,Ko,3,0,"div",16)(11,Zo,9,2,"div",16),s()()()()}if(n&2){let t=e.$implicit,i=d();l(),p("ngClass",t.Active?"active":""),l(),p("ngClass",L(11,Jo,(t==null?null:t.ID)==(i.selectedRegister==null?null:i.selectedRegister.ID))),l(),p("ngClass",L(13,zo,t!=i.selectedRegister)),l(3),D(ie(7,8,t.Name,15)),l(2),p("ngIf",t.State!="Close"),l(),p("ngSwitch",t.State),l(),p("ngSwitchCase","Close"),l(),p("ngSwitchCase","Open")}}var Oi=class n{constructor(e,t,i,o,r){this._dialogRef=e;this._outletService=t;this._posService=i;this._userRoleService=o;this.router=r}originalSelectedRegister=null;registers;searchInput="";selectedRegister=new zt;modalConfig=new Z;role;get AppConfigJSON(){return this._posService.Data.AppConfigJSON}destroy$=new Ae;ngOnInit(){this.subscribeToObsChanges(),this.initModalConfig()}subscribeToObsChanges(){this._posService.Data$.pipe(Oe(this.destroy$)).subscribe(e=>{this.registers=e.Registers}),this._outletService.Data$.pipe(Oe(this.destroy$)).subscribe(e=>{this.selectedRegister=this.findOutletRegisterById(e.RegisterID),this.originalSelectedRegister=this.selectedRegister?Kt({},this.selectedRegister):null}),this._userRoleService.Data$.pipe(Oe(this.destroy$)).subscribe(e=>{this.role=e})}findOutletRegisterById(e){let t=this.registers.find(i=>i.ID===e);return t||new zt}initModalConfig(){this.modalConfig.hideFooter=!0,this.modalConfig.hideScrollbar=!0,this.modalConfig.title="Choose an outlet"}ngOnDestroy(){this.destroy$.next(!0),this.destroy$.complete()}onClose(){this._dialogRef.close()}select(e){if(this.AppConfigJSON.ModuleShift.Closure.Enabled)if(this.selectedRegister.ID!=null&&this.selectedRegister.Open&&e.CashierID==null)confirm("You already have an active register with "+this.selectedRegister.Name+`!
2
2
  Do you want to end your session?`)&&(this.onClose(),this.router.navigate(["menu/Shift/Main/My_Shift"],{queryParams:{RegisterID:e.ID}}));else if(!e.Open||this.selectedRegister.ID==e.ID)this.selectedRegister=e,this.onSubmitSelectedRegister();else{if(this.role.SellEditor==!1){alert("You cannot end shift for Register "+e.Name+" - Unauthorized Access");return}alert("This Register has already active register, Are you sure you want to end this register?"),this.onClose(),this.router.navigate(["/menu/Shift/Main/My_Shift"],{queryParams:{RegisterID:e.ID}})}else this.selectedRegister=e,this.onSubmitSelectedRegister()}onSubmitSelectedRegister(){if(this.selectedRegister.ID==null){alert("Please select a register first!");return}this._outletService.pushNewRegister(this.selectedRegister),this._dialogRef.close({selectedRegister:this.selectedRegister,openStartingCashDialog:this.selectedRegister.ID!=this.originalSelectedRegister?.ID})}closeRegister(e){let t=this.selectedRegister.ID;if(this.role.SellEditor==!1){alert("You cannot end shift for Register "+e.Name+" - Unauthorized Access");return}t==e.ID?this.router.navigate(["/menu/Shift/Main/My_Shift"]):this.router.navigate(["/menu/Shift/Main/My_Shift"],{queryParams:{RegisterID:e.ID}}),this.onClose()}static \u0275fac=function(t){return new(t||n)(S(K),S(te),S(z),S(Se),S(kn))};static \u0275cmp=E({type:n,selectors:[["pos-modal-register"]],standalone:!1,decls:11,vars:7,consts:[[3,"onClose","config"],[1,"ms-0","mb-8","search-container",3,"hidden"],[1,"input-group","mb-3","rounded-start-1"],[1,"input-group-text","txtFilter","rounded-end-0"],["aria-hidden","true",1,"fa","fa-magnifying-glass"],["data-cy","SearchOutlet","type","text","placeholder","Filter by Name","aria-label","Search",1,"txtFilter","form-control","border-start-0","rounded-1","rounded-start-0",3,"ngModelChange","ngModel"],[1,"container","custom-scroll"],[1,"row",2,"width","600px"],["class","col-4","data-cy","registers",4,"ngFor","ngForOf"],["data-cy","registers",1,"col-4"],[1,"card","border-0",3,"ngClass"],[1,"card-body","p-0",3,"ngClass"],[1,"card-title","mb-0",3,"click","ngClass"],[1,"fa-solid","fa-house","pe-1","fs-6"],["class","fa fa-xmark-circle fa-lg position-absolute","style","text-shadow: 0 1px 0 #afafaf; right: 5px; top: 16px",3,"click",4,"ngIf"],[1,"card-text","px-0","py-2",3,"click","ngSwitch"],[4,"ngSwitchCase"],[1,"fa","fa-xmark-circle","fa-lg","position-absolute",2,"text-shadow","0 1px 0 #afafaf","right","5px","top","16px",3,"click"],[1,"idle"],[1,"cashier"],["aria-hidden","true",1,"fa","fa-user","pe-2"],[1,"d-inline"],[1,"open"],["aria-hidden","true",1,"fa-regular","fa-clock","pe-2"]],template:function(t,i){t&1&&(a(0,"modal-material",0),b("onClose",function(){return i.onClose()}),a(1,"content")(2,"div",1)(3,"div",2)(4,"span",3),_(5,"i",4),s(),a(6,"input",5),F("ngModelChange",function(r){return N(i.searchInput,r)||(i.searchInput=r),r}),s()()(),a(7,"div",6)(8,"div",7),f(9,Xo,12,15,"div",8),y(10,"FilterByName"),s()()()()),t&2&&(p("config",i.modalConfig),l(2),p("hidden",i.registers.length<=6),l(4),V("ngModel",i.searchInput),l(3),p("ngForOf",ie(10,4,i.registers,i.searchInput)))},dependencies:[Fe,ve,re,Tn,Rn,Me,_e,Ie,X,gi,ro],styles:[".text-warning[_ngcontent-%COMP%]{color:var(--bs-warning)!important}.bg-light-gray[_ngcontent-%COMP%]{background-color:var(--bs-light-gray);--bs-bg-opacity: .15 !important}.bg-gradient-danger[_ngcontent-%COMP%]{background:repeating-linear-gradient(-60deg,#f8d7da,#f8d7da 15px,#f5c6cb 15px 30px)!important}.bg-gradient-success[_ngcontent-%COMP%]{background:repeating-linear-gradient(-60deg,#beeebb,#beeebb 15px,#afeba8 15px 30px)!important}.bg-gradient-warning[_ngcontent-%COMP%]{background:repeating-linear-gradient(-60deg,#fcf3cf,#fcf3cf 15px,#f9e79f 15px 30px)!important}.bg-light-orange[_ngcontent-%COMP%]{background-color:var(--bs-light-orange);--bs-bg-opacity: .15 !important}.text-danger[_ngcontent-%COMP%]{color:#fb404b!important}.text-dark[_ngcontent-%COMP%]{color:#5e5e5e!important}.text-success[_ngcontent-%COMP%]{color:#87cb16!important}.text-black[_ngcontent-%COMP%]{color:#000!important}.text-white[_ngcontent-%COMP%]{color:var(--bs-white)!important}.btn-light-blue[_ngcontent-%COMP%]{color:#212529;background-color:#dfeffc!important;border-color:#dfeffc}.btn-light-blue[_ngcontent-%COMP%]:hover{color:#212529;background-color:#bcdef9;border-color:#b0d8f8}.btn-light-blue[_ngcontent-%COMP%]:focus, .btn-light-blue.focus[_ngcontent-%COMP%]{color:#212529;background-color:#bcdef9;border-color:#b0d8f8;box-shadow:0 0 0 .2rem #c3d1dc80}.btn-light-blue.disabled[_ngcontent-%COMP%], .btn-light-blue[_ngcontent-%COMP%]:disabled{color:#212529;background-color:#dfeffc;border-color:#dfeffc}.btn-light-blue[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active, .btn-light-blue[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active, .show[_ngcontent-%COMP%] > .btn-light-blue.dropdown-toggle[_ngcontent-%COMP%]{color:#212529;background-color:#b0d8f8;border-color:#a5d2f7}.btn-light-blue[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active:focus, .btn-light-blue[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active:focus, .show[_ngcontent-%COMP%] > .btn-light-blue.dropdown-toggle[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem #c3d1dc80}.btn-light-danger[_ngcontent-%COMP%]{color:#212529;background-color:#f8d7da!important;border-color:#f8d7da}.btn-light-danger[_ngcontent-%COMP%]:hover{color:#212529;background-color:#f5c2c7;border-color:#f1aeb5}.btn-light-danger[_ngcontent-%COMP%]:focus, .btn-light-danger.focus[_ngcontent-%COMP%]{color:#212529;background-color:#f5c2c7;border-color:#f1aeb5;box-shadow:0 0 0 .2rem #dc354540}.btn-light-danger.disabled[_ngcontent-%COMP%], .btn-light-danger[_ngcontent-%COMP%]:disabled{color:#212529;background-color:#f8d7da;border-color:#f8d7da}.btn-light-danger[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active, .btn-light-danger[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active, .show[_ngcontent-%COMP%] > .btn-light-danger.dropdown-toggle[_ngcontent-%COMP%]{color:#212529;background-color:#f1aeb5;border-color:#ea868f}.btn-light-danger[_ngcontent-%COMP%]:not(:disabled):not(.disabled):active:focus, .btn-light-danger[_ngcontent-%COMP%]:not(:disabled):not(.disabled).active:focus, .show[_ngcontent-%COMP%] > .btn-light-danger.dropdown-toggle[_ngcontent-%COMP%]:focus{box-shadow:0 0 0 .2rem #dc354540}.search-container[_ngcontent-%COMP%]{transition:all .3s ease;width:97%}.search-container[_ngcontent-%COMP%] .input-group[_ngcontent-%COMP%]{position:relative;transition:all .3s ease;height:2.3rem}.search-container[_ngcontent-%COMP%] .input-group[_ngcontent-%COMP%]:hover, .search-container[_ngcontent-%COMP%] .input-group[_ngcontent-%COMP%]:focus-within{box-shadow:0 0 0 2px #89b03e4d,0 0 8px 4px #89b03e33;border-radius:4px}.search-container[_ngcontent-%COMP%] .input-group[_ngcontent-%COMP%] .txtFilter.form-control[_ngcontent-%COMP%]{transition:all .3s ease;border-left:none!important}.search-container[_ngcontent-%COMP%] .input-group[_ngcontent-%COMP%] .txtFilter.form-control[_ngcontent-%COMP%]:focus{box-shadow:none!important;border-color:#ced4da!important}.search-container[_ngcontent-%COMP%] .input-group[_ngcontent-%COMP%] .input-group-text[_ngcontent-%COMP%]{transition:all .3s ease;background-color:#fff;border-right:none!important}.search-container[_ngcontent-%COMP%] .input-group[_ngcontent-%COMP%]:hover .input-group-text[_ngcontent-%COMP%], .search-container[_ngcontent-%COMP%] .input-group[_ngcontent-%COMP%]:focus-within .input-group-text[_ngcontent-%COMP%]{background-color:#89b03e1a;border-color:#84cc16!important}.search-container[_ngcontent-%COMP%] .input-group[_ngcontent-%COMP%] .fa-magnifying-glass[_ngcontent-%COMP%]{transition:all .3s ease}.search-container[_ngcontent-%COMP%] .input-group[_ngcontent-%COMP%]:hover .fa-magnifying-glass[_ngcontent-%COMP%], .search-container[_ngcontent-%COMP%] .input-group[_ngcontent-%COMP%]:focus-within .fa-magnifying-glass[_ngcontent-%COMP%]{color:#84cc16!important}.search-container[_ngcontent-%COMP%] .input-group[_ngcontent-%COMP%]:focus-within{box-shadow:0 0 0 2px #89b03e66,0 0 12px 6px #89b03e40!important}.custom-scroll[_ngcontent-%COMP%]::-webkit-scrollbar{width:6px}.custom-scroll[_ngcontent-%COMP%]::-webkit-scrollbar-track{background:#f1f1f1;border-radius:3px}.custom-scroll[_ngcontent-%COMP%]::-webkit-scrollbar-thumb{background:#89b03e;border-radius:3px}.custom-scroll[_ngcontent-%COMP%]::-webkit-scrollbar-thumb:hover{background:#7a9e37}.container[_ngcontent-%COMP%]{overflow-y:auto;overflow-x:hidden;max-height:260px;min-height:150px}.col-4[_ngcontent-%COMP%]{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap!important}.col-4[_ngcontent-%COMP%] .card[_ngcontent-%COMP%]{width:180px;min-height:95px;margin-right:17px;margin-bottom:17px;position:relative}.col-4[_ngcontent-%COMP%] .card[_ngcontent-%COMP%] > .card-body[_ngcontent-%COMP%]{display:block;outline:0;border:1px solid #B1AAAA;border-radius:5px;cursor:pointer}.col-4[_ngcontent-%COMP%] .card[_ngcontent-%COMP%] > .card-body[_ngcontent-%COMP%] h5[_ngcontent-%COMP%]{height:30px;border-radius:4px;padding:5px 10px;color:#fff;background:#b1aaaa;overflow:hidden}.col-4[_ngcontent-%COMP%] .card[_ngcontent-%COMP%] > .card-body[_ngcontent-%COMP%] h5[_ngcontent-%COMP%] i[_ngcontent-%COMP%]{margin-right:5px}.col-4[_ngcontent-%COMP%] .card[_ngcontent-%COMP%] > .card-body[_ngcontent-%COMP%]:hover, .col-4[_ngcontent-%COMP%] .card[_ngcontent-%COMP%] > .card-body.active[_ngcontent-%COMP%], .col-4[_ngcontent-%COMP%] .card[_ngcontent-%COMP%] > .card-body.vacant[_ngcontent-%COMP%]{background:#ffffe1;border:1px solid #89b03e}.col-4[_ngcontent-%COMP%] .card[_ngcontent-%COMP%] > .card-body[_ngcontent-%COMP%]:hover > h5[_ngcontent-%COMP%], .col-4[_ngcontent-%COMP%] .card[_ngcontent-%COMP%] > .card-body.active[_ngcontent-%COMP%] > h5[_ngcontent-%COMP%], .col-4[_ngcontent-%COMP%] .card[_ngcontent-%COMP%] > .card-body.vacant[_ngcontent-%COMP%] > h5[_ngcontent-%COMP%]{background:#89b03e}.col-4[_ngcontent-%COMP%] .card[_ngcontent-%COMP%] > .card-body.occupied[_ngcontent-%COMP%], .col-4[_ngcontent-%COMP%] .card[_ngcontent-%COMP%] > .card-body.occupied[_ngcontent-%COMP%]:hover{border:1px solid #c9302c}.col-4[_ngcontent-%COMP%] .card[_ngcontent-%COMP%] > .card-body.occupied[_ngcontent-%COMP%] > h6[_ngcontent-%COMP%], .col-4[_ngcontent-%COMP%] .card[_ngcontent-%COMP%] > .card-body.occupied[_ngcontent-%COMP%]:hover > h6[_ngcontent-%COMP%]{background:#c9302c!important}.col-4[_ngcontent-%COMP%] .card[_ngcontent-%COMP%] > .card-body.occupied[_ngcontent-%COMP%] span.alias[_ngcontent-%COMP%]{background:#c9302c}.col-4[_ngcontent-%COMP%] .card[_ngcontent-%COMP%] > .card-body.occupied[_ngcontent-%COMP%]:hover{background:#fff}.col-4[_ngcontent-%COMP%] .card[_ngcontent-%COMP%] > .card-body.preparing[_ngcontent-%COMP%]{border:1px solid #f6a828}.col-4[_ngcontent-%COMP%] .card[_ngcontent-%COMP%] > .card-body.preparing[_ngcontent-%COMP%] > h6[_ngcontent-%COMP%]{background:#f6a828!important}.col-4[_ngcontent-%COMP%] .card[_ngcontent-%COMP%] > .card-body.preparing[_ngcontent-%COMP%]:hover{border:1px solid #f6a828;background:#fff}.col-4[_ngcontent-%COMP%] .card[_ngcontent-%COMP%] > .card-body.preparing[_ngcontent-%COMP%]:hover > strong[_ngcontent-%COMP%]{background:#f6a828!important}.col-4[_ngcontent-%COMP%] .card[_ngcontent-%COMP%] > .card-body.preparing[_ngcontent-%COMP%] span.alias[_ngcontent-%COMP%]{background:#f6a828}.col-4[_ngcontent-%COMP%] .card[_ngcontent-%COMP%] > .card-body.preparing[_ngcontent-%COMP%] div[_ngcontent-%COMP%] > span[_ngcontent-%COMP%]{font-size:.75rem!important}.col-4[_ngcontent-%COMP%] .card[_ngcontent-%COMP%] > .card-body[_ngcontent-%COMP%] div[_ngcontent-%COMP%]{height:80px;padding:15px 10px;position:relative}.col-4[_ngcontent-%COMP%] .card[_ngcontent-%COMP%] > .card-body[_ngcontent-%COMP%] div[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{display:block;font-weight:400;font-size:.875rem;width:100%;margin-bottom:5px}.col-4[_ngcontent-%COMP%] .card[_ngcontent-%COMP%] > .card-body[_ngcontent-%COMP%] div[_ngcontent-%COMP%] span[_ngcontent-%COMP%]:first-child{margin-top:-10px}.col-4[_ngcontent-%COMP%] .card[_ngcontent-%COMP%] > .card-body[_ngcontent-%COMP%] div[_ngcontent-%COMP%] span[_ngcontent-%COMP%]:last-child{margin-bottom:0}.col-4[_ngcontent-%COMP%] .card[_ngcontent-%COMP%] > .card-body[_ngcontent-%COMP%] div[_ngcontent-%COMP%] span.alias[_ngcontent-%COMP%]{text-align:center;position:absolute;bottom:0;right:0;width:auto;background-color:#b1aaaa;border-radius:3px;padding:2px 5px;color:#fff;display:none!important}.col-4[_ngcontent-%COMP%] .card[_ngcontent-%COMP%] > .card-body[_ngcontent-%COMP%] div[_ngcontent-%COMP%] span.idle[_ngcontent-%COMP%]{display:block;font-size:1.25rem;text-align:center}.col-4[_ngcontent-%COMP%] .card[_ngcontent-%COMP%] > span[_ngcontent-%COMP%]{position:absolute;width:27px;height:28px;cursor:pointer;top:5px}.col-4[_ngcontent-%COMP%] .card[_ngcontent-%COMP%] > span[_ngcontent-%COMP%] i[_ngcontent-%COMP%]{color:#000}.col-4[_ngcontent-%COMP%] .card[_ngcontent-%COMP%] > span[_ngcontent-%COMP%]:last-of-type{right:-5px}.col-4[_ngcontent-%COMP%] .card[_ngcontent-%COMP%] > span[_ngcontent-%COMP%]:nth-last-of-type(2){right:15px}.col-4[_ngcontent-%COMP%] .card[_ngcontent-%COMP%] input[type=checkbox][_ngcontent-%COMP%]{bottom:20px;right:5px;position:absolute}.col-4[_ngcontent-%COMP%] .duration[_ngcontent-%COMP%] > span[_ngcontent-%COMP%]{border:1px solid!important;position:absolute;bottom:-3px;left:58px;background:#fff;border-radius:5px}"]})};var er=["inputCash"],Di=class n{constructor(e,t){this.dialogRef=e;this.data=t;this.generateModalTitle$.subscribe()}registerService=x(te);loadPOSService=x(z);register=this.registerService.Data;username=this.loadPOSService?.Data?.UserName;amount=q(0);config=new Z;currentRegisterName;generateModalTitle$=this.registerService.Data$.pipe(ae(e=>h.IsNotEmpty(e)),se(()=>{let e=this.registerService.getOutletRegister(),t=e?.Name?.length>18?`${e?.Name?.substring(0,18)}...`:e?.Name;this.config.title="Open Shift",this.currentRegisterName=t}),oe());today=new Date;inputCashEl;ngOnInit(){this.config.customWidth="350px",this.config.hideCancel=!0}ngAfterViewInit(){this.inputCashEl?.nativeElement?.focus()}onOk(){this.dialogRef.close({amount:this.amount()})}static \u0275fac=function(t){return new(t||n)(S(K),S(pe))};static \u0275cmp=E({type:n,selectors:[["POS-modal-opening-cash"]],viewQuery:function(t,i){if(t&1&&Ft(er,5),t&2){let o;Lt(o=Bt())&&(i.inputCashEl=o.first)}},standalone:!1,decls:25,vars:8,consts:[["inputCash",""],[3,"onOk","onCancel","onClose","config"],[1,"table","fs-5","text"],[1,"py-3"],[1,"text-end","pe-3"],[1,"py-4"],[1,"text-end"],["data-cy","InputCash","autoNum","",1,"border","form-control-lg","text-end","w-100",3,"ngModelChange","ngModel"]],template:function(t,i){if(t&1){let o=T();a(0,"modal-material",1),b("onOk",function(){return C(o),v(i.onOk())})("onCancel",function(){return C(o),v(i.dialogRef.close())})("onClose",function(){return C(o),v(i.dialogRef.close())}),a(1,"content")(2,"table",2)(3,"tr")(4,"td",3),m(5,"Outlet Register"),s(),a(6,"td",4),m(7),s()(),a(8,"tr")(9,"td",5),m(10,"Current User"),s(),a(11,"td",4),m(12),s()(),a(13,"tr")(14,"td",5),m(15,"Starting Time"),s(),a(16,"td",4),m(17),y(18,"date"),s()(),a(19,"tr")(20,"td",3),m(21,"Starting Cash"),s(),a(22,"td",6)(23,"input",7,0),F("ngModelChange",function(c){return C(o),N(i.amount,c)||(i.amount=c),v(c)}),s()()()()()()}t&2&&(p("config",i.config),l(7),D(i.currentRegisterName),l(5),D(i.username),l(5),D(ie(18,5,i.today,"EEEE, HH:mm")),l(6),V("ngModel",i.amount))},dependencies:[Me,_e,Ie,X,bt,ze],styles:[".table-title-width[_ngcontent-%COMP%]{width:120px}"]})};var Mi=class{OrderNumberElement;InvoiceNumberElement;NewOrderID};var Dt=class n{constructor(e,t,i){this._httpService=e;this._onlineStatusService=t;this._localDataService=i;this._onlineStatusService.getOnlineStatus$().subscribe(o=>{this.isOnline=o})}isOnline;GenerateNumber(e,t){if(this.isOnline)return this._httpService.get(H.GenerateNumber,[{key:"EntityID",value:e},{key:"TypeID",value:1}]);{let i=new Mi;return h.IsNotEmpty(t.NumberElement)&&(t.NumberElement.Seed+=1),h.IsNotEmpty(t.InvoiceNumberElement)&&(t.InvoiceNumberElement.Seed+=1),i.InvoiceNumberElement=t.InvoiceNumberElement,i.OrderNumberElement=t.NumberElement,i.NewOrderID=h.Guid_NewGuid(),Ee(i)}}findRegisterById(e){return new Promise(t=>{this._localDataService.isConfigFromServer().subscribe(i=>{i?this._httpService.get(H.GetRegisterInfo,[{key:"RegisterID",value:e}]).subscribe(o=>{t(o)}):this._localDataService.findRegisterByID(e).subscribe(o=>{t(o)})})})}recordOpeningCash(e){return ei(this._httpService.post("/API/POS/RecordOpeningCash",e))}static \u0275fac=function(t){return new(t||n)(g(ye),g(de),g(be))};static \u0275prov=I({token:n,factory:n.\u0275fac,providedIn:"root"})};var te=class n{constructor(e,t,i,o,r,c){this._signalRClientService=e;this._matDialog=t;this._posHttpResponseService=i;this._CoreHttpService=o;this._toastrService=r;this._roleService=c}datePipe=x(ze);_Data=new Ce(null);Data$=this._Data.asObservable().pipe(ae(e=>e!==null),ke());get Data(){return this._Data.value}getSalesname(e){return this.Data&&this.Data.ListSales?this._Data.value.ListSales.find(t=>t.ID==e)?.Name:""}setActiveRegisterFromOptions(e,t){let o=this._posHttpResponseService.Data.AppConfigJSON.ModuleShift.Closure.Enabled;if(e.length>1){let r=e.find(c=>c.LoginID==t);if(r)this.pushNewRegister(r);else{let c=this.getOutletRegisterFromLocalStorage(),u=this.Data?.RegisterID?this.Data.RegisterID:c?.ID;e.some(A=>A.ID==u)?o?this.openChooseRegisterModal():this.initRegisterFromLocalStorage():this.openChooseRegisterModal()}}e.length==1&&(this.pushNewRegister(e[0]),h.IsEmpty(e[0].LoginID)&&h.IsEmpty(e[0].CashierID)&&this.openOpeningCashModal(e[0].ID)),e.length==0&&this._toastrService.warning("You do not have access to any OUTLET","Warning")}openChooseRegisterModal(){this._matDialog.open(Oi,{id:"registerModal",disableClose:!0}).afterClosed().pipe(ae(e=>h.IsNotEmpty(e?.selectedRegister))).subscribe(e=>{e.selectedRegister&&this.openOpeningCashModal(e.selectedRegister.ID)})}openOpeningCashModal(e){this._posHttpResponseService.Data.AppConfigJSON.ModuleShift.Closure.Enabled&&this._matDialog.open(Di,{disableClose:!0}).afterClosed().pipe(ae(o=>h.IsNotEmpty(o))).subscribe(o=>{let r={RegisterID:e,OpAmount:o.amount};this._CoreHttpService.recordOpeningCash(r).then(()=>{this.updateRegisterList(r)})})}updateRegisterList(e){let i=this._posHttpResponseService.Data.Registers.map(r=>r.ID==e.RegisterID?this.mapRegisterAsActiveRegister(r,e):r),o=this._posHttpResponseService.Data;o.Registers=i,this._posHttpResponseService.pushNewValue(o)}mapRegisterAsActiveRegister(e,t){let i=localStorage.getItem("AccountInfo");if(i){let r=JSON.parse(i);e.LoginID=r.UserName}e.OpeningCash=t.OpAmount,e.Open=!0,e.State="Open";let o=this.datePipe.transform(new Date,"dd MM yyyy HH:mm");return e.StartDisplay=o,e}initRegisterFromLocalStorage(){if(this._roleService.Data.DeleteItem==!1){let t=this.getOutletRegisterFromLocalStorage();t&&this.pushNewRegister(t)}}pushNewRegister(e){let t=this._Data.value,i=t?t.RegisterID:null;i!=e.ID&&this._CoreHttpService.findRegisterById(e.ID).then(o=>{o.RegisterCode=e.Code,o.DefaultPrintTemplate=o.PrintTemplate,this._signalRClientService.SubscribeGroup(o.RegisterID,i),this.saveOutletRegisterToLocalStorage(e),this.pushNewValue(o)})}getOutletRegister(){let e=this.Data.RegisterID;return this._posHttpResponseService.Data.Registers.find(o=>o.ID==e)}pushNewValue(e){this._Data.next(e)}saveOutletRegisterToLocalStorage(e){if(this._roleService.Data.DeleteItem==!1){let i=JSON.stringify(e);localStorage.setItem("outlet_register",i)}}getOutletRegisterFromLocalStorage(){let e=this._roleService.Data.DeleteItem,t=localStorage.getItem("outlet_register"),i=null;return t&&(e?localStorage.removeItem("outlet_register"):i=JSON.parse(t)),i}findOutletRegisterById(e){return this._posHttpResponseService.Data.Registers.find(o=>o.ID===e)}static \u0275fac=function(t){return new(t||n)(g(it),g(xe),g(z),g(Dt),g(B),g(Se))};static \u0275prov=I({token:n,factory:n.\u0275fac,providedIn:"root"})};function tr(n,e){if(n&1&&(a(0,"span",5),m(1),y(2,"number"),s()),n&2){let t=d(3);l(),O("-",M(2,1,t.coupon.Amount),"%")}}function ir(n,e){if(n&1&&(a(0,"span",5),m(1),y(2,"number"),s()),n&2){let t=d(3);l(),O(" -",M(2,1,t.coupon.Amount)," ")}}function nr(n,e){if(n&1){let t=T();a(0,"button",9),b("click",function(){C(t);let o=d().$implicit,r=d(2);return v(r.onRemoveCouponDiscount(o))}),m(1," Remove "),s()}}function or(n,e){if(n&1){let t=T();a(0,"button",10),b("click",function(){C(t);let o=d().$implicit,r=d(2);return v(r.onApplyCouponDiscount(o))}),m(1," Apply "),s()}if(n&2){let t=d(3);p("disabled",t.hasAppliedCouponDiscount())}}function rr(n,e){if(n&1&&(a(0,"tr")(1,"td"),m(2),s(),a(3,"td"),m(4),s(),a(5,"td",4),m(6),y(7,"number"),s(),a(8,"td",4),f(9,tr,3,3,"span",5)(10,ir,3,3,"span",5),s(),a(11,"td",6),f(12,nr,2,0,"button",7)(13,or,2,1,"button",8),s()()),n&2){let t=e.$implicit,i=d(2);l(2),D(t==null||t.Variant==null?null:t.Variant.Name),l(2),D(t==null||t.Variant==null?null:t.Variant.Code),l(2),D(M(7,5,t.UnitPrice)),l(3),w((i.coupon==null||i.coupon.Requirement==null?null:i.coupon.Requirement.Type)==i.couponType.DiscountPercentage?9:10),l(3),w((t==null?null:t.CouponDiscount)>0?12:13)}}function ar(n,e){if(n&1&&ft(0,rr,14,7,"tr",null,gt),n&2){let t=d();ht(t.eligibleItems())}}function sr(n,e){n&1&&(a(0,"tr")(1,"td",11),_(2,"app-empty-state",12),s()())}var Ii=class n{constructor(e){this.data=e;this.coupon=this.data.coupon,this.initModalConfig(),this.initEligibleItems()}dialogRef=x(K);config;eligibleItems=q([]);coupon;couponType=Qt;hasAppliedCouponDiscount=q(!1);initModalConfig(){this.config=new Z,this.config.title="Choose Item to Apply Discount",this.config.hideFooter=!0}initEligibleItems(){let e=this.data.coupon?.ApplyToProduct.map(t=>t.ID);e&&(this.eligibleItems.update(()=>this.data.cartItems.filter(i=>e.includes(i.VariantID))),this.hasAppliedCouponDiscount.update(()=>this.eligibleItems().some(t=>t.CouponDiscount>0)))}onApplyCouponDiscount(e){let t=[e];this.hasAppliedCouponDiscount.update(()=>!0),this.dialogRef.close(t)}onRemoveCouponDiscount(e){this.eligibleItems.update(t=>{let i=t.findIndex(o=>o.VariantID===e.VariantID);return i>-1&&(t[i].Discount=0,t[i].CouponDiscount=0),t}),this.hasAppliedCouponDiscount.update(()=>!1)}onClose(){this.dialogRef.close()}static \u0275fac=function(t){return new(t||n)(S(pe))};static \u0275cmp=E({type:n,selectors:[["app-modal-coupon-selected-item"]],decls:17,vars:2,consts:[[3,"onCancel","onClose","config"],[1,"table","table-bordered"],[1,"thead-light"],["scope","col"],[1,"text-end"],[1,"text-danger"],[1,"text-center"],[1,"btn","btn-sm","btn-danger"],[1,"btn","btn-sm","btn-success",3,"disabled"],[1,"btn","btn-sm","btn-danger",3,"click"],[1,"btn","btn-sm","btn-success",3,"click","disabled"],["colspan","5"],["title","No eligible products","message","No products in the cart qualify for coupon use"]],template:function(t,i){t&1&&(a(0,"modal-material",0),b("onCancel",function(){return i.onClose()})("onClose",function(){return i.onClose()}),a(1,"content")(2,"table",1)(3,"thead",2)(4,"tr")(5,"th",3),m(6,"Name"),s(),a(7,"th",3),m(8,"Code"),s(),a(9,"th",3),m(10,"Price"),s(),a(11,"th",3),m(12,"Discount"),s(),_(13,"th",3),s()(),a(14,"tbody"),f(15,ar,2,0)(16,sr,3,0,"tr"),s()()()()),t&2&&(p("config",i.config),l(15),w(i.eligibleItems().length!==0?15:16))},dependencies:[me,$,yt,X,co],encapsulation:2})};var ot=class{ModuleSell;ApplicationLoyalty;ApplicationMath;CoreDefaults;ModuleDelivery;ApplicationParkAndRetrieve;ApplicationRegisterClosure;PaymentConfigGopay;PaymentConfigLink;PrintConfigInvoice;CorePrint;PaymentConfigEmpatKali;ApplicationSettings;PrintConfigGeneral;ModuleProducts;ModuleContact;ApplicationTransactionNumbering;ModuleOrders;ModuleShift;ModuleBuy;ModuleAdjustment;TadaCouponVisible;CouponRedemptionType;ProviderOption};var ne=class n{constructor(e,t,i,o){this._orderDataService=e;this._posService=t;this.POSMATH=i;this.decimalPipe=o;this._orderDataService.Data$.pipe(Y(r=>this._posService.Data$.pipe(J(c=>({appConfig:c.AppConfigJSON,salesOrder:r}))))).subscribe(r=>{this.salesOrderData=r.salesOrder,this.appConfigJSON=r.appConfig,this.calculateDiscountAmount(),this.pushNewValue(this.grandTotal)})}_Data=new Ce(0);Data$=this._Data.asObservable().pipe(ke());tax=new fo;discountAfterTax=0;currencySymbol="Rp";get Data(){return this._Data.value}salesOrderData=new W;appConfigJSON=new ot;pushNewValue(e){this._Data.next(e)}get grandTotal(){let e=this.TotalAfterSurcharge;return isNaN(e)?0:e}setDecimalDigit(e){let t=this.decimalPipe.transform(e,"1.0-4");return e=parseFloat(t.split(",").join("")),e}get TotalAfterTax(){let e=this.TaxAmount,t=this.TotalBeforeTax+e;return t=this.POSMATH.Round(t,this.appConfigJSON.ApplicationMath.RoundingDigit.DecimalPlaceValue,this.appConfigJSON.ApplicationMath.RoundingDigit.RoundAlgorithm),t}get TotalBeforeTax(){let e=this.tax?.CalculationTypeID===1,t=0;return e?t=this.DiscountTotal-this.TaxAmount:t=this.DiscountTotal,t}get TotalAfterSurcharge(){let e=this.TotalAfterTax+this.SurchargeAmount;return this.POSMATH.Round(e,this.appConfigJSON.ApplicationMath.RoundingDigit.DecimalPlaceValue,this.appConfigJSON.ApplicationMath.RoundingDigit.RoundAlgorithm)}get TotalAfterDiscountTaxable(){return this.GrossTotalTaxable-this.DiscountTotal}get TaxAmount(){if(this.tax!=null){let e=0,t=this.appConfigJSON.ApplicationMath.RoundingTaxDigit.DecimalPlaceValue,i=this.appConfigJSON.ApplicationMath.RoundingTaxDigit.RoundAlgorithm,o=this.GrossTotalTaxable;return this.tax.CalculationTypeID==1?e=this.tax.Rate/(100+this.tax.Rate)*o:e=this.tax.Rate/100*o,e=this.POSMATH.Round(e,t,i),e}else return 0}get SurchargeAmount(){return this.TotalAfterTax*this.salesOrderData.Invoice.SurchargePcg/100}get Discount1Amount(){return this.GrossTotal*this.salesOrderData.Order.Discount/100}get AfterDiscount1Amount(){return this.GrossTotal-this.Discount1Amount}get Discount2Amount(){return this.AfterDiscount1Amount*this.salesOrderData.Order.Discount2/100}get AfterDiscount2Amount(){return this.AfterDiscount1Amount-this.Discount2Amount}get DiscountTotal(){return this.AfterDiscount2Amount-this.salesOrderData.Order.DiscountAmount}calculateDiscountAmount(){let e=this.salesOrderData.Order.DiscountAmount,t=0;this.AfterDiscount2Amount>=0&&e>0&&e>this.AfterDiscount2Amount&&(t=this.AfterDiscount2Amount),t!==0&&t<=e&&this.GrossTotal!==0&&(e=t),this.salesOrderData.Order.DiscountAmount=e}get GrossTotal(){return this.sum(this.salesOrderData.CartItems,"Total")}get GrossTotalTaxable(){let e=this.salesOrderData.CartItems.filter(i=>i.Taxable),t=this.sum(e,"Total");if(e.length!==0){let i=this.calculateDiscountTaxableItem(e);t=t*(100-this.salesOrderData.Order.Discount)/100,t=t*(100-this.salesOrderData.Order.Discount2)/100,t=t-i}return t}calculateDiscountTaxableItem(e){let t=this.GrossTotal,i=this.salesOrderData.Order.DiscountAmount,o=0,r=0,c=0,u=0;for(let P of e)o=P.getItemAfterDiscount/t,r=o*i,u=r*P.Quantity,c+=u;return c}get GrossTotalNonTaxable(){let e=this.salesOrderData.CartItems.filter(i=>i.Taxable==!1),t=this.sum(e,"Total");return t=t*(100-this.salesOrderData.Order.Discount)/100,t=t*(100-this.salesOrderData.Order.Discount2)/100,t=t-this.salesOrderData.Order.DiscountAmount,t}sum(e,t){let i=e.reduce((o,r)=>o+r[t],0);return i=this.setDecimalDigit(i),i}GetPointOnlyAmount(){let e=this.salesOrderData.CartItems.filter(t=>t.Variant.PaymentTypeID==2);return this.GetAmountByCart(e)}GetCashOnlyAmount(){let e=this.salesOrderData.CartItems.filter(t=>t.Variant.PaymentTypeID==1);return this.GetAmountByCart(e)}GetCashAndPointAmountCart(){let e=this.salesOrderData.CartItems.filter(t=>t.Variant.PaymentTypeID!=1);return this.GetAmountByCart(e)}GetAmountByCart(e){let t=this.sum(e,"Total");return t=t*(100-this.salesOrderData.Order.Discount)/100,t=t*(100-this.salesOrderData.Order.Discount2)/100,t}calculateGrossTotal(e){return this.sum(e,"Total")}static \u0275fac=function(t){return new(t||n)(g(k),g(z),g(ho),g($))};static \u0275prov=I({token:n,factory:n.\u0275fac,providedIn:"root"})};var xi=class{Code;Provider;EntityID;Customer;ShoppingCart};var Mt=class n{salesOrderService=x(k);registerService=x(te);customerService=x(Te);orderCalculator=x(ne);generateRedeemCouponDto(e,t){let i=new xi,o=this.registerService.Data?.EntityID;return i.Code=e,i.Provider=t,i.ShoppingCart={Amount:this.orderCalculator.Data,Items:this.generateItems()},i.EntityID=o,i.Customer=this.generateCustomer(t),i}generateItems(){return this.salesOrderService.Data.CartItems.map(i=>({Price:i.Price,Quantity:i.Quantity,VariantID:i.VariantID,Code:i?.Variant?.Code}))}generateCustomer(e){let t=this.customerService.Data,i=this.salesOrderService?.Data?.Order?.CustomerID,o=null;return h.IsNotEmpty(i)&&(o={Phone:t.Mobile,Email:t.Email},e==="Internal"&&(o=Kt({ID:i},o))),o}static \u0275fac=function(t){return new(t||n)};static \u0275prov=I({token:n,factory:n.\u0275fac,providedIn:"root"})};var It=class n{constructor(e,t,i,o,r,c){this._httpService=e;this._orderDataService=t;this._userRoleService=i;this.toastr=o;this._invoiceCalculatorService=r;this.promotionCouponFactoryService=c;this.subscribeToObservable()}dialog=x(xe);role;originalRoleData;_coupon=q(null);salesOrderBeforePromotion=q(null);isShowToastrInApplyCoupon=q(!1);get coupon(){return this._coupon()}subscribeToObservable(){this._userRoleService.Data$.subscribe(e=>{this.role=e,h.IsEmpty(this.originalRoleData)&&(this.originalRoleData=ce(Qe,e))})}RedeemCoupon(e,t,i=!1){i||(this.isShowToastrInApplyCoupon.set(!0),this.copyOriginalSalesOrder());let o=this.promotionCouponFactoryService.generateRedeemCouponDto(e,"Internal");this._httpService.post(H.ValidateInternalCoupon,o).subscribe({next:r=>{switch(this._orderDataService.Data.Order.PromotionCoupon=e,this._orderDataService.Data.Order.PromotionNote=t,this._orderDataService.Data.Order.CouponType=1,r.Requirement?.Type){case 1:this.HandleDiscountPercentage(r);break;case 2:this.HandleDiscountAmount(r);break;case 3:this.handleCouponReturnAccess(r);break;case 4:this.handleCouponParkedDeletionAccess();break;case 5:this.handleFullAccessCoupon();break;case 6:this.handleDeleteItemCoupon();break}this._coupon.set(r),this.isShowToastrInApplyCoupon.set(!1)},error:r=>{this.removeAppliedCoupon(!1),this.isShowToastrInApplyCoupon.set(!1)}})}setCouponOnEdit(e){this._coupon.set(e),this.generateOriginalSalesOrderOnEdit()}generateOriginalSalesOrderOnEdit(){let e=ce(W,this._orderDataService.Data);e.Order.PromotionCoupon=null,e.Order.PromotionNote=null,e.Order.Discount=0,e.Order.DiscountAmount=0,this.salesOrderBeforePromotion.set(e)}copyOriginalSalesOrder(){let e=ce(W,this._orderDataService.Data);this.salesOrderBeforePromotion.set(e)}HandleDiscountPercentage(e,t=!1){e.Amount>0?e.Requirement?.MaximumDiscount>0?this.applyConfigMaxDiscount(e,t):e.Requirement?.FullPriceProductOnly?this.applyFullPriceDisc(e,t):this.applyDiscountPercentage(e,t):(this.role.Discount=t?this.originalRoleData.Discount:!0,this._userRoleService.pushNewValue(this.role))}applyFullPriceDisc(e,t=!1){let i=this._orderDataService.Data,o=this.filterItemWithDisc(i.CartItems),r=this.filterItemWithCouponDisc(i.CartItems);if(t)r.length>0?(i.CartItems=this.resetItemsDisc(i.CartItems),this._orderDataService.pushNewValue()):this.applyDiscountPercentage(e,t);else if(o.length>0){let c=this.filterItemWithoutDisc(i.CartItems);c.length>0?this.applyConfigItemsScope(e,c).subscribe(u=>{let P=this.applyItemsDisc(u,e);i.CartItems=this.updateCartItems(P,e),this._orderDataService.pushNewValue(i),this.showToastr(e)}):(this.removeAppliedCoupon(!1),this._orderDataService.pushNewValue(),this.toastr.error("No products in the cart qualify for coupon use","Coupon Not Applied"))}else this.applyDiscountPercentage(e,t)}updateCartItems(e,t){let o=this._orderDataService.Data.CartItems.map((r,c)=>{let u=e.find(P=>this.isSameCartItem(P,r));return u||r});return o=this.applyOneOfFirstQuantity(o,t),o}applyOneOfFirstQuantity(e,t){if(t?.Requirement?.RequirementDiscountType==2){let i=e.findIndex(o=>o.CouponDiscount>0);if(e[i]?.Quantity>1){let o=st(Pe,e[i]);o.Quantity=1,o.ID=h.GuidEmpty,e[i].Quantity=e[i].Quantity-1,e[i].CouponDiscount=0,e[i].Discount=0,e[i].DiscountAmount=0,e.push(o)}}return e}filterItemWithDisc(e){return e.filter(i=>i.Discount>0||i.DiscountAmount>0||i.Price!=i?.Variant?.UnitPrice||h.IsNotEmpty(i.PriceBookID)||i.PriceTypeID==2)}filterItemWithoutDisc(e){return e.filter(i=>this.itemConditionFullPriceOnly(i))}filterItemWithCouponDisc(e){return e.filter(i=>i.CouponDiscount>0)}applyDiscountPercentage(e,t=!1){let i=this._orderDataService.Data.Order.CustomerDiscountRate,o=e.Amount;if(t){let r=this._orderDataService.Data;this._orderDataService.Data.Order.Discount=0,r.CartItems=this.resetItemsDisc(r.CartItems),this._orderDataService.pushNewValue(r)}else o>=i?e.ApplyToProduct?.length>0?this.applyDiscountRequiredItems(e):(this._orderDataService.Data.Order.Discount=e.Amount,this._orderDataService.pushNewValue(),this.showToastr(e)):(this.toastr.warning("Member discount is applied because member discount is greater than Coupon Discount","Warning"),this.removeAppliedDiscountOnCustomerChange())}applyDiscountRequiredItems(e){let i=this._orderDataService.Data.CartItems.filter(o=>e.ApplyToProduct.map(r=>r.ID)?.includes(o.VariantID));this.applyConfigItemsScope(e,i).subscribe(o=>{let r=o.map(u=>(u.Discount=e.Amount,u.CouponDiscount=e.Amount,u)),c=this.updateCartItems(r,e);this._orderDataService.Data.CartItems=c,this._orderDataService.pushNewValue(),this.showToastr(e)})}showToastr(e){let t=e?.Requirement?.Notify;h.IsNotEmpty(t)&&this.isShowToastrInApplyCoupon()&&this.toastr.success(t,"Coupon Applied")}applyConfigMaxDiscount(e,t=!1){let i=this._orderDataService.Data.CartItems;e.Requirement?.FullPriceProductOnly&&(i=i.filter(o=>this.itemConditionFullPriceOnly(o))),this.applyConfigItemsScope(e,i,t).subscribe(o=>{this.applyMaxDiscount(e,o,t)})}applyConfigItemsScope(e,t,i=!1){let o=e.Requirement?.RequirementDiscountType;return(o==1||o==2)&&i==!1?this.dialog.open(Ii,{data:{coupon:e,cartItems:t},id:"modal-coupon-selected-item"}).afterClosed().pipe(se(c=>{let A=this._orderDataService.Data.CartItems.some(j=>j.CouponDiscount>0);!c&&!A&&this.removeAppliedDiscountOnCustomerChange()}),ae(c=>!!c)):Ee(t)}applyMaxDiscount(e,t,i=!1){let o=this._invoiceCalculatorService.calculateGrossTotal(t),r=this._orderDataService.Data,c=o*e.Amount/100,u=e.Requirement?.MaximumDiscount,P=t;c>=u?(r.Order.DiscountAmount=i?0:u,P=this.resetItemsDisc(t)):(r.Order.DiscountAmount=0,P=i?this.resetItemsDisc(t):this.applyItemsDisc(t,e)),r.CartItems=this.updateCartItems(P,e),this._orderDataService.pushNewValue(r),i||this.showToastr(e)}resetItemsDisc(e){return this.coupon?.Requirement?.RequirementDiscountType==2?e=this.resetConfigOneOfFirstQuantity(e):e=e.map(t=>(t.CouponDiscount>0&&(t.Discount=0,t.DiscountAmount=0,t.CouponDiscount=0),t)),e}resetConfigOneOfFirstQuantity(e){let t=e.findIndex(i=>i.CouponDiscount>0);if(t!==-1){let i=e.findIndex(o=>o.CouponDiscount==0&&e[t]?.VariantID==o?.VariantID);i!==-1?(e.splice(t,1),e[i].Quantity+=1):(e[t].CouponDiscount=0,e[t].Discount=0,e[t].DiscountAmount=0)}return e}applyItemsDisc(e,t){return t.ApplyToProduct?.length>0?e=this.applyDiscByVariant(e,t):e=e.map(i=>(i.Discount=t.Amount,i.CouponDiscount=t.Amount,i)),e}applyDiscByVariant(e,t){return e=e.map(i=>(t.ApplyToProduct.find(r=>r.ID==i.VariantID)&&this.itemConditionFullPriceOnly(i)&&(i.Discount=t.Amount,i.CouponDiscount=t.Amount),i)),e}itemConditionFullPriceOnly(e){return(e.Discount==0||e.CouponDiscount>0)&&e.DiscountAmount==0&&e.Price==e?.Variant?.UnitPrice&&h.IsEmpty(e.PriceBookID)}HandleDiscountAmount(e,t=!1){e.Amount>0?(e.ApplyToProduct?.length>0?this.applyDiscountInItem(e,t):(t?this._orderDataService.Data.Order.DiscountAmount=0:(this._orderDataService.Data.Order.DiscountAmount=e.Amount,this.showToastr(e)),this._orderDataService.pushNewValue()),this.resetCustomerPoint(t)):(this.role.Discount=t?this.originalRoleData.Discount:!0,this._userRoleService.pushNewValue(this.role))}applyDiscountInItem(e,t=!1){let i=this._orderDataService.Data;if(t)i.CartItems=this.resetItemsDisc(i.CartItems);else{let r=i.CartItems.filter(c=>e.ApplyToProduct.map(u=>u.ID)?.includes(c.VariantID));this.applyConfigItemsScope(e,r,t).subscribe(c=>{let u=c.map(P=>(P.DiscountAmount=e.Amount,P.CouponDiscount=e.Amount,P));i.CartItems=this.updateCartItems(u,e),this._orderDataService.pushNewValue(i),this.showToastr(e)})}}resetCustomerPoint(e){if(!e){let t=this._orderDataService.Data;t.Order.PointUsed=0}}handleCouponReturnAccess(e){let t=ce(Qe,this.role);t.Return=!0,this._userRoleService.pushNewValue(t),this.isShowToastrInApplyCoupon()&&this.toastr.success("You got access to return a sales transaction!","Coupon Applied")}handleCouponParkedDeletionAccess(){let e=ce(Qe,this.role);e.ParkedDeletionAuthorized=!0,this._userRoleService.pushNewValue(e),this.isShowToastrInApplyCoupon()&&this.toastr.success("You Have Access to delete park and delete item when retrieve!","Coupon Applied")}handleFullAccessCoupon(){let e=ce(Qe,this.role);e.UnitPriceEditor=!0,e.Discount=!0,e.Return=!0,e.Tax=!0,e.NumberEditor=!0,e.DateEditor=!0,e.PricebookSelector=!0,e.DeleteItem=!0,e.ParkedDeletionAuthorized=!0,this._userRoleService.pushNewValue(e),this.isShowToastrInApplyCoupon()&&this.toastr.success("You now have Full Access for this Order!","Coupon Applied")}handleDeleteItemCoupon(){let e=ce(Qe,this.role);e.DeleteItem=!0,this._userRoleService.pushNewValue(e),this.isShowToastrInApplyCoupon()&&this.toastr.success("You Have Access to delete item","Coupon Applied")}removeAppliedCoupon(e=!0){this._userRoleService.pushNewValue(this.originalRoleData),this._orderDataService.pushNewValue(this.salesOrderBeforePromotion()),this.salesOrderBeforePromotion.set(null),this._coupon.set(null),e&&this.toastr.warning("Coupon Cancelled","Warning")}resetCouponOnNewTransaction(){this._userRoleService.pushNewValue(this.originalRoleData),this._coupon.set(null)}removeAppliedDiscountOnCustomerChange(){if(this.coupon)switch(this.coupon.Requirement?.Type){case 1:this.HandleDiscountPercentage(this._coupon(),!0),this.removeAppliedCouponOnCustomerChange();break;case 2:this.HandleDiscountAmount(this._coupon(),!0),this.removeAppliedCouponOnCustomerChange();break}}removeAppliedCouponOnCustomerChange(){if(this.coupon){let e=this._orderDataService.Data;e.Order.PromotionCoupon=null,e.Order.PromotionNote=null,this._coupon.set(null),this._userRoleService.pushNewValue(this.originalRoleData),this._orderDataService.pushNewValue(e)}}isSameCartItem(e,t){return e.VariantID===t.VariantID&&e.Quantity===t.Quantity&&e.Price===t.Price&&e.Discount===t.Discount&&e.PriceBookID===t.PriceBookID}static \u0275fac=function(t){return new(t||n)(g(ye),g(k),g(Se),g(B),g(ne),g(Mt))};static \u0275prov=I({token:n,factory:n.\u0275fac,providedIn:"root"})};var xt=class{CommissionID;ReturNumber;parkTemporaryItem;posState;InputTextValue;constructor(){this.posState=0,this.CommissionID="",this.ReturNumber="",this.parkTemporaryItem=[],this.InputTextValue=""}};var Ti=class n{constructor(e,t,i){this._promotionEventService=e;this._dialogRef=t;this.data=i;this.modalConfig=new Z,this.modalConfig.hideCancel=!0,this.modalConfig.hideClose=!0,this.modalConfig.headerType=le.Warning,this.modalConfig.title="Promotion Requirement unfulfilled!",this.modalConfig.customWidth="350px",this.modalConfig.okText="Ok",this.selectedPromotion=e.selectedPromotion}modalConfig;selectedPromotion;onOk(){this._promotionEventService.restoreOrder(),this._dialogRef.close()}static \u0275fac=function(t){return new(t||n)(S(we),S(K),S(pe))};static \u0275cmp=E({type:n,selectors:[["POS-modal-promotion-confirm"]],standalone:!1,decls:9,vars:4,consts:[[3,"onOk","config"],[1,"fst-italic","text-danger","mb-3"],[1,"mb-0"]],template:function(t,i){t&1&&(a(0,"modal-material",0),b("onOk",function(){return i.onOk()}),a(1,"content")(2,"div")(3,"h5"),m(4),s(),a(5,"p",1),m(6),s(),a(7,"p",2),m(8),s()()()()),t&2&&(p("config",i.modalConfig),l(4),D(i.selectedPromotion==null?null:i.selectedPromotion.Name),l(2),D(i.selectedPromotion==null?null:i.selectedPromotion.Description),l(2),D(i.data==null?null:i.data.message))},dependencies:[X],encapsulation:2})};var Ri=class extends Pe{};var wt=class n{constructor(e,t,i,o,r,c,u,P,A,j){this.variantService=e;this._posService=t;this._orderDataService=i;this.toastr=o;this._orderProcessorService=r;this._customerHttpService=c;this.promotionCouponService=u;this.promotionCouponExternalService=P;this.userRoleService=A;this.decimalPipe=j;this.subscribeToObservable()}salesOrderData;appConfigJson;entityID;audio=new Audio;subscribeToObservable(){this._posService.Data$.pipe(oe()).subscribe(e=>{this.appConfigJson=e.AppConfigJSON}),this._orderDataService.Data$.pipe(oe()).subscribe(e=>{this.salesOrderData=e,this.entityID=e.Order.EntityID}),this._orderProcessorService.Data$.pipe(oe()).subscribe(e=>{e.posState==3&&this.clearCartItemsInLocalStorage()})}addCartItemById(e,t,i=!0){return new Promise((o,r)=>{this.variantService.findVariantByID(e,this.entityID,i).then(c=>{this.createNewCartItem(c,t),o(c)}).catch(c=>{r(c)})})}addCartItemByCode(e){return new Promise((t,i)=>{let o=this.appConfigJson.ModuleSell.DigitalScale;o.Digit>0&&h.IsNotEmpty(o.Regex)&&e.length==o.Digit?this.parseDigitalScaleBarcodeWithRegex(e,o).then(c=>{c||(this.toastr.info("Matching Regex Rule to Barcode","Digital Scale"),this.findVariantByCode(e).then(u=>t(u)).catch(u=>i(u)))}):this.findVariantByCode(e).then(c=>t(c)).catch(c=>i(c))})}findVariantByCode(e){let t=this.appConfigJson.ModuleSell.BarcodeSerialEnabled;return new Promise((i,o)=>{this.variantService.findVariantByCode(e,this.entityID,t).then(r=>{i(r),this.createNewCartItem(r)}).catch(r=>{this.playBellRing(),o(r)})})}addItemBySerial(e){this.variantService.findVariantBySerial(e,this.entityID).subscribe(t=>{let i=this.salesOrderData.CartItems;if(i.length>0){let o,r=[],c=i.findIndex(u=>u.Variant.ID==t.ID);r=[],c!==-1?(o=i[c].Serial?.findIndex(u=>u.Number==e),r=[...i[c].Serial?i[c].Serial:[]],o==-1?(r.push({Number:e,Quantity:1}),i[c].Quantity=r.length):r.length>0?r[o].Quantity+=1:(r=[{Number:e,Quantity:1}],this.addNewSerials(t,e)),i[c].Serial=[...r],i[c].Quantity=i[c].calculateSerialQty(),this.updateCartItem(i[c],c)):this.addNewSerials(t,e)}else this.addNewSerials(t,e)})}addNewSerials(e,t){e.Serial=[{Number:t,Quantity:1}],this.createNewCartItem(e)}playBellRing(){this.audio.src="//res.cloudinary.com/pos/video/upload/v1659947782/POS/Music/bell_ring.mp3",this.audio.load(),this.audio.play()}updateCartItem(e,t){this.salesOrderData.CartItems[t]=e,this._orderDataService.pushNewValue(this.salesOrderData),this.applyCustomerPoint(),this.reApplyPromotionCoupon(),this.saveItemsToLocalStorage()}deleteCartItem(e){this.salesOrderData.CartItems=this.salesOrderData.CartItems.filter(t=>t!==e),this._orderDataService.pushNewValue(this.salesOrderData),this.applyCustomerPoint(),this.isRemoveItemRequirement(e)&&this.reApplyPromotionCoupon()}parseDigitalScaleBarcodeWithRegex(e,t){return new Promise(i=>{let o=this.appConfigJson.ModuleSell.BarcodeSerialEnabled,r=new RegExp(t.Regex),c=e.match(r);if(console.log(c),h.IsNotEmpty(c)){let u=c[1],P=parseFloat(c[2]);console.log(P,"productQuantity"),P=P/t.QuantityDivider,this.variantService.findVariantByCode(u,this.entityID,o).then(A=>{this.createNewCartItem(A,null,P),i(!0)}).catch(()=>{i(!1)})}else i(!1)})}createNewCartItem(e,t,i){let o=new Pe,r=this.appConfigJson.ModuleSell.ProductNotes.CopyProductDescription,c=this.appConfigJson.ModuleSell.ProductNotes.CopyPromotionName;o.patchByVariant(e,r,c),o=this.applyReward(o,t),h.IsEmpty(t)&&(o=this.applyPriceBook(o)),this.validateCartItem(o)&&(o.Quantity=i||o.Quantity,t?.PromotionType==2?this.handlingPromotionQuantity(o):this.pushNewItemToArray(o,o.PromotionGift),this.applyCustomerPoint()),this.addAvailableComponent(o)}applyCustomerPoint(){let e=this.salesOrderData.Order.CustomerID,t=h.IsEmpty(e);this._orderProcessorService.reedemPointToDiscount(t)}handlingPromotionQuantity(e){let t=ce(Pe,this.salesOrderData.CartItems),i=t.findIndex(o=>o.VariantID==e.VariantID&&o.PromotionGift);i!==-1?t[i].Quantity+=e.Quantity?e.Quantity:1:t=[...t,e],this.salesOrderData.CartItems=t,this._orderDataService.pushNewValue(this.salesOrderData)}applyPromotionProduct(e){let t=e.Variant.DiscountAmount;return t&&(e.Price=e.UnitPriceOriginal-t),e}applyReward(e,t){if(t){let i=this.appConfigJson.ModuleSell.ProductNotes.CopyPromotionName;e.Discount=t.Discount,e.Price=t.OriginalPrice;let o=t.OriginalPrice-t.UnitPrice;e.Price=e.UnitPriceOriginal-o,e.UnitPrice=e.UnitPriceOriginal-o,e.PromotionGift=!0,e.PromotionID=t.PromotionID,e.Quantity=t.Quantity?t.Quantity:1,e.PriceTypeID=3,e.Cost+=t.ExtraCost,e.UnitCost+=t.ExtraCost,e.PriceNote=t.PromotionName,i&&(e.Note=`${e.Note?e.Note:""} ${t.PromotionName} `)}return e}addAvailableComponent(e){let t=e.Price!=0,i=this.appConfigJson.ModuleSell.SellProductComponentDefaultPrice,o=e.Variant;if(o.Component!=null&&o.Component.length>0)for(let r of o.Component){let c=new Ri;c.patchByVariant(r),c.Quantity=e.Quantity*r.Quantity,t&&!i&&(r.UnitPrice=0),c.Price=r.UnitPrice,this.pushNewItemToArray(c)}}pushNewItemToArray(e,t=!1){let i=this.salesOrderData.CartItems.findIndex(o=>o.VariantID==e.VariantID);if(e=this.applyPromotionProduct(e),i==-1||t)this.salesOrderData.CartItems.push(e);else{let o=this.appConfigJson.ModuleSell.QuickKey.NewRowBehaviour;if(o==2)this.salesOrderData.CartItems.push(e);else if(o==1)this._orderProcessorService.Data.posState==4?this.salesOrderData.CartItems.push(e):this.addingQuantityItem(i,e);else{if(!this.validatePrepaidPackage(e,i)){this.toastr.error("This prepaid package is already in the cart while editing. Please remove it first before adding again.","Cannot Add Item");return}this.addingQuantityItem(i,e)}}this._orderDataService.pushNewValue(this.salesOrderData),this.saveItemsToLocalStorage(),this.reApplyPromotionCoupon()}saveItemsToLocalStorage(){let e=this.userRoleService.Data.DeleteItem,t=this._orderProcessorService.Data?.posState;if(!e&&t!==4){let o=this._orderDataService.Data.CartItems;try{localStorage.setItem("cart_items",JSON.stringify(o))}catch(r){console.error("Error saving cart items to localStorage:",r)}}}clearCartItemsInLocalStorage(){let e=this.promotionCouponService?.coupon;if(!this.userRoleService.Data?.DeleteItem||e.Requirement?.Type==5||e.Requirement?.Type==6)try{localStorage.removeItem("cart_items")}catch(i){console.error("Error clearing cart items from localStorage:",i)}}validatePrepaidPackage(e,t){let i=this.salesOrderData.CartItems[t],o=this._orderProcessorService.Data.posState,r=e.Variant.TypeID==10,c=h.IsNotEmpty(i.ID),u=!0;return o==2&&r&&c&&(u=!1),u}reApplyPromotionCoupon(){let e=this.salesOrderData.Order.CouponProvider,t=e=="Internal"||h.IsEmpty(e),i=this.salesOrderData.Order.PromotionCoupon,o=this.salesOrderData.Order.PromotionNote;h.IsNotEmpty(i)&&(t?this.promotionCouponService.RedeemCoupon(i,o,!0):this.promotionCouponExternalService.redeemCoupon(i,"External",o))}isRemoveItemRequirement(e){let t=this.promotionCouponService?.coupon,i=t?.ApplyToProduct,o=!0;return h.IsNotEmpty(t)&&i?.length>0&&(o=i.some(r=>r.ID==e.VariantID)),o}addingQuantityItem(e,t){let i=this.salesOrderData.CartItems.filter(u=>u.VariantID==t.VariantID),o=i.length,r=i.find(u=>!u.PromotionGift);this.salesOrderData.CartItems[e].PromotionGift&&o==1?this.salesOrderData.CartItems.push(t):(r.Quantity+=t.Quantity,r=this.applyPromotionProduct(r)),r&&(r=this.applyPriceBook(r))}validateCartItem(e){return e.Variant.CategoryTypeID==-1?(this.toastr.info(e.Variant.Name+" cannot be sold, check Category "+e.Variant.CategoryName+" settings","info"),!1):!(!this.validatePriceMinimum(e)||!this.validateSerialItem(e))}validatePriceMinimum(e){let t=!0,i=this.userRoleService.Data.PriceMinimum,o=this.appConfigJson.ModuleSell.ProductDialog.PriceMinimumTypeID;if(i){let r=0;switch(o){case 1:r=e.UnitPrice;break;case 2:r=e.UnitCost;break;case 3:r=e.UnitPriceMinimum;break}if(e.Price<r){t=!1;let c=h.StringFormat("You have no right to sell this item lower than {0}",this.decimalPipe.transform(r));alert(c)}}return t}validateSerialItem(e){let t=!0;if(e?.Serial?.length>0&&e.Variant.TypeID==4&&e.Quantity>0){let i=0;e?.Serial?.forEach(o=>{i+=o.Quantity}),i!=e.Quantity&&(this.toastr.error("Serial must be equal with the quantity","Error"),t=!1)}return t}applyPriceBook(e){let t=e.Variant.PriceBook!=null?e.Variant.PriceBook:[],i=this.findCustomerPricebook(t);if(t&&t.length!==0){let o=t.sort(function(r,c){return c.MinimumQuantity-r.MinimumQuantity}).filter(r=>e.Quantity>=r.MinimumQuantity&&r.MinimumQuantity!=0);o.length>0||h.IsNotEmpty(i)?h.IsNotEmpty(i)?e=this.applyPricebookToItem(e,i):e=this.applyPricebookToItem(e,o[0]):e=this.resetAppliedPricebook(e)}return e}resetAppliedPricebook(e){let i=(e?.Variant?.PriceBook).find(o=>o.ID==e.PriceBookID);return h.IsNotEmpty(i)&&(e.Discount=e.Variant.PriceDiscount,e.PriceBookID=h.GuidEmpty,e.Price=e.Variant.UnitPrice,e.UnitPrice=e.Variant.UnitPrice,e.PriceTypeID=0,e=this.applyPromotionProduct(e),e=this.removePromotionNote(e)),e}removePromotionNote(e){let t=this.appConfigJson.ModuleSell.ProductNotes;if(this.appConfigJson?.ModuleSell?.Pricebook?.PricebookVisible&&(e.Note=e.Note?.replace(e.PriceNote,""),e.PriceNote=""),t.CopyPromotionName){let o=e.Variant?.PriceNote;e.Note=`${o||""} ${e.Note?e.Note:""}`,e.PriceNote=o}return e}applyPricebookToItem(e,t){return e.Discount=t.PriceDiscount,e.UnitPrice=t.UnitPrice,e.PriceBookID=t.ID,e.Price=t.UnitPrice,e.PriceTypeID=2,e=this.assignItemNote(e,t),e}assignItemNote(e,t){return this.appConfigJson?.ModuleSell?.Pricebook?.PricebookVisible?(e.Note?.includes(e.PriceNote)?e.Note=e.Note?.replace(e.PriceNote,t.Name):e.Note=`${t.Name} ${e.Note?e.Note:""}`,e.PriceNote=t.Name):(e.Note="",e.PriceNote=""),e}findCustomerPricebook(e=[]){let t=this._customerHttpService.Data,i;return t&&(i=e.find(o=>o.ID==t.PricebookID)),i}static \u0275fac=function(t){return new(t||n)(g(go),g(z),g(k),g(B),g(Be),g(Te),g(It),g(wi),g(Se),g($))};static \u0275prov=I({token:n,factory:n.\u0275fac,providedIn:"root"})};function pr(n,e){if(n&1&&(a(0,"div",9)(1,"div",4),_(2,"input",10),s()()),n&2){let t=d();l(2),p("formControl",t.searchControl)}}function dr(n,e){n&1&&(a(0,"span"),m(1,"Apply"),s())}function ur(n,e){n&1&&(a(0,"span"),m(1,"Applying..."),s())}function gr(n,e){if(n&1){let t=T();a(0,"tr")(1,"td"),m(2),s(),a(3,"td"),m(4),s(),a(5,"td",11),m(6),y(7,"number"),s(),a(8,"td",11),m(9),y(10,"number"),s(),a(11,"td",12)(12,"button",13),b("click",function(){let o=C(t).$implicit,r=d();return v(r.onSelectReward(o))}),f(13,dr,2,0,"span",14)(14,ur,2,0,"span",14),s()()()}if(n&2){let t=e.$implicit,i=d();l(2),D(t.VariantName),l(2),D(t.VariantCode),l(2),D(M(7,7,t.OriginalPrice)),l(3),D(M(10,9,t.UnitPrice)),l(3),p("disabled",i.isApplyingReward()),l(),p("ngIf",!i.isApplyingReward()),l(),p("ngIf",i.isApplyingReward())}}var Ni=class n{constructor(e,t,i,o,r,c){this._dialogRef=e;this._matDialog=t;this._shoppingCartService=i;this._promotionEventService=o;this._toastr=r;this.data=c;this.selectedPromotion=this._promotionEventService.selectedPromotion}modalConfig=new Z;selectedPromotion;rewards$;searchControl=new Ze;isApplyingReward=q(!1);ngOnInit(){this.modalConfig.title="Select a Reward",this.modalConfig.hideFooter=!0,this.initRewards(!0)}initRewards(e){this.rewards$=this.searchControl.valueChanges.pipe(ii(""),dt(e?0:500),ke(),Y(t=>{let i;return i=Ee(this.data.rewards).pipe(J(o=>o.filter(r=>this.findKeywordInValue(t,r?.VariantCode)||this.findKeywordInValue(t,r?.VariantName)))),e=!0,i}))}findKeywordInValue(e,t){return t?.toUpperCase()?.indexOf(e?.toUpperCase())>-1}onSelectReward(e){return Zt(this,null,function*(){if(!this.isApplyingReward()){this.isApplyingReward.set(!0);try{e.PromotionType=this.data.promotion.TypeID,yield this._shoppingCartService.addCartItemById(e.VariantID,e,!0).then(()=>{this._matDialog.closeAll(),this._promotionEventService.pushNewValue(this._promotionEventService.Data),this.showToastAppliedPromo()})}finally{this.isApplyingReward.set(!1)}}})}showToastAppliedPromo(){this._toastr.success("Applied "+this.selectedPromotion.Name+" to order!","Applied successfully!")}close(){this._dialogRef.close()}static \u0275fac=function(t){return new(t||n)(S(K),S(xe),S(wt),S(we),S(B),S(pe))};static \u0275cmp=E({type:n,selectors:[["POS-modal-select-item"]],standalone:!1,decls:22,vars:9,consts:[[3,"onCancel","onClose","config"],[1,"container"],["class","row mb-3",4,"ngIf"],[1,"row"],[1,"col-12"],[1,"table","table-bordered"],[1,"thead-light"],["scope","col"],[4,"ngFor","ngForOf"],[1,"row","mb-3"],["type","text","placeholder","Type to filter reward",1,"form-control",3,"formControl"],[1,"text-end"],[1,"text-center"],[1,"btn","btn-sm","btn-success",3,"click","disabled"],[4,"ngIf"]],template:function(t,i){t&1&&(a(0,"modal-material",0),b("onCancel",function(){return i.close()})("onClose",function(){return i.close()}),a(1,"content")(2,"div",1),f(3,pr,3,1,"div",2),a(4,"div",3)(5,"div",4)(6,"table",5)(7,"thead",6)(8,"tr")(9,"th",7),m(10,"Name"),s(),a(11,"th",7),m(12,"Code"),s(),a(13,"th",7),m(14,"Price"),s(),a(15,"th",7),m(16,"Promo"),s(),_(17,"th",7),s()(),a(18,"tbody"),f(19,gr,15,11,"tr",8),y(20,"async"),y(21,"sortBy"),s()()()()()()()),t&2&&(p("config",i.modalConfig),l(3),p("ngIf",(i.data==null||i.data.rewards==null?null:i.data.rewards.length)>5),l(16),p("ngForOf",Ct(21,5,M(20,3,i.rewards$),"desc","VariantCode")))},dependencies:[ve,re,Me,_e,vt,X,Je,$,St],styles:[".table-scroll[_ngcontent-%COMP%]{max-height:400px;overflow-y:auto}table[_ngcontent-%COMP%]{max-width:600px!important;overflow-x:hidden}"]})};function fr(n,e){if(n&1&&(Q(0),a(1,"div",13)(2,"div",7),_(3,"input",14),s()(),U()),n&2){let t=d();l(3),p("formControl",t.searchCtrl)}}function hr(n,e){n&1&&(Q(0),a(1,"th",15),m(2,"Qty"),s(),U())}function Cr(n,e){n&1&&_(0,"th",10)}function vr(n,e){if(n&1){let t=T();Q(0),a(1,"td")(2,"input",17),F("ngModelChange",function(o){C(t);let r=d().$implicit;return N(r.Quantity,o)||(r.Quantity=o),v(o)}),s()(),U()}if(n&2){let t=d().$implicit;l(2),V("ngModel",t.Quantity)}}function _r(n,e){n&1&&(a(0,"span"),m(1,"Apply"),s())}function yr(n,e){n&1&&(a(0,"span"),m(1,"Applying..."),s())}function br(n,e){if(n&1){let t=T();a(0,"td",18)(1,"button",19),b("click",function(){C(t);let o=d().$implicit,r=d();return v(r.onApplyReward(o))}),f(2,_r,2,0,"span",5)(3,yr,2,0,"span",5),s()()}if(n&2){let t=d(2);l(),p("disabled",t.isApplyingReward()),l(),p("ngIf",!t.isApplyingReward()),l(),p("ngIf",t.isApplyingReward())}}function Sr(n,e){if(n&1&&(a(0,"tr")(1,"td"),m(2),s(),a(3,"td"),m(4),s(),a(5,"td",16),m(6),y(7,"number"),s(),a(8,"td",16),m(9),y(10,"number"),s(),f(11,vr,3,1,"ng-container",11)(12,br,4,3,"ng-template",null,1,De),s()),n&2){let t=e.$implicit,i=G(13),o=d();l(2),D(t.VariantName),l(2),D(t.VariantCode),l(2),D(M(7,6,t.OriginalPrice)),l(3),D(M(10,8,t.UnitPrice)),l(2),p("ngIf",o.rewardQuantity>1)("ngIfElse",i)}}var Ai=class n{constructor(e,t,i,o,r,c){this.data=e;this.shoppingCartService=t;this.promotionEventService=i;this.dialogRef=o;this.matDialog=r;this.toastr=c;this.searchCtrl=new Ze,this.rewardQuantity=e.rewardQuantity,this.sourceRewards=[...e.rewards]}modalConfig;rewards$;rewardQuantity;rewards;sourceRewards=[];searchCtrl;isApplyingReward=q(!1);ngOnInit(){this.initModalConfig(),this.initSearchCtrl(!0)}initModalConfig(){this.modalConfig=new Z,this.modalConfig.title="Select a Reward",this.rewardQuantity<2&&(this.modalConfig.hideFooter=!0)}initSearchCtrl(e){this.rewards$=this.searchCtrl.valueChanges.pipe(ii(""),dt(e?0:500),ke(),Y(t=>{let i;return i=Ee(this.sourceRewards).pipe(J(o=>(o.length===1&&(o[0].Quantity=this.rewardQuantity),o)),J(o=>o.filter(r=>this.findKeywordInValue(t,r?.VariantCode)||this.findKeywordInValue(t,r?.VariantName)))),e=!1,i}),se(t=>{this.rewards=t}))}findKeywordInValue(e,t){return t?.toUpperCase()?.indexOf(e.toUpperCase())>-1}onApplyReward(e){return Zt(this,null,function*(){if(!this.isApplyingReward()){this.isApplyingReward.set(!0);try{yield this.addRewardToShoppingCart(e)}finally{this.isApplyingReward.set(!1)}}})}onClose(){this.dialogRef.close()}onOk(){this.calculateRewardQty()>this.rewardQuantity?this.toastr.warning("Product reward exceeds the maximum amount earned","Warning"):[...this.rewards].filter(i=>i.Quantity>0).forEach(i=>{this.addRewardToShoppingCart(i)})}calculateRewardQty(){let e=0;return this.rewards.forEach(t=>{e+=t.Quantity?t.Quantity:0}),e}addRewardToShoppingCart(e){return e.PromotionType=this.data.promotion.TypeID,this.shoppingCartService.addCartItemById(e.VariantID,e,!0).then(()=>{this.matDialog.closeAll(),this.promotionEventService.pushNewValue(this.promotionEventService.Data)})}static \u0275fac=function(t){return new(t||n)(S(pe),S(wt),S(we),S(K),S(xe),S(B))};static \u0275cmp=E({type:n,selectors:[["app-modal-quantity-reward"]],standalone:!1,decls:27,vars:12,consts:[["APPLY",""],["APPLY_BUTTON",""],[3,"onCancel","onOk","onClose","config"],[1,"ms-3"],[1,"container"],[4,"ngIf"],[1,"row","table-scroll"],[1,"col-12"],[1,"table","table-bordered"],[1,"thead-light"],["scope","col"],[4,"ngIf","ngIfElse"],[4,"ngFor","ngForOf"],[1,"row","mb-3"],["type","text","placeholder","Type to filter reward",1,"form-control",3,"formControl"],["scope","col",2,"width","66px"],[1,"text-end"],["type","text","autoNum","","min","0",1,"form-control",3,"ngModelChange","ngModel"],[1,"text-center"],[1,"btn","btn-sm","btn-success",3,"click","disabled"]],template:function(t,i){if(t&1){let o=T();a(0,"modal-material",2),b("onCancel",function(){return C(o),v(i.onClose())})("onOk",function(){return C(o),v(i.onOk())})("onClose",function(){return C(o),v(i.onClose())}),a(1,"header")(2,"small",3),m(3),s()(),a(4,"content")(5,"div",4),f(6,fr,4,1,"ng-container",5),a(7,"div",6)(8,"div",7)(9,"table",8)(10,"thead",9)(11,"tr")(12,"th",10),m(13,"Name"),s(),a(14,"th",10),m(15,"Code"),s(),a(16,"th",10),m(17,"Price"),s(),a(18,"th",10),m(19,"Promo"),s(),f(20,hr,3,0,"ng-container",11)(21,Cr,1,0,"ng-template",null,0,De),s()(),a(23,"tbody"),f(24,Sr,14,10,"tr",12),y(25,"async"),y(26,"sortBy"),s()()()()()()()}if(t&2){let o=G(22);p("config",i.modalConfig),l(3),O(" ( ",i.rewardQuantity," products reward ) "),l(3),p("ngIf",(i.sourceRewards==null?null:i.sourceRewards.length)>5),l(14),p("ngIf",i.rewardQuantity>1)("ngIfElse",o),l(4),p("ngForOf",Ct(26,8,M(25,6,i.rewards$),"desc","VariantCode"))}},dependencies:[ve,re,Me,_e,Ie,vt,X,bt,Je,$,St],encapsulation:2})};var we=class n{constructor(e,t,i,o,r,c,u,P,A){this._orderDataService=e;this._outletService=t;this._invoiceCalculatorService=i;this._dialog=o;this._httpService=r;this._posService=c;this._toastr=u;this._signalrService=P;this.decimalPipe=A;this.previousQuantity=0,this.previousTotalEligible=0,this.subscribeNotification(),this._posService.Data$.subscribe(j=>{this.taxes=j.Taxes}),this._outletService.Data$.subscribe(j=>{this.loadPromotions(j.Promotion)}),this._orderDataService.Data$.pipe(ae(j=>{this.salesOrderData=j;let he=this.calculateOrderReward(j.getRewards()),cn=this.calculateOrderReward(this.previousRewards);return this.previousQuantity!=j.TotalQuantity||cn<he||this.isRestroreOrder}),dt(100)).subscribe(j=>{this.isRestroreOrder=!1,this.checkQtyPromotion(),this.applyQuantityPromotion(),this.previousRewards=[...j.getRewards()]}),this._invoiceCalculatorService.Data$.subscribe(j=>{this.checkEligiblePromotionWithMinSpend()})}_Data=new Ce([]);get Data(){return this._Data.getValue()}Data$=this._Data.asObservable();selectedPromotion=null;onClickToastPromo=new Ae;previousQuantity;salesOrderData;orderDataBeforePromotion;taxes=[];previousTotalEligible;previousRewards=[];isRestroreOrder=!1;calculateOrderReward(e){let t=0;return e.length>0&&(t=e.map(i=>i.Quantity).reduce((i,o)=>i+o)),t}checkQtyPromotion(){let e=this._orderDataService.Data;this.checkEligibleQtyPromotion(e.CartItems),this.checkEligibleTierPromotion(e.CartItems),this.previousQuantity=e.TotalQuantity}subscribeNotification(){this._signalrService.OnPromotionEventChange.pipe(oe(),Y(()=>{let e=this._outletService.Data?.RegisterID;return this.getPromotions(e)})).subscribe(()=>{this._toastr.info("Promotion Event Updated","Promotion Update")})}getPromotions(e){return this._httpService.get(H.GetListPromotion,[{key:"RegisterID",value:e}]).pipe(se(t=>{this.loadPromotions(t)}))}loadPromotions(e){let t=this.getPromotionDesc(e);this.pushNewValue(t),this.checkQtyPromotion(),this.checkEligiblePromotionWithMinSpend()}pushNewValue(e){this.showToastEligiblePromotion(),this._Data.next(e)}checkSelectedPromotionRequirement(e){this.selectedPromotion!=null&&this.selectedPromotion.TypeID==e&&this.Data.find(i=>i.ID===this.selectedPromotion.ID)?.Eligible===!1&&(this._dialog.open(Ti,{id:"modal-promotion-confirm",data:{message:"Order will be restored to before the promotion is applied"},disableClose:!0}),this.isRestroreOrder=!0)}restoreOrder(){this._orderDataService.pushNewValue(this.orderDataBeforePromotion),this.selectedPromotion=null}getPromotionDesc(e=[]){return e?.map(i=>(i.Description=this.generatePromotionDesc(i),i))}checkEligiblePromotionWithMinSpend(){let e=this._invoiceCalculatorService.Data,t=this.Data?.filter(o=>(o.TypeID===1||o.TypeID==3)&&!this.checkExpiredPromotion(o)).map(o=>(e>=o.MinimumAmount?o.Eligible=!0:o.Eligible=!1,o)),i=this.mappingEligiblePromotion(t);this.pushNewValue(i),this.checkSelectedPromotionRequirement(1),this.checkSelectedPromotionRequirement(3)}checkEligibleQtyPromotion(e){let t=0,i=this.Data?.filter(r=>r.TypeID===2&&!this.checkExpiredPromotion(r)).map(r=>(r.Eligible=!1,r.ListVariant.length>0?(t=this.getQuantityByRequirementType(e,"variant",r.ListVariant),t>=r.MinimumAmount&&(r.Eligible=!0)):r.ListCategory.length>0?(t=this.getQuantityByRequirementType(e,"category",r.ListCategory),t>=r.MinimumAmount&&(r.Eligible=!0)):this.salesOrderData.TotalQuantity>=r.MinimumAmount&&(r.Eligible=!0),r)),o=this.mappingEligiblePromotion(i);this.pushNewValue(o)}checkEligibleTierPromotion(e){let t,i=this.Data?.filter(r=>r.TypeID===5&&!this.checkExpiredPromotion(r)).map(r=>(r.Eligible=!1,r.ListVariant.length>0?t=this.getQuantityByRequirementType(e,"variant",r.ListVariant):r.ListCategory.length>0?t=this.getQuantityByRequirementType(e,"category",r.ListCategory):t=this.salesOrderData.TotalQuantity,r.PromotionTieredQuantity.forEach(c=>{t>=c.Quantity&&(r.Eligible=!0)}),r)),o=this.mappingEligiblePromotion(i);this.pushNewValue(o)}getQuantityByRequirementType(e,t,i){let o=0,r;return t=="variant"?e.forEach(c=>{r=i.findIndex(u=>u.ID===c.VariantID),r!==-1&&(o+=c.Quantity)}):e.forEach(c=>{c.Variant&&(r=i.findIndex(u=>u.ID===c.Variant.CategoryID),r!==-1&&(o+=c.Quantity))}),o}mappingEligiblePromotion(e=[]){let t=this.Data;if(e?.length>0){let i;t=this.Data?.map(o=>(i=e.findIndex(r=>r.ID==o.ID),i!==-1&&(o=e[i]),o))}return t}checkExpiredPromotion(e){let t=new Date,i=new Date(e.StartDate),r=(h.IsEmpty(e.StartTime)?"00:00:00":e.StartTime).split(":").map(A=>parseInt(A));i.setHours(r[0],r[1],r[2]);let c=new Date(e.ExpirationDate),P=(h.IsEmpty(e.EndTime)?"23:59:59":e.EndTime).split(":").map(A=>parseInt(A));return c.setHours(P[0],P[1],P[2]),!(t.getTime()>=i.getTime()&&t.getTime()<=c.getTime())}showToastEligiblePromotion(){let e=this.getTotalEligiblePromotion(),t=h.IsNotEmpty(this.salesOrderData.Order.ID);this.previousTotalEligible!==e&&e>0&&!t&&this._toastr.info(e+" promotion(s) can be applied!","Promo available!",{timeOut:2e4}).onTap.pipe(He(1)).subscribe(()=>{this.onClickToastPromo.next(!0)}),this.previousTotalEligible=e}getTotalEligiblePromotion(){return this.Data?.filter(t=>t.Eligible).length}generatePromotionDesc(e){let t="";switch(e.TypeID){case 2:t+="Minimum "+this.decimalPipe.transform(e.MinimumAmount)+" ",e.ListVariant.length>0?(t=t+" piece of ",t+=this.generateItemListDescription(e.ListVariant)):e.ListCategory.length>0?(t+="from category ",t+=this.generateItemListDescription(e.ListCategory)):t+="items";break;case 1:t+="Minimum spend Rp. "+this.decimalPipe.transform(e.MinimumAmount);break;case 3:t+=`Apply
3
3
  ${e.Discount1!==0?"discount1 = "+e.Discount1+"%":""}
4
4
  ${e.Discount1!==0&&e.Discount2!==0?" and ":""}
@@ -1 +1 @@
1
- import{b as c}from"./chunk-YHDEAPG3.js";import{ja as r,na as s}from"./chunk-DJOHANFC.js";var i=class{to;from;constructor(){this.to=new Date,this.from=new Date}};var n=class o{cookiesService=s(c);_cookiesName="PaymentDate";dateFilter={from:new Date,to:new Date};set(e){this.saveFilterToCookie(e),this.dateFilter=e}initFilterDate(e){let t;if(this.checkCookieExists())t=this.get();else{let a=e.From||new Date,m=e.To||new Date;t={from:a,to:m}}return e.From=t.from,e.To=t.to,e}get(){return this.checkCookieExists()?this.dateFilter=JSON.parse(this.cookiesService.get(this._cookiesName)):this.dateFilter=new i,this.dateFilter}checkCookieExists(){return this.cookiesService.check(this._cookiesName)}saveFilterToCookie(e){this.cookiesService.set(this._cookiesName,JSON.stringify(e),this.getExpiredDate(),"/")}clear(){this.cookiesService.delete(this._cookiesName,"/"),this.dateFilter=new i}getExpiredDate(){let e=new Date,a=1*60*60*1e3;return e.setTime(e.getTime()+a),e}static \u0275fac=function(t){return new(t||o)};static \u0275prov=r({token:o,factory:o.\u0275fac,providedIn:"root"})};export{n as a};
1
+ import{b as c}from"./chunk-M2HG7HA7.js";import{ja as r,na as s}from"./chunk-DJOHANFC.js";var i=class{to;from;constructor(){this.to=new Date,this.from=new Date}};var n=class o{cookiesService=s(c);_cookiesName="PaymentDate";dateFilter={from:new Date,to:new Date};set(e){this.saveFilterToCookie(e),this.dateFilter=e}initFilterDate(e){let t;if(this.checkCookieExists())t=this.get();else{let a=e.From||new Date,m=e.To||new Date;t={from:a,to:m}}return e.From=t.from,e.To=t.to,e}get(){return this.checkCookieExists()?this.dateFilter=JSON.parse(this.cookiesService.get(this._cookiesName)):this.dateFilter=new i,this.dateFilter}checkCookieExists(){return this.cookiesService.check(this._cookiesName)}saveFilterToCookie(e){this.cookiesService.set(this._cookiesName,JSON.stringify(e),this.getExpiredDate(),"/")}clear(){this.cookiesService.delete(this._cookiesName,"/"),this.dateFilter=new i}getExpiredDate(){let e=new Date,a=1*60*60*1e3;return e.setTime(e.getTime()+a),e}static \u0275fac=function(t){return new(t||o)};static \u0275prov=r({token:o,factory:o.\u0275fac,providedIn:"root"})};export{n as a};
@@ -1 +1 @@
1
- import{e as l}from"./chunk-SFCQJQF3.js";import"./chunk-WRHYTFLY.js";import"./chunk-OI2RWAOV.js";import"./chunk-7LXPGNYF.js";import"./chunk-45BASVRZ.js";import"./chunk-XOQ4SW2R.js";import"./chunk-4SOJX57D.js";import"./chunk-6BL2JKZG.js";import"./chunk-REQUYIUO.js";import"./chunk-T2PMKO3M.js";import"./chunk-2FWFPV5I.js";import"./chunk-OE7PM4Y4.js";import"./chunk-CB33ZMNF.js";import"./chunk-YHDEAPG3.js";import"./chunk-M3WKPJ2B.js";import"./chunk-TYBAV5LT.js";import"./chunk-2DQBDX5E.js";import{Ib as o,Jb as m,Kb as c,Td as d,ec as p,jd as f,ka as n,kb as u,lb as i}from"./chunk-DJOHANFC.js";import"./chunk-7DCB7DB2.js";var a=class t{menuData={H:"Not Found"};constructor(){}ngOnInit(){}static \u0275fac=function(e){return new(e||t)};static \u0275cmp=u({type:t,selectors:[["POS-not-found-page"]],standalone:!1,decls:12,vars:0,consts:[[1,"container-fluid","mt-12"],[1,"row"],[1,"col-1"],[1,"col-6","d-flex","align-items-center","justify-content-center","pe-0"],[1,"ms-12"],[1,"mb-0","fw-normal",2,"margin-top","20px","font-size","55px"],[1,"fs-4"],[1,"col-5","ps-0"],["src","//res.cloudinary.com/pos/image/upload/v1652836870/POS/Images/MicrosoftTeams-image.jpg","alt","",2,"width","50%"]],template:function(e,y){e&1&&(o(0,"content")(1,"div",0)(2,"div",1),c(3,"div",2),o(4,"div",3)(5,"div",4)(6,"h1",5),p(7," Page Not Found "),m(),o(8,"p",6),p(9,"The page you are trying to access cannot be found"),m()()(),o(10,"div",7),c(11,"img",8),m()()()())},encapsulation:2})};var M=[{path:"",component:a}],r=class t{static \u0275fac=function(e){return new(e||t)};static \u0275mod=i({type:t});static \u0275inj=n({imports:[d.forChild(M),d]})};var N=class t{static \u0275fac=function(e){return new(e||t)};static \u0275mod=i({type:t});static \u0275inj=n({imports:[f,r,l]})};export{N as NotFoundModule};
1
+ import{e as l}from"./chunk-GSTEQZ5S.js";import"./chunk-B5MRMJS3.js";import"./chunk-OI2RWAOV.js";import"./chunk-7LXPGNYF.js";import"./chunk-7G4UPOQP.js";import"./chunk-XOQ4SW2R.js";import"./chunk-ZJMIEPWF.js";import"./chunk-6BL2JKZG.js";import"./chunk-REQUYIUO.js";import"./chunk-T2PMKO3M.js";import"./chunk-2FWFPV5I.js";import"./chunk-OE7PM4Y4.js";import"./chunk-CB33ZMNF.js";import"./chunk-M2HG7HA7.js";import"./chunk-7CW2MHLT.js";import"./chunk-TYBAV5LT.js";import"./chunk-BBXK3YKT.js";import{Ib as o,Jb as m,Kb as c,Td as d,ec as p,jd as f,ka as n,kb as u,lb as i}from"./chunk-DJOHANFC.js";import"./chunk-7DCB7DB2.js";var a=class t{menuData={H:"Not Found"};constructor(){}ngOnInit(){}static \u0275fac=function(e){return new(e||t)};static \u0275cmp=u({type:t,selectors:[["POS-not-found-page"]],standalone:!1,decls:12,vars:0,consts:[[1,"container-fluid","mt-12"],[1,"row"],[1,"col-1"],[1,"col-6","d-flex","align-items-center","justify-content-center","pe-0"],[1,"ms-12"],[1,"mb-0","fw-normal",2,"margin-top","20px","font-size","55px"],[1,"fs-4"],[1,"col-5","ps-0"],["src","//res.cloudinary.com/pos/image/upload/v1652836870/POS/Images/MicrosoftTeams-image.jpg","alt","",2,"width","50%"]],template:function(e,y){e&1&&(o(0,"content")(1,"div",0)(2,"div",1),c(3,"div",2),o(4,"div",3)(5,"div",4)(6,"h1",5),p(7," Page Not Found "),m(),o(8,"p",6),p(9,"The page you are trying to access cannot be found"),m()()(),o(10,"div",7),c(11,"img",8),m()()()())},encapsulation:2})};var M=[{path:"",component:a}],r=class t{static \u0275fac=function(e){return new(e||t)};static \u0275mod=i({type:t});static \u0275inj=n({imports:[d.forChild(M),d]})};var N=class t{static \u0275fac=function(e){return new(e||t)};static \u0275mod=i({type:t});static \u0275inj=n({imports:[f,r,l]})};export{N as NotFoundModule};
@@ -1 +1 @@
1
- import{a as ae}from"./chunk-XXCIMR5I.js";import{f as Ce}from"./chunk-VV7L7X33.js";import{a as fe,b as ye}from"./chunk-NHTMJTLV.js";import{a as ne,b as ie,c as oe}from"./chunk-3XMWVJ2L.js";import{c as ge}from"./chunk-SMW5YQZJ.js";import{b as pe}from"./chunk-ILF7FISN.js";import{a as se}from"./chunk-NDM2ODJP.js";import{d as _e,e as ue}from"./chunk-SFCQJQF3.js";import{b as de}from"./chunk-6LQ6DVZN.js";import{b as ee,c as te}from"./chunk-XOQ4SW2R.js";import{a as le,d as me,e as ce}from"./chunk-3GV7FUAX.js";import{g as re}from"./chunk-6BL2JKZG.js";import{F as Y,c as K,h as J,o as U,q as X}from"./chunk-CB33ZMNF.js";import{d as $}from"./chunk-TYBAV5LT.js";import{$a as i,Ac as w,Db as C,Fc as H,Ib as o,Jb as a,Kb as W,Lb as A,Ma as F,Mb as M,Ob as T,Qb as V,Qc as j,Rb as r,Rd as q,Ub as N,Vd as z,Yc as k,Yd as Z,Zc as Q,db as h,ec as c,fc as D,gc as f,gd as G,jc as y,jd as R,kb as O,kc as v,lc as x,na as E,ob as L,qb as g,rc as B,va as s,vb as d,wa as _,zc as S}from"./chunk-DJOHANFC.js";import{a as b,b as P}from"./chunk-7DCB7DB2.js";var xe=n=>({ID:n});function Ie(n,p){if(n&1){let e=T();o(0,"button",18),V("click",function(){s(e);let t=r();return _(t.openExportModal())}),W(1,"i",19),c(2," Export "),a()}}function he(n,p){if(n&1&&(o(0,"span",29),c(1),a()),n&2){let e=p.item;N("matTooltip",e.Value),i(),D(e.Value)}}function De(n,p){if(n&1){let e=T();o(0,"div",20)(1,"div")(2,"h6"),c(3,"Outlet"),a(),o(4,"outlet-selector",21),x("ngModelChange",function(t){s(e);let l=r();return v(l.pageData.Filter.OutletID,t)||(l.pageData.Filter.OutletID=t),_(t)}),a()(),o(5,"div")(6,"h6"),c(7,"Category"),a(),o(8,"POS-product-category-select",22),x("selectedCategoryIDChange",function(t){s(e);let l=r();return v(l.pageData.Filter.ProductCategoryID,t)||(l.pageData.Filter.ProductCategoryID=t),_(t)}),a()(),o(9,"div")(10,"h6"),c(11,"Brand"),a(),o(12,"ng-select",23),x("ngModelChange",function(t){s(e);let l=r();return v(l.pageData.Filter.ProductBrandID,t)||(l.pageData.Filter.ProductBrandID=t),_(t)}),g(13,he,2,2,"ng-template",24),a()(),o(14,"div")(15,"h6"),c(16,"Product Tags"),a(),o(17,"ng-select",25),x("ngModelChange",function(t){s(e);let l=r();return v(l.pageData.Filter.ProductTagID,t)||(l.pageData.Filter.ProductTagID=t),_(t)}),a()(),o(18,"div")(19,"h6"),c(20,"Quantity From - To"),a(),o(21,"div",26)(22,"input",27),x("ngModelChange",function(t){s(e);let l=r();return v(l.pageData.Filter.QtyFrom,t)||(l.pageData.Filter.QtyFrom=t),_(t)}),a(),c(23," - "),o(24,"input",28),x("ngModelChange",function(t){s(e);let l=r();return v(l.pageData.Filter.QtyTo,t)||(l.pageData.Filter.QtyTo=t),_(t)}),a()()()()}if(n&2){let e=r();i(4),d("accessType",2),y("ngModel",e.pageData.Filter.OutletID),i(4),y("selectedCategoryID",e.pageData.Filter.ProductCategoryID),d("showClear",!0),i(4),d("items",e.pageData.Options==null?null:e.pageData.Options.Brands),y("ngModel",e.pageData.Filter.ProductBrandID),i(5),d("items",e.pageData.Options==null?null:e.pageData.Options.Tags),y("ngModel",e.pageData.Filter.ProductTagID),i(5),y("ngModel",e.pageData.Filter.QtyFrom),i(2),y("ngModel",e.pageData.Filter.QtyTo)}}function Se(n,p){if(n&1&&(o(0,"th",10),c(1),a()),n&2){let e=r();i(),f(" ",e.column.VariantName.name," ")}}function we(n,p){if(n&1&&(o(0,"th",11),c(1),a()),n&2){let e=r();i(),f(" ",e.column.VariantCode.name," ")}}function Te(n,p){if(n&1&&(o(0,"th",12),c(1),a()),n&2){let e=r();i(),f(" ",e.column.OnHand.name," ")}}function Ve(n,p){if(n&1&&(o(0,"th",30),c(1),a()),n&2){let e=r();i(),f(" ",e.column.DirectAllocated.name," ")}}function be(n,p){if(n&1&&(o(0,"th",14),c(1),a()),n&2){let e=r();i(),f(" ",e.column.IndirectAllocated.name," ")}}function Pe(n,p){if(n&1&&(o(0,"th",15),c(1),a()),n&2){let e=r();i(),f(" ",e.column.Available.name," ")}}function Ae(n,p){if(n&1&&(o(0,"td")(1,"a",31),c(2),a()()),n&2){let e=r().$implicit;i(),d("routerLink","/menu/Products/Catalog/Variants/Info")("queryParams",B(3,xe,e.VariantID)),i(),f(" ",e.VariantName," ")}}function Me(n,p){if(n&1&&(o(0,"td"),c(1),a()),n&2){let e=r().$implicit;i(),D(e.VariantCode)}}function Ee(n,p){if(n&1&&(o(0,"td"),c(1),S(2,"number"),a()),n&2){let e=r().$implicit;i(),D(w(2,1,e.OnHand))}}function Fe(n,p){if(n&1&&(o(0,"td"),c(1),S(2,"number"),a()),n&2){let e=r(2).$implicit;i(),f(" ",w(2,1,e.DirectAllocated)," ")}}function Oe(n,p){if(n&1&&g(0,Fe,3,3,"td",17),n&2){let e=r(2);d("ngIf",e.column.DirectAllocated&&e.column.DirectAllocated.selected)}}function Le(n,p){if(n&1&&(o(0,"td"),c(1),S(2,"number"),a()),n&2){let e=r(2).$implicit;i(),f(" ",w(2,1,e.DirectAllocated)," ")}}function We(n,p){if(n&1&&g(0,Le,3,3,"td",17),n&2){let e=r(2);d("ngIf",e.column.DirectAllocated&&e.column.DirectAllocated.selected)}}function Ne(n,p){if(n&1&&(o(0,"td"),c(1),S(2,"number"),a()),n&2){let e=r().$implicit;i(),D(w(2,1,e.IndirectAllocated))}}function Be(n,p){if(n&1&&(o(0,"td"),c(1),S(2,"number"),a()),n&2){let e=r().$implicit;i(),D(w(2,1,e.Available))}}function He(n,p){if(n&1&&(o(0,"tr"),g(1,Ae,3,5,"td")(2,Me,2,1,"td")(3,Ee,3,3,"td")(4,Oe,1,1,"td")(5,We,1,1,"td")(6,Ne,3,3,"td")(7,Be,3,3,"td"),a()),n&2){let e=r();i(),C(e.column.VariantName&&e.column.VariantName.selected?1:-1),i(),C(e.column.VariantCode&&e.column.VariantCode.selected?2:-1),i(),C(e.column.OnHand&&e.column.OnHand.selected?3:-1),i(),C(e.totalIndirect()>0?4:5),i(2),C(e.column.IndirectAllocated&&e.column.IndirectAllocated.selected&&e.totalIndirect()>0?6:-1),i(),C(e.column.Available&&e.column.Available.selected?7:-1)}}function je(n,p){if(n&1){let e=T();o(0,"div")(1,"POS-complex-pagination",32),V("jumpToPage",function(){s(e);let t=r();return _(t.getListData())})("previousPage",function(){s(e);let t=r();return _(t.getListData())})("nextPage",function(){s(e);let t=r();return _(t.getListData())}),a()()}if(n&2){let e=r();i(),d("total",e.data.Data.length)("pageData",e.pageData)}}var ve=class n extends ae{constructor(e,m,t,l,I){super(e,m,"inventory/GetListInventoryComposite","inventoryloader/GetListInventoryComposite",t,void 0,!1);this.httpService=m;this.csvConverter=l;this.roleService=I;j(()=>{let u=this.totalIndirect();u!==null&&u<=0&&(console.log("Indirect allocation is zero or negative"),this.column=P(b({},this.column),{DirectAllocated:P(b({},this.column.DirectAllocated),{name:"Allocated"}),IndirectAllocated:P(b({},this.column.IndirectAllocated),{show:!1})}))})}column={VariantName:{selected:!0,name:"Name",show:!0},VariantCode:{selected:!0,name:"Code",show:!0},OnHand:{selected:!0,name:"On Hand",show:!0},DirectAllocated:{selected:!0,name:"Direct Allocated",show:!0},IndirectAllocated:{selected:!0,name:"Indirect Allocated",show:!0},Available:{selected:!0,name:"Available",show:!0}};totalIndirect=F(null);dialog=E(re);afterPostInit(e){console.log("Composite Inventory Data",e);let m=e.Data.reduce((t,l)=>t+l.IndirectAllocated,0);console.log("Total Indirect Allocated:",m),this.totalIndirect.set(m)}sortData(e){let m=[...this.data.Data];if(!e.active||e.direction===""){this.infiniteList=m;return}this.infiniteList=m.sort((t,l)=>{let I=e.direction==="asc";return this.compare(t[e.active],l[e.active],I)})}openExportModal(){this.dialog.open(pe,{data:{title:"Composite Inventory",exportTypes:[{ID:"inventoryExport/GetExportInventoryComposite",Value:"Default",FileName:"Composite Inventory"}],filterExport:this.pageData.Filter,getAllDataLengthAPI:"inventory/GetCountInventoryComposite",pagination:!0}})}static \u0275fac=function(m){return new(m||n)(h(de),h(Z),h(z),h(se),h($))};static \u0275cmp=O({type:n,selectors:[["pos-composite-inventory"]],features:[L],decls:21,vars:14,consts:[["pageFilterTemplate",""],["tooltipTitle","Identify and manage unsold inventory that has been stagnant for a long time",3,"textChange","onSubmit","filterChange","pageData","text","isFilterOnDropdown","filter","column"],["ngProjectAs","actions",5,["actions"]],["class","btn btn-outline-secondary me-3",3,"click",4,"ngIf"],["ngProjectAs","filters",5,["filters"]],["ngProjectAs","content",5,["content"]],[1,"container-fluid","mt-3"],[1,"table-responsive"],["id","tableGrid","matSort","",1,"table","border-bottom",3,"matSortChange"],[1,"thead-light","sticky-top-thead"],["mat-sort-header","VariantName",2,"width","20%"],["mat-sort-header","VariantCode",2,"width","20%"],["mat-sort-header","OnHand",2,"width","10%"],["style","width: 10%","mat-sort-header","DirectAllocated",4,"ngIf"],["mat-sort-header","IndirectAllocated",2,"width","10%"],["mat-sort-header","Available",2,"width","10%"],[4,"ngFor","ngForOf"],[4,"ngIf"],[1,"btn","btn-outline-secondary","me-3",3,"click"],["aria-hidden","true",1,"fa-solid","fa-upload"],[1,"d-flex","flex-column","gap-4"],["placeholder","Choose Outlets (Leave Blank to Choose All)",1,"ng-select-multiple",3,"ngModelChange","accessType","ngModel"],[1,"tree-select-as-filter",3,"selectedCategoryIDChange","selectedCategoryID","showClear"],["bindLabel","Value","bindValue","Key","placeholder","Choose Brand",3,"ngModelChange","items","ngModel"],["ng-option-tmp",""],["appendTo","body","bindLabel","Name","bindValue","ID","placeholder","Choose Tag",3,"ngModelChange","items","ngModel"],[1,"d-flex","align-items-center",2,"column-gap","8px"],["type","number","name","QuantityFrom",1,"form-control","input-filter",3,"ngModelChange","ngModel"],["type","number","name","QuantityTo",1,"form-control","input-filter",3,"ngModelChange","ngModel"],["matTooltipPosition","above",3,"matTooltip"],["mat-sort-header","DirectAllocated",2,"width","10%"],[3,"routerLink","queryParams"],["api","inventory/GetCountInventoryComposite",3,"jumpToPage","previousPage","nextPage","total","pageData"]],template:function(m,t){if(m&1){let l=T();o(0,"mainpanel-cmp",1),x("textChange",function(u){return s(l),v(t.pageData.Filter.SearchText,u)||(t.pageData.Filter.SearchText=u),_(u)}),V("onSubmit",function(){return s(l),_(t.searchFromPageOne())}),x("filterChange",function(u){return s(l),v(t.pageData.Filter,u)||(t.pageData.Filter=u),_(u)}),A(1,2),g(2,Ie,3,0,"button",3),M(),A(3,4),g(4,De,25,10,"ng-template",null,0,H),M(),A(6,5),o(7,"div",6)(8,"div",7)(9,"table",8),V("matSortChange",function(u){return s(l),_(t.sortData(u))}),o(10,"thead",9)(11,"tr"),g(12,Se,2,1,"th",10)(13,we,2,1,"th",11)(14,Te,2,1,"th",12)(15,Ve,2,1,"th",13)(16,be,2,1,"th",14)(17,Pe,2,1,"th",15),a()(),o(18,"tbody"),g(19,He,8,6,"tr",16),a()()(),g(20,je,2,2,"div",17),a(),M(),a()}m&2&&(d("pageData",t.menuData),y("text",t.pageData.Filter.SearchText),d("isFilterOnDropdown",!1),y("filter",t.pageData.Filter),d("column",t.column),i(2),d("ngIf",t.roleService.global.Export),i(10),C(t.column.VariantName&&t.column.VariantName.selected?12:-1),i(),C(t.column.VariantCode&&t.column.VariantCode.selected?13:-1),i(),C(t.column.OnHand&&t.column.OnHand.selected?14:-1),i(),d("ngIf",t.column.DirectAllocated&&t.column.DirectAllocated.selected),i(),C(t.column.IndirectAllocated&&t.column.IndirectAllocated.selected&&t.totalIndirect()>0?16:-1),i(),C(t.column.Available&&t.column.Available.selected?17:-1),i(2),d("ngForOf",t.infiniteList),i(),d("ngIf",t.data))},dependencies:[ue,_e,ge,Ce,Y,K,X,J,U,ce,me,le,te,ee,ye,fe,R,k,Q,G,q,oe,ne,ie],styles:["[_nghost-%COMP%]{display:block}"]})};export{ve as a};
1
+ import{a as ae}from"./chunk-MNDTLKMW.js";import{f as Ce}from"./chunk-SUDQN46A.js";import{a as fe,b as ye}from"./chunk-NHTMJTLV.js";import{a as ne,b as ie,c as oe}from"./chunk-V5O3E5XQ.js";import{c as ge}from"./chunk-SFIZ555B.js";import{b as pe}from"./chunk-2U6W2RNU.js";import{a as se}from"./chunk-NDM2ODJP.js";import{d as _e,e as ue}from"./chunk-GSTEQZ5S.js";import{b as de}from"./chunk-HJIQRJBG.js";import{b as ee,c as te}from"./chunk-XOQ4SW2R.js";import{a as le,d as me,e as ce}from"./chunk-3GV7FUAX.js";import{g as re}from"./chunk-6BL2JKZG.js";import{F as Y,c as K,h as J,o as U,q as X}from"./chunk-CB33ZMNF.js";import{d as $}from"./chunk-TYBAV5LT.js";import{$a as i,Ac as w,Db as C,Fc as H,Ib as o,Jb as a,Kb as W,Lb as A,Ma as F,Mb as M,Ob as T,Qb as V,Qc as j,Rb as r,Rd as q,Ub as N,Vd as z,Yc as k,Yd as Z,Zc as Q,db as h,ec as c,fc as D,gc as f,gd as G,jc as y,jd as R,kb as O,kc as v,lc as x,na as E,ob as L,qb as g,rc as B,va as s,vb as d,wa as _,zc as S}from"./chunk-DJOHANFC.js";import{a as b,b as P}from"./chunk-7DCB7DB2.js";var xe=n=>({ID:n});function Ie(n,p){if(n&1){let e=T();o(0,"button",18),V("click",function(){s(e);let t=r();return _(t.openExportModal())}),W(1,"i",19),c(2," Export "),a()}}function he(n,p){if(n&1&&(o(0,"span",29),c(1),a()),n&2){let e=p.item;N("matTooltip",e.Value),i(),D(e.Value)}}function De(n,p){if(n&1){let e=T();o(0,"div",20)(1,"div")(2,"h6"),c(3,"Outlet"),a(),o(4,"outlet-selector",21),x("ngModelChange",function(t){s(e);let l=r();return v(l.pageData.Filter.OutletID,t)||(l.pageData.Filter.OutletID=t),_(t)}),a()(),o(5,"div")(6,"h6"),c(7,"Category"),a(),o(8,"POS-product-category-select",22),x("selectedCategoryIDChange",function(t){s(e);let l=r();return v(l.pageData.Filter.ProductCategoryID,t)||(l.pageData.Filter.ProductCategoryID=t),_(t)}),a()(),o(9,"div")(10,"h6"),c(11,"Brand"),a(),o(12,"ng-select",23),x("ngModelChange",function(t){s(e);let l=r();return v(l.pageData.Filter.ProductBrandID,t)||(l.pageData.Filter.ProductBrandID=t),_(t)}),g(13,he,2,2,"ng-template",24),a()(),o(14,"div")(15,"h6"),c(16,"Product Tags"),a(),o(17,"ng-select",25),x("ngModelChange",function(t){s(e);let l=r();return v(l.pageData.Filter.ProductTagID,t)||(l.pageData.Filter.ProductTagID=t),_(t)}),a()(),o(18,"div")(19,"h6"),c(20,"Quantity From - To"),a(),o(21,"div",26)(22,"input",27),x("ngModelChange",function(t){s(e);let l=r();return v(l.pageData.Filter.QtyFrom,t)||(l.pageData.Filter.QtyFrom=t),_(t)}),a(),c(23," - "),o(24,"input",28),x("ngModelChange",function(t){s(e);let l=r();return v(l.pageData.Filter.QtyTo,t)||(l.pageData.Filter.QtyTo=t),_(t)}),a()()()()}if(n&2){let e=r();i(4),d("accessType",2),y("ngModel",e.pageData.Filter.OutletID),i(4),y("selectedCategoryID",e.pageData.Filter.ProductCategoryID),d("showClear",!0),i(4),d("items",e.pageData.Options==null?null:e.pageData.Options.Brands),y("ngModel",e.pageData.Filter.ProductBrandID),i(5),d("items",e.pageData.Options==null?null:e.pageData.Options.Tags),y("ngModel",e.pageData.Filter.ProductTagID),i(5),y("ngModel",e.pageData.Filter.QtyFrom),i(2),y("ngModel",e.pageData.Filter.QtyTo)}}function Se(n,p){if(n&1&&(o(0,"th",10),c(1),a()),n&2){let e=r();i(),f(" ",e.column.VariantName.name," ")}}function we(n,p){if(n&1&&(o(0,"th",11),c(1),a()),n&2){let e=r();i(),f(" ",e.column.VariantCode.name," ")}}function Te(n,p){if(n&1&&(o(0,"th",12),c(1),a()),n&2){let e=r();i(),f(" ",e.column.OnHand.name," ")}}function Ve(n,p){if(n&1&&(o(0,"th",30),c(1),a()),n&2){let e=r();i(),f(" ",e.column.DirectAllocated.name," ")}}function be(n,p){if(n&1&&(o(0,"th",14),c(1),a()),n&2){let e=r();i(),f(" ",e.column.IndirectAllocated.name," ")}}function Pe(n,p){if(n&1&&(o(0,"th",15),c(1),a()),n&2){let e=r();i(),f(" ",e.column.Available.name," ")}}function Ae(n,p){if(n&1&&(o(0,"td")(1,"a",31),c(2),a()()),n&2){let e=r().$implicit;i(),d("routerLink","/menu/Products/Catalog/Variants/Info")("queryParams",B(3,xe,e.VariantID)),i(),f(" ",e.VariantName," ")}}function Me(n,p){if(n&1&&(o(0,"td"),c(1),a()),n&2){let e=r().$implicit;i(),D(e.VariantCode)}}function Ee(n,p){if(n&1&&(o(0,"td"),c(1),S(2,"number"),a()),n&2){let e=r().$implicit;i(),D(w(2,1,e.OnHand))}}function Fe(n,p){if(n&1&&(o(0,"td"),c(1),S(2,"number"),a()),n&2){let e=r(2).$implicit;i(),f(" ",w(2,1,e.DirectAllocated)," ")}}function Oe(n,p){if(n&1&&g(0,Fe,3,3,"td",17),n&2){let e=r(2);d("ngIf",e.column.DirectAllocated&&e.column.DirectAllocated.selected)}}function Le(n,p){if(n&1&&(o(0,"td"),c(1),S(2,"number"),a()),n&2){let e=r(2).$implicit;i(),f(" ",w(2,1,e.DirectAllocated)," ")}}function We(n,p){if(n&1&&g(0,Le,3,3,"td",17),n&2){let e=r(2);d("ngIf",e.column.DirectAllocated&&e.column.DirectAllocated.selected)}}function Ne(n,p){if(n&1&&(o(0,"td"),c(1),S(2,"number"),a()),n&2){let e=r().$implicit;i(),D(w(2,1,e.IndirectAllocated))}}function Be(n,p){if(n&1&&(o(0,"td"),c(1),S(2,"number"),a()),n&2){let e=r().$implicit;i(),D(w(2,1,e.Available))}}function He(n,p){if(n&1&&(o(0,"tr"),g(1,Ae,3,5,"td")(2,Me,2,1,"td")(3,Ee,3,3,"td")(4,Oe,1,1,"td")(5,We,1,1,"td")(6,Ne,3,3,"td")(7,Be,3,3,"td"),a()),n&2){let e=r();i(),C(e.column.VariantName&&e.column.VariantName.selected?1:-1),i(),C(e.column.VariantCode&&e.column.VariantCode.selected?2:-1),i(),C(e.column.OnHand&&e.column.OnHand.selected?3:-1),i(),C(e.totalIndirect()>0?4:5),i(2),C(e.column.IndirectAllocated&&e.column.IndirectAllocated.selected&&e.totalIndirect()>0?6:-1),i(),C(e.column.Available&&e.column.Available.selected?7:-1)}}function je(n,p){if(n&1){let e=T();o(0,"div")(1,"POS-complex-pagination",32),V("jumpToPage",function(){s(e);let t=r();return _(t.getListData())})("previousPage",function(){s(e);let t=r();return _(t.getListData())})("nextPage",function(){s(e);let t=r();return _(t.getListData())}),a()()}if(n&2){let e=r();i(),d("total",e.data.Data.length)("pageData",e.pageData)}}var ve=class n extends ae{constructor(e,m,t,l,I){super(e,m,"inventory/GetListInventoryComposite","inventoryloader/GetListInventoryComposite",t,void 0,!1);this.httpService=m;this.csvConverter=l;this.roleService=I;j(()=>{let u=this.totalIndirect();u!==null&&u<=0&&(console.log("Indirect allocation is zero or negative"),this.column=P(b({},this.column),{DirectAllocated:P(b({},this.column.DirectAllocated),{name:"Allocated"}),IndirectAllocated:P(b({},this.column.IndirectAllocated),{show:!1})}))})}column={VariantName:{selected:!0,name:"Name",show:!0},VariantCode:{selected:!0,name:"Code",show:!0},OnHand:{selected:!0,name:"On Hand",show:!0},DirectAllocated:{selected:!0,name:"Direct Allocated",show:!0},IndirectAllocated:{selected:!0,name:"Indirect Allocated",show:!0},Available:{selected:!0,name:"Available",show:!0}};totalIndirect=F(null);dialog=E(re);afterPostInit(e){console.log("Composite Inventory Data",e);let m=e.Data.reduce((t,l)=>t+l.IndirectAllocated,0);console.log("Total Indirect Allocated:",m),this.totalIndirect.set(m)}sortData(e){let m=[...this.data.Data];if(!e.active||e.direction===""){this.infiniteList=m;return}this.infiniteList=m.sort((t,l)=>{let I=e.direction==="asc";return this.compare(t[e.active],l[e.active],I)})}openExportModal(){this.dialog.open(pe,{data:{title:"Composite Inventory",exportTypes:[{ID:"inventoryExport/GetExportInventoryComposite",Value:"Default",FileName:"Composite Inventory"}],filterExport:this.pageData.Filter,getAllDataLengthAPI:"inventory/GetCountInventoryComposite",pagination:!0}})}static \u0275fac=function(m){return new(m||n)(h(de),h(Z),h(z),h(se),h($))};static \u0275cmp=O({type:n,selectors:[["pos-composite-inventory"]],features:[L],decls:21,vars:14,consts:[["pageFilterTemplate",""],["tooltipTitle","Identify and manage unsold inventory that has been stagnant for a long time",3,"textChange","onSubmit","filterChange","pageData","text","isFilterOnDropdown","filter","column"],["ngProjectAs","actions",5,["actions"]],["class","btn btn-outline-secondary me-3",3,"click",4,"ngIf"],["ngProjectAs","filters",5,["filters"]],["ngProjectAs","content",5,["content"]],[1,"container-fluid","mt-3"],[1,"table-responsive"],["id","tableGrid","matSort","",1,"table","border-bottom",3,"matSortChange"],[1,"thead-light","sticky-top-thead"],["mat-sort-header","VariantName",2,"width","20%"],["mat-sort-header","VariantCode",2,"width","20%"],["mat-sort-header","OnHand",2,"width","10%"],["style","width: 10%","mat-sort-header","DirectAllocated",4,"ngIf"],["mat-sort-header","IndirectAllocated",2,"width","10%"],["mat-sort-header","Available",2,"width","10%"],[4,"ngFor","ngForOf"],[4,"ngIf"],[1,"btn","btn-outline-secondary","me-3",3,"click"],["aria-hidden","true",1,"fa-solid","fa-upload"],[1,"d-flex","flex-column","gap-4"],["placeholder","Choose Outlets (Leave Blank to Choose All)",1,"ng-select-multiple",3,"ngModelChange","accessType","ngModel"],[1,"tree-select-as-filter",3,"selectedCategoryIDChange","selectedCategoryID","showClear"],["bindLabel","Value","bindValue","Key","placeholder","Choose Brand",3,"ngModelChange","items","ngModel"],["ng-option-tmp",""],["appendTo","body","bindLabel","Name","bindValue","ID","placeholder","Choose Tag",3,"ngModelChange","items","ngModel"],[1,"d-flex","align-items-center",2,"column-gap","8px"],["type","number","name","QuantityFrom",1,"form-control","input-filter",3,"ngModelChange","ngModel"],["type","number","name","QuantityTo",1,"form-control","input-filter",3,"ngModelChange","ngModel"],["matTooltipPosition","above",3,"matTooltip"],["mat-sort-header","DirectAllocated",2,"width","10%"],[3,"routerLink","queryParams"],["api","inventory/GetCountInventoryComposite",3,"jumpToPage","previousPage","nextPage","total","pageData"]],template:function(m,t){if(m&1){let l=T();o(0,"mainpanel-cmp",1),x("textChange",function(u){return s(l),v(t.pageData.Filter.SearchText,u)||(t.pageData.Filter.SearchText=u),_(u)}),V("onSubmit",function(){return s(l),_(t.searchFromPageOne())}),x("filterChange",function(u){return s(l),v(t.pageData.Filter,u)||(t.pageData.Filter=u),_(u)}),A(1,2),g(2,Ie,3,0,"button",3),M(),A(3,4),g(4,De,25,10,"ng-template",null,0,H),M(),A(6,5),o(7,"div",6)(8,"div",7)(9,"table",8),V("matSortChange",function(u){return s(l),_(t.sortData(u))}),o(10,"thead",9)(11,"tr"),g(12,Se,2,1,"th",10)(13,we,2,1,"th",11)(14,Te,2,1,"th",12)(15,Ve,2,1,"th",13)(16,be,2,1,"th",14)(17,Pe,2,1,"th",15),a()(),o(18,"tbody"),g(19,He,8,6,"tr",16),a()()(),g(20,je,2,2,"div",17),a(),M(),a()}m&2&&(d("pageData",t.menuData),y("text",t.pageData.Filter.SearchText),d("isFilterOnDropdown",!1),y("filter",t.pageData.Filter),d("column",t.column),i(2),d("ngIf",t.roleService.global.Export),i(10),C(t.column.VariantName&&t.column.VariantName.selected?12:-1),i(),C(t.column.VariantCode&&t.column.VariantCode.selected?13:-1),i(),C(t.column.OnHand&&t.column.OnHand.selected?14:-1),i(),d("ngIf",t.column.DirectAllocated&&t.column.DirectAllocated.selected),i(),C(t.column.IndirectAllocated&&t.column.IndirectAllocated.selected&&t.totalIndirect()>0?16:-1),i(),C(t.column.Available&&t.column.Available.selected?17:-1),i(2),d("ngForOf",t.infiniteList),i(),d("ngIf",t.data))},dependencies:[ue,_e,ge,Ce,Y,K,X,J,U,ce,me,le,te,ee,ye,fe,R,k,Q,G,q,oe,ne,ie],styles:["[_nghost-%COMP%]{display:block}"]})};export{ve as a};