#!/bin/bash
PORT=50000
AUTH=""
### раскомментировать следующую строку c "AUTH" и изменить в ней, если необходимо, "LOGIN:PASSWORD",
### если подключение к серверу отчетов производится удаленно (не из локальрой сети), и не через тунель
#AUTH="admin:admin"
UBUK_BDNAME="ubuk"
UBUK_BDUSER="bukts"
REPTMPFILE="/tmp/bukazs.print"
REPTMPFILE_HTML="/tmp/bukazs.html"
REPTMPFILE_IMAGE="/tmp/bukazs.jpg"
REPTMPFILE_PDF="/tmp/bukazs.pdf"

REPNAME=$(echo $1 | cut -d: -f1)
REPTYPE=$(echo $1 | cut -d: -f2)
if [ -z "${REPTYPE?}" -o "${REPTYPE?}" == "${REPNAME?}" ]; then
    REPTYPE="1"
fi

HOST=$(cat /etc/opt/bukazs/bukazs.cfg | grep -i ^SERVER= | cut -d= -f2 | awk {'print $1'})
if [ -z "${HOST?}" ]; then
    HOST=localhost
fi

CONTENT=$2
if [ "${CONTENT?}" == "text" -o "${CONTENT?}" == "html" -o  "${CONTENT?}" == "image" ]; then
    shift
else
    CONTENT="text"
fi

SHIFT1=$2
SHIFT2=$3

ID_SHOP=$7
EXTPAR=$8

if [ -z "${ID_SHOP?}" ]; then
    SQL1='select id, doc_num from sd_ident where id_shop_type=0 order by id desc limit 1'
    IDENT=`psql -h $HOST -U $UBUK_BDUSER $UBUK_BDNAME -t -A -c "$SQL1"`
    ID_SHOP=$(echo $IDENT | cut -d'|' -f1)
    NUM4REP=$(echo $IDENT | cut -d'|' -f2)
else    
    SQL1='select doc_num from sd_ident where id_shop_type=0 order by id desc limit 1'
    IDENT=`psql -h $HOST -U $UBUK_BDUSER $UBUK_BDNAME -t -A -c "$SQL1"`
    NUM4REP=$(echo $IDENT | cut -d'|' -f1)
fi

if [ -z "${NUM4REP}" ]; then
    NUM4REP=${ID_SHOP?}
fi

REPTMPFILE_OUT=${REPTMPFILE}.out
if [ -f ${REPTMPFILE_OUT?} ]; then
    rm ${REPTMPFILE_OUT?}
fi

if [ "${CONTENT?}" == "html" ]; then
    REPTYP_CGI="report.cgi"
elif [ "${CONTENT?}" == "image" ]; then
    REPTYP_CGI="reports.cgi"
else
    REPTYP_CGI="reptxt.cgi"
fi

CMDL=""
if [ ! -z "${AUTH}" ]; then
    CMDL="-auth ${AUTH}"
fi

lynx ${CMDL} \
    "http://${HOST?}:${PORT?}/pgdb/${REPNAME?}/${REPTYP_CGI?}?node=${ID_SHOP?}:${NUM4REP?}&sm=${SHIFT1?}:${SHIFT2?}&t=${REPTYPE?}${EXTPAR}" \
    -source > ${REPTMPFILE_OUT?} 2>/dev/null

if [ "${CONTENT?}" == "text" ]; then
    tail --lines=+2 ${REPTMPFILE_OUT?} > ${REPTMPFILE?}
    cat ${REPTMPFILE?}
elif [ "${CONTENT?}" == "image" ]; then
    cp ${REPTMPFILE_OUT?} ${REPTMPFILE_HTML?}
    cp ${REPTMPFILE_OUT?} ${REPTMPFILE?}
    if [ ! -z $(which wkhtmltoimage) ]; then
	wkhtmltoimage ${REPTMPFILE_HTML?} ${REPTMPFILE_IMAGE?} > /dev/null 2>/dev/null
    else
	wkhtmltopdf ${REPTMPFILE_HTML?} ${REPTMPFILE_PDF?} > /dev/null 2>/dev/null
	convert -density 150 ${REPTMPFILE_PDF?} ${REPTMPFILE_IMAGE?} > /dev/null 2>/dev/null
    fi
    echo '-'
else
    cp ${REPTMPFILE_OUT?} ${REPTMPFILE?}
    cat ${REPTMPFILE?}
fi
