public SystemValidationModel Confirmar(OrdenPagoComprasAddViewModel viewModel) { var ordenPago = GetById(viewModel.Id); ordenPago.Estado = Constants.OrdenPagoCompraEstado.Pagado; ordenPago.Cambio = viewModel.PagoCompra.Cambio; var comprasIds = ordenPago.OrdenPagoDetalle.Select(x => x.CompraId).ToList(); var compras = _context.Set <Compra>().Where(x => comprasIds.Contains(x.Id) && x.Active).ToList(); foreach (var compra in compras) { compra.Estado = Constants.EstadoCompra.Pagado; _context.Entry(compra).State = EntityState.Modified; } var proveedor = _context.Set <Proveedor>().FirstOrDefault(x => x.Id == viewModel.Proveedor.ProveedorId); proveedor.Saldo -= viewModel.MontoTotal; _context.Entry(proveedor).State = EntityState.Modified; var success = _context.SaveChanges() > 0; var validation = new SystemValidationModel() { Id = ordenPago.Id, Message = success ? "Se ha confirmado correctamente la orden de pago" : "No se pudo confirmar la orden de pago", Success = success }; return(validation); }
public SystemValidationModel Save(OrdenPagoComprasAddViewModel viewModel) { var ordenPago = Mapper.Map <OrdenPagoCompra>(viewModel); ordenPago.Estado = Constants.OrdenPagoCompraEstado.Pendiente; var comprasIds = viewModel.OrdenPagoDetalle.Select(x => x.CompraId).ToList(); var compras = _context.Set <Compra>().Where(x => comprasIds.Contains(x.Id)).ToList(); _context.Entry(ordenPago).State = EntityState.Added; foreach (var compra in compras) { compra.Estado = Constants.EstadoCompra.PendientedePago; _context.Entry(compra).State = EntityState.Modified; } foreach (var detalle in ordenPago.OrdenPagoDetalle) { _context.Entry(detalle).State = EntityState.Added; } var success = _context.SaveChanges() > 0; var validation = new SystemValidationModel() { Id = ordenPago.Id, Message = success ? "Se ha guardado correctamente la orden de pago" : "No se pudo guardar la orden de pago", Success = success }; return(validation); }
public IActionResult Add() { var viewModel = new OrdenPagoComprasAddViewModel() { SucursalId = SucursalId }; return(View(viewModel)); }