internal static void ActualizarModalidad(int idPlanPago, string nombreCurso, int modalidad) { using (var db = new SMPorresEntities()) { int anual = 1; int primerCuatrimestre = 2; int segundoCuatrimestre = 3; int sinCursado = 4; bool actualizaCuotas = false; int idCurso = db.PlanesPago.Find(idPlanPago).IdCurso; var curso = db.Cursos.Find(idCurso); var modActual = db.PlanesPago.Find(idPlanPago).Modalidad; if (modActual == modalidad) { return; } if (modActual == anual) { if (modalidad == primerCuatrimestre & !PagosRegistrados(idPlanPago, segundoCuatrimestre)) { EliminaCuotas(segundoCuatrimestre, idPlanPago); actualizaCuotas = true; } if (modalidad == segundoCuatrimestre & !PagosRegistrados(idPlanPago, primerCuatrimestre)) { EliminaCuotas(primerCuatrimestre, idPlanPago); actualizaCuotas = true; } if (modalidad == sinCursado & !PagosRegistrados(idPlanPago, anual)) { EliminaCuotas(anual, idPlanPago); actualizaCuotas = true; } } if (modActual == primerCuatrimestre) { if (modalidad == anual) { GeneraCuotas(segundoCuatrimestre, idPlanPago, curso); actualizaCuotas = true; } if (modalidad == segundoCuatrimestre & !PagosRegistrados(idPlanPago, primerCuatrimestre)) { EliminaCuotas(primerCuatrimestre, idPlanPago); GeneraCuotas(segundoCuatrimestre, idPlanPago, curso); actualizaCuotas = true; } if (modalidad == sinCursado & !PagosRegistrados(idPlanPago, primerCuatrimestre)) { EliminaCuotas(primerCuatrimestre, idPlanPago); actualizaCuotas = true; } } if (modActual == segundoCuatrimestre) { if (modalidad == anual & !PagosRegistrados(idPlanPago, segundoCuatrimestre)) { GeneraCuotas(primerCuatrimestre, idPlanPago, curso); actualizaCuotas = true; } if (modalidad == primerCuatrimestre & !PagosRegistrados(idPlanPago, segundoCuatrimestre)) { EliminaCuotas(segundoCuatrimestre, idPlanPago); GeneraCuotas(primerCuatrimestre, idPlanPago, curso); actualizaCuotas = true; } if (modalidad == sinCursado & !PagosRegistrados(idPlanPago, segundoCuatrimestre)) { EliminaCuotas(segundoCuatrimestre, idPlanPago); actualizaCuotas = true; } } if (modActual == sinCursado) { if (modalidad == anual) { GeneraCuotas(anual, idPlanPago, curso); actualizaCuotas = true; } if (modalidad == primerCuatrimestre) { GeneraCuotas(primerCuatrimestre, idPlanPago, curso); actualizaCuotas = true; } if (modalidad == segundoCuatrimestre) { GeneraCuotas(segundoCuatrimestre, idPlanPago, curso); actualizaCuotas = true; } } if (actualizaCuotas) { var pp = db.PlanesPago.Find(idPlanPago); pp.Modalidad = modalidad; db.SaveChanges(); PlanesPagoRepository.ActualizarNroyCantidadCuotas(idPlanPago, modalidad); } } }
public static void Actualizar(int id, string nombre, int idCarrera, decimal importeMatrícula, decimal descuentoMatrícula, DateTime descuentoHasta, decimal cuota1, decimal cuota2, decimal cuota3, decimal importeCuota, int modalidad, short estado) { using (var db = new SMPorresEntities()) { if (!db.Cursos.Any(t => t.Id == id)) { throw new Exception(String.Format("No existe el curso {0} - {1}", id, nombre)); } var c = db.Cursos.Find(id); c.Nombre = nombre; c.IdCarrera = idCarrera; //c.Estado = estado; //c.Modalidad = modalidad; //la baja desde listado / botón eliminar var trx = db.Database.BeginTransaction(); try { if (c.DescuentoMatricula != descuentoMatrícula) { c.DescuentoMatricula = descuentoMatrícula; } if (c.FechaVencDescuento != descuentoHasta) { c.FechaVencDescuento = descuentoHasta; } if (c.Cuota1 != cuota1) { c.Cuota1 = cuota1; } if (c.Cuota2 != cuota2) { c.Cuota2 = cuota2; } if (c.Cuota3 != cuota3) { c.Cuota3 = cuota3; } if (c.Modalidad != modalidad) { c.Modalidad = modalidad; } if (c.ImporteMatricula != importeMatrícula) { c.ImporteMatricula = importeMatrícula; PagosRepository.ActualizarCuotas(id, importeMatrícula, true); } if (c.ImporteCuota != importeCuota) { c.ImporteCuota = importeCuota; PagosRepository.ActualizarCuotas(id, importeCuota, false); PlanesPagoRepository.Actualizar(id, importeCuota); } db.SaveChanges(); trx.Commit(); } catch (Exception) { trx.Rollback(); throw; } } }