public override string ToString()
        {
            StringBuilder texto = new StringBuilder();

            texto.AppendLine($"Titular: {Titular}");
            texto.AppendLine($"Numero: {Numero}");
            texto.AppendLine($"Saldo atual: ${Saldo.ToString("F2")}");
            texto.AppendLine($"Limite de emprestismo: ${Limite.ToString("F2")}");
            return(texto.ToString());
        }
Esempio n. 2
0
 /// <summary>
 /// Crea un portafogli iniziale pari a 10 monete.
 /// </summary>
 #endregion
 public void CreaPortafogli()
 {
     for (var i = 0; i < NumMoneteIniziale; i++)
     {
         if (IdUnivoco != null)
         {
             Saldo.Push(new Moneta((int)IdUnivoco));
         }
     }
 }
Esempio n. 3
0
        private bool CheckExpensePayment(Saldo s, RegularPayment payment)
        {
            var paymentArticle = _db.SeekAccount(payment.Article);

            return((from tr in _db.TransWithTags
                    where tr.Timestamp.IsMonthTheSame(s.StartDate) &&
                    tr.Tags != null &&
                    tr.Tags.Contains(paymentArticle)
                    select tr).FirstOrDefault() != null);
        }
Esempio n. 4
0
 private void UserControl_Loaded(object sender, RoutedEventArgs e)
 {
     if (!firstTimeLoad)
     {
         loadingVisualElement.Visibility = Visibility.Visible;
         DashboardContent.IsEnabled      = false;
         saldo         = new Saldo();
         firstTimeLoad = true;
     }
 }
Esempio n. 5
0
        private void Saldo_Leave(object sender, EventArgs e)
        {
            decimal numero = default(decimal);
            bool    bln    = decimal.TryParse(Saldo.Text, out numero);

            if ((!(bln)) && Saldo.Text.Length > 0)
            {
                Saldo.Clear();
                MessageBox.Show("Saldo Incorrecto");
            }
        }
 private void FillInDepositResultList(Saldo s)
 {
     Blank.DepositResultList = new ObservableCollection <string> {
         $"Открытие или доп.взносы {s.DepoTraffic.ToDepo:#,0} usd"
     };
     Blank.DepositResultList.Add($"Закрытие или расходные {s.DepoTraffic.FromDepo:#,0} usd");
     Blank.DepositResultList.Add($"\nПроценты по депозитам (*)  {s.Incomes.OnDeposits.TotalInUsd:#,0} usd");
     Blank.DepositResultList.Add($"Курсовые разницы  {s.ExchangeDepositDifference:#,0} usd");
     Blank.DepositResultList.Add(
         $"\nПрибыль с учетом курсовых разниц {s.Incomes.OnDeposits.TotalInUsd + s.ExchangeDepositDifference:#,0} usd");
 }
Esempio n. 7
0
        public override string ToString()
        {
            StringBuilder sb = new StringBuilder();

            sb.AppendLine(Mensagem());
            sb.AppendLine("");
            sb.AppendLine("Número: " + Numero);
            sb.AppendLine("Titular: " + Titular);
            sb.AppendLine("Saldo: R$ " + Saldo.ToString("F2", CultureInfo.InvariantCulture));
            return(sb.ToString());
        }
Esempio n. 8
0
        private void CheckRegularExpenses(Saldo s)
        {
            var regularExpenses = _regularPaymentsProvider.RegularPayments.Expenses;

            foreach (var payment in regularExpenses.Where(payment => !CheckExpensePayment(s, payment)))
            {
                s.ForecastRegularExpense.Payments.Add(new EstimatedMoney {
                    Amount = payment.Amount, Currency = payment.Currency, ArticleName = payment.Article
                });
            }
        }
Esempio n. 9
0
 public override string ToString()
 {
     return("\n"
            + "Dados da Conta: \n"
            + "Conta: "
            + NroConta.ToString()
            + ", Titular: "
            + _titular
            + ", Saldo: "
            + Saldo.ToString());
 }
Esempio n. 10
0
        // public void PrintDadosDaConta()
        //{
        //   Console.WriteLine("Dados da conta:" + Environment.NewLine + "Conta " + NumConta + ", Titular: " + Nome + ", Saldo: " + Saldo);
        //}


        public override string ToString()
        {
            return
                (Environment.NewLine +
                 "Conta " +
                 NumConta +
                 ", Titular: " +
                 Nome +
                 ", Saldo: " +
                 Saldo.ToString("F2", CultureInfo.InvariantCulture));
        }
Esempio n. 11
0
 public void save(Saldo saldo)
 {
     if (saldo.Id > 0)
     {
         update(saldo);
     }
     else
     {
         insert(saldo);
     }
 }
Esempio n. 12
0
        public override string ToString()
        {
            string retorno = "";

            retorno += "TipoConta: " + TipoConta + " | ";
            retorno += "TipoBanco: " + TipoBanco + "| ";
            retorno += "Nome: " + Nome + " | ";
            retorno += "Saldo: R$ " + Saldo.ToString("N2") + " | ";
            retorno += "Crédito: R$ " + Credito + " | ";
            return(retorno);
        }
Esempio n. 13
0
        public async Task <IHttpActionResult> GetSaldo(int id)
        {
            Saldo saldo = await db.Saldos.FindAsync(id);

            if (saldo == null)
            {
                return(NotFound());
            }

            return(Ok(saldo));
        }
        private void FillInResultList(Saldo s)
        {
            Blank.ResultList = new ObservableCollection <string> {
                $"Финансовый результат месяца {s.Incomes.TotalInUsd:#,0} - {s.Expense.TotalInUsd:#,0} = {s.Incomes.TotalInUsd - s.Expense.TotalInUsd:#,0} usd\n"
            };

            Blank.ResultList.Add(String.Format("Курсовые разницы {4:#,0} - ({0:#,0} + {1:#,0} - {2:#,0}) = {3:#,0} usd",
                                               s.BeginBalance.Common.TotalInUsd, s.Incomes.TotalInUsd, s.Expense.TotalInUsd, s.ExchangeDifference, s.EndBalance.Common.TotalInUsd));

            Blank.ResultList.Add(
                $"\n\n\nС учетом курсовых разниц {s.Incomes.TotalInUsd:#,0} - {s.Expense.TotalInUsd:#,0} + {s.ExchangeDifference:#,0} = {s.EndBalance.Common.TotalInUsd - s.BeginBalance.Common.TotalInUsd:#,0} usd");
        }
Esempio n. 15
0
 public override string ToString()
 {
     return("Dados da conta:\n"
            + "Conta "
            + NumeroConta
            + ", "
            + "Titular: "
            + NomeDoTitular
            + ", "
            + "Saldo: $ "
            + Saldo.ToString("F2", CultureInfo.InvariantCulture));
 }
Esempio n. 16
0
        public async Task <IHttpActionResult> PostSaldo(Saldo saldo)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            db.Saldos.Add(saldo);
            await db.SaveChangesAsync();

            return(CreatedAtRoute("DefaultApi", new { id = saldo.SaldoId }, saldo));
        }
Esempio n. 17
0
        public void IngresoCuentaCorriente(FormCollection collection)
        {
            if (Request.Form["Numero"] != null && Request.Form["BancoID"] != null && !Request.Form["Numero"].ToString().Equals("") && !Request.Form["BancoID"].ToString().Equals(""))
            {
                Proyecto proyecto = (Proyecto)Session["Proyecto"];
                Persona  Persona  = (Persona)Session["Persona"];

                Direccion direccionCtaCte = new Direccion();
                direccionCtaCte.Mostrar  = 1;
                direccionCtaCte.ComunaID = 1;
                db.Direccion.Add(direccionCtaCte);
                db.SaveChanges();

                CuentaCorriente cuentaCorriente = new CuentaCorriente();
                cuentaCorriente.ProyectoID   = proyecto.ID;
                cuentaCorriente.BancoID      = Int32.Parse(Request.Form["BancoID"].ToString());
                cuentaCorriente.Numero       = Request.Form["Numero"].ToString();
                cuentaCorriente.Desactiva    = 0;
                cuentaCorriente.LineaCredito = 0;
                cuentaCorriente.DireccionID  = direccionCtaCte.ID;

                db.CuentaCorriente.Add(cuentaCorriente);
                db.SaveChanges();

                Saldo saldo = new Saldo();
                saldo.CuentaCorrienteID = cuentaCorriente.ID;
                saldo.Mes     = Int32.Parse(Session["Mes"].ToString());
                saldo.Periodo = Int32.Parse(Session["Periodo"].ToString());

                if (Request.Form["SaldoInicial"] != null && !Request.Form["SaldoInicial"].ToString().Equals("") && !Request.Form["SaldoInicial"].ToString().Equals("0"))
                {
                    saldo.SaldoInicialCartola = Int32.Parse(Request.Form["SaldoInicial"].ToString());
                    saldo.SaldoFinal          = saldo.SaldoInicialCartola;
                    //saldo.SaldoFinalCartola = saldo.SaldoInicialCartola;
                }
                else
                {
                    saldo.SaldoInicialCartola = 0;
                    saldo.SaldoFinal          = 0;
                    //saldo.SaldoFinalCartola = 0;
                }

                db.Saldo.Add(saldo);
                db.SaveChanges();
                Session.Add("CuentaCorriente", cuentaCorriente);
                Session.Add("InformacionPie", (proyecto).NombreLista + " | " + cuentaCorriente.Banco.Nombre + " " + cuentaCorriente.NumeroLista + " | " + Persona.NombreCompleto + " | " + Session["Fecha"].ToString());
                Response.Redirect("../Home", false);
            }
            else
            {
                Response.Redirect("./IngresoCuentaCorriente", false);
            }
        }
 public override void Sacar(double valor)
 {
     if (Saldo <= 0 || (Saldo - (valor + taxaDeOperacao)) < 0)
     {
         Console.WriteLine("Saldo Insuficiente para o saque!");
     }
     else
     {
         Saldo = Saldo - valor - taxaDeOperacao;
         Console.WriteLine("Saque Realizado com sucesso!");
         Console.WriteLine($"Seu saldo é de ${Saldo.ToString("N2")} Reais");
     }
 }
Esempio n. 19
0
        public MonthAnalyzer(RateExtractor rateExtractor,
                             MonthTrafficAnalyzer monthTrafficAnalyzer,
                             MonthBalancesAnalyzer monthBalancesAnalyzer,
                             MonthForecaster monthForecaster
                             )
        {
            _rateExtractor         = rateExtractor;
            _monthTrafficAnalyzer  = monthTrafficAnalyzer;
            _monthBalancesAnalyzer = monthBalancesAnalyzer;
            _monthForecaster       = monthForecaster;

            Result = new Saldo();
        }
        public override string ToString()
        {
            StringBuilder sb = new StringBuilder();

            //Adicionando os valores inerentes somente à classe ContaEmpresarial

            sb.AppendLine(Mensagem());
            sb.AppendLine("CNPJ:" + Cnpj);
            sb.AppendLine("Empresa: " + Titular);
            sb.AppendLine("Número da Conta: " + Numero);
            sb.AppendLine("Saldo: R$ " + Saldo.ToString("F2", CultureInfo.InvariantCulture));;
            return(sb.ToString());
        }
Esempio n. 21
0
        private void CheckRegularIncome(Saldo s)
        {
            var regularIncome = _regularPaymentsProvider.RegularPayments.Income;

            foreach (var payment in regularIncome.Where(payment => !CheckIncomePayment(s, payment)))
            {
                s.ForecastRegularIncome.Payments.Add(new EstimatedMoney {
                    Amount = payment.Amount, Currency = payment.Currency, ArticleName = payment.Article
                });
                s.ForecastRegularIncome.EstimatedSum +=
                    _rateExtractor.GetUsdEquivalent(payment.Amount, payment.Currency, DateTime.Today);
            }
        }
Esempio n. 22
0
 public override string ToString()
 {
     return("|------------------------------"
            + "\n| Dados atualizados:\n"
            + "| Cliente: "
            + _nomeTitular
            + "\n| Conta: "
            + NumConta
            + "\n| Saldo Conta: R$ "
            + Saldo.ToString("F2")
            + " reais."
            + "\n|------------------------------");
 }
        private void FillInRatesList(Saldo s)
        {
            var euroBegin = 1 / s.BeginRates.First(t => t.Currency == CurrencyCodes.EUR).Rate;
            var euroEnd   = 1 / s.EndRates.First(t => t.Currency == CurrencyCodes.EUR).Rate;
            var rurBegin  = s.BeginRates.First(t => t.Currency == CurrencyCodes.RUB).Rate;
            var rurEnd    = s.EndRates.First(t => t.Currency == CurrencyCodes.RUB).Rate;

            Blank.RatesList = new ObservableCollection <string>
            {
                $"Изменение курсов\n\n  {HowBelarussianCurrencyChanged(s)}\n" +
                $"  Euro {HowCurrencyChanged(euroEnd, euroBegin)}:  {euroBegin:0.###} - {euroEnd:0.###} \n" +
                $"  Rur {HowCurrencyChanged(rurBegin, rurEnd)}:  {rurBegin:0.###} - {rurEnd:0.###} \n"
            };
        }
Esempio n. 24
0
        public IEnumerable <Saldo> BuscarSaldoTodosClientes()
        {
            var sqlVendas = "SELECT                                     " +
                            "    c.ClienteId as ClienteId,                              " +
                            "    c.NomeCompleto as ClienteNome,                         " +
                            "    SUM(v.Valor) as Valor                                  " +
                            "FROM Clientes c                                            " +
                            "LEFT OUTER JOIN Vendas     v ON v.ClienteId = c.ClienteId  " +
                            "GROUP BY c.ClienteId, c.NomeCompleto                       ";


            var sqlPagametos = "SELECT                                  " +
                               "    c.ClienteId as ClienteId,                              " +
                               "    c.NomeCompleto as ClienteNome,                         " +
                               "    SUM(p.Valor) as Valor                                  " +
                               "FROM Clientes c                                            " +
                               "LEFT OUTER JOIN Pagamentos p ON p.ClienteId = c.ClienteId  " +
                               "GROUP BY c.ClienteId, c.NomeCompleto                       ";

            using (var conexao = GetConexao())
            {
                var vendas = conexao.Query <Saldo>(sqlVendas);
                foreach (var v in vendas)
                {
                    v.Valor = v.Valor * -1;
                }


                var todos = new List <Saldo>();
                todos.AddRange(vendas);


                todos.AddRange(conexao.Query <Saldo>(sqlPagametos));

                var resultado = new List <Saldo>();
                foreach (var linha in todos.GroupBy(x => x.ClienteId))
                {
                    var cliente = linha.FirstOrDefault();
                    var saldo   = new Saldo();

                    saldo.ClienteId   = cliente.ClienteId;
                    saldo.ClienteNome = cliente.ClienteNome;
                    saldo.Valor       = linha.Sum(x => x.Valor);

                    resultado.Add(saldo);
                }

                return(resultado);
            }
        }
Esempio n. 25
0
        public async Task <IHttpActionResult> DeleteSaldo(int id)
        {
            Saldo saldo = await db.Saldos.FindAsync(id);

            if (saldo == null)
            {
                return(NotFound());
            }

            db.Saldos.Remove(saldo);
            await db.SaveChangesAsync();

            return(Ok(saldo));
        }
Esempio n. 26
0
        public virtual bool Sacar(double valorDeSaque) //Uma pessoa paga uma taxa de 10 reais, por saque
        {
            if (valorDeSaque + 10 > Saldo)
            {
                Console.Write($"Não é possível sacar o dinheiro.\nSaldo insuficiente!\nSaldo: R${Saldo}");

                return(false);
            }

            Saldo -= valorDeSaque + 10;

            Console.WriteLine($"Saldo atual: R${Saldo.ToString("F2")}");

            return(true);
        }
Esempio n. 27
0
        public void calcularSaldos(int p_, int m_, Proyecto p, CuentaCorriente c)
        {
            SAG2DB db           = new SAG2DB();
            int    saldoInicial = db.Saldo.Where(s => s.CuentaCorrienteID == c.ID && s.Mes == p_ && s.Periodo == p_).Single().SaldoInicialCartola;
            int    saldo        = saldoInicial;
            int    ig           = db.Movimiento.Where(m => m.Mes == m_ && m.ProyectoID == p.ID && m.Periodo == p_ && m.Nulo == null && m.Temporal == null && m.Eliminado == null).Sum(m => m.Monto_Ingresos);
            int    eg           = db.Movimiento.Where(m => m.Mes == m_ && m.ProyectoID == p.ID && m.Periodo == p_ && m.Nulo == null && m.Temporal == null && m.Eliminado == null).Sum(m => m.Monto_Egresos);
            Saldo  sa           = db.Saldo.Where(s => s.CuentaCorrienteID == c.ID && s.Mes == m_ && s.Periodo == p_).Single();

            sa.SaldoInicialCartola = saldo;
            saldo              = saldo + ig - eg;
            sa.SaldoFinal      = saldo;
            db.Entry(sa).State = EntityState.Modified;
            db.SaveChanges();
        }
 /// <summary>
 /// Crea un portafogli iniziale pari a 10 monete.
 /// </summary>
 #endregion
 public void CreaPortafogli()
 {
     for (var i = 0; i < NumMoneteIniziale; i++)
     {
         try
         {
             Saldo.Push(new Moneta((int)IdUnivoco));
         }
         catch (InvalidOperationException eccezione)
         {
             Console.WriteLine(eccezione.Message);
             throw;
         }
     }
 }
Esempio n. 29
0
        public override string ToString()
        {
            StringBuilder sb = new StringBuilder();

            sb.Append("Número: ");
            sb.AppendLine(Numero.ToString());
            sb.Append("Titular: ");
            sb.AppendLine(Titular);
            sb.Append("Saldo: ");
            sb.AppendLine(Saldo.ToString("F2", CultureInfo.InvariantCulture));
            sb.Append("Limite para Saque: ");
            sb.AppendLine(LimiteSaque.ToString("F2", CultureInfo.InvariantCulture));

            return(sb.ToString());
        }
 private string HowBelarussianCurrencyChanged(Saldo s)
 {
     if (s.StartDate < new DateTime(2016, 7, 1))
     {
         var byrBegin = s.BeginRates.First(t => t.Currency == CurrencyCodes.BYR).Rate;
         var byrEnd   = s.EndRates.First(t => t.Currency == CurrencyCodes.BYR).Rate;
         return($"Byr {HowCurrencyChanged(byrBegin, byrEnd)}:  {byrBegin:#,0} - {byrEnd:#,0}");
     }
     else
     {
         var bynBegin = s.BeginRates.First(t => t.Currency == CurrencyCodes.BYN).Rate;
         var bynEnd   = s.EndRates.First(t => t.Currency == CurrencyCodes.BYN).Rate;
         return($"Byn {HowCurrencyChanged(bynBegin, bynEnd)}:  {bynBegin:#,0.0000} - {bynEnd:#,0.0000}");
     }
 }
        public Boolean insert(List<clsvwComprobanteMayorizar> lista)
        {
            try
            {
                using (EntitiesContabilidad2 ent =new EntitiesContabilidad2())
                {
                    foreach (var item in lista)
                    {
                        var s =from q in ent.DetalleComprobante where q.IdEmpresa==item.IdEmpresa && q.cabecera_comprobante==item.numero_comprobante select q;
                        foreach (var item2 in s)
                        {
                            try
                            {
                                EntitiesContabilidad2 ent2 = new EntitiesContabilidad2();
                                DateTime fecha=(from q in ent2.PeriodoContable where q.FechaInicio < item.fecha && q.FechaFin > item.fecha select q.FechaFin).First();
                                if ((from q in ent.Saldo where q.fecha == fecha select q).Count() > 0)
                                {
                                    var saldo = (from q in ent2.Saldo where q.fecha == fecha && q.cuenta == item2.cuenta select q).First();
                                    saldo.saldo_deudor = saldo.saldo_deudor + item2.debe;
                                    saldo.saldo_acreedor = saldo.saldo_acreedor + item2.haber;
                                    ent2.SaveChanges();
                                }
                                else {
                                    Saldo sald = new Saldo()
                                    {
                                        IdEmpresa = 1,
                                        cuenta = item2.cuenta,
                                        //esta fecha debe ser la fechafinal del periodo
                                        fecha = Convert.ToDateTime((from q in ent.PeriodoContable where q.FechaInicio < item.fecha && q.FechaFin > item.fecha select q.FechaFin).First()),
                                        //el debe y el haber se debe acumular segun la cuenta y la fecha del periodo si ya existe en la base
                                        saldo_deudor = item2.debe,
                                        saldo_acreedor = item2.haber,
                                        IdUsuario = 1,
                                        FechaModificacion = DateTime.Now
                                    };
                                    ent.AddToSaldo(sald);
                                }
                            }
                            catch (Exception)
                            {
                                Saldo sald = new Saldo()
                                {
                                    IdEmpresa = 1,
                                    cuenta = item2.cuenta,
                                    //esta fecha debe ser la fechafinal del periodo
                                    fecha = Convert.ToDateTime((from q in ent.PeriodoContable where q.FechaInicio < item.fecha && q.FechaFin > item.fecha select q.FechaFin).First()),
                                    //el debe y el haber se debe acumular segun la cuenta y la fecha del periodo si ya existe en la base
                                    saldo_deudor = item2.debe,
                                    saldo_acreedor = item2.haber,
                                    IdUsuario = 1,
                                    FechaModificacion = DateTime.Now
                                };
                                ent.AddToSaldo(sald);
                            }

                        }
                        SaldoxComprobante xc = new SaldoxComprobante()
                        {
                            IdEmpresa=1,
                            numero_comprobante=item.numero_comprobante
                        };
                        ent.AddToSaldoxComprobante(xc);
                    }

                    ent.SaveChanges();
                }
                return true;
            }
            catch (Exception)
            {
                return false;
            }
        }
        public Vida CotizaVidaPRYBE(string Credito, string Plazo, string AnoCredito)
        {
            Vida cotizacion = new Vida();            
            List<Saldo> saldos = new List<Saldo>();

            double tarVida, tasaInteres, mensualidad;

            int i;

            double tmpArriba, tmpAbajo;

            try
            {

                tarVida = Convert.ToDouble(System.Configuration.ConfigurationManager.AppSettings["TarifaVida"].ToString());
                tasaInteres = Convert.ToDouble(System.Configuration.ConfigurationManager.AppSettings["InteresVida"].ToString());
                tasaInteres = (tasaInteres / 100);

                tmpArriba = ((tasaInteres) * Math.Pow(1 + tasaInteres, Convert.ToDouble(Plazo)));
                tmpAbajo = ((Math.Pow(1 + tasaInteres, Convert.ToDouble(Plazo))) - 1);

                mensualidad = (Convert.ToDouble(Credito) * (tmpArriba / tmpAbajo));

                double saldoAnterior = Convert.ToDouble(Credito);

                for (i = 0; i <= (Convert.ToInt32(Plazo)); i++)
                {
                    double saldoInsoluto, cuotaVida, interes, capital;
                    Saldo tmp = new Saldo();

                    if (i == 0)
                    {
                        saldoInsoluto = saldoAnterior;
                        cuotaVida = (saldoInsoluto * tarVida);

                        tmp.Periodo = i;
                        tmp.Pago = mensualidad;
                        tmp.Capital = 0.00;
                        tmp.Interes = 0.00;
                        tmp.SaldoInsoluto = saldoInsoluto;
                        tmp.CuotaVida = cuotaVida;
                    }
                    else
                    {

                        interes = (saldoAnterior * tasaInteres);
                        capital = (mensualidad - interes);
                        saldoInsoluto = (saldoAnterior - capital);
                        cuotaVida = (saldoInsoluto * tarVida);

                        tmp.Periodo = i;
                        tmp.Pago = mensualidad;
                        tmp.Capital = capital;
                        tmp.Interes = interes;
                        tmp.SaldoInsoluto = saldoInsoluto;
                        tmp.CuotaVida = cuotaVida;
                    }
                    saldos.Add(tmp);

                    saldoAnterior = saldoInsoluto;
                }
                               

                cotizacion.HTMLString = GeneraCorridaHTML(saldos);

                int mesInicio, mesFin;
                int noMeses;

                noMeses = ((Convert.ToInt32(AnoCredito) + 1) * 12);

                mesFin = noMeses - 1;
                mesInicio = noMeses - 12;

                double primaTotal, pagoMensual;

                primaTotal = 0.00;
                pagoMensual = 0.00;

                for (i = mesInicio; i <= mesFin; i++)
                {
                    Saldo saldo;

                    saldo = saldos.ElementAt(i);
                    primaTotal += saldo.CuotaVida;

                    saldo.Interes = Math.Round(saldo.Interes, 2);
                    saldo.CuotaVida = Math.Round(saldo.CuotaVida, 2);
                    saldo.Pago = Math.Round(saldo.Pago, 2);
                    saldo.SaldoInsoluto = Math.Round(saldo.SaldoInsoluto, 2);
                    saldo.Capital = Math.Round(saldo.Capital, 2);

                    cotizacion.saldos.Add(saldo);
                }

                pagoMensual = ((primaTotal / 12));

                cotizacion.PrimaTotal = Convert.ToString(primaTotal);
                cotizacion.PagoMensual = Convert.ToString(pagoMensual);

                Cobertura tmp1 = new Cobertura();
                Cobertura tmp2 = new Cobertura();
                Cobertura tmp3 = new Cobertura();
                Cobertura tmp4 = new Cobertura();

                tmp1.Id = "1";
                tmp1.Descripcion = "COBERTURA BASICA";
                tmp1.SumaAseg = "SALDO INSOLUTO";
                cotizacion.coberturas.Add(tmp1);

                tmp2.Id = "2";
                tmp2.Descripcion = "INVALIDEZ TOTAL Y PERMANENTE";
                tmp2.SumaAseg = "AMPARADA";
                cotizacion.coberturas.Add(tmp2);

                tmp3.Id = "3";
                tmp3.Descripcion = "COBERTURA POR DESEMPLEO";
                tmp3.SumaAseg = "AMPARADA";
                cotizacion.coberturas.Add(tmp3);

                tmp4.Id = "4";
                tmp4.Descripcion = "FALLECIMIENTO DEL COACREDITADO";
                tmp4.SumaAseg = "AMPARADA";
                cotizacion.coberturas.Add(tmp4);
            }
                 
            catch (Exception ex)
            {
                cotizacion.ErrorBool = true;
                cotizacion.ErrorDesc = ex.Message;
            }

            return cotizacion;
        }
        public Vida CotizaVidaCPM(string Credito, string Plazo, string AnoCredito, string FechaInicio, string TasaInteresAnual)
        {
            Vida cotizacion = new Vida();
            List<Saldo> saldos = new List<Saldo>();
             
            double tarVida, tasaInteresAnual, tasaInteresMensual, mensualidad, totalIntereses;
            DateTime fechaActual, fechaPasada;

            int i;

            double tmpArriba, tmpAbajo;

            try
            {
                cotizacion.CreditoInicial = Convert.ToDouble(Credito).ToString("$#,##0.00");

                tarVida = Convert.ToDouble(System.Configuration.ConfigurationManager.AppSettings["TarifaVida"].ToString());

                tasaInteresAnual=Convert.ToDouble(TasaInteresAnual);
                tasaInteresAnual = (tasaInteresAnual / 100);

                tasaInteresMensual= (Convert.ToDouble(TasaInteresAnual)/12);
                tasaInteresMensual = (tasaInteresMensual / 100);

                tmpArriba = ((tasaInteresMensual) * Math.Pow(1 + tasaInteresMensual, Convert.ToDouble(Plazo)));
                tmpAbajo = ((Math.Pow(1 + tasaInteresMensual, Convert.ToDouble(Plazo))) - 1);

                mensualidad = (Convert.ToDouble(Credito) * (tmpArriba / tmpAbajo));

                double saldoAnterior = Convert.ToDouble(Credito);

                fechaPasada=Convert.ToDateTime(FechaInicio);

                for (i = 0; i <= (Convert.ToInt32(Plazo)); i++)
                {
                    double saldoInsoluto, cuotaVida, interes, capital;

                    int dias;
                    TimeSpan tiempo;
                    Saldo tmp = new Saldo();

                    if (i == 0)
                    {
                        saldoInsoluto = saldoAnterior;
                        cuotaVida = (saldoInsoluto * tarVida);
                        tmp.FechaPago = fechaPasada.ToString("dd/MM/yyyy");
                        tmp.DiasTranscurridos = "0";
                        tmp.Periodo = i;
                        tmp.Pago = mensualidad;
                        tmp.Capital = 0.00;
                        tmp.Interes = 0.00;
                        tmp.SaldoInsoluto = saldoInsoluto;
                        tmp.CuotaVida = cuotaVida;
                    }
                    else
                    {
                        fechaActual = fechaPasada.AddMonths(1);
                        tiempo = fechaActual.Subtract(fechaPasada);
                        dias = tiempo.Days;

                        if (i == Convert.ToInt32(Plazo))
                        {
                            capital = saldoAnterior;
                            interes = ((saldoAnterior * tasaInteresAnual * dias) / 360);
                            tmp.Periodo = i;
                            tmp.FechaPago = fechaActual.ToString("dd/MM/yyyy");
                            tmp.DiasTranscurridos = Convert.ToString(dias);
                            tmp.Pago = capital + interes;
                            tmp.Capital = capital;
                            tmp.Interes = interes;
                            tmp.SaldoInsoluto = 0.00;
                            tmp.CuotaVida = 0.00;
                        }
                        else
                        {
                            interes = ((saldoAnterior * tasaInteresAnual * dias) / 360);
                            capital = (mensualidad - interes);
                            saldoInsoluto = (saldoAnterior - capital);
                            cuotaVida = (saldoInsoluto * tarVida);

                            tmp.Periodo = i;
                            tmp.Pago = mensualidad;
                            tmp.FechaPago = fechaActual.ToString("dd/MM/yyyy");
                            tmp.DiasTranscurridos = Convert.ToString(dias);
                            tmp.Capital = capital;
                            tmp.Interes = interes;
                            tmp.SaldoInsoluto = saldoInsoluto;
                            tmp.CuotaVida = cuotaVida;

                            saldoAnterior = saldoInsoluto;
                        }
                        fechaPasada = fechaActual;                        
                    }                    
                    saldos.Add(tmp);   
                }         

                cotizacion.HTMLString = GeneraCorridaHTML(saldos);

                int mesInicio, mesFin;
                int noMeses;

                noMeses = ((Convert.ToInt32(AnoCredito) + 1) * 12);

                mesFin = noMeses - 1;
                mesInicio = noMeses - 12;

                double primaTotal, pagoMensual;

                primaTotal = 0.00;
                pagoMensual = 0.00;

                for (i = mesInicio; i <= mesFin; i++)
                {
                    Saldo saldo;

                    saldo = saldos.ElementAt(i);
                    primaTotal += saldo.CuotaVida;

                    saldo.Interes = Math.Round(saldo.Interes, 2);
                    saldo.CuotaVida = Math.Round(saldo.CuotaVida, 2);
                    saldo.Pago = Math.Round(saldo.Pago, 2);
                    saldo.SaldoInsoluto = Math.Round(saldo.SaldoInsoluto, 2);
                    saldo.Capital = Math.Round(saldo.Capital, 2);

                    cotizacion.saldos.Add(saldo);
                }

                pagoMensual = ((primaTotal / 12));

                cotizacion.PrimaTotal = Convert.ToString(primaTotal);
                cotizacion.PagoMensual = Convert.ToString(pagoMensual);

                Cobertura tmp1 = new Cobertura();
                Cobertura tmp2 = new Cobertura();
                Cobertura tmp3 = new Cobertura();
                Cobertura tmp4 = new Cobertura();

                tmp1.Id = "1";
                tmp1.Descripcion = "COBERTURA BASICA";
                tmp1.SumaAseg = "SALDO INSOLUTO";
                cotizacion.coberturas.Add(tmp1);

                tmp2.Id = "2";
                tmp2.Descripcion = "INVALIDEZ TOTAL Y PERMANENTE";
                tmp2.SumaAseg = "AMPARADA";
                cotizacion.coberturas.Add(tmp2);

                tmp3.Id = "3";
                tmp3.Descripcion = "COBERTURA POR DESEMPLEO";
                tmp3.SumaAseg = "AMPARADA";
                cotizacion.coberturas.Add(tmp3);

                tmp4.Id = "4";
                tmp4.Descripcion = "FALLECIMIENTO DEL COACREDITADO";
                tmp4.SumaAseg = "AMPARADA";
                cotizacion.coberturas.Add(tmp4);
            }

            catch (Exception ex)
            {
                cotizacion.ErrorBool = true;
                cotizacion.ErrorDesc = ex.Message;
            }

            return cotizacion;
        }