示例#1
0
 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..");
         }
     }
 }
示例#2
0
 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..");
         }
     }
 }
示例#3
0
 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..");
         }
     }
 }