actuañizado

This commit is contained in:
2024-01-15 15:12:52 -03:00
parent 95c3695fe8
commit 3e7e098a54
5 changed files with 50 additions and 30 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 187 KiB

After

Width:  |  Height:  |  Size: 193 KiB

View File

@@ -50,7 +50,7 @@ class RepositorioPresupuestos {
+ Eliminar(Presupuesto): bool + Eliminar(Presupuesto): bool
} }
class RepositorioProductos <where T: ProductoBase> { class RepositorioProductos <where T: Producto> {
+ Añadir(T): bool + Añadir(T): bool
+ Modificar(T): bool + Modificar(T): bool
+ Eliminar(T): bool + Eliminar(T): bool
@@ -70,31 +70,36 @@ interface Repositorio<T> {
+ Eliminar(T): bool + Eliminar(T): bool
} }
RepositorioProductos "1" *--> "0..*" ProductoNoPercedero RepositorioProductos "1" *--> "0..*" Producto
RepositorioProductos "1" *--> "0..*" ProductoPercedero
class ProductoNoPercedero { class ProductoNoPercedero {
+ FechaElaboracion: DateTime + FechaElaboracion: DateTime
+ FechaCaducacion: DateTime
} }
class ProductoPercedero { class ProductoPercedero {
+ FechaConsumoPreferente: DateTime
+ FechaVencimiento: DateTime + FechaVencimiento: DateTime
} }
ProductoBase <|-- ProductoNoPercedero Producto <|-- ProductoNoPercedero
ProductoBase <|-- ProductoPercedero Producto <|-- ProductoPercedero
class ProductoBase { class Producto {
+ id: int + id: int
+ Nombre: string + Nombre: string
+ Precio: double + Precio: double
- PresupuestosStock: List<Presupuestos>? - PresupuestosStock: List<Presupuestos>?
- Lotes: List<Lote>?
+ Habilitado: bool + Habilitado: bool
+ MostrarPresupuestos(): ReadOnlyCollection<Presupuesto> + MostrarPresupuestos(): ReadOnlyCollection<Presupuesto>
+ AñadirPresupuesto(Presupuesto): bool + AñadirPresupuesto(Presupuesto): bool
+ EliminarPresupuesto(Presupuesto): bool + EliminarPresupuesto(Presupuesto): bool
+ MostrarLotesDeProductos(): ReadOnlyCollection<Lote>
+ AñadirLotesStock(): bool
+ EliminarLotesStock(): bool
+ MostrarStockRemanente(): long
} }
class Presupuesto { class Presupuesto {
@@ -107,8 +112,7 @@ class Presupuesto {
RepositorioPresupuestos "1" *-- "0..*" Presupuesto RepositorioPresupuestos "1" *-- "0..*" Presupuesto
RepositorioProveedores "1" *-- "0..*" Proveedor RepositorioProveedores "1" *-- "0..*" Proveedor
Presupuesto "0..*" o-- "1" ProductoNoPercedero Presupuesto "0..*" <--* "1" Producto
Presupuesto "0..*" o-- "1" ProductoPercedero
Proveedor "1" *-- "0..*" Presupuesto Proveedor "1" *-- "0..*" Presupuesto
class Proveedor { class Proveedor {
@@ -127,7 +131,15 @@ class Venta {
+ EliminarDetalle(Detalle): void + EliminarDetalle(Detalle): void
} }
class Detalle <where T: ProductoBase>{ Lote <-- Producto
class Lote {
+ id: int
+ Producto: Producto
+ CantidadDeProductos: long
}
class Detalle <where T: Producto>{
+ id: int + id: int
+ Cantidad: int + Cantidad: int
+ PrecioUnitario: double + PrecioUnitario: double
@@ -154,8 +166,7 @@ Cliente <-- Factura
Factura --> Venta Factura --> Venta
Venta "1" *-- "1..*" Detalle Venta "1" *-- "1..*" Detalle
Detalle --> ProductoNoPercedero Detalle --> Producto
Detalle --> ProductoPercedero
@enduml @enduml
#+end_src #+end_src
@@ -170,26 +181,32 @@ skinparam groupInheritance 2
class ProductoNoPercedero { class ProductoNoPercedero {
+ FechaElaboracion: DateTime + FechaElaboracion: DateTime
+ FechaCaducacion: DateTime
} }
class ProductoPercedero { class ProductoPercedero {
+ FechaConsumoPreferente: DateTime
+ FechaVencimiento: DateTime + FechaVencimiento: DateTime
} }
ProductoBase <|-- ProductoNoPercedero Producto <|-- ProductoNoPercedero
ProductoBase <|-- ProductoPercedero Producto <|-- ProductoPercedero
class ProductoBase { class Producto {
+ id: int + id: int
+ Nombre: string + Nombre: string
+ Precio: double + Precio: double
- PresupuestosStock: List<Presupuestos>? - PresupuestosStock: List<Presupuestos>?
- Lotes: List<Lote>?
+ Habilitado: bool + Habilitado: bool
+ MostrarPresupuestos(): ReadOnlyCollection<Presupuesto> + MostrarPresupuestos(): ReadOnlyCollection<Presupuesto>
+ AñadirPresupuesto(Presupuesto): bool + AñadirPresupuesto(Presupuesto): bool
+ EliminarPresupuesto(Presupuesto): bool + EliminarPresupuesto(Presupuesto): bool
+ MostrarLotesDeProductos(): ReadOnlyCollection<Lote>
+ AñadirLotesStock(): bool
+ EliminarLotesStock(): bool
+ MostrarStockRemanente(): long
} }
class Presupuesto { class Presupuesto {
@@ -199,9 +216,8 @@ class Presupuesto {
+ Cantidad: int + Cantidad: int
} }
Presupuesto "0..*" o-- "1" ProductoNoPercedero Presupuesto "0..*" <--* "1" Producto
Presupuesto "0..*" o-- "1" ProductoPercedero Proveedor "1" *--> "1..*" Presupuesto
Proveedor "1" *-- "0..*" Presupuesto
class Proveedor { class Proveedor {
+ id: int + id: int
@@ -219,7 +235,7 @@ class Venta {
+ EliminarDetalle(Detalle): void + EliminarDetalle(Detalle): void
} }
class Detalle <where T: ProductoBase>{ class Detalle <where T: Producto>{
+ id: int + id: int
+ Cantidad: int + Cantidad: int
+ PrecioUnitario: double + PrecioUnitario: double
@@ -246,8 +262,14 @@ Cliente <-- Factura
Factura --> Venta Factura --> Venta
Venta "1" *-- "1..*" Detalle Venta "1" *-- "1..*" Detalle
Detalle --> ProductoNoPercedero Detalle --> Producto
Detalle --> ProductoPercedero
Producto --> Lote
class Lote {
+ id: int
+ Producto: Producto
+ CantidadDeProductos: long
}
@enduml @enduml

Binary file not shown.

Before

Width:  |  Height:  |  Size: 79 KiB

After

Width:  |  Height:  |  Size: 95 KiB

View File

@@ -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: 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 #+begin_src plantuml :file ProductoIngreso.svg
@startuml @startuml
class ProductoBase { class Producto {
+ id: int
+ Nombre: string + Nombre: string
+ Precio: double + Precio: double
+ Habilitado: bool + Habilitado: bool
} }
@enduml @enduml
#+end_src #+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 #+begin_src plantuml :file ProductoPercedero.svg
@startuml @startuml
class ProductoPercedero { class ProductoPercedero {
+ FechaConsumoPreferente: DateTime
+ FechaVencimiento: DateTime + FechaVencimiento: DateTime
} }
class ProductoBase {} class Producto {}
ProductoBase <|-- ProductoPercedero Producto <|-- ProductoPercedero
@enduml @enduml
#+end_src #+end_src
@@ -52,11 +51,10 @@ Mientras que uno *no* percedero necesita fecha de Elaboracion también:
@startuml @startuml
class ProductoNoPercedero { class ProductoNoPercedero {
+ FechaElaboracion: DateTime + FechaElaboracion: DateTime
+ FechaCaducacion: DateTime
} }
class ProductoBase {} class Producto {}
ProductoBase <|-- ProductoNoPercedero Producto <|-- ProductoNoPercedero
@enduml @enduml
#+end_src #+end_src

BIN
final.pdf

Binary file not shown.