#!/bin/sh
# ###################################################################################################################
# Analizza il dettaglio delle chiamate riportate in un file 'Microsoft Excel Comma Separated Values' della Vodafone #
# ###################################################################################################################

# Controlla che ci sia un argomento.
[ $# -eq 1 ] || { echo >&2 ERRORE: Devi specificare il file delle chiamate; exit 1;}

# Controlla se il file esiste.
[ ! -f $1 ] && { echo >&2 ERRORE: il file \'$1\' non esiste; exit 1;}

# Filtra il file di input delle chiamate, definisce la valuta utilizzata ed inizializza le variabili.
INPUT_f="/tmp/dettaglio_chiamate.csv"
cat $1 |grep "I Omnitel" > $INPUT_f
VALUTA="euro"
let tot=costo_tot=sms_inviati=costo_sms=tel_effettuate=costo_tel=altro=costo_altro=sms_zero=ore=minuti=secondi=0

# Inizia il Report.
echo; echo "-----------------------------------------------------------------------------------"
echo "- Report sulle operazioni Vodafone dal`head -1 $INPUT_f |awk -F, '{print $2}'` al`tail -1 $INPUT_f |awk -F, '{print $2}'` -"
echo "-----------------------------------------------------------------------------------"
echo; echo -n "Please stand-by."

# Calcola il numero ed il costo totale delle operazioni.
for item in `cat $INPUT_f |awk -F, '{print $7}'`; do
	tot=`expr $tot + 1`
	costo_tot=`echo "$costo_tot + $item" |bc`
done

# Calcola il numero ed il costo dei messaggi.
echo -n "."
for item in `cat $INPUT_f |grep Messaggi |awk -F, '{print $7}'`; do
	sms_inviati=`expr $sms_inviati + 1`
	costo_sms=`echo "$costo_sms + $item" |bc`
done

# Calcola il numero ed il costo delle telefonate.
echo -n "."
for item in `cat $INPUT_f |grep Telefonia |awk -F, '{print $7}'`; do
	tel_effettuate=`expr $tel_effettuate + 1`
        costo_tel=`echo "$costo_tel + $item" |bc`
done

# Calcola il tempo trascorso in telefonate.
echo -n "."
for item in `cat $INPUT_f |grep Telefonia |awk -F, '{print $6}' |awk -F: '{print $1}'`; do
	ore=`echo "$ore + $item" |bc`
done
echo -n "."
for item in `cat $INPUT_f |grep Telefonia |awk -F, '{print $6}' |awk -F: '{print $2}'`; do
        minuti=`echo "$minuti + $item" |bc`
done
echo -n "."
for item in `cat $INPUT_f |grep Telefonia |awk -F, '{print $6}' |awk -F: '{print $3}'`; do
	secondi=`echo "$secondi + $item" |bc`
done
minuti=`echo "$minuti+$secondi/60" |bc`
secondi=`echo "$secondi-($secondi/60)*60" |bc`

# Calcola il numero ed il costo di altre operazioni.
echo " done."
for item in `cat $INPUT_f |grep -v Messaggi |grep -v Telefonia |awk -F, '{print $7}'`; do
	altro=`expr $altro + 1`
        costo_altro=`echo "$costo_altro + $item" |bc`
done

# Calcola il numero dei messaggi inviati gratuitamente.
sms_zero=`cat $INPUT_f |grep Messaggi |awk -F, '{print $7}' |grep 0.0 |wc -l`

# Termina il Report.
echo; echo "Le operazioni complessive sono state $tot per un costo totale di $costo_tot $VALUTA, in particolare:"
echo "*) gli SMS inviati sono stati $sms_inviati per un costo di $costo_sms $VALUTA ($sms_zero sono stati inviati gratuitamente)"
echo "*) le telefonate effettuate sono state $tel_effettuate per un costo di $costo_tel $VALUTA"
echo "*) il tempo trascorso al telefono e' stato di $ore ore, $minuti minuti e $secondi secondi"
echo "*) sono presenti altre $altro voci per un costo di $costo_altro $VALUTA"; echo

# Elimina il file delle chiamate temporaneo.
rm -f $INPUT_f

