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
143 lines
4.7 KiB
Org Mode
143 lines
4.7 KiB
Org Mode
#+title: Proyecto Final OOP
|
|
#+author: Federico Polidoro & Ignacio Diana
|
|
#+options: date:nil
|
|
#+LATEX_HEADER: \usepackage{svg}
|
|
|
|
* Sistema de Gestion de Stock para una Distribuidora Mayorista
|
|
El target de nuestro sistema son Mayoristas que aún no tengan un sistema para:
|
|
- 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.
|
|
- Almacenar las ventas realizadas a clientes.
|
|
|
|
|
|
y esten en busqueda de =Digitalizar= o =Automatizar= dichas secciones de su negocio.
|
|
|
|
** A continuacion se expandirá sobre las funcionalidades del sistema
|
|
*** Registro de productos en venta
|
|
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 Producto {
|
|
+ Nombre: string
|
|
+ Precio: double
|
|
+ Habilitado: bool
|
|
}
|
|
@enduml
|
|
#+end_src
|
|
|
|
#+ATTR_LATEX: :width 4cm
|
|
#+RESULTS:
|
|
[[file:ProductoIngreso.svg]]
|
|
|
|
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
|
|
@startuml
|
|
class ProductoPercedero {
|
|
+ MesesHastaConsumoPreferente: int
|
|
+ MesesHastaVencimiento: int
|
|
}
|
|
|
|
class Producto {}
|
|
Producto <|-- ProductoPercedero
|
|
@enduml
|
|
#+end_src
|
|
|
|
#+ATTR_LATEX: :width 8cm
|
|
#+RESULTS:
|
|
[[file:ProductoPercedero.svg]]
|
|
|
|
Mientras que uno *no* percedero necesita tener especificado cual es el tipo de envase que utiliza
|
|
#+begin_src plantuml :file ProductoNoPercedero.svg
|
|
@startuml
|
|
class ProductoNoPercedero {
|
|
+ TipoDeEnvase
|
|
}
|
|
|
|
|
|
class Producto {}
|
|
Producto <|-- ProductoNoPercedero
|
|
@enduml
|
|
#+end_src
|
|
|
|
#+ATTR_LATEX: :width 6cm
|
|
#+RESULTS:
|
|
[[file:ProductoNoPercedero.svg]]
|
|
|
|
|
|
*** 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.
|
|
|
|
|
|
Para cargar un Proveedor en el sistema se necesita:
|
|
#+begin_src plantuml :file ProveedorCarga.svg
|
|
class Proveedor {
|
|
+ id: int
|
|
+ Nombre: string
|
|
+ RazónSocial: string
|
|
}
|
|
#+end_src
|
|
|
|
#+ATTR_LATEX: :width 5cm
|
|
#+RESULTS:
|
|
[[file:ProveedorCarga.svg]]
|
|
|
|
*** Registro de Presupuestos
|
|
Los presupuestos son dados por los proveedores sobre uno de los productos en venta que tenemos, para poder registrar uno este debe de estar asociado a un proveedor, mostrar el monto propuesto y la cantidad de productos ofresidos.
|
|
#+begin_src plantuml :file Presupuesto.svg
|
|
class Presupuesto {
|
|
+ id: int
|
|
+ Proveedor: Proveedor
|
|
+ Monto: int
|
|
+ Cantidad: int
|
|
+ activo: bool
|
|
}
|
|
|
|
#+end_src
|
|
|
|
#+ATTR_LATEX: :width 5cm
|
|
#+RESULTS:
|
|
[[file:Presupuesto.svg]]
|
|
*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
|
|
Para poder Registrar una Compra por parte de un cliente vamos a necesitar que el cliente en cuestión se registre en el sistema:
|
|
#+begin_src plantuml :file ClienteRegistro.svg
|
|
class Cliente {
|
|
+ Cuit: int
|
|
+ Nombre: string
|
|
+ Apellido: string
|
|
+ Direccion: string
|
|
+ Correo: string
|
|
}
|
|
#+end_src
|
|
|
|
#+ATTR_LATEX: :width 5cm
|
|
#+RESULTS:
|
|
[[file:ClienteRegistro.svg]]
|
|
|
|
*** Modificar de Clientes
|
|
Esta opcion existe en caso de que se necesite cambiar los datos de Nombre, Apellido, Direccion o Correo. No es posible cambiar el Cuit.
|
|
|
|
*** Modificar y Baja lógica de Proveedores
|
|
Desde el sistema se podrá dar una baja lógica de un proveedor, o cambiar los datos de uno en caso de que el proveedor sea adquirido por otra empresa o cambie de nombre.
|
|
|
|
En caso de que el proveedor deje de estar en el mercado tambien es posible de darle una baja lógica en el sistema.
|
|
|
|
*** Baja lógica de Presupuestos
|
|
Es necesario que los presupuestos puedan ser dados de baja para que los nuevos presupuestos puedan reemplazar a los viejos.
|
|
|
|
*** Modificar y Baja lógica de Productos
|
|
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.
|
|
|
|
*** Control de Stock (Ventas)
|
|
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)
|
|
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 y se agregara el lote de la compra para una mejor organizacion de los productos en el programa
|