#!/bin/sh
-printf '%s\r\n' "Content-Type: text/plain" ""
+. "$_EXEC/pdiread.sh"
+. "$_EXEC/session_lock.sh"
+
+UIDLIST="$(
+ pdi_load "$_DATA/vcard/"*.vcf \
+ | sed -Ez '
+ s/\nBEGIN;:VCARD\n([^\n]+\n)*FN;:([^\n]+)\n([^\n]+\n)*UID;:([^\n]+)\n([^\n]+\n)*END;:VCARD\n/UID:\4 FN:\2/g
+ '
+ echo
+)"
+
+# printf '%s\r\n' "Content-Type: text/plain" ""
for key in $(POST_KEYS); do case $key in
use_*)
use_iban="${use_iban} ${key#use_} "
;;
esac; done
-echo Use IBANS:
-echo "$use_iban"
-echo
[ "$use_iban" ] && for key in $(POST_KEYS); do case $key in
check_*_*)
[ ! "${use_iban##* "${iban}" *}" ] && check="${check} ${key#check_} "
;;
esac; done
-echo Checked:
-echo "$check"
-echo
-for use in $check; do
- iban="${use%_*}"
- fn="$(POST "fn_${use}")"
- echo Assign $iban to $fn
-done
+{ printf '[ul .results'
+ for use in $check; do
+ iban="${use%_*}"
+ fn="$(POST "fn_${use}")"
+ uid="${UIDLIST%% FN:"$fn"${BR}*}" uid="${uid##*${BR}UID:}"
+
+ # cfile="${_DATA}/vcard/${uid}.vcf"
+ cfile="$(grep -lxF "UID;:${uid}" "${_DATA}/vcard/"*.vcf || grep -lxF "UID:${uid}" "${_DATA}/vcard/"*.vcf)"
+ if SLOCK "$cfile" >/dev/null; then
+ card="$(pdi_load "$cfile")"
+ cnum="$(pdi_count "$card" X-IBAN)"
+ pdi_update_value "$card" X-IBAN "$((cnum + 1))" "$iban" >"$cfile"
+ printf '[li .success . [span .name . %s] [span .uid . (UID: %s)] assigned IBAN [span .iban . %s]]' \
+ "$(HTML "$fn")" "$(HTML "$uid")" "$(HTML "$iban")"
+ RELEASE_SLOCK "$cfile"
+ else
+ printf '[li .error . [span .name . %s] [span .uid . (UID: %s)] is being edited elsewhere]'
+ "$(HTML "$fn")" "$(HTML "$uid")"
+ fi
+ done
+ printf ']'
+ printf '[a .button href=/ledgers/ . %s]' "$(l10n Back)"
+} | yield_page ledgers_assign