X-Git-Url: https://git.llucax.com/z.facultad/75.06/emufs.git/blobdiff_plain/afae487b5828cdb06702759dad8354c889723bea..d85375b5ea6773eb12e86e630961034cd5df1e96:/emufs_gui/articulos.c?ds=inline diff --git a/emufs_gui/articulos.c b/emufs_gui/articulos.c index 30c7e74..c042bfb 100644 --- a/emufs_gui/articulos.c +++ b/emufs_gui/articulos.c @@ -5,6 +5,7 @@ #include "common.h" #include "lista.h" #include "menu.h" +#include "facturas.h" static t_LstArticulos *lst_articulos; @@ -360,10 +361,20 @@ void art_eliminar(char *s) getch(); } else { INDICE_DATO dummy; - k = emufs_indice_generar_clave_desde_valor(lst_articulos->fp->indices, (char *)&(articulo->numero)); - PERR("Borrando ARTICULO") - lst_articulos->fp->borrar_registro(lst_articulos->fp, k, dummy); - PERR("LISTO BORRADO"); + + /* Antes de borrar veo si existe alguna factura que contenga este articulo */ + if (fact_hay_con_item(articulo->numero) == 0) { + k = emufs_indice_generar_clave_desde_valor(lst_articulos->fp->indices, (char *)&(articulo->numero)); + PERR("Borrando ARTICULO") + lst_articulos->fp->borrar_registro(lst_articulos->fp, k, dummy); + PERR("LISTO BORRADO"); + } else { + wattron(win, COLOR_PAIR(COLOR_YELLOW)); + mvwaddstr(win, 6, 4, "No se pudo eliminar Articulo porque hay una factura que lo referencia."); + wattroff(win, COLOR_PAIR(COLOR_YELLOW)); + wrefresh(win); + getch(); + } free(articulo); } @@ -1152,7 +1163,7 @@ void art_recorrer() MENU_OPCION("Volver", "Volver al menu anterior.") }; int opt; - while ((opt = menu_ejecutar(mi_menu, 4, "Consulta de Articulos")) != 3) { + while ((opt = menu_ejecutar(mi_menu, 4, "Recorrer Articulos")) != 3) { art_recorrer_con_indice(ind[opt]); } }