]> git.llucax.com Git - z.facultad/75.06/emufs.git/commitdiff
* Se resuelve el problema de cambiar el formato del archivo notas. Revisando mail
authorRicardo Markiewicz <gazer.arg@gmail.com>
Mon, 19 Apr 2004 03:48:08 +0000 (03:48 +0000)
committerRicardo Markiewicz <gazer.arg@gmail.com>
Mon, 19 Apr 2004 03:48:08 +0000 (03:48 +0000)
 me habian dicho que es parametro de Facturas, es decir que cuando
 cambio los parametros de facturas ahi tambien especifico
 los parametros de las notas. DONE !!

emufs_gui/emufs_view.c
emufs_gui/facturas.c
emufs_gui/facturas.h
emufs_gui/viewer.c

index 7490f288fd4cf08c97d56dc2bfdc08ec534af7c8..a1333d7db05031cbc3934316bdac83ad84860355 100644 (file)
@@ -26,7 +26,7 @@ void menu_mantenimiento();
 void menu_estadisticas();
 void menu_ver_registros();
 void menu_ver_bloques();
-void preguntar_nuevo_tipo(int *tipo, int *tam_bloque, int *tam_reg);
+void preguntar_nuevo_tipo(const char *title, int *tipo, int *tam_bloque, int *tam_reg);
 
 void ver_estadisticas(EMUFS *fp);
 
@@ -456,16 +456,15 @@ void menu_mantenimiento()
                MENU_OPCION("Compactar Notas","Elimina espacio no utilizado."),
                MENU_OPCION("Cambiar tipo Archivo Articulos","Permite cambiar el tipo del archivo."),
                MENU_OPCION("Cambiar tipo Archivo Facturas","Permite cambiar el tipo del archivo."),
-               MENU_OPCION("Cambiar tipo Archivo Notas","Permite cambiar el tipo del archivo."),
                MENU_OPCION("Volver", "Volver al menu anterior.")
        };
 
        int opt;
-       int nuevo_tam_registro, nuevo_tam_bloque;
-       int nuevo_tipo;
+       int nuevo_tam_registro, nuevo_tam_bloque, nuevo_tipo;
+       int nuevo_tam_registro1, nuevo_tam_bloque1, nuevo_tipo1;
        WINDOW *dlg;
 
-       while ((opt = menu_ejecutar(mi_menu, 7, "Menu Mantenimiento")) != 6) {
+       while ((opt = menu_ejecutar(mi_menu, 6, "Menu Mantenimiento")) != 5) {
                switch (opt) {
                        case 0:
                                dlg = msg_box(stdscr, COLS, LINES, "Compactando archivo.... Aguarde");
@@ -484,26 +483,23 @@ void menu_mantenimiento()
                        break;
                        case 3:
                                nuevo_tam_registro = -1; /* No permito cambiar el tamaƱo de registro */
-                               preguntar_nuevo_tipo(&nuevo_tipo, &nuevo_tam_bloque, &nuevo_tam_registro);
+                               preguntar_nuevo_tipo("Parametros para  Articulos", &nuevo_tipo, &nuevo_tam_bloque, &nuevo_tam_registro);
                                dlg = msg_box(stdscr, COLS, LINES, "Cambiando el formato de archivo .... Aguarde");
                                art_reformatear(nuevo_tipo, nuevo_tam_bloque, nuevo_tam_registro);
                                msg_box_free(stdscr, dlg);
                        break;
                        case 4:
                                nuevo_tam_registro = 0;
-                               preguntar_nuevo_tipo(&nuevo_tipo, &nuevo_tam_bloque, &nuevo_tam_registro);
+                               preguntar_nuevo_tipo("Parametros para Facturas", &nuevo_tipo, &nuevo_tam_bloque, &nuevo_tam_registro);
+                               preguntar_nuevo_tipo("Parametros para Notas", &nuevo_tipo1, &nuevo_tam_bloque1, &nuevo_tam_registro1);
                                dlg = msg_box(stdscr, COLS, LINES, "Cambiando el formato de archivo .... Aguarde");
-                               fact_reformatear(nuevo_tipo, nuevo_tam_bloque, nuevo_tam_registro);
+                               fact_reformatear(nuevo_tipo, nuevo_tam_bloque, nuevo_tam_registro, nuevo_tipo1, nuevo_tam_bloque1, nuevo_tam_registro1);
                                msg_box_free(stdscr, dlg);
-                       break;
-                       case 5:
-                               nuevo_tam_registro = -2;
-                               preguntar_nuevo_tipo(&nuevo_tipo, &nuevo_tam_bloque, &nuevo_tam_registro);
                }
        }
 }
 
-void preguntar_nuevo_tipo(int *tipo, int *tam_bloque, int *tam_reg)
+void preguntar_nuevo_tipo(const char *title, int *tipo, int *tam_bloque, int *tam_reg)
 {
        WINDOW *win;
        t_Form *form;
@@ -513,6 +509,7 @@ void preguntar_nuevo_tipo(int *tipo, int *tam_bloque, int *tam_reg)
        win = newwin(LINES/2, COLS/2, LINES/4, COLS/4);
        box(win, 0, 0);
 
+       mvwaddstr(win, 0, 1, title);
        form = form_crear(win);
        form_agregar_widget(form, RADIO, "Tipo de archivo", 3, "T1,T2,T3");
        form_ejecutar(form, 1,1);
index 1eefe8571c3ade81b3a1bfa820cd481800476393..8cd926772526d2ac1a31ed02020379d3ad747721 100644 (file)
@@ -768,7 +768,7 @@ static int procesar_leer_factura(t_Factura *dst, void *src, EMUFS_REG_SIZE size,
        return 0;
 }
 
-void fact_reformatear(int tipo, int tam_bloque, int tam_reg)
+void fact_reformatear(int tipo, int tam_bloque, int tam_reg, int nota_tipo, int nota_tam_bloque, int nota_tam_registro)
 {
        EMUFS *nuevo, *old;
        EMUFS_REG_ID *indices, id;
@@ -797,6 +797,7 @@ void fact_reformatear(int tipo, int tam_bloque, int tam_reg)
        lst_nueva = (t_LstFacturas *)malloc(sizeof(t_LstFacturas));
        lst_nueva->primero = NULL;
        lst_nueva->fp = nuevo;
+       lst_nueva->fp_texto = emufs_crear("nota_tmp", nota_tipo, nota_tam_bloque, nota_tam_registro);
 
        /* Leo los indices del archivo viejo */
        PERR("Obtengo Indices\n");
@@ -815,6 +816,9 @@ void fact_reformatear(int tipo, int tam_bloque, int tam_reg)
                        PERR("Procese Leer Ok");
                        free(save);
                        /* Lei un registro Ok. Lo salvo en el archivo nuevo */
+
+                       /* Actualizo el ID de la nota asociada */
+                       fact.reg_nota = lst_nueva->fp_texto->grabar_registro(lst_nueva->fp_texto, fact.nota, strlen(fact.nota)+1, &error);
                        save = procesar_guardar_factura(&fact, lst_nueva, &size);
                        PERR("Procese Grabar Ok");
                        if (save) {
@@ -845,6 +849,11 @@ void fact_reformatear(int tipo, int tam_bloque, int tam_reg)
        lst_facturas->fp->nombre = (char *)malloc(sizeof(char)*(strlen("facturas")+1));
        strcpy(lst_facturas->fp->nombre, "facturas");
        
+       /* Tambien actualizo el nombre para notas */
+       free(lst_facturas->fp_texto->nombre);
+       lst_facturas->fp_texto->nombre = (char *)malloc(sizeof(char)*(strlen("notas")+1));
+       strcpy(lst_facturas->fp_texto->nombre, "notas");
+       
        /* Muevo los archivos! */
        /* TODO : Poner en otro lugar mas generico! */
        PERR("Renombre!!\n");
@@ -852,6 +861,10 @@ void fact_reformatear(int tipo, int tam_bloque, int tam_reg)
        rename("emufs_tmp.idx", "facturas.idx");
        rename("emufs_tmp.fsc", "facturas.fsc");
        rename("emufs_tmp.did", "facturas.did");
+       rename("nota_tmp.dat", "notas.dat");
+       rename("nota_tmp.idx", "notas.idx");
+       rename("nota_tmp.fsc", "notas.fsc");
+       rename("nota_tmp.did", "notas.did");
        PERR("==== TERMINE ====\n");
 }
 
index f6f8cf675cac8de406a84c58ffcd70d793d3b36e..fe9bced70cf9a4dc1ee112f35964e8d5be9a4198 100644 (file)
@@ -71,6 +71,6 @@ void fact_eliminar(char *s);
 /** Obtiene la list de facturas */
 t_LstFacturas *fact_get_lst();
 
-void fact_reformatear(int tipo, int tam_bloque, int tam_reg);
+void fact_reformatear(int tipo, int tam_bloque, int tam_reg, int nota_tipo, int nota_tam_bloque, int nota_tam_registro);
 
 #endif
index f48b37791b3838a863fbf699954f4e9b4df79f6c..403c3b49d4c425e96d16a99b14cf20ad9b28236b 100644 (file)
@@ -305,7 +305,7 @@ void ver_registros(WINDOW *padre, int w, int h, int cual)
                        procesar = procesar_registro_tipo1;
                break;
                case T2:
-                       waddstr(padre, "Registro variable con sin bloques.");
+                       waddstr(padre, "Registro variable sin bloques.");
                        procesar = procesar_registro_tipo2;
                break;
                case T3: