]> git.llucax.com Git - z.facultad/75.08/llamadas.git/blob - inst/aficonf
Se distribuye e instala el umbraled.id asociado al umbrales.param del paquete de...
[z.facultad/75.08/llamadas.git] / inst / aficonf
1 #!/bin/sh
2 #
3 # Configurador
4
5 # Atajo CTRL+C 
6 #trap "echo -n ''" INT
7
8 # Cargo config
9 BASE_DIR="$HOME/.antifraude"
10 # Cargo config
11 . "$BASE_DIR/conf/aficonf.conf"
12
13 # Cargo utilidades
14 . "$BASE_DIR/util.sh"
15
16 #Valida que exista el pais
17 # Parámetros :
18 #   $1 = Descripcion a buscar
19 #   $2 = Variable donde guardar el código del Pais en caso de existir
20 existe_pais () {
21         EXISTE=`cat "$BASE_DIR/oridesti.txt" | egrep "^[A-Z]*;$1" | cut -d ';' -f 1`;
22         if [ "$EXISTE" != "" ] ; then
23                 #Exite!, debo gaurdar el código
24                 eval "$2=$EXISTE"
25                 return 0
26         fi
27         return 1
28 }
29
30 poner_estado_umbral () {
31         ID=$1
32         ESTADO=$2
33
34         FECHA=`date +"%Y%m%d"`
35         HORA=`date +"%H%M%S"`
36         
37         if [ "$ESTADO" != "A" ] && [ "$ESTADO" != "I" ] ; then
38                 return 1
39         fi
40         SALIDA=`sed "s/^$ID\(;[^;]*;[^;]*;[^;]*;\)[^;]*\(;[^;]*;[^;]*;[^;]*\)$/$ID\1I;$USER;$FECHA;$HORA/" "$BASE_DIR/umbrales.param"`
41         echo "$SALIDA" > "$BASE_DIR/umbrales.param"
42 }
43
44 menu () {
45         echo "AFICONF"
46         echo "======="
47         echo
48         echo "  1) Alta"
49         echo "  2) Buscar"
50         echo "  3) Salir"
51
52         preguntar "Su opción" "123" $1
53 }
54
55 existe_umbral () {
56         EXISTE=`cat "$BASE_DIR/umbrales.param" | egrep "$1"`;
57         if [ "$EXISTE" == "" ] ; then
58                 #No existe
59                 return 1
60         fi
61         #Ya existe un umbral!
62         return 0
63 }
64         
65 buscar_id_umbral () {
66         ID=`cat "$BASE_DIR/umbrales.id"`;
67         eval "$1=$ID"
68         let ID=$ID+1
69         echo "$ID" > "$BASE_DIR/umbrales.id"
70 }
71
72 case_altas () {
73         DONE=0
74         while [ $DONE == 0 ] ; do
75                 leer "Número de línea" "" LINEA
76                 #TODO Valido
77                 if ! validar_solo_numeros "$LINEA" ; then
78                         echo "EL NUMERO TE LINEA SOLO DEBE TENER DIGITOS"
79                 else
80                         DONE=1
81                 fi
82                 if [ "$LINEA" == "" ] ; then
83                         DONE=0
84                 fi
85         done
86
87         preguntar "Tipo de llamada" "ES" TIPO
88
89         DONE=0
90         CODIGO=''
91         while [ $DONE == 0 ] ; do
92                 leer "Pais (descripción)" "" PAIS 
93                 if ! existe_pais "$PAIS" CODIGO ; then
94                         echo "No existe el país de descrición '$PAIS'"
95                 else
96                         DONE=1
97                 fi
98                 if [ "$PAIS" == "" ] ; then
99                         DONE=0
100                 fi
101         done
102
103         echo "El código de '$PAIS' es '$CODIGO'"
104         PAIS=$CODIGO
105
106         # Verifico que el umbral no exista
107         FECHA=`date +"%Y%m%d"`
108         HORA=`date +"%H%M%S"`
109         UMBRAL="$LINEA;$PAIS;$TIPO;A;*;*;*"
110
111         if existe_umbral "$UMBRAL" ; then
112                 echo "Ya existe un umbral con los datos ingresados."
113                 echo "Abortando..."
114                 return
115         fi
116         
117         # Genero el umbral
118         buscar_id_umbral ID
119         UMBRAL="$ID;$LINEA;$PAIS;$TIPO;A;$USER;$FECHA;$HORA"
120
121         # Lo guardo
122         echo "$UMBRAL" >> "$BASE_DIR/umbrales.param"
123
124         echo ""
125         echo "El Umbral fue grabado con éxito"
126         echo ""
127 }
128
129 case_buscar () {
130         DONE=0
131         while [ $DONE == 0 ] ; do
132                 leer "Número de línea" "" LINEA
133                 #TODO Valido
134                 if ! validar_solo_numeros "$LINEA" ; then
135                         echo "EL NUMERO TE LINEA SOLO DEBE TENER DIGITOS"
136                 else
137                         DONE=1
138                 fi
139                 if [ "$LINEA" == "" ] ; then
140                         DONE=0
141                 fi
142         done
143
144         DATOS=`cat "$BASE_DIR/umbrales.param" | grep "[0-9]*;$LINEA;[A-Z]*;[E,S];A"`
145
146         if [ "$OPT" == "" ] ; then
147                 echo ""
148                 echo "No se han encontrado uUmbrales activos para la linea $LINEA."
149                 echo "Abortando ..."
150                 echo ""
151                 return 0
152         fi
153
154         printf "%3s      %2s  %1s   %1s    %10s%8s       %6s\n" "ID" "Ciudad" "Tipo" "Estado" "Usuario" "Fecha" "Hora"
155         OPCIONES="-1"
156         for i in $DATOS ; do
157                 ID=`echo "$i" | cut -d ';' -f 1`
158                 CIUDAD=`echo "$i" | cut -d ';' -f 3`
159                 TIPO=`echo "$i" | cut -d ';' -f 4`
160                 ESTADO=`echo "$i" | cut -d ';' -f 5`
161                 USUARIO=`echo "$i" | cut -d ';' -f 6`
162                 FECHA=`echo "$i" | cut -d ';' -f 7`
163                 HORA=`echo "$i" | cut -d ';' -f 8`
164                 printf "%3s      %2s      %1s      %1s      %10s      %8s      %6s\n" "$ID" "$CIUDAD" "$TIPO" "$ESTADO" "$USUARIO" "$FECHA" "$HORA"
165                 OPCIONES="$OPCIONES $ID"
166         done
167
168         preguntar "Cual desea borrar (-1 para salir)" "$OPCIONES" OPT
169
170         if [ "$OPT" = "-1" ] ; then
171                 return 0
172         fi
173
174         echo "Borrando el registro $OPT ..."
175         poner_estado_umbral "$OPT" "I"
176         echo ""
177         echo ""
178         echo "El Umbral fue eliminado con éxito"
179         echo ""
180 }
181
182 # No permito correr 2 instancias de AFICONF
183 if is_lock "aficonf" ; then
184         echo ""
185         echo "Aficonf está corriendo actualmente."
186         echo ""
187         exit 1
188 fi
189
190 lock "aficonf"
191
192 # Loop Principal
193 OPT="0"
194 while [ "$OPT" != "3" ] ; do 
195         menu OPT
196
197         case $OPT in
198                 "1") case_altas ;;
199                 "2") case_buscar ;;
200         esac
201 done
202
203 unlock "aficonf"
204