public IActionResult Edit(int id)
        {
            var viewModel = Mapper.Map <PedidosEditViewModel>(_pedidos.GetById(id));

            viewModel.SucursalId = SucursalId;
            return(View(viewModel));
        }
        public SystemValidationModel Save(VentasAddViewModel viewModel)
        {
            var venta = Mapper.Map <Venta>(viewModel);

            venta.DateCreated = DateTime.Now;
            //var timbrado = _timbrados.GetValidTimbrado(viewModel.SucursalId, viewModel.CajaId);
            //if (timbrado == null)
            //	return new SystemValidationModel() { Success = false, Message = "No existe un timbrado valido registrado" };
            //venta.Timbrado = timbrado;
            //var nroFactura = GetValidNroFactura(timbrado);
            //if (nroFactura == null)
            //	return new SystemValidationModel() { Success = false, Message = "No existen numeros validos para el timbrado actual" };

            if (viewModel.PagoVenta.Cambio != 0)
            {
                venta.Cambio = viewModel.PagoVenta.Cambio;
            }
            DescontarStock(viewModel.DetalleVenta, viewModel.SucursalId);
            venta.Estado = viewModel.CondicionVenta == Constants.CondicionVenta.Contado ? Constants.EstadoVenta.Pagado : Constants.EstadoVenta.PendientedePago;

            if (venta.Estado == Constants.EstadoVenta.Pagado)
            {
                SaveDetalleCaja(venta, viewModel);
            }

            if (venta.CondicionVenta == Constants.CondicionVenta.Credito)
            {
                AumentarSaldoCliente(venta);
            }

            _context.Entry(venta).State = EntityState.Added;
            foreach (var detalle in venta.DetalleVenta)
            {
                _context.Entry(detalle).State = EntityState.Added;
            }
            foreach (var cuota in venta.Cuotas)
            {
                _context.Entry(cuota).State = EntityState.Added;
            }

            if (viewModel.PedidoId != null)
            {
                var pedido = _pedidos.GetById(viewModel.PedidoId.Value);
                ChecForUpdatePedido(pedido, venta.DetalleVenta);
                pedido.Estado = pedido.Delivery ? Constants.EstadoPedido.EntregadoPorDelivery : Constants.EstadoPedido.Finalizado;
                _context.Entry(pedido).State = EntityState.Modified;
            }

            var success    = _context.SaveChanges() > 0;
            var validation = new SystemValidationModel()
            {
                Id      = venta.Id,
                Message = success ? "Se ha guardado correctamente la venta" : "No se pudo guardar la venta",
                Success = success
            };

            return(validation);
        }
Example #3
0
        public IActionResult Edit(int id)
        {
            var viewModel = Mapper.Map <PedidosClienteEditViewModel>(_pedidos.GetById(id));

            viewModel.Sucursales = _sucursales.GetAll().Select(x => new DropDownViewModel <int>()
            {
                Text = x.Nombre, Value = x.Id
            }).ToList();
            return(View(viewModel));
        }
Example #4
0
        public IActionResult GenerateVentaFromPedido(int pedidoId)
        {
            var pedido       = _pedidos.GetById(pedidoId);
            var productosIds = pedido.DetallePedido.Select(x => x.ProductoId).ToList();
            var productos    = _productos.GetAll().Where(x => productosIds.Contains(x.Id));

            var viewModel = Mapper.Map <VentasAddViewModel>(pedido);

            viewModel.CajaId               = CajaId;
            viewModel.SucursalId           = SucursalId;
            viewModel.CajaId               = CajaId;
            viewModel.CajaAperturaCierreId = CajaAperturaCierreId;
            var timbrado = _timbrados.GetValidTimbrado(SucursalId, CajaId);

            viewModel.NroFactura       = _ventas.GetValidNroFactura(SucursalId, CajaId);
            viewModel.NroFacturaString = _ventas.GetNroFacturaString(SucursalId, CajaId, viewModel.NroFactura);
            viewModel.TimbradoId       = timbrado.Id;
            if (timbrado != null)
            {
                viewModel = Mapper.Map(timbrado, viewModel);
            }
            foreach (var detalle in viewModel.DetalleVenta)
            {
                var producto      = productos.FirstOrDefault(x => x.Id == detalle.ProductoId);
                var detallePedido = pedido.DetallePedido.FirstOrDefault(x => x.ProductoId == detalle.ProductoId);
                detalle.PorcentajeIva = producto.PorcentajeIva;
                detalle.Nombre        = detallePedido.Descripcion;
                detalle.Id            = 0;
            }
            return(View("~/Areas/Platform/Views/Ventas/Add.cshtml", viewModel));
        }