public ActionResult ConfirmarPedido(Carrito carrito) { try { List <ItemVentaEditDto> listaItems = new List <ItemVentaEditDto>(); foreach (var item in carrito.listaItems) { ItemVentaEditDto itemDto = new ItemVentaEditDto { Propiedad = _mapper.Map <PropiedadListDto>(item.Propiedad), Valor = item.Valor, PrecioUnitario = item.Propiedad.CostoOperacion }; listaItems.Add(itemDto); } VentaEditDto ventaEditDto = new VentaEditDto { FechaVenta = DateTime.Now, //ModalidadVenta = ModalidadVenta.TakeAway, //EstadoVenta = EstadoVenta.Finalizada, ItemVentas = listaItems }; _servicio.Guardar(ventaEditDto); ViewBag.VentaId = ventaEditDto.VentaId; carrito.VaciarCarrito(); return(View("VentaGuardada")); } catch (Exception e) { ModelState.AddModelError(string.Empty, e.Message); } return(View("ErrorAlProcesarPedido")); }
private void OKButton_Click(object sender, EventArgs e) { if (ValidarDatos()) { List <ItemVentaEditDto> listaItems = new List <ItemVentaEditDto>(); foreach (var item in carrito.listaItems) { ItemVentaEditDto itemDto = new ItemVentaEditDto { Producto = _mapper.Map <ProductoListDto>(item.Producto), Cantidad = item.Cantidad, PrecioUnitario = item.Producto.Precio }; listaItems.Add(itemDto); } ventaEditDto = new VentaEditDto { FechaVenta = DateTime.Now, ModalidadVenta = ModalidadVenta.TakeAway, EstadoVenta = EstadoVenta.Finalizada, ItemsVentas = listaItems }; carrito.VaciarCarrito(); DialogResult = DialogResult.OK; } }
private void btnOk_Click(object sender, EventArgs e) { if (ValidarDatos()) { List <ItemVentaEditDto> listaItems = new List <ItemVentaEditDto>(); foreach (var item in carrito.listaItems) { ItemVentaEditDto itemDto = new ItemVentaEditDto { Propiedad = _mapper.Map <PropiedadListDto>(item.Propiedad), Valor = item.Valor, PrecioUnitario = item.Propiedad.CostoOperacion }; listaItems.Add(itemDto); } ventaEditDto = new VentaEditDto { FechaVenta = DateTime.Now, //ModalidadVenta = ModalidadVenta.TakeAway, //EstadoVenta = EstadoVenta.Finalizada, ItemVentas = listaItems }; carrito.VaciarCarrito(); DialogResult = DialogResult.OK; } }
public void Guardar(VentaEditDto ventaDto) { Venta venta = _mapper.Map <Venta>(ventaDto); using (var tran = _context.Database.BeginTransaction()) { try { var venta1 = new Venta() { VentaId = venta.VentaId, FechaVenta = venta.FechaVenta, ModalidadVenta = venta.ModalidadVenta, EstadoVenta = venta.EstadoVenta }; _repositorio.Guardar(venta1); _unitOfWork.Save(); foreach (var item in venta.ItemsVentas) { var item1 = new ItemVenta() { ItemVentaId = item.ItemVentaId, VentaId = venta1.VentaId, ProductoId = item.Producto.ProductoId, PrecioUnitario = item.PrecioUnitario, Cantidad = item.Cantidad }; _repositorioItems.Guardar(item1); } _unitOfWork.Save(); tran.Commit(); ventaDto.VentaId = venta1.VentaId; } catch (Exception e) { tran.Rollback(); throw new Exception(e.Message); } } }
private void OkButton_Click(object sender, EventArgs e) { if (ValidarDatos()) { ventaDto = new VentaEditDto(); ventaDto.Cliente = clienteListDto; ventaDto.FechaVenta = FechaPedidoDatePicker.Value; foreach (var item in carrito.GetItems()) { var itemEditDto = new DetalleVentaEditDto() { Producto = item.Producto, Cantidad = item.Cantidad, Precio = item.Precio, }; ventaDto.DetalleVentas.Add(itemEditDto); } } DialogResult = DialogResult.OK; }
public void Guardar(VentaEditDto ventaDto) { #region Pasar de Dto a Entidad var listaDetalles = new List <DetalleVenta>(); foreach (var itemDto in ventaDto.DetalleVentas) { var item = new DetalleVenta() { DetalleVentaId = itemDto.DetalleVentaId, Producto = new Producto { ProductoId = itemDto.Producto.ProductoId, NombreProducto = itemDto.Producto.NombreProducto }, Cantidad = itemDto.Cantidad, Precio = itemDto.Precio }; listaDetalles.Add(item); } var venta = new Venta { VentaId = ventaDto.VentaId, Cliente = new Cliente { ClienteId = ventaDto.Cliente.ClienteId, NombreCompania = ventaDto.Cliente.NombreCompania }, FechaVenta = ventaDto.FechaVenta, DetalleVentas = listaDetalles }; #endregion #region Guardar la Venta _conexionBd = new ConexionBd(); SqlTransaction tran = null; try { SqlConnection cn = _conexionBd.AbrirConexion(); tran = cn.BeginTransaction();//Comienza la transacción _repositorio = new RepositorioVentas(cn, tran); _repositorioProductos = new RepositorioProductos(cn, tran); _repositorioDetalle = new RepositorioDetalleVentas(cn, tran); _repositorio.Guardar(venta); #region Recorrer los detalles de la venta foreach (var detalleVenta in venta.DetalleVentas) { detalleVenta.Venta = venta; _repositorioDetalle.Guardar(detalleVenta); _repositorioProductos.ActualizarStock(detalleVenta.Producto, -detalleVenta.Cantidad); } #endregion tran.Commit();//Confirma la persistencia de los datos ventaDto.VentaId = venta.VentaId; } catch (Exception e) { tran.Rollback();//Tira para atrás toda la transacción si no se completa throw new Exception(e.Message); } #endregion }