public void ActualizarMovimientoBanco(MovimientoBanco movimiento) { using (IDbContext dbContext = localContainer.Resolve <IDbContext>()) { try { CuentaBanco cuenta = dbContext.CuentaBancoRepository.Find(movimiento.IdCuenta); if (cuenta == null) { throw new Exception("La cuenta bancaria asignada al movimiento no existe."); } Empresa empresa = dbContext.EmpresaRepository.Find(cuenta.IdEmpresa); if (empresa == null) { throw new BusinessException("Empresa no registrada en el sistema. Por favor, pongase en contacto con su proveedor del servicio."); } dbContext.NotificarModificacion(movimiento); dbContext.Commit(); } catch (BusinessException ex) { dbContext.RollBack(); throw ex; } catch (Exception ex) { dbContext.RollBack(); log.Error("Error al actualizar el movimiento bancario: ", ex); throw new Exception("Se produjo un error actualizando el movimiento bancario. Por favor consulte con su proveedor.."); } } }
public string AgregarMovimientoBanco(MovimientoBanco movimiento) { using (IDbContext dbContext = localContainer.Resolve <IDbContext>()) { try { CuentaBanco cuenta = dbContext.CuentaBancoRepository.Find(movimiento.IdCuenta); if (cuenta == null) { throw new Exception("La cuenta bancaria asignada al movimiento no existe."); } Empresa empresa = dbContext.EmpresaRepository.Find(cuenta.IdEmpresa); if (empresa == null) { throw new BusinessException("Empresa no registrada en el sistema. Por favor, pongase en contacto con su proveedor del servicio."); } TipoMovimientoBanco tipo = dbContext.TipoMovimientoBancoRepository.Find(movimiento.IdTipo); if (tipo == null) { throw new Exception("El tipo de movimiento no existe."); } movimiento.SaldoAnterior = cuenta.Saldo; if (tipo.DebeHaber == StaticTipoDebitoCredito.Debito) { cuenta.Saldo -= movimiento.Monto; } else { cuenta.Saldo += movimiento.Monto; } dbContext.MovimientoBancoRepository.Add(movimiento); dbContext.NotificarModificacion(cuenta); dbContext.Commit(); return(movimiento.IdMov.ToString()); } catch (BusinessException ex) { dbContext.RollBack(); throw ex; } catch (Exception ex) { dbContext.RollBack(); log.Error("Error al agregar el movimiento bancario: ", ex); throw new Exception("Se produjo un error agregando el movimiento bancario. Por favor consulte con su proveedor.."); } } }
public void AnularMovimientoBanco(int intIdMovimiento, int intIdUsuario, string strMotivoAnulacion) { using (IDbContext dbContext = localContainer.Resolve <IDbContext>()) { try { MovimientoBanco movimiento = dbContext.MovimientoBancoRepository.Find(intIdMovimiento); if (movimiento == null) { throw new Exception("El movimiento por eliminar no existe."); } CuentaBanco cuenta = dbContext.CuentaBancoRepository.Find(movimiento.IdCuenta); if (cuenta == null) { throw new Exception("La cuenta bancaria asignada al movimiento no existe."); } Empresa empresa = dbContext.EmpresaRepository.Find(cuenta.IdEmpresa); if (empresa == null) { throw new BusinessException("Empresa no registrada en el sistema. Por favor, pongase en contacto con su proveedor del servicio."); } movimiento.Nulo = true; movimiento.IdAnuladoPor = intIdUsuario; movimiento.MotivoAnulacion = strMotivoAnulacion; dbContext.NotificarModificacion(movimiento); cuenta.Saldo -= movimiento.Monto; dbContext.NotificarModificacion(cuenta); dbContext.Commit(); } catch (BusinessException ex) { dbContext.RollBack(); throw ex; } catch (Exception ex) { dbContext.RollBack(); log.Error("Error al anular el movimiento bancario: ", ex); throw new Exception("Se produjo un error anulando el movimiento bancario. Por favor consulte con su proveedor.."); } } }