#!/bin/sh echo "Content-type: text/html" echo "" DODBG="false"; export DODBG; tmpfile1="/tmp/tmp1_$$.tmp" tmpfile2="/tmp/tmp2_$$.tmp" rm -f $tmpfile1 rm -f $tmpfile2 ############################################## # TESTING #SDATE="01/06/1996" #EDATE="03/06/1996" MONTH="07/2014" #SITEID=ALL ############################################## myprogname=`basename "$0"` mytitle="Extracting data from Telmax21" echo "<html>" echo "<head>" echo "<title>$mytitle</title>" echo "</head>" echo "<body>" echo "<h2>$myprogname</h2>" echo "<h3>$mytitle...</h3>" # set environment variables. #. /u/catcom/catcom_vars ################################################################# lastdayinmonth() # Returns the last day in month, Inputs: $1=mm $2=yyyy { cal $1 $2 | awk '{ if ( NF > 0 ) x=$NF } END { print x }' } ################################### # handle params # stdin post if [ "$REQUEST_METHOD" = "POST" ]; then cmd=`echo "$stdinput" | awk -f wbt_splitqstr.awk` $DODBG && echo "cmd=[$cmd]<br>" >>"$dbgfile" for cmdtok in `echo "$cmd"` do $DODBG && echo "cmdtok=[$cmdtok]<br>" >>"$dbgfile" fixcmdtok=`echo "$cmdtok" | ./wbt_fixqstr` $DODBG && echo "fixcmdtok=[$fixcmdtok]<br>" >>"$dbgfile" eval "$fixcmdtok" done $DODBG && echo "<hr>" >>"$dbgfile" fi # process query string if [ ! -z "$QUERY_STRING" ]; then $DODBG && echo "QUERY_STRING=[$QUERY_STRING]<br>" >>"$dbgfile" qstr=`echo "$QUERY_STRING" | awk -f wbt_splitqstr.awk` $DODBG && echo "qstr=[$qstr]<br>" >>"$dbgfile" for qtok in `echo "$qstr"` do $DODBG && echo "qtok=[$qtok]<br>" >>"$dbgfile" #echo "qtok=[$qtok]" >>/tmp/1 fixqtok=`echo "$qtok" | ./wbt_fixqstr` $DODBG && echo "fixqtok=[$fixqtok]<br>" >>"$dbgfile" #echo "fixqtok=[$fixqtok]" >>/tmp/1 eval $fixqtok done $DODBG && echo "<hr>" >>"$dbgfile" fi # handle cookies if [ ! -z "$HTTP_COOKIE" ]; then cookie=`echo "$HTTP_COOKIE" | awk -f wbt_splitqstr.awk` $DODBG && echo "cookie=[$cookie]<br>" >>"$dbgfile" for cookietok in `echo "$cookie"` do $DODBG && echo "cookietok=[$cookietok]<br>" >>"$dbgfile" fixcookietok=`echo "$cookietok" | ./wbt_fixqstr` fixcookietok="conf_$fixcookietok" $DODBG && echo "fixcookietok=[$fixcookietok]<br>" >>"$dbgfile" eval $fixcookietok done $DODBG && echo "<hr>" >>"$dbgfile" fi ################################### # get lock #LOCKFILE="/tmp/t21websql.lok" #while true #do # if [ ! -f "$LOCKFILE" ]; then # break; # fi # sleep 2 #done #touch $LOCKFILE ################################### if [ -n "$MONTH" ]; then mm=`echo $MONTH | sed -e 's/\/....$//g'` yyyy=`echo $MONTH | sed -e 's/^..\///g'` ldd=`lastdayinmonth $mm $yyyy` SDATE="01/$mm/$yyyy" EDATE="$ldd/$mm/$yyyy" $DODBG && echo "MONTH=[$MONTH] ldd=[$ldd] SDATE=[$SDATE] EDATE=[$EDATE]<br>" fi #if [ -z "$SITEID" -z "$SDATE" -o -z "$EDATE" ]; then # echo "You Must set SITEID, MONTH (mm/yyyy) or SDATE and EDATE (dd/mm/yyyy)" # echo "<br>" # exit 1 #fi if [ -z "$SITEID" ]; then SITEID="ALL" fi ######## if [ "$SITEID" = "ALL" ]; then SITEBIT="" else SITEBIT="and siteid = $SITEID" fi ################################################################## SQLCMD0=`cat << MYSQL0 select ost_ticket__cdata.ticket_id, DATE_FORMAT(ost_ticket.created, '%d/%m/%Y'), ost_organization.name, ost_ticket__cdata.subject from ost_ticket, ost_ticket__cdata, ost_organization left join ost_user on ost_user.org_id = ost_organization.id where ost_ticket.ticket_id = ost_ticket__cdata.ticket_id and ost_user.id = ost_ticket.user_id and MONTH(ost_ticket.created)=7 ORDER BY ost_ticket__cdata.ticket_id; MYSQL0 ` ################################################################## echo "SITEID=[$SITEID] MONTH=[$MONTH] SDATE=[$SDATE] EDATE=[$EDATE]<br>" echo "SQLCMD0=[$SQLCMD0]" echo "<br>" sdd=`echo $SDATE | sed -e 's/\/..\/....$//g'` smm=`echo $SDATE | sed -e 's/^..\///g;s/\/....$//g'` syyyy=`echo $SDATE | sed -e 's/^..\/..\///g'` edd=`echo $EDATE | sed -e 's/\/..\/....$//g'` emm=`echo $EDATE | sed -e 's/^..\///g;s/\/....$//g'` eyyyy=`echo $EDATE | sed -e 's/^..\/..\///g'` #(echo "unload to $tmpfile1 $SQLCMD0" | runisql 2>&1) >$tmpfile2 ( echo "$SQLCMD0" | mysql -u apache -ptimsnart osticket >$tmpfile1 ) >$tmpfile2 ################################### ### Formatting tempfile output ### ################################### #change format to pipe delimited file sed -i 's/\t/|/g' $tmpfile1 #add fields that are not in the database sed -i 's/|/|HS|/2' $tmpfile1 #add extra? date field gawk -i inplace -F'|' '{ print $1"|"$2"|"$3"|"$4"|"$5"|"$6"|"$2 }' $tmpfile1 #strip tempfile header for improting into excel sed -i '1d' $tmpfile1 ################################## if [ ! -s $tmpfile1 ]; then echo "NO OUTPUT|SQL:[$SQLCMD0]|" >$tmpfile1 echo "ERROR:|$tmpfile2|" >$tmpfile1 fi cat $tmpfile1 | sed -e 's/|$//' | awk -F'|' ' \ BEGIN { \ print "<table border=1>" } \ { \ print "<tr>" for ( i=1; i <= NF; ++i ) { printf("<td>%s</td>", $i) } print "\n" print "</tr>" } \ END { \ print "</table>" }' #dd=$sdd; mm=$smm; yyyy=$syyyy #while true #do # dodate="$dd/$mm/$yyyy" # tbldate=`echo $dodate | sed -e 's/\//_/g'` # cdrtable="c$tbldate" # $DODBG && echo "dodate=$dodate cdrtable=$cdrtable dd=$dd mm=$mm yyyy=$yyyy" # ############### ############### # # # increment date variables # dd=`expr $dd + 1 | awk '{printf("%02d\n",$1)}'` # if [ $dd -gt `lastdayinmonth $mm $yyyy` ]; then # dd=01 # mm=`expr $mm + 1 | awk '{printf("%02d\n",$1)}'` # if [ $mm -gt 12 ]; then # mm=01 # yyyy=`expr $yyyy + 1 | awk '{printf("%04d\n",$1)}'` # fi # fi # # # break out if we are past end date # if [ $yyyy$mm$dd -gt $eyyyy$emm$edd ]; then # break; # fi # #echo #done # show errors if [ -s $tmpfile2 ]; then echo "<br>" echo "SQL Status:" cat $tmpfile2 echo "<br>" fi rm -f $tmpfile1 rm -f $tmpfile2 ############################### # remove lock #rm -f $LOCKFILE ############################### echo "<p>" echo "Done." echo "</body>" echo "</html>" exit 0