procedures:vonage_billing_whatsapp.zip
import glob import math import os import pandas as pd import zipfile
folder_path = '.'
# scorro tutti i file nella cartella
for filename in os.listdir(folder_path):
# prendo solo i file .zip
if filename.endswith('.zip'):
zip_path = os.path.join(folder_path, filename)
extract_path = folder_path
# estraggo tutti i .zip nella folder in modo da avere n file .csv
with zipfile.ZipFile(zip_path, 'r') as zip_ref:
zip_ref.extractall(extract_path)
# Lista per contenere i DataFrame
df_list = []
# Scorro tutti i file nella cartella
for filename in os.listdir(folder_path):
# leggo solo i file .csv e creo i df
if filename.endswith('.csv'):
file_path = os.path.join(folder_path, filename)
df = pd.read_csv(file_path, low_memory=False)
df_list.append(df)
# concateno tutti i df
df = pd.concat(df_list, ignore_index=True)
#creo il dataframe df = df[['account_id', 'provider','session_type','total_price']] df = df[df["provider"] == "whatsapp"] df['account_id'] = df['account_id'].astype(str)
#creo i dataframes per ogni apikey
account_ids = []
for i in df.index:
if df.loc[i,'account_id'] not in account_ids:
account_ids.append(df.loc[i,'account_id'])
dfs = []
for account_id in account_ids:
dfs.append(df[df['account_id'] == account_id])
#associo ogni apikey al cliente
api_keys = {
"920188a8": {
"nome": "Comersud",
"tariffe": {
"service": 0.0058,
"utility": 0,
"marketing": 0,
"auth": 0
}
},
"a0cbabe3": {
"nome": "Ocme",
"tariffe": {
"service": 0.0619,
"utility": 0.0647,
"marketing": 0.0872,
"auth": 0.0613
}
},
"961523ee": {
"nome": "Prysmian BR",
"tariffe": {
"service": 0.0041,
"utility": 0,
"marketing": 0,
"auth": 0
}
}
}
#faccio i conti e stampo rimsultati
for d in dfs:
print("\033[1m",api_keys[d["account_id"].iloc[0]]["nome"],"\033[0m")
#Ocme
if api_keys[d["account_id"].iloc[0]]["nome"] == "Ocme":
print("\tWA: ", len(d[d["session_type"] == "service"]))
print("\tBilled WA: ", len(d[(d["total_price"] > 0) & (d["session_type"] == "service")]))
print("\tTemplates: ", len(d[d["session_type"] == "utility"]))
print("\tBilled Templates: ", len(d[(d["total_price"] > 0) & (d["session_type"] == "utility")]))
print("\tCosto a noi WA: ", round(d[(d["total_price"] > 0) & (d["session_type"] == "service")]["total_price"].sum(),2), "€")
print("\tCosto a noi Templates: ", round(d[(d["total_price"] > 0) & (d["session_type"] == "utility")]["total_price"].sum(),2), "€")
print("\tFatturare: ", round(len(d[(d["total_price"] > 0) & (d["session_type"] == "service")]) * api_keys[d["account_id"].iloc[0]]["tariffe"]["service"] + len(d[(d["total_price"] > 0) & (d["session_type"] == "utility")]) * api_keys[d["account_id"].iloc[0]]["tariffe"]["utility"],2), "€")
print()
#Comersud, Prysmian BR
else:
print("\tWA: ", len(d[d["session_type"] == "service"]))
print("\tBilled WA: ", len(d[(d["total_price"] > 0) & (d["session_type"] == "service")]))
print("\tCosto a noi WA: ", round(d[d["total_price"] > 0]["total_price"].sum(),2), "€")
print("\tFatturare: ", round(len(d[d["total_price"] > 0]) * api_keys[d["account_id"].iloc[0]]["tariffe"]["service"],2), "€")
procedures/vonage_billing_whatsapp.zip.txt · Last modified: by luca.bottoli
