Estaba en medio de cosas y movi archivos
Estoy avanzando a la venta, pero se me ocurrio mover unos archivos porque.... puedo? Me molestaba tanta cosa en el index XD aparte mejore el migrate.sh y cree un dump.sh para mas comodidad de exportar los cambios a la base de datos
This commit is contained in:
99
notas/COSAS_POR_ARREGLAR.md
Normal file
99
notas/COSAS_POR_ARREGLAR.md
Normal file
@@ -0,0 +1,99 @@
|
||||
#Cosas que quiero arreglar, pero no podre :c
|
||||
|
||||
## Validaciones
|
||||
|
||||
Las validaciones encuentro que me quedaron bien, sin embargo creo que pueden ser mucho mejor,
|
||||
el problema es que no encontre ninguna libreria que no trabaje con web o con objetos ya creados.
|
||||
|
||||
Mi idea de una buena libreria de validaciones es algo similar a la que utiliza laravel,
|
||||
se pasa un objeto y una serie de reglas a aplicar a ese objeto, si alguna de las reglas falla, la
|
||||
validacion completa fallara.
|
||||
|
||||
Estuve jugando un poco con la idea de hacer algo similar, pero no logre hacer que las reglas fueran
|
||||
universales, para poder arreglar esto puede que me hubiese tomado mucho tiempo asi que decidi volver a
|
||||
como estan en este momento.
|
||||
|
||||
Basicamente mi idea de una validacion tendria que tener un codigo como este:
|
||||
|
||||
```
|
||||
Validation validacion = new Validation(
|
||||
object.getA() => List.of(Rule.notNull(), Rule.string(), Rule.minLength(5)),
|
||||
object.getB() => List.of(Rule.date)
|
||||
).validate();
|
||||
|
||||
if(validation.hasError()) {
|
||||
validation.showErrorDialog();
|
||||
return;
|
||||
}
|
||||
```
|
||||
|
||||
Sin embargo no sabria como hacer un map al momento de inicializar un objeto (porque el => no existe en java),
|
||||
podria crearlo y poblarlo antes, pero no quiero escribir tanto codigo y siento que quedaria sucio
|
||||
dentro de un controlador.
|
||||
|
||||
# BaseTableModel
|
||||
|
||||
Me gusta esa parte de mi codigo, me deja bastante facil el crear un tabla bonita a la que solo le paso
|
||||
un objeto y con las reglas que le asigno al inicializar los muestra correctamente, me ahorro el estar
|
||||
transformando a strings en el controlador y cosas asi.
|
||||
|
||||
Sin embargo creo que podria ser mas limpio
|
||||
|
||||
```
|
||||
this.model = new BaseTableModel<>(
|
||||
new String[]{"Distribuidor", "Nº Libros", "Estado", "Fecha Emision"},
|
||||
(row, rowIndex, colIndex) -> {
|
||||
switch (colIndex) {
|
||||
case 0:
|
||||
return row.get(rowIndex).getDistribuidor().getRut();
|
||||
case 1:
|
||||
return row.get(rowIndex).getLibros().size();
|
||||
case 2:
|
||||
return row.get(rowIndex).getEstado();
|
||||
case 3:
|
||||
return row.get(rowIndex).getInsertedAt();
|
||||
default:
|
||||
return null;
|
||||
}
|
||||
}
|
||||
);
|
||||
```
|
||||
|
||||
Como se ve, cada vez tengo que obtener el objeto y luego obtener la parte que quiero mostrar.
|
||||
Seguramente es facil dejarlo mas bonito, pero tendria que cambiar todas las vistas que usan una tabla,
|
||||
me tomaria un rato quizas un poco largo y no quiero perderlo.
|
||||
|
||||
## LaunchController
|
||||
|
||||
Me gusta como queda, pero siento que igual se podria hacer algo mejor.
|
||||
|
||||
Seria perfecto que cada vista se pudiera autoinsertar de alguna forma en ese controlador, en vez de estar
|
||||
llamando a cada una y creandola manualmente
|
||||
|
||||
Quizas puede hacerse de alguna forma con funciones estaticas? o alguna especie de singleton? como todos
|
||||
los controladores existen solo una vez dentro de la aplicacion quizas es viable
|
||||
Cosa que se pueda hacer lo siguiente
|
||||
|
||||
```
|
||||
class Controller {
|
||||
private View view;
|
||||
|
||||
// Constructor estatico
|
||||
{
|
||||
LaunchController.add(new Controller(new View()));
|
||||
}
|
||||
|
||||
public Controller(View view) {
|
||||
this.view = view;
|
||||
}
|
||||
|
||||
public void goToView2() {
|
||||
LaunchController.show(PanelName.View2);
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
No estoy seguro si seria viable, pero pareciera ser una buena solucion, ahora no la puedo implementar porque
|
||||
significaria crear toda la arquitectura de la app desde cero.
|
||||
|
||||
No hay tiempo :c
|
||||
BIN
notas/biblioteca.vpp
Normal file
BIN
notas/biblioteca.vpp
Normal file
Binary file not shown.
133
notas/info.md
Normal file
133
notas/info.md
Normal file
@@ -0,0 +1,133 @@
|
||||
#Libros
|
||||
## Datos
|
||||
- Número de serie
|
||||
- ISBN
|
||||
- Título
|
||||
- Número de páginas
|
||||
- Precio de referencia
|
||||
- Año de publicación
|
||||
- Idiomas
|
||||
- Autores
|
||||
- Categorías
|
||||
- Editorial.
|
||||
|
||||
## Información
|
||||
- Un libro podrá tener el mismo ISBN que otro libro, pero distinto número de serie.
|
||||
- Un libro puede ser escrito por uno o más autores
|
||||
- Un libro puede tener una o más categorías
|
||||
- Un libro puede tener uno o más idiomas
|
||||
- Un libro debe tener asociada solo una editorial.
|
||||
- El libro mantendrá un estado en la base de datos: vendido, arrendado o disponible.
|
||||
- De los autores solo se necesita conocer su nombre, apellido paterno y apellido materno.
|
||||
- De la editorial solo se debe almacenar el nombre.
|
||||
|
||||
#Distribuidores:
|
||||
|
||||
## Datos
|
||||
- Rut
|
||||
- nombre de empresa
|
||||
- dirección
|
||||
- teléfono
|
||||
- año desde que vende libros a la biblioteca.
|
||||
|
||||
|
||||
|
||||
# Clientes:
|
||||
|
||||
## Datos
|
||||
- Rut
|
||||
- Nombre
|
||||
- Apellido paterno
|
||||
- Apellido materno
|
||||
- Direcciones
|
||||
- Teléfonos
|
||||
- Correos electrónicos
|
||||
- Fecha nacimiento.
|
||||
|
||||
## Información
|
||||
- Un cliente puede tener uno o mas direcciones
|
||||
- Un cliente puede tener uno o mas teléfonos
|
||||
- Un cliente puede tener uno o mas correos
|
||||
|
||||
# Trabajadores
|
||||
|
||||
## Datos
|
||||
- Rut
|
||||
- Nombre
|
||||
- Apellido paterno
|
||||
- Apellido materno
|
||||
- Direcciones
|
||||
- Teléfonos
|
||||
- Correos electrónicos
|
||||
- Fecha de contrato laboral.
|
||||
|
||||
## Información
|
||||
- Un trabajador puede tener una o más direcciones
|
||||
- Un trabajador puede tener uno o más teléfonos
|
||||
- Un trabajador puede tener uno o más correos
|
||||
|
||||
|
||||
|
||||
# Compras
|
||||
|
||||
## Datos
|
||||
- Libros comprados
|
||||
- cliente involucrado
|
||||
- Factura.
|
||||
|
||||
# Factura
|
||||
|
||||
## Datos
|
||||
- Folio
|
||||
- Precio neto
|
||||
- Precio con IVA
|
||||
- Costo IVA
|
||||
- Fecha de compra
|
||||
- Hora de compra
|
||||
- Distribuidor involucrado
|
||||
- Método de pago.
|
||||
|
||||
|
||||
# Ventas
|
||||
|
||||
## Datos
|
||||
- Libros vendidos
|
||||
- Cliente involucrado
|
||||
- Trabajador involucrado
|
||||
- Boleta.
|
||||
|
||||
|
||||
# Boleta
|
||||
|
||||
## Datos
|
||||
- Folio
|
||||
- Precio neto
|
||||
- Precio con IVA
|
||||
- Costo IVA
|
||||
- Fecha de venta
|
||||
- Hora de venta
|
||||
- Cliente involucrado
|
||||
- Trabajador involucrado
|
||||
- Método de pago.
|
||||
|
||||
#Arriendos:
|
||||
- Libros arrendados
|
||||
- Costo total
|
||||
- Fecha de arriendo
|
||||
- Fecha de devolución estimada
|
||||
- Fecha de entrega real
|
||||
- Días de retraso
|
||||
- Multa
|
||||
- Costo de arriendo
|
||||
- Cliente involucrado
|
||||
- Trabajador involucrado.
|
||||
|
||||
|
||||
|
||||
#OH NO, MAS REQUERIMIENTOS
|
||||
|
||||
Para realizar una compra se debe hacer el siguiente flujo
|
||||
1. Crear orden de compra hacia un proveedor
|
||||
2. Cambiar el estado de orden de compra de en curso a terminado
|
||||
3. Registrar la factura enviada por el proveedor
|
||||
4. Asignar numeros de serie a los libros entregados
|
||||
Reference in New Issue
Block a user