diff --git a/DiagramaConRepos.jpg b/DiagramaConRepos.jpg index 5b7eb90..0782017 100644 Binary files a/DiagramaConRepos.jpg and b/DiagramaConRepos.jpg differ diff --git a/DiagramaDeClases.org b/DiagramaDeClases.org index 1e384fd..5393832 100644 --- a/DiagramaDeClases.org +++ b/DiagramaDeClases.org @@ -6,6 +6,14 @@ @startuml skinparam groupInheritance 2 +class RepositorioLotes { ++ Añadir(detalle): bool ++ Modificar(detalle): bool ++ Eliminar(detalle): bool +} + +RepositorioLotes "1" *-- "0..*" Lote + class RepositorioDetalles { + Añadir(detalle): bool + Modificar(detalle): bool @@ -57,6 +65,7 @@ class RepositorioProductos { } RepositorioProductos ..|> Repositorio: Implementa +RepositorioLotes ..|> Repositorio: Implementa RepositorioPresupuestos ..|> Repositorio: Implementa RepositorioFacturas ..|> Repositorio: Implementa RepositorioClientes ..|> Repositorio: Implementa @@ -72,13 +81,22 @@ interface Repositorio { RepositorioProductos "1" *--> "0..*" Producto + +enum EnvaseTipo { +Plastico, +Enlatado, +Cartón, +} + +ProductoNoPercedero --> EnvaseTipo + class ProductoNoPercedero { -+ FechaElaboracion: DateTime ++ TipoDeEnvase: EnvaseTipo } class ProductoPercedero { -+ FechaConsumoPreferente: DateTime -+ FechaVencimiento: DateTime ++ MesesHastaConsumoPreferente: int ++ MesesHastaVencimiento: int } Producto <|-- ProductoNoPercedero @@ -113,7 +131,7 @@ RepositorioPresupuestos "1" *-- "0..*" Presupuesto RepositorioProveedores "1" *-- "0..*" Proveedor Presupuesto "0..*" <--* "1" Producto -Proveedor "1" *-- "0..*" Presupuesto +Proveedor <-- Presupuesto class Proveedor { + id: int @@ -131,12 +149,13 @@ class Venta { + EliminarDetalle(Detalle): void } -Lote <-- Producto +Lote -- Producto class Lote { + id: int + Producto: Producto + CantidadDeProductos: long ++ FechaVencimiento: DateTime } class Detalle { @@ -180,12 +199,12 @@ Detalle --> Producto skinparam groupInheritance 2 class ProductoNoPercedero { -+ FechaElaboracion: DateTime ++ TipoDeEnvase: EnvaseTipo } class ProductoPercedero { -+ FechaConsumoPreferente: DateTime -+ FechaVencimiento: DateTime ++ MesesHastaConsumoPreferente: int ++ MesesHastaVencimiento: int } Producto <|-- ProductoNoPercedero @@ -214,15 +233,17 @@ class Presupuesto { + Proveedor: Proveedor + Monto: int + Cantidad: int ++ habilitado: bool } Presupuesto "0..*" <--* "1" Producto -Proveedor "1" *--> "1..*" Presupuesto +Proveedor <-- Presupuesto class Proveedor { + id: int + Nombre: string + RazónSocial: string ++ habilitado: bool } class Venta { @@ -264,13 +285,21 @@ Venta "1" *-- "1..*" Detalle Detalle --> Producto -Producto --> Lote +Producto -- Lote class Lote { + id: int + Producto: Producto + CantidadDeProductos: long ++ habilitado: bool } +enum EnvaseTipo { +Plastico, +Enlatado, +Cartón, +} + +ProductoNoPercedero --> EnvaseTipo @enduml #+end_src diff --git a/DiagramaSinRepos.jpg b/DiagramaSinRepos.jpg index a69f6c7..816d5f2 100644 Binary files a/DiagramaSinRepos.jpg and b/DiagramaSinRepos.jpg differ diff --git a/final.org b/final.org index 6ff09bd..f3cb191 100644 --- a/final.org +++ b/final.org @@ -3,7 +3,7 @@ #+options: date:nil #+LATEX_HEADER: \usepackage{svg} -* Sistema de Gestion de Stock y Proveedores para una Distribuidora Mayorista +* Sistema de Gestion de Stock para una Distribuidora Mayorista El target de nuestro sistema son Mayoristas que aún no tengan un sistema para: - Gestionar el stock de mercaderia restante, (Ventas y Compras). - Registro de Productos en venta, sus respectivos proveedores, Y los presupuestos que nos dan estos para reponer nuestro stock. @@ -25,16 +25,16 @@ class Producto { @enduml #+end_src -#+ATTR_LATEX: :width 8cm +#+ATTR_LATEX: :width 4cm #+RESULTS: [[file:ProductoIngreso.svg]] -Además de en caso de ser percedero se requerirá una fecha de caducacidad: +Además de en caso de ser percedero se requerirá la cantidad de meses los cuales es recomendable que se consuma el producto y la cantidad de meses hasta que el producto llegue a su fecha de vencimiento #+begin_src plantuml :file ProductoPercedero.svg @startuml class ProductoPercedero { -+ FechaConsumoPreferente: DateTime -+ FechaVencimiento: DateTime ++ MesesHastaConsumoPreferente: int ++ MesesHastaVencimiento: int } class Producto {} @@ -46,23 +46,23 @@ Producto <|-- ProductoPercedero #+RESULTS: [[file:ProductoPercedero.svg]] -Mientras que uno *no* percedero necesita fecha de Elaboracion también: +Mientras que uno *no* percedero necesita tener especificado cual es el tipo de envase que utiliza #+begin_src plantuml :file ProductoNoPercedero.svg @startuml class ProductoNoPercedero { -+ FechaElaboracion: DateTime ++ TipoDeEnvase } + class Producto {} Producto <|-- ProductoNoPercedero @enduml #+end_src -#+ATTR_LATEX: :width 8cm +#+ATTR_LATEX: :width 6cm #+RESULTS: [[file:ProductoNoPercedero.svg]] -NOTA: no es necesario cargar los presupuestos que nos hacen los proveedores por renovar el stock de un producto pero es recomendado para que sea más facil calcular los gastos de esa operacion. *** Registro de proveedores Los proveedores se pueden cargar en el sistema, y cada proveedor nos da un presupuesto para renovar el stock de un producto. @@ -89,6 +89,7 @@ class Presupuesto { + Proveedor: Proveedor + Monto: int + Cantidad: int ++ activo: bool } #+end_src @@ -96,7 +97,7 @@ class Presupuesto { #+ATTR_LATEX: :width 5cm #+RESULTS: [[file:Presupuesto.svg]] -*No* permitimos que sean modificados una vez cargados. +*No* permitimos que sean modificados una vez cargados. sino que el presupuesto debe ser deshabilitado y en su lugar se debe de registrar otro más para mantener la integridad de los presupuestos cargados *** Registro de Clientes Para poder Registrar una Compra por parte de un cliente vamos a necesitar que el cliente en cuestión se registre en el sistema: @@ -131,9 +132,11 @@ Tanto el Nombre, Precio y sus posibles proveedores podrán ser modificados. La Baja de un producto se hace por medio de una baja lógica. *** Control de Stock (Ventas) -Cuando nos llegue que se efectuó una venta, El sistema creará una factura con sus detalles y se deducirá tantos productos del registro en el stock, como los especificados en los detalles de la venta. +Cuando se efectue una venta, El sistema creará una factura con sus detalles y se deducirá tantos productos del registro en el stock, como los especificados en los detalles de la venta. *** Control de Stock (Compra) -Se podrá seleccionar un producto y elejir cual de las diferentes ofertas (Presupuestos) dadas por los proveedores vamos a comprar para reponer nuestro stock. +Se podrá seleccionar un producto y elejir cual de las diferentes ofertas (Presupuestos) dadas por los proveedores vamos a comprar para reponer nuestro +stock. -Una vez confirmada la compra el stock de un producto se incrementará por la cantidad de productos comprados. +Una vez confirmada la compra el stock de un producto se incrementará +por la cantidad de productos comprados y se agregara el lote de la compra para una mejor organizacion de los productos en el programa diff --git a/final.pdf b/final.pdf index aec3fe4..ecf3a7a 100644 Binary files a/final.pdf and b/final.pdf differ