TRzeba było pogrzebac w kodzie C do demona. Tam jest duzo takich zapytan
<<ciach>>
Pozwolilem sobie pogrzebac w Twoim kodzie. Dokonalem takich oto zmian: - dostosowalem do aktualnej wersji CVS - porządek w zapytaniach by nie były z root - timestamp z konsoli (polecenie date zamiast zapytania sql) - zmienilem okres (linia 10 - każdy może wstawic co chce) - wysyla tylko jedna wiadomosc dotyczaca klienta mawet, jeżeli konczy mu się wiecej taryf w zadanym okresie - sprawdza nie czy nie ma dalej taryf (u mnie umowa sa na czas nieokreslony - tylko warunki po okresie promocyjnym się zmieniaja) tylko czy ostatni dokument nie ma w nazwie "Wypowiedzenie"
I oto co wyszlo:
#!/bin/bash user=`grep "^ user" /etc/lms/lms.ini | grep -v ';' | grep '=' | awk {'print $3'}`; pass=`grep "^ password" /etc/lms/lms.ini | grep -v ';' | grep '=' | awk {'print $3'}`; database=`grep "^ database" /etc/lms/lms.ini | grep -v ';' | grep '='| awk {'print $3'}`;
query_skip="mysql --skip-column-names -u $user -p$pass -D $database -e" mailto="sarenka@mojasiec.com"
NOW=`date +"%s"` FUTURE=`date --date="1 month" +"%s"` for i in `$query_skip "SELECT DISTINCT customerid FROM assignments where ( dateto < $FUTURE and dateto > $NOW and datefrom < $NOW ) " ` do lastname=`$query_skip "SELECT lastname from customers where id=$i"` #echo $lastname $i name=`$query_skip "SELECT name from customers where id=$i"` phone=`$query_skip "SELECT phone from customercontacts where customerid=$i"` #echo $phone email=`$query_skip "SELECT email from customers where id=$i"` unix_date_of_cutoff=`$query_skip "SELECT dateto from assignments where customerid=$i and dateto > $NOW ORDER BY dateto ASC LIMIT 1"` tariffid=`$query_skip "SELECT tariffid FROM assignments where customerid=$i and dateto > $NOW ORDER BY dateto ASC LIMIT 1"` #echo $tariffid tariff=`$query_skip "SELECT name FROM tariffs WHERE id = $tariffid"` #echo $tariff fromunix_date_of_cutoff=`date --date="1970-01-01 $unix_date_of_cutoff sec GMT" +"%Y/%m/%d"` #echo $fromunix_date_of_cutoff document=`$query_skip "SELECT id FROM documents WHERE customerid=$i and type < 0 ORDER BY cdate DESC LIMIT 1"` docname=`$query_skip "SELECT title FROM documentcontents WHERE docid = $document"` #echo $docname if [[ ${docname} == *Wypowiedzenie* ]] then #echo "Wypowiedzenie" else #echo "Mail" echo "Dnia $fromunix_date_of_cutoff konczy sie taryfa klientowi: $lastname $name ($i) telefon $phone email $email ostatni dokument: $docname link: <strona z lms>/?m=customerinfo&id=$i " | mail -s "[LMS-EndTariff] Konczaca sie taryfa: $lastname $name" $mailto fi Done