public decimal IngresarNota(DetalleMatricula oDetalleMatriculaForm) { decimal rpta = 0; try { PruebaDataContext bd = new PruebaDataContext(); DetalleMatricula oDetalleMatricula = new DetalleMatricula(); oDetalleMatricula = bd.DetalleMatricula.Where(p => p.IIDMATRICULA == oDetalleMatriculaForm.IIDMATRICULA && p.IIDCURSO == oDetalleMatriculaForm.IIDCURSO).First(); oDetalleMatricula.NOTA1 = oDetalleMatriculaForm.NOTA1; oDetalleMatricula.NOTA2 = oDetalleMatriculaForm.NOTA2; oDetalleMatricula.NOTA3 = oDetalleMatriculaForm.NOTA3; oDetalleMatricula.NOTA4 = oDetalleMatriculaForm.NOTA4; oDetalleMatricula.PROMEDIO = Decimal.Divide((decimal)(oDetalleMatricula.NOTA1 + oDetalleMatricula.NOTA2 + oDetalleMatricula.NOTA3 + oDetalleMatricula.NOTA4), 4); bd.SubmitChanges(); rpta = (decimal)oDetalleMatricula.PROMEDIO; } catch (Exception ex) { rpta = 0; //throw; } return(rpta); }
public int GuardarDatos(Matricula oMatricula, int IIDGRADOSECCION, string valorAEnviar, string valorADeshabilitar) { int nregistrosAfectados = 0; //nregistrosAfectados = -1; PruebaDataContext db = new PruebaDataContext(); int iidMatricula = oMatricula.IIDMATRICULA; GradoSeccion oGradoseccion = db.GradoSeccion.Where(p => p.IID.Equals(IIDGRADOSECCION)).First(); int iidgrado = (int)oGradoseccion.IIDGRADO; int iidseccion = (int)oGradoseccion.IIDSECCION; oMatricula.IIDGRADO = iidgrado; oMatricula.IIDSECCION = iidseccion; oMatricula.FECHA = DateTime.Now; try { using (var transaccion = new TransactionScope()) { if (oMatricula.IIDMATRICULA.Equals(0)) { int cantidad = db.Matricula.Where(p => p.IIDALUMNO == oMatricula.IIDALUMNO && p.IIDPERIODO == oMatricula.IIDPERIODO).Count(); if (cantidad > 1) { return(-1); } int nveces = db.Matricula.Where( p => p.IIDALUMNO.Equals(oMatricula.IIDALUMNO) && p.IIDPERIODO.Equals(oMatricula.IIDPERIODO) && p.IIDGRADO.Equals(oMatricula.IIDGRADO)).Count(); if (nveces == 0) { db.Matricula.InsertOnSubmit(oMatricula); db.SubmitChanges(); int idMatriculaGenerada = oMatricula.IIDMATRICULA; /*var lista = db.PeriodoGradoCurso.Where(p => p.IIDPERIODO.Equals(oMatricula.IIDPERIODO) * && p.IIDGRADO.Equals(iidgrado) && p.BHABILITADO.Equals(1)).Select(p => p.IIDCURSO);*/ if (valorAEnviar != "" && valorAEnviar != null) { string[] cursos = valorAEnviar.Split('$'); foreach (var curso in cursos) { DetalleMatricula dm = new DetalleMatricula(); dm.IIDMATRICULA = idMatriculaGenerada; dm.IIDCURSO = int.Parse(curso); dm.NOTA1 = 0; dm.NOTA2 = 0; dm.NOTA3 = 0; dm.NOTA4 = 0; dm.PROMEDIO = 0; dm.bhabilitado = 1; db.DetalleMatricula.InsertOnSubmit(dm); } } if (valorADeshabilitar != "" && valorADeshabilitar != null) { string[] cursos = valorAEnviar.Split('$'); foreach (var curso in cursos) { DetalleMatricula dm = new DetalleMatricula(); dm.IIDMATRICULA = idMatriculaGenerada; dm.IIDCURSO = int.Parse(curso); dm.NOTA1 = 0; dm.NOTA2 = 0; dm.NOTA3 = 0; dm.NOTA4 = 0; dm.PROMEDIO = 0; dm.bhabilitado = 0; db.DetalleMatricula.InsertOnSubmit(dm); } } db.SubmitChanges(); transaccion.Complete(); nregistrosAfectados = 1; } else { nregistrosAfectados = -1; } } else { int cantidad = db.Matricula.Where(p => p.IIDALUMNO == oMatricula.IIDALUMNO && p.IIDPERIODO == oMatricula.IIDPERIODO && p.IIDMATRICULA != oMatricula.IIDMATRICULA).Count(); if (cantidad > 1) { return(-1); } int nveces = db.Matricula.Where(p => p.IIDALUMNO.Equals(oMatricula.IIDALUMNO) && p.IIDPERIODO.Equals(oMatricula.IIDPERIODO) && p.IIDGRADO.Equals(oMatricula.IIDGRADO) && !p.IIDMATRICULA.Equals(oMatricula.IIDMATRICULA)).Count(); if (nveces == 0) { Matricula oMatriculaObjeto = db.Matricula.Where(p => p.IIDMATRICULA == oMatricula.IIDMATRICULA).First(); oMatriculaObjeto.IIDPERIODO = oMatricula.IIDPERIODO; oMatriculaObjeto.IIDGRADO = iidgrado; oMatriculaObjeto.IIDSECCION = iidseccion; oMatriculaObjeto.IIDALUMNO = oMatriculaObjeto.IIDALUMNO; var lista = db.DetalleMatricula.Where(p => p.IIDMATRICULA == oMatricula.IIDMATRICULA); foreach (DetalleMatricula odetalle in lista) { odetalle.bhabilitado = 0; } //4$3$5 [4,3,5] string[] valores = valorAEnviar.Split('$'); if (valorAEnviar != "") { int nVeces = 0; for (int i = 0; i < valores.Length; i++) { nVeces = db.DetalleMatricula.Where(p => p.IIDMATRICULA == oMatricula.IIDMATRICULA && p.IIDCURSO == int.Parse(valores[i])).Count(); if (nVeces == 1) { DetalleMatricula odet = db.DetalleMatricula.Where(p => p.IIDMATRICULA == oMatricula.IIDMATRICULA && p.IIDCURSO == int.Parse(valores[i])).First(); odet.bhabilitado = 1; } else { DetalleMatricula dm = new DetalleMatricula(); dm.IIDMATRICULA = oMatricula.IIDMATRICULA; dm.IIDCURSO = int.Parse(valores[i]); dm.NOTA1 = 0; dm.NOTA2 = 0; dm.NOTA3 = 0; dm.NOTA4 = 0; dm.PROMEDIO = 0; dm.bhabilitado = 1; db.DetalleMatricula.InsertOnSubmit(dm); } } } db.SubmitChanges(); transaccion.Complete(); nregistrosAfectados = 1; } } } } catch { nregistrosAfectados = 0; } return(nregistrosAfectados); }
public int guardar(Matricula matricula, int IIDGRADOSECCION, string valorEnviar, string valorDeshabilitar) { int regAfec = 0; GradoSeccion gs = (db.GradoSeccion.Where(p => p.IID == IIDGRADOSECCION)).FirstOrDefault(); int idGrado = Convert.ToInt32(gs.IIDGRADO); int idSeccion = Convert.ToInt32(gs.IIDSECCION); matricula.IIDGRADO = idGrado; matricula.IIDSECCION = idSeccion; matricula.FECHA = DateTime.Now; try { using (var transaccion = new TransactionScope()) { //Agregar if (matricula.IIDMATRICULA == 0) { int cantidad = db.Matricula.Where(p => p.IIDALUMNO == matricula.IIDALUMNO && p.IIDPERIODO == matricula.IIDPERIODO).Count(); if (cantidad >= 1) { return(-1); } db.Matricula.Add(matricula); db.SaveChanges(); int idMatriculaGenerada = matricula.IIDMATRICULA; //var list = db.PeriodoGradoCurso.Where(p => p.IIDPERIODO == matricula.IIDPERIODO // && p.IIDGRADO == idGrado && p.BHABILITADO == 1).Select(p => p.IIDCURSO); //var list = (from p in db.PeriodoGradoCurso // where p.IIDPERIODO == matricula.IIDPERIODO // && p.IIDGRADO == idGrado && p.BHABILITADO == 1 // select p.IIDCURSO); if (valorEnviar != "" && valorEnviar != null) { string[] cursos = valorEnviar.Split('$'); foreach (string curso in cursos) { DetalleMatricula dm = new DetalleMatricula(); dm.IIDMATRICULA = idMatriculaGenerada; dm.IIDCURSO = int.Parse(curso); dm.NOTA1 = 0; dm.NOTA2 = 0; dm.NOTA3 = 0; dm.NOTA4 = 0; dm.PROMEDIO = 0; dm.bhabilitado = 1; db.DetalleMatricula.Add(dm); } } if (valorDeshabilitar != "" && valorDeshabilitar != null) { string[] cursos = valorDeshabilitar.Split('$'); foreach (string curso in cursos) { DetalleMatricula dm = new DetalleMatricula(); dm.IIDMATRICULA = idMatriculaGenerada; dm.IIDCURSO = int.Parse(curso); dm.NOTA1 = 0; dm.NOTA2 = 0; dm.NOTA3 = 0; dm.NOTA4 = 0; dm.PROMEDIO = 0; dm.bhabilitado = 0; db.DetalleMatricula.Add(dm); } } db.SaveChanges(); transaccion.Complete(); regAfec = 1; } //Editar else { int cantidad = db.Matricula.Where(p => p.IIDALUMNO == matricula.IIDALUMNO && p.IIDPERIODO == matricula.IIDPERIODO && p.IIDMATRICULA != matricula.IIDMATRICULA).Count(); if (cantidad >= 1) { return(-1); } Matricula m = (db.Matricula.Where(p => p.IIDMATRICULA == matricula.IIDMATRICULA)).First(); m.IIDPERIODO = matricula.IIDPERIODO; m.IIDGRADO = idGrado; m.IIDSECCION = idSeccion; m.IIDALUMNO = matricula.IIDALUMNO; //Detalle Matricula var list = (db.DetalleMatricula.Where(p => p.IIDMATRICULA == matricula.IIDMATRICULA)); //Deshabilitamos Todo foreach (DetalleMatricula dm in list) { dm.bhabilitado = 0; } string[] valores = valorEnviar.Split('$'); if (valorEnviar != "") { int nVeces = 0; for (int i = 0; i < valores.Length; i++) { int values = int.Parse(valores[i]); nVeces = (db.DetalleMatricula.Where(p => p.IIDMATRICULA == matricula.IIDMATRICULA && p.IIDCURSO == values)).Count(); //Si existe if (nVeces == 1) { DetalleMatricula Odm = (db.DetalleMatricula.Where(p => p.IIDMATRICULA == matricula.IIDMATRICULA && p.IIDCURSO == values)).FirstOrDefault(); Odm.bhabilitado = 1; } //Si no existe else { DetalleMatricula dm = new DetalleMatricula(); dm.IIDMATRICULA = matricula.IIDMATRICULA; dm.IIDCURSO = values; dm.NOTA1 = 0; dm.NOTA2 = 0; dm.NOTA3 = 0; dm.NOTA4 = 0; dm.PROMEDIO = 0; dm.bhabilitado = 1; db.DetalleMatricula.Add(dm); } } } db.SaveChanges(); transaccion.Complete(); regAfec = 1; } } } catch (Exception ex) { regAfec = 0; } return(regAfec); }