From: Ricardo Markiewicz Date: Mon, 19 Apr 2004 03:48:08 +0000 (+0000) Subject: * Se resuelve el problema de cambiar el formato del archivo notas. Revisando mail X-Git-Tag: svn_import_r684~316 X-Git-Url: https://git.llucax.com/z.facultad/75.06/emufs.git/commitdiff_plain/ac4e74bc3235c3ced324ee54e9f788307a1e5eed?ds=inline * Se resuelve el problema de cambiar el formato del archivo notas. Revisando mail 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 !! --- diff --git a/emufs_gui/emufs_view.c b/emufs_gui/emufs_view.c index 7490f28..a1333d7 100644 --- a/emufs_gui/emufs_view.c +++ b/emufs_gui/emufs_view.c @@ -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); diff --git a/emufs_gui/facturas.c b/emufs_gui/facturas.c index 1eefe85..8cd9267 100644 --- a/emufs_gui/facturas.c +++ b/emufs_gui/facturas.c @@ -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"); } diff --git a/emufs_gui/facturas.h b/emufs_gui/facturas.h index f6f8cf6..fe9bced 100644 --- a/emufs_gui/facturas.h +++ b/emufs_gui/facturas.h @@ -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 diff --git a/emufs_gui/viewer.c b/emufs_gui/viewer.c index f48b377..403c3b4 100644 --- a/emufs_gui/viewer.c +++ b/emufs_gui/viewer.c @@ -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: