示例#1
0
    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;
        }
    }
示例#2
0
    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();
    }
示例#3
0
    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();
    }