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