This repository has been archived on 2024-08-10. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
Final_OOP/DiagramaDeClases.org

4.8 KiB

Diagrama De Clases

Diagrama de clases con Repositorios

@startuml
skinparam groupInheritance 2

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: ProductoBase> {
+ Añadir(T): bool
+ Modificar(T): bool
+ Eliminar(T): bool
}

RepositorioProductos ..|> 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..*" ProductoNoPercedero
RepositorioProductos "1" *--> "0..*" ProductoPercedero

class ProductoNoPercedero {
+ FechaElaboracion: DateTime
+ FechaCaducacion: DateTime
}

class ProductoPercedero {
+ FechaVencimiento: DateTime
}

ProductoBase <|-- ProductoNoPercedero
ProductoBase <|-- ProductoPercedero

class ProductoBase {
+ id: int
+ Nombre: string
+ Precio: double
- PresupuestosStock: List<Presupuestos>?
+ Habilitado: bool

+ MostrarPresupuestos(): ReadOnlyCollection<Presupuesto>
+ AñadirPresupuesto(Presupuesto): bool
+ EliminarPresupuesto(Presupuesto): bool
}

class Presupuesto {
+ id: int
+ Proveedor: Proveedor
+ Monto: int
+ Cantidad: int
}

RepositorioPresupuestos "1" *-- "0..*" Presupuesto
RepositorioProveedores "1" *-- "0..*" Proveedor

Presupuesto "0..*" o-- "1" ProductoNoPercedero
Presupuesto "0..*" o-- "1" ProductoPercedero
Proveedor "1" *-- "0..*" 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
}

class Detalle <where T: ProductoBase>{
+ 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 --> ProductoNoPercedero
Detalle --> ProductoPercedero

@enduml

DiagramaConRepos.jpg

Diagrama de clases sin Repositorios

@startuml
skinparam groupInheritance 2

class ProductoNoPercedero {
+ FechaElaboracion: DateTime
+ FechaCaducacion: DateTime
}

class ProductoPercedero {
+ FechaVencimiento: DateTime
}

ProductoBase <|-- ProductoNoPercedero
ProductoBase <|-- ProductoPercedero

class ProductoBase {
+ id: int
+ Nombre: string
+ Precio: double
- PresupuestosStock: List<Presupuestos>?
+ Habilitado: bool

+ MostrarPresupuestos(): ReadOnlyCollection<Presupuesto>
+ AñadirPresupuesto(Presupuesto): bool
+ EliminarPresupuesto(Presupuesto): bool
}

class Presupuesto {
+ id: int
+ Proveedor: Proveedor
+ Monto: int
+ Cantidad: int
}

Presupuesto "0..*" o-- "1" ProductoNoPercedero
Presupuesto "0..*" o-- "1" ProductoPercedero
Proveedor "1" *-- "0..*" 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
}

class Detalle <where T: ProductoBase>{
+ 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 --> ProductoNoPercedero
Detalle --> ProductoPercedero

@enduml

DiagramaSinRepos.jpg