t_LstArticulos *lst_articulos;
+t_Articulo *art_form_buscar(WINDOW *win);
+
t_LstArticulos *art_cargar(const char *filename)
{
xmlDocPtr document;
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);
+}
+
/* Pongo las etiquetas de los campos, y me fijo el mayor offset */
while (tmp) {
my_y++;
- mvwaddstr(f->win, my_y, x, tmp->nombre);
- waddch(f->win, ':');
- waddch(f->win, ' ');
if (strlen(tmp->nombre) > offset)
offset = strlen(tmp->nombre);
tmp = tmp->sig;
}
/* Agrego el ": " al offset*/
- x += offset + 2;
+ offset += 2;
+
+ tmp = f->primero;
+ my_y = y-1;
+ while (tmp) {
+ ++my_y;
+ mvwaddstr(f->win, my_y, x, tmp->nombre);
+ waddch(f->win, ':');
+ waddch(f->win, ' ');
+ mvwaddstr(f->win, my_y, x+offset, tmp->valor);
+ tmp = tmp->sig;
+ }
wrefresh(f->win);
+
tmp = f->primero;
my_y = y-1;
while (tmp) {
++my_y;
- wmove(f->win, my_y, x);
- salida = tmp->ejecutar(f->win, x, my_y, tmp);
+ wmove(f->win, my_y, x+offset);
+ salida = tmp->ejecutar(f->win, x+offset, my_y, tmp);
wrefresh(f->win);
tmp = tmp->sig;
}
char *tmp = w->valor;
int current = 0, c;
mvwaddstr(win, y, x, w->valor);
-
+ curs_set(1);
while ((*tmp) != '\0') {
tmp++;
current++;
waddch(win, ' ');
/* Este va para dejar el cursor bien, ya que addch mueve el cursor*/
wmove(win, y, x+current);
+ wrefresh(win);
continue;
}
/* Si no entra mas, ignoro toda entrada */
items = (ITEM **)calloc(5, sizeof(ITEM *));
items[0] = new_item(opciones[0], "Crear un nuevo articulo.");
- //set_item_userptr(items[0], art_agregar);
+ set_item_userptr(items[0], art_agregar);
items[1] = new_item(opciones[1], "Eliminar un articulo existente.");
- //set_item_userptr(items[0], art_eliminar);
+ set_item_userptr(items[1], art_eliminar);
items[2] = new_item(opciones[2], "Modificar un articulo existente.");
set_item_userptr(items[2], art_modificar);
items[3] = new_item(opciones[3], "Volver al menu anterior.");
curs_set(0);
salir = 0;
- while((!salir) && (c = getch()) != KEY_F(1)) {
+ while((!salir) && (c = getch()) != KEY_F(3)) {
switch(c) {
case KEY_DOWN:
menu_driver(menu, REQ_DOWN_ITEM);