From 37f20848600896825f84ab4d7cbe4af3a736652b Mon Sep 17 00:00:00 2001 From: Suherdy Yacob Date: Thu, 12 Mar 2026 09:11:50 +0700 Subject: [PATCH] feat: Enhance POS session validation with cash balance auto-adjustment and zero-amount payment cleanup. --- __pycache__/__init__.cpython-310.pyc | Bin 226 -> 0 bytes __pycache__/__init__.cpython-312.pyc | Bin 233 -> 0 bytes models/__pycache__/__init__.cpython-310.pyc | Bin 238 -> 0 bytes models/__pycache__/__init__.cpython-312.pyc | Bin 245 -> 0 bytes models/__pycache__/pos_session.cpython-310.pyc | Bin 4483 -> 0 bytes models/__pycache__/pos_session.cpython-312.pyc | Bin 7280 -> 0 bytes 6 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 __pycache__/__init__.cpython-310.pyc delete mode 100644 __pycache__/__init__.cpython-312.pyc delete mode 100644 models/__pycache__/__init__.cpython-310.pyc delete mode 100644 models/__pycache__/__init__.cpython-312.pyc delete mode 100644 models/__pycache__/pos_session.cpython-310.pyc delete mode 100644 models/__pycache__/pos_session.cpython-312.pyc diff --git a/__pycache__/__init__.cpython-310.pyc b/__pycache__/__init__.cpython-310.pyc deleted file mode 100644 index 4f113cb3a6225381c1ad928ab6ccb1aba5834122..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 226 zcmYjLK?=e!5KO9w2!$T}L@y13;6L!RW9diCTNJh}1Yz|Jtc z%rcngD@J&2=XRYmnSW$tYMM|G0R!GL$1j{S$j+>sy*aH*J}n%AX~VJ1Cf29Sll60w zAAN43L1#o58`DFqqSAP+o$8dYG*%YGDGm*KO+N$z;$|oG7zT6-0DTZ02B}qOBzDGI hf0qg#ba%!NLQ3oHAZ69XX}PBwV`~nnRY)}o_63mNJDdOj diff --git a/__pycache__/__init__.cpython-312.pyc b/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 5ff8e830127fc7cc73fed1d2ab54387e346ed6e1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 233 zcmXv|F=_)b5Y*loV*&>*{E2H$7y@aG@e54qG(y%YK82I^INcR`iQka7K3 z=PD~mrrDWUhMAwLdJ&B4>&&h4&Eg-$A9*a9oCFGlPI&kL5UHrk8?ar&dF}~q7x#5> z7DLJ2w|L~_^Ha9ut&CG^2TV=Uh7LQgdmS1>jYIjK#+HKNxFjT6zezL2k-SEv5M@tM x868_iy$voLmBugrdmBcnlnZWDs_D~nvEc<%XSc(GYxAm@$-M-Ci&zbF7Qf~uKZyVU diff --git a/models/__pycache__/__init__.cpython-310.pyc b/models/__pycache__/__init__.cpython-310.pyc deleted file mode 100644 index dc8c53ec359c7695b4e279d8410aae187c3d1029..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 238 zcmYjLF%H5o3``0G0##z=30)eozygRDAS5=HD8vyBYT~MHhdzlfb!FlUOgK!ObfwCJ-QN5#&`$0og?qlec8MkmI63(&UId##51vqD{f4 zXs5h>^a-lM;1uM$4pjHJ>BYpBxL nxai|u8+hyUy(oU diff --git a/models/__pycache__/__init__.cpython-312.pyc b/models/__pycache__/__init__.cpython-312.pyc deleted file mode 100644 index 405c7816fc818b88656b0d70dc8a175b1b48c624..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 245 zcmXv|J5B>J5cTXvC;~-Fn}6Wb68Wo^k8h>4C8;S!SC09pXvT-&2j!rlkuO2$qh99eRRSRtmpJuoAr5{_uaP3oS!*@3-`GrTAqJI`2q>Pu&bi3PFv zJZw*kB{?IOYa-UVBcginZrXd)`v5iw#gMST1M98{$oIPP}#Gi>COV<+W(3 z&Wj76TKdxQoc1#Ae9<)Sruv@Lx|=4$sVvo-x}2=sev-*fE=BWBCX;Tm+q@a;Ju}rA zC?%85LDUuZhc|wjD%puOk>Rn|jQi;z$(!AzneWM_Q1N4_nveHnF)w*HySkZzsT7+n z&jdPGU~guRIa}46P{~-NN$ z<;_YPCF9MOuLxBtL}zN{vBuXqbgT&TW@SQ#>HxDmv0UE1!?2_Jkx#g2H_`OF=tj;h z=d*>UY{d4REEMc1$B1P!7`Y>N#Mhh=i}*t>oO{kIzWo<$vA>q9W-(B6=*;TGxhE=t zQ9UhtJEm4%(S*mc;$GH@uN<`s9$#l$dud;8>A{{<;$ZV2?xYWH^y4f}HaqENS8Uxq z$oJBu125c4MVh{UWverQO8T(?IP?}ETUex$B^LX5-&^T*+>-oHRdc*T$I(?nEGbGM~^hxw6?hT~zlQfsQ zL&~gvq})2%O*EaLvueFWNZoh#nVQ0rCs629uUOG%@N}~kyTV3ZwjtP>^VA=?P&14% z!dkiaoe`s*!hPwJDL{d2F!D$I2$=%-_hE*hFoOvQV^Xwya>^K*oT)%(Wme}P+KHu1 z?M@Lf?zaMUmR=F+iuacCO-#)O*)K1Hip=9~Pe*-(;CNSJ8`(mgr;c=O4Wd?PTjRvr z3ZsxSS<9F?Een36Q!u}TH=2$P*&-}t(GL3*f3qz7X1?aJ;l`MyPBEAOI|n1OjkU!G z7>t}l=g5KPV2ORM8v?+^*d_4qdx!pr5!jEITEje`h?AWq8a0p2t(s}bL=P0gYa++A zMDazD-A%2lqoGu(RUACQ!gID#e35TXt6)9ag$^p3on9K}Q9=0;SZa!31z-a<&jKiA zcya9duig9|Q2Jm*%Fw?@XF>TPKuIv<`f3RxzG4v9rXN&TgW10SCKZuZlh!|R5HY=qv;$D=iIMGE2Gm9q-d)-75 z{e+JYZmC%x`6C7v8lM)~_7KtL2-TwCzvb%=r3Q5$o`H&S9bQ9KBQmkKO*ujl$Yj^`PHkrV;P%A_>7X+QQVPIumqysg^=f)N0MC%XpY@r`toOlESz$d1R&t zi6Yun=^!(_E7aQ{QWT4f3)bpKGzw5dWY}?j63=;>!-9;(Dk}o` z>OEq(Hu?S}{#Id{vZYzFRFhXX0g~yUmz%}n^l=ii(2o<;uZ3#u`_sW}<+vEJ8%x1H z#cBE-bRh@o5!D;0Wcat97a*QfjGxDRmckpS0O$R6*c|tZs;C`jIe}p+La9Kq;q7-A zj1@KPkQ0V2c0bD9;%f>e3>V(6bHs1q+XbjY6^RvO)$A=10IA3Z*+q;hG`g$K(}40Y zo>TzQx=%SGyCMQSYuS(Stc`+EAZjmbHak;M6mFYkA$MYEbRum|h)-#XqLija$?rFC z!q4jDf`|5_@QD8cNel4i6fG^>EC9EGOc&Xs#SPzl&v^axkvwgY`n6ru0Z%e@{Ry$B z;+lW4;S4X2X_yiaLD_yW6!ljm;ym8G)=N8aPha0WW@3CgM4Qpd< zc&kO6XqGB}vo0DK4mjS)-qtJ$Jv-Ucn)Lk%Cx2dB;OfbkGtF%?VJ**WLdDo*W zs5?ZnSOV9|9$Dm?x$*|OJl)J!Ik*zb%vPgfi~1!U+NACz-v0{I98F(DNAu zLEnU*pfJIm4^9d@s}V&AGc_Sm;~`zpM}@74joVFf#Gza%`u~Hn`IZux+NO@KW@gHQ zx+8nNs;IWNZxRU=)HcIf{9eN>biDG~bmicmUQk?pa*WwGjSxx-7U#nG>H7S9gDtOF sPTTlu@aXHwN^LKu2(`xlg#No>X~sZ)YzY%yE3|Z-!o3ChGCSk`8?#Bh$p8QV diff --git a/models/__pycache__/pos_session.cpython-312.pyc b/models/__pycache__/pos_session.cpython-312.pyc deleted file mode 100644 index c42ab7e8809f9dba4f05f328253ba335d12bcdc9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7280 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 o`DJ)SD=MJ7S