X-Git-Url: http://git.plutz.net/?a=blobdiff_plain;ds=sidebyside;f=odtgen.sh;h=9ed1e22bbc7c57e3ecf9f9793da49f9cc88120c9;hb=HEAD;hp=dbe2945ff0bf92907bd90cfe748ef5c04178a6f0;hpb=b037f9960718351b0470ab7ea67271b291bebb0e;p=invoices diff --git a/odtgen.sh b/odtgen.sh index dbe2945..abed2db 100755 --- a/odtgen.sh +++ b/odtgen.sh @@ -12,7 +12,7 @@ odt_manifest(){ } odt_stylesheet(){ - local iban="$2" bic="$3" + local iban="$1" bic="$2" cat <<-EOF @@ -46,8 +46,8 @@ odt_stylesheet(){ Bankverbindung - IBAN: - ${iban} | - BIC: + ${iban} + | BIC: ${bic} @@ -58,22 +58,30 @@ odt_stylesheet(){ } odt_content(){ - local id="$1" sender="$2" client="$3" date="$4" number="$5" vat="$6" vatrate="$7" hourly="$8" + local id="$1" sender="$2" client="$3" date="$4" number="$5" vat="$6" vatrate="$7" hourly="$8" \ + taxtype nett tax gross + read -r taxtype nett tax gross <<-EOF + $(invoice_total "$id") + EOF + cat <<-EOF - + - + - + - - + + + + + @@ -87,6 +95,10 @@ odt_content(){ + + + + @@ -122,16 +134,16 @@ odt_content(){ $(HTML "$sender" |sed 'a')$(HTML "$sender" |sed -r 's;( \;)? \;|(�?[Dd]\;)?�?[aA]\;|\r?$;;g') $(HTML "$client" |sed 'a')$(HTML "$client" |sed -r 's;( \;)? \;|(�?[Dd]\;)?�?[aA]\;|\r?$;;g') - Rechnung ${issuance} + Rechnung ${number} @@ -139,16 +151,16 @@ odt_content(){ -->$(case $vat in (smallbusiness) printf 'Gemäß Kleinunternehmerregelung (§19 Umsatzsteuergesetz) wird keine Umsatzsteuer berechnet.';; - (nett) printf 'zuzüglich %i%% MWSt.' "$vatrate";; - (gross) printf '(einschließlich %i\% MWSt.)' "$vatrate";; + (nett) printf 'zuzüglich %i%% MwSt.' "$vatrate";; + (gross) printf '(einschließlich %i%% MwSt.)' "$vatrate";; esac) - - + + @@ -166,22 +178,28 @@ odt_content(){ $(sed 1d "invoices/$id" |while read -r time work hours; do - time="$(UNSTRING "${time#time=}")" - work="$(UNSTRING "${work#work=}")" + time="$(UNSTRING "${time#time=}" |sed -r 's;( \;)? \;|(�?[Dd]\;)?�?[aA]\;|\r?$;;g')" + work="$(UNSTRING "${work#work=}" |sed -r 's;( \;)? \;|(�?[Dd]\;)?�?[aA]\;|\r?$;;g')" hours="$(UNSTRING "${hours#hours=}")" cat <<-TROW - ${time} + ${time} - ${item} + ${work} - ${hours} + $( awk "BEGIN { + if ( int(${hours}) == ${hours} ) + printf \"%i\", ${hours}; + else + printf \"%i:%i\", int(${hours}), int((${hours} - int(${hours})) * 60); + }" + ) - $((${hourly} * ${hours})) € + $(awk "BEGIN { printf \"%.2f\", ${hourly} * ${hours}; }" ) € TROW @@ -190,15 +208,53 @@ odt_content(){ - - - - - Summe: - - - $(invoice_total "$id") € - + $(case $taxtype in + (nett) cat <<-TCELL + + + Zwischensumme: + zzgl. ${vatrate}% MwSt.: + + zu zahlender Betrag: + + + + ${nett} € + ${tax} € + + ${gross} € + + TCELL + ;; + (gross) cat <<-TCELL + + zu zahlender Betrag: + + + enthaltene MwSt (${vatrate}%): + enthaltener Netto-Betrag: + + + ${gross} € + + + ${tax} € + ${nett} € + + TCELL + ;; + (*) cat <<-TCELL + + zu zahlender Betrag: + + + ${gross} € + + TCELL + ;; + esac) @@ -209,13 +265,16 @@ odt_content(){ genodt(){ local id="$1" exdir="export/$1" - [ -d "$exdir" ] && rm "$exdir/META-INF" + [ -d "$exdir" ] && { + rm "$exdir/content.xml" "$exdir/styles.xml" "$exdir/META-INF/manifest.xml" + rmdir "$exdir/META-INF/" "$exdir/" + } - read -r sender client date number vat vatrate <<-EOF + read -r sender client date number vat vatrate hourly x<<-EOF $(sed q "invoices/$id") EOF - read -r sender iban bic <"senders/${sender#sender=}" - read -r client hourly <"clients/${client#client=}" + read -r sender iban bic x<"senders/${sender#sender=}" + read -r client chourly x<"clients/${client#client=}" mkdir -p "$exdir/META-INF" odt_manifest >"$exdir/META-INF/manifest.xml" @@ -231,9 +290,16 @@ genodt(){ [ -f "export/${id}.odt" ] && rm "export/${id}.odt" ( cd "$exdir" - zip "../${id}.odt" content.xml styles.xml META-INF/manifest.xml + zip -q "../${id}.odt" content.xml styles.xml META-INF/manifest.xml ) rm "$exdir/content.xml" "$exdir/styles.xml" "$exdir/META-INF/manifest.xml" rmdir "$exdir/META-INF/" "$exdir/" - # lowriter --headless --convert-to pdf "${odtdoc}" } + +genpdf(){ + local id="$1" + genodt "$id" + lowriter --convert-to pdf --outdir "export/" "export/${id}.odt" >/dev/null + rm "export/${id}.odt" +} +