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); } } } } } }
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); }
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; }
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; }
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); } }
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); } } }