X-Git-Url: https://git.llucax.com/z.facultad/75.06/emufs.git/blobdiff_plain/439d9f9ac17b496b8f90857995271bc17fa5600e..8d40bc6eee138ef1b3ada1191fb1b2467062171e:/emufs_gui/facturas.c diff --git a/emufs_gui/facturas.c b/emufs_gui/facturas.c index 9410c19..0ac4861 100644 --- a/emufs_gui/facturas.c +++ b/emufs_gui/facturas.c @@ -8,9 +8,13 @@ static t_LstFacturas *lst_facturas; /* Procesa una factura antes de enviarla al archivo para guardarla */ 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); + +/* 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); + +/* Funciones para carga desde el XML */ static t_Item *leer_items(xmlNode *, int *cant, int size); static char *leer_nota(xmlNode *, int max); @@ -418,6 +422,7 @@ 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; @@ -429,11 +434,24 @@ void fact_modificar(char *s) win = newwin(LINES-4, COLS-2, 2, 1); box(win, 0, 0); - fact = fact_form_buscar(win, &id, &id_texto); + if (s == NULL) { + fact = fact_form_buscar(win, &id, &id_texto); + } else { + id = atoi(s); + fact = NULL; + nodo = lst_facturas->primero; + while (nodo) { + if (nodo->num_reg == id) { + fact = fact_buscar(lst_facturas, nodo->numero, &id, &id_texto); + break; + } + nodo = nodo->sig; + } + } if (fact == NULL) { wattron(win, COLOR_PAIR(COLOR_YELLOW)); - mvwaddstr(win, 2, 1, "No existe artículo con ese código. Abortando!"); + mvwaddstr(win, 2, 1, "No existe factura con ese código. Abortando!"); wattroff(win, COLOR_PAIR(COLOR_YELLOW)); wrefresh(win); getch();