bic="$(DB3 get sender 9)"
duedate="$(DB3 get duedate)"
- DB3 check invnum || return 1
- [ -n "$date" ] || return 1
- DB3 check sender 2 || return 1
- DB3 check rcpt 2 || return 1
- [ -n "$tnfc" -o -n "$tnva" ] || return 1
+ DB3 check invnum || { debug "Missing invnum"; return 1; }
+ [ -n "$date" ] || { debug "Missing date"; return 1; }
+ DB3 check sender 2 || { debug "Missing sender"; return 1; }
+ DB3 check rcpt 2 || { debug "Missing rcpt"; return 1; }
+ [ -n "$tnfc" -o -n "$tnva" ] || { debug "Missing taxnum"; return 1; }
- # date_due="$(date -d "$date" +%s)"
- # date_due="$((date_due + 28 * 86400))"
- # date_due="$(date -d @${date_due} +%Y%m%d)"
+ date_due="$(date -d "$date" +%s)"
+ date_due="$((date_due + 42 * 86400))"
date="$(date -d "$date" +%Y%m%d)"
cat <<-ZUGFERD
pcs="$(DB3 get tb_pcs $seq |grep -m1 -xE '[0-9]+(\.00?|\.25|\.50?|\.75)?' || printf 1)"
ppp="$(DB3 get tb_ppp $seq |grep -m1 -xEe '-?(\.[0-9]+|[0-9]+\.?[0-9]*)' || printf 0)"
desc="$(DB3 get tb_desc $seq)"
- uc="$(DB3 get tb_uc $seq |grep -m1 -xE 'HUR|DAY|KMT|NAR|LS' || printf LS)"
- vat="$(DB3 get tb_vat $seq |grep -m1 -xE 'S|Z|E|AE|K|G|O|L|M' || printf O)"
+ uc="$(DB3 get tb_uc $seq |grep -m1 -xE 'HUR|DAY|KMT|NAR|LS' || printf %s "${uc:-LS}")"
+ vat="$(DB3 get tb_vat $seq |grep -m1 -xE 'S|Z|E|AE|K|G|O|L|M' || printf %s "${vat:-O}")"
if [ "$pcs" = 1 -a "$ppp" = 0 -a -z "$desc" ]; then
skip=$((skip + 1))
<ram:Name>$(DB3 get sender 1 |HTML)</ram:Name>
<ram:PostalTradeAddress>
<ram:PostcodeCode>$(DB3 get sender 3 |HTML)</ram:PostcodeCode>
- $(DB3 get rcpt 2 \
+ $(DB3 get sender 2 \
| sed -E '/^\r?$/d;' \
| for n in One Two Three; do
read -r l || break
<ram:CountryID>$(DB3 get sender 5 |HTML)</ram:CountryID>
</ram:PostalTradeAddress>
- $([ -n "$tnfc" ] && cat cat <<-TNFC
+ $([ -n "$tnfc" ] && cat <<-TNFC
<ram:SpecifiedTaxRegistration>
<ram:ID schemeID="FC">$(HTML "$tnfc")</ram:ID>
</ram:SpecifiedTaxRegistration>
</ram:DueDateDateTime>
</ram:SpecifiedTradePaymentTerms>
DUEDATE
- else
+ elif [ -n "$duedate" ]; then
cat <<-DUEDATE
<ram:SpecifiedTradePaymentTerms>
<ram:Description>${duedate}</ram:Description>
</ram:SpecifiedTradePaymentTerms>
DUEDATE
+ else
+ cat <<-DUEDATE
+ <ram:SpecifiedTradePaymentTerms>
+ <ram:DueDateDateTime>
+ <udt:DateTimeString format="102">$(date -d @"$date_due" +%Y%m%d)</udt:DateTimeString>
+ </ram:DueDateDateTime>
+ </ram:SpecifiedTradePaymentTerms>
+ DUEDATE
fi)
<ram:SpecifiedTradeSettlementHeaderMonetarySummation>