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"
+}
+