#!/bin/bash
# Скрипт нагадує, що треба передати показники лічильників воды, ґаза, електро.
email=
sound="/usr/share/sounds/ubuntu/notifications/Rhodes.ogg"
dbfile=database.sqlite3
cd $(dirname $0)
declare meters_data
declare -a array_data
declare per_month
day_of_week=$(date +%u) # День тижня 1..7
day_of_month=$(date +%e) # День місяця 1..31
month=$(date +%m)
month=${month##+(0)} # Місяць 1..12
year=$(date +%Y)
datetext="${day_of_month}.${month}.${year}" # ЧЧ.ММ.РРРР
[ $day_of_week -eq 6 -o $day_of_week -eq 7 ] && exit 0 # Якщо Sat чи Sun, то одразу вихід.
function get_input_data {
text=$(echo "SELECT action FROM actions WHERE id=$1" | sqlite3 $dbfile)
meters_data=$(/usr/bin/zenity --title "Сьогодні ${day_of_month} число" --entry --text "$text" 2>/dev/null)
}
actions=$(echo "SELECT action_id FROM day_action WHERE day=${day_of_month} ORDER BY action_id" | sqlite3 $dbfile)
for action in $actions ; do
DBR=$(echo "SELECT datetext, metersdata FROM fulfilled \
WHERE action=$action ORDER BY dateunix DESC" | sqlite3 $dbfile)
month_year=$(echo ${DBR%%|*} | sed -r 's/.{,2}\.//') # last date and last meters data
[ "$month_year" == ${month}.${year} ] && continue
last_meters_data=${DBR#*|} # останні показники
[ -f "$soundfile" ] && paplay "$soundfile"
get_input_data "$action"
[ -z "$meters_data" ] && continue
dateunix=`date +%s`
echo "INSERT INTO fulfilled (action, metersdata, datetext, dateunix) \
VALUES ($action, $meters_data, '$datetext', $dateunix)" | sqlite3 $dbfile
[ -z "$email" ] && continue # якщо email вказано, на нього буде відправлен звіт
DBR=$(echo "SELECT mail_subject, mail_body FROM actions WHERE id=$action" | sqlite3 $dbfile)
mail_subject="${DBR%%|*}"
mail_body="${DBR#*|}"
let "per_month = meters_data - last_meters_data"
# Шаблонізатор тексту листа
mail_body=$(echo "${mail_body}" | sed "s/METERS_DATA/${meters_data}/") # поточні покази
mail_body=$(echo "${mail_body}" | sed "s/TIME/`date +%H:%M`/") # час
mail_body=$(echo "${mail_body}" | sed "s/LAST_METERS_DATA/${last_meters_data}/") # попередні покази
mail_body=$(echo "${mail_body}" | sed "s/PER_MONTH/${per_month}/") # використано за місяць
echo "${mail_body}" | mail -s "${mail_subject}" ${email}
done