#!/bin/sh
+. "$_EXEC/cgilite/storage.sh"
+. "$_EXEC/pdiread.sh"
+
+credit() {
+ printf '%03i\n' "$1" \
+ | sed -E 's;[0-9]{2}$;d&;; :0 s;([0-9])([0-9]{3}[dm]);\1m\2;; t0; y;dm;,.;'
+}
+
{ printf '
[form .upload action="%s/ledgers/csv_upload.sh" method="POST" enctype="multipart/form-data"
[label for=ledger_upload . %s:]
[button type="submit" %s]
]' \
"${_BASE}" "$(l10n "Postbank CSV")" "$SESSION_ID" "$(l10n Upload)"
+ printf '
+ [form .ledgers action="%s/ledgers/delete.sh" method=POST
+ [input type=hidden name=session_id value="%s"]
+ [h3 . %s]
+ ' "${_BASE}" "$SESSION_ID" "$(l10n Ledgers)"
+ for ledger in "$_DATA"/ledgers/????-??-??\ -\ ????-??-??\ -\ ????.tbl; do
+ ledger="${ledger##*/}"
+ [ "$ledger" = "????-??-?? - ????-??-?? - ????.tbl" ] && continue
+ printf '[p .ledger . %s [button type=submit name=delete value="%s" . %s]]' \
+ "$(HTML "${ledger% - ????.tbl}")" "$(HTML "$ledger")" "$(l10n delete)"
+ done
+ printf ' ]'
+ printf '
+ [form .ibanassign action="%s/ledgers/iban_assign.sh" method=POST
+ [input type=hidden name=session_id value="%s"]
+ [h3 . %s]
+ ' "${_BASE}" "$SESSION_ID" "$(l10n "IBAN Assignments")"
+ printf '[datalist id=lattendants .'
+ pdi_load "${_DATA}"/vcard/*.vcf |sed -n '/^FN\;:/!b; s;^FN\;:;;; p;' \
+ | while read name; do
+ printf '[option value="%s"]' "$(HTML "$name")"
+ done
+ printf ']'
+ { pdi_load "${_DATA}"/vcard/*.vcf
+ cat "${_DATA}"/ledgers/????-??-??\ -\ ????-??-??\ -\ ????.tbl
+ } | "${_EXEC}"/ledgers/iban_assign.awk \
+ | while read -r state iban data; do
+ printf '[fieldset .iban .%s [legend . %s ]' \
+ "$state" "$iban"
+ if [ $state = sure ]; then
+ :
+ elif [ $state = guess ]; then
+ record="$(UNSTRING "${data%% *}")"
+ cards="${data#* }"
+ principal="${record#* * * }" principal="${principal%% *}"
+ subject="${record#* * * * }" subject="${subject%% *}"
+ amount="${record#* * * * * }" amount="${amount%% *}"
+ printf '[p .principal . %s][p .amount %s][p .subject . %s]' \
+ "$(UNSTRING "$principal" |HTML)" "$(credit "$amount")" "$(UNSTRING "$subject" |HTML)"
+ printf '[h4 . %s]' "$(l10n Guesses)"
+ for card in $cards; do
+ uid="${card%%/*}" name="$(UNSTRING "${card#*/}")"
+ printf '[input .card key="cardfn" value="%s" placeholder="%s" list=lattendants]' "$(HTML "${name}")" "$(l10n attendent)"
+ done
+ elif [ $state = unknown ]; then
+ principal="${data#* * * }" principal="${principal%% *}"
+ subject="${data#* * * * }" subject="${subject%% *}"
+ amount="${data#* * * * * }" amount="${amount%% *}"
+ printf '[p .principal . %s][p .amount %s][p .subject . %s]' \
+ "$(UNSTRING "$principal" |HTML)" "$(credit "$amount")" "$(UNSTRING "$subject" |HTML)"
+ fi
+ printf ']'
+ done
+ printf ' ]'
} | yield_page ledgers