ultimo cambio para que me deje traer los cambios de master a Modelo
This commit is contained in:
389
Documentacion/Narrativa/DiagramaDeClases.org
Normal file
389
Documentacion/Narrativa/DiagramaDeClases.org
Normal file
@@ -0,0 +1,389 @@
|
||||
#+title: Diagrama De Clases
|
||||
#+LATEX_HEADER: \usepackage{svg}
|
||||
|
||||
* Diagrama de clases con Repositorios
|
||||
#+begin_src plantuml :file DiagramaConRepos.jpg
|
||||
@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
|
||||
+ Eliminar(detalle): bool
|
||||
}
|
||||
|
||||
RepositorioDetalles "1" *-- "0..*" Detalle
|
||||
|
||||
class RepositorioFacturas {
|
||||
+ Añadir(Factura): bool
|
||||
+ Modificar(Factura): bool
|
||||
+ Eliminar(Factura): bool
|
||||
}
|
||||
|
||||
RepositorioFacturas "1" *-- "0..*" Factura
|
||||
|
||||
class RepositorioVentas {
|
||||
+ Añadir(Venta): bool
|
||||
+ Modificar(Venta): bool
|
||||
+ Eliminar(Venta): bool
|
||||
}
|
||||
|
||||
RepositorioVentas "1" *-- "0..*" Venta
|
||||
|
||||
class RepositorioClientes {
|
||||
+ Añadir(Cliente): bool
|
||||
+ Modificar(Cliente): bool
|
||||
+ Eliminar(Cliente): bool
|
||||
}
|
||||
|
||||
RepositorioClientes "1" *-- "0..*" Cliente
|
||||
|
||||
class RepositorioProveedores {
|
||||
+ Añadir(Proveedor): bool
|
||||
+ Modificar(Proveedor): bool
|
||||
+ Eliminar(Proveedor): bool
|
||||
}
|
||||
|
||||
class RepositorioPresupuestos {
|
||||
+ Añadir(Presupuesto): bool
|
||||
+ Modificar(Presupuesto): bool
|
||||
+ Eliminar(Presupuesto): bool
|
||||
}
|
||||
|
||||
class RepositorioProductos <where T: Producto> {
|
||||
+ Añadir(T): bool
|
||||
+ Modificar(T): bool
|
||||
+ Eliminar(T): bool
|
||||
}
|
||||
|
||||
RepositorioProductos ..|> Repositorio: Implementa
|
||||
RepositorioLotes ..|> Repositorio: Implementa
|
||||
RepositorioPresupuestos ..|> Repositorio: Implementa
|
||||
RepositorioFacturas ..|> Repositorio: Implementa
|
||||
RepositorioClientes ..|> Repositorio: Implementa
|
||||
RepositorioVentas ..|> Repositorio: Implementa
|
||||
RepositorioDetalles ..|> Repositorio: Implementa
|
||||
RepositorioProveedores ..|> Repositorio: Implementa
|
||||
|
||||
interface Repositorio<T> {
|
||||
+ Añadir(T): bool
|
||||
+ Modificar(T): bool
|
||||
+ Eliminar(T): bool
|
||||
}
|
||||
|
||||
RepositorioProductos "1" *--> "0..*" Producto
|
||||
|
||||
|
||||
enum EnvaseTipo {
|
||||
Plastico,
|
||||
Enlatado,
|
||||
Cartón,
|
||||
}
|
||||
|
||||
ProductoNoPercedero --> EnvaseTipo
|
||||
|
||||
class ProductoNoPercedero {
|
||||
+ TipoDeEnvase: EnvaseTipo
|
||||
}
|
||||
|
||||
class ProductoPercedero {
|
||||
+ MesesHastaConsumoPreferente: int
|
||||
+ MesesHastaVencimiento: int
|
||||
}
|
||||
|
||||
Producto <|-- ProductoNoPercedero
|
||||
Producto <|-- ProductoPercedero
|
||||
|
||||
class Producto {
|
||||
+ Id: int
|
||||
+ Nombre: string
|
||||
+ Precio: double
|
||||
- PresupuestosStock: List<Presupuestos>?
|
||||
- Lotes: List<Lote>?
|
||||
+ Habilitado: bool
|
||||
|
||||
+ MostrarPresupuestos(): ReadOnlyCollection<Presupuesto>
|
||||
+ AñadirPresupuesto(Presupuesto): bool
|
||||
+ EliminarPresupuesto(Presupuesto): bool
|
||||
|
||||
+ MostrarLotesDeProductos(): ReadOnlyCollection<Lote>
|
||||
+ AñadirLotesStock(): bool
|
||||
+ EliminarLotesStock(): bool
|
||||
+ MostrarStockRemanente(): long
|
||||
}
|
||||
|
||||
class Presupuesto {
|
||||
+ Id: int
|
||||
+ Proveedor: Proveedor
|
||||
+ Monto: int
|
||||
+ CantIdad: int
|
||||
}
|
||||
|
||||
RepositorioPresupuestos "1" *-- "0..*" Presupuesto
|
||||
RepositorioProveedores "1" *-- "0..*" Proveedor
|
||||
|
||||
Presupuesto "0..*" <--* "1" Producto
|
||||
Proveedor <-- Presupuesto
|
||||
|
||||
class Proveedor {
|
||||
+ Id: int
|
||||
+ Nombre: string
|
||||
+ RazónSocial: string
|
||||
}
|
||||
|
||||
class Venta {
|
||||
+ Id: int
|
||||
- Detalles: List<Detalle>
|
||||
|
||||
+ MostrarDetalles(): ReadOnlyCollection<Detalle>
|
||||
+ AñadirDetalle(Detalle): voId
|
||||
+ ModificarDetalle(Detalle): voId
|
||||
+ EliminarDetalle(Detalle): voId
|
||||
}
|
||||
|
||||
Lote -- Producto
|
||||
|
||||
class Lote {
|
||||
+ Id: int
|
||||
+ Producto: Producto
|
||||
+ CantIdadDeProductos: long
|
||||
+ FechaVencimiento: DateTime
|
||||
}
|
||||
|
||||
class Detalle <where T: Producto>{
|
||||
+ Id: int
|
||||
+ CantIdad: int
|
||||
+ PrecioUnitario: double
|
||||
+ Subtotal: double
|
||||
+ Producto: T
|
||||
}
|
||||
|
||||
class Cliente {
|
||||
+ Cuit: string
|
||||
+ Nombre: string
|
||||
+ ApellIdo: string
|
||||
+ Direccion: string
|
||||
+ Correo: string
|
||||
}
|
||||
|
||||
class Factura {
|
||||
+ Total: double
|
||||
+ Fecha: DateTime
|
||||
+ Cliente: Cliente
|
||||
+ Venta: Venta
|
||||
}
|
||||
|
||||
Cliente <-- Factura
|
||||
Factura --> Venta
|
||||
Venta "1" *-- "1..*" Detalle
|
||||
|
||||
Detalle --> Producto
|
||||
|
||||
@enduml
|
||||
#+end_src
|
||||
|
||||
#+RESULTS:
|
||||
[[file:DiagramaConRepos.jpg]]
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
* Diagrama de clases sin Repositorios
|
||||
#+begin_src plantuml :file DiagramaSinRepos.jpg
|
||||
@startuml
|
||||
skinparam groupInheritance 2
|
||||
|
||||
class ProductoNoPercedero {
|
||||
+ TipoDeEnvase: EnvaseTipo
|
||||
}
|
||||
|
||||
class ProductoPercedero {
|
||||
+ MesesHastaConsumoPreferente: int
|
||||
+ MesesHastaVencimiento: int
|
||||
}
|
||||
|
||||
Producto <|-- ProductoNoPercedero
|
||||
Producto <|-- ProductoPercedero
|
||||
|
||||
class Producto {
|
||||
+ Id: int
|
||||
+ Nombre: string
|
||||
+ Precio: double
|
||||
- Categorias: List<Categoria>?
|
||||
+ Habilitado: bool
|
||||
|
||||
+ MostrarCategoriasDeProductos(): ReadOnlyCollection<Categoria>
|
||||
+ AñadirCategoriasStock(): bool
|
||||
+ EliminarCategoriasStock(): bool
|
||||
}
|
||||
|
||||
class Categoria {
|
||||
+ Id: int
|
||||
+ Descripcion: String
|
||||
}
|
||||
|
||||
class Presupuesto {
|
||||
+ Id: int
|
||||
+ Fecha: DateTime
|
||||
+ Proveedor: Proveedor
|
||||
+ Habilitado: bool
|
||||
- Detalles: List<DetallePresupuesto>
|
||||
+ Aceptado: bool
|
||||
|
||||
+ MostrarDetalles(): ReadOnlyCollection<DetallePresupuesto>
|
||||
+ AñadirDetalle(DetallePresupuesto): bool
|
||||
}
|
||||
|
||||
class Proveedor {
|
||||
+ Id: int
|
||||
+ Nombre: string
|
||||
+ RazónSocial: string
|
||||
+ Habilitado: bool
|
||||
}
|
||||
|
||||
class DetalleFactura {
|
||||
+ IdFactura: int
|
||||
+ PrecioUnitario: double
|
||||
+ Subtotal: double
|
||||
}
|
||||
|
||||
class Cliente {
|
||||
+ Cuit: string
|
||||
+ Nombre: string
|
||||
+ ApellIdo: string
|
||||
+ Direccion: string
|
||||
+ Correo: string
|
||||
}
|
||||
|
||||
class Detalle <where T: Producto>{
|
||||
+ Id: int
|
||||
+ Producto: T
|
||||
+ Cantidad: int
|
||||
}
|
||||
|
||||
class Factura {
|
||||
+ Total: double
|
||||
+ Fecha: DateTime
|
||||
+ Cliente: Cliente
|
||||
- detalles: List<DetalleFactura>
|
||||
|
||||
+ MostrarDetalles(): ReadOnlyCollection<DetalleFactura>
|
||||
+ AñadirDetalle(DetalleFactura): void
|
||||
+ ModificarDetalle(DetalleFactura): void
|
||||
+ EliminarDetalle(DetalleFactura): void
|
||||
}
|
||||
|
||||
class DetallePedido {
|
||||
+ IdPedido: int
|
||||
}
|
||||
|
||||
class PedidoDePresupuesto {
|
||||
+ Id: int
|
||||
+ Fecha: DateTime
|
||||
- detallesPedidos: List<DetallePedido>
|
||||
+ Proveedor: Proveedor
|
||||
|
||||
+ MostrarDetalles(): ReadOnlyCollection<DetallePedido>
|
||||
+ AñadirDetalle(DetallePedido): void
|
||||
+ EliminarDetalle(DetallePedido): void
|
||||
}
|
||||
|
||||
class Lote {
|
||||
+ Id: int
|
||||
+ Fecha: DateTime
|
||||
+ Producto: Producto
|
||||
+ CantidadDeProductos: long
|
||||
+ Habilitado: bool
|
||||
}
|
||||
|
||||
enum EnvaseTipo {
|
||||
Plastico,
|
||||
Enlatado,
|
||||
Cartón,
|
||||
}
|
||||
|
||||
class DetallePresupuesto {
|
||||
+ IdPresupuesto: int
|
||||
+ CostoUnitario: double
|
||||
}
|
||||
|
||||
class OrdenDeCompra {
|
||||
+ Id: int
|
||||
- Productos: List<DetalleOrdenDeCompra>
|
||||
+ Proveedor: Proveedor
|
||||
|
||||
+ MostrarDetalles(): ReadOnlyCollection<DetalleOrdenDeCompra>
|
||||
+ AñadirDetalle(DetalleOrdenDeCompra): bool
|
||||
+ ModificarDetalle(DetalleOrdenDeCompra): bool
|
||||
+ EliminarDetalle(DetalleOrdenDeCompra): bool
|
||||
}
|
||||
|
||||
class DetalleOrdenDeCompra {
|
||||
+ IdOrdenDeCompra: int
|
||||
}
|
||||
|
||||
class Remito {
|
||||
+ Id: int
|
||||
- LotesDeProductosEntregados: List<Lote>
|
||||
+ Proveedor: Proveedor
|
||||
|
||||
+ MostrarLotes(): ReadOnlyCollection<Lote>
|
||||
+ AñadirLote(Lote): bool
|
||||
}
|
||||
|
||||
Detalle <|-- DetalleOrdenDeCompra
|
||||
Detalle <|-- DetallePedido
|
||||
Detalle <|-- DetalleFactura
|
||||
Detalle <|-- DetallePresupuesto
|
||||
|
||||
Presupuesto "1" *--> "1..*" DetallePresupuesto
|
||||
|
||||
PedidoDePresupuesto "1" --> "1" Proveedor
|
||||
PedidoDePresupuesto "1" *--> "1..*" DetallePedido
|
||||
PedidoDePresupuesto "1" --> "1" Presupuesto
|
||||
|
||||
OrdenDeCompra "1" --> "1" Proveedor
|
||||
OrdenDeCompra "1" *--> "1..*" DetalleOrdenDeCompra
|
||||
Remito "1" --> "1" Proveedor
|
||||
Remito "1" *--> "1..*" Lote
|
||||
|
||||
Producto "1" <-- "1..*" Lote
|
||||
|
||||
OrdenDeCompra "1" --> "1" Presupuesto
|
||||
|
||||
ProductoNoPercedero "1" --> "1" EnvaseTipo
|
||||
|
||||
Cliente "1" <-- "1" Factura
|
||||
Factura "1 ." *--> "1..*" DetalleFactura
|
||||
|
||||
DetalleFactura "1 ." --> "1" Producto
|
||||
|
||||
Proveedor "1" <-- "1 ." Presupuesto
|
||||
|
||||
Categoria "0..*" <--o "1 ." Producto
|
||||
@enduml
|
||||
|
||||
#+end_src
|
||||
|
||||
#+RESULTS:
|
||||
[[file:DiagramaSinRepos.jpg]]
|
||||
|
||||
#+begin_comment
|
||||
|
||||
Presupuesto "1" --> "1..*" Lote
|
||||
|
||||
#+end_comment
|
||||
Reference in New Issue
Block a user