]> git.plutz.net Git - confetti/blob - ledgers/iban_assign.sh
8d9ae99d0ec52585965f64baa7b679b2d0af2c42
[confetti] / ledgers / iban_assign.sh
1 #!/bin/sh
2
3 . "$_EXEC/pdiread.sh"
4 . "$_EXEC/session_lock.sh"
5
6 UIDLIST="$(
7   pdi_load "$_DATA/vcard/"*.vcf \
8   | sed -Ez '
9     s/\nBEGIN;:VCARD\n([^\n]+\n)*FN;:([^\n]+)\n([^\n]+\n)*UID;:([^\n]+)\n([^\n]+\n)*END;:VCARD\n/UID:\4 FN:\2/g
10   '
11   echo
12 )"
13
14 # printf '%s\r\n' "Content-Type: text/plain" ""
15
16 for key in $(POST_KEYS); do case $key in
17   use_*)
18     use_iban="${use_iban} ${key#use_} "
19     ;;
20 esac; done
21
22 [ "$use_iban" ] && for key in $(POST_KEYS); do case $key in
23   check_*_*)
24     iban="${key#check_}" iban="${iban%_*}"
25     [ ! "${use_iban##* "${iban}" *}" ] && check="${check} ${key#check_} "
26     ;;
27 esac; done
28
29 { printf '[ul .results'
30   for use in $check; do
31     iban="${use%_*}"
32     fn="$(POST "fn_${use}")"
33     uid="${UIDLIST%% FN:"$fn"${BR}*}" uid="${uid##*${BR}UID:}"
34   
35     # cfile="${_DATA}/vcard/${uid}.vcf"
36     cfile="$(grep -lxF "UID;:${uid}" "${_DATA}/vcard/"*.vcf || grep -lxF "UID:${uid}" "${_DATA}/vcard/"*.vcf)"
37     if SLOCK "$cfile" >/dev/null; then
38       card="$(pdi_load "$cfile")"
39       cnum="$(pdi_count "$card" X-IBAN)"
40       pdi_update_value "$card" X-IBAN "$((cnum + 1))" "$iban" >"$cfile"
41       printf '[li .success . [span .name . %s] [span .uid . (UID: %s)] assigned IBAN [span .iban . %s]]' \
42              "$(HTML "$fn")" "$(HTML "$uid")" "$(HTML "$iban")"
43       RELEASE_SLOCK "$cfile"
44     else
45       printf '[li .error . [span .name . %s] [span .uid . (UID: %s)] is being edited elsewhere]'
46              "$(HTML "$fn")" "$(HTML "$uid")"
47     fi
48   done
49   printf ']'
50   printf '[a .button href=/ledgers/ . %s]' "$(l10n Back)"
51 } | yield_page ledgers_assign