From 4f8e61a3fe66bbd2eb23ebfd660535b189696784 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20=C5=BD=C3=A1=C4=8Dek?= Date: Tue, 15 Mar 2022 10:10:46 +0100 Subject: [PATCH] is alright --- tmgdsp.py | 132 +++++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 100 insertions(+), 32 deletions(-) diff --git a/tmgdsp.py b/tmgdsp.py index 20705bc..9608eac 100644 --- a/tmgdsp.py +++ b/tmgdsp.py @@ -2,10 +2,11 @@ import csv from datetime import datetime import sys -FILE = 'TMGDSP202110.CSV' +FILE = 'TMGDSP202112.CSV' -usrmonth = input("Month to be processed: ") +#usrmonth = input("Month to be processed: ") +countofnotsms = int(1) dictionary = {} @@ -13,10 +14,26 @@ dictionary = {} def add_dict(id, key, value): dict = dictionary.get(id) if key in dict: + print("increasing notsms dict key for: ",value,"key IS: ",key) dict[key] += value + + print("end state: ",dict[key]) + dict[key] = round(dict[key],5) + print("key: ",key) + + else: print("Never should happen", id) +def add_dictsms(id, pricesms): + dict = dictionary.get(id) + + print("increasing sms dict key for dict: ",dict," for :",pricesms) + dict["smscount"] += pricesms + + + + #MAIN @@ -25,38 +42,39 @@ with open(FILE, newline='', encoding='utf-8') as csvfile: for row in reader: #print(row) - if row['MSISDN'] == '': + if row['MSISDN'] == '': continue #skip empty MSISDN - #print(row) - if row['ICCID'] == '': - continue #skip empty ICCID - if row['BILLED_PERIOD_START'] == '': - continue + #if row['BILLED_PERIOD_START'] == '': + #continue - my_string = row['BILLED_PERIOD_START'] + #my_string = row['BILLED_PERIOD_START'] #my_string = '2021-09-06' - print(my_string) - try: - my_date = datetime.strptime(my_string, "%Y-%m-%d") - except: - print("An exception occurred, current my_string is: ", my_string) - sys.exit(1) + #print(my_string) + #try: + #my_date = datetime.strptime(my_string, "%Y-%m-%d") + #except: + #print("An exception occurred, current my_string is: ", my_string) + #sys.exit(1) #print(row['BILLED_PERIOD_START']) #print(my_date.month) - if my_date.month != '5': - continue #skip bad dates - + #if my_date.month != '5': + #continue #skip bad dates MSISDN = int(row['MSISDN']) ICCID = int(row['ICCID']) + + print("charge_net: ",row['CHARGE_NET']) price = float(row['CHARGE_NET'].replace(',','.')) + + + print("before conditions price: ",price, "for: ",ICCID) typ = None if row['CHARGE_TYPE'] == "Pravidelné měsíční poplatky": @@ -72,27 +90,77 @@ with open(FILE, newline='', encoding='utf-8') as csvfile: else: typ = 'other' - + + if row['INCREMENT'] == "SMS": + + pricesms = int(row['RATED_AMOUNT']) + else: + pricesms = 0 + #only if not exist create new record in dictionary for ID if not MSISDN in dictionary: - dictionary[MSISDN] = {'ICCID':ICCID,'data':0.0, 'sms':0.0, 'other':0.0} - + + dictionary[MSISDN] = {'ICCID':ICCID,'data':0.00000, 'sms':0.00000, 'other':0.00000, 'smscount':pricesms} + print("Creating new dictionary: ", dictionary[MSISDN]) + if dictionary[MSISDN] == "436761890300016": + print("creating dictionary for our unit") + input() + + + print("Adding: ", price, " for: ", dictionary[MSISDN], "TYP: ",typ) add_dict(MSISDN, typ, price) - + if MSISDN == 436761890301205: + print("created dictionary for our unit") - #try: + + + if row['INCREMENT'] == "SMS": + print("pricesms: ",pricesms," for unit: ",dictionary[MSISDN]) + add_dictsms(MSISDN, pricesms) + if MSISDN == 436761890301205: + print("increasing pricesms") + + + + + + #ptry: #print(dictionary[436761890319959]) #one with both types - #except: - #print("Required unit is not in our set") - #sys.exit(1) + #pexcept: + #pprint("Required unit is not in our set") + #psys.exit(1) -print(len(dictionary.keys())) -for key, value in dictionary.items(): - print(key, ' : ', value) +#pprint(len(dictionary.keys())) + +#for key, value in dictionary.items(): + #print(key, ' : ', value) print("Count of units: ", len(dictionary.keys())) +#print("Count of sms: ",countofsms) +#for dict_value in dictionary: +# type(dict_value) +# #for k, v in dict_value.items(): + -with open('TMGDSP_export_202110.csv', 'w') as f: - for key in dictionary.keys(): - f.write("%s,%s\n"%(key,dictionary[key])) +#with open('fakturace_tmgdsp_export_20211110v2.csv', 'w') as f: +# for key in dictionary.keys(): +# print(key,dictionary[key]) +# f.write("%s,%s\n"%(key,dictionary[key])) + + + +csv_columns = ['takhleuztoneudelam', 'ICCID', 'data', 'sms', 'other', 'smscount'] +try: + with open('output_tmgdsp_202112.csv', 'w') as csvfile: + w = csv.DictWriter(sys.stdout, csv_columns) + for key, val in sorted(dictionary.items()): + row = {'takhleuztoneudelam': key} + row.update(val) + + writer = csv.DictWriter(csvfile, fieldnames=csv_columns) + writer.writerow(row) + +except IOError: + print(f"I/O error: {IOError}") +csvfile.close()