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