]> git.llucax.com Git - z.facultad/75.06/emufs.git/blobdiff - emufs_gui/facturas.c
Me aseguro de que tengo cantidad de claves impares para el B+
[z.facultad/75.06/emufs.git] / emufs_gui / facturas.c
index f16e16fa6b0bc9e517d6f7525f1cfb3ba1ba03fd..6225a6dedc9f28e004118cad0c88ee931ed5b72d 100644 (file)
@@ -777,7 +777,6 @@ static int procesar_leer_factura(t_Factura *dst, void *src, EMUFS_REG_SIZE size,
                return 0;
        }
 
-       fprintf(stderr, "TIPO = %d\n", lst->fp->tipo);
        switch (lst->fp->tipo) {
                case T1:
                case T2:
@@ -976,10 +975,8 @@ int fact_exportar_xml(const char *filename)
        
        fprintf(fp, "<?xml version=\"1.0\" encoding=\"ISO-8859-1\" ?>\n");
        fprintf(fp, "<FACTURAS>\n");
-       fprintf(stderr, "EXPORTAR : Menor Clave = %d\n", k.i_clave);
        while (k.i_clave != -1) {
                fact = fact_buscar(lst_facturas, k.i_clave, &id, &id1);
-               fprintf(stderr, "Lei factura numero %d y apunta a %p\n", k.i_clave, fact);
                if (fact != NULL) {
                        fprintf(fp, "\t<FACTURA NroFac=\"%08d\" ", fact->numero);
                        fprintf(fp, "FechaEmisiĆ³n=\"%s\" ", fact->emision);
@@ -1000,7 +997,6 @@ int fact_exportar_xml(const char *filename)
                        free(fact);
                }
                k = idx->obtener_sig_clave(idx, k);
-               fprintf(stderr, "XXX Siguiente = %d\n", k.i_clave);
        }
        fprintf(fp, "\t</FACTURAS>\n");
 
@@ -1039,6 +1035,7 @@ void fact_consultas_codigos(char *s)
        WINDOW *win, *win1;
        INDICE *idx;
        CLAVE k, menor, mayor;
+       int editar;
 
        idx = lst_facturas->fp->indices;
 
@@ -1096,9 +1093,15 @@ void fact_consultas_codigos(char *s)
        }
 
        curs_set(0);
-       lista_ejecutar(lista);
+       editar = lista_ejecutar(lista);
        curs_set(1);
        
+       if (editar != -1) {
+               char cc[20];
+               sprintf(cc, "%d", editar);
+               fact_modificar(cc);
+       }
+       
        wrefresh(win1);
        wrefresh(win);
        werase(win1);
@@ -1129,6 +1132,7 @@ void fact_consultas_fechas(char *s)
        INDICE *idx;
        CLAVE k_menor, k_mayor;
        int todo=0;
+       int editar;
 
        win = newwin(LINES-4, COLS-2, 2, 1);
        win1 = derwin(win, LINES-6, COLS-4, 1, 1);
@@ -1216,8 +1220,6 @@ void fact_consultas_fechas(char *s)
                }
                fclose(fp);
                /* Mando a ordenar */
-               /* XXX TODO XXX TODO XXX */
-               /* ORDENAR */
                extsort("tmp_ord.xxx", 5*sizeof(t_OrdExt_Data), sizeof(t_OrdExt_Data), comparar_externo);
        }
        /* Creo la lista donde mostrar la consulta*/
@@ -1250,7 +1252,6 @@ void fact_consultas_fechas(char *s)
                                        free(leo);
                                }
                                if (strcmp(estado, fact.estado) == 0) {
-                                       fprintf(stderr, "Agrego factura num=%d con %d items\n", fact.numero, fact.cant_items);
                                        lista_agregar_fila_ordenada(lista,
                                                fact.numero,
                                                fact.emision,
@@ -1267,10 +1268,17 @@ void fact_consultas_fechas(char *s)
        } else {
                /* Cargo la lista a partir del archivo ordenado externamente */
                FILE *fp;
+               int j;
+               char st[3];
                t_OrdExt_Data ord;
+               
+               j =( strcmp(estado, "Todos") == 0);
                fp = fopen("tmp_ord.xxx", "r");
+
+               /* si j == 1 tengo que paginar por estado */
+               fread(&ord, sizeof(t_OrdExt_Data), 1, fp);
+               strcpy(st, ord.estado);
                while (!feof(fp)) {
-                       if (fread(&ord, sizeof(t_OrdExt_Data), 1, fp) != 1) continue;
                        lista_agregar_fila(lista,
                                ord.numero,
                                ord.emision,
@@ -1278,11 +1286,34 @@ void fact_consultas_fechas(char *s)
                                get_forma_pago(ord.fp),
                                ord.importe
                        );
+                       strcpy(st, ord.estado);
+                       
+                       fread(&ord, sizeof(t_OrdExt_Data), 1, fp);
+                       /* Si el estado cambio y j == 1 */
+                       if ((strcmp(st, ord.estado) != 0) && (j == 1)) {
+                               /* Hago la pausa para mostrar lo que hay */
+                               editar = lista_ejecutar(lista);
+                               if (editar != -1) {
+                                       char cc[20];
+                                       sprintf(cc, "%d", editar);
+                                       fact_modificar(cc);
+                               }
+                               /* bue, ya miraron, ahora limpio y sigo con el resto */
+                               lista_clear(lista);
+                       }
                }
+
+               /* Elimino el archivo temporal */
+               unlink("tmp_ord.xxx");
        }
        curs_set(0);
-       lista_ejecutar(lista);
+       editar = lista_ejecutar(lista);
        curs_set(1);
+       if (editar != -1) {
+               char cc[20];
+               sprintf(cc, "%d", editar);
+               fact_modificar(cc);
+       }
        wrefresh(win1);
        wrefresh(win);
        werase(win1);
@@ -1303,6 +1334,7 @@ void fact_consultas_varias(char *nombre_indice, char *titulo)
        CLAVE k;
        EMUFS *fs;
        EMUFS_REG_SIZE size;
+       int editar;
 
        fs = lst_facturas->fp;
 
@@ -1345,11 +1377,11 @@ void fact_consultas_varias(char *nombre_indice, char *titulo)
                if (tmp != NULL) {
                        procesar_leer_factura(&factura, tmp, size, lst_facturas);
                        lista_agregar_fila(lista,
-                                                       factura.numero,
-                                                       factura.emision,
-                                                       get_estado(factura.estado),
-                                                       get_forma_pago(factura.fp)
-                                       );
+                               factura.numero,
+                               factura.emision,
+                               get_estado(factura.estado),
+                               get_forma_pago(factura.fp)
+                       );
                        free(tmp);
                } else {
                        PERR("NO SE PUDO RECUPERAR EL REGISTRO DE DATOS");
@@ -1357,8 +1389,13 @@ void fact_consultas_varias(char *nombre_indice, char *titulo)
        }
 
        curs_set(0);
-       lista_ejecutar(lista);
+       editar = lista_ejecutar(lista);
        curs_set(1);
+       if (editar != -1) {
+               char cc[20];
+               sprintf(cc, "%d", editar);
+               fact_modificar(cc);
+       }
        
        wrefresh(win1);
        wrefresh(win);
@@ -1438,10 +1475,8 @@ void mostrar_fact(WINDOW *win, CLAVE k, char *s, INDICE *idx)
                        free(fact);
                        fact = NULL;
                } else {
-                       fprintf(stderr, "Tengo %d datos\n", cant);
                        k.i_clave = datos[0].id;
                        PERR("Leo el primer dato");
-                       fprintf(stderr, "ID = %ld en bloque %ld\n", datos[0].id, datos[0].bloque);
                        error = 1;
                        tmp = lst_facturas->fp->leer_registro(lst_facturas->fp, k, &size, &error);
                        if (tmp == NULL) {