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);
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");
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;
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);
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;
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");
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) {
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");
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");
}