//ya no se usa public SystemValidationModel Edit(VentasViewViewModel viewModel) { var venta = GetById(viewModel.Id); venta = Mapper.Map(viewModel, venta); UpdateDetalle(venta, viewModel); _context.Entry(venta).State = EntityState.Modified; var success = _context.SaveChanges() > 0; var validation = new SystemValidationModel() { Message = success ? "Se ha editado correctamente la venta" : "No se pudo editado la venta", Success = success }; return(validation); }
private void UpdateDetalle(Venta venta, VentasViewViewModel viewModel) { var ventaDetalleIds = venta.DetalleVenta.Select(x => x.Id); var detalleIds = viewModel.DetalleVenta.Select(x => x.Id).ToList(); var detalleIdsToDelete = ventaDetalleIds.Except(detalleIds).ToList(); var detallesToDelete = _context.Set <DetalleVenta>().Where(x => x.Active && detalleIdsToDelete.Contains(x.Id)).ToList(); foreach (var detalle in viewModel.DetalleVenta.Where(x => x.Id == 0)) { var item = Mapper.Map <DetalleVenta>(detalle); _context.Entry(item).State = EntityState.Added; item.Venta = venta; } foreach (var detalle in detallesToDelete) { _context.Entry(detalle).State = EntityState.Deleted; } }
public VentasViewViewModel GetForView(int id) { var viewModel = new VentasViewViewModel() { }; var venta = _context.Set <Venta>().Include(x => x.DetalleVenta).Include(x => x.Cliente).Include(x => x.Timbrado).FirstOrDefault(x => x.Active && x.Id == id); venta.DetalleVenta = venta.DetalleVenta.Where(x => x.Active).ToList(); viewModel = Mapper.Map <VentasViewViewModel>(GetById(id)); viewModel = Mapper.Map(venta.Timbrado, viewModel); var productosIds = venta.DetalleVenta.Select(x => x.ProductoId).ToList(); var productos = _context.Set <Producto>().Where(x => productosIds.Contains(x.Id)); foreach (var detalle in viewModel.DetalleVenta) { var producto = productos.FirstOrDefault(x => x.Id == detalle.ProductoId); detalle.PorcentajeIva = producto.PorcentajeIva; } return(viewModel); }
public SystemValidationModel Confirm(VentasViewViewModel viewModel) { var venta = GetById(viewModel.Id); venta = Mapper.Map(viewModel, venta); //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" }; //venta.NroFactura = nroFactura.Value; DescontarStock(viewModel.DetalleVenta, viewModel.SucursalId); _context.Entry(venta).State = EntityState.Modified; venta.Estado = viewModel.CondicionVenta == Constants.CondicionVenta.Contado ? Constants.EstadoVenta.Pagado : Constants.EstadoVenta.PendientedePago; UpdateDetalle(venta, viewModel); //DescontarStock(viewModel.DetalleVenta, viewModel.SucursalId); if (viewModel.PedidoId != null) { var pedido = _pedidos.GetById(viewModel.PedidoId.Value); pedido.Estado = Constants.EstadoPedido.Finalizado; ChecForUpdatePedido(pedido, venta.DetalleVenta); _context.Entry(pedido).State = EntityState.Modified; } var success = _context.SaveChanges() > 0; var validation = new SystemValidationModel() { Message = success ? "Se ha confirmado correctamente la venta" : "No se pudo confirmar la venta", Success = success }; return(validation); }