]> git.llucax.com Git - z.facultad/75.06/emufs.git/blobdiff - emufs_gui/articulos.c
Se separa el algoritmo de ordenamiento del ejemplo, se borran cosas obsoletas.
[z.facultad/75.06/emufs.git] / emufs_gui / articulos.c
index 30c7e7430d5f63ac1afd15c2f4ebb1e1e367746c..c042bfbe7c8843630b739441456c2e3eef59afa5 100644 (file)
@@ -5,6 +5,7 @@
 #include "common.h"
 #include "lista.h"
 #include "menu.h"
 #include "common.h"
 #include "lista.h"
 #include "menu.h"
+#include "facturas.h"
 
 static t_LstArticulos *lst_articulos;
 
 
 static t_LstArticulos *lst_articulos;
 
@@ -360,10 +361,20 @@ void art_eliminar(char *s)
                getch();
        } else {
                INDICE_DATO dummy;
                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);
        }
 
                free(articulo);
        }
 
@@ -1152,7 +1163,7 @@ void art_recorrer()
                MENU_OPCION("Volver", "Volver al menu anterior.")
        };
        int opt;
                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]);
        }
 }
                art_recorrer_con_indice(ind[opt]);
        }
 }