]> git.llucax.com Git - z.facultad/75.08/llamadas.git/blobdiff - inst/aficonf
Se agrega código fuente, instalación y util.sh.
[z.facultad/75.08/llamadas.git] / inst / aficonf
old mode 100644 (file)
new mode 100755 (executable)
index e69de29..787dcaa
@@ -0,0 +1,214 @@
+#!/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"
+
+LOGDIR=$AFIC_LOGDIR
+LOGNAME=$AFIC_LOGFILE
+LOGFILE=$LOGDIR/$LOGNAME
+
+#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"
+       put_log "$LOGFILE" "aficonf" "Se ha cambiado el estado de umbral $ID a $ESTADO" "$AFIC_LOGSIZE"
+}
+
+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..."
+               put_log "$LOGFILE" "aficonf" "Se trató de insertar un umbral repetido ($UMBRAL)" "$AFIC_LOGSIZE"
+               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 ""
+       put_log "$LOGFILE" "aficonf" "Se inserto un nuevo umbral ($UMBRAL)" "$AFIC_LOGSIZE"
+}
+
+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 [ "$DATOS" == "" ] ; then
+               echo ""
+               echo "No se han encontrado Umbrales activos para la linea $LINEA."
+               echo "Abortando ..."
+               echo ""
+               put_log "$LOGFILE" "aficonf" "No se han encontrado umbrales para la línea $LINEA" "$AFIC_LOGSIZE"
+               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"
+       put_log "$LOGFILE" "aficonf" "No se ha eliminado elumbral de ID $OPT" "$AFIC_LOGSIZE"
+       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 ""
+       put_log "$LOGFILE" "aficonf" "Se ha intentado ejecutar aficonf cuando este estaba corriendo" "$AFIC_LOGSIZE"
+       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"
+