Ejemplo n.º 1
0
        public async Task <int> InsertarVentaAsync(Venta venta)
        {
            var cotizacion = await _cotizacionService.ObtenerPorIdAsync(venta.IdCotizacion);

            if (cotizacion == null)
            {
                throw new Exception($"La cotización {venta.IdCotizacion} no existe");
            }
            if (venta.Detalle == null)
            {
                throw new Exception($"El detalle de la venta no puede ser null");
            }

            venta.TotalVenta = cotizacion.TotalFinal;
            var idVenta = await _ventaDal.InsertarAsync(venta);

            venta.Detalle.IdVenta = idVenta;
            await _ventaDal.InsertarDetalleAsync(venta.Detalle);

            await _vehiculoService.ActualizarStock(cotizacion.Solicitud.IdVehiculo);

            return(idVenta);
        }