|
@@ -16,6 +16,19 @@ from psycopg2.sql import (
|
|
|
Placeholder,
|
|
|
Composed,
|
|
|
)
|
|
|
+
|
|
|
+STORE_CODES = {
|
|
|
+ 'countdown': 'CD',
|
|
|
+ 'pak n save': 'PnS',
|
|
|
+ 'SEAFOOD BAZAAR': 'SB',
|
|
|
+ 'THE ORGANIC FOOD SHOP HAMILTON': 'TOFS',
|
|
|
+ 'WHATAWHATA BERRY FARM': 'Farm',
|
|
|
+ 'TAUPIRI DAIRY TAUPIRI': 'TD',
|
|
|
+ 'THE FARM SHOP': 'GFS',
|
|
|
+ 'Dreamview Cre': 'DV',
|
|
|
+ 'new world': 'NW',
|
|
|
+}
|
|
|
+
|
|
|
user = os.getenv('USER')
|
|
|
conn = psycopg2.connect(f"host=***REMOVED*** dbname=das user={user} password='***REMOVED***'")
|
|
|
cur = conn.cursor()
|
|
@@ -33,14 +46,13 @@ def cursor_as_dict(cur):
|
|
|
#print(row)
|
|
|
yield row
|
|
|
|
|
|
-def get_store_code(store, user_data=dict()):
|
|
|
- if 'countdown' in store.lower():
|
|
|
- return 'CD'
|
|
|
- if 'pak n save' in store.lower():
|
|
|
- return 'PnS'
|
|
|
-
|
|
|
+def get_store_code(store, value, user_data=dict()):
|
|
|
+ for k, v in STORE_CODES.items():
|
|
|
+ if k.lower() in store.lower():
|
|
|
+ return v
|
|
|
+
|
|
|
if store not in user_data:
|
|
|
- user_data[store] = input(f"Enter code for {store}: ")
|
|
|
+ user_data[store] = input(f"Enter code for {store} ({int(value)/100:>6.2f}): ")
|
|
|
return user_data[store]
|
|
|
|
|
|
select = {
|
|
@@ -172,14 +184,14 @@ if __name__ == '__main__':
|
|
|
] for i in range(_from, _to, _interval)
|
|
|
])
|
|
|
tot = dict()
|
|
|
- for p,n,value,desc,d in sorted(_iter(session.book.get_root_account(), blacklist, whitelist, _from, _to)):
|
|
|
+ for p,n,value,desc,d in sorted(_iter(session.book.get_root_account(), blacklist, whitelist, _from, _to), key=lambda x: x[0]):
|
|
|
account_name = ':'.join([*p, n])
|
|
|
f = next(( f for (f, t) in ranges.items() if f <= d < t ))
|
|
|
tot.update({
|
|
|
f: value if f not in tot else value+tot[f]
|
|
|
})
|
|
|
ts = d
|
|
|
- store = get_store_code(desc)
|
|
|
+ store = get_store_code(desc, value)
|
|
|
book = None
|
|
|
while ts > d - timedelta(days=3):
|
|
|
book = get_record_from_database(ts, store)
|
|
@@ -188,8 +200,8 @@ if __name__ == '__main__':
|
|
|
break;
|
|
|
ts = ts - timedelta(days=1)
|
|
|
book = get_record_from_database(ts, store)
|
|
|
- dbentry = f'{book/100:>06.2f} : {store:5s}' if book == int(value) else ''
|
|
|
- print(f'{d} {desc:35s} : {value/100:>06.2f} | {dbentry}')
|
|
|
+ dbentry = f'{ts} {store:5s}' if book == int(value) else ''
|
|
|
+ print(f'{d} {desc:35s} : {value/100:>6.2f} | {dbentry}')
|
|
|
|
|
|
finally:
|
|
|
session.end()
|