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