carlospiedrab / Integracion

Proyecto de Web api .Net 8
0 stars 0 forks source link

Venta de Productos ( 30 ptos ) #33

Open carlospiedrab opened 2 months ago

carlospiedrab commented 2 months ago

Este nuevo requerimiento va a depender del Issue# 32 (Agregar Tabla, Modelo y Controlador Cliente) ya que para la cabecera de la factura se va a necesitar del ClienteId, consultar y coordinar con el encargado de este requerimiento.

Se necesita incluir en el proyecto la creación de Ventas de Producto por Cliente. Es decir que cada vez que se desee disminuir el Inventario de Productos, este proceso pase por una Venta de Productos. Para llevar a cabo este proceso se necesita de las siguientes tablas:

Venta VentaId int Not Null ( Pk ) ClienteId int Not Null ( FK Tabla Cliente creada en el Issue# 32 ) BodegaVentaId ( FK Tabla Bodega ) FechaIngreso datetime Not Null UsuarioId string Not Null (FK Tabla AspNetUsers ) TotalVenta decimal Not Null (Suma de Subtotales del detalle Precio Producto * Cantidad)

VentaDetalle VentaDetalleId int Not Null ( Pk ) VentaId int Not Null ( FK Tabla Venta ) ProductoId int Not Null ( FK Tabla Producto ) Cantidad int Not Null Precio decimal Not Null ( Precio Actual del Producto ) Subtotal decimal Not Null ( Precio * Cantidad )

En el proyecto Integracion se deben de agregar los dos nuevos Modelos en Models/Entidades mapeados con las nuevas tablas. Se debe agregar un Dto que tenga la Información de la Cabecera y Detalle de la Venta. Se debe agregar al DbContext los nuevos modelos para poder usar los métodos de EntityFramework. Se debe agregar el controlador VentaController. El controlador VentaController debe de tener 2 endpoints: Post .- Que permita Ingresar nuevas Ventas por Cliente. Se debe afectar el inventario(Tabla BodegaProducto) y se debe registrar el kardex a través del servicio KardexService. Get by VentaId .- Consulta de Ventas por Id. Validaciones: Las cantidades no pueden ser cantidades negativas. Cliente y Bodega Id deben de existir para evitar un status code 500

carlospiedrab commented 2 months ago

El Issue 32 ya se encuentra cerrado.