t_LstArticulos *lst_articulos;
+t_Articulo *art_form_buscar(WINDOW *win);
+
t_LstArticulos *art_cargar(const char *filename)
{
xmlDocPtr document;
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;
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;
}
}
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;
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);
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);
}
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);
+}
+