+#!/bin/sh
+#
+# Configurador
+
+# Atajo CTRL+C
+#trap "echo -n ''" INT
+
+# Cargo config
+BASE_DIR="$HOME/.antifraude"
+# Cargo config
+. "$BASE_DIR/conf/aficonf.conf"
+
+# Cargo utilidades
+. "$BASE_DIR/util.sh"
+
+#Valida que exista el pais
+# Parámetros :
+# $1 = Descripcion a buscar
+# $2 = Variable donde guardar el código del Pais en caso de existir
+existe_pais () {
+ EXISTE=`cat "$BASE_DIR/oridesti.txt" | egrep "^[A-Z]*;$1" | cut -d ';' -f 1`;
+ if [ "$EXISTE" != "" ] ; then
+ #Exite!, debo gaurdar el código
+ eval "$2=$EXISTE"
+ return 0
+ fi
+ return 1
+}
+
+poner_estado_umbral () {
+ ID=$1
+ ESTADO=$2
+
+ FECHA=`date +"%Y%m%d"`
+ HORA=`date +"%H%M%S"`
+
+ if [ "$ESTADO" != "A" ] && [ "$ESTADO" != "I" ] ; then
+ return 1
+ fi
+ SALIDA=`sed "s/^$ID\(;[^;]*;[^;]*;[^;]*;\)[^;]*\(;[^;]*;[^;]*;[^;]*\)$/$ID\1I;$USER;$FECHA;$HORA/" "$BASE_DIR/umbrales.param"`
+ echo "$SALIDA" > "$BASE_DIR/umbrales.param"
+}
+
+menu () {
+ echo "AFICONF"
+ echo "======="
+ echo
+ echo " 1) Alta"
+ echo " 2) Buscar"
+ echo " 3) Salir"
+
+ preguntar "Su opción" "123" $1
+}
+
+existe_umbral () {
+ EXISTE=`cat "$BASE_DIR/umbrales.param" | egrep "$1"`;
+ if [ "$EXISTE" == "" ] ; then
+ #No existe
+ return 1
+ fi
+ #Ya existe un umbral!
+ return 0
+}
+
+buscar_id_umbral () {
+ ID=`cat "$BASE_DIR/umbrales.id"`;
+ eval "$1=$ID"
+ let ID=$ID+1
+ echo "$ID" > "$BASE_DIR/umbrales.id"
+}
+
+case_altas () {
+ DONE=0
+ while [ $DONE == 0 ] ; do
+ leer "Número de línea" "" LINEA
+ #TODO Valido
+ if ! validar_solo_numeros "$LINEA" ; then
+ echo "EL NUMERO TE LINEA SOLO DEBE TENER DIGITOS"
+ else
+ DONE=1
+ fi
+ if [ "$LINEA" == "" ] ; then
+ DONE=0
+ fi
+ done
+
+ preguntar "Tipo de llamada" "ES" TIPO
+
+ DONE=0
+ CODIGO=''
+ while [ $DONE == 0 ] ; do
+ leer "Pais (descripción)" "" PAIS
+ if ! existe_pais "$PAIS" CODIGO ; then
+ echo "No existe el país de descrición '$PAIS'"
+ else
+ DONE=1
+ fi
+ if [ "$PAIS" == "" ] ; then
+ DONE=0
+ fi
+ done
+
+ echo "El código de '$PAIS' es '$CODIGO'"
+ PAIS=$CODIGO
+
+ # Verifico que el umbral no exista
+ FECHA=`date +"%Y%m%d"`
+ HORA=`date +"%H%M%S"`
+ UMBRAL="$LINEA;$PAIS;$TIPO;A;*;*;*"
+
+ if existe_umbral "$UMBRAL" ; then
+ echo "Ya existe un umbral con los datos ingresados."
+ echo "Abortando..."
+ return
+ fi
+
+ # Genero el umbral
+ buscar_id_umbral ID
+ UMBRAL="$ID;$LINEA;$PAIS;$TIPO;A;$USER;$FECHA;$HORA"
+
+ # Lo guardo
+ echo "$UMBRAL" >> "$BASE_DIR/umbrales.param"
+
+ echo ""
+ echo "El Umbral fue grabado con éxito"
+ echo ""
+}
+
+case_buscar () {
+ DONE=0
+ while [ $DONE == 0 ] ; do
+ leer "Número de línea" "" LINEA
+ #TODO Valido
+ if ! validar_solo_numeros "$LINEA" ; then
+ echo "EL NUMERO TE LINEA SOLO DEBE TENER DIGITOS"
+ else
+ DONE=1
+ fi
+ if [ "$LINEA" == "" ] ; then
+ DONE=0
+ fi
+ done
+
+ DATOS=`cat "$BASE_DIR/umbrales.param" | grep "[0-9]*;$LINEA;[A-Z]*;[E,S];A"`
+
+ if [ "$OPT" == "" ] ; then
+ echo ""
+ echo "No se han encontrado uUmbrales activos para la linea $LINEA."
+ echo "Abortando ..."
+ echo ""
+ return 0
+ fi
+
+ printf "%3s %2s %1s %1s %10s%8s %6s\n" "ID" "Ciudad" "Tipo" "Estado" "Usuario" "Fecha" "Hora"
+ OPCIONES="-1"
+ for i in $DATOS ; do
+ ID=`echo "$i" | cut -d ';' -f 1`
+ CIUDAD=`echo "$i" | cut -d ';' -f 3`
+ TIPO=`echo "$i" | cut -d ';' -f 4`
+ ESTADO=`echo "$i" | cut -d ';' -f 5`
+ USUARIO=`echo "$i" | cut -d ';' -f 6`
+ FECHA=`echo "$i" | cut -d ';' -f 7`
+ HORA=`echo "$i" | cut -d ';' -f 8`
+ printf "%3s %2s %1s %1s %10s %8s %6s\n" "$ID" "$CIUDAD" "$TIPO" "$ESTADO" "$USUARIO" "$FECHA" "$HORA"
+ OPCIONES="$OPCIONES $ID"
+ done
+
+ preguntar "Cual desea borrar (-1 para salir)" "$OPCIONES" OPT
+
+ if [ "$OPT" = "-1" ] ; then
+ return 0
+ fi
+
+ echo "Borrando el registro $OPT ..."
+ poner_estado_umbral "$OPT" "I"
+ echo ""
+ echo ""
+ echo "El Umbral fue eliminado con éxito"
+ echo ""
+}
+
+# No permito correr 2 instancias de AFICONF
+if is_lock "aficonf" ; then
+ echo ""
+ echo "Aficonf está corriendo actualmente."
+ echo ""
+ exit 1
+fi
+
+lock "aficonf"
+
+# Loop Principal
+OPT="0"
+while [ "$OPT" != "3" ] ; do
+ menu OPT
+
+ case $OPT in
+ "1") case_altas ;;
+ "2") case_buscar ;;
+ esac
+done
+
+unlock "aficonf"
+