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