arreglos hechos durante la clase consulta de laureano
falta: - [ ] Poner en claro las relaciones que no estan bien especificadas (multiplicidad, y navegabilidad - [ ] Poner lote como clase intermedia al presupuesto y producto - [ ] CATEgorias - [ ] armar un tablero kanban con esto - [ ] mejorar la narrativa (probablemente saque las imagenes y ponga en texto) - [ ] añadir remitos ( y investigar que son ) - [ ] eliminar clase venta por ser parte de la factura
This commit is contained in:
Binary file not shown.
|
Before Width: | Height: | Size: 193 KiB After Width: | Height: | Size: 216 KiB |
@@ -6,6 +6,14 @@
|
|||||||
@startuml
|
@startuml
|
||||||
skinparam groupInheritance 2
|
skinparam groupInheritance 2
|
||||||
|
|
||||||
|
class RepositorioLotes {
|
||||||
|
+ Añadir(detalle): bool
|
||||||
|
+ Modificar(detalle): bool
|
||||||
|
+ Eliminar(detalle): bool
|
||||||
|
}
|
||||||
|
|
||||||
|
RepositorioLotes "1" *-- "0..*" Lote
|
||||||
|
|
||||||
class RepositorioDetalles {
|
class RepositorioDetalles {
|
||||||
+ Añadir(detalle): bool
|
+ Añadir(detalle): bool
|
||||||
+ Modificar(detalle): bool
|
+ Modificar(detalle): bool
|
||||||
@@ -57,6 +65,7 @@ class RepositorioProductos <where T: Producto> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
RepositorioProductos ..|> Repositorio: Implementa
|
RepositorioProductos ..|> Repositorio: Implementa
|
||||||
|
RepositorioLotes ..|> Repositorio: Implementa
|
||||||
RepositorioPresupuestos ..|> Repositorio: Implementa
|
RepositorioPresupuestos ..|> Repositorio: Implementa
|
||||||
RepositorioFacturas ..|> Repositorio: Implementa
|
RepositorioFacturas ..|> Repositorio: Implementa
|
||||||
RepositorioClientes ..|> Repositorio: Implementa
|
RepositorioClientes ..|> Repositorio: Implementa
|
||||||
@@ -72,13 +81,22 @@ interface Repositorio<T> {
|
|||||||
|
|
||||||
RepositorioProductos "1" *--> "0..*" Producto
|
RepositorioProductos "1" *--> "0..*" Producto
|
||||||
|
|
||||||
|
|
||||||
|
enum EnvaseTipo {
|
||||||
|
Plastico,
|
||||||
|
Enlatado,
|
||||||
|
Cartón,
|
||||||
|
}
|
||||||
|
|
||||||
|
ProductoNoPercedero --> EnvaseTipo
|
||||||
|
|
||||||
class ProductoNoPercedero {
|
class ProductoNoPercedero {
|
||||||
+ FechaElaboracion: DateTime
|
+ TipoDeEnvase: EnvaseTipo
|
||||||
}
|
}
|
||||||
|
|
||||||
class ProductoPercedero {
|
class ProductoPercedero {
|
||||||
+ FechaConsumoPreferente: DateTime
|
+ MesesHastaConsumoPreferente: int
|
||||||
+ FechaVencimiento: DateTime
|
+ MesesHastaVencimiento: int
|
||||||
}
|
}
|
||||||
|
|
||||||
Producto <|-- ProductoNoPercedero
|
Producto <|-- ProductoNoPercedero
|
||||||
@@ -113,7 +131,7 @@ RepositorioPresupuestos "1" *-- "0..*" Presupuesto
|
|||||||
RepositorioProveedores "1" *-- "0..*" Proveedor
|
RepositorioProveedores "1" *-- "0..*" Proveedor
|
||||||
|
|
||||||
Presupuesto "0..*" <--* "1" Producto
|
Presupuesto "0..*" <--* "1" Producto
|
||||||
Proveedor "1" *-- "0..*" Presupuesto
|
Proveedor <-- Presupuesto
|
||||||
|
|
||||||
class Proveedor {
|
class Proveedor {
|
||||||
+ id: int
|
+ id: int
|
||||||
@@ -131,12 +149,13 @@ class Venta {
|
|||||||
+ EliminarDetalle(Detalle): void
|
+ EliminarDetalle(Detalle): void
|
||||||
}
|
}
|
||||||
|
|
||||||
Lote <-- Producto
|
Lote -- Producto
|
||||||
|
|
||||||
class Lote {
|
class Lote {
|
||||||
+ id: int
|
+ id: int
|
||||||
+ Producto: Producto
|
+ Producto: Producto
|
||||||
+ CantidadDeProductos: long
|
+ CantidadDeProductos: long
|
||||||
|
+ FechaVencimiento: DateTime
|
||||||
}
|
}
|
||||||
|
|
||||||
class Detalle <where T: Producto>{
|
class Detalle <where T: Producto>{
|
||||||
@@ -180,12 +199,12 @@ Detalle --> Producto
|
|||||||
skinparam groupInheritance 2
|
skinparam groupInheritance 2
|
||||||
|
|
||||||
class ProductoNoPercedero {
|
class ProductoNoPercedero {
|
||||||
+ FechaElaboracion: DateTime
|
+ TipoDeEnvase: EnvaseTipo
|
||||||
}
|
}
|
||||||
|
|
||||||
class ProductoPercedero {
|
class ProductoPercedero {
|
||||||
+ FechaConsumoPreferente: DateTime
|
+ MesesHastaConsumoPreferente: int
|
||||||
+ FechaVencimiento: DateTime
|
+ MesesHastaVencimiento: int
|
||||||
}
|
}
|
||||||
|
|
||||||
Producto <|-- ProductoNoPercedero
|
Producto <|-- ProductoNoPercedero
|
||||||
@@ -214,15 +233,17 @@ class Presupuesto {
|
|||||||
+ Proveedor: Proveedor
|
+ Proveedor: Proveedor
|
||||||
+ Monto: int
|
+ Monto: int
|
||||||
+ Cantidad: int
|
+ Cantidad: int
|
||||||
|
+ habilitado: bool
|
||||||
}
|
}
|
||||||
|
|
||||||
Presupuesto "0..*" <--* "1" Producto
|
Presupuesto "0..*" <--* "1" Producto
|
||||||
Proveedor "1" *--> "1..*" Presupuesto
|
Proveedor <-- Presupuesto
|
||||||
|
|
||||||
class Proveedor {
|
class Proveedor {
|
||||||
+ id: int
|
+ id: int
|
||||||
+ Nombre: string
|
+ Nombre: string
|
||||||
+ RazónSocial: string
|
+ RazónSocial: string
|
||||||
|
+ habilitado: bool
|
||||||
}
|
}
|
||||||
|
|
||||||
class Venta {
|
class Venta {
|
||||||
@@ -264,13 +285,21 @@ Venta "1" *-- "1..*" Detalle
|
|||||||
|
|
||||||
Detalle --> Producto
|
Detalle --> Producto
|
||||||
|
|
||||||
Producto --> Lote
|
Producto -- Lote
|
||||||
class Lote {
|
class Lote {
|
||||||
+ id: int
|
+ id: int
|
||||||
+ Producto: Producto
|
+ Producto: Producto
|
||||||
+ CantidadDeProductos: long
|
+ CantidadDeProductos: long
|
||||||
|
+ habilitado: bool
|
||||||
}
|
}
|
||||||
|
|
||||||
|
enum EnvaseTipo {
|
||||||
|
Plastico,
|
||||||
|
Enlatado,
|
||||||
|
Cartón,
|
||||||
|
}
|
||||||
|
|
||||||
|
ProductoNoPercedero --> EnvaseTipo
|
||||||
@enduml
|
@enduml
|
||||||
|
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 95 KiB After Width: | Height: | Size: 103 KiB |
29
final.org
29
final.org
@@ -3,7 +3,7 @@
|
|||||||
#+options: date:nil
|
#+options: date:nil
|
||||||
#+LATEX_HEADER: \usepackage{svg}
|
#+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:
|
El target de nuestro sistema son Mayoristas que aún no tengan un sistema para:
|
||||||
- Gestionar el stock de mercaderia restante, (Ventas y Compras).
|
- 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.
|
- 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
|
@enduml
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
#+ATTR_LATEX: :width 8cm
|
#+ATTR_LATEX: :width 4cm
|
||||||
#+RESULTS:
|
#+RESULTS:
|
||||||
[[file:ProductoIngreso.svg]]
|
[[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
|
#+begin_src plantuml :file ProductoPercedero.svg
|
||||||
@startuml
|
@startuml
|
||||||
class ProductoPercedero {
|
class ProductoPercedero {
|
||||||
+ FechaConsumoPreferente: DateTime
|
+ MesesHastaConsumoPreferente: int
|
||||||
+ FechaVencimiento: DateTime
|
+ MesesHastaVencimiento: int
|
||||||
}
|
}
|
||||||
|
|
||||||
class Producto {}
|
class Producto {}
|
||||||
@@ -46,23 +46,23 @@ Producto <|-- ProductoPercedero
|
|||||||
#+RESULTS:
|
#+RESULTS:
|
||||||
[[file:ProductoPercedero.svg]]
|
[[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
|
#+begin_src plantuml :file ProductoNoPercedero.svg
|
||||||
@startuml
|
@startuml
|
||||||
class ProductoNoPercedero {
|
class ProductoNoPercedero {
|
||||||
+ FechaElaboracion: DateTime
|
+ TipoDeEnvase
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
class Producto {}
|
class Producto {}
|
||||||
Producto <|-- ProductoNoPercedero
|
Producto <|-- ProductoNoPercedero
|
||||||
@enduml
|
@enduml
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
#+ATTR_LATEX: :width 8cm
|
#+ATTR_LATEX: :width 6cm
|
||||||
#+RESULTS:
|
#+RESULTS:
|
||||||
[[file:ProductoNoPercedero.svg]]
|
[[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
|
*** 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.
|
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
|
+ Proveedor: Proveedor
|
||||||
+ Monto: int
|
+ Monto: int
|
||||||
+ Cantidad: int
|
+ Cantidad: int
|
||||||
|
+ activo: bool
|
||||||
}
|
}
|
||||||
|
|
||||||
#+end_src
|
#+end_src
|
||||||
@@ -96,7 +97,7 @@ class Presupuesto {
|
|||||||
#+ATTR_LATEX: :width 5cm
|
#+ATTR_LATEX: :width 5cm
|
||||||
#+RESULTS:
|
#+RESULTS:
|
||||||
[[file:Presupuesto.svg]]
|
[[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
|
*** 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:
|
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.
|
La Baja de un producto se hace por medio de una baja lógica.
|
||||||
|
|
||||||
*** Control de Stock (Ventas)
|
*** 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)
|
*** 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
|
||||||
|
|||||||
Reference in New Issue
Block a user