예제 #1
0
            private void InsMovimiento(mMovimientos mm, int id_mov, detalles_pagoDto item, string tipo = "CR")
            {
                movimientosDto m = new movimientosDto();
                m.estado = "AC";
                m.fecha_movimiento = oDto.fecha_pago;
                m.fecha_novedad = DateTime.Now;
                m.fecha_registro = DateTime.Now;
                m.id_cartera = item.id_cartera;
                m.id_concepto = item.id_concepto;
                m.id_estudiante = oDto.id_estudiante;
                m.numero_documento = oDto.id;
                m.id_est = oDto.id_est;

                if (tipo == "CR")
                {
                    m.tipo_documento = "PAGOS";
                    m.valor_debito = 0;
                    m.valor_credito = item.valor;
                }
                else
                {
                    m.tipo_documento = "PAGOS";
                    m.valor_debito = item.valor ;
                    m.valor_credito = 0;
                }

                m.vigencia = item.vigencia;
                m.id = id_mov;
                m.periodo = item.periodo;
                mm.Insert(m);
            }
예제 #2
0
            private void InsertFechaUltimoCalculoInteresesCartera(detalles_pagoDto detalle)
            {
                ultIdFechaCalculoIntereses++;

                fechas_calculo_intereses fecha_intereses = new fechas_calculo_intereses();
                fecha_intereses.id = ultIdFechaCalculoIntereses;
                fecha_intereses.id_cartera = detalle.id_cartera;
                fecha_intereses.fecha = detalle.fecha_calculo_intereses;
                fecha_intereses.estado = "LI";
                ctx.fechas_calculo_intereses.Add(fecha_intereses);
            }
예제 #3
0
            private void InsDetallePago(int UltId, detalles_pagoDto item)
            {
                detalles_pago detalle = new detalles_pago();
                detalle.id = UltId;
                detalle.id_pago = oDto.id;

                if (item.tipo != "IN")
                {
                    detalle.id_concepto = (int)item.id_concepto;
                    carterap cartera = ctx.carterap.Where(t => t.id == item.id_cartera).FirstOrDefault();
                    if (cartera != null) cartera.pagado += item.valor;
                }
                else
                {
                    // se asigna el codigo de concepto de intereses = 6
                    detalle.id_concepto = item.id_concepto;
                    InsertFechaUltimoCalculoInteresesCartera(item);
                }

                detalle.periodo = item.periodo;
                detalle.vigencia = item.vigencia;
                detalle.valor = item.valor;
                detalle.tipo = item.tipo;
                detalle.id_cartera = item.id_cartera;
                detalle.nombre_concepto = item.nombre_concepto;

                ctx.detalles_pago.Add(detalle);
            }
예제 #4
0
 private List<detalles_pagoDto> GetPagosAdelantados(string id_estudiante)
 {
     mCausacion.Causar(id_estudiante);
     using (ctx = new ieEntities())
     {
         List<detalles_pagoDto> lr = new List<detalles_pagoDto>();
         List<carterap> lcartera = ctx.carterap.Where(t => t.estado == "PR" && t.pagado > 0 && t.id_estudiante == id_estudiante).ToList();
         foreach (carterap item in lcartera)
         {
             detalles_pagoDto pagoCapital = new detalles_pagoDto();
             pagoCapital.id_concepto = item.id_concepto;
             pagoCapital.valor = (int)(item.pagado);
             pagoCapital.nombre_concepto = item.conceptos.nombre;
             pagoCapital.periodo = item.periodo;
             pagoCapital.id_cartera = item.id;
             pagoCapital.vigencia = item.vigencia;
             pagoCapital.tipo = "CA";
             lr.Add(pagoCapital);
         }
         return lr;
     }
 }
예제 #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;
            }
        }
예제 #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;
            }
        }
예제 #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;
            }
        }