User Tools

Site Tools


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

Except where otherwise noted, content on this wiki is licensed under the following license: Public Domain
Public Domain Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki