X-Git-Url: https://git.llucax.com/z.facultad/75.06/emufs.git/blobdiff_plain/1925b681a761aad6712a54c86689ffb0f0238830..a559d9c266c7120220093b1e918a2473a62eccb0:/emufs_gui/facturas.c?ds=inline diff --git a/emufs_gui/facturas.c b/emufs_gui/facturas.c index f16e16f..bc1bd73 100644 --- a/emufs_gui/facturas.c +++ b/emufs_gui/facturas.c @@ -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, "\n"); fprintf(fp, "\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, "\tnumero); 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\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,9 +1220,7 @@ 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); + extsort("tmp_ord.xxx", 4096, sizeof(t_OrdExt_Data), comparar_externo); } /* Creo la lista donde mostrar la consulta*/ /* Muestro solo info relevante */ @@ -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) {