protected internal override bool esValido() { estudiante = ctx.estudiantes.Where(t => t.identificacion == oDto.id_estudiante).FirstOrDefault(); if (estudiante != null) { mCausacion.Causar(estudiante.identificacion); UltLiqui = ctx.pagos.Where(t => t.estado == "LI" && t.id_estudiante == oDto.id_estudiante).FirstOrDefault(); if (UltLiqui == null) { pagos pagoMax = ctx.pagos.Where(t => t.estado == "PA").OrderByDescending(t => t.id).FirstOrDefault(); if (pagoMax == null) return true; { if (pagoMax.fecha_pago.Value.Date <= oDto.fecha.Date) return true; else { byaRpt.Error = true; byaRpt.Mensaje = "No se puede realizar la liquidación en la fecha indicada, porque hay un pago con una fecha mayor registrada"; return false; } } } else { byaRpt.Error = true; byaRpt.Mensaje = "El estudiante tiene una liquidación sin pagar"; return false; } } else { byaRpt.Error = true; byaRpt.Mensaje = "La identificación del estudiante no se encuantra registrada"; return false; } }
protected internal override void Antes() { int UltId = 0; try { UltId = ctx.pagos.Max(t => t.id); } catch { } ultIdFechaCalculoIntereses = 0; try { ultIdFechaCalculoIntereses = ctx.fechas_calculo_intereses.Max(t => t.id); } catch { } UltId++; oDto.id = UltId; oDto.fecha_pago = null; oDto.id_forma_pago = 1; oDto.estado = "LI"; oDto.id_est = estudiante.id; oDto.tipo = "PL"; oDto.fecha = oDto.fecha.Date; oDto.fecha_max_pago = CalcularFechaVencimientoLiquidacion(); detalles_pago = oDto.detalles_pago; oDto.detalles_pago = null; Dto = new pagos(); Mapper.Map(oDto,Dto); _cmpReg(); ctx.pagos.Add(Dto); InsertDetallesPagos(); }
protected internal override void Antes() { int UltId = UltPIdPago(); UltIdFechaIntereses(); UltId++; oDto.id = UltId; oDto.id_forma_pago = 1; oDto.estado = "PA"; oDto.id_est = estudiante.id; oDto.tipo = "PS"; detalles_pago = oDto.detalles_pago; oDto.detalles_pago = null; Dto = new pagos(); Mapper.Map(oDto, Dto); _cmpReg(); ctx.pagos.Add(Dto); InsertDetallesPagos(); CambiarFechaCausacion(); }
protected internal override bool esValido() { pago = ctx.pagos.Where(t => t.id == id_pago).FirstOrDefault(); if (pago != null) { if (pago.estado == "LI") { pagos pag = ctx.pagos.Where(t => t.id_estudiante == pago.id_estudiante && t.estado != "AN").OrderByDescending(t => t.fecha).ThenByDescending(t=> t.id).FirstOrDefault(); if (pag.id == pago.id) return true; else { byaRpt.Error = true; byaRpt.Mensaje = "Solo se puede anular la última liqudiación realizada"; return false; } } else { byaRpt.Error = true; byaRpt.Mensaje = "La liquidación no esta en estado Liquidado"; return false; } } else { byaRpt.Error = true; byaRpt.Mensaje = "El número de liquidación no puede ser encontrada"; return false; } }
protected internal override bool esValido() { Dto = ctx.pagos.Where(t => t.id == oDto.id && t.estado == "LI").FirstOrDefault(); if (Dto != null) { if (Dto.fecha <= oDto.fecha_pago) { if ((oDto.fecha_pago <= Dto.fecha_max_pago) || (Dto.fecha_max_pago == null) || (oDto.VerificadoIntereses == true)) { pagos pagoMax = ctx.pagos.Where(t => t.estado == "PA").OrderByDescending(t => t.id).FirstOrDefault(); if (pagoMax == null) return true; else { if (pagoMax.fecha_pago.Value.Date <= oDto.fecha_pago.Value.Date) return true; else { byaRpt.id = "false"; byaRpt.Error = true; byaRpt.Mensaje = "No se puede realizar el pago en la fecha de pago indicada, porque hay un pago con una fecha mayor registrada"; return false; } } } else { byaRpt.id = "true"; byaRpt.Error = true; byaRpt.Mensaje = "El pago fue realizado despues de la fecha de vencimiento, por lo cual se han generado nuevos " + "intereses como se muestra a continuación: </br></br>" + VerificarInteresesDetallesPago() + "¿Que desea hacer con los intereses?</br>"+ "- <strong>Obviar:</strong> se registrara el pago ignorando los intereses.</br>" + "- <strong>Causar:</strong> se causaran los intereses para pagarlos despues, y se registrata el pago."; return false; } } else { byaRpt.id = "false"; byaRpt.Error = true; byaRpt.Mensaje = "No se puede realizar el pago en la fecha de pago indicada, porque la fecha de liquidación es menor"; return false; } } else { byaRpt.id = "false"; byaRpt.Error = true; byaRpt.Mensaje = "No se encuentra la liquidación"; return false; } }