#+title: Proyecto Final OOP #+author: Federico Polidoro & Ignacio Diana #+options: date:nil #+LATEX_HEADER: \usepackage{svg} * Sistema de Gestion de Stock y Proveedores 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 8cm #+RESULTS: [[file:ProductoIngreso.svg]] Además de en caso de ser percedero se requerirá una fecha de caducacidad: #+begin_src plantuml :file ProductoPercedero.svg @startuml class ProductoPercedero { + FechaConsumoPreferente: DateTime + FechaVencimiento: DateTime } class Producto {} Producto <|-- ProductoPercedero @enduml #+end_src #+ATTR_LATEX: :width 8cm #+RESULTS: [[file:ProductoPercedero.svg]] Mientras que uno *no* percedero necesita fecha de Elaboracion también: #+begin_src plantuml :file ProductoNoPercedero.svg @startuml class ProductoNoPercedero { + FechaElaboracion: DateTime } class Producto {} Producto <|-- ProductoNoPercedero @enduml #+end_src #+ATTR_LATEX: :width 8cm #+RESULTS: [[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 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 } #+end_src #+ATTR_LATEX: :width 5cm #+RESULTS: [[file:Presupuesto.svg]] *No* permitimos que sean modificados una vez 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 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. *** 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.