Resulta que al haber generado un metodo equals en el TipoEgreso y
TipoIngreso, tambien debi generarlos en los Wrapper que cree, a saber
porque ocurre, pero es necesario, si no no deja seleccionar,
probablemente vas por el hecho de que cree que son iguales aunque
realmente no lo son, QUE SE SHO!
Se debio a una confusion con las clases,originalmente pensaba contener
los totales en la clase LibroDeVentas pero como prefia mantener ese dato
como una formula en excel lo obvie, despues al momento de crear el
importe a excel, vi el metodo get total y se me olvido por completo que
debia ser una formula.
Cosas pasaron, pero ahora esta bien
El usuario decia que era molesto tener que seleccionar el archivo donde
guardar los informes, y luego ser preguntado si queria sobreescribirlo,
para que al final le preguntara si queria abrirlo.
Para solucionarlo se eliminaron todos esos pasos y ahora el archivo es
guardado en un archivo temporal del sistema, es abierto automaticamente
y luego es eliminado al cerrar el programa.
Ademas los metodos que lo utilizaban para buscar en la base de datos
ahora comprueban contra TipoEgreso.EMPTY para evitar buscar cuando se
para un TipoEgreso.EMPTY
No me agradaba tener ese metodo para solo 3 funciones que lo usaban, y
de todas formas, estas funciones necesitaban los datos de manera
distinta por lo que no era tan util en realidad
Para lograrlo se realizo el mismo procedimiento que con el informe de
libro de ventas
Primero que nada se elmino el objeto de InformeEgresosContent que se
tenia porque realmente no aportaba nada, era basicamente lo mismo que el
objeto egresos con un campo de fecha añadido y creo que un campo menos.
Por lo que se paso a utilizar el objeto de Egresos directamente.
Debido a lo anterior no era necesario tener una query especial para
juntar los datos, ya que solo eran los egresos de todas las cajas de un
tipo en especifico, por lo que solo se hizo una query nueva en el
EgresoDAO en el que se satisfacia esta necesidad.
Luego fue solo hacer compatible el InformeEgresosToExcel y listo!
Primeramente, se tenia por objetivo reescribir el informe para que este
fuera mas claro y para lograrlo se penso en que en vez de realizar 2
querys grandes en las que se tomaban todos los datos necesarios y se
mapeaban un objeto el cual se añadia a un array, se realizaran
multiples querys separadas, en las que se irian obteniendo los datos
individualmente y sean juntados en un objeto.
Para esto se debio reescribir parte de SQLiteIngresoDAO, por una parte,
para añadir las querys que obtenian los numeros de boletas y de Z en una
caja para un tipo de ingreso en ademas de la query para obtener el total de
ingresos por un tipo de ingreso en un mes.
Junto con esto, al toparme con un bug, reescribi el como se realizaban
las querys en todo el objeto DAO, dado a que creia que se debia a un
problema donde no se estaban cerrando bien los ResultSets y los
PreparedStatement, aunque al final no fue eso y era simplemente el que
no habia un resultado en la query que se habia realizado.
A partir de aca no sabria bien como describir lo que se realizo, pero se
puede resumir en que encontre redundante el tener 2 paquetes de informe
y un objeto DAO para generar el informe cuando realmente no lo era,
siendo mas un "builder" creo .w.
Por lo que separe todo eso y lo deje en 3 objetos, el LibroDeVentas, el
cual contiene la instancia de un dia de informe, el InformLibroDeVentas,
el cual es un wraper para un hashmap que contiene el libro de ventas y
ademas tiene el metodo que genera el libro, y finalmente el
InformeLibroDeVentasToExcel, el cual pasa el informe a un archivo excel
para la lectura del usuario final.
Finalmente separe el que se guardara el informe automaticamente al
generarlo. para ello cree un objeto aparte, el cual tendra metodos
estaticos para todos los objetos que tenga que guardar eventulamente,
por ahora como solo necesito guardar un Workbook, eso es lo que guarda.
Creo que eso seria todo :3