#!/bin/bash
PATH=/usr/local/sbin:/bin:/sbin:/usr/bin:/usr/sbin

cd /opt/euro-beta
EMAIL=`systools/get_eurodb_config_val MailReportEmail`
EVENTS=`systools/get_eurodb_config_val MailReportIds`
FREQUENCY=`systools/get_eurodb_config_val MailReportPeriod`
RETRY=5

[ "$EMAIL" -a "$EVENTS" -a "$FREQUENCY" ] && systools/check_module_license MailReport || exit 1

DBNAME=eurotest
MYSQL="mysql -peuro3g -ueuro3g $DBNAME -B --silent"
TMPFILE=/tmp/mailevents$$.txt
ERRORFILE=/tmp/mailreport.err

MAIL=mail
if [ -e /usr/local/bin/mail ]
then
  MAIL=/usr/local/bin/mail
fi

SYSNAME=`systools/get_eurodb_config_val ModemSystemName`
NOW_S=`date +%s`
#NOW_ISO=`date -d@$NOW_S +"%Y-%m-%d %H:%M:%S"`
NOW_ISO=`awk 'BEGIN { print strftime("%Y-%m-%d %H:%M:%S", '$NOW_S'); }'`

LASTTRY_ISO=`systools/get_eurodb_config_val MailReportLastTry`
LASTTRY_ISO=${LASTTRY_ISO:=2000-01-01}
LASTTRY_S=`date -d"$LASTTRY_ISO" +%s`
DIFF=$(( ($NOW_S-$LASTTRY_S)/60 ))

[ $DIFF -lt $RETRY ] && exit 0
systools/set_eurodb_config_val MailReportLastTry string "$NOW_ISO" 

LASTREPORT_ISO=`systools/get_eurodb_config_val MailReportLastEventReport`
LASTREPORT_ISO=${LASTREPORT_ISO:=2000-01-01}
LASTREPORT_S=`date -d"$LASTREPORT_ISO" +%s`
DIFF=$(( ($NOW_S-$LASTREPORT_S)/60 ))

[ $DIFF -lt $FREQUENCY ] && exit 0

rm -f $ERRORFILE

echo "
SELECT date_format(event_time,'%Y-%m-%d %H:%i:%s'), table_id, waiter_id, event_descr, 
       IF(document_id=0,FORMAT(event_qty,2),document_id),
       event_total, 
       IF(document_id=0,'Qty:','Doc:')
  FROM eventlog
  WHERE event_time BETWEEN '$LASTREPORT_ISO' AND '$NOW_ISO'
    AND FIND_IN_SET(event_class_id, '$EVENTS') != 0
  ORDER BY event_id  
" |
$MYSQL | tr '|\t' ' |' |
(
  while  IFS="|" read TIME TABLE WAITER EVENT QTY TOTAL HDR
  do
#    echo time = $TIME, table = $TABLE, waiter = $WAITER, event = $EVENT, qty = $QTY, total = $TOTAL
    echo "$TIME    $TABLE   $WAITER"
    echo "$EVENT"
    echo "$HDR $QTY   Importo: $TOTAL"
    echo
  done
) > "$TMPFILE"

if [ `cat "$TMPFILE" | wc -l` -gt 0 ]
then
  cat "$TMPFILE" | 
  $MAIL -s "E3g report $NOW_ISO" -r "noreply@e3g.spintec.com (E3g $SYSNAME)" $EMAIL 2>$ERRORFILE && 
    systools/set_eurodb_config_val MailReportLastEventReport string "$NOW_ISO" 
fi
rm -f "$TMPFILE"
