From: Wulf Date: Wed, 8 Feb 2012 09:42:00 +0000 (+0100) Subject: f-tex template changes X-Git-Tag: release-2.7.0beta1~10^2^2 X-Git-Url: http://wagnertech.de/git?a=commitdiff_plain;h=4f7b541697e2226be9a7ff9ac0dc62f8b4002544;p=kivitendo-erp.git f-tex template changes remove setup.sh add NOFORMAT to total, paid, invtotal add tempfile (old tabelle.tex) to tmpfile-mechanism (@sven, fuer Konsistenz eventuell tmpfile -> meta_template.tmpfile) add balance_sheet.html, income_statement.html from Default for consistence --- diff --git a/templates/print/f-tex/balance_sheet.html b/templates/print/f-tex/balance_sheet.html new file mode 100644 index 000000000..478caabca --- /dev/null +++ b/templates/print/f-tex/balance_sheet.html @@ -0,0 +1,100 @@ + + + +

+<%company%> +
<%address%> + +

BALANCE SHEET +
<%period%> +

+ + + + + + + + +<%foreach asset_account%> + + + + + + +<%end asset_account%> + + + + + + + + + + + + + + + + + +<%foreach liability_account%> + + + + + + +<%end liability_account%> + + + + + + + + + + + + + + + + +<%foreach equity_account%> + + + + + + +<%end equity_account%> + + + + + + + + + + + + + + + + + +
ASSETS

<%this_period%><%last_period%>
<%asset_account%><%asset_this_period%><%asset_last_period%>


TOTAL ASSETS<%total_assets_this_period%>
<%total_assets_last_period%>
LIABILITIES
<%liability_account%><%liability_this_period%><%liability_last_period%>


Total Liabilities<%total_liabilities_this_period%>

+
<%total_liabilities_last_period%>

+
SHAREHOLDER'S EQUITY

<%equity_account%><%equity_this_period%><%equity_last_period%>


Total Equity<%total_equity_this_period%>

+
<%total_equity_last_period%>

+
TOTAL LIABILITIES & EQUITY<%total_this_period%>

<%total_last_period%>

+ + + diff --git a/templates/print/f-tex/default.tex b/templates/print/f-tex/default.tex index cbaed19cc..542f486ca 100644 --- a/templates/print/f-tex/default.tex +++ b/templates/print/f-tex/default.tex @@ -103,10 +103,10 @@ \newcommand{\transdate}{<%transdate%>} % Lieferscheindatum \newcommand{\terms}{<%terms%>} % Zahlungsfrist \newcommand{\duedate}{<%duedate%>} % Fälligkeitsdatum -\newcommand{\invtotal}{<%invtotal%>} % Gesamtbetrag -\newcommand{\paid}{<%paid%>} % Schon bezahlt -\newcommand{\total}{<%total%>} % Restbetrag -\newcommand{\subtotal}{<%subtotal NOFORMAT%>} % Restbetrag +\newcommand{\invtotal}{<%invtotal NOFORMAT%>} % Gesamtbetrag +\newcommand{\paid}{<%paid NOFORMAT%>} % Schon bezahlt +\newcommand{\total}{<%total NOFORMAT%>} % Restbetrag +\newcommand{\subtotal}{<%subtotal NOFORMAT%>} % Restbetrag \newcommand{\paymentterms}{<%payment_terms%>} % Zahlungsbedingungen \newcommand{\paymentPrivatEnd}{E} % Endung bei Privatkunden \newcommand{\paymenttype}{<%payment_description%>} % name der Zahlungs-art - fuer Steuerung brutto/netto @@ -357,7 +357,7 @@ %======Die eigentliche-Tabelle======================================== % temporaere Datei mit Tabelle anlegen -\begin{filecontents}{tabelle.tex} +\begin{filecontents}{<%tmpfile%>.table.tex} \mainfont \resetlaufsumme @@ -489,7 +489,7 @@ } \end{filecontents} % Ende der Hilfsdatei. -\LTXtable{\textwidth}{tabelle.tex} +\LTXtable{\textwidth}{<%tmpfile%>.table.tex} \rule{\textwidth}{0pt} % Ein (unsichtbarer) Strich quer ueber die Seite \vspace{ 5mm} diff --git a/templates/print/f-tex/income_statement.html b/templates/print/f-tex/income_statement.html new file mode 100644 index 000000000..e9d6a4002 --- /dev/null +++ b/templates/print/f-tex/income_statement.html @@ -0,0 +1,82 @@ + + + +

+<%company%> +
<%address%> + +

INCOME STATEMENT +
<%period%> +

+ + + + + + + + + +<%foreach income_account%> + + + + + + +<%end income_account%> + + + + + + + + + + + + + + + + + + +<%foreach expense_account%> + + + + + + +<%end expense_account%> + + + + + + + + + + + + + + + + + + +
INCOME

<%this_period%><%last_period%>
<%income_account%><%income_this_period%><%income_last_period%>


Total Income<%total_income_this_period%>
<%total_income_last_period%>
EXPENSES

<%expense_account%><%expenses_this_period%><%expenses_last_period%>


Total Expenses<%total_expenses_this_period%>

+
<%total_expenses_last_period%>

+
INCOME / (LOSS)<%total_this_period%>

<%total_last_period%>

+ + + + + + + + diff --git a/templates/print/f-tex/setup.sh b/templates/print/f-tex/setup.sh deleted file mode 100755 index b557e8061..000000000 --- a/templates/print/f-tex/setup.sh +++ /dev/null @@ -1,1082 +0,0 @@ -#!/bin/bash - - -# Setup script fuer die Nutzung der fancy-LaTeX Umgebung oder -# der Label-Print erweiterung (lp) in LX-Office-erp. -# Welches Setup ist von der Position innerhalb des Dateisystems abhaengig. -# Das Script kann auch nach erfolgtem Setup erneut aufgerufen werden - -# see ./setup.sh -h - - - - - -# Revision 0.2 (13.02.2011) add lp -# setup add determination of company data -# Revision 0.1 (19.12.2010) initial script create - - -# config - -DB_AUTH='../../config/lx_office.conf' - -FILE_LIST_FTEX=' - letter.tex - sample.lco - sample_head.pdf - translations.tex - xstring.sty - zwischensumme.sty -' - -FILE_LIST_LP=' - label_abs_a7_de.tex - label_nn_brief_a4_de.tex - zweckform_3427.tdf - zweckform_3483.tdf -' - - -DOC_TYPE_FTEX=' - invoice - proforma - sales_quotation - sales_order - sales_delivery_order - credit_note - pick_list - purchase_order -' - - -LXO_DETERMINE=' - ../../SL/Form.pm - ../../config/lx_office.conf.default - ../../doc/changelog -' - -CHK_RAWNUMBER_PATCH=' - ../../SL/DO.pm - ../../SL/IS.pm - ../../SL/OE.pm -' - -MY_DATA=' - employeecountry - labelcompanyname - labelbankname - labelbankcode - labelbankaccount - MYfromname - MYaddrsecrow - MYrechtsform - MYfromaddress - MYfromphone - MYfromfax - MYfromemail - MYsignature - MYustid - MYfrombank -' - -BASE_DIR=`readlink -f $0 | sed 's/setup\.sh$//'` - -MODUL=`basename ${BASE_DIR}` -export TEXINPUTS=".:${BASE_DIR}:" - -OK='...... [ok]' -MARK='\033[1;34m' -UNMARK='\033[0m' -TIME=`date +%s` - -USAGE="\n\n setup LaTeX templates for lx-office erp (www.lx-office.org) -\n\n USAGE: ./`basename $0` [OPTION] \n -\n - -h print this Help\n -\n -\n - OPTIONS for trouble shooting:\n\n - -D don't connect to any database\n - -C no colored output (don't use any terminal escape character)\n -\n\n - RECOMMENDED USE ./setup.sh - -\n -" - -# script control - -DATABASE=1 - -while getopts "hDC" flag -do - case $flag in - h) - echo -e ${USAGE} - exit - ;; - D) - DATABASE=0 - ;; - C) - NO_COLOR=1 - ;; - esac -done - -# Disclaim - -cat << EOD - - ########################################################################## - # Disclaimer # - ########################################################################## - # # - # Dies ist ein Script zum Einrichten von LaTeX Templates # - # (fancy-latex (f-tex)) oder (label-print (lp) fuer # - # # - # lx-office erp (www.lx-erp.org) # - # # - # Obwohl LX-Office sich an deutschsprachige Anwender richtet ist dieses # - # Script in Englisch und soll auch nicht uebersetzt werden. # - # # - # * es richtet sich an System-Administratoren # - # * da es das Script nur in einer Sprache gibt, ist es viel leichter # - # bei Fehlern und Fehlermeldungen aus dem Script selbst, im Internet # - # nach Loesungen zu suchen. # - # # - ########################################################################## - # # - # This script provides an easy to use setup for the fancy LaTeX # - # environment of lx-office erp (templates/f-tex) # - # # - # Normal use is to run ./setup.sh without any parameter. You may also # - # check # - # ./setup.sh -h # - # for help. # - # # - # The script tries to be as save as possible to avoid unwanted file # - # overwriting by being very interactive. It's designed to be invoked # - # multiple times inside the same template directory. So it is possible # - # to rerun the script if there are updates available or after you break # - # your LaTeX templates by any changes. # - # # - # I recommend to backup your installation and database before you run # - # this script. # - # # - # ANYHOW: I do not take responsibility for any harm initiated by this # - # script. (Wulf Coulmann -- scripts_at_gpl.coulmann.de) # - # # - ########################################################################## - - -EOD - -QUESTION=' I understand the above warnings [YES/NO/Q]:' - -echo -n "${QUESTION} " - - -[ "${NO_COLOR}" = 1 ] || echo -ne ${MARK} -read ANSWER -[ "${NO_COLOR}" = 1 ] || echo -ne "${UNMARK}" - - -until [ "${ANSWER}" = YES ]\ - || [ "${ANSWER}" = NO ] \ - || [ "${ANSWER}" = N ] \ - || [ "${ANSWER}" = n ] \ - || [ "${ANSWER}" = q ] \ - || [ "${ANSWER}" = Q ] ; do - echo -n "${QUESTION} " - [ "${NO_COLOR}" = 1 ] || echo -ne ${MARK} - read ANSWER - [ "${NO_COLOR}" = 1 ] || echo -ne "${UNMARK}" -done - -case ${ANSWER} in - YES) - echo -n ' accepted' - ;; - NO|n|N|q|Q) - echo - echo ' script aborted by user input' - exit 72 - ;; -esac - - -FEEDBACK='################################\n # FEEDBACK:\n -' - - -# load functions - -function error { - echo '[error]' ...... $1 ...... '[terminate script]' - exit 72 -} - -function mark { - [ "${NO_COLOR}" = 1 ] || echo -ne "${MARK}" - echo -n "${1}" - [ "${NO_COLOR}" = 1 ] || echo -ne "${UNMARK}" -} - - - -function ask_yn { - local QUESTION=$1 - until [ "${ANSWER}" = y ]\ - || [ "${ANSWER}" = Y ] \ - || [ "${ANSWER}" = j ] \ - || [ "${ANSWER}" = J ] \ - || [ "${ANSWER}" = n ] \ - || [ "${ANSWER}" = N ] \ - || [ "${ANSWER}" = Q ] \ - || [ "${ANSWER}" = q ] ; do - echo -n "${QUESTION}" - read ANSWER - done - - case ${ANSWER} in - y|Y|j|J) - return - ;; - n|N) - return - ;; - q|Q) - [ "${NO_COLOR}" = 1 ] || echo -ne "${UNMARK}" - echo - echo ' script aborted by user input' - exit 72 - ;; - esac -} - -function latex_pack_check { - echo ' -> search LaTeX package '$1' ' - echo -n ' ' - if [ ! `kpsewhich ${1}.sty` ] ; then - echo - echo " can't find package ${1}" - echo " on debian systems you may install apt-file" - echo " aptitude install apt-file" - echo " apt-file update" - echo " apt-file search ${1}.sty" - echo " this will show which package contains the needet LaTeX .sty file" - echo " on other systems, please refer to their documentation on how to " - echo " find matching packages." - echo - echo " If you are done, rerun this script" - echo " [unsatisfied dependencies]' ...... ${1} ...... [terminate script]" - exit 72 - else - echo \ \ ${OK} - fi - -} - -function check_accepted_names { - echo ' -> check for suspect characters in '${2} - echo -n ${1} | egrep '[^-_\.!A-Za-z0-9]' && echo ' [suspect characters found] in ... '${2}' ... [terminate script]' && exit 72 -} - -function check_int { - echo ' -> check for suspect characters in '${2} - echo -n ${1} | egrep '[^0-9]' && echo ' [suspect characters found] in ... '${2}' ... [terminate script]' && exit 72 -} - -function create_file { - ANSWER=0 - if [ "${1}" = ln ] ;then - DO=1 - echo -n ' -> try to create symbolic link '${3} - if [ -e "${3}" ] ; then - if [ -L "${3}" ] ; then - if [ "`ls -l ${3} | awk '{print $10}'`" = "${2}" ]; then - echo ' ... symbolic link already exists, nothing to do!' - DO=0 - else - echo ' ... symbolic link with different target exist!' - ls -lah "${3}" - echo ' you may' - echo ' [d] delete and replace the current link' - echo ' [m] move current link to '${3}.${TIME}.old - echo ' [s] skip -- leave it as it is' - echo ' [q] abort setup.sh' - QUESTION=' what do do? [d/m/s/q]: ' - echo -en ${QUESTION} - [ "${NO_COLOR}" = 1 ] || echo -ne ${MARK} - read ANSWER - [ "${NO_COLOR}" = 1 ] || echo -ne ${UNMARK} - until [ "${ANSWER}" = D ] \ - || [ "${ANSWER}" = d ] \ - || [ "${ANSWER}" = m ] \ - || [ "${ANSWER}" = s ] \ - || [ "${ANSWER}" = q ] ; do - echo -n "${QUESTION}" - read ANSWER - done - - case ${ANSWER} in - d) - rm -f ${3} || error ' unable to delete symbolic link '${3} - ;; - m) - mv -f ${3} ${3}.${TIME}.old || error ' unable to move symbolic link '${3} - ;; - s) - echo ' as you decide, we leave it as it is!' - DO=0 - ;; - q) - [ "${NO_COLOR}" = 1 ] || echo -ne "${UNMARK}" - echo - echo ' script aborted by user input' - exit 72 - ;; - esac - fi - else - echo ' ... file already exists where I tried to create a symbolic link!' - ls -lah "${3}" - echo ' you may' - echo ' [S] show the file (exit file display with "q")' - echo ' [m] move current file to '${3}.${TIME}.old - echo ' [d] delete and replace the file with symbolic link' - echo ' [s] skip -- leave it as it is' - echo ' [q] abort setup.sh' - QUESTION='what to do? [S/d/m/s/q]:' - echo -en " ${QUESTION} " - [ "${NO_COLOR}" = 1 ] || echo -ne ${MARK} - read ANSWER - [ "${NO_COLOR}" = 1 ] || echo -ne ${UNMARK} - until [ "${ANSWER}" = S ] \ - || [ "${ANSWER}" = d ] \ - || [ "${ANSWER}" = m ] \ - || [ "${ANSWER}" = s ] \ - || [ "${ANSWER}" = q ] ; do - echo -n " ${QUESTION} " - read ANSWER - done - - case ${ANSWER} in - S) - echo - echo - less "${3}" - echo - echo - create_file "${1}" "${2}" "${3}" - return - ;; - m) - mv -f ${3} ${3}.${TIME}.old || error ' unable to move file '${3} - ;; - d) - rm -f ${3} || error ' unable to delete file '${3} - ;; - s) - echo ' as you decide, we leave it as it is!' - DO=0 - ;; - q) - [ "${NO_COLOR}" = 1 ] || echo -ne "${UNMARK}" - echo - echo ' script aborted by user input' - exit 72 - ;; - esac - fi - fi - if [ "${DO}" = "1" ] ;then ln -s "${2}" "${3}" || error ' failed to create symbolic link '${3} ; fi - [ "${DO}" = "1" ] && echo \ \ ${OK} - fi - - if [ "${1}" = cp ] ;then - echo -n ' -> try to copy file '${3} - DO=1 - if [ -e "${3}" ] ; then - echo ' ... file already exists!' - diff "${2}" "${3}" >/dev/null - if [ "$?" = 0 ] ; then - echo ' files are equal, we leave it as it is!' - DO=0 - else - ls -lah "${3}" - echo ' you may' - echo ' [D] show a diff between the new and current file' - echo ' [m] move current file to '${3}.${TIME}.old - echo ' [d] delete and replace with new file' - echo ' [s] skip -- leave it as it is' - echo ' [q] abort setup.sh' - QUESTION='what to do? [D/m/d/s/q]:' - echo -en " ${QUESTION} " - [ "${NO_COLOR}" = 1 ] || echo -ne ${MARK} - read ANSWER - [ "${NO_COLOR}" = 1 ] || echo -ne ${UNMARK} - until [ "${ANSWER}" = D ] \ - || [ "${ANSWER}" = d ] \ - || [ "${ANSWER}" = m ] \ - || [ "${ANSWER}" = s ] \ - || [ "${ANSWER}" = q ] ; do - echo -n " ${QUESTION} " - read ANSWER - done - - case ${ANSWER} in - D) - echo - echo - [ "${NO_COLOR}" = 1 ] || echo -ne ${MARK} - echo '---------------------------------------' - [ "${NO_COLOR}" = 1 ] || echo -ne ${UNMARK} - diff -C 3 "${2}" "${3}" - [ "${NO_COLOR}" = 1 ] || echo -ne ${MARK} - echo '---------------------------------------' - [ "${NO_COLOR}" = 1 ] || echo -ne ${UNMARK} - echo - echo - create_file "${1}" "${2}" "${3}" - ;; - m) - mv -f ${3} ${3}.${TIME}.old || error ' unable to move file '${3} - ;; - d) - rm -f ${3} || error ' unable to delete file '${3} - ;; - s) - echo ' as you decide, we leave it as it is!' - DO=0 - ;; - q) - [ "${NO_COLOR}" = 1 ] || echo -ne "${UNMARK}" - echo - echo ' script aborted by user input' - exit 72 - ;; - esac - fi - fi - if [ "${DO}" = "1" ] ;then cp "${2}" "${3}" || error ' failed to copy '${3} ; fi - [ "${DO}" = "1" ] && echo \ \ ${OK} - fi - -} - -function create_mydata { - - VALUE=${1} - DB=${2} - NODATA=' did not get a value corresponding to your template dir' - - SQL=" - SELECT regexp_replace( u1.cfg_value, E'\n' ,E'\\\\\\\\\\\\' || E'\n') - FROM auth.user_config u1, auth.user_config u2 - WHERE u1.user_id = u2.user_id - AND u1.cfg_key = '"${DB}"' - AND u2.cfg_key = 'templates' - AND u2.cfg_value = 'templates/"${TEMP_DIR}"' - ORDER BY u1.cfg_value DESC - LIMIT 1; - " - case ${DB} in - tel) - PRE='Tel:' - ;; - fax) - PRE='fax:' - ;; - co_ustid) - if [ ! `psql --pset tuples_only -h "${PGHOST}" -U "${PGUSER}" "${PGDATABASE}" -c "${SQL}"`"" ] ; then - SQL=" - SELECT regexp_replace( u1.cfg_value, E'\n' ,E'\\\\\\\\\\\\' || E'\n') - FROM auth.user_config u1, auth.user_config u2 - WHERE u1.user_id = u2.user_id - AND u1.cfg_key = 'taxnumber' - AND u2.cfg_key = 'templates' - AND u2.cfg_value = 'templates/"${TEMP_DIR}"' - ORDER BY u1.cfg_value DESC - LIMIT 1; - " - PRE='StNr.:' - else - PRE='UstIdNr:' - fi - ;; - *) - PRE='' - ;; - esac - - - - if [ "${2}" ] ; then - ANSWER=`psql --pset tuples_only -h "${PGHOST}" -U "${PGUSER}" "${PGDATABASE}" -c "${SQL}"` || error "unable to connect to auth db" - if [ ! "${VALUE}" ] ; then - echo ' please fix this later' - ANSWER=FIX_ME - else - echo ' found: '${ANSWER} - fi - else - if [ ! "${2}" ] && [ ${1} = "employeecountry" ] ; then - read ANSWER - else - echo ' please fix this later' - ANSWER=FIX_ME - fi - fi - - echo -e "\0134"'newcommand{'"\0134"${VALUE}'}{'${PRE}${ANSWER}'}' >> mydata.tex - -} - -function read_db_conf { - - perl -e 'use Config::Std; - read_config "'${DB_AUTH}'.default" => my %config_default; - my $val_default = $config_default{"authentication/database"}{'${1}'}; - read_config "'${DB_AUTH}'" => %config; - my $val = $config{"authentication/database"}{'${1}'} if $config{"authentication/database"}{'${1}'}; - if ( $val ) { - print $val; - }else{ - print $val_default; - }' - -} - - - - - -# check for dependencies -echo -n ' -> search kpsewhich ' - which kpsewhich >/dev/null - [ "$?" = 0 ] || error 'unable find programm "kpsewhich" -- is there a propper installed LaTeX? (on debian: aptitude install texlive-base-bin)' - echo \ \ ${OK} - -if [ "${MODUL}" = "f-tex" ] ; then - echo ' -> search LaTeX documentclass scrlttr2' - echo -n ' ' - if [ ! `kpsewhich scrlttr2.cls` ] ; then - echo - echo " can't find documentclass scrlttr2" - echo " on debian systems you may install it by" - echo " aptitude install texlive-latex-recommended" - echo " on other systems, please refer to their documentation how to find" - echo " matching packages." - echo - echo " If you are done, rerun this script" - echo " [unsatisfied dependencies]' ...... documentclass scrlttr2 ...... [terminate script]" - exit 72 - else - echo \ \ ${OK} - fi -elif [ "${MODUL}" = "lp" ] ; then - echo ' -> search LaTeX package ticket and check vor needed version ' - echo -n ' ' - HOLD_TEXINPUTS=${TEXINPUTS} - export TEXINPUTS='' - if [ `kpsewhich ticket.sty` ] ; then - grep rowmode `kpsewhich ticket.sty` > /dev/null - if [ "$?" -gt "0" ] ;then - FILE_LIST_LP=${FILE_LIST_LP}" ticket.sty" - echo \ \ "your version of LaTeX Package ticket does not support rowmode - we use our own ticket.sty" - echo \ \ \ \ \ \ "ticket.sty supports option rowmode from version v0.4b" - echo \ \ \ \ \ \ ${OK} - fi - else - FILE_LIST_LP=${FILE_LIST_LP}" ticket.sty" - echo \ \ "can't find LaTeX Package ticket, but we use our own ticket.sty because we need version => v0.4b" - echo \ \ \ \ \ \ "ticket.sty supports option rowmode from version v0.4b" - echo \ \ \ \ \ \ ${OK} - fi - export TEXINPUTS=${HOLD_TEXINPUTS} -else - error "no valid install modul - is the install script inside ~/templates/f-tex or ~/templates/lp ?" -fi - -for PACK in `grep usepackage ${BASE_DIR}/*.tex ${BASE_DIR}/*.sty ${BASE_DIR}/*.lco |awk -F '{' '{print $2}'|awk -F '}' '{print $1}'| sort | uniq`; do - latex_pack_check ${PACK} -done - - -# decide the installation target (template directory) -echo -n ' -> cd to base directory: '${BASE_DIR}' ' - - cd ${BASE_DIR} || error "unable to change directory" - echo \ \ ${OK} - - - -echo ' -> check if we are inside an lxo installation' - -if [ ! -e ../../SL/Form.pm ] ; then - - dpkg -l | grep lx-office-erp | egrep '^ii' - if [ "$?" = 0 ] ; then - echo ' seams like this is a Debian-package' - DB_AUTH='/etc/lx-office-erp/lx_office.conf' - - LXO_DETERMINE=' - /usr/lib/lx-office-erp/SL/Form.pm - /etc/lx-office-erp/lx_office.conf.default - /usr/share/doc/lx-office-erp/changelog - ' - - CHK_RAWNUMBER_PATCH=' - /usr/lib/lx-office-erp/SL/DO.pm - /usr/lib/lx-office-erp/SL/IS.pm - /usr/lib/lx-office-erp/SL/OE.pm - ' - - fi - -fi - -for now in ${LXO_DETERMINE} ; do - [ -e ${now} ] || error 'missing '${now}', do not run this script outside an lx-office installation!. Is setup.sh located inside an lxo installation in templates/'${MODUL}'?' -done -echo \ \ ${OK} - -if [ "${MODUL}" = "f-tex" ] ; then - echo ' -> search raw numbers patch ' - RAW_NUM=`egrep -oh '\{[^{]*_nofmt\}' ${CHK_RAWNUMBER_PATCH} |wc -l` - - if [ "${RAW_NUM}" -lt 20 ] ; then - echo ' did not find the raw_number values' - echo - egrep -oh '\{[^{]*_nofmt\}' ${CHK_RAWNUMBER_PATCH} - echo ' seems like you added fancy LaTeX separate and needed raw_number values are missing' - echo ' this is already part of the dev-source code.' - echo ' please use this script in the environment you got it from' - error 'missing raw_number values' - fi - echo \ \ ${OK} -fi - - -if [ ${DATABASE} = 1 ] ; then - - echo ' -> request Auth-DB ' - [ -r ${DB_AUTH} ] || [ -r ${DB_AUTH}.default ] || error "unable to read ${DB_AUTH} or ${DB_AUTH}.default -- you must be able to read db credentials" - - export PGDATABASE=`read_db_conf db` - check_accepted_names ${PGDATABASE} database_name - export PGPASSWORD=`read_db_conf password` - check_accepted_names ${PGPASSWORD} database_pw - export PGUSER=`read_db_conf user` - check_accepted_names ${PGUSER} database_user - export PGPORT=`read_db_conf port` - [ "${#PGPORT}" -lt 1 ] && PGPORT=5432 - check_int ${PGPORT} database_port - export PGHOST=`read_db_conf host` - [ "${#PGHOST}" -lt 1 ] && PGHOST=localhost - check_accepted_names ${PGHOST} database_host - - SQL=" - SELECT - substring(cfg_value from E'[^/]*$') as template_dir - FROM auth.user_config - WHERE cfg_key = 'templates' - GROUP BY cfg_value ; - " - - - echo ' -> search active template dirs ' - echo - [ "${NO_COLOR}" = 1 ] || echo -ne ${MARK} - - psql --pset tuples_only -h "${PGHOST}" -U "${PGUSER}" "${PGDATABASE}" -c "${SQL}" || error "unable to connect to auth db" - - [ "${NO_COLOR}" = 1 ] || echo -ne ${UNMARK} - echo ' I found the above listed template directorys in '`mark '[lxo-home]/templates'`' by requesting your user configuration.' - echo ' in database '`mark "${PGDATABASE}"`'.' -fi - -echo ' Type in which template directory to use (by typing in a name)' -echo ' * if template_dir does not exist, it will be created' -echo ' * template_dir must also be configured in your user administration' -echo ' to make it active.' -echo -echo -en ' type name of template dirctory: ' -[ "${NO_COLOR}" = 1 ] || echo -ne ${MARK} -read TEMP_DIR -[ "${NO_COLOR}" = 1 ] || echo -ne ${UNMARK} - - -[ "${#TEMP_DIR}" -gt 0 ] || error 'no value for template dir provided ' - - -if [ -d "../${TEMP_DIR}" ] ; then - MV_DIR=${TEMP_DIR}.${TIME}.old - echo - [ "${NO_COLOR}" = 1 ] || echo -ne ${MARK} - ls -lah ../${TEMP_DIR} - [ "${NO_COLOR}" = 1 ] || echo -ne ${UNMARK} - echo - echo ' the directory already exists and contains the above listed files' - echo ' you can:' - echo -e ' - move the directory to '`mark "templates/${MV_DIR}"`' and create a empty one, or' - echo ' - install the templates in the existing directory by interactive overwriting existing files' - echo - ask_yn ' move templates/'${TEMP_DIR}' to templates/'${MV_DIR}'? [y/n/q]: ' - - - - if [ "${ANSWER}" = y ] ; then - echo ' -> check for permission to move template directory ' - mv -i ../${TEMP_DIR} ../${MV_DIR} || error "unable to move directory " - echo -n ' -> original directory moved to '${MV_DIR} - echo \ \ ${OK} - fi - if [ "${ANSWER}" = n ] ; then - echo ' -> check for permission to write in template directory [lxo-home]/templates/'${TEMP_DIR} - [ -w ../${TEMP_DIR} ] || error "no permission to write directory " - echo \ \ ${OK} - fi - ANSWER=0 -fi - - -if [ ! -d "../${TEMP_DIR}" ] ; then - echo -n ' -> check for permission to create new template directory ' - mkdir "../"${TEMP_DIR} || error "unable to write to `echo ${PWD} | sed 's/\/'${MODUL}'$//'` -- you must be able to write in ~/templates " - echo \ \ ${OK} - echo -n ' -> '${TEMP_DIR}' created' - echo \ \ ${OK} -fi - -echo -n ' -> cd to template directory: '${TEMP_DIR}' ' - - cd ../${TEMP_DIR} || error "unable to change directory" - echo \ \ ${OK} -pwd - - -if [ -e mydata.tex ] ;then - echo ' -> check mydata.tex' - grep koma ./mydata.tex && FEEDBACK=${FEEDBACK}' # looks like a DEPRECATED mydata.tex -- please compare to f-tex/mydata.tex.example \n' - for now in ${MY_DATA} ; do - grep ${now} ./mydata.tex || FEEDBACK=${FEEDBACK}' # missing '${now}' in mydata.tex -- please compare to f-tex/mydata.tex.example \n' - done - - echo -e \ \ "your current mydata.tex looks like" - [ "${NO_COLOR}" = 1 ] || echo -ne ${MARK} - cat mydata.tex - [ "${NO_COLOR}" = 1 ] || echo -ne ${UNMARK} - -else - if [ ${DATABASE} = 1 ] ; then - # mydata voodooo goes here - SQL=" - SELECT - u1.cfg_value as company, - u2.cfg_value as address, - u3.cfg_value as tel, - u4.cfg_value as fax, - u5.cfg_value as texnumber, - u6.cfg_value as co_ustid - FROM - auth.user_config u1, - auth.user_config u2, - auth.user_config u3, - auth.user_config u4, - auth.user_config u5, - auth.user_config u6 - WHERE - u1.user_id = u2.user_id and - u2.user_id = u3.user_id and - u3.user_id = u4.user_id and - u4.user_id = u5.user_id and - u5.user_id = u6.user_id and - u1.cfg_key = 'company' and - u2.cfg_key = 'address' and - u3.cfg_key = 'tel' and - u4.cfg_key = 'fax' and - u5.cfg_key = 'taxnumber' and - u6.cfg_key = 'co_ustid' - GROUP BY - u1.cfg_value, - u2.cfg_value, - u3.cfg_value, - u4.cfg_value, - u5.cfg_value, - u6.cfg_value - ORDER BY - company; - " -# [ "${NO_COLOR}" = 1 ] || echo -ne ${MARK} -# -# psql -h "${PGHOST}" -U "${PGUSER}" "${PGDATABASE}" -c "${SQL}" || error "unable to connect to auth db" -# -# [ "${NO_COLOR}" = 1 ] || echo -ne ${UNMARK} - echo ' There is no mydata.tex, we try to create it' - echo ' please answer the following questions' - echo -n ' - country your company is located eg:"Deutschland" : ' - create_mydata employeecountry - echo ' - owner of the bankaccount for label print' - echo ' used for "pay on delivery (Nachnahme)"' - echo -n ' type ~ instead of blanks eg: "Herbert~Wichtig" : ' - create_mydata labelcompanyname - echo ' - name of the bank for label print' - echo ' used for "pay on delivery (Nachnahme)"' - echo -n ' type ~ instad of blanks eg: "Ensifera~Bank" : ' - create_mydata labelbankname - echo ' - bank account number for label print' - echo ' used for "pay on delivery (Nachnahme)"' - echo -n ' no blanks eg: "123456789" : ' - create_mydata labelbankcode - echo ' - bank code (BLZ) for label print' - echo ' used for "pay on delivery (Nachnahme)' - echo -n ' no blanks eg: "10010010" : ' - create_mydata labelbankaccount - echo ' - company name for dokuments' - echo ' used for invoice, sales_quotation, etc.' - echo -n ' eg: "Die globalen Problemlöser" : ' - create_mydata MYfromname company - echo ' - company name second row for documents' - echo ' used for invoice, sales_quotation, etc.' - echo -n ' eg: "Gesellschaft für anderer Leute Sorgen mbH" : ' - create_mydata MYaddrsecrow - echo ' - legal form for documents' - echo ' used for invoice, sales_quotation, etc.' - echo ' eg: "Handelsregister: HRA 123456789" : ' - echo -n ' or: "Inhaber Herbert Wichtig" : ' - create_mydata MYrechtsform - echo ' - company address for documents' - echo ' used for invoice, sales_quotation, etc.' - echo ' multirow, type \\ as row dilimiter ' - echo -n ' eg: "Hauptstraße 5\\12345 Hier" : ' - create_mydata MYfromaddress address - echo ' - tel for documents' - echo ' used for invoice, sales_quotation, etc.' - echo -n ' eg: "Tel: +49 (0)12 3456780" : ' - create_mydata MYfromphone tel - echo ' - fax for documents' - echo ' used for invoice, sales_quotation, etc.' - echo -n ' eg: "Fax: +49 (0)12 3456781" : ' - create_mydata MYfromfax fax - echo ' - email for documents' - echo ' used for invoice, sales_quotation, etc.' - echo -n ' eg: "mail@g-problemloeser.com" : ' - create_mydata MYfromemail - echo ' - signatur for documents' - echo ' used for invoice, sales_quotation, etc.' - echo -n ' eg: "Herbert Wichtig - Geschäftsführer" : ' - create_mydata MYsignature - echo ' - tax number for documents' - echo ' used for invoice, sales_quotation, etc.' - echo ' it is common to use ustid but if you have none' - echo ' type in your main tax number' - echo ' eg: "UstID: DE 123 456 789" : ' - echo -n ' or: "StrNr: 12/345/6789" : ' - create_mydata MYustid co_ustid - echo ' - bank account for documents' - echo ' used for invoice, sales_quotation, etc.' - echo ' multirow, type \\ as row delimiter ' - echo -n ' eg: "Bankverbindung\\Ensifera Bank\\Kto 1234567800\\BLZ 123 456 78" : ' - create_mydata MYfrombank - - # damn escaping -- gnarf - perl -pi -e 's/([^\$\{])\\/$1\\\\/g' mydata.tex - perl -pi -e 's/([\&\%])/\\$1/g' mydata.tex - else - cp ../f-tex/mydata.tex.example mydata.tex - FEEDBACK=${FEEDBACK}' # I generate a mydata.tex please edit this file to match to your needs \n' - fi - FEEDBACK=${FEEDBACK}' # I generate a mydata.tex please edit this file to match to your needs \n' -fi - - -if [ "${MODUL}" = "f-tex" ] ; then - # search for installed languages - if [ ${DATABASE} = 1 ] ; then - SQL=" - SELECT - u1.cfg_value || ';' || - u2.cfg_value || ';' || - u3.cfg_value || ';' || - u4.cfg_value || ';' || - u5.cfg_value - FROM - auth.user_config u1, - auth.user_config u2, - auth.user_config u3, - auth.user_config u4, - auth.user_config u5 - WHERE - u1.user_id = u2.user_id and - u2.user_id = u3.user_id and - u3.user_id = u4.user_id and - u4.user_id = u5.user_id and - u1.cfg_key = 'dbname' and - u2.cfg_key = 'dbhost' and - u3.cfg_key = 'dbport' and - u4.cfg_key = 'dbuser' and - u5.cfg_key = 'dbpasswd' - GROUP BY - u1.cfg_value, - u2.cfg_value, - u3.cfg_value, - u4.cfg_value, - u5.cfg_value; - " - - echo ' -> try to determine aktive languages ....' - echo ' -> search database '${PGDATABASE}' to find lxo-erp databases ....' - - DBS=`psql --pset tuples_only -h "${PGHOST}" -U "${PGUSER}" "${PGDATABASE}" -c "${SQL}"` || error "unable to connect to auth db" - - for db in ${DBS} ; do - - PGDATABASE=`echo -n ${db} | awk -F ';' '{print $1}'` - echo -e ' -> prepare to request db '`mark ${PGDATABASE}` - check_accepted_names ${PGDATABASE} database_name - PGHOST=`echo -n ${db} | awk -F ';' '{print $2}'` - [ "${#PGHOST}" -lt 1 ] && PGHOST=localhost - check_accepted_names ${PGHOST} database_host - PGPORT=`echo -n ${db} | awk -F ';' '{print $3}'` - [ "${#PGPORT}" -lt 1 ] && PGPORT=5432 - check_int ${PGPORT} database_port - PGUSER=`echo -n ${db} | awk -F ';' '{print $4}'` - check_accepted_names ${PGUSER} database_user - PGPASSWORD=`echo -n ${db} | awk -F ';' '{print $5}'` - check_accepted_names ${PGPASSWORD} database_pw - DELCHECK=`echo -n ${db} | awk -F ';' '{print $6}'` - [ "${#DELCHECK}" = 0 ] || error 'field delimiter conflict: there may be a ";" in one of your database definitions (db/host/port/user/pw)' - SQL="SELECT template_code FROM language ;" - echo \ \ ${OK} - RES=`psql --pset tuples_only -h "${PGHOST}" -U "${PGUSER}" "${PGDATABASE}" -c "${SQL}"` || error "unable to connect to db "${PGDATABASE} - echo -e ' -> found '`mark "${RES}"` - echo \ \ ${OK} - LANGS=${LANGS}' '${RES} - done - - LANGS=`echo ${LANGS} | sed 's/\ /\n/g'|sort | uniq` - echo ' -> join language codes ...' - echo - echo - [ "${NO_COLOR}" = 1 ] || echo -ne ${MARK} - echo -e ' '${LANGS} - [ "${NO_COLOR}" = 1 ] || echo -ne ${UNMARK} - echo - echo ' I found the above listed language template_codes (see: System -> Languages -> List Languages)' - echo ' - you may add more template_codes by type in a [space] seperated list (e.g.: ru it fr)' - echo ' - or you may replace it with your own values by type in a [space] seperated list (e.g.: ru it fr)' - ask_yn ' add template_codes? [y/n/q]: ' - - if [ "${ANSWER}" = y ] ; then - echo -n ' type [space] seperated template_code list to add to current values: ' - [ "${NO_COLOR}" = 1 ] || echo -ne ${MARK} - read TMP_CO - [ "${NO_COLOR}" = 1 ] || echo -ne ${UNMARK} - echo -n ' list of template_codes is now: ' - LANGS=${LANGS}' '${TMP_CO} - [ "${NO_COLOR}" = 1 ] || echo -ne ${MARK} - echo -e ' '${LANGS} - [ "${NO_COLOR}" = 1 ] || echo -ne ${UNMARK} - echo \ \ ${OK} - fi - ANSWER=0 - - ask_yn ' replace the current template_codes? [y/n/q]: ' - - if [ "${ANSWER}" = y ] ; then - echo -n ' type [space] seperated template_code list to replace current values: ' - [ "${NO_COLOR}" = 1 ] || echo -ne ${MARK} - read TMP_CO - [ "${NO_COLOR}" = 1 ] || echo -ne ${UNMARK} - echo -n ' list of template_codes is now: ' - LANGS=${TMP_CO} - [ "${NO_COLOR}" = 1 ] || echo -ne ${MARK} - echo -e ' '${LANGS} - [ "${NO_COLOR}" = 1 ] || echo -ne ${UNMARK} - echo \ \ ${OK} - fi - ANSWER=0 - else - echo -n ' type [space] seperated template_code list (see: System -> Languages -> List Languages eg: de en fr): ' - [ "${NO_COLOR}" = 1 ] || echo -ne ${MARK} - read TMP_CO - [ "${NO_COLOR}" = 1 ] || echo -ne ${UNMARK} - echo -n ' list of template_codes is now: ' - LANGS=${TMP_CO} - [ "${NO_COLOR}" = 1 ] || echo -ne ${MARK} - echo -e ' '${LANGS} - [ "${NO_COLOR}" = 1 ] || echo -ne ${UNMARK} - echo \ \ ${OK} - fi - - echo - echo - echo -e ' your current language template_codes are: '`mark "${LANGS}"` - echo - echo - - # copy files and create links - - - - for now in ${FILE_LIST_FTEX} ; do - create_file cp ../f-tex/${now} ${now} - done - - for now in ${LANGS} ; do - echo -n ' -> check if language code '${now}' is present in translations.tex' - egrep '^[^%]*\\IfEndWith{\\docname}{_'${now}'}' translations.tex > /dev/null - if [ "$?" -gt 0 ] ;then - HINT=' edit '${TEMP_DIR}'/translations.tex -- no representation of template_code '${now} - echo ' [warning] '${HINT} - FEEDBACK=${FEEDBACK}' # '${HINT}'\n' - fi - echo \ \ ${OK} - done - - - for doc in ${DOC_TYPE_FTEX} ; do - create_file ln ./letter.tex ./${doc}.tex - for now in ${LANGS} ; do - create_file ln ./letter.tex ./${doc}_${now}.tex - done - done - - create_file ln ./sample_head.pdf ./letter_head.pdf - create_file ln ./sample.lco ./letter.lco - -fi - - - -if [ "${MODUL}" = "lp" ] ; then - - for now in ${FILE_LIST_LP} ; do - create_file cp ../lp/${now} ${now} - done - -fi - -echo -echo -echo -en ' '${FEEDBACK} -echo -e ' ################################' -echo -echo ' If there are warnings listed in the feedback box above' -echo ' this is totally ok if you know what you do' -echo -echo ' done -> enjoy' -echo ' ### please check "settings" in '`pwd`'letter.lco ' - - -# company -# address -# co_ustid -# email -# taxnumber -# tel -# fax