]> git.llucax.com Git - z.facultad/75.06/emufs.git/blobdiff - gui/articulos.c
Se agrega descripcion de los archivos auxiliares.
[z.facultad/75.06/emufs.git] / gui / articulos.c
index cce691a481ec57b42363fdf780bff5f83edbb3e5..28c0cc13ca5945077af4193175209ca7fe819550 100644 (file)
@@ -3,6 +3,8 @@
 
 t_LstArticulos *lst_articulos;
 
+t_Articulo *art_form_buscar(WINDOW *win);
+
 t_LstArticulos *art_cargar(const char *filename)
 {
        xmlDocPtr document;
@@ -11,7 +13,7 @@ t_LstArticulos *art_cargar(const char *filename)
        t_LstArticulos *tmp = (t_LstArticulos *)malloc(sizeof(t_LstArticulos));
        if (tmp == NULL) return NULL;
 
-       document = xmlParseFile(filename);
+       document = xmlReadFile(filename, "ISO-8859-1",0);
        if (document == NULL) {
                free(tmp);
                return NULL;
@@ -63,13 +65,13 @@ t_LstArticulos *art_cargar(const char *filename)
        for ( ; node ; node = node->next) {
                if (node->type == XML_ELEMENT_NODE) {
                        if (strcmp(node->name, "ARTICULO") == 0) {
-                               strncpy(tmp->array[cant].numero, xmlGetProp(node, "NroArticulo"), 8);
-                               strncpy(tmp->array[cant].desc, xmlGetProp(node, "Descripcion"), 50);
-                               strncpy(tmp->array[cant].presentacion, xmlGetProp(node, "Presentacion"), 30);
+                               strncpy(tmp->array[cant].numero, xmlGetProp(node, "NroArtículo"), 8);
+                               strncpy(tmp->array[cant].desc, xmlGetProp(node, "Descripción"), 50);
+                               strncpy(tmp->array[cant].presentacion, xmlGetProp(node, "Presentación"), 30);
                                strncpy(tmp->array[cant].existencia, xmlGetProp(node, "Existencia"), 8);
-//                             strncpy(tmp->array[cant].ubicacion, xmlGetProp(node, "Ubicacion"), 30);
+//                     /       strncpy(tmp->array[cant].ubicacion, xmlGetProp(node, "Ubicacion"), 30);
                                strncpy(tmp->array[cant].pvu, xmlGetProp(node, "PVU"), 8);
-                               strncpy(tmp->array[cant].emin, xmlGetProp(node, "Emin"), 8);
+                               strncpy(tmp->array[cant].emin, xmlGetProp(node, "Emín"), 8);
                                ++cant;
                        }
                }
@@ -109,6 +111,20 @@ t_Articulo *art_obtener(t_LstArticulos *lst, const char *numero)
        return NULL;
 }
 
+t_Articulo *art_form_buscar(WINDOW *win)
+{
+       t_Form *form;
+       t_Articulo *articulo;
+
+       form = form_crear(win);
+       form_agregar_widget(form, INPUT, "Numero de Artículo", 8, "");
+       form_ejecutar(form, 1,1);
+       articulo = art_obtener(NULL, form_obtener_valor(form, "Numero de Artículo"));
+       form_destruir(form);
+
+       return articulo;
+}
+
 void art_modificar(char *s)
 {
        WINDOW *win;
@@ -119,11 +135,7 @@ void art_modificar(char *s)
        box(win, 0, 0);
        wrefresh(win);
 
-       form = form_crear(win);
-       form_agregar_widget(form, INPUT, "Numero de Artículo", 8, "");
-       form_ejecutar(form, 1,1);
-       articulo = art_obtener(NULL, form_obtener_valor(form, "Numero de Artículo"));
-       form_destruir(form);
+       articulo = art_form_buscar(win);
 
        if (articulo != NULL) {
                form = form_crear(win);
@@ -131,9 +143,12 @@ void art_modificar(char *s)
                form_agregar_widget(form, INPUT, "Descripción", 50, articulo->desc);
                form_agregar_widget(form, INPUT, "Presentación", 30, articulo->presentacion);
                form_agregar_widget(form, INPUT, "Stock Actual", 8, articulo->existencia);
-               form_agregar_widget(form, INPUT, "PVU", 30, articulo->pvu);
+               form_agregar_widget(form, INPUT, "PVU", 8, articulo->pvu);
                form_agregar_widget(form, INPUT, "Stock Mínimo", 8, articulo->emin);
                form_ejecutar(form, 1,1);
+
+               /* TODO : Actualizar registro */
+               
                form_destruir(form);
        }       
 
@@ -142,3 +157,56 @@ void art_modificar(char *s)
        delwin(win);
 }
 
+void art_eliminar(char *s)
+{
+       WINDOW *win;
+       t_Articulo *articulo;
+
+       win = newwin(8, 68, 13, 1);
+       box(win, 0, 0);
+       wrefresh(win);
+
+       articulo = art_form_buscar(win);
+
+       if (articulo == NULL) {
+               wattron(win, COLOR_PAIR(COLOR_YELLOW));
+               mvwaddstr(win, 6, 4, "No existe artículo con ese código. Abortando!");
+               wattroff(win, COLOR_PAIR(COLOR_YELLOW));
+               wrefresh(win);
+               getch();
+       } else {
+               /* TODO : Eliminar un registro */
+       }
+
+       werase(win);
+       wrefresh(win);
+       delwin(win);
+}
+
+void art_agregar(char *s)
+{
+       WINDOW *win;
+       t_Form *form;
+
+       win = newwin(8, 68, 13, 1);
+       box(win, 0, 0);
+       wrefresh(win);
+
+       form = form_crear(win);
+       form_agregar_widget(form, INPUT, "Numero de Artículo", 8, "");
+       form_agregar_widget(form, INPUT, "Descripción", 50, "");
+       form_agregar_widget(form, INPUT, "Presentación", 30, "");
+       form_agregar_widget(form, INPUT, "Stock Actual", 8, "");
+       form_agregar_widget(form, INPUT, "PVU", 8, "");
+       form_agregar_widget(form, INPUT, "Stock Mínimo", 8, "");
+       form_ejecutar(form, 1,1);
+       
+       /* TODO : Agregar el nuevo elemento */
+
+       form_destruir(form);
+
+       werase(win);
+       wrefresh(win);
+       delwin(win);
+}
+