4 printf '%+03i\n' "$1" \
5 | sed -E 's;[0-9]{2}$;d&;; :0 s;([0-9])([0-9]{3}[dm]);\1m\2;; t0; y;dm;,.;'
8 if [ "$REQUEST_METHOD" = POST ]; then
10 cfile="$(grep -lxF "UID;:${uid}" "${_DATA}/vcard/"*.vcf || grep -lxF "UID:${uid}" "${_DATA}/vcard/"*.vcf)"
11 REDIRECT "${_BASE}/ledgers/account.sh?card=${cfile##*/}"
14 . "${_EXEC}/cgilite/storage.sh"
15 . "${_EXEC}/pdiread.sh"
16 . "${_EXEC}/cards/l10n.sh"
17 . "${_EXEC}/cards/widgets.sh"
19 cardfile="${_DATA}/vcard/$(GET card |PATH)"
20 if [ ! -f "$cardfile" ]; then
21 SET_COOKIE 0 message="Invalid account: $cardfile"
22 REDIRECT "${_BASE}/ledgers/"
25 cledger="${cardfile##*/}"
26 cledger="${_DATA}/ledgers/vcf.${cledger%.vcf}.account"
28 { card="$(pdi_load "$cardfile")"
31 [div .card #${cardfile##*/}
32 [div .section .basic . $(
33 card_item "$card" FN GENDER NICKNAME BDAY X-ZACK-JOINDATE X-ZACK-LEAVEDATE SOUND PHOTO LOGO
35 [div .section .phone . $(card_item "$card" TEL)]
36 [div .section .message . $(card_item "$card" EMAIL IMPP URL)]
37 [div .section .address . $(card_item "$card" ADR X-IBAN)]
38 [div .section .note . $(card_item "$card" NOTE)]
39 [div .section .attendance [h3 $(l10n course_attendance) ] [ul
40 $(grep -F " ${cardfile##*/}" "$_DATA/mappings/attendance" |while read each discard; do
41 printf '[li [a .item .attendance href="%s/courses#%s" . %s]]' \
43 "$(pdi_value "$(pdi_load "$_DATA/ical/$each")" SUMMARY || l10n "(unnamed course)" |unescape |HTML)"
45 $(card_item "$card" CATEGORIES)
49 printf '[table .transactions [thead
50 [tr [th .date . %s][th .orig . %s][th .reference . %s][th .amount . %s][th .balance . %s]]' \
51 "$(l10n Date)" "$(l10n Originator)" "$(l10n "Reference Text")" "$(l10n Amount)" "$(l10n Balance)"
53 cnt="$(pdi_count "$card" X-IBAN)"
54 while [ "$cnt" -gt 0 ]; do
55 pdi_value "$card" X-IBAN "$cnt" |RXLITERAL
59 while read -r iban; do
60 grep -hE "^[^\t]+ [^\t]+ ${iban} " "${_DATA}/ledgers/"*.tbl
62 if [ -f "$cledger" ]; then
68 while read -r date dtstamp iban accname subject amount; do
69 total=$((total + amount))
70 printf '[tr [td .date . %s][td .orig [span . %s][span . %s]][td .reference . %s][td .amount . %s][td .balance . %s]]' \
71 "$date" "$(HTML "$iban")" \
72 "$(UNSTRING "$accname" |HTML)" "$(UNSTRING "$subject" |HTML)" \
73 "$(credit "$amount")" "$(credit "$total")"
76 printf '[tr [th colspan=5 . %s]]' "$(l10n 'Manual Record')"
77 printf '[tr [td .date [input type=date placeholder="%s" name=tdate]]
78 [td .orig [input id=trec_once type=radio name="trec" value="once" selected]
79 [label for=trec_once . %s]<br/>
80 [input id=trec_month type=radio name="trec" value="month"]
81 [label for=trec_month . %s]
82 [input type=date name="trec_until" placeholder="%s"]]
83 [td .reference . [textarea placeholder="%s" name=treference]]
84 [td .amount colspan=2 [input type=number placeholder="%s" name=tamount value=0.00 step=.01]]' \
85 "$(l10n Date)" "$(l10n once)" "$(l10n "monthly until")" "$(l10n until)" "$(l10n "Reference Text")" "$(l10n Amount)"