# coding: utf8

import time
import csv
from datetime import datetime
import sys
from pprint import pprint

FILE = 'VFGDSP202110_Summarised_data_usage_per_ICCID.CSV'
FILE2 = 'Standard_Pairing_File___2021-11-15T93331674Z.CSV'
FILE3 = 'VFGDSP202110_Summarised_SMS_usage_per_IMSI.CSV'

#usrmonth = input("Month to be processed: ")
#usrmonth = int(usrmonth)
usrmonth = int(5)

dictionary = {}


def add_dict(ICCID, IMSI):

    dict = dictionary.get(ICCID)
    print("Dict: ",dict)
    print("Got IMSI: ", IMSI,"to add to dict: ",ICCID)

    print("OK")
    dict[ICCID] += IMSI

def add_dict2(ICCID, IMSI):                                                                                                                                                                                                         
    dict = dictionary.get(ICCID)                                                                                                                                                                         
    print("Dict: ",dict)                                                                                                                                                                                 
    print("Got IMSI: ", IMSI,"to add to dict: ",ICCID)                                                                                                                                                   
                                                                                                                                                                                                                  
    print("OK")                                                                                                                                                                                          
    dict['IMSI'] = IMSI
    print('updated', dict)

def add_dictsms(id, key, value):
    dict = dictionary.get(id)
    value_ = float(value)
    if key in dict:
        dict[key] == value_
    else:
        print("Never should happen", id)

def add_dictsmsprice(ICCID3, pricesms):
    dict2 = dictionary.get(ICCID3)
    print("section 3, add to sms")
    print(dict2)
    print("increasing sms dict key for dict: ",dict2 , " for :", pricesms)
    dict["x"] == pricesms


# MAIN

print("Start")
with open(FILE, newline='', encoding="utf-8") as csvfile:
    reader = csv.DictReader(csvfile, delimiter=',')
    for row in reader:

        # print(row)
        #if row['Telefonní číslo'] == '':
            #continue  # skip empty MSISDN

        #if row['Začátek fakturačního období'] == '':
            #continue

        #my_string = row['Začátek fakturačního období']
        # my_string = '2021-09-06'
        #print("start date: ", my_string)

        #try:
            #my_date = datetime.strptime(my_string, "%d.%m.%Y")
        #except:
            #print("An exception occurred, current my_string is: ", my_string)
            #sys.exit(1)

        # print(row['BILLED_PERIOD_START'])
        # print(my_date.month)

        #if usrmonth != my_date.month:
            #print("skipping bad date")
            #continue  # skip bad dates

        #MSISDN = int(row['Telefonní číslo'])
        print(row['ICCID'])
        ICCID = int(row['ICCID'])
        price = row['Sum Total Kbytes'].replace(',', '.')
        price = price.replace(' ', '')
        print(price)
        price = (2.23*float(price))/1024


        # only if not exist create new record in dictionary for ID
        if not ICCID in dictionary:
            print("Creating dictionary: ", ICCID)
            dictionary[ICCID] = {'IMSI': 0,'data': price, 'sms': 0.00000, 'other': 0.00000, 'smscount': 0}

xxx = []
print("Start section 2")
with open(FILE2, newline='', encoding="utf-8") as csvfile2:
    reader2 = csv.DictReader(csvfile2, delimiter=',')
    for row in reader2:
        print(row['IMSI'])
        IMSI = int(row['IMSI'])
        ICCID2 = ICCID3 = int(row['ICCID'])
        ICCID3 = int(ICCID2)
        print("Je to jeste ok? ",ICCID3)
        xxx.append(int(row['ICCID']))

        if ICCID2 in dictionary:
            print("Adding IMSI: ",IMSI ,"to dictionary: ", ICCID2)
            add_dict2(ICCID2, IMSI)


# print("Start section 3")
# with open(FILE3, newline='', encoding="utf-8") as csvfile3:
#     reader3 = csv.DictReader(csvfile3, delimiter=',')
#     for row in reader3:
#         print(xxx[1])
#         print("we got bad ICCIDfinal from section 2! :",xxx[5])
#         IMSI2 = int(row['IMSI'])
#         print(row['Nr. of SMS payload'])
#         print(row['Nr. of SMS MO'])
#         smspay = int(row['Nr. of SMS payload'])
#         smsmo = int(row['Nr. of SMS MO'])
#
#
#         price = smspay * smsmo * 1.28
#
#
#         print("Dict: ", dict)
#         for x in xxx:
#
#             print("Adding SMSprice: ",price ,"to dictionary: ", x)
#
#             add_dictsmsprice(x, price)



# print("Start section 3")
# with open(FILE3, newline='', encoding="utf-8") as csvfile3:
#     reader3 = csv.DictReader(csvfile3, delimiter=',')
#     for row in reader3:
#         print(row['ICCID'])




    # try:
    # print(dictionary[436761890319959]) #one with both types
    # except:
    # print("Required unit is not in our set")
    # sys.exit(1)

# print(len(dictionary.keys()))

# for key, value in dictionary.items():
# print(key, ' : ', value)


print("Count of units: ", len(dictionary.keys()))

with open('export_vfgdsp202110v1.csv', 'w') as f:
    for key in dictionary.keys():
        f.write("%s,%s\n" % (key, dictionary[key]))

csv_columns = ['takhleuztoneudelam', 'IMSI','data', 'sms', 'other', 'smscount']
try:
    with open('export_vfgdsp_202110v1.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}")

