#!/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