예제 #1
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);
                                }
                            }
                        }
                    }
                }
            }
예제 #2
0
        private void casusarItem(carterap cart,ref int IdMov, int idDoc)
        {
            IdMov++;
                cart.estado = "CA";
                movimientosDto m = new movimientosDto();
                m.estado = "AC";
                m.fecha_movimiento = FechaCausacion;
                m.fecha_novedad = DateTime.Now;
                m.fecha_registro = DateTime.Now;
                m.id_cartera = cart.id;
                m.id_concepto = cart.id_concepto;
                m.id_estudiante = cart.id_estudiante;
                m.numero_documento = idDoc;
                m.id_est = cart.id_est;

                if (id_mat == null) m.tipo_documento = "NOTDB";
                else m.tipo_documento = "MATRI";

                m.valor_debito = cart.valor;
                m.valor_credito = 0;
                m.vigencia = cart.vigencia;
                m.id = IdMov;
                m.periodo = cart.periodo;
                mm.Insert(m);
        }
예제 #3
0
        private int PreCalcularInteresesCartera(DateTime FechaCausacion, carterap cartera, int ValorIntereses)
        {
            if (cartera.pagado == cartera.valor)
            {
                List<detalles_pago> lDet = db.detalles_pago.Where(t => t.id_cartera == cartera.id && t.tipo == "IN" && t.pagos.estado == "PA").ToList();
                lDet.ForEach(t => ValorIntereses += (int)t.valor);

                List<detalles_nota_credito> lDetno = db.detalles_nota_credito.Where(t => t.id_cartera == cartera.id && t.tipo == "IN" && t.notas_credito.estado == "PA").ToList();
                lDetno.ForEach(t => ValorIntereses += (int)t.valor);
            }
            else
            {
                int ValorAdicional = 0;
                ValorIntereses = CalcularValorInteresesCartera(FechaCausacion, cartera, ValorIntereses);
                List<detalles_pago> lDet = db.detalles_pago.Where(t => t.id_cartera == cartera.id && t.tipo == "IN" && t.pagos.estado == "PA").ToList();
                lDet.ForEach(t => ValorAdicional += (int)t.valor);

                List<detalles_nota_credito> lDetno = db.detalles_nota_credito.Where(t => t.id_cartera == cartera.id && t.tipo == "IN" && t.notas_credito.estado == "PA").ToList();
                lDetno.ForEach(t => ValorAdicional += (int)t.valor);

                ValorIntereses += ValorAdicional;
            }
            return ValorIntereses;
        }
예제 #4
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;
 }
예제 #5
0
            protected internal override void Antes()
            {
                int ultId = 0;
                try
                {
                    ultId = ctx.carterap.Max(t => t.id);
                }
                catch { }

                ultIDFechas = 0;
                try
                {
                    ultIDFechas = ctx.fechas_calculo_intereses.Max(t => t.id);
                }
                catch { }

                for (int i = (int)oDto.perido_desde_seleccionado; i <= oDto.perido_hasta_seleccionado; i++)
                {
                    ultId++;
                    carterap itemCartera = new carterap();
                    itemCartera.id = ultId;
                    itemCartera.vigencia = (int)oDto.vigencia;
                    itemCartera.id_concepto = (int)oDto.concepto_seleccionado;
                    itemCartera.periodo = i;
                    itemCartera.valor = oDto.valor;
                    itemCartera.id_matricula = matricula.id;
                    itemCartera.id_estudiante = oDto.id_estudiante;
                    itemCartera.pagado = 0;
                    itemCartera.id_est = estudiante.id;
                    itemCartera.id_grupo = (int)ctx.config_grupos_pagos.Where(t => t.id_concepto == itemCartera.id_concepto && t.vigencia == itemCartera.vigencia).FirstOrDefault().id_grupo;
                    itemCartera.estado = "PR";

                    itemCartera.usu_mod = oDto.usu;
                    itemCartera.usu_reg = oDto.usu;
                    itemCartera.fec_mod = DateTime.Now;
                    itemCartera.fec_reg = DateTime.Now;

                    ctx.carterap.Add(itemCartera);
                    InicializarCalculoIntereses(itemCartera.id, itemCartera.periodo, itemCartera.vigencia);
                }
            }
예제 #6
0
            private void ArmarCartera()
            {
                int ultId = 0;
                try
                {
                    ultId = ctx.carterap.Max(t => t.id);
                }
                catch { }

                ultIDFechas = 0;
                try
                {
                    ultIDFechas = ctx.fechas_calculo_intereses.Max(t => t.id);
                }
                catch { }

                foreach (carteraDto item in oDto.lCartera)
                {
                    for (int i = (int)item.periodo_desde; i <= item.periodo_hasta; i++)
                    {
                        ultId++;
                        carterap itemCartera = new carterap();
                        itemCartera.id = ultId;
                        itemCartera.vigencia = (int)oDto.vigencia;
                        itemCartera.id_concepto = (int)item.id_concepto;
                        itemCartera.periodo = i;
                        itemCartera.valor = (int)item.valor;
                        itemCartera.id_matricula = oDto.id;
                        itemCartera.id_estudiante = oDto.id_estudiante;
                        itemCartera.pagado = 0;
                        itemCartera.id_est = estudiante.id;
                        itemCartera.id_grupo = (int)ctx.config_grupos_pagos.Where(t => t.id_concepto == itemCartera.id_concepto && t.vigencia == itemCartera.vigencia).FirstOrDefault().id_grupo;
                        itemCartera.estado = "PR";
                        ctx.carterap.Add(itemCartera);
                        InicializarCalculoIntereses(itemCartera.id, itemCartera.periodo, itemCartera.vigencia);
                    }
                }
            }