protected void gvEstadoContratos_ItemDataBound(object sender, GridItemEventArgs e) { try { if (e.Item.ItemType == GridItemType.AlternatingItem || e.Item.ItemType == GridItemType.Item) { EstadosRutaTemp EstadoHoja = EntityDataSourceExtensions.GetItemObject <EstadosRutaTemp>(e.Item.DataItem); string colorEstado = ""; switch (EstadoHoja.Riesgo) { case "ALTO": colorEstado = "Red"; break; case "MEDIO": colorEstado = "Orange"; break; case "BAJO": colorEstado = "Yellow"; break; default: colorEstado = "Green"; break; } e.Item.Cells[11].Style.Add(HtmlTextWriterStyle.BackgroundColor, colorEstado); } } catch (Exception err) { var aa = err.Message; } }
private void ConsultaContratos() { /// Busca: las hojas de ruta donde no se ha presentado documentacion DetallesEstados = new List <EstadosRutaTemp>(); int mes = DateTime.Now.Month; int año = DateTime.Now.Year; var a = from C in Contexto.CabeceraHojasDeRuta where !C.HojasDeRuta.Any(w => w.DocFechaEntrega.HasValue) && !C.HojasDeRuta.Any(w => w.HojaAprobado.HasValue && w.HojaAprobado.Value) && !C.HojasDeRuta.Any(w => w.HojaFechaControlado.HasValue) && C.Estado.Descripcion != "Aprobada" && (C.Periodo.Month < mes && C.Periodo.Year <= año) orderby C.ContratoEmpresas.EsContratista.Value descending, C.Periodo select new { CodigoContrato = C.ContratoEmpresas.Contrato.Codigo, Estado = C.Estado.Descripcion, FechaFin = C.ContratoEmpresas.Contrato.FechaVencimiento, FechaInicio = C.ContratoEmpresas.Contrato.FechaInicio, FechaProrroga = C.ContratoEmpresas.Contrato.Prorroga, NombreEmpresa = C.ContratoEmpresas.Empresa.RazonSocial.Trim(), EsContratista = C.ContratoEmpresas.EsContratista, Servicio = C.ContratoEmpresas.Contrato.Servicio, Periodo = C.Periodo }; foreach (var item in a) { string NombreContratista = GetNombreContratista(item.EsContratista, item.CodigoContrato, item.NombreEmpresa); string NombreSubContratista = GetNombreSubContratista(item.EsContratista, item.CodigoContrato, item.NombreEmpresa); if (NombreContratista.Trim() != "") { EstadosRutaTemp estadoRuta = new EstadosRutaTemp(); estadoRuta.CodigoContrato = item.CodigoContrato; estadoRuta.Estado = item.Estado; estadoRuta.FechaFin = GetFormatoFecha(item.FechaFin); estadoRuta.FechaInicio = GetFormatoFecha(item.FechaInicio); estadoRuta.FechaProrroga = GetFormatoFecha(item.FechaProrroga); estadoRuta.NombreEmpresaContratista = NombreContratista; estadoRuta.NombreEmpresaSubContratista = NombreSubContratista; estadoRuta.Servicio = item.Servicio; estadoRuta.Periodo = string.Format("{0:MM/yyyy}", item.Periodo); DetallesEstados.Add(estadoRuta); } } gvEstadoContratos.Rebind(); }
protected void cboPeriodos_SelectedIndexChanged(object o, Telerik.Web.UI.RadComboBoxSelectedIndexChangedEventArgs e) { /// Busca: las hojas de ruta donde el /// periodo coincida con el periodod de consulta List <EstadosRutaTemp> DetallesEstadosTemp = new List <EstadosRutaTemp>(); int mes = int.Parse(cboPeriodos.SelectedItem.Value.Split('/')[0]); int año = int.Parse(cboPeriodos.SelectedItem.Value.Split('/')[1]); var a = (from C in Contexto.CabeceraHojasDeRuta where (C.Periodo.Month == mes && C.Periodo.Year == año) //&& C.ContratoEmpresas.Contrato.Codigo == "4600002679" orderby C.ContratoEmpresas.EsContratista.Value descending select new { CodigoContrato = C.ContratoEmpresas.Contrato.Codigo, Estado = C.Estado.Descripcion, FechaFin = C.ContratoEmpresas.Contrato.FechaVencimiento, FechaInicio = C.ContratoEmpresas.Contrato.FechaInicio, FechaProrroga = C.ContratoEmpresas.Contrato.Prorroga, NombreEmpresa = C.ContratoEmpresas.Empresa.RazonSocial.Trim(), EsContratista = C.ContratoEmpresas.EsContratista.Value, Contratadopor = C.ContratoEmpresas.Contrato.Contratadopor.Descripcion, Servicio = C.ContratoEmpresas.Contrato.Servicio, Categoria = C.ContratoEmpresas.Contrato.objCategoria, //Gestor = C.ContratoEmpresas.Contrato.GestorNombre, //GestorEmail = C.ContratoEmpresas.Contrato.GestorEmail, //Fiscal = C.ContratoEmpresas.Contrato.FiscalNombre, //FiscalEmail = C.ContratoEmpresas.Contrato.FiscalEmail, //Area = C.ContratoEmpresas.Contrato.objArea.Descripcion, Hojas = C.HojasDeRuta //C.AprobacionEpecial }).ToList().Distinct(); foreach (var item in a) { EstadosRutaTemp estadoRuta = new EstadosRutaTemp(); estadoRuta.CodigoContrato = item.CodigoContrato; estadoRuta.Estado = item.Estado; estadoRuta.FechaFin = GetFormatoFecha(item.FechaFin); estadoRuta.FechaInicio = GetFormatoFecha(item.FechaInicio); estadoRuta.FechaProrroga = GetFormatoFecha(item.FechaProrroga); estadoRuta.NombreEmpresaContratista = GetNombreContratista(item.EsContratista, item.CodigoContrato, item.NombreEmpresa); estadoRuta.NombreEmpresaSubContratista = GetNombreSubContratista(item.EsContratista, item.CodigoContrato, item.NombreEmpresa); estadoRuta.Contratadopor = item.Contratadopor; estadoRuta.Servicio = item.Servicio; estadoRuta.Periodo = string.Format("{0:00}/{1:0000}", mes, año); //estadoRuta.Gestor = item.Gestor; //estadoRuta.GestorEmail = item.GestorEmail; //estadoRuta.Fiscal = item.Fiscal; //estadoRuta.FiscalEmail = item.FiscalEmail; //estadoRuta.Area = item.Area; //estadoRuta.AprobacionEspecial = item.AprobacionEpecial.HasValue ? item.AprobacionEpecial.Value : false; if (item.Estado != "Aprobada") { /// 1. Si no tiene item con documentacion recepcionada /// 2. Si no tiene ningun item aprobado /// 3. Si no tiene ningun item con auditoria terminada /// ENTONCES se asume que no posee documentacion presentada. if (!item.Hojas.Any(w => w.DocFechaEntrega.HasValue) && !item.Hojas.Any(w => w.HojaAprobado.HasValue && !w.HojaAprobado.HasValue) && !item.Hojas.Any(w => w.AuditoriaTerminada.HasValue && w.AuditoriaTerminada.HasValue) ) { estadoRuta.PresentoDocumentacion = "NO"; } else { estadoRuta.PresentoDocumentacion = "SI"; } List <Entidades.HojasDeRuta> hojas = item.Hojas.ToList(); List <dynamic> itemsSubContratista = (from i in a where i.CodigoContrato == item.CodigoContrato && i.EsContratista == false select i).ToList <dynamic>(); ///// Calculo del riesgo que poses la hoja de ruta IDictionary <string, string> RiesgoGrado = CalcularRiesgoHoja(hojas, item.EsContratista, itemsSubContratista); estadoRuta.Riesgo = RiesgoGrado.First().Key; estadoRuta.Grado = RiesgoGrado.First().Value; } else { if (!estadoRuta.AprobacionEspecial) { estadoRuta.PresentoDocumentacion = "SI"; estadoRuta.Riesgo = "NULO"; estadoRuta.Grado = "0"; } else { estadoRuta.PresentoDocumentacion = "NO"; estadoRuta.Riesgo = "NULO"; estadoRuta.Grado = "0"; estadoRuta.Estado = "Aprobada (Sin Actividad)"; } } if (item.Categoria != null) { estadoRuta.Categoria = item.Categoria.Descripcion; } DetallesEstadosTemp.Add(estadoRuta); } DetallesEstados = DetallesEstadosTemp; gvEstadoContratos.Rebind(); #region CODIGO ORIGINAL ///// Busca: las hojas de ruta donde el ///// periodo coincida con el periodod de consulta //DetallesEstados = new List<EstadosRutaTemp>(); //int mes = int.Parse(cboPeriodos.SelectedItem.Value.Split('/')[0]); //int año = int.Parse(cboPeriodos.SelectedItem.Value.Split('/')[1]); //var a = from C in Contexto.CabeceraHojasDeRuta // where (C.Periodo.Month == mes && C.Periodo.Year == año) // orderby C.ContratoEmpresas.EsContratista.Value descending // select new // { // CodigoContrato = C.ContratoEmpresas.Contrato.Codigo, // Estado = C.Estado.Descripcion, // FechaFin = C.ContratoEmpresas.Contrato.FechaVencimiento, // FechaInicio = C.ContratoEmpresas.Contrato.FechaInicio, // FechaProrroga = C.ContratoEmpresas.Contrato.Prorroga, // NombreEmpresa = C.ContratoEmpresas.Empresa.RazonSocial.Trim(), // EsContratista = C.ContratoEmpresas.EsContratista, // Contratadopor = C.ContratoEmpresas.Contrato.Contratadopor.Descripcion, // Servicio = C.ContratoEmpresas.Contrato.Servicio, // Categoria = C.ContratoEmpresas.Contrato.objCategoria, // Hojas = C.HojasDeRuta // }; //foreach (var item in a) //{ // EstadosRutaTemp estadoRuta = new EstadosRutaTemp(); // estadoRuta.CodigoContrato = item.CodigoContrato; // estadoRuta.Estado = item.Estado; // estadoRuta.FechaFin = GetFormatoFecha(item.FechaFin); // estadoRuta.FechaInicio = GetFormatoFecha(item.FechaInicio); // estadoRuta.FechaProrroga = GetFormatoFecha(item.FechaProrroga); // estadoRuta.NombreEmpresaContratista = GetNombreContratista(item.EsContratista, item.CodigoContrato, item.NombreEmpresa); // estadoRuta.NombreEmpresaSubContratista = GetNombreSubContratista(item.EsContratista, item.CodigoContrato, item.NombreEmpresa); // estadoRuta.Contratadopor = item.Contratadopor; // estadoRuta.Servicio = item.Servicio; // estadoRuta.Periodo = string.Format("{0:00}/{1:0000}", mes, año); // if (item.Estado != "Aprobada") // { // /// Si no tiene item con documentacion recepcionada y // /// no tiene ningun item aprobado, entonces se asume que no // /// posee documentacion presentada. // if (!item.Hojas.Any(w => w.DocFechaEntrega.HasValue) // && // !item.Hojas.Any(w => w.HojaAprobado.HasValue && !w.HojaAprobado.HasValue) // ) // { // estadoRuta.PresentoDocumentacion = "NO"; // } // else // { // estadoRuta.PresentoDocumentacion = "SI"; // } // } // else // { // estadoRuta.PresentoDocumentacion = "SI"; // } // if (item.Categoria != null) // estadoRuta.Categoria = item.Categoria.Descripcion; // DetallesEstados.Add(estadoRuta); //} //gvEstadoContratos.Rebind(); #endregion }
protected void cboPeriodos_SelectedIndexChanged(object o, Telerik.Web.UI.RadComboBoxSelectedIndexChangedEventArgs e) { /// Busca: las hojas de ruta donde el /// periodo coincida con el periodod de consulta List <EstadosRutaTemp> DetallesEstadosTemp = new List <EstadosRutaTemp>(); int mes = int.Parse(cboPeriodos.SelectedItem.Value.Split('/')[0]); int año = int.Parse(cboPeriodos.SelectedItem.Value.Split('/')[1]); var a = (from C in Contexto.CabeceraHojasDeRuta where (C.Periodo.Month == mes && C.Periodo.Year == año) //&& C.ContratoEmpresas.Contrato.Codigo == "4600002679" orderby C.ContratoEmpresas.EsContratista.Value descending select new { CodigoContrato = C.ContratoEmpresas.Contrato.Codigo, Estado = C.Estado.Descripcion, FechaFin = C.ContratoEmpresas.Contrato.FechaVencimiento, FechaInicio = C.ContratoEmpresas.Contrato.FechaInicio, FechaProrroga = C.ContratoEmpresas.Contrato.Prorroga, NombreEmpresa = C.ContratoEmpresas.Empresa.RazonSocial.Trim(), EsContratista = C.ContratoEmpresas.EsContratista.Value, Contratadopor = C.ContratoEmpresas.Contrato.objContratadopor.Descripcion, Servicio = C.ContratoEmpresas.Contrato.Servicio, Categoria = C.ContratoEmpresas.Contrato.objCategoria, Gestor = C.ContratoEmpresas.Contrato.GestorNombre, GestorEmail = C.ContratoEmpresas.Contrato.GestorEmail, Fiscal = C.ContratoEmpresas.Contrato.FiscalNombre, FiscalEmail = C.ContratoEmpresas.Contrato.FiscalEmail, Area = C.ContratoEmpresas.Contrato.objArea.Descripcion, Hojas = C.HojasDeRuta, C.AprobacionEpecial }).ToList().Distinct(); foreach (var item in a) { EstadosRutaTemp estadoRuta = new EstadosRutaTemp(); estadoRuta.CodigoContrato = item.CodigoContrato; estadoRuta.Estado = item.Estado; estadoRuta.FechaFin = GetFormatoFecha(item.FechaFin); estadoRuta.FechaInicio = GetFormatoFecha(item.FechaInicio); estadoRuta.FechaProrroga = GetFormatoFecha(item.FechaProrroga); estadoRuta.NombreEmpresaContratista = GetNombreContratista(item.EsContratista, item.CodigoContrato, item.NombreEmpresa); estadoRuta.NombreEmpresaSubContratista = GetNombreSubContratista(item.EsContratista, item.CodigoContrato, item.NombreEmpresa); estadoRuta.Contratadopor = item.Contratadopor; estadoRuta.Servicio = item.Servicio; estadoRuta.Periodo = string.Format("{0:00}/{1:0000}", mes, año); estadoRuta.Gestor = item.Gestor; estadoRuta.GestorEmail = item.GestorEmail; estadoRuta.Fiscal = item.Fiscal; estadoRuta.FiscalEmail = item.FiscalEmail; estadoRuta.Area = item.Area; estadoRuta.AprobacionEspecial = item.AprobacionEpecial.HasValue ? item.AprobacionEpecial.Value : false; if (item.Estado != "Aprobada") { ///// 1. Si no tiene item con documentacion recepcionada ///// 2. Si no tiene ningun item aprobado ///// 3. Si no tiene ningun item con auditoria terminada ///// ENTONCES se asume que no posee documentacion presentada. //if (!item.Hojas.Any(w => w.DocFechaEntrega.HasValue) // && // !item.Hojas.Any(w => w.HojaAprobado.HasValue && !w.HojaAprobado.HasValue) // && // !item.Hojas.Any(w => w.AuditoriaTerminada.HasValue && w.AuditoriaTerminada.HasValue) // ) //{ // estadoRuta.PresentoDocumentacion = "NO"; //} //else //{ // estadoRuta.PresentoDocumentacion = "SI"; //} int SinDoc = (from H in item.Hojas where H.DocComentario != null && H.DocComentario.Trim() != "" select H).Count(); if (SinDoc == 0) { /// Si no tiene comentarios de pendientes y no tiene todos los items aprobados, /// entonces no se ha aprobado porque alguna de las sub contratistas /// no esta aprobada y por lo tanto no puede aprobarce esta hoja. int ItemsAprobados = item.Hojas.Where(w => w.HojaFechaAprobacion.HasValue).Count(); if (ItemsAprobados == 0) { estadoRuta.PresentoDocumentacion = "No Presentó Documentación"; } else { estadoRuta.PresentoDocumentacion = "Por pendientes de Subcontratista"; } } int CantComentarios = (from H in item.Hojas where H.HojaComentario != null && H.HojaComentario.Trim() != "" select H).Count(); if (CantComentarios > 0) { estadoRuta.PresentoDocumentacion = "Con Pendientes"; } List <HojasDeRuta> hojas = item.Hojas.ToList(); List <dynamic> itemsSubContratista = (from i in a where i.CodigoContrato == item.CodigoContrato && i.EsContratista == false select i).ToList <dynamic>(); ///// Calculo del riesgo que poses la hoja de ruta IDictionary <string, string> RiesgoGrado = CalcularRiesgoHoja(hojas, item.EsContratista, itemsSubContratista); estadoRuta.Riesgo = RiesgoGrado.First().Key; estadoRuta.Grado = RiesgoGrado.First().Value; } else { if (!estadoRuta.AprobacionEspecial) { estadoRuta.PresentoDocumentacion = "Con Documentación"; estadoRuta.Riesgo = "NULO"; estadoRuta.Grado = "0"; } else { estadoRuta.PresentoDocumentacion = "Sin Documentación"; estadoRuta.Riesgo = "NULO"; estadoRuta.Grado = "0"; estadoRuta.Estado = "Aprobada (Sin Actividad)"; } } if (item.Categoria != null) { estadoRuta.Categoria = item.Categoria.Descripcion; } DetallesEstadosTemp.Add(estadoRuta); } DetallesEstados = DetallesEstadosTemp; gvEstadoContratos.Rebind(); }