public static void UpdateTabCompleto(int codigoTab, int codigoProyecto, int codigoContacto, Boolean estado) { using (Datos.FonadeDBDataContext db = new Datos.FonadeDBDataContext(System.Configuration.ConfigurationManager.ConnectionStrings["ApplicationServices"].ConnectionString)) { var entity = (from tabProyecto in db.TabProyectos where tabProyecto.CodProyecto.Equals(codigoProyecto) && tabProyecto.CodTab.Equals(codigoTab) select tabProyecto ).SingleOrDefault(); if (entity == null) { entity = new TabProyecto { CodContacto = codigoContacto, CodProyecto = codigoProyecto, FechaModificacion = DateTime.Now, CodTab = (Int16)codigoTab, Completo = estado, Realizado = false }; db.TabProyectos.InsertOnSubmit(entity); } else { entity.Completo = estado; } db.SubmitChanges(); } }
/// <summary> /// Actualiza el tab padre a realizado si todos los hijos estan realizados. /// </summary> public static void UpdateTabParent(int codigoTab, int codigoProyecto, int codigoContacto, int codigoGrupo) { using (Datos.FonadeDBDataContext db = new Datos.FonadeDBDataContext(System.Configuration.ConfigurationManager.ConnectionStrings["ApplicationServices"].ConnectionString)) { var tabDetalle = db.Tabs.SingleOrDefault(filter => filter.Id_Tab.Equals(codigoTab)); if (tabDetalle.CodTab != null) // Verifica si existe un padre para ese tab { var codigoTabPadre = tabDetalle.CodTab; if (!db.TabProyectos.Any(filter => filter.CodProyecto.Equals(codigoProyecto) && filter.CodTab.Equals(codigoTabPadre))) { ///Inserta tab padre sino existe en tabProyecto var newTab = new TabProyecto { CodContacto = codigoContacto, CodProyecto = codigoProyecto, FechaModificacion = DateTime.Now, CodTab = (Int16)codigoTabPadre, Realizado = false }; db.TabProyectos.InsertOnSubmit(newTab); db.SubmitChanges(); } if (codigoGrupo.Equals(Constantes.CONST_Asesor)) { var entity = (from tabProyecto in db.TabProyectos where tabProyecto.CodProyecto.Equals(codigoProyecto) && tabProyecto.CodTab.Equals(codigoTabPadre) select tabProyecto ).SingleOrDefault(); var childTabs = db.Tabs.Count(filter => filter.CodTab.Equals(codigoTabPadre)); // Verifica cuantos tabs hijas tiene ese tabPadre var checkedTabs = (from tabProyecto in db.TabProyectos join tab in db.Tabs on tabProyecto.CodTab equals tab.Id_Tab where tab.CodTab.Equals(codigoTabPadre) && tabProyecto.CodProyecto.Equals(codigoProyecto) && tabProyecto.Realizado.Equals(true) select tabProyecto ).Count(); // Verifica cuantos hijos estan realizados if (childTabs.Equals(checkedTabs)) { entity.Realizado = true; db.SubmitChanges(); } else { if (entity.Realizado.Equals(true)) { entity.Realizado = false; db.SubmitChanges(); } } } } } }