radboy 0.0.351__py3-none-any.whl → 0.0.353__py3-none-any.whl
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.
Potentially problematic release.
This version of radboy might be problematic. Click here for more details.
- radboy/DB/__pycache__/db.cpython-313.pyc +0 -0
- radboy/DB/db.py +5 -2
- radboy/EntryExtras/Extras.py +111 -107
- radboy/EntryExtras/__pycache__/Extras.cpython-313.pyc +0 -0
- radboy/TasksMode/Tasks.py +37 -32
- radboy/TasksMode/__pycache__/Tasks.cpython-313.pyc +0 -0
- radboy/__init__.py +1 -1
- radboy/__pycache__/__init__.cpython-313.pyc +0 -0
- {radboy-0.0.351.dist-info → radboy-0.0.353.dist-info}/METADATA +1 -1
- {radboy-0.0.351.dist-info → radboy-0.0.353.dist-info}/RECORD +12 -12
- {radboy-0.0.351.dist-info → radboy-0.0.353.dist-info}/WHEEL +0 -0
- {radboy-0.0.351.dist-info → radboy-0.0.353.dist-info}/top_level.txt +0 -0
|
Binary file
|
radboy/DB/db.py
CHANGED
|
@@ -736,8 +736,11 @@ class EntryDataExtras(BASE,Template):
|
|
|
736
736
|
with Session(ENGINE) as session:
|
|
737
737
|
check=session.query(self.__class__).filter(self.__class__.field_name==kwargs[k],self.__class__.EntryId==kwargs['EntryId']).first()
|
|
738
738
|
if isinstance(check,self.__class__):
|
|
739
|
-
|
|
740
|
-
|
|
739
|
+
if check.field_value == kwargs['field_value']:
|
|
740
|
+
raise Exception(f"Value is duplicated for {k}={kwargs['field_value']}")
|
|
741
|
+
else:
|
|
742
|
+
dateStr=datetime.now().strftime("[Updated on %m/%d/%Y at %H:%M:%S.]")
|
|
743
|
+
kwargs[k]=f"{kwargs[k]} {dateStr}"
|
|
741
744
|
setattr(self,k,str(kwargs[k]))
|
|
742
745
|
else:
|
|
743
746
|
setattr(self,k,kwargs[k])
|
radboy/EntryExtras/Extras.py
CHANGED
|
@@ -866,128 +866,132 @@ class EntryDataExtrasMenu:
|
|
|
866
866
|
def sch_f2e(self,barcode=None):
|
|
867
867
|
with Session(ENGINE) as session:
|
|
868
868
|
while True:
|
|
869
|
-
|
|
870
|
-
if
|
|
871
|
-
|
|
869
|
+
try:
|
|
870
|
+
if self.code is None or not isinstance(self.code,str):
|
|
871
|
+
if barcode != None:
|
|
872
|
+
search=barcode
|
|
873
|
+
else:
|
|
874
|
+
search=Prompt.__init2__(None,func=FormBuilderMkText,ptext="Search? [Barcode,Code,Name]",helpText="searches Barcode,Code,Name",data="string")
|
|
875
|
+
if search in [None]:
|
|
876
|
+
return
|
|
872
877
|
else:
|
|
873
|
-
search=
|
|
874
|
-
if search in [None]:
|
|
875
|
-
return
|
|
876
|
-
else:
|
|
877
|
-
search=self.code
|
|
878
|
+
search=self.code
|
|
878
879
|
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
return
|
|
884
|
-
msg=[]
|
|
885
|
-
for num,i in enumerate(results):
|
|
886
|
-
msg.append(f"{Fore.cyan}{num}/{Fore.light_yellow}{num+1} of {Fore.light_red}{ct}{Fore.grey_50} -> {i.seeShort()}")
|
|
887
|
-
msg='\n'.join(msg)
|
|
888
|
-
product=None
|
|
889
|
-
while True:
|
|
890
|
-
print(msg)
|
|
891
|
-
index=Prompt.__init2__(None,func=FormBuilderMkText,ptext="which index do you wish to use?",helpText=msg,data="integer")
|
|
892
|
-
if index in [None,]:
|
|
880
|
+
results=session.query(Entry).filter(or_(Entry.Barcode==search,Entry.Code==search,Entry.Barcode.icontains(search),Entry.Code.icontains(search),Entry.Name.icontains(search))).all()
|
|
881
|
+
ct=len(results)
|
|
882
|
+
if ct == 0:
|
|
883
|
+
print("No Results were Found!")
|
|
893
884
|
return
|
|
894
|
-
|
|
895
|
-
|
|
896
|
-
|
|
897
|
-
|
|
898
|
-
|
|
899
|
-
if product in [None,]:
|
|
900
|
-
return
|
|
901
|
-
print("sf2e()")
|
|
902
|
-
while True:
|
|
885
|
+
msg=[]
|
|
886
|
+
for num,i in enumerate(results):
|
|
887
|
+
msg.append(f"{Fore.cyan}{num}/{Fore.light_yellow}{num+1} of {Fore.light_red}{ct}{Fore.grey_50} -> {i.seeShort()}")
|
|
888
|
+
msg='\n'.join(msg)
|
|
889
|
+
product=None
|
|
903
890
|
while True:
|
|
891
|
+
print(msg)
|
|
892
|
+
index=Prompt.__init2__(None,func=FormBuilderMkText,ptext="which index do you wish to use?",helpText=msg,data="integer")
|
|
893
|
+
if index in [None,]:
|
|
894
|
+
return
|
|
904
895
|
try:
|
|
905
|
-
|
|
906
|
-
fse=session.query(EntryDataExtras).group_by(EntryDataExtras.field_name,EntryDataExtras.field_type).all()
|
|
907
|
-
ct_fse=len(fse)
|
|
908
|
-
for nunm,i in enumerate(fse):
|
|
909
|
-
fs.append(f"{Fore.light_yellow}{num}/{Fore.light_cyan}{num+1} of {Fore.light_red}{ct_fse} -> {Fore.light_magenta}{i.field_name}{Style.reset}")
|
|
910
|
-
fs='\n'.join(fs)
|
|
911
|
-
field_search=Prompt.__init2__(None,func=FormBuilderMkText,ptext="Search field?",helpText=f"searches EntryDataExtras field_names:\n{fs}",data="string")
|
|
912
|
-
if field_search in [None]:
|
|
913
|
-
return
|
|
914
|
-
elif field_search in ['d',]:
|
|
915
|
-
field_search=''
|
|
916
|
-
query=session.query(EntryDataExtras).filter(EntryDataExtras.field_name.icontains(field_search))
|
|
917
|
-
results_ede=query.group_by(EntryDataExtras.field_name,EntryDataExtras.field_type).all()
|
|
918
|
-
if len(results_ede) < 1:
|
|
919
|
-
continue
|
|
896
|
+
product=results[index]
|
|
920
897
|
break
|
|
921
898
|
except Exception as e:
|
|
922
899
|
print(e)
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
if num%2==0:
|
|
927
|
-
color=Fore.cyan
|
|
928
|
-
elif num%3==0:
|
|
929
|
-
color=Fore.light_cyan
|
|
930
|
-
elif num%4==0:
|
|
931
|
-
color=Fore.light_steel_blue
|
|
932
|
-
elif num%5==0:
|
|
933
|
-
color=Fore.light_green
|
|
934
|
-
elif num%6==0:
|
|
935
|
-
color=Fore.turquoise_4
|
|
936
|
-
elif num%7==0:
|
|
937
|
-
color=Fore.deep_sky_blue_3a
|
|
938
|
-
elif num%8==0:
|
|
939
|
-
color=Fore.spring_green_3a
|
|
940
|
-
elif num%9==0:
|
|
941
|
-
color=Fore.dark_cyan
|
|
942
|
-
else:
|
|
943
|
-
color=Fore.light_blue
|
|
944
|
-
msg_ede.append(f"{Fore.cyan}{num}/{Fore.light_yellow}{num+1} of {Fore.light_red}{ct}{Fore.grey_50} -> {color}{i.field_name}{Style.reset}:{i.field_type} ede_id={i.ede_id} doe={i.doe}")
|
|
945
|
-
msg_ede='\n'.join(msg_ede)
|
|
900
|
+
if product in [None,]:
|
|
901
|
+
return
|
|
902
|
+
print("sf2e()")
|
|
946
903
|
while True:
|
|
947
|
-
|
|
948
|
-
print(msg_ede)
|
|
949
|
-
index=Prompt.__init2__(None,func=FormBuilderMkText,ptext="which index do you wish to use?",helpText=msg_ede,data="integer")
|
|
950
|
-
if index in [None,]:
|
|
951
|
-
return
|
|
952
|
-
if not isinstance(index,int):
|
|
953
|
-
print(f"{Fore.light_red}Index must be an {Fore.light_cyan}integer{Style.reset}")
|
|
954
|
-
continue
|
|
904
|
+
while True:
|
|
955
905
|
try:
|
|
956
|
-
|
|
957
|
-
|
|
958
|
-
|
|
959
|
-
|
|
960
|
-
|
|
906
|
+
fs=[]
|
|
907
|
+
fse=session.query(EntryDataExtras).group_by(EntryDataExtras.field_name,EntryDataExtras.field_type).all()
|
|
908
|
+
ct_fse=len(fse)
|
|
909
|
+
for nunm,i in enumerate(fse):
|
|
910
|
+
fs.append(f"{Fore.light_yellow}{num}/{Fore.light_cyan}{num+1} of {Fore.light_red}{ct_fse} -> {Fore.light_magenta}{i.field_name}{Style.reset}")
|
|
911
|
+
fs='\n'.join(fs)
|
|
912
|
+
field_search=Prompt.__init2__(None,func=FormBuilderMkText,ptext="Search field?",helpText=f"searches EntryDataExtras field_names:\n{fs}",data="string")
|
|
913
|
+
if field_search in [None]:
|
|
914
|
+
return
|
|
915
|
+
elif field_search in ['d',]:
|
|
916
|
+
field_search=''
|
|
917
|
+
query=session.query(EntryDataExtras).filter(EntryDataExtras.field_name.icontains(field_search))
|
|
918
|
+
results_ede=query.group_by(EntryDataExtras.field_name,EntryDataExtras.field_type).all()
|
|
919
|
+
if len(results_ede) < 1:
|
|
961
920
|
continue
|
|
962
921
|
break
|
|
963
922
|
except Exception as e:
|
|
964
923
|
print(e)
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
|
|
978
|
-
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
|
|
987
|
-
|
|
924
|
+
field=None
|
|
925
|
+
msg_ede=[]
|
|
926
|
+
for num,i in enumerate(results_ede):
|
|
927
|
+
if num%2==0:
|
|
928
|
+
color=Fore.cyan
|
|
929
|
+
elif num%3==0:
|
|
930
|
+
color=Fore.light_cyan
|
|
931
|
+
elif num%4==0:
|
|
932
|
+
color=Fore.light_steel_blue
|
|
933
|
+
elif num%5==0:
|
|
934
|
+
color=Fore.light_green
|
|
935
|
+
elif num%6==0:
|
|
936
|
+
color=Fore.turquoise_4
|
|
937
|
+
elif num%7==0:
|
|
938
|
+
color=Fore.deep_sky_blue_3a
|
|
939
|
+
elif num%8==0:
|
|
940
|
+
color=Fore.spring_green_3a
|
|
941
|
+
elif num%9==0:
|
|
942
|
+
color=Fore.dark_cyan
|
|
943
|
+
else:
|
|
944
|
+
color=Fore.light_blue
|
|
945
|
+
msg_ede.append(f"{Fore.cyan}{num}/{Fore.light_yellow}{num+1} of {Fore.light_red}{ct}{Fore.grey_50} -> {color}{i.field_name}{Style.reset}:{i.field_type} ede_id={i.ede_id} doe={i.doe}")
|
|
946
|
+
msg_ede='\n'.join(msg_ede)
|
|
947
|
+
while True:
|
|
948
|
+
try:
|
|
949
|
+
print(msg_ede)
|
|
950
|
+
index=Prompt.__init2__(None,func=FormBuilderMkText,ptext="which index do you wish to use?",helpText=msg_ede,data="integer")
|
|
951
|
+
if index in [None,]:
|
|
952
|
+
return
|
|
953
|
+
if not isinstance(index,int):
|
|
954
|
+
print(f"{Fore.light_red}Index must be an {Fore.light_cyan}integer{Style.reset}")
|
|
955
|
+
continue
|
|
956
|
+
try:
|
|
957
|
+
print(index)
|
|
958
|
+
if index <= len(results_ede)-1:
|
|
959
|
+
field=results_ede[index]
|
|
960
|
+
else:
|
|
961
|
+
print(f"index is not within 0-{len(results_ede)-1}")
|
|
962
|
+
continue
|
|
963
|
+
break
|
|
964
|
+
except Exception as e:
|
|
965
|
+
print(e)
|
|
966
|
+
break
|
|
967
|
+
except Exception as e:
|
|
968
|
+
print(e)
|
|
969
|
+
if field == None:
|
|
970
|
+
return
|
|
971
|
+
field_name=field.field_name
|
|
972
|
+
field_type=field.field_type
|
|
973
|
+
field_value=Prompt.__init2__(self,func=FormBuilderMkText,ptext="What do you wish to store as the value?",helpText=field_type,data=field_type)
|
|
974
|
+
if field_value in [None,]:
|
|
975
|
+
return
|
|
976
|
+
|
|
977
|
+
print(field_name,field_type,field_value)
|
|
978
|
+
extra=EntryDataExtras(field_name=field_name,field_type=field_type,field_value=field_value,EntryId=product.EntryId)
|
|
979
|
+
session.add(extra)
|
|
980
|
+
session.commit()
|
|
981
|
+
session.refresh(extra)
|
|
982
|
+
print(extra)
|
|
983
|
+
anotherField=Prompt.__init2__(None,func=FormBuilderMkText,ptext="Add another field to this product[y/n]?",helpText="yes/no/boolean",data="boolean")
|
|
984
|
+
if anotherField in [None,]:
|
|
985
|
+
return
|
|
986
|
+
elif anotherField in ['d',True]:
|
|
987
|
+
continue
|
|
988
|
+
else:
|
|
989
|
+
break
|
|
990
|
+
if barcode != None:
|
|
988
991
|
break
|
|
989
|
-
|
|
990
|
-
|
|
992
|
+
except Exception as e:
|
|
993
|
+
print(e)
|
|
994
|
+
|
|
991
995
|
|
|
992
996
|
def sch_c2e(self,barcode=None):
|
|
993
997
|
with Session(ENGINE) as session:
|
|
Binary file
|
radboy/TasksMode/Tasks.py
CHANGED
|
@@ -35,7 +35,7 @@ from radboy.InListRestore.ILR import *
|
|
|
35
35
|
from radboy.Compare.Compare import *
|
|
36
36
|
from radboy.Unified.Unified2 import Unified2
|
|
37
37
|
from copy import copy
|
|
38
|
-
from decimal import Decimal
|
|
38
|
+
from decimal import Decimal,getcontext
|
|
39
39
|
from radboy.GDOWN.GDOWN import *
|
|
40
40
|
from radboy.Unified.clearalll import clear_all
|
|
41
41
|
|
|
@@ -289,20 +289,23 @@ class TasksMode:
|
|
|
289
289
|
return text
|
|
290
290
|
|
|
291
291
|
def pricing(self):
|
|
292
|
+
prec=int(detectGetOrSet("Price/Tax/CRV Calculator Precision",4,setValue=False,literal=True))
|
|
293
|
+
getcontext().prec=prec
|
|
292
294
|
while True:
|
|
293
295
|
try:
|
|
294
|
-
default_taxrate=float(detectGetOrSet("Tax Rate",0.0925,setValue=False,literal=True))
|
|
295
|
-
default_price=float(detectGetOrSet("pricing default price",1,setValue=False,literal=True))
|
|
296
|
-
default_bottle_qty=float(detectGetOrSet("pricing default bottle_qty",1,setValue=False,literal=True))
|
|
297
|
-
default_bottle_size=float(detectGetOrSet("pricing default bottle_size",16.9,setValue=False,literal=True))
|
|
298
|
-
default_purchased_qty=float(detectGetOrSet("pricing default purchased_qty",1,setValue=False,literal=True))
|
|
296
|
+
default_taxrate=float(Decimal(detectGetOrSet("Tax Rate",0.0925,setValue=False,literal=True)))
|
|
297
|
+
default_price=float(Decimal(detectGetOrSet("pricing default price",1,setValue=False,literal=True)))
|
|
298
|
+
default_bottle_qty=float(Decimal(detectGetOrSet("pricing default bottle_qty",1,setValue=False,literal=True)))
|
|
299
|
+
default_bottle_size=float(Decimal(detectGetOrSet("pricing default bottle_size",16.9,setValue=False,literal=True)))
|
|
300
|
+
default_purchased_qty=float(Decimal(detectGetOrSet("pricing default purchased_qty",1,setValue=False,literal=True)))
|
|
299
301
|
defaults_msg=f"""
|
|
300
302
|
{Fore.orange_red_1}Default Settings [changeable under sysset]{Style.reset}
|
|
301
303
|
{Fore.light_sea_green}default_taxrate=={Fore.turquoise_4}{default_taxrate},
|
|
302
304
|
{Fore.grey_70}default_price=={Fore.light_yellow}{default_price},
|
|
303
305
|
{Fore.light_sea_green}default_bottle_qty=={Fore.turquoise_4}{default_bottle_qty},
|
|
304
306
|
{Fore.grey_70}default_bottle_size=={Fore.light_yellow}{default_bottle_size},
|
|
305
|
-
{Fore.light_sea_green}default_purchased_qty=={Fore.turquoise_4}{default_purchased_qty}
|
|
307
|
+
{Fore.light_sea_green}default_purchased_qty=={Fore.turquoise_4}{default_purchased_qty}
|
|
308
|
+
{Fore.grey_70}Price/Tax/CRV Calculator Precision=={Fore.light_yellow}{prec}{Style.reset}"""
|
|
306
309
|
|
|
307
310
|
def beverage_PTCRV_base():
|
|
308
311
|
result=None
|
|
@@ -334,9 +337,9 @@ class TasksMode:
|
|
|
334
337
|
bottle_qty=default_bottle_qty
|
|
335
338
|
|
|
336
339
|
if xxx.magnitude < 24:
|
|
337
|
-
crv=0.05*bottle_qty
|
|
340
|
+
crv=float(Decimal(0.05)*Decimal(bottle_qty))
|
|
338
341
|
else:
|
|
339
|
-
crv=0.10*bottle_qty
|
|
342
|
+
crv=float(Decimal(0.10)*Decimal(bottle_qty))
|
|
340
343
|
|
|
341
344
|
tax_rate=Prompt.__init2__(None,func=FormBuilderMkText,ptext=f"Tax Rate (0.01==1%(Default={default_taxrate})):",helpText="A float or integer",data="float")
|
|
342
345
|
if tax_rate is None:
|
|
@@ -350,10 +353,11 @@ class TasksMode:
|
|
|
350
353
|
elif purchased_qty in ['d',]:
|
|
351
354
|
purchased_qty=default_purchased_qty
|
|
352
355
|
|
|
353
|
-
price=(price*purchased_qty)+crv
|
|
354
|
-
tax=price*tax_rate
|
|
356
|
+
price=(Decimal(price)*Decimal(purchased_qty))+Decimal(crv)
|
|
357
|
+
tax=price*Decimal(tax_rate)
|
|
355
358
|
|
|
356
|
-
|
|
359
|
+
|
|
360
|
+
result=round(float(Decimal(price)+tax),prec)
|
|
357
361
|
return result
|
|
358
362
|
|
|
359
363
|
def tax_with_crv():
|
|
@@ -386,9 +390,9 @@ class TasksMode:
|
|
|
386
390
|
bottle_qty=default_bottle_qty
|
|
387
391
|
|
|
388
392
|
if xxx.magnitude < 24:
|
|
389
|
-
crv=0.05*bottle_qty
|
|
393
|
+
crv=Decimal(0.05)*Decimal(bottle_qty)
|
|
390
394
|
else:
|
|
391
|
-
crv=0.10*bottle_qty
|
|
395
|
+
crv=Decimal(0.10)*Decimal(bottle_qty)
|
|
392
396
|
|
|
393
397
|
tax_rate=Prompt.__init2__(None,func=FormBuilderMkText,ptext=f"Tax Rate (0.01==1%(Default={default_taxrate})):",helpText="A float or integer",data="float")
|
|
394
398
|
if tax_rate is None:
|
|
@@ -402,10 +406,10 @@ class TasksMode:
|
|
|
402
406
|
elif purchased_qty in ['d',]:
|
|
403
407
|
purchased_qty=default_purchased_qty
|
|
404
408
|
|
|
405
|
-
price=(price*purchased_qty)+crv
|
|
406
|
-
tax=price*tax_rate
|
|
409
|
+
price=Decimal(Decimal(price)*Decimal(purchased_qty))+crv
|
|
410
|
+
tax=price*Decimal(tax_rate)
|
|
407
411
|
|
|
408
|
-
result=round(tax,
|
|
412
|
+
result=round(float(tax),prec)
|
|
409
413
|
return result
|
|
410
414
|
|
|
411
415
|
def crv_total():
|
|
@@ -431,12 +435,12 @@ class TasksMode:
|
|
|
431
435
|
bottle_qty=default_bottle_qty
|
|
432
436
|
|
|
433
437
|
if xxx.magnitude < 24:
|
|
434
|
-
crv=0.05*bottle_qty
|
|
438
|
+
crv=Decimal(0.05)*Decimal(bottle_qty)
|
|
435
439
|
else:
|
|
436
|
-
crv=0.10*bottle_qty
|
|
440
|
+
crv=Decimal(0.10)*Decimal(bottle_qty)
|
|
437
441
|
|
|
438
442
|
|
|
439
|
-
result=round(crv,
|
|
443
|
+
result=round(float(crv),prec)
|
|
440
444
|
return result
|
|
441
445
|
|
|
442
446
|
def price_tax():
|
|
@@ -461,10 +465,10 @@ class TasksMode:
|
|
|
461
465
|
elif tax_rate == 'd':
|
|
462
466
|
tax_rate=default_taxrate
|
|
463
467
|
|
|
464
|
-
price=price*bottle_qty
|
|
465
|
-
tax=price*tax_rate
|
|
468
|
+
price=Decimal(price)*Decimal(bottle_qty)
|
|
469
|
+
tax=price*Decimal(tax_rate)
|
|
466
470
|
|
|
467
|
-
result=round(price+tax,3)
|
|
471
|
+
result=round(float(price+tax),3)
|
|
468
472
|
return result
|
|
469
473
|
|
|
470
474
|
def tax_no_crv():
|
|
@@ -489,10 +493,10 @@ class TasksMode:
|
|
|
489
493
|
elif tax_rate == 'd':
|
|
490
494
|
tax_rate=default_taxrate
|
|
491
495
|
|
|
492
|
-
price=price*bottle_qty
|
|
493
|
-
tax=price*tax_rate
|
|
496
|
+
price=Decimal(price)*Decimal(bottle_qty)
|
|
497
|
+
tax=price*Decimal(tax_rate)
|
|
494
498
|
|
|
495
|
-
result=round(tax,
|
|
499
|
+
result=round(float(tax),prec)
|
|
496
500
|
return result
|
|
497
501
|
|
|
498
502
|
def tax_rate_from_priceAndTax():
|
|
@@ -512,9 +516,9 @@ class TasksMode:
|
|
|
512
516
|
taxed=0
|
|
513
517
|
|
|
514
518
|
|
|
515
|
-
tax_rate=taxed/price
|
|
519
|
+
tax_rate=Decimal(taxed)/Decimal(price)
|
|
516
520
|
|
|
517
|
-
result=round(tax_rate,
|
|
521
|
+
result=round(float(tax_rate),prec)
|
|
518
522
|
return result
|
|
519
523
|
|
|
520
524
|
def tax_rate_from_oldPriceAndNewPrice():
|
|
@@ -532,10 +536,11 @@ class TasksMode:
|
|
|
532
536
|
elif new_price in ['','d']:
|
|
533
537
|
new_price=default_price
|
|
534
538
|
|
|
535
|
-
taxed=
|
|
536
|
-
tax_rate=
|
|
539
|
+
taxed=Decimal(new_price)-Decimal(old_price)
|
|
540
|
+
tax_rate=taxed/Decimal(old_price)
|
|
541
|
+
tax_rate=round(float(tax_rate),prec)
|
|
537
542
|
|
|
538
|
-
result=
|
|
543
|
+
result=tax_rate
|
|
539
544
|
return result
|
|
540
545
|
|
|
541
546
|
while True:
|
|
@@ -562,7 +567,7 @@ class TasksMode:
|
|
|
562
567
|
},
|
|
563
568
|
'4':{
|
|
564
569
|
'cmds':['tax','tax no crv','tax 0 crv','4'],
|
|
565
|
-
'desc':f'{Fore.light_yellow}tax
|
|
570
|
+
'desc':f'{Fore.light_yellow}tax w/o crv{Fore.medium_violet_red} asking questions like price and qty to get total tax without crv{Style.reset}',
|
|
566
571
|
'exec':tax_no_crv
|
|
567
572
|
},
|
|
568
573
|
'5':{
|
|
Binary file
|
radboy/__init__.py
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
VERSION='0.0.
|
|
1
|
+
VERSION='0.0.353'
|
|
Binary file
|
|
@@ -5,7 +5,7 @@ radboy/Holidays.txt,sha256=y-JZPihh5iaWKxMIHNXD39yVuVmf1vMs4FdNDcg0f1Y,3114
|
|
|
5
5
|
radboy/InventoryGlossary.txt,sha256=018-Yqca6DFb10jPdkUY-5qhkRlQN1k3rxoTaERQ-LA,91008
|
|
6
6
|
radboy/RecordMyCodes.py,sha256=XXy-o5Z_yOgrgHNju4iqM3h7xhRBkNIoHG1qePtBnGY,41316
|
|
7
7
|
radboy/Run.py,sha256=JUoCTHnzQBv7n8PB2_i93ANdAC_iW__RkAge8esCnk4,76
|
|
8
|
-
radboy/__init__.py,sha256=
|
|
8
|
+
radboy/__init__.py,sha256=LdCBGH3p2BCb5qYCX-X_2EsCoDDPLdyDmN7dczhG_nk,17
|
|
9
9
|
radboy/api_key,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
10
10
|
radboy/case-export-2024-05-14-13-10-00.672971.xlsx,sha256=Wd592d_VLFmfUI9KKKSVjNwjV91euc1T7ATyvwvUhlg,5431
|
|
11
11
|
radboy/case-export-2024-05-14-13-13-22.540614.xlsx,sha256=OnGrhmScHfGp_mVaWW-LNMsqrQgyZDpiU3wV-2s3U5Q,5556
|
|
@@ -90,7 +90,7 @@ radboy/DB/SMLabelImporter.py,sha256=eUoBDxVUUEKGL2g_PwkASM67ZB7FmXtSnn4bCagskhY,
|
|
|
90
90
|
radboy/DB/__init__.py,sha256=JiigA9B7GalP7YuRdcwyGDu5PDSBahoi0lLjtScxlN8,49
|
|
91
91
|
radboy/DB/blankDataFile.py,sha256=YX_05Usi71UpDkZN9UTMYwUipbTndTAtEgqzBEga0kE,9285
|
|
92
92
|
radboy/DB/config.py,sha256=bvu43dUl1_yO3Zq3gsLuenGUgJSiS3S9Cs6ppFEvZbg,239
|
|
93
|
-
radboy/DB/db.py,sha256=
|
|
93
|
+
radboy/DB/db.py,sha256=FuCvGyUuqaWZeh2UAIQqgGXxO8cq1D1E5lBmxYmyKOI,228386
|
|
94
94
|
radboy/DB/glossary_db.py,sha256=1_qxeEpjjEtpWB_eDjsgJisimLv7OBm75MuqM-Lt6zg,28218
|
|
95
95
|
radboy/DB/masterLookup.py,sha256=DBaM2uscG3_X5dek49wjdnOzhrjWhKgvOEz_umdz0mY,4566
|
|
96
96
|
radboy/DB/msg.txt,sha256=YxWed6A6tuP1djJ5QPS2Rz3ING4TKKf8kUiCCPtzHXE,7937
|
|
@@ -125,7 +125,7 @@ radboy/DB/__pycache__/config.cpython-312.pyc,sha256=Qo7E6MHrF6yqvKgepNFyCoekZXiv
|
|
|
125
125
|
radboy/DB/__pycache__/config.cpython-313.pyc,sha256=_8wCIg_3jhyJjxnExD2Sm6aY-uZTw036p7Ki5znL7dc,376
|
|
126
126
|
radboy/DB/__pycache__/db.cpython-311.pyc,sha256=rNgigyBd0D-cg1JxKAS8t0B_k0IEJivgVlRaZE10Xis,210105
|
|
127
127
|
radboy/DB/__pycache__/db.cpython-312.pyc,sha256=ANDJPC0RoavbmSKFxG15vC7B4rEGyVt7xRJt7XGY3OA,334609
|
|
128
|
-
radboy/DB/__pycache__/db.cpython-313.pyc,sha256=
|
|
128
|
+
radboy/DB/__pycache__/db.cpython-313.pyc,sha256=Y8TFajotRXIsYOWn-G6FN9Az3kOlZ60P9rFmGBEjvTM,360066
|
|
129
129
|
radboy/DB/__pycache__/glossary_db.cpython-312.pyc,sha256=8UL-29cKqtKovx0BANm6kzKKteef1BW_2qF3wumzst4,36023
|
|
130
130
|
radboy/DB/__pycache__/glossary_db.cpython-313.pyc,sha256=Ke9bkvllGv5CK0JdT9DRvQ3MOdrXxoYv7TVLNkqLux0,36582
|
|
131
131
|
radboy/DB/__pycache__/masterLookup.cpython-312.pyc,sha256=bQiOkmMwwHgcO18tYSWGQ-YUff4GQlKVhBMp1GoWAqY,6324
|
|
@@ -144,10 +144,10 @@ radboy/DayLog/__pycache__/DayLogger.cpython-313.pyc,sha256=UC2v9eX_1UZNgIA9baQzr
|
|
|
144
144
|
radboy/DayLog/__pycache__/__init__.cpython-311.pyc,sha256=Z5Y4DdVF77LZf6-Of92MDGFdi-IXik1ASQd4AdLNNfQ,231
|
|
145
145
|
radboy/DayLog/__pycache__/__init__.cpython-312.pyc,sha256=lP_GHzSPt5JTrT1jLWiRMFGPmSdJYBn4eRV__OxgJ6s,269
|
|
146
146
|
radboy/DayLog/__pycache__/__init__.cpython-313.pyc,sha256=UQw5v4r7yismC9qcqP0dEme6h-lawbOA5pXYpkqUwFk,148
|
|
147
|
-
radboy/EntryExtras/Extras.py,sha256=
|
|
147
|
+
radboy/EntryExtras/Extras.py,sha256=4z1hp3CZpia-4Y6cbmv1iyzUHUyv3MnVqlZWGmNNKVw,66933
|
|
148
148
|
radboy/EntryExtras/__init__.py,sha256=K76Ku7o2DwTZU-Ya2mifH856KAcxb8MXdSaQMQLhu84,902
|
|
149
149
|
radboy/EntryExtras/__pycache__/Extras.cpython-312.pyc,sha256=eHkeyKblMtG37lDhl38OEGQbvvKxXMriKK49kj2mg8o,34768
|
|
150
|
-
radboy/EntryExtras/__pycache__/Extras.cpython-313.pyc,sha256=
|
|
150
|
+
radboy/EntryExtras/__pycache__/Extras.cpython-313.pyc,sha256=V7jYgyWJwgUr7FIDKnmlX7WFXNtig19rJKjnm_dLUJw,86179
|
|
151
151
|
radboy/EntryExtras/__pycache__/__init__.cpython-312.pyc,sha256=0bBwhp_9PYvL-Nm_J0gsYf9yfKAFJMiMdpc6XzZrPzU,829
|
|
152
152
|
radboy/EntryExtras/__pycache__/__init__.cpython-313.pyc,sha256=PqXXfBeREZI2pZc22BayKH7daLXbO7p3NozaXpnA3cQ,829
|
|
153
153
|
radboy/EntryExtras/__pycache__/db.cpython-312.pyc,sha256=Qcqix5yi9h7fbsmGhJOWYdLHbHMTWixwolRRQYg8ISk,1781
|
|
@@ -330,7 +330,7 @@ radboy/SystemSettings/__pycache__/__init__.cpython-312.pyc,sha256=aIzp4Po0t8EhSA
|
|
|
330
330
|
radboy/SystemSettings/__pycache__/__init__.cpython-313.pyc,sha256=QFDuoidxMWsGVLsy5lN-rDs6TP8nKJ4yyCyiamNOhwo,156
|
|
331
331
|
radboy/TasksMode/ReFormula.py,sha256=REDRJYub-OEOE6g14oRQOLOQwv8pHqVJy4NQk3CCM90,2255
|
|
332
332
|
radboy/TasksMode/SetEntryNEU.py,sha256=3nUNDUNyxq4zeMtmUQ7aS1o23P7KhDIMdUPNqPnYbRk,17343
|
|
333
|
-
radboy/TasksMode/Tasks.py,sha256=
|
|
333
|
+
radboy/TasksMode/Tasks.py,sha256=xk4l-8Kgc_sGmHLqxcAOATwB5wKAlnL9HzAho3c81gU,301434
|
|
334
334
|
radboy/TasksMode/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
335
335
|
radboy/TasksMode/__pycache__/ReFormula.cpython-311.pyc,sha256=QEG3PwVw-8HTd_Mf9XbVcxU56F1fC9yBqWXYPLC39DU,4865
|
|
336
336
|
radboy/TasksMode/__pycache__/ReFormula.cpython-312.pyc,sha256=aX7BWm2PPjCTnxsbGUitR-2h9hq4AjaBiHMrUXvIl0Y,3967
|
|
@@ -339,7 +339,7 @@ radboy/TasksMode/__pycache__/SetEntryNEU.cpython-312.pyc,sha256=pCdFj61aPKkHL6Sv
|
|
|
339
339
|
radboy/TasksMode/__pycache__/SetEntryNEU.cpython-313.pyc,sha256=leIelDzPrZE_YgKs0B99osmhyENYtYgi3ErgS2XqSPs,20088
|
|
340
340
|
radboy/TasksMode/__pycache__/Tasks.cpython-311.pyc,sha256=6QOTJnLiXSKdF81hkhy3vyrz49PPhS20s5_0X52g3Hw,131120
|
|
341
341
|
radboy/TasksMode/__pycache__/Tasks.cpython-312.pyc,sha256=hyJwdaYaaRLdcrNxgg36diJ5iijX5_3I0UAORsj-6LU,310295
|
|
342
|
-
radboy/TasksMode/__pycache__/Tasks.cpython-313.pyc,sha256=
|
|
342
|
+
radboy/TasksMode/__pycache__/Tasks.cpython-313.pyc,sha256=VWyCbr0kLi4SUdXbnKyEb3rjqAPIF1HnGynaP6lA_js,368151
|
|
343
343
|
radboy/TasksMode/__pycache__/__init__.cpython-311.pyc,sha256=PKV1JbihEacm639b53bZozRQvcllSkjGP3q8STVMxF4,234
|
|
344
344
|
radboy/TasksMode/__pycache__/__init__.cpython-312.pyc,sha256=ERgnEvRMiGSecWp1BpNzLdSq_SdKw7GvFWUvUM7bLVw,272
|
|
345
345
|
radboy/TasksMode/__pycache__/__init__.cpython-313.pyc,sha256=lvsTxukyvGKB3C0rdF9dQi_bvVh6ceDVINfwcuIsd0s,151
|
|
@@ -386,7 +386,7 @@ radboy/__pycache__/Run.cpython-311.pyc,sha256=G_UEfMtkLRjR6ZpGA_BJzGenuaCcP469Y9
|
|
|
386
386
|
radboy/__pycache__/Run.cpython-312.pyc,sha256=v4xolc3mHyla991XhpYBUbBHYT0bnJ1gE-lkFoQ4GFA,241
|
|
387
387
|
radboy/__pycache__/__init__.cpython-311.pyc,sha256=R-DVbUioMOW-Fnaq7FpT5F1a5p0q3b_RW-HpLRArCAY,242
|
|
388
388
|
radboy/__pycache__/__init__.cpython-312.pyc,sha256=FsFzLXOlTK8_7ixoPZzakkR8Wibt-DvXLFh-oG2QlPw,164
|
|
389
|
-
radboy/__pycache__/__init__.cpython-313.pyc,sha256=
|
|
389
|
+
radboy/__pycache__/__init__.cpython-313.pyc,sha256=5JsvuWJgAz8ewLdAFGFfUpIAKFGeYk10lRbL323TZ18,165
|
|
390
390
|
radboy/__pycache__/__init__.cpython-39.pyc,sha256=D48T6x6FUeKPfubo0sdS_ZUut3FmBvPMP7qT6rYBZzU,275
|
|
391
391
|
radboy/__pycache__/possibleCode.cpython-311.pyc,sha256=zFiHyzqD8gUnIWu4vtyMYIBposiRQqaRXfcT_fOl4rU,20882
|
|
392
392
|
radboy/__pycache__/possibleCode.cpython-312.pyc,sha256=tk_CO-AcsO3YZj5j6vEsw3g37UmEzWc5YgeWEoJEUg4,27922
|
|
@@ -411,7 +411,7 @@ radboy/tkGui/Images/__pycache__/__init__.cpython-311.pyc,sha256=tXBYpqbOlZ24B1BI
|
|
|
411
411
|
radboy/tkGui/__pycache__/BeginnersLuck.cpython-311.pyc,sha256=xLQOnV1wuqHGaub16mPX0dDMGU9ryCeLtNz5e517_GE,3004
|
|
412
412
|
radboy/tkGui/__pycache__/Review.cpython-311.pyc,sha256=wKq24iM6Xe2OampgZ7-8U6Nvmgs2y-qWOrGwtWhc75k,4047
|
|
413
413
|
radboy/tkGui/__pycache__/__init__.cpython-311.pyc,sha256=BX7DBn5qbvKTvlrKOP5gzTBPBTeTgSMjBW6EMl7N8e0,230
|
|
414
|
-
radboy-0.0.
|
|
415
|
-
radboy-0.0.
|
|
416
|
-
radboy-0.0.
|
|
417
|
-
radboy-0.0.
|
|
414
|
+
radboy-0.0.353.dist-info/METADATA,sha256=0PwJMjTphoDVaGw0VrhMcGqVBne_siIcf9rBPMatjzA,794
|
|
415
|
+
radboy-0.0.353.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
416
|
+
radboy-0.0.353.dist-info/top_level.txt,sha256=mlM0RWMUxGo1YHnlLmYrHOgGdK4XNRpr7nMFD5lR56c,7
|
|
417
|
+
radboy-0.0.353.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|