4 t_LstArticulos *lst_articulos;
6 t_LstArticulos *art_cargar(const char *filename)
11 t_LstArticulos *tmp = (t_LstArticulos *)malloc(sizeof(t_LstArticulos));
12 if (tmp == NULL) return NULL;
14 document = xmlParseFile(filename);
15 if (document == NULL) {
20 node = xmlDocGetRootElement(document);
22 if (node->type == XML_ELEMENT_NODE) {
23 if (strcmp(node->name, "ARTICULOS") == 0) {
24 node = node->children;
31 /* Cuento la cantidad de articulos en el archivo */
33 for ( ; node ; node = node->next) {
34 if (node->type == XML_ELEMENT_NODE) {
35 if (strcmp(node->name, "ARTICULO") == 0) {
41 tmp->array = (t_Articulo *)malloc(sizeof(t_Articulo)*cant);
43 if (tmp->array == NULL) {
50 node = xmlDocGetRootElement(document);
52 if (node->type == XML_ELEMENT_NODE) {
53 if (strcmp(node->name, "ARTICULOS") == 0) {
54 node = node->children;
63 for ( ; node ; node = node->next) {
64 if (node->type == XML_ELEMENT_NODE) {
65 if (strcmp(node->name, "ARTICULO") == 0) {
66 strncpy(tmp->array[cant].numero, xmlGetProp(node, "NroArticulo"), 8);
67 strncpy(tmp->array[cant].desc, xmlGetProp(node, "Descripcion"), 50);
68 strncpy(tmp->array[cant].presentacion, xmlGetProp(node, "Presentacion"), 30);
69 strncpy(tmp->array[cant].existencia, xmlGetProp(node, "Existencia"), 8);
70 // strncpy(tmp->array[cant].ubicacion, xmlGetProp(node, "Ubicacion"), 30);
71 strncpy(tmp->array[cant].pvu, xmlGetProp(node, "PVU"), 8);
72 strncpy(tmp->array[cant].emin, xmlGetProp(node, "Emin"), 8);
84 int art_liberar(t_LstArticulos *l)
86 if (l == NULL) l = lst_articulos;
87 if (l == NULL) return 1;
96 t_Articulo *art_obtener(t_LstArticulos *lst, const char *numero)
101 if (lst == NULL) lst = lst_articulos;
103 for(i=0; i<lst->cant; i++) {
104 j = atoi(lst->array[i].numero);
106 return &lst->array[i];
112 void art_modificar(char *s)
116 t_Articulo *articulo;
118 win = newwin(8, 68, 13, 1);
122 form = form_crear(win);
123 form_agregar_widget(form, INPUT, "Numero de Artículo", 8, "");
124 form_ejecutar(form, 1,1);
125 articulo = art_obtener(NULL, form_obtener_valor(form, "Numero de Artículo"));
128 if (articulo != NULL) {
129 form = form_crear(win);
130 form_agregar_widget(form, INPUT, "Numero de Artículo", 8, articulo->numero);
131 form_agregar_widget(form, INPUT, "Descripción", 50, articulo->desc);
132 form_agregar_widget(form, INPUT, "Presentación", 30, articulo->presentacion);
133 form_agregar_widget(form, INPUT, "Stock Actual", 8, articulo->existencia);
134 form_agregar_widget(form, INPUT, "PVU", 30, articulo->pvu);
135 form_agregar_widget(form, INPUT, "Stock Mínimo", 8, articulo->emin);
136 form_ejecutar(form, 1,1);