]> git.llucax.com Git - z.facultad/75.06/emufs.git/commitdiff
* Finalizo carga de articulos.
authorRicardo Markiewicz <gazer.arg@gmail.com>
Wed, 31 Mar 2004 20:39:01 +0000 (20:39 +0000)
committerRicardo Markiewicz <gazer.arg@gmail.com>
Wed, 31 Mar 2004 20:39:01 +0000 (20:39 +0000)
 * Formulario de busqueda

gui/articulos.c
gui/articulos.h
gui/articulos.xml
gui/gui.c

index c9b42d857960d8f3e273302d24453dac6fecfd3f..af349ddfeb9a5827a819bad59d4c09ab3b95beff 100644 (file)
@@ -16,6 +16,15 @@ t_LstArticulos *art_cargar(const char *filename)
        }
 
        node = xmlDocGetRootElement(document);
+       while (node) {
+               if (node->type == XML_ELEMENT_NODE) {
+                       if (strcmp(node->name, "ARTICULOS") == 0) {
+                               node = node->children;
+                               break;
+                       }
+               }
+               node = node->next;
+       }
 
        /* Cuento la cantidad de articulos en el archivo */
        cant = 0;
@@ -29,20 +38,36 @@ t_LstArticulos *art_cargar(const char *filename)
        tmp->cant = cant;
        tmp->array = (t_Articulo *)malloc(sizeof(t_Articulo)*cant);
 
+       if (tmp->array == NULL) {
+               xmlFreeDoc(document);
+               xmlCleanupParser();
+               free(tmp);
+               return NULL;
+       }
+
        node = xmlDocGetRootElement(document);
+       while (node) {
+               if (node->type == XML_ELEMENT_NODE) {
+                       if (strcmp(node->name, "ARTICULOS") == 0) {
+                               node = node->children;
+                               break;
+                       }
+               }
+               node = node->next;
+       }
 
        /* leo los datos */
        cant = 0;
        for ( ; node ; node = node->next) {
                if (node->type == XML_ELEMENT_NODE) {
                        if (strcmp(node->name, "ARTICULO") == 0) {
-                               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].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].existencia, xmlGetProp(node, "Existencia"), 8);
-                               strncpy(tmp->array[cant].ubicacion, xmlGetProp(node, "Ubicación"), 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, "Emín"), 8);
+                               strncpy(tmp->array[cant].emin, xmlGetProp(node, "Emin"), 8);
                                ++cant;
                        }
                }
@@ -65,6 +90,14 @@ int art_liberar(t_LstArticulos *l)
 
 t_Articulo *art_obtener(t_LstArticulos *lst, const char *numero)
 {
+       int i, j;
+       int n = atoi(numero);
+       for(i=0; i<lst->cant; i++) {
+               j = atoi(lst->array[i].numero);
+               if (n == j)
+                       return &lst->array[i];
+       }
+
        return NULL;
 }
 
index 1c1e87f5d67e9cd76b788eadbdd348b8b86a483d..8472556cf8e4da06739759894230f4a541b7cfc0 100644 (file)
@@ -5,6 +5,7 @@
 #include <libxml/parser.h>
 #include <libxml/tree.h>
 #include <string.h>
+#include "malloc_debug.h"
 
 /* FACTURAS!!
        char numero[9];
index 00006bc0e4d4b82182c20c6a4764524e4c98a963..ec1cebf07a34391e8ca86db450848c2eb8a9411b 100644 (file)
@@ -1,14 +1,14 @@
 <?xml version="1.0" encoding="ISO-8859-1" ?>\r
 <ARTICULOS>\r
-       <ARTICULO NroArtículo="438" Descripción="Tallarines al Huevo Don Vicente" \r
-       Presentación="Caja 6 Paquetes 500 g." Existencia="27" PVU="12,80" Emín="10"/>\r
-       <ARTICULO NroArtículo="439" Descripción="Tallarines con Espinaca Don Vicente" \r
-       Presentación="Caja 6 Paquetes 500 g." Existencia="19" PVU="14,50" Emín="0"/>\r
-       <ARTICULO NroArtículo="440" Descripción="Tallarines con Morrón Don Vicente" \r
-       Presentación="Paquete 500 g." Existencia="14" PVU="14,50" Emín="0"/>\r
-       <ARTICULO NroArtículo="742" Descripción="Mayonesa Hellman's" Presentación="Frasco 500 g."       Existencia="16" PVU="5,50" Emín="10"/>\r
-       <ARTICULO NroArtículo="743" Descripción="Mayonesa Hellman's" \r
-       Presentación="Pack 2 Frascos 250 g." Existencia="12" PVU="5,80" Emín="10"/>\r
+       <ARTICULO NroArticulo="438" Descripcion="Tallarines al Huevo Don Vicente" \r
+       Presentacion="Caja 6 Paquetes 500 g." Existencia="27" PVU="12,80" Emin="10" />\r
+       <ARTICULO NroArticulo="439" Descripcion="Tallarines con Espinaca Don Vicente" \r
+       Presentacion="Caja 6 Paquetes 500 g." Existencia="19" PVU="14,50" Emin="0" />\r
+       <ARTICULO NroArticulo="440" Descripcion="Tallarines con Morrón Don Vicente" \r
+       Presentacion="Paquete 500 g." Existencia="14" PVU="14,50" Emin="0" />\r
+       <ARTICULO NroArticulo="742" Descripcion="Mayonesa Hellman's" Presentacion="Frasco 500 g."       Existencia="16" PVU="5,50" Emin="10" />\r
+       <ARTICULO NroArticulo="743" Descripcion="Mayonesa Hellman's" \r
+       Presentacion="Pack 2 Frascos 250 g." Existencia="12" PVU="5,80" Emin="10" />\r
 </ARTICULOS>\r
 \r
 \r
index fec8758f44a6d611b7de53541345abf5696de44d..7a15fcdc9e5fd872f0b10d291bf6791a67b8f70f 100644 (file)
--- a/gui/gui.c
+++ b/gui/gui.c
@@ -16,6 +16,7 @@ int main(int argc, char *argv[])
        WINDOW *mainwin;
        t_Form *form;
        t_LstArticulos *articulos;
+       t_Articulo *art;
 
        articulos = art_cargar(argv[1]);
 
@@ -57,21 +58,24 @@ int main(int argc, char *argv[])
 
        /* Creo el formulario */
        form = form_crear(mainwin);
-       form_agregar_widget(form, INPUT, "Nombre", 15, "");
-       form_agregar_widget(form, RADIO, "Voto", 3, "Si,No,No Corresponde");
-       form_agregar_widget(form, INPUT, "Datos", 30, "");
+       form_agregar_widget(form, INPUT, "Numero de Articulo", 8, "");
 
        form_ejecutar(form, 10, 10);
 
        delwin(mainwin);
        endwin();
        
+       art = art_obtener(articulos, form_obtener_valor(form, "Numero de Articulo"));
+
        /* Imprimo los datos! */
-       printf("Datos Ingresados : \n");
-       printf("\tNombre : %s\n", form_obtener_valor(form, "Nombre"));
-       printf("\tVoto   : %s\n", form_obtener_valor(form, "Voto"));
-       printf("\tDatos  : %s\n", form_obtener_valor(form, "Datos"));
-       
+       printf("Datos : \n");
+       if (art != NULL) {
+               printf("\tDescripcion   : %s\n", art->desc);
+               printf("\tPresentacion  : %s\n", art->presentacion);
+               printf("\tExistencia    : %s\n", art->existencia);
+       } else {
+               printf("NO EXISTE!\n");
+       }
        /* Libero el formulario */
        form_destruir(form);
        art_liberar(articulos);