Beispiel #1
0
        public async Task <ActionResult> CrearVentaAsync([FromBody] CrearVentaDTO crearVentaDTO)
        {
            var cliente = await _clientesServicios.ObtenerClienteIdAsync(crearVentaDTO.PersonaId);

            if (cliente == null)
            {
                return(BadRequest("Cliente no encontrado"));
            }

            if (crearVentaDTO.Total <= 0)
            {
                return(BadRequest("El total de ventas no puede ser cero, verifique la venta"));
            }

            if (crearVentaDTO.Impuesto <= 0)
            {
                return(BadRequest("El impuesto no puede ser cero, verifique el impuesto"));
            }

            var ventaEntidad = VentaMapper.Map(crearVentaDTO);

            foreach (var detalle in ventaEntidad.DetalleVentas)
            {
                if (await _productosServicios.ObtenerProductoPorIdAsync(detalle.ProductoId) == null)
                {
                    return(BadRequest("Uno o más productos no estan registrados en la base de datos"));
                }

                if (detalle.Precio <= 0)
                {
                    return(BadRequest("El precio del producto no puede ser cero, verifique el precio porfavor"));
                }

                if (detalle.Cantidad <= 0)
                {
                    return(BadRequest("La cantidad del producto no puede ser cero, verifiquelo porfavor"));
                }
            }

            var respuesta = await _ventasServicios.CrearVentaAsync(ventaEntidad);

            if (!respuesta)
            {
                return(BadRequest("La venta no pudo realizarse correctamente"));
            }

            return(Ok());
        }