Daniel Cortes 0a98bee777 Se reescribio el informe de ventas mensual
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
2019-03-06 01:22:12 -03:00
2019-01-19 19:54:16 -03:00

Programa de caja (WIP)

Que es?

Es un pequeño programa pensado para realizar el conteo de dinero en la caja de nuestro restaurant familiar :3 Ademas de tener la capacidad de generar informes en xls.

Como utilizarlo?

Para poder hacer build del programa es necesario importarlo a IntelliJ y hacer build del artifact Programa Caja, por ello esta incluida la carpeta .idea en el repositorio. IntelliJ deberia hacerse cargo de las dependencias del projecto (intente utilizar maven sinceramente pero no funciono muy bien al hacer una build junto desde el IDE).

Luego de hacer la build, en la carpeta dist se encontrara el archivo caja.jar el cual es el ejecutable, junto al el se encuentra el archivo properties que ya esta disponible en el repositorio, en este se puede seleccionar el look and feel que tendra el programa y el sistema de base de datos que se utilizara, por ahora solo tiene soporte para mysql y sqlite, siendo sqlite el que realmente funcionara ya que aun no termino de portar las querys para mysql.

La base de datos actualmente deberia crearse por si misma, los scripts que se utilizan son los que estan en la carpeta database y estos son comprimidos en un zip el cual se guarda en la carpeta data bajo el nombre version_scripts, este es el archivo que el programa buscara para descomprimir y ejecutar los scripts cuando encuentre que no existe base de datos, el objetivo de esto es que la base de datos sea facilmente actualizable agregando un script sql el cual sera ejecutado para actualizar de version. Deberia usar un orm pero no e encontrado uno que realmente me venga bien, tomando en cuenta que estoy usando sqlite y no hay mucho soporte para el en los orm para java.

Screenshots!

Pantalla de ingresos

ingresos

Pantalla de egresos

egresos

Pantalla de arqueo

arqueo

Libro de ventas

libro_de_ventas

Informe de egresos

informe_egreso

Features?

  • Calcula total de ingresos y total de egresos
  • Generacion de informes, en estos momentos genera un informe de libro mensual y uno de egresos.
  • Pueden agregarse distintos tipos de ingresos y egresos facilmente (Aunque los informes deben ser modificados para agregar esta informacion en ellos)
  • Realiza los calculos del arqueo de la caja, comprobando cuanta diferencia existe entre los lo que se a rendido y lo que se debe rendir.
  • Se pueden realizar operaciones matematicas en los campos numericos, como son los campos de valor, efectivo y documentos.
  • Borrador con el que se puede separar el fondo del deposito, se debe indicar el deposito cada vez que se abra, pero ahi esta :3

TODO

  • Informe de libro mensual.
  • Informe de egresos.
  • Alguna especie de borrador para contar el dinero y separar el fondo del deposito antes de ingresarlo en la ventana de arqueo
  • Migrar a un ORM para mejor soporte de base de datos y mayor velocidad (Mi codigo de comunicacion con base de datos no es el mejor).
Description
Primera version de lo que ahora es Zenithar, en el que empeze todo el codigo de nuevo porque no estaba contento en como estaba quedando Quizas ese proyecto lo hago open source algun dia, pero por ahora nop
Readme 51 MiB
Languages
Java 100%