diff --git a/DiagramaConRepos.jpg b/DiagramaConRepos.jpg index 19229d1..5b7eb90 100644 Binary files a/DiagramaConRepos.jpg and b/DiagramaConRepos.jpg differ diff --git a/DiagramaDeClases.org b/DiagramaDeClases.org index a4d7f0a..1e384fd 100644 --- a/DiagramaDeClases.org +++ b/DiagramaDeClases.org @@ -50,7 +50,7 @@ class RepositorioPresupuestos { + Eliminar(Presupuesto): bool } -class RepositorioProductos { +class RepositorioProductos { + Añadir(T): bool + Modificar(T): bool + Eliminar(T): bool @@ -70,31 +70,36 @@ interface Repositorio { + Eliminar(T): bool } -RepositorioProductos "1" *--> "0..*" ProductoNoPercedero -RepositorioProductos "1" *--> "0..*" ProductoPercedero +RepositorioProductos "1" *--> "0..*" Producto class ProductoNoPercedero { + FechaElaboracion: DateTime -+ FechaCaducacion: DateTime } class ProductoPercedero { ++ FechaConsumoPreferente: DateTime + FechaVencimiento: DateTime } -ProductoBase <|-- ProductoNoPercedero -ProductoBase <|-- ProductoPercedero +Producto <|-- ProductoNoPercedero +Producto <|-- ProductoPercedero -class ProductoBase { +class Producto { + id: int + Nombre: string + Precio: double - PresupuestosStock: List? +- Lotes: List? + Habilitado: bool + MostrarPresupuestos(): ReadOnlyCollection + AñadirPresupuesto(Presupuesto): bool + EliminarPresupuesto(Presupuesto): bool + ++ MostrarLotesDeProductos(): ReadOnlyCollection ++ AñadirLotesStock(): bool ++ EliminarLotesStock(): bool ++ MostrarStockRemanente(): long } class Presupuesto { @@ -107,8 +112,7 @@ class Presupuesto { RepositorioPresupuestos "1" *-- "0..*" Presupuesto RepositorioProveedores "1" *-- "0..*" Proveedor -Presupuesto "0..*" o-- "1" ProductoNoPercedero -Presupuesto "0..*" o-- "1" ProductoPercedero +Presupuesto "0..*" <--* "1" Producto Proveedor "1" *-- "0..*" Presupuesto class Proveedor { @@ -127,7 +131,15 @@ class Venta { + EliminarDetalle(Detalle): void } -class Detalle { +Lote <-- Producto + +class Lote { ++ id: int ++ Producto: Producto ++ CantidadDeProductos: long +} + +class Detalle { + id: int + Cantidad: int + PrecioUnitario: double @@ -154,8 +166,7 @@ Cliente <-- Factura Factura --> Venta Venta "1" *-- "1..*" Detalle -Detalle --> ProductoNoPercedero -Detalle --> ProductoPercedero +Detalle --> Producto @enduml #+end_src @@ -170,26 +181,32 @@ skinparam groupInheritance 2 class ProductoNoPercedero { + FechaElaboracion: DateTime -+ FechaCaducacion: DateTime } class ProductoPercedero { ++ FechaConsumoPreferente: DateTime + FechaVencimiento: DateTime } -ProductoBase <|-- ProductoNoPercedero -ProductoBase <|-- ProductoPercedero +Producto <|-- ProductoNoPercedero +Producto <|-- ProductoPercedero -class ProductoBase { +class Producto { + id: int + Nombre: string + Precio: double - PresupuestosStock: List? +- Lotes: List? + Habilitado: bool + MostrarPresupuestos(): ReadOnlyCollection + AñadirPresupuesto(Presupuesto): bool + EliminarPresupuesto(Presupuesto): bool + ++ MostrarLotesDeProductos(): ReadOnlyCollection ++ AñadirLotesStock(): bool ++ EliminarLotesStock(): bool ++ MostrarStockRemanente(): long } class Presupuesto { @@ -199,9 +216,8 @@ class Presupuesto { + Cantidad: int } -Presupuesto "0..*" o-- "1" ProductoNoPercedero -Presupuesto "0..*" o-- "1" ProductoPercedero -Proveedor "1" *-- "0..*" Presupuesto +Presupuesto "0..*" <--* "1" Producto +Proveedor "1" *--> "1..*" Presupuesto class Proveedor { + id: int @@ -219,7 +235,7 @@ class Venta { + EliminarDetalle(Detalle): void } -class Detalle { +class Detalle { + id: int + Cantidad: int + PrecioUnitario: double @@ -246,8 +262,14 @@ Cliente <-- Factura Factura --> Venta Venta "1" *-- "1..*" Detalle -Detalle --> ProductoNoPercedero -Detalle --> ProductoPercedero +Detalle --> Producto + +Producto --> Lote +class Lote { ++ id: int ++ Producto: Producto ++ CantidadDeProductos: long +} @enduml diff --git a/DiagramaSinRepos.jpg b/DiagramaSinRepos.jpg index a1f42b4..a69f6c7 100644 Binary files a/DiagramaSinRepos.jpg and b/DiagramaSinRepos.jpg differ diff --git a/final.org b/final.org index 74aff22..6ff09bd 100644 --- a/final.org +++ b/final.org @@ -17,12 +17,10 @@ y esten en busqueda de =Digitalizar= o =Automatizar= dichas secciones de su nego La dada de alta de un producto se dividirá sobre si un producto es percedero o no requerirá de que se ingresen con los siguientes datos para registrar un producto: #+begin_src plantuml :file ProductoIngreso.svg @startuml -class ProductoBase { -+ id: int +class Producto { + Nombre: string + Precio: double + Habilitado: bool - } @enduml #+end_src @@ -35,11 +33,12 @@ Además de en caso de ser percedero se requerirá una fecha de caducacidad: #+begin_src plantuml :file ProductoPercedero.svg @startuml class ProductoPercedero { ++ FechaConsumoPreferente: DateTime + FechaVencimiento: DateTime } -class ProductoBase {} -ProductoBase <|-- ProductoPercedero +class Producto {} +Producto <|-- ProductoPercedero @enduml #+end_src @@ -52,11 +51,10 @@ Mientras que uno *no* percedero necesita fecha de Elaboracion también: @startuml class ProductoNoPercedero { + FechaElaboracion: DateTime -+ FechaCaducacion: DateTime } -class ProductoBase {} -ProductoBase <|-- ProductoNoPercedero +class Producto {} +Producto <|-- ProductoNoPercedero @enduml #+end_src diff --git a/final.pdf b/final.pdf index c8b5998..aec3fe4 100644 Binary files a/final.pdf and b/final.pdf differ