X-Git-Url: http://git.plutz.net/?p=confetti;a=blobdiff_plain;f=ledgers%2Findex.cgi;h=87af8b155435e09425c6c25e0004fce8a14593ed;hp=7cd3464dfffb9cccf63028a3093a3a29974ab174;hb=HEAD;hpb=2b221353de954b91a5a141af21b1816909fa7bc5 diff --git a/ledgers/index.cgi b/ledgers/index.cgi index 7cd3464..f5ac6b5 100755 --- a/ledgers/index.cgi +++ b/ledgers/index.cgi @@ -3,11 +3,31 @@ . "$_EXEC/cgilite/storage.sh" . "$_EXEC/pdiread.sh" +if [ "$(POST show_account)" ]; then + uid="$(POST show_account)" + cfile="$(grep -lxF "UID;:${uid}" "${_DATA}/vcard/"*.vcf || grep -lxF "UID:${uid}" "${_DATA}/vcard/"*.vcf)" + REDIRECT "${_BASE}/ledgers/account.sh?card=${cfile##*/}" + exit 0; +fi + 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;,.;' } +IBAN_ASSIGN="$( + { pdi_load "${_DATA}"/vcard/*.vcf + printf 'BEGIN:LEDGERS\n' + cat "${_DATA}"/ledgers/????-??-??\ -\ ????-??-??\ -\ ????.tbl + } | "${_EXEC}"/ledgers/iban_assign.awk + printf '\n' +)" + +if [ "${PATH_INFO%/iban_assign/}" != "${PATH_INFO}" ]; then + . "${_EXEC}/ledgers/iban_assign.sh" + exit 0 +fi + { printf ' [form .upload action="%s/ledgers/csv_upload.sh" method="POST" enctype="multipart/form-data" [label for=ledger_upload . %s:] @@ -28,40 +48,29 @@ credit() { "$(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")" - { 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"]' "$(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 ' ]' + unassigned="$(printf %s\\n "$IBAN_ASSIGN" |grep -E '^guess|^unknown' |wc -l)" + cat <<-EOF + [div + [h1 . $(l10n IBAN Assignments)] + $(printf "$(l10n "%i IBANs are unassigned")" "$unassigned") + [a href="${_BASE}/ledgers/iban_assign/" . $(l10n Assign IBANs)] + ] + [form action="${_BASE}/ledgers/account.sh" method=POST + [select name=uid + $(printf %s\\n "$IBAN_ASSIGN" \ + | sed -E ' + /^sure /!d; + s;^sure [^\t]+;;; + s;([^\t]+)/([^\t]+);\1 \2\n;g; + s;\n$;; + ' \ + | while read uid fn; do + uid="$(HTML "$uid")" + fn="$(UNSTRING "$fn" |HTML)" + printf '[option value="%s" . %s]' "$uid" "$fn" + done) + ] + [button type="submit" . $(l10n Account)] + ] + EOF } | yield_page ledgers