X-Git-Url: https://git.plutz.net/?a=blobdiff_plain;f=odtgen.sh;h=abed2db2028e43f153aee28ec1d4f2701e8000f0;hb=9a43c9bdca4ce77d32af2ca776cd5eaa836a9e89;hp=f9b7d62cf920e7c0371eea17609203b5f59379dc;hpb=864a9aad6a2d6ede85c0c3ad6312573f9a0804eb;p=invoices
diff --git a/odtgen.sh b/odtgen.sh
index f9b7d62..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,23 +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
-
+
-
+
-
+
+
+
+
-
-
+
+
@@ -88,6 +95,10 @@ odt_content(){
+
+
+
+
@@ -123,16 +134,16 @@ odt_content(){
$(HTML "$sender" |sed -r 's;(
\;)?
\;;;g')$(HTML "$sender" |sed -r 's;(
\;)?
\;|(?[Dd]\;)??[aA]\;|\r?$;;g')
$(HTML "$client" |sed -r 's;(
\;)?
\;;;g')$(HTML "$client" |sed -r 's;(
\;)?
\;|(?[Dd]\;)??[aA]\;|\r?$;;g')
- Rechnung ${issuance}
+ Rechnung ${number}
@@ -140,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)
-
-
+
+
@@ -167,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
@@ -191,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)
@@ -215,11 +270,11 @@ genodt(){
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"
@@ -240,3 +295,11 @@ genodt(){
rm "$exdir/content.xml" "$exdir/styles.xml" "$exdir/META-INF/manifest.xml"
rmdir "$exdir/META-INF/" "$exdir/"
}
+
+genpdf(){
+ local id="$1"
+ genodt "$id"
+ lowriter --convert-to pdf --outdir "export/" "export/${id}.odt" >/dev/null
+ rm "export/${id}.odt"
+}
+