/* 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);
{
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;
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();