X-Git-Url: http://git.plutz.net/?a=blobdiff_plain;f=odtgen.sh;fp=odtgen.sh;h=dbe2945ff0bf92907bd90cfe748ef5c04178a6f0;hb=b037f9960718351b0470ab7ea67271b291bebb0e;hp=0000000000000000000000000000000000000000;hpb=363a64cdc01d34e8b1e9ba3bf4b1a68ae2dfeb1c;p=invoices
diff --git a/odtgen.sh b/odtgen.sh
new file mode 100755
index 0000000..dbe2945
--- /dev/null
+++ b/odtgen.sh
@@ -0,0 +1,239 @@
+#!/bin/zsh
+
+odt_manifest(){
+ cat <<-EOF
+
+
+
+
+
+
+ EOF
+}
+
+odt_stylesheet(){
+ local iban="$2" bic="$3"
+
+ cat <<-EOF
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Bankverbindung - IBAN:
+ ${iban} |
+ BIC:
+ ${bic}
+
+
+
+
+
+ EOF
+}
+
+odt_content(){
+ local id="$1" sender="$2" client="$3" date="$4" number="$5" vat="$6" vatrate="$7" hourly="$8"
+ cat <<-EOF
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ $(date -d @${date} +%d.%m.%Y)
+
+
+
+ $(HTML "$sender" |sed 'a')
+
+
+
+ $(HTML "$client" |sed 'a')
+
+ Rechnung ${issuance}
+
+
+
+ Vergütung: ${hourly} ⬠/ Std.$(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";;
+ esac)
+
+
+
+
+
+
+
+
+
+ Datum
+
+
+ Art der Leistung
+
+
+ Stundenzahl
+
+
+ Betrag
+
+
+
+ $(sed 1d "invoices/$id" |while read -r time work hours; do
+ time="$(UNSTRING "${time#time=}")"
+ work="$(UNSTRING "${work#work=}")"
+ hours="$(UNSTRING "${hours#hours=}")"
+ cat <<-TROW
+
+
+ ${time}
+
+
+ ${item}
+
+
+ ${hours}
+
+
+ $((${hourly} * ${hours})) â¬
+
+
+ TROW
+ done)
+
+
+
+
+
+
+
+
+ Summe:
+
+
+ $(invoice_total "$id") â¬
+
+
+
+
+
+
+ EOF
+}
+
+genodt(){
+ local id="$1" exdir="export/$1"
+ [ -d "$exdir" ] && rm "$exdir/META-INF"
+
+ read -r sender client date number vat vatrate <<-EOF
+ $(sed q "invoices/$id")
+ EOF
+ read -r sender iban bic <"senders/${sender#sender=}"
+ read -r client hourly <"clients/${client#client=}"
+
+ mkdir -p "$exdir/META-INF"
+ odt_manifest >"$exdir/META-INF/manifest.xml"
+ odt_stylesheet "$(UNSTRING "${iban#iban=}")" "$(UNSTRING "${bic#bic=}")" >"$exdir/styles.xml"
+ odt_content "$id" \
+ "$(UNSTRING "${sender#address=}")" \
+ "$(UNSTRING "${client#address=}")" \
+ "${date#date=}" \
+ "$(UNSTRING "${number#number=}")" \
+ "${vat#vat=}" "${vatrate#vatrate=}" \
+ "${hourly#hourly=}" \
+ >"$exdir/content.xml"
+
+ [ -f "export/${id}.odt" ] && rm "export/${id}.odt"
+ ( cd "$exdir"
+ zip "../${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}"
+}