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"));
        }
Exemple #2
0
        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;
            }
        }
Exemple #3
0
        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);
                }
            }
        }
Exemple #5
0
        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
        }