From 25128fcc536e01a707e403bd7cf45c02b5c74b0b Mon Sep 17 00:00:00 2001 From: emile Date: Sat, 22 Jun 2024 12:28:52 +0300 Subject: [PATCH] new --- .../__pycache__/models.cpython-310.pyc | Bin 6757 -> 6949 bytes .../billing/__pycache__/views.cpython-310.pyc | Bin 2233 -> 2306 bytes .../add/__pycache__/views.cpython-310.pyc | Bin 6772 -> 6772 bytes osinaweb/billing/models.py | 13 ++++++-- osinaweb/billing/views.py | 2 +- .../payment/__pycache__/views.cpython-310.pyc | Bin 7838 -> 7886 bytes osinaweb/customercore/payment/views.py | 6 ++-- .../templates/products/osicard-plans.html | 31 +++++++++++++++--- osinaweb/db.sqlite3 | Bin 1376256 -> 1376256 bytes .../delete/__pycache__/urls.cpython-310.pyc | Bin 1215 -> 1303 bytes .../delete/__pycache__/views.cpython-310.pyc | Bin 3438 -> 3611 bytes .../edit/__pycache__/views.cpython-310.pyc | Bin 13034 -> 12819 bytes 12 files changed, 40 insertions(+), 12 deletions(-) diff --git a/osinaweb/billing/__pycache__/models.cpython-310.pyc b/osinaweb/billing/__pycache__/models.cpython-310.pyc index 6692b3d61af327d43a58565fa8b75d3a12d75250..4e0036be6dfefbd8263d8ecce847826ddf803ebb 100644 GIT binary patch delta 1263 zcmZ8f-)kII6rM9Xvpd;e*^Hb0k#@CUi*6w?sPrM?gN>*`OhQX*Sum5`o!Q;lY-YRn z-ej9~mS93kiX>RBs89==q7On*q^~0Q7ue@{7x7iWhdzks%r*rbINzM}%{gbzJ>UK9 z^=~hwyQx%M!NV(YeYpca*V80x-mNAt=s>Zx{Y7!`3px(}m- ztz*B~xRW2dr|jO3_==^7q|kh2Uu~y+a1~$u295y~Te+%~jpc!QVJCo(_D$%ohKSW#Ak*s9~%uGeJtIF7zkbvusDoN+j@SoP{ohnPmlJV`8h=T=#_$sEpE z6FK%8L5#qbU#1#h$xm{HVhxG+(Kua1L(w1;%RmxXO-^aqM~mqdfORP+mrE_G4E214 zyo(4yv|1PLw!_xsKa&>{9}&MvurB8^C4B?k8*(*Mf(>j|cyv1x1L(@*sV21K-%~9R z(lY0vE1r24v7wH4fP*>(PE?fBGTZk>_&@urICL zLU9k152$LaMiQ?|n$+0C?2`O7*Mq)%E5Cx9yPH1?pUdy_muJGYhZDYxm8?v#MzAI0 zg%@B?UM$S(eI$;gRVZQu`tecW0emgzi<+2SF(U!gr4CXVCd oFo*J&;(If6aTrNFUO!Df?r@0rDlZpi&Lzrb$~4V0rjbkh3wd5W4*&oF delta 1045 zcmZ8fOK1~e5Z+04lQe14?KbaPTYLu*L`6jr@qt*RR&A>owQJ07$fc_H<^qp^wZx@ zOz7Enskia#8o4T27nwXx&{pb-T<$?VR1ecxwcsv1)#jC}VK34S--M@8D>M&RRlcjo z9xGP3tv*(s5Z6?^4iDPO%}_nw21jX!p2Ix=#ZpF;l6trVVm0Z1=hqftLn-0MTyfp9 zh3Qyg69xUKd#-L*Jt_8)7m$6e>Q1*jKP)}rYgZ2rq}Awn6m#8uP@~-Z!ccb<;5?2QHOl?amBuf| zC^T_R&qgruM9<2^5a$MCu<&-zD$ORpj&FKCYvK?caW>t1!e!1dfgkgnrhUb2*?zd? zUh>t;c14ILUk5t7n4?mUX^;+0QO|NgTaYW4vgW?^kAAd@xO6Q;i1fa zaPdJVp9ntEVon(sGHVBePvsf|J#pqwb}-REEEp@-#0{4QK}^xXfEegxp->#s5z*w% z;}4q9&fcI@`f|{6zc%FB@9`N3z!x%WHF~OrZDv~E?`MvUdUL> zoWfGWoXJ?rQo>rpkiuHS(##yppvmUvrpb6qIKL<*wWzoxv81#(K0dQJuQVrT@&qPL y5w=^b{vfF$KA^$3m=kkyiufm2GRseX&ZNdDF`189b@CHtk;xTIa+@8QD_8-SBq_iE delta 71 zcmZn?+9}AJ&&$ij00a?x0@EBf@`f`pex4l3Y&dxvld=%&Emr@cl+>akKA?hI%!xTU ZlRq#yF$zpJW>#e>l3-xi+`!z#3IMV36FmR` diff --git a/osinaweb/billing/add/__pycache__/views.cpython-310.pyc b/osinaweb/billing/add/__pycache__/views.cpython-310.pyc index 2203774cf1ea0ae0b97ebb337a70d76c3fee0f12..5fdb78a027b8e92246b73be52e77c22525846cb0 100644 GIT binary patch delta 69 zcmexj^2LNVpO=@50SG)|OVb!P@~#zQyft~Zm>OgK=0`x1v0*Z&ge+s@WOa#MjIEm= WNf%vbw}B#+J>G WBn%nZT7asHG$u3h3s2UO@&EvtP7-zi diff --git a/osinaweb/billing/models.py b/osinaweb/billing/models.py index 9f43a979..47b2c202 100644 --- a/osinaweb/billing/models.py +++ b/osinaweb/billing/models.py @@ -58,9 +58,16 @@ class Order(models.Model): return None def save(self, *args, **kwargs): if not self.order_id: - order_count = Order.objects.filter(customer=self.customer).count() - order_count_str = str(order_count).zfill(4) - self.order_id = f"{self.customer.customer_id}-{order_count_str}" + current_year_last_two_digits = timezone.now().strftime('%y') + last_order = Order.objects.filter(order_id__startswith=f'O{current_year_last_two_digits}').order_by('-order_id').first() + if last_order: + last_order_number = int(last_order.order_id[4:]) + new_order_number = last_order_number + 1 + else: + new_order_number = 0 + + new_order_number_str = str(new_order_number).zfill(4) + self.order_id = f'O{current_year_last_two_digits}{new_order_number_str}' super(Order, self).save(*args, **kwargs) diff --git a/osinaweb/billing/views.py b/osinaweb/billing/views.py index 85a5c2a2..06eb3252 100644 --- a/osinaweb/billing/views.py +++ b/osinaweb/billing/views.py @@ -17,7 +17,7 @@ def items(request, *args, **kwargs): def orders(request, *args, **kwargs): - orders = Order.objects.all().order_by('-id') + orders = Order.objects.all().filter(orderstatus__isnull=False).order_by('-id') context = { 'orders': orders, } diff --git a/osinaweb/customercore/payment/__pycache__/views.cpython-310.pyc b/osinaweb/customercore/payment/__pycache__/views.cpython-310.pyc index 4bfccda0fdce315db172240bad9c8f64b723cb3c..b74488a2d7e000bd247b8b63cf31555b204502e4 100644 GIT binary patch delta 1760 zcmciCOKclO7zc2sshh-(AH{JR5|X-w0!!P-PHZ<$NogJ~waA0kp%6E&>C3*|8gDgogsr0`HFMylY#g#%nFaY9;g_EPF7a6Cf{s_4F}b-PQCX%T>0{bJAxE3wBo| z5$)dB8;NAY@mNyt>EY2CJyzg_L{Tp$6UAgQ*25Eeq&uF-Hmt9uFrH{goCbYKpW}Jc zpj+j1Lfb^gM3=99|1mlHrBk9YXR}dQvgDT3hOr}O3tuqu1)Fxr3GD=TfIGo1an9G% zb{B?sgL{Amc7r|Qdtb-iy%=_Z2+S`U>KypA@Bg01~Z@_-u1UKU3}$_v$XilA8mXP`?<60L<= zF+K`1;z%GktvZW5sR&d?E|n}jA`4j`KVw?9xo|RHB7@W4t(R9Ew<_dKo6pmuxOWm{ z!EvBoc1m0eTx84D+*Y=UZ5R3AtlZ|e!Gmm%Xl&jYRDIbmSEExl*BBiZ2bx#g)$5~? zPLoxhv2-#QZL_qn#%Ngl(R^w}C8t6|niWs#jLy}HzOc5N=JD|=9+g%AQx(fNMhMjL zjN@%GcEK)NL@1ZRXFZdrwsoTkL+woB}C_3Jh-TQNdsSw^0T zF*=9GJ_Viz&w%Fu_D&Zi74LW^J(?POI6OFzNe|IWxG)Qz08dI}bKaBxCe}7z|GLp7 zTzwx1a2C8OIYh6lVEmdy>!dd@eiOU}R>9lg9q_Nw-q3B;$JcSkP0g%BZ5n(4f^?40@wi^`IS delta 1685 zcmc)K-EWgs90%|oO4;bkTI{;c0;Rl(kGT0VnXs|wHo7ntHl#(dgVnCj>Gqgy9lz(P z4rFN}Q6b7O9w1=iqDG8MP%{fAyYj{hy)iLfm^|?xkQ;9e7slWBR6x1VOLy_vdF#`2 zzQ6PIhn~frP&pLxd-(6C>r~1vhraiT+v;cEZsFDds}ugSBCl@y#~V9&*zi)PG6Sy#(4m(=LEQ>;iHX|w;4h+$Heo0QHiIpo#JG*c zlf@~Sw@i9~yIEru9aUpZ>${I~@7E+_2zRwvIBD}&=ndc-+%%oiNm${pGUwu6Vj z4t1lcBk?er26zPQ1Z|*QiSWj@$IyHnJPDoxO?L^S^)$1B#%?tfHX?h_>;m0juUZJl zgVcw1KVxiG%i&mTKl+1U9GIY}ehjw?scwaLi6NDWJW)M};bAZW4uR*uVbB45Aj23f z)QWZ%90AXR7XU&cT_t2mlR)R=)2Y&nJdkUWbC&H`GZXnTnUXlgc3w8bQ?6f+<1;@Z~pierc{)jAy`P%t)VwFg#3(-kF#qZH)MZ4P5yd|oO(!;A!CPx~A4yc*t z#r6B}0Bq0=+Ldv;NY<=lm1mX&4X7Ql6V+!h-wXCKrvmA@qSPz8QpQdyV?w8=!;GM- zQ`0dGaMult;5Zql;8bjKu;5iN2VMb^af7oJDoz$`sqc#pXD!aF;w^o>YcBtf7 z(~|U--@!-Eg9VTV7Z}&)Sk9EBVYSeb5EZr5vT0No?rx=AFF(nM*2|@fgphU3TyKS@ z>i4&bG31;J)zdenQ?RCNH*l{QHl0>mo~cbQY6k<8%1^ze~XUvFlxpWeg7%iwizhT-CT!vC^M ztM9#Q^gd>p-2zef4D>gu{(#V777o)=^K9r_fl zD3Cz!q=MFcZ_#HSzDP^{di>Y1;B)W=z$MKE>jB&K8*>`tUjn2|qkPL-)x|_k+~jBv ziRyo6+24D3Up-6yZNh=whFL0?EWRWPkNju0^c9a~sfHN@nQP#3;1PGijA7Fmb z<5Ayj2>!2mx)E9@O^amF$(L=bSRj*bAf$MSq`WiKDR{eIW6vw<+{Q{w*95O8HT-oD Y4}GYj$#f!*{sfo@%itzhQItIPCrQtO9{>OV diff --git a/osinaweb/customercore/payment/views.py b/osinaweb/customercore/payment/views.py index f8233c76..93f578a1 100644 --- a/osinaweb/customercore/payment/views.py +++ b/osinaweb/customercore/payment/views.py @@ -126,9 +126,9 @@ def buy_now(request, item_id): @customer_login_required def buy_now_checkout(request): - api_username = 'merchant.TEST06127800' - api_password = '37846250a67c70e7fe9f82cf6ca81f93' - merchant_id = 'TEST06127800' + api_username = 'merchant.06127800' + api_password = '549c33e1bc4aea6fcf96f9943e6c0256' + merchant_id = '06127800' merchant_name = 'Ositcom Sal' customer = request.user.customerprofile diff --git a/osinaweb/customercore/templates/products/osicard-plans.html b/osinaweb/customercore/templates/products/osicard-plans.html index 6b1f4d44..f1ffad85 100644 --- a/osinaweb/customercore/templates/products/osicard-plans.html +++ b/osinaweb/customercore/templates/products/osicard-plans.html @@ -39,12 +39,19 @@

Features:

+
+ + + +

One business

+
-

One user

+

One profile

Features:
+
+ + + +

One business

+
-

One user

+

10 profiles

-

One digital business card

+

10 digital business cards

-

Unlimited user

+

One business

+
+
+ + + +

Unlimited profiles

-

Unlimited digital business card

+

Unlimited digital business cards

YAUTNm^e@8cJzeN1DtOYu4+_C<9~AbBpi#w?p$y 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 delta 96 zcmbQvwVzWvpO=@50SF@Y1g1H$Ffcp@agYH&kmCTv#k(eIZ{8NUDk9gq;y diff --git a/osinaweb/osinacore/delete/__pycache__/views.cpython-310.pyc b/osinaweb/osinacore/delete/__pycache__/views.cpython-310.pyc index 3af8307428fbfec51b212b98d02d247b7e4f3760..6bfe7dab55ec9ddca2f766e621c62da584c9d534 100644 GIT binary patch delta 233 zcmaDSHCu)+pO=@50SG)|OVhXnC-TWKKAEU}T_}||MJ7eIg`t@-N-{+*m_bv1GY4Y> z7vty2o!rjcD;bNJfO=Lk6$wpV%PukbJ+~zHXBMCc3o{Q(k=x`PZW*p3XCPmb$*;6Fx*)RNSA xu-15()_Abi@?Q@NcvG#QJS vfa)|SKj1bIEM@^RS(tfPikyKAKTXNWdwD)EI#1rrtHx+G`4+D=6CWc0QkE8c diff --git a/osinaweb/osinacore/edit/__pycache__/views.cpython-310.pyc b/osinaweb/osinacore/edit/__pycache__/views.cpython-310.pyc index bc67ec3851bd1d6397a32c1c99eef67d978a34a8..561a3fe43253cd6a249c426e6b282f38e4386d7e 100644 GIT binary patch delta 3021 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