Beispiel #1
0
            private bool VerificarInteresesDetallesPago(DateTime FechaCalcular)
            {
                DateTime FechaActual = FechaCalcular;
                mIntereses oTI = new mIntereses();
                bool Ok = true;
                foreach (detalles_pagoDto item in oDto.detalles_pago.Where(t => t.tipo == "CA").ToList())
                {
                    int ValorIntereses = 0;
                    config_grupos_pagos config = ctx.config_grupos_pagos.Where(t => t.id_concepto == item.id_concepto && t.vigencia == item.vigencia).FirstOrDefault();
                    if ((config != null) && (config.intereses == "SI"))
                    {
                        periodos periodo = ctx.periodos.Where(t => t.periodo == item.periodo && t.vigencia == item.vigencia).FirstOrDefault();
                        DateTime FechaVencimientoPeriodo = new DateTime((int)periodo.vigencia, (int)periodo.periodo, (int)periodo.vence_dia);

                        carterap cart = ctx.carterap.Where(t => t.id == item.id_cartera).FirstOrDefault();

                        DateTime FechaUltimoCalculoIntereses = cart.fechas_calculo_intereses.Where(t => t.estado == "PA").OrderByDescending(t => t.fecha).FirstOrDefault().fecha;

                        if (FechaActual > FechaVencimientoPeriodo)
                        {
                            ValorIntereses = oTI.GetValorIntereses(FechaUltimoCalculoIntereses, FechaActual, (float)item.valor, item.vigencia, item.periodo, item.id);
                        }
                    }

                    if (ValorIntereses > 0)
                    {
                        detalles_pagoDto detailsPaymentOld = oDto.detalles_pago.Where(t => t.tipo == "IN" && t.id_cartera == item.id_cartera).FirstOrDefault();
                        if ((detailsPaymentOld == null) || (detailsPaymentOld.valor != ValorIntereses))
                        {
                            Ok = false;
                            break;
                        }
                    }
                }
                return Ok;
            }
Beispiel #2
0
            public void OperacionIntereses()
            {
                if (oDto.causar_intereses)
                {
                    int ultId = 0;
                    try
                    {
                        ultId = ctx.carterap.Max(t => t.id);
                    }
                    catch { }

                    DateTime FechaActual = oDto.fecha_pago.Value.Date;
                    mIntereses oTI = new mIntereses();
                    foreach (detalles_pago item in Dto.detalles_pago.Where(t => t.tipo == "CA").ToList())
                    {
                        int ValorIntereses = 0;
                        config_grupos_pagos config = ctx.config_grupos_pagos.Where(t => t.id_concepto == item.id_concepto && t.vigencia == item.vigencia).FirstOrDefault();
                        if ((config != null) && (config.intereses == "SI"))
                        {
                            periodos periodo = ctx.periodos.Where(t => t.periodo == item.periodo && t.vigencia == item.vigencia).FirstOrDefault();
                            DateTime FechaVencimientoPeriodo = new DateTime((int)periodo.vigencia, (int)periodo.periodo, (int)periodo.vence_dia);
                            DateTime FechaUltimoCalculoIntereses = item.carterap.fechas_calculo_intereses.Where(t => t.estado == "PA").OrderByDescending(t => t.fecha).FirstOrDefault().fecha;

                            if (FechaActual > FechaVencimientoPeriodo)
                            {
                                ValorIntereses = oTI.GetValorIntereses(FechaUltimoCalculoIntereses, FechaActual, (float)item.valor, item.vigencia, item.periodo, item.id);
                            }
                        }

                        if (ValorIntereses > 0)
                        {
                            detalles_pago detailsPaymentOld = Dto.detalles_pago.Where(t => t.tipo == "IN" && t.id_cartera == item.id_cartera).FirstOrDefault();
                            if ((detailsPaymentOld == null) || (detailsPaymentOld.valor != ValorIntereses))
                            {
                                detalles_pago detPag = Dto.detalles_pago.Where(t => t.tipo == "CA" && t.id_cartera == item.id_cartera).FirstOrDefault();
                                carterap itemCart = detPag.carterap;
                                if (itemCart.valor - itemCart.pagado == 0)
                                {
                                    ultId++;
                                    carterap itemCartera = new carterap();
                                    itemCartera.id = ultId;
                                    itemCartera.vigencia = item.vigencia;
                                    itemCartera.id_concepto = 6;
                                    itemCartera.periodo = item.periodo;
                                    itemCartera.valor = ValorIntereses;
                                    itemCartera.id_matricula = item.carterap.id_matricula;
                                    itemCartera.id_estudiante = item.carterap.id_estudiante;
                                    itemCartera.pagado = 0;
                                    itemCartera.id_est = item.carterap.id_est;
                                    itemCartera.id_grupo = item.carterap.id_grupo;
                                    itemCartera.estado = "PR";
                                    itemCartera.pago_genero_intereses = Dto.id;
                                    ctx.carterap.Add(itemCartera);
                                }
                            }
                        }
                    }
                }
            }
Beispiel #3
0
            private string VerificarInteresesDetallesPago()
            {
                string CadenaTabla = "<table class='table table-bordered table-hover table-striped tablesorter'>" +
                                        "<thead>" +
                                            "<tr>" +
                                                "<th>Concepto <i class='fa fa-sort'></i></th>" +
                                                "<th style='text-align:right'>Valor Antes <i class='fa fa-sort'></i></th>" +
                                                "<th style='text-align:right'>Valor Ahora <i class='fa fa-sort'></i></th>" +
                                            "</tr>" +
                                        "</thead>" +
                                        "<tbody>";
                DateTime FechaActual = oDto.fecha_pago.Value.Date;
                mIntereses oTI = new mIntereses();
                foreach (detalles_pago item in Dto.detalles_pago.Where(t => t.tipo == "CA").ToList())
                {
                    int ValorIntereses = 0;
                    config_grupos_pagos config = ctx.config_grupos_pagos.Where(t => t.id_concepto == item.id_concepto && t.vigencia == item.vigencia).FirstOrDefault();
                    if ((config != null) && (config.intereses == "SI"))
                    {
                        periodos periodo = ctx.periodos.Where(t => t.periodo == item.periodo && t.vigencia == item.vigencia).FirstOrDefault();
                        DateTime FechaVencimientoPeriodo = new DateTime((int)periodo.vigencia, (int)periodo.periodo, (int)periodo.vence_dia);
                        DateTime FechaUltimoCalculoIntereses = item.carterap.fechas_calculo_intereses.Where(t => t.estado == "PA").OrderByDescending(t => t.fecha).FirstOrDefault().fecha;

                        if (FechaActual > FechaVencimientoPeriodo)
                        {
                            ValorIntereses = oTI.GetValorIntereses(FechaUltimoCalculoIntereses, FechaActual, (float)item.valor, item.vigencia, item.periodo, item.id);
                        }
                    }

                    if (ValorIntereses > 0)
                    {
                        detalles_pago detailsPaymentOld = Dto.detalles_pago.Where(t => t.tipo == "IN" && t.id_cartera == item.id_cartera).FirstOrDefault();
                        if ((detailsPaymentOld == null) || (detailsPaymentOld.valor != ValorIntereses))
                        {
                            detalles_pago detPag = Dto.detalles_pago.Where(t => t.tipo == "CA" && t.id_cartera == item.id_cartera).FirstOrDefault();
                            carterap itemCart = detPag.carterap;
                            if (itemCart.valor - itemCart.pagado - detPag.valor == 0)
                            {
                                int interesesPri = 0;
                                if (detailsPaymentOld != null) interesesPri = (int)detailsPaymentOld.valor;

                                detalles_pago det = Dto.detalles_pago.Where(t => t.tipo == "CA" && t.id_cartera == item.id_cartera).FirstOrDefault();
                                CadenaTabla += "<tr>" +
                                                    "<td>" + det.conceptos.nombre + ", periodo: " + det.periodo + "</td>" +
                                                    "<td style='text-align:right'>" + interesesPri.ToString("C") + "</td>" +
                                                    "<td style='text-align:right'>" + ValorIntereses.ToString("C") + "</td>" +
                                                "</tr>";
                            }
                        }
                    }
                }
                 CadenaTabla += "</tbody></table>";
                 return CadenaTabla;
            }
Beispiel #4
0
            private DateTime? CalcularFechaVencimientoLiquidacion()
            {
                DateTime FechaActual = oDto.fecha.Date;
                mIntereses oTI = new mIntereses();
                bool Ok = false;
                foreach (detalles_pagoDto item in oDto.detalles_pago.Where(t => t.tipo == "CA").ToList())
                {
                    config_grupos_pagos config = ctx.config_grupos_pagos.Where(t => t.id_concepto == item.id_concepto && t.vigencia == item.vigencia).FirstOrDefault();
                    if ((config != null) && (config.intereses == "SI")) Ok = true;
                }
                if (Ok == false) return null;
                else
                {
                    bool Seguir = true;

                    DateTime FechaExtrema = new DateTime(2100, 1, 1);
                    if (VerificarInteresesDetallesPago(FechaExtrema)) return null;
                    else
                    {
                        DateTime FechaVencimiento = oDto.fecha;
                        while (Seguir)
                        {
                            FechaVencimiento = FechaVencimiento.AddDays(1);
                            bool InteresesIguales = VerificarInteresesDetallesPago(FechaVencimiento);
                            if (InteresesIguales) Seguir = true;
                            else Seguir = false;
                        }
                        return FechaVencimiento.AddDays(-1);
                    }
                }
            }
Beispiel #5
0
        // los dos siguientes metodos son los de liquidar de manera provisional
        public List<detalles_pagoDto> GetDeudaEstudianteL(bDeudaEstudianteFecha reg)
        {
            mCausacion.Causar(reg.id_estudiante);
            using (ctx = new ieEntities())
            {
                DateTime FechaActual = reg.fecha;
                List<detalles_pagoDto> lDeuda = new List<detalles_pagoDto>();
                int VigPerAct = int.Parse(FechaActual.Year.ToString() + FechaActual.Month.ToString().PadLeft(2, '0'));
                List<carterap> lCartera = new List<carterap>();
                if (reg.id_grupo == null) lCartera = ctx.carterap.Where(t => t.id_estudiante == reg.id_estudiante && (t.estado == "PR" || t.estado == "CA") && (t.vigencia * 100 + t.periodo) <= VigPerAct && t.pagado < t.valor).OrderBy(t => t.vigencia).ThenBy(t => t.periodo).ThenBy(t => t.grupos_pagos.prioridad).ThenBy(t => t.id_concepto).ToList();
                else lCartera = ctx.carterap.Where(t => t.id_estudiante == reg.id_estudiante && t.id_grupo == reg.id_grupo && (t.estado == "PR" || t.estado == "CA") && (t.vigencia * 100 + t.periodo) <= VigPerAct && t.pagado < t.valor).OrderBy(t => t.vigencia).ThenBy(t => t.periodo).ThenBy(t => t.grupos_pagos.prioridad).ThenBy(t => t.id_concepto).ToList();

                bool ban = false;
                foreach (carterap item in lCartera)
                {
                    if (((item.id_grupo == lCartera[0].id_grupo) && (ban == false)) || reg.id_grupo == null)
                    {
                        detalles_pagoDto pagoCapital = new detalles_pagoDto();
                        detalles_pagoDto pagoIntereses = new detalles_pagoDto();

                        pagoCapital.id_concepto = item.id_concepto;
                        pagoCapital.valor = (int)(item.valor - item.pagado);
                        pagoCapital.nombre_concepto = item.conceptos.nombre;
                        pagoCapital.periodo = item.periodo;
                        pagoCapital.id_cartera = item.id;
                        pagoCapital.vigencia = item.vigencia;
                        pagoCapital.id_grupo = item.id_grupo;
                        pagoCapital.tipo = "CA";
                        lDeuda.Add(pagoCapital);

                        config_grupos_pagos config = ctx.config_grupos_pagos.Where(t => t.id_concepto == item.id_concepto && t.vigencia == item.vigencia).FirstOrDefault();
                        if ((config != null) && (config.intereses == "SI"))
                        {
                            periodos periodo = ctx.periodos.Where(t => t.periodo == item.periodo && t.vigencia == item.vigencia).FirstOrDefault();
                            DateTime FechaVencimientoPeriodo = new DateTime((int)periodo.vigencia, (int)periodo.periodo, (int)periodo.vence_dia);
                            if (FechaActual > FechaVencimientoPeriodo)
                            {
                                mIntereses oTI = new mIntereses();
                                DiasInteresesDto DiasTipo = oTI.GetNumeroDiasPagoIntereses(0, 0, pagoCapital.vigencia);
                                DateTime FechaUltimoCalculoIntereses = item.fechas_calculo_intereses.Where(t => t.estado == "PA").OrderByDescending(t => t.fecha).FirstOrDefault().fecha;
                                int ValorIntereses = oTI.GetValorIntereses(FechaUltimoCalculoIntereses, FechaActual, pagoCapital.valor, pagoCapital.vigencia, pagoCapital.periodo, pagoCapital.id_cartera);
                                if (ValorIntereses > 0)
                                {
                                    pagoIntereses.id_cartera = item.id;
                                    pagoIntereses.fecha_calculo_intereses = FechaActual;
                                    pagoIntereses.id_concepto = 6;
                                    pagoIntereses.valor = ValorIntereses;
                                    if (DiasTipo.TiposIntereses == "S") pagoIntereses.nombre_concepto = "Intereses: " + pagoCapital.nombre_concepto + ", desde " + FechaUltimoCalculoIntereses.ToShortDateString() + " hasta " + FechaActual.ToShortDateString();
                                    else pagoIntereses.nombre_concepto = "Intereses: " + pagoCapital.nombre_concepto;
                                    pagoIntereses.periodo = pagoCapital.periodo;
                                    pagoIntereses.vigencia = pagoCapital.vigencia;
                                    pagoIntereses.id_grupo = item.id_grupo;
                                    pagoIntereses.tipo = "IN";
                                    lDeuda.Add(pagoIntereses);
                                }
                            }
                        }
                    }
                    else
                    {
                        ban = true;
                    }
                }
                return lDeuda;
            }
        }
Beispiel #6
0
        private List<detalles_pagoDto> GetDeudaTotal(string id_estudiante)
        {
            mCausacion.Causar(id_estudiante);
            using (ctx = new ieEntities())
            {
                DateTime FechaActual = DateTime.Now;
                List<detalles_pagoDto> lDeuda = new List<detalles_pagoDto>();
                List<carterap> lCartera = ctx.carterap.Where(t => t.id_estudiante == id_estudiante && t.estado == "CA" && t.pagado < t.valor).OrderBy(t => t.vigencia).ThenBy(t => t.periodo).ThenBy(t => t.id_concepto).ToList();
                foreach (carterap item in lCartera)
                {
                    detalles_pagoDto pagoCapital = new detalles_pagoDto();
                    detalles_pagoDto pagoIntereses = new detalles_pagoDto();

                    pagoCapital.id_concepto = item.id_concepto;
                    pagoCapital.valor = (int)(item.valor - item.pagado);
                    pagoCapital.nombre_concepto = item.conceptos.nombre;
                    pagoCapital.periodo = item.periodo;
                    pagoCapital.id_cartera = item.id;
                    pagoCapital.vigencia = item.vigencia;
                    pagoCapital.tipo = "CA";
                    lDeuda.Add(pagoCapital);

                    config_grupos_pagos config = ctx.config_grupos_pagos.Where(t => t.id_concepto == item.id_concepto && t.vigencia == item.vigencia).FirstOrDefault();
                    if ((config != null) && (config.intereses == "SI"))
                    {
                        periodos periodo = ctx.periodos.Where(t => t.periodo == item.periodo && t.vigencia == item.vigencia).FirstOrDefault();
                        DateTime FechaVencimientoPeriodo = new DateTime((int)periodo.vigencia, (int)periodo.periodo, (int)periodo.vence_dia);
                        if (FechaActual > FechaVencimientoPeriodo)
                        {
                            mIntereses oTI = new mIntereses();
                            DateTime FechaUltimoCalculoIntereses = item.fechas_calculo_intereses.Where(t => t.estado == "PA").OrderByDescending(t => t.fecha).FirstOrDefault().fecha;
                            int ValorIntereses = oTI.GetValorIntereses(FechaUltimoCalculoIntereses, FechaActual, pagoCapital.valor, pagoCapital.vigencia, pagoCapital.periodo, pagoCapital.id_cartera);
                            if (ValorIntereses > 0)
                            {
                                pagoIntereses.id_cartera = item.id;
                                pagoIntereses.fecha_calculo_intereses = FechaActual;
                                pagoIntereses.id_concepto = 6;
                                pagoIntereses.valor = ValorIntereses;
                                pagoIntereses.nombre_concepto = "Intereses: " + pagoCapital.nombre_concepto + ", desde " + FechaUltimoCalculoIntereses.ToShortDateString() + " hasta " + FechaActual.ToShortDateString();
                                pagoIntereses.periodo = pagoCapital.periodo;
                                pagoIntereses.vigencia = pagoCapital.vigencia;
                                pagoIntereses.tipo = "IN";
                                lDeuda.Add(pagoIntereses);
                            }
                        }
                    }
                }
                return lDeuda;
            }
        }
Beispiel #7
0
        public List<detalles_pagoDto> GetDeudaEstudianteValorL(bDeudaEstudianteFecha reg)
        {
            mCausacion.Causar(reg.id_estudiante);
            using (ctx = new ieEntities())
            {
                int ValorLiquidado = 0;
                int i = 0;
                DateTime FechaActual = reg.fecha;
                List<detalles_pagoDto> lDeuda = new List<detalles_pagoDto>();
                int VigPerAct = int.Parse(FechaActual.Year.ToString() + FechaActual.Month.ToString().PadLeft(2, '0'));
                List<carterap> lCartera = new List<carterap>();
                if(reg.id_grupo == null) lCartera = ctx.carterap.Where(t => t.id_estudiante == reg.id_estudiante && (t.estado == "PR" || t.estado == "CA") && t.pagado < t.valor).OrderBy(t => t.vigencia).ThenBy(t => t.periodo).ThenBy(t => t.grupos_pagos.prioridad).ThenBy(t => t.id_concepto).ToList();
                else lCartera = ctx.carterap.Where(t => t.id_estudiante == reg.id_estudiante && t.id_grupo == reg.id_grupo && (t.estado == "PR" || t.estado == "CA") && t.pagado < t.valor).OrderBy(t => t.vigencia).ThenBy(t => t.periodo).ThenBy(t => t.grupos_pagos.prioridad).ThenBy(t => t.id_concepto).ToList();
                //List<carterap> lCartera = ctx.carterap.Where(t => t.id_estudiante == reg.id_estudiante && (t.estado == "CA" || t.estado == "PR") && t.pagado < t.valor).OrderBy(t => t.vigencia).ThenBy(t => t.periodo).ThenBy(t => t.grupos_pagos.prioridad).ThenBy(t => t.id_concepto).ToList();
                bool ban = false;
                while ((i <= lCartera.Count() - 1) && (ValorLiquidado < reg.ValorPagar) && (!ban))
                {
                    if (((lCartera[i].id_grupo == lCartera[0].id_grupo) && (ban == false)) || reg.id_grupo == null)
                    {
                        detalles_pagoDto pagoCapital = new detalles_pagoDto();
                        detalles_pagoDto pagoIntereses = new detalles_pagoDto();

                        int ValorPeriodo = (int)(lCartera[i].valor - lCartera[i].pagado);
                        int ValorIntereses = 0;

                        int vigenciaCartera = lCartera[i].vigencia;
                        int periodoCartera = lCartera[i].periodo;
                        int id_concepto = lCartera[i].id_concepto;

                        config_grupos_pagos config = ctx.config_grupos_pagos.Where(t => t.id_concepto == id_concepto && t.vigencia == vigenciaCartera).FirstOrDefault();
                        if ((config != null) && (config.intereses == "SI"))
                        {
                            periodos periodo = ctx.periodos.Where(t => t.periodo == periodoCartera && t.vigencia == vigenciaCartera).FirstOrDefault();
                            DateTime FechaVencimientoPeriodo = new DateTime((int)periodo.vigencia, (int)periodo.periodo, (int)periodo.vence_dia);
                            DateTime FechaUltimoCalculoIntereses = lCartera[i].fechas_calculo_intereses.Where(t => t.estado == "PA").OrderByDescending(t => t.fecha).FirstOrDefault().fecha;
                            mIntereses oTI = new mIntereses();
                            DiasInteresesDto DiasTipo = oTI.GetNumeroDiasPagoIntereses(ValorPeriodo, reg.ValorPagar - ValorLiquidado, lCartera[i].vigencia);
                            if (FechaActual > FechaVencimientoPeriodo)
                            {
                                ValorIntereses = oTI.GetValorIntereses(FechaUltimoCalculoIntereses, FechaActual, ValorPeriodo, lCartera[i].vigencia, lCartera[i].periodo, lCartera[i].id);
                            }

                            if ((ValorIntereses + ValorPeriodo) <= (reg.ValorPagar - ValorLiquidado))
                            {
                                pagoCapital.id_cartera = lCartera[i].id;
                                pagoCapital.id_concepto = lCartera[i].id_concepto;
                                pagoCapital.valor = (int)(ValorPeriodo);
                                pagoCapital.nombre_concepto = lCartera[i].conceptos.nombre;
                                pagoCapital.periodo = lCartera[i].periodo;
                                pagoCapital.vigencia = lCartera[i].vigencia;
                                pagoCapital.id_grupo = lCartera[i].id_grupo;
                                pagoCapital.tipo = "CA";
                                lDeuda.Add(pagoCapital);
                                ValorLiquidado += (int)pagoCapital.valor;

                                if (ValorIntereses > 0)
                                {
                                    pagoIntereses.id_concepto = 6;

                                    pagoIntereses.valor = ValorIntereses;

                                    if (DiasTipo.TiposIntereses == "S") pagoIntereses.nombre_concepto = "Intereses: " + lCartera[i].conceptos.nombre + ", desde " + FechaUltimoCalculoIntereses.ToShortDateString() + " hasta " + FechaUltimoCalculoIntereses.AddDays(DiasTipo.NumeroDias).ToShortDateString();
                                    else pagoIntereses.nombre_concepto = "Intereses: " + lCartera[i].conceptos.nombre;

                                    pagoIntereses.id_cartera = lCartera[i].id;
                                    pagoIntereses.fecha_calculo_intereses = FechaActual;
                                    pagoIntereses.periodo = pagoCapital.periodo;
                                    pagoIntereses.vigencia = pagoCapital.vigencia;
                                    pagoIntereses.fecha_calculo_intereses = FechaActual.AddDays(1);
                                    pagoIntereses.id_grupo = lCartera[i].id_grupo;
                                    pagoIntereses.tipo = "IN";
                                    lDeuda.Add(pagoIntereses);
                                    ValorLiquidado += (int)pagoIntereses.valor;
                                }
                            }
                            else
                            {
                                if (ValorIntereses == (reg.ValorPagar - ValorLiquidado))
                                {
                                    pagoIntereses.id_concepto = 6;
                                    pagoIntereses.valor = ValorIntereses;

                                    if (DiasTipo.TiposIntereses == "S") pagoIntereses.nombre_concepto = "Intereses: " + lCartera[i].conceptos.nombre + ", desde " + FechaUltimoCalculoIntereses.ToShortDateString() + " hasta " + FechaUltimoCalculoIntereses.AddDays(DiasTipo.NumeroDias).ToShortDateString();
                                    else pagoIntereses.nombre_concepto = "Intereses: " + lCartera[i].conceptos.nombre;

                                    pagoIntereses.id_cartera = lCartera[i].id;
                                    pagoIntereses.fecha_calculo_intereses = FechaActual;
                                    pagoIntereses.periodo = lCartera[i].periodo;
                                    pagoIntereses.vigencia = lCartera[i].vigencia;
                                    pagoIntereses.fecha_calculo_intereses = FechaActual.AddDays(1);
                                    pagoIntereses.id_grupo = lCartera[i].id_grupo;
                                    pagoIntereses.tipo = "IN";
                                    lDeuda.Add(pagoIntereses);
                                    ValorLiquidado += (int)pagoIntereses.valor;
                                }
                                else
                                {
                                    if (ValorIntereses < (reg.ValorPagar - ValorLiquidado))
                                    {
                                        pagoCapital.id_cartera = lCartera[i].id;
                                        pagoCapital.id_concepto = lCartera[i].id_concepto;
                                        pagoCapital.valor = (int)((reg.ValorPagar - ValorLiquidado) - ValorIntereses);
                                        pagoCapital.nombre_concepto = lCartera[i].conceptos.nombre;
                                        pagoCapital.periodo = lCartera[i].periodo;
                                        pagoCapital.vigencia = lCartera[i].vigencia;
                                        pagoCapital.id_grupo = lCartera[i].id_grupo;
                                        pagoCapital.tipo = "CA";
                                        lDeuda.Add(pagoCapital);
                                        ValorLiquidado += (int)pagoCapital.valor;

                                        if (ValorIntereses > 0)
                                        {
                                            pagoIntereses.id_concepto = 6;
                                            pagoIntereses.valor = ValorIntereses;

                                            if (DiasTipo.TiposIntereses == "S") pagoIntereses.nombre_concepto = "Intereses: " + lCartera[i].conceptos.nombre + ", desde " + FechaUltimoCalculoIntereses.ToShortDateString() + " hasta " + FechaUltimoCalculoIntereses.AddDays(DiasTipo.NumeroDias).ToShortDateString();
                                            else pagoIntereses.nombre_concepto = "Intereses: " + lCartera[i].conceptos.nombre;

                                            pagoIntereses.id_cartera = lCartera[i].id;
                                            pagoIntereses.fecha_calculo_intereses = FechaActual;
                                            pagoIntereses.periodo = lCartera[i].periodo;
                                            pagoIntereses.vigencia = lCartera[i].vigencia;
                                            pagoIntereses.fecha_calculo_intereses = FechaActual.AddDays(1);
                                            pagoIntereses.id_grupo = lCartera[i].id_grupo;
                                            pagoIntereses.tipo = "IN";
                                            lDeuda.Add(pagoIntereses);
                                            ValorLiquidado += (int)pagoIntereses.valor;
                                        }
                                    }
                                    else
                                    {
                                        pagoIntereses.id_concepto = 6;
                                        pagoIntereses.valor = reg.ValorPagar - ValorLiquidado;

                                        if (DiasTipo.TiposIntereses == "S") pagoIntereses.nombre_concepto = "Intereses: " + lCartera[i].conceptos.nombre + ", desde " + FechaUltimoCalculoIntereses.ToShortDateString() + " hasta " + FechaUltimoCalculoIntereses.AddDays(DiasTipo.NumeroDias).ToShortDateString();
                                        else pagoIntereses.nombre_concepto = "Intereses: " + lCartera[i].conceptos.nombre;

                                        pagoIntereses.id_cartera = lCartera[i].id;
                                        pagoIntereses.fecha_calculo_intereses = FechaUltimoCalculoIntereses.AddDays(DiasTipo.NumeroDias);
                                        pagoIntereses.periodo = lCartera[i].periodo;
                                        pagoIntereses.vigencia = lCartera[i].vigencia;
                                        pagoIntereses.fecha_calculo_intereses = FechaActual.AddDays(DiasTipo.NumeroDias + 1);
                                        pagoIntereses.id_grupo = lCartera[i].id_grupo;
                                        pagoIntereses.tipo = "IN";
                                        lDeuda.Add(pagoIntereses);
                                        ValorLiquidado += (int)pagoIntereses.valor;
                                    }
                                }
                            }
                        }
                        else
                        {
                            if (ValorPeriodo <= (reg.ValorPagar - ValorLiquidado))
                            {
                                pagoCapital.id_cartera = lCartera[i].id;
                                pagoCapital.id_concepto = lCartera[i].id_concepto;
                                pagoCapital.valor = (int)(ValorPeriodo);
                                pagoCapital.nombre_concepto = lCartera[i].conceptos.nombre;
                                pagoCapital.periodo = lCartera[i].periodo;
                                pagoCapital.vigencia = lCartera[i].vigencia;
                                pagoCapital.id_grupo = lCartera[i].id_grupo;
                                pagoCapital.tipo = "CA";
                                lDeuda.Add(pagoCapital);
                                ValorLiquidado += (int)pagoCapital.valor;
                            }
                            else
                            {
                                pagoCapital.id_cartera = lCartera[i].id;
                                pagoCapital.id_concepto = lCartera[i].id_concepto;
                                pagoCapital.valor = (int)(reg.ValorPagar - ValorLiquidado);
                                pagoCapital.nombre_concepto = lCartera[i].conceptos.nombre;
                                pagoCapital.periodo = lCartera[i].periodo;
                                pagoCapital.vigencia = lCartera[i].vigencia;
                                pagoCapital.id_grupo = lCartera[i].id_grupo;
                                pagoCapital.tipo = "CA";
                                lDeuda.Add(pagoCapital);
                                ValorLiquidado += (int)pagoCapital.valor;
                            }
                        }
                        i++;
                    }
                    else
                    {
                        ban = true;
                    }
                }
                return lDeuda;
            }
        }
Beispiel #8
0
 private int GetDeudaTotalEstudiante(ieEntities ctx, string id_estudiante)
 {
     int ValorDeuda = 0;
     DateTime FechaCausacion = mCausacion.FechaCausacion();
     int VigPerAct = int.Parse(FechaCausacion.Year.ToString() + FechaCausacion.Month.ToString().PadLeft(2, '0'));
     List<detalles_pagoDto> lDeuda = new List<detalles_pagoDto>();
     List<carterap> lCartera = ctx.carterap.Where(t => t.id_estudiante == id_estudiante && (t.estado == "PR" || t.estado == "CA") && (t.vigencia * 100 + t.periodo) <= VigPerAct && t.pagado < t.valor).OrderBy(t => t.vigencia).ThenBy(t => t.periodo).ThenBy(t => t.id_concepto).ToList();
     foreach (carterap item in lCartera)
     {
         int PagoCapital = (int)(item.valor - item.pagado);
         ValorDeuda += PagoCapital;
         config_grupos_pagos config = ctx.config_grupos_pagos.Where(t => t.id_concepto == item.id_concepto && t.vigencia == item.vigencia).FirstOrDefault();
         if ((config != null) && (config.intereses == "SI"))
         {
             periodos periodo = ctx.periodos.Where(t => t.periodo == item.periodo && t.vigencia == item.vigencia).FirstOrDefault();
             DateTime FechaVencimientoPeriodo = new DateTime((int)periodo.vigencia, (int)periodo.periodo, (int)periodo.vence_dia);
             if (FechaCausacion > FechaVencimientoPeriodo)
             {
                 mIntereses oTI = new mIntereses();
                 DateTime FechaUltimoCalculoIntereses = item.fechas_calculo_intereses.Where(t => t.estado == "PA").OrderByDescending(t => t.fecha).FirstOrDefault().fecha;
                 int ValorIntereses = oTI.GetValorIntereses(FechaUltimoCalculoIntereses, FechaCausacion, PagoCapital,item.vigencia,item.periodo,item.id);
                 if (ValorIntereses > 0)
                 {
                     ValorDeuda += ValorIntereses;
                 }
             }
         }
     }
     return ValorDeuda;
 }
Beispiel #9
0
 private int CalcularValorInteresesCartera(DateTime FechaCausacion, carterap cartera, int ValorIntereses)
 {
     config_grupos_pagos config = db.config_grupos_pagos.Where(t => t.id_concepto == cartera.id_concepto && t.vigencia == cartera.vigencia).FirstOrDefault();
     if ((config != null) && (config.intereses == "SI"))
     {
         periodos periodo = db.periodos.Where(t => t.periodo == cartera.periodo && t.vigencia == cartera.vigencia).FirstOrDefault();
         DateTime FechaVencimientoPeriodo = new DateTime((int)periodo.vigencia, (int)periodo.periodo, (int)periodo.vence_dia);
         if (FechaCausacion > FechaVencimientoPeriodo)
         {
             mIntereses oTI = new mIntereses();
             DiasInteresesDto DiasTipo = oTI.GetNumeroDiasPagoIntereses(0, 0, cartera.vigencia);
             DateTime FechaUltimoCalculoIntereses = cartera.fechas_calculo_intereses.Where(t => t.estado == "PA").OrderByDescending(t => t.fecha).FirstOrDefault().fecha;
             ValorIntereses = oTI.GetValorIntereses(FechaUltimoCalculoIntereses, FechaCausacion, cartera.valor, cartera.vigencia, cartera.periodo, cartera.id);
         }
     }
     return ValorIntereses;
 }