public bool InsertOrUpdateGestionProduccion(ActaSeguimGestionProduccionModel produccion, ref string mensaje) { bool insertado = false; using (FonadeDBLightDataContext db = new FonadeDBLightDataContext(_cadena)) { int CantidadAnt = (from g in db.ActaSeguimGestionProduccion where g.codConvocatoria == produccion.codConvocatoria && g.codProyecto == produccion.codProyecto && g.numActa == (produccion.numActa - 1) select g.Cantidad).FirstOrDefault(); if (produccion.cantidad >= CantidadAnt) { var actaProduccion = (from g in db.ActaSeguimGestionProduccion where g.codConvocatoria == produccion.codConvocatoria && g.codProyecto == produccion.codProyecto && g.numActa == produccion.numActa select g).FirstOrDefault(); if (actaProduccion != null)//Actualizar { actaProduccion.Descripcion = produccion.Descripcion; actaProduccion.Cantidad = produccion.cantidad; actaProduccion.FechaIngreso = DateTime.Now; actaProduccion.NomProducto = produccion.NomProducto; } else//Insertar { ActaSeguimGestionProduccion gesProduccion = new ActaSeguimGestionProduccion { Cantidad = produccion.cantidad, codConvocatoria = produccion.codConvocatoria, codProyecto = produccion.codProyecto, Descripcion = produccion.Descripcion, numActa = produccion.numActa, visita = produccion.visita, FechaIngreso = DateTime.Now, Medida = produccion.medida, }; db.ActaSeguimGestionProduccion.InsertOnSubmit(gesProduccion); } db.SubmitChanges(); insertado = true; } else { mensaje = "La cantidad ingresada de producción acumulada no puede ser menor al de la última visita."; } } return(insertado); }
public bool InsertOrUpdateListGestionProduccion(List <ActaSeguimGestionProduccionModel> gestionProduccion, ref string mensaje) { bool insertado = false; mensaje = ""; using (FonadeDBLightDataContext db = new FonadeDBLightDataContext(_cadena)) { foreach (var r in gestionProduccion) { int CantidadAnt = (from g in db.ActaSeguimGestionProduccion where g.codConvocatoria == r.codConvocatoria && g.codProyecto == r.codProyecto && g.numActa == (r.numActa - 1) select g.Cantidad).FirstOrDefault(); if (r.cantidad >= CantidadAnt) { var actaProduccion = (from g in db.ActaSeguimGestionProduccion where g.codProducto == r.codProducto && g.numActa == r.numActa select g).FirstOrDefault(); if (actaProduccion != null)//Actualizar { actaProduccion.Cantidad = r.cantidad; actaProduccion.FechaIngreso = DateTime.Now; actaProduccion.Descripcion = r.Descripcion; actaProduccion.NomProducto = r.NomProducto; actaProduccion.productoRepresentativo = r.productoRepresentativo; } else//Insertar { ActaSeguimGestionProduccion gesProducto = new ActaSeguimGestionProduccion { numActa = r.numActa, codConvocatoria = r.codConvocatoria, codProyecto = r.codProyecto, codProducto = r.codProducto, Descripcion = r.Descripcion, Cantidad = r.cantidad, FechaIngreso = DateTime.Now, Medida = r.medida, visita = r.visita, NomProducto = r.NomProducto, productoRepresentativo = r.productoRepresentativo }; db.ActaSeguimGestionProduccion.InsertOnSubmit(gesProducto); } db.SubmitChanges(); insertado = true; } else { mensaje = mensaje + "La cantidad del producto: " + r.NomProducto + " NO puede ser menor al de la visita anterior; "; } } } return(insertado); }