X-Git-Url: https://git.llucax.com/z.facultad/75.06/emufs.git/blobdiff_plain/a6a12cf00618bfc651d623d8e9ef85085ce3c295..549a07c528dc9f77fa70cd331fb0250026781425:/emufs_gui/facturas.c?ds=sidebyside diff --git a/emufs_gui/facturas.c b/emufs_gui/facturas.c index 64ce9bc..76c042f 100644 --- a/emufs_gui/facturas.c +++ b/emufs_gui/facturas.c @@ -11,10 +11,12 @@ static t_LstFacturas *lst_facturas; static void *procesar_guardar_factura(t_Factura *f, t_LstFacturas *lst, EMUFS_REG_SIZE *size); static int procesar_leer_factura(t_Factura *dst, void *src, EMUFS_REG_SIZE size, t_LstFacturas *lst); +#ifdef TP_PRIMER_ENTREGA /* Manejo de la lista en memoria */ static t_Reg_Factura *crear_nodo_factura(EMUFS_REG_ID reg, EMUFS_REG_ID texto, unsigned int num); static int agregar_nodo_factura(t_LstFacturas *lst, t_Reg_Factura *nodo); int eliminar_nodo_factura(t_LstFacturas *lst, t_Reg_Factura *nodo); +#endif /* Funciones para carga desde el XML */ static t_Item *leer_items(xmlNode *, int *cant, int size); @@ -38,6 +40,7 @@ char *xml_get_prop(xmlNode *node, char *nombre) return s; } +#ifdef TP_PRIMER_ENTREGA int eliminar_nodo_factura(t_LstFacturas *lst, t_Reg_Factura *nodo) { if (nodo == NULL) return 0; @@ -84,6 +87,7 @@ int agregar_nodo_factura(t_LstFacturas *lst, t_Reg_Factura *nodo) } return 1; } +#endif /*TP_PRIMER_ENTREGA*/ t_Item *leer_items(xmlNode *node, int *cant, int size) { @@ -416,7 +420,8 @@ void fact_eliminar(char *s) k.i_clave = fact->reg_nota; lst_facturas->fp_texto->borrar_registro(lst_facturas->fp_texto, k); - free(fact->items); + if (fact->items) free(fact->items); + if (fact->nota) free(fact->nota); free(fact); } @@ -424,7 +429,6 @@ void fact_modificar(char *s) { WINDOW *win, *items, *nota, *subnota; t_Form *form, *form_nota; - t_Reg_Factura *nodo; t_Factura *fact; EMUFS_REG_SIZE size; EMUFS_REG_ID id, id_texto; @@ -432,17 +436,13 @@ void fact_modificar(char *s) char tmp_str[10]; void *entrada; - /* XXX XXX XXX TODO */ - return; - win = newwin(LINES-4, COLS-2, 2, 1); box(win, 0, 0); if (s == NULL) { fact = fact_form_buscar(win, &id, &id_texto); } else { - id = atoi(s); - fact = fact_buscar(lst_facturas, nodo->numero, &id, &id_texto); + fact = fact_buscar(lst_facturas, atoi(s), &id, &id_texto); } if (fact == NULL) { @@ -511,8 +511,11 @@ void fact_modificar(char *s) entrada = procesar_guardar_factura(fact, lst_facturas, &size); if (entrada) { - id = lst_facturas->fp->modificar_registro(lst_facturas->fp, id, entrada, size, &error); - id_texto = lst_facturas->fp_texto->modificar_registro(lst_facturas->fp_texto, id_texto, fact->nota, strlen(fact->nota)+1, &error); + CLAVE k; + k = emufs_indice_generar_clave_desde_valor(lst_facturas->fp->indices, (char *)&fact->numero); + lst_facturas->fp->modificar_registro(lst_facturas->fp, k, entrada, size, &error); + k.i_clave = id_texto; + id_texto = lst_facturas->fp_texto->modificar_registro(lst_facturas->fp_texto, k, fact->nota, strlen(fact->nota)+1, &error); free(entrada); } @@ -534,7 +537,7 @@ void fact_agregar(char *s) t_Item *its = NULL; t_Factura fact; EMUFS_REG_SIZE size; - EMUFS_REG_ID id, id_texto; + EMUFS_REG_ID id_texto; int y_actual, cant, error; char *entrada; @@ -646,7 +649,6 @@ void fact_agregar(char *s) if (entrada) { error = 0; lst_facturas->fp->grabar_registro(lst_facturas->fp, entrada, size, &error); - agregar_nodo_factura(lst_facturas, crear_nodo_factura(id, id_texto, fact.numero)); free(entrada); }