예제 #1
0
 public override void Consignar(double valor)
 {
     if (this.ConsignacionInicial == true)
     {
         if (valor >= MINIMOCONSIGNACION)
         {
             MovimientoFinanciero consignacion = new MovimientoFinanciero();
             consignacion.ValorConsignacion = valor;
             consignacion.FechaMovimiento   = DateTime.Now;
             Saldo += valor;
             this.Movimientos.Add(consignacion);
             this.ConsignacionInicial = false;
         }
         else
         {
             throw new CuentaCorrienteConsignarException("No es posible realizar la consignacion, la primera consignacion debe ser mayor a 50000");
         }
     }
     else
     {
         MovimientoFinanciero consignacion = new MovimientoFinanciero();
         consignacion.ValorConsignacion = valor;
         consignacion.FechaMovimiento   = DateTime.Now;
         Saldo += valor;
         this.Movimientos.Add(consignacion);
     }
 }
예제 #2
0
        public override void Retirar(double valor)
        {
            double nuevoSaldo = Saldo - valor;
            var    movimiento = this.Movimientos.Where(T => T.Tipo == MovimientoType.EGRESO).Count();

            if (nuevoSaldo > TOPERETIRO && movimiento <= 3)
            {
                MovimientoFinanciero retiro = new MovimientoFinanciero();
                retiro.Monto           = valor;
                retiro.FechaMovimiento = DateTime.Now;
                retiro.Tipo            = MovimientoType.EGRESO;
                Saldo -= valor;
                this.Movimientos.Add(retiro);
            }
            else if (nuevoSaldo > TOPERETIRO && movimiento > 3)
            {
                MovimientoFinanciero retiro = new MovimientoFinanciero();
                retiro.Monto           = valor;
                retiro.FechaMovimiento = DateTime.Now;
                retiro.Tipo            = MovimientoType.EGRESO;
                Saldo -= valor + 5000;
                this.Movimientos.Add(retiro);
            }
            else
            {
                throw new CuentaAhorroTopeDeRetiroException("No es posible realizar el Retiro, Supera el tope mínimo permitido de retiro");
            }
        }
 public virtual void Consignar(MovimientoFinanciero movimiento)
 {
     movimiento.FechaMovimiento = DateTime.Now;
     movimiento.Tipo            = MovimientoType.INGRESO;
     Movimientos.Add(movimiento);
     Saldo += movimiento.Monto;
 }
예제 #4
0
        public virtual void Consignar(Transaccion transaccion)
        {
            MovimientoFinanciero movimiento = new MovimientoFinanciero();

            movimiento.ValorConsignacion = transaccion.Valor;
            movimiento.FechaMovimiento   = DateTime.Now;
            Saldo += transaccion.Valor;
            Movimientos.Add(movimiento);
        }
예제 #5
0
        protected void CrearMovimientoDeEgreso(double valor)
        {
            MovimientoFinanciero retiro = new MovimientoFinanciero();

            retiro.ValorRetiro     = valor;
            retiro.FechaMovimiento = DateTime.Now;
            Saldo -= valor;
            this.Movimientos.Add(retiro);
        }
예제 #6
0
        public void Consignar(double valor)
        {
            MovimientoFinanciero consignacion = new MovimientoFinanciero();

            consignacion.ValorConsignacion = valor;
            consignacion.FechaMovimiento   = DateTime.Now;
            Saldo -= valor;
            Movimientos.Add(consignacion);
        }
예제 #7
0
        public virtual void Consignar(double valor)
        {
            MovimientoFinanciero movimiento = new MovimientoFinanciero();

            movimiento.ValorConsignacion = valor;
            movimiento.FechaMovimiento   = DateTime.Now;
            Saldo += valor;
            Movimientos.Add(movimiento);
        }
예제 #8
0
        protected void CrearMovimientoDeIngreso(double valor)
        {
            MovimientoFinanciero movimiento = new MovimientoFinanciero();

            movimiento.ValorConsignacion = valor;
            movimiento.FechaMovimiento   = DateTime.Now;
            Saldo += valor;
            Movimientos.Add(movimiento);
        }
예제 #9
0
        //public abstract string EjecutarConsignacion(double valor, string ciudad);

        public virtual string Retirar(decimal valor, string ciudad)
        {
            MovimientoFinanciero retiro = new MovimientoFinanciero();

            retiro.ValorRetiro         = valor;
            retiro.CiudadDeRealizacion = ciudad;
            retiro.FechaMovimiento     = DateTime.Now;
            Saldo -= valor;
            this.Movimientos.Add(retiro);
            return("Su nuevo saldo es " + this.Saldo + " m/c");
        }
예제 #10
0
        public virtual string Consignar(decimal valor, string ciudad)
        {
            MovimientoFinanciero movimiento = new MovimientoFinanciero();

            movimiento.ValorConsignacion   = valor;
            movimiento.CiudadDeRealizacion = ciudad;
            movimiento.FechaMovimiento     = DateTime.Now;
            Saldo += valor;
            Movimientos.Add(movimiento);
            return("Su nuevo saldo es " + this.Saldo + " m/c");
        }
예제 #11
0
 public override void Retirar(Transaccion transaccion)
 {
     if (VerificarPeriodo() && Saldo > 0)
     {
         MovimientoFinanciero retiro = new MovimientoFinanciero();
         retiro.ValorRetiro     = transaccion.Valor + (transaccion.Valor * TasaInteres);
         retiro.FechaMovimiento = DateTime.Now;
         Saldo = 0;
         Movimientos.Add(retiro);
     }
 }
 public override void Consignar(MovimientoFinanciero movimiento)
 {
     if (movimiento.Monto <= 0)
     {
         throw new CuentaCorrienteRetirarMaximoSobregiroException("el valor no puede ser 0");
     }
     if (movimiento.Monto > Saldo)
     {
         throw new InvalidOperationException("El valor  no puede ser mayor al saldo ");
     }
     base.Consignar(movimiento);
 }
예제 #13
0
        public override void Consignar(MovimientoFinanciero movimiento)
        {
            var movimientoBusuedad = this.Movimientos.Where(T => T.Tipo == MovimientoType.INGRESO).Count();

            if (movimientoBusuedad == 0 && movimiento.Monto > 100000)
            {
                base.Consignar(movimiento);
            }
            else if (movimientoBusuedad != 0 && movimiento.Monto > 0)
            {
                base.Consignar(movimiento);
            }
        }
예제 #14
0
 public void Retirar(double valor)
 {
     if (FechaDeTermino < DateTime.Now)
     {
         SaldoConIntereses();
         MovimientoFinanciero retiro = new MovimientoFinanciero();
         retiro.ValorRetiro     = valor;
         retiro.FechaMovimiento = DateTime.Now;
         Saldo -= valor;
         this.Movimientos.Add(retiro);
     }
     else
     {
         throw new Exception("No es posible realizar el Retiro, porque no se ha cumplido la fecha a termino");
     }
 }
예제 #15
0
        public override void Retirar(double valor)
        {
            double nuevoSaldo = Saldo - valor;

            if (nuevoSaldo > TOPERETIRO)
            {
                MovimientoFinanciero retiro = new MovimientoFinanciero();
                retiro.ValorRetiro     = valor;
                retiro.FechaMovimiento = DateTime.Now;
                Saldo -= valor;
                this.Movimientos.Add(retiro);
            }
            else
            {
                throw new CuentaAhorroTopeDeRetiroException("No es posible realizar el Retiro, Supera el tope mínimo permitido de retiro");
            }
        }
예제 #16
0
        public override void Retirar(Transaccion transaccion)
        {
            double nuevoSaldo = Saldo - AplicarImpuesto(transaccion.Valor);

            if (nuevoSaldo >= SOBREGIRO)
            {
                MovimientoFinanciero movimiento = new MovimientoFinanciero();
                movimiento.ValorRetiro     = AplicarImpuesto(transaccion.Valor);
                movimiento.FechaMovimiento = DateTime.Now;
                Saldo = nuevoSaldo;
                this.Movimientos.Add(movimiento);
            }
            else
            {
                throw new CuentaCorrienteRetirarMaximoSobregiroException("No es posible realizar el Retiro, supera el valor de sobregiro permitido");
            }
        }
예제 #17
0
        public void Retirar(double valor)
        {
            double SaldoTemporal = Saldo + valor;

            if (SaldoTemporal <= CupoMaximo)
            {
                MovimientoFinanciero retiro = new MovimientoFinanciero();
                retiro.ValorRetiro     = valor;
                retiro.FechaMovimiento = DateTime.Now;
                Saldo += valor;
                Movimientos.Add(retiro);
            }
            else
            {
                throw new TarjetaCreditoRetiroExcedeCupoException("No se puede retirar, excede el cupo");
            }
        }
예제 #18
0
        public override void Retirar(double valor)
        {
            double nuevoSaldo = Saldo - valor;

            if (nuevoSaldo >= SOBREGIRO)
            {
                MovimientoFinanciero movimiento = new MovimientoFinanciero();
                movimiento.Monto           = valor;
                movimiento.FechaMovimiento = DateTime.Now;
                Saldo -= valor;
                this.Movimientos.Add(movimiento);
            }
            else
            {
                throw new CuentaCorrienteRetirarMaximoSobregiroException("No es posible realizar el Retiro, supera el valor de sobregiro permitido");
            }
        }
예제 #19
0
        public override void Consignar(MovimientoFinanciero movimiento)
        {
            var movimientoBusquedad = this.Movimientos.Count();

            if (movimientoBusquedad != 0)
            {
                throw new InvalidOperationException("Solo se puede realizar una consignación");
            }
            if (movimiento.Monto > ConsignacionInicial)
            {
                base.Consignar(movimiento);
            }
            else
            {
                throw new InvalidOperationException("error");
            }
        }
예제 #20
0
        public override void Consignar(MovimientoFinanciero movimiento)
        {
            var movimientoBusquedad = this.Movimientos.Where(T => T.Tipo == MovimientoType.INGRESO).Count();

            if (movimientoBusquedad == 0 && movimiento.Monto >= 50000)
            {
                base.Consignar(movimiento);
            }
            else if (movimientoBusquedad != 0 && movimiento.Monto > 0 && movimiento.TipoCiudad == CiudadType.Otros)
            {
                movimiento.Monto -= 10000;
                base.Consignar(movimiento);
            }
            else if (movimientoBusquedad != 0 && movimiento.Monto > 0 && movimiento.TipoCiudad == CiudadType.Origen)
            {
                base.Consignar(movimiento);
            }
        }
        public override void Retirar(double valor)
        {
            if (valor <= 0)
            {
                throw new CuentaCorrienteRetirarMaximoSobregiroException("el valor debe ser mayor");
            }
            if (valor > Saldo)
            {
                throw new InvalidOperationException("El valor  no puede ser mayor al saldo");
            }
            MovimientoFinanciero retiro = new MovimientoFinanciero();

            retiro.Monto           = valor;
            retiro.FechaMovimiento = DateTime.Now;
            retiro.Tipo            = MovimientoType.EGRESO;
            Saldo -= valor;
            this.Movimientos.Add(retiro);
        }
예제 #22
0
        public override void Retirar(Transaccion transaccion)
        {
            if (!ValidarRetirosDelMes())
            {
                transaccion.Valor += _COSTORETIRO;
            }
            double nuevoSaldo = Saldo - transaccion.Valor;

            if (nuevoSaldo >= _TOPERETIRO)
            {
                MovimientoFinanciero retiro = new MovimientoFinanciero();
                retiro.ValorRetiro     = transaccion.Valor;
                retiro.FechaMovimiento = DateTime.Now;
                Saldo -= transaccion.Valor;
                this.Movimientos.Add(retiro);
            }
            else
            {
                throw new CuentaAhorroTopeDeRetiroException("No es posible realizar el Retiro, Supera el tope mínimo permitido de retiro");
            }
        }
예제 #23
0
        public void NuevoMovimiento(double valor, string tipoMovimiento)
        {
            MovimientoFinanciero movimiento = new MovimientoFinanciero();

            switch (tipoMovimiento)
            {
            case "Consignar":
                Saldo += valor;
                movimiento.ValorConsignacion = valor;
                break;

            case "Retirar":
                Saldo -= valor;
                movimiento.ValorRetiro = valor;
                break;
            }

            movimiento.FechaMovimiento = DateTime.Now;

            this.Movimientos.Add(movimiento);
        }
예제 #24
0
 public void Consignar(double valor)
 {
     if (this.ConsignacionInicial == true)
     {
         if (valor >= MINIMOCONSIGNACION)
         {
             MovimientoFinanciero consignacion = new MovimientoFinanciero();
             consignacion.ValorConsignacion = valor;
             consignacion.FechaMovimiento   = DateTime.Now;
             Saldo += valor;
             this.Movimientos.Add(consignacion);
             this.ConsignacionInicial = false;
             this.FechaDeInicio       = consignacion.FechaMovimiento;
         }
         else
         {
             throw new Exception("No es posible realizar la consignacion, la primera consignacion debe ser mayor a 1 millon");
         }
     }
     else
     {
         throw new Exception("Solo se puede consignar una vez");
     }
 }
 public void Trasladar(IServicioFinanciero servicioFinanciero, MovimientoFinanciero movimiento)
 {
     Retirar(movimiento.Monto);
     servicioFinanciero.Consignar(movimiento);
 }