public List <E_METAS_COMPARACION_DESEMPENO> ObtieneMetasPeriodoComparar(string pXmlPeriodos = null, int?idEvaluado = null, int?pIdPeriodo = null)
        {
            var vMetasPeriodo = new PeriodoDesempenoOperaciones().ObtieneMetasPeriodoComparar(pXmlPeriodos, idEvaluado, pIdPeriodo).ToList();

            return((from x in vMetasPeriodo
                    select new E_METAS_COMPARACION_DESEMPENO
            {
                ID_EVALUADO_META = x.ID_META_EVALUADO,
                ID_PERIODO = x.ID_PERIODO,
                ID_EVALUADO = x.ID_EVALUADO_PERIODO,
                NO_META = (int)x.NO_META,
                DS_FUNCION = x.DS_FUNCION,
                NB_INDICADOR = x.NB_INDICADOR,
                DS_META = x.DS_META,
                CL_TIPO_META = x.CL_TIPO_META,
                FG_VALIDA_CUMPLIMIENTO = x.FG_VALIDA_CUMPLIMIENTO,
                FG_EVALUAR = x.FG_EVALUAR,
                NB_CUMPLIMIENTO_ACTUAL = x.NB_CUMPLIMIENTO_ACTUAL,
                NB_CUMPLIMIENTO_MINIMO = x.NB_CUMPLIMIENTO_MINIMO,
                NB_CUMPLIMIENTO_SATISFACTORIO = x.NB_CUMPLIMIENTO_SATISFACTORIO,
                NB_CUMPLIMIENTO_SOBRESALIENTE = x.NB_CUMPLIMIENTO_SOBRESALIENTE,
                PR_META = x.PR_META,
                NB_RESULTADO = x.NB_RESULTADO,
                PR_RESULTADO = x.PR_RESULTADO,
                CL_NIVEL = x.CL_NIVEL,
                PR_CUMPLIMIENTO_META = x.PR_CUMPLIMIENTO_META,
                PR_CUMPLIMIENTO_META_STR = x.ID_META_EVALUADO == 0?"N/A": x.PR_CUMPLIMIENTO_META.ToString() + "%",
                FG_EVIDENCIA = x.FG_EVIDENCIA,
                PR_EVALUADO = x.ID_META_EVALUADO == 0? "N/A": x.PR_EVALUADO.ToString() + "%",
                NIVEL_ALZANZADO = x.NIVEL_ALCANZADO,
                COLOR_NIVEL = x.COLOR_NIVEL
            }).ToList());
        }
        public List <E_PERIODOS_COMPARAR> ObtenerDesempenoComparacion(string vXmlPeriodos = null)
        {
            var vPeriodos = new PeriodoDesempenoOperaciones().ObtenerDesempenoComparacion(vXmlPeriodos).ToList();

            return((from x in vPeriodos
                    select new E_PERIODOS_COMPARAR
            {
                NUM_PERIODO = x.NUM_PERIODO,
                ID_PERIODO = x.ID_PERIODO,
                CL_PERIODO = x.CL_PERIODO,
                NB_PERIODO = x.NB_PERIODO,
                NB_PERIODO_ENCABEZADO = x.NB_PERIODO + x.NUM_PERIODO.ToString(),
                DS_PERIODO = x.DS_PERIODO,
                FE_INICIO = x.FE_INICIO,
                FE_TERMINO = (DateTime)x.FE_TERMINO,
                CL_ESTADO_PERIODO = x.CL_ESTADO_PERIODO,
                DS_NOTAS = x.DS_NOTAS,
                CL_TIPO_PERIODO = x.CL_TIPO_PERIODO,
                ID_PERIODO_DESEMPENO = x.ID_PERIODO_DESEMPENO,
                FG_BONO = x.FG_BONO,
                PR_BONO = x.PR_BONO,
                MN_BONO = x.MN_BONO,
                CL_TIPO_BONO = x.CL_TIPO_BONO,
                CL_TIPO_CAPTURISTA = x.CL_TIPO_CAPTURISTA,
                CL_TIPO_METAS = x.CL_TIPO_METAS,
                CL_ORIGEN_CUESTIONARIO = x.CL_ORIGEN_CUESTIONARIO,
                ID_PERIODO_REPLICA = x.ID_PERIODO_REPLICA,
                CL_TIPO_COPIA = x.CL_TIPO_COPIA,
                NO_REPLICA = x.NO_REPLICA,
                NB_PUESTO = x.NB_PUESTO
            }).ToList());
        }
        public List <E_METAS_PERIODO_COMPARACION> ObtieneMetasComparacion(int?idEvaluadoMeta = null, int?pIdPeriodo = null, int?idEvaluado = null)
        {
            var vMetasPeriodo = new PeriodoDesempenoOperaciones().ObtieneMetasComparacion(idEvaluadoMeta, pIdPeriodo, idEvaluado).ToList();

            return((from x in vMetasPeriodo
                    select new E_METAS_PERIODO_COMPARACION
            {
                ID_EVALUADO_META = x.ID_EVALUADO_META,
                ID_PERIODO = x.ID_PERIODO,
                ID_EVALUADO = x.ID_EVALUADO,
                NO_META = x.NO_META,
                DS_FUNCION = x.DS_FUNCION,
                NB_INDICADOR = x.NB_INDICADOR,
                DS_META = x.DS_META,
                CL_TIPO_META = x.CL_TIPO_META,
                FG_VALIDA_CUMPLIMIENTO = x.FG_VALIDA_CUMPLIMIENTO,
                FG_EVALUAR = x.FG_EVALUAR,
                NB_CUMPLIMIENTO_ACTUAL = x.NB_CUMPLIMIENTO_ACTUAL,
                NB_CUMPLIMIENTO_MINIMO = x.NB_CUMPLIMIENTO_MINIMO,
                NB_CUMPLIMIENTO_SATISFACTORIO = x.NB_CUMPLIMIENTO_SATISFACTORIO,
                NB_CUMPLIMIENTO_SOBRESALIENTE = x.NB_CUMPLIMIENTO_SOBRESALIENTE,
                PR_META = x.PR_META,
                NB_RESULTADO = x.NB_RESULTADO,
                PR_RESULTADO = x.PR_RESULTADO,
                CL_NIVEL = x.CL_NIVEL,
                PR_CUMPLIMIENTO_META = x.PR_CUMPLIMIENTO_META,
                FG_EVIDENCIA = x.FG_EVIDENCIA,
                PR_EVALUADO = x.PR_EVALUADO,
                NIVEL_ALZANZADO = x.NIVEL_ALZANZADO,
                COLOR_NIVEL = x.COLOR_NIVEL
            }).ToList());
        }
        //**********************************************************************************
        public List <E_INDICADORES_METAS> ObtieneIndicadoresMetas(int?pIdPeriodo = null, int?pIdEvaluado = null, string pDsFuncion = null)
        {
            var vFuncionesMetas = new PeriodoDesempenoOperaciones().ObtenerIndicadoresMetas(pIdPeriodo, pIdEvaluado, pDsFuncion).ToList();

            return((from x in vFuncionesMetas
                    select new E_INDICADORES_METAS
            {
                ID_EVALUADO = x.ID_EVALUADO,
                ID_PERIODO = x.ID_PERIODO,
                NB_INDICADOR = x.NB_INDICADOR,
                DS_FUNCION = x.DS_FUNCION
            }).ToList());
        }
        //public List<SPE_OBTIENE_EO_FUNCIONES_METAS_Result> ObtieneFuncionesMetas(int? pIdEvaluado = null, int? pIdPeriodo = null)
        //{
        //
        //    return new PeriodoDesempenoOperaciones().ObtenerFuncionesMetas(pIdEvaluado, pIdPeriodo);
        //}
        public List <E_OBTIENE_FUNCIONES_METAS> ObtieneFuncionesMetas(int?pIdEvaluado = null, int?pIdPeriodo = null)
        {
            var vFuncionesMetas = new PeriodoDesempenoOperaciones().ObtenerFuncionesMetas(pIdEvaluado, pIdPeriodo).ToList();

            return((from x in vFuncionesMetas
                    select new E_OBTIENE_FUNCIONES_METAS
            {
                ID_EVALUADO = x.ID_EVALUADO,
                ID_PERIODO = x.ID_PERIODO,
                ID_EMPLEADO = x.ID_EMPLEADO,
                ID_PUESTO = x.ID_PUESTO,
                DS_PUESTO_FUNCION = x.DS_PUESTO_FUNCION
            }).ToList());
        }
        public SPE_OBTIENE_EVIDENCIAS_METAS_Result ObtieneEvidenciasMetasEvaluados(int?idEvaluadoMeta = null)
        {
            SPE_OBTIENE_EVIDENCIAS_METAS_Result vDocumentoProceso = new PeriodoDesempenoOperaciones().ObtenerEvidenciasMetasEvaluados(idEvaluadoMeta);

            if (vDocumentoProceso.XML_DOCUMENTOS != null)
            {
                XElement vDocumento = XElement.Parse(vDocumentoProceso.XML_DOCUMENTOS);
                vDocumentoProceso.XML_DOCUMENTOS = vDocumento.ToString();
            }
            else
            {
                vDocumentoProceso.XML_DOCUMENTOS = "";
            }

            return(vDocumentoProceso);
        }
        public List <E_OBTIENE_EVALUADOS_DESEMPENO> ObtenerEvaluadosDesempeno(string pXmlPeriodos = null, int?pIdRol = null)
        {
            var vEvaluadosDesempeno = new PeriodoDesempenoOperaciones().ObtenerEvaluadosDesempeno(pXmlPeriodos, pIdRol).ToList();

            return((from x in vEvaluadosDesempeno
                    select new E_OBTIENE_EVALUADOS_DESEMPENO
            {
                ID_EMPLEADO = x.ID_EMPLEADO,
                CL_EMPLEADO = x.CL_EMPLEADO,
                NB_EMPLEADO = x.NB_EMPLEADO,
                MN_SUELDO = x.MN_SUELDO,
                NB_PUESTO = x.NB_PUESTO,
                NB_DEPARTAMENTO = x.NB_DEPARTAMENTO,
                FG_VISIBLE_BONO = x.FG_SUELDO_VISIBLE_BONO
            }).ToList());
        }
        public List <E_OBTIENE_EVALUADOS_DESEMPENO> ObtenerBonosDesempeno(int?pIdEmpledo = null, string pXmlPeriodos = null)
        {
            var vEvaluadosDesempeno = new PeriodoDesempenoOperaciones().ObtenerBonosDesempeno(pIdEmpledo, pXmlPeriodos).ToList();

            return((from x in vEvaluadosDesempeno
                    select new E_OBTIENE_EVALUADOS_DESEMPENO
            {
                ID_EVALUADO = x.ID_EVALUADO,
                PR_EVALUADO = x.PR_EVALUADO,
                FE_INICIO = x.FE_INICIO,
                FE_TERMINO = x.FE_TERMINO == null ? x.FE_INICIO : (System.DateTime)x.FE_TERMINO,
                MN_TOPE_BONO = x.MN_TOPE_BONO,
                NO_MONTO_BONO = x.NO_MONTO_BONO,
                PR_CUMPLIMIENTO_EVALUADO = x.PR_CUMPLIMIENTO_EVALUADO,
                MN_BONO_TOTAL = x.MN_BONO_TOTAL,
                CL_PERIODO = x.CL_PERIODO,
                ID_PERIODO = (int)x.ID_PERIODO,
                PR_BONO = x.PR_BONO,
                MN_BONO = x.MN_BONO
            }).ToList());
        }
        public List <E_OBTIENE_CUMPLIMIENTO_GLOBAL> ObtieneCumplimientoGlobal(int?pIdPeriodo = null, int?pIdRol = null)
        {
            var vDesempeno = new PeriodoDesempenoOperaciones().ObtenerCumplimientoGlobal(pIdPeriodo, pIdRol).ToList();

            return((from x in vDesempeno
                    select new E_OBTIENE_CUMPLIMIENTO_GLOBAL
            {
                ID_PERIODO = x.ID_PERIODO,
                CL_PUESTO_ACTUAL = x.CL_PUESTO_ACTUAL,
                NB_PUESTO_ACTUAL = x.NB_PUESTO_ACTUAL,
                CL_PUESTO_PERIODO = x.CL_PUESTO_PERIODO,
                NB_PUESTO_PERIODO = x.NB_PUESTO_PERIODO,
                NB_EVALUADO = x.NB_EVALUADO,
                PR_EVALUADO = x.PR_EVALUADO,
                PR_CUMPLIMIENTO_EVALUADO = x.PR_CUMPLIMIENTO_EVALUADO,
                C_GENERAL = x.C_GENERAL,
                ID_EVALUADO = x.ID_EVALUADO,
                ID_BONO_EVALUADO = x.ID_BONO_EVALUADO,
                ID_EMPLEADO = x.ID_EMPLEADO,
                CL_EMPLEADO = x.CL_EMPLEADO,
                CUMPLIDO = x.CUMPLIDO
            }).ToList());
        }
        //public List<SPE_OBTIENE_EO_RESULTADO_JERARQUICO_Result> ObtieneResultadoJerarquico(int pIdEvaluador)
        //{
        //    PeriodoDesempenoOperaciones oPeriodo = new PeriodoDesempenoOperaciones();
        //    return oPeriodo.ObtenerResultadoJerarquico(pIdEvaluador);
        //}
        public List <E_BAJAS_PERIODO_EDD> ObtieneBajasEDD(int?pIdEmpleado = null)
        {
            PeriodoDesempenoOperaciones oPeriodo = new PeriodoDesempenoOperaciones();

            return(oPeriodo.ObtenerBajasEDD(pIdEmpleado).ToList());
        }
        public E_RESULTADO InsertaActualizaEvidenciasMetas(int?pIsEvaluadoMeta, List <UDTT_ARCHIVO> pLstArchivosTemporales, List <E_DOCUMENTO> pLstDocumentos, string pClUsuario, string pNbPrograma, int?pIdEvaluador)
        {
            PeriodoDesempenoOperaciones oSolicitud = new PeriodoDesempenoOperaciones();

            return(UtilRespuesta.EnvioRespuesta(oSolicitud.InsertarActualizarEvidenciasMetas(pIsEvaluadoMeta, pLstArchivosTemporales, pLstDocumentos, pClUsuario, pNbPrograma, pIdEvaluador)));
        }
        public List <E_OBTIENE_EVALUADOS_DESEMPENO> ObtieneEvaluados(int?pIdPeriodo = null, int?pIdEvaluado = null, int?pIdEvaluador = null, string pClUsuario = null, string pNbPrograma = null, int?pIdRol = null)
        {
            var vEvaluadosDesempeno = new PeriodoDesempenoOperaciones().ObtenerEvaluados(pIdPeriodo, pIdEvaluado, pIdEvaluador, pClUsuario, pNbPrograma, pIdRol).ToList();

            return((from x in vEvaluadosDesempeno
                    select new E_OBTIENE_EVALUADOS_DESEMPENO
            {
                ID_EMPLEADO = x.ID_EMPLEADO,
                CL_EMPLEADO = x.CL_EMPLEADO,
                NB_EMPLEADO_COMPLETO = x.NB_EMPLEADO_COMPLETO,
                NB_EMPLEADO = x.NB_EMPLEADO,
                NB_APELLIDO_PATERNO = x.NB_APELLIDO_PATERNO,
                NB_APELLIDO_MATERNO = x.NB_APELLIDO_MATERNO,
                CL_ESTADO_EMPLEADO = x.CL_ESTADO_EMPLEADO,
                CL_GENERO = x.CL_GENERO,
                CL_ESTADO_CIVIL = x.CL_ESTADO_CIVIL,
                NB_CONYUGUE = x.NB_CONYUGUE,
                CL_RFC = x.CL_RFC,
                CL_CURP = x.CL_CURP,
                CL_NSS = x.CL_NSS,
                CL_TIPO_SANGUINEO = x.CL_TIPO_SANGUINEO,
                CL_NACIONALIDAD = x.CL_NACIONALIDAD,
                NB_PAIS = x.NB_PAIS,
                NB_ESTADO = x.NB_ESTADO,
                NB_MUNICIPIO = x.NB_MUNICIPIO,
                NB_COLONIA = x.NB_COLONIA,
                NB_CALLE = x.NB_CALLE,
                NO_INTERIOR = x.NO_INTERIOR,
                NO_EXTERIOR = x.NO_EXTERIOR,
                CL_CODIGO_POSTAL = x.CL_CODIGO_POSTAL,
                M_EMPLEADO_CL_CORREO_ELECTRONICO = x.M_EMPLEADO_CL_CORREO_ELECTRONICO,
                M_EMPLEADO_ACTIVO = x.M_EMPLEADO_ACTIVO,
                FE_NACIMIENTO = x.FE_NACIMIENTO,
                DS_LUGAR_NACIMIENTO = x.DS_LUGAR_NACIMIENTO,
                FE_ALTA = x.FE_ALTA,
                FE_BAJA = x.FE_BAJA,
                MN_SUELDO = x.MN_SUELDO,
                MN_SUELDO_VARIABLE = x.MN_SUELDO_VARIABLE,
                DS_SUELDO_COMPOSICION = x.DS_SUELDO_COMPOSICION,
                CL_PUESTO = x.CL_PUESTO,
                NB_PUESTO = x.NB_PUESTO,
                XML_RESPONSABILIDAD = x.XML_RESPONSABILIDAD,
                CL_EMPRESA = x.CL_EMPRESA,
                NB_EMPRESA = x.NB_EMPRESA,
                NB_RAZON_SOCIAL = x.NB_RAZON_SOCIAL,
                CL_DEPARTAMENTO = x.CL_DEPARTAMENTO,
                NB_DEPARTAMENTO = x.NB_DEPARTAMENTO,
                ID_EVALUADO = x.ID_EVALUADO,
                NO_TOTAL_METAS = x.NO_TOTAL_METAS,
                NO_TOTAL_METAS_ACTIVAS = x.NO_TOTAL_METAS_ACTIVAS,
                PR_EVALUADO = x.PR_EVALUADO,
                NO_EVALUADOR = x.NO_EVALUADOR,
                FE_CAPTURA_METAS = x.FE_CAPTURA_METAS,
                MN_TOPE_BONO = x.MN_TOPE_BONO,
                NO_MONTO_BONO = x.NO_MONTO_BONO,
                CL_MONTO_BONO = x.CL_MONTO_BONO,
                PR_CUMPLIMIENTO_EVALUADO = x.PR_CUMPLIMIENTO_EVALUADO,
                MN_BONO_TOTAL = x.MN_BONO_TOTAL,
                ESTATUS = x.ESTATUS
            }).ToList());
        }