public ViewResult Details(EstadoCuentaVM model) { var id = model.MovimientoId ; var action = model.CambioEstatusVM.Estatus; string comentario = model.CambioEstatusVM.Comentario != null ? model.CambioEstatusVM.Comentario.TrimEnd() : string.Empty ; AbonoRepository AbonoRepository; if (id > 0) { Movimiento Movimiento = repository.LoadById(id); if (Movimiento != null) { AbonoRepository = new AbonoRepository(repository.context);// Abono abono = AbonoRepository.LoadById(Movimiento.Id); if (abono != null) { if (Movimiento.IsAbono) { enumEstatusMovimiento nuevoEstatus = (enumEstatusMovimiento)Movimiento.Status; switch (action) { case "Cancelar": nuevoEstatus = enumEstatusMovimiento.Cancelado; break; case "Aplicar": nuevoEstatus = enumEstatusMovimiento.Aplicado; break; case "Rechazar": nuevoEstatus = enumEstatusMovimiento.Rechazado; break; } EstadoCuentaBR estadoCuentaBR = new EstadoCuentaBR(repository.context); // Movimiento.Status = (Int16)nuevoEstatus; abono.Status = (Int16)nuevoEstatus; estadoCuentaBR.ActualizarMovimiento(Movimiento.MovimientoId, nuevoEstatus, comentario); this.Succeed = estadoCuentaBR.Succeed; this.ValidationMessages = estadoCuentaBR.ValidationMessages; if (Succeed) { Succeed= repository.Save(); if (Succeed) { AddValidationMessage(enumMessageType.Succeed, "El movimiento ha sido " + nuevoEstatus.ToString() + " correctamente"); } else { //TODO: implemtar código que traiga mensajes del repositorio } } } else { //todo: Si no es abono que hacer? AddValidationMessage(enumMessageType.BRException, "No hay lógica para modificar este movimiento"); } } else { AddValidationMessage(enumMessageType.BRException, "No se encontró el Abono."); } } else { AddValidationMessage(enumMessageType.BRException, "No se encontró el movimiento."); } } else { AddValidationMessage(enumMessageType.BRException , "El movimiento no es válido."); } model = FillEstadoDeCuentaVM(id); return View(model); }
private EstadoCuentaVM FillEstadoDeCuentaVM(Int32 id) { Movimiento movimiento = repository.LoadById(id); PayCentersRepository PayCentersRepository = new PayCentersRepository(); PayCenter PayCenter = PayCentersRepository.LoadById(movimiento.PayCenterId); int cuentaId = movimiento.CuentasPayCenter.CuentaId; string cuenta = ((enumTipoCuenta)movimiento.CuentasPayCenter.TipoCuenta).ToString(); string motivo = ((enumMotivo)movimiento.Motivo).ToString(); BancosRepository BancoRepository = new BancosRepository(); //BancoRepository.LoadById(); EstadoCuentaVM EstadoCuentaVM = new EstadoCuentaVM() { PayCenterId = PayCenterId, MovimientoId = id, Clave = movimiento.Clave, MontoString = movimiento.Monto.ToString("C3"), FechaCreacion = movimiento.FechaCreacion.ToString(), Status = movimiento.Status, Cuenta = cuenta, PayCenterName = PayCenter.Nombre, Motivo = ((enumMotivo)movimiento.Motivo).ToString(), Saldo = (movimiento.SaldoActual != null ? ((decimal)movimiento.SaldoActual).ToString("C3") : "0"), isAbono = movimiento.IsAbono, HistorialEstatusVM = movimiento.Movimientos_Estatus.OrderByDescending(x => x.FechaCreacion).Select(x => new HistorialEstatusVM { Fecha = x.FechaCreacion.ToString(), Estatus = ((enumEstatusMovimiento)x.Status).ToString(), Comentarios = x.Comentarios, UserName = x.UserName }).ToList() }; int RoleUser = GetRolUser(HttpContext.User.Identity.Name); ViewBag.RoleUser = RoleUser; return EstadoCuentaVM; }