]> git.llucax.com Git - z.facultad/75.06/emufs.git/blobdiff - gui/articulos.c
* Termino de generar las opciones de Baja y Alta de articulo (ojo que no dan de...
[z.facultad/75.06/emufs.git] / gui / articulos.c
index af349ddfeb9a5827a819bad59d4c09ab3b95beff..81bb20725e0f468cee3304aedc97206db4617c67 100644 (file)
@@ -1,6 +1,10 @@
 
 #include "articulos.h"
 
+t_LstArticulos *lst_articulos;
+
+t_Articulo *art_form_buscar(WINDOW *win);
+
 t_LstArticulos *art_cargar(const char *filename)
 {
        xmlDocPtr document;
@@ -75,16 +79,19 @@ t_LstArticulos *art_cargar(const char *filename)
        xmlFreeDoc(document);
        xmlCleanupParser();
 
+       lst_articulos = tmp;
        return tmp;
 }
 
 int art_liberar(t_LstArticulos *l)
 {
+       if (l == NULL) l = lst_articulos;
        if (l == NULL) return 1;
 
        free(l->array);
        free(l);
 
+       lst_articulos = NULL;
        return 0;
 }
 
@@ -92,6 +99,9 @@ t_Articulo *art_obtener(t_LstArticulos *lst, const char *numero)
 {
        int i, j;
        int n = atoi(numero);
+
+       if (lst == NULL) lst = lst_articulos;
+
        for(i=0; i<lst->cant; i++) {
                j = atoi(lst->array[i].numero);
                if (n == j)
@@ -101,3 +111,102 @@ 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;
+       t_Form *form;
+       t_Articulo *articulo;
+
+       win = newwin(8, 68, 13, 1);
+       box(win, 0, 0);
+       wrefresh(win);
+
+       articulo = art_form_buscar(win);
+
+       if (articulo != NULL) {
+               form = form_crear(win);
+               form_agregar_widget(form, INPUT, "Numero de Artículo", 8, articulo->numero);
+               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", 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);
+       }       
+
+       werase(win);
+       wrefresh(win);
+       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);
+}
+