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