X-Git-Url: https://git.llucax.com/z.facultad/75.06/emufs.git/blobdiff_plain/7fbac7446d65ec8736243187ec181c5ae55b2ac9..925614222efcf0d79b24563577c712ff14e25312:/emufs_gui/facturas.c?ds=inline diff --git a/emufs_gui/facturas.c b/emufs_gui/facturas.c index a49389f..d3d63f4 100644 --- a/emufs_gui/facturas.c +++ b/emufs_gui/facturas.c @@ -416,7 +416,8 @@ void fact_eliminar(char *s) k.i_clave = fact->reg_nota; lst_facturas->fp_texto->borrar_registro(lst_facturas->fp_texto, k); - free(fact->items); + if (fact->items) free(fact->items); + if (fact->nota) free(fact->nota); free(fact); } @@ -432,17 +433,13 @@ void fact_modificar(char *s) char tmp_str[10]; void *entrada; - /* XXX XXX XXX TODO */ - return; - win = newwin(LINES-4, COLS-2, 2, 1); box(win, 0, 0); if (s == NULL) { fact = fact_form_buscar(win, &id, &id_texto); } else { - id = atoi(s); - fact = fact_buscar(lst_facturas, nodo->numero, &id, &id_texto); + fact = fact_buscar(lst_facturas, atoi(s), &id, &id_texto); } if (fact == NULL) { @@ -511,8 +508,11 @@ void fact_modificar(char *s) entrada = procesar_guardar_factura(fact, lst_facturas, &size); if (entrada) { - id = lst_facturas->fp->modificar_registro(lst_facturas->fp, id, entrada, size, &error); - id_texto = lst_facturas->fp_texto->modificar_registro(lst_facturas->fp_texto, id_texto, fact->nota, strlen(fact->nota)+1, &error); + CLAVE k; + k = emufs_indice_generar_clave_desde_valor(lst_facturas->fp->indices, (char *)&fact->numero); + lst_facturas->fp->modificar_registro(lst_facturas->fp, k, entrada, size, &error); + k.i_clave = id_texto; + id_texto = lst_facturas->fp_texto->modificar_registro(lst_facturas->fp_texto, k, fact->nota, strlen(fact->nota)+1, &error); free(entrada); } @@ -947,6 +947,27 @@ int fact_exportar_xml(const char *filename) return 1; } +char *get_estado(char *s) +{ + if (strcmp(s, "PN")==0) return "Pago Normal"; + if (strcmp(s, "CD")==0) return "Credito al dia"; + if (strcmp(s, "CM")==0) return "Credito en mora"; + if (strcmp(s, "SF")==0) return "Cheque sin fondos"; + if (strcmp(s, "PM")==0) return "Pagada con Mora"; + if (strcmp(s, "NC")==0) return "No Cobrada"; + + return s; +} + +char *get_forma_pago(char *s) +{ + if (strcmp(s, "CO") == 0) return "Contado"; + if (strcmp(s, "CR") == 0) return "Credito"; + if (strcmp(s, "CH") == 0) return "Cheque"; + + return s; +} + void fact_consultas_codigos(char *s) { EMUFS_REG_ID dummy; @@ -984,8 +1005,8 @@ void fact_consultas_codigos(char *s) /* Creo las columnas */ lista_agregar_columna(lista, DATO_INT, 0, 8); /* numero */ lista_agregar_columna(lista, DATO_STR, 10, 9); /* emision */ - lista_agregar_columna(lista, DATO_STR, 20, 3); /* estado */ - lista_agregar_columna(lista, DATO_STR, 25, 3); /* fp */ + lista_agregar_columna(lista, DATO_STR, 20, 19); /* estado */ + lista_agregar_columna(lista, DATO_STR, 40, 9); /* fp */ /* Leo los datos desde el archivo */ for(i=desde_codigo; i<=hasta_codigo; i++) { @@ -994,8 +1015,8 @@ void fact_consultas_codigos(char *s) lista_agregar_fila(lista, factura->numero, factura->emision, - factura->estado, - factura->fp + get_estado(factura->estado), + get_forma_pago(factura->fp) ); } } @@ -1054,8 +1075,8 @@ void fact_consultas_varias(char *nombre_indice, char *titulo) /* Creo las columnas */ lista_agregar_columna(lista, DATO_INT, 0, 8); /* numero */ lista_agregar_columna(lista, DATO_STR, 10, 9); /* emision */ - lista_agregar_columna(lista, DATO_STR, 20, 3); /* estado */ - lista_agregar_columna(lista, DATO_STR, 25, 3); /* fp */ + lista_agregar_columna(lista, DATO_STR, 20, 19); /* estado */ + lista_agregar_columna(lista, DATO_STR, 40, 9); /* fp */ /* Leo los datos desde el archivo */ datos = emufs_buscar_registros(fs, nombre_indice, desc, &cant); @@ -1068,8 +1089,8 @@ void fact_consultas_varias(char *nombre_indice, char *titulo) lista_agregar_fila(lista, factura.numero, factura.emision, - factura.estado, - factura.fp + get_estado(factura.estado), + get_forma_pago(factura.fp) ); free(tmp); } else {