public NegocioIncidenciasGraficas(EntidadIncidenciasGraficas parIncidencia)
         {
             this.log = string.Empty;
             if (parIncidencia != null)
             {
                 this.incidencia = parIncidencia;
             }
             else
             {
                 this.incidencia = new EntidadIncidenciasGraficas();
             }

             this.tablaIncidencias = new TablaIncidenciasGraficas(this.incidencia);
         }
         public DataTable BuscarPersonalZona(EntidadIncidenciasGraficas parTipo)
         {
             TablaIncidenciasEbs tablaBuscaZona = new TablaIncidenciasEbs();

             DataTable datos = tablaBuscaZona.ObtenerEmpleadoZona(parTipo);

             if (datos != null)
             {
                 this.log = "OK";
                 return datos;
             }
             else
             {
                 this.log = tablaBuscaZona.Log;
                 return null;
             }
         }
        public TablaIncidenciasGraficas(EntidadIncidenciasGraficas parPeriodo)
        {

            this.conxSqlServer = new ManagerSqlServer();
            this.comando = new SqlCommand();
            this.log = string.Empty;

            if (parPeriodo != null)
            {
                this.periodo = parPeriodo;
            }
            else
            {
                this.periodo = new EntidadIncidenciasGraficas();
            }

        }
 // *** Busca el total de empleados por zona**
 protected void TotalEmpleadosZona()
 {
     string zona = "";
     string totalxzona = "";
     //para obtener el total de empleados por zona
     EntidadIncidenciasGraficas incidencia = new EntidadIncidenciasGraficas();
     incidencia.DescZona = "1120";
     NegocioIncidenciasGraficas negocioPersonalZona = new NegocioIncidenciasGraficas(incidencia);
     DataTable DgTotalEmpledos = negocioPersonalZona.BuscarPersonalZona(incidencia);
     if (DgTotalEmpledos != null)
     {
         if (DgTotalEmpledos.Rows.Count != 0)
         {
             foreach (DataRow filaval in DgTotalEmpledos.Rows)
             {
                 zona = filaval["zona"].ToString().ToUpper();
                 totalxzona = filaval["total"].ToString();
                 InsertRegEbs(zona, totalxzona);
             }
         }
     }
 }
Beispiel #5
0
        //public List<EntidadIncidenciasGraficas> ObtenerEmpleadoZonax()
        //{

        //    ManagerOracle baseOracle = new ManagerOracle("EBS");

        //    string sentenciaSQL =
        //                           " SELECT " +
        //                           " CASE " +
        //                           "    WHEN ASIG_UBICACION_CLAVE = '144' or ASIG_UBICACION_CLAVE = '143' or ASIG_UBICACION_CLAVE = '142' THEN 'VILLAHERMOSA'   " +
        //                           "    WHEN ASIG_UBICACION_CLAVE = '148'  or ASIG_UBICACION_CLAVE = '147' THEN 'POZA RICA'   " +
        //                           "    WHEN ASIG_UBICACION_CLAVE = '145'  THEN 'REYNOSA'   " +
        //                           "    WHEN ASIG_UBICACION_CLAVE = '146'  THEN 'VERACRUZ'   " +
        //                           "    WHEN ASIG_UBICACION_CLAVE = '243'  THEN 'H3A1' " +
        //                           " ELSE '--'  " +
        //                           " END zona , " +
        //                    " count( PERS_CLAVE) as total " +
        //                    " FROM   " + 
        //                    " (      " +
        //                       " SELECT  " +
        //                       "     EMPLEADOS.PERSON_ID AS PERS_CLAVE,   " +
        //                       "     EMPLEADOS.PERSON_TYPE_ID AS PERS_TIPO_CODIGO,   " +
        //                       "     TIPOS.USER_PERSON_TYPE AS PERS_TIPO_DESC,  " +
        //                       "     EMPLEADOS.EMPLOYEE_NUMBER AS PERS_EMPLEADO_NUMERO  " +
        //                       "  FROM PER_ALL_PEOPLE_F EMPLEADOS  " +
        //                       " INNER JOIN (  " +
        //                                   "    SELECT  " +
        //                                   "     PERSON_ID,  " +
        //                                   "     MAX(OBJECT_VERSION_NUMBER) AS VER,  " +
        //                                   "     MAX(EFFECTIVE_END_DATE) AS EFEC_DATE  " +
        //                                   "     FROM PER_ALL_PEOPLE_F  " +
        //                                   "     GROUP BY PERSON_ID  " +
        //                                  " ) ACT ON ACT.PERSON_ID = EMPLEADOS.PERSON_ID AND ACT.VER = EMPLEADOS.OBJECT_VERSION_NUMBER AND ACT.EFEC_DATE = EMPLEADOS.EFFECTIVE_END_DATE   " +
        //                       " LEFT OUTER JOIN PER_PERSON_TYPES TIPOS ON TIPOS.PERSON_TYPE_ID = EMPLEADOS.PERSON_TYPE_ID "+
        //                    " ) EMP  " +
        //                    " left outer join (  " +
        //                                      " SELECT " + 
        //                                      " ASIGNACIONES.ASSIGNMENT_ID AS ASIG_CLAVE,  " +
        //                                      " ASIGNACIONES.ASSIGNMENT_NUMBER AS ASIG_EMPLEADO_NUMERO,  " +
        //                                      " ASIGNACIONES.PERSON_ID AS ASIG_PERSONA_CLAVE,  " +
        //                                      " ASIGNACIONES.EFFECTIVE_START_DATE AS ASIG_FECHA_INICIO,  " +
        //                                      " ASIGNACIONES.EFFECTIVE_END_DATE as ASIG_FECHA_FIN,  " +
        //                                      " ASIGNACIONES.ORGANIZATION_ID AS ASIG_ORGANIZACION_CLAVE,  " +
        //                                      " ORGANIZACIONES.NAME AS ASIG_ORGANIZACION_DESC,  " +
        //                                      " ASIGNACIONES.JOB_ID AS ASIG_TRABAJO_CLAVE,  " +
        //                                      " TRABAJOS.NAME AS ASIG_TRABAJO_DESC,  " +
        //                                      " ASIGNACIONES.GRADE_ID AS ASIG_GRADO_CLAVE,  " +
        //                                      " GRADOS.NAME AS ASIG_GRADO_DESC,   " +
        //                                      " ASIGNACIONES.LOCATION_ID AS ASIG_UBICACION_CLAVE,   " +
        //                                      " UBICACIONES.location_code AS ASIG_UBICACION_DESC,   " +
        //                                      " ASIGNACIONES.PEOPLE_GROUP_ID AS ASIG_GRUPO_CLAVE,   " +
        //                                      "  GRUPOS.GROUP_NAME AS ASIG_GRUPO_DESC,   " +
        //                                      "  ASIGNACIONES.POSITION_ID AS ASIG_PUESTO_CLAVE,   " +
        //                                      "  PUESTOS.NAME AS ASIG_PUESTO_DESC,   " +
        //                                      "  ASIGNACIONES.PAYROLL_ID AS ASIG_NOMINA_CLAVE,   " +
        //                                      "  NOMINA.PAYROLL_NAME AS ASIG_NOMINA_DESC,   " +
        //                                      "  ASIGNACIONES.ASSIGNMENT_STATUS_TYPE_ID AS ASIG_ESTADO_CLAVE,   " +
        //                                      "  ESTADOS.USER_STATUS AS ASIG_ESTADO_DESC,   " +
        //                                      "  ASIGNACIONES.EMPLOYMENT_CATEGORY AS ASIG_CATEGORIA_CODIGO,   " +
        //                                      "  ASIGNACIONES.PAY_BASIS_ID AS ASIG_SALARIO_BASE_CLAVE,   " +
        //                                      "  PAYB.name as ASIG_SALARIO_BASE_DESC,   " +
        //                                      "  ASIGNACIONES.SOFT_CODING_KEYFLEX_ID AS INFORMACION_ESTATUTARIA_CLAVE,   " +
        //                                      "   ESTATUTARIA.CONCATENATED_SEGMENTS AS INFORMACION_ESTATUTARIA_DESC,   " +
        //                                      "  ASIGNACIONES.OBJECT_VERSION_NUMBER AS ASIG_VERSION   " +
        //                                      "  FROM PER_ALL_ASSIGNMENTS_F  ASIGNACIONES   " +
        //                                      "  INNER JOIN (   " +
        //                                                    "  SELECT   " +
        //                                                    "  ASSIGNMENT_NUMBER,   " +
        //                                                    "  MAX(OBJECT_VERSION_NUMBER) AS VER,   " +
        //                                                    "  max(EFFECTIVE_END_DATE) as asig_date   " +
        //                                                    "  FROM PER_ALL_ASSIGNMENTS_F   " +
        //                                                    "  where TO_CHAR(EFFECTIVE_END_DATE,'YYYY-MM-DD' ) = '4712-12-31'   " +
        //                                                    "  GROUP BY ASSIGNMENT_NUMBER   " +
        //                                                "   ) ACT ON ACT.ASSIGNMENT_NUMBER = ASIGNACIONES.ASSIGNMENT_NUMBER  AND ACT.VER = ASIGNACIONES.OBJECT_VERSION_NUMBER and ACT.ASIG_DATE = ASIGNACIONES.EFFECTIVE_END_DATE   " +
        //                                      "  LEFT OUTER JOIN PER_GRADES GRADOS ON GRADOS.GRADE_ID = ASIGNACIONES.GRADE_ID   " +
        //                                      "  LEFT OUTER JOIN HR_ALL_ORGANIZATION_UNITS ORGANIZACIONES ON ORGANIZACIONES.ORGANIZATION_ID = ASIGNACIONES.ORGANIZATION_ID   " +
        //                                      "  LEFT OUTER JOIN HR_SOFT_CODING_KEYFLEX ESTATUTARIA ON ESTATUTARIA.SOFT_CODING_KEYFLEX_ID = ASIGNACIONES.SOFT_CODING_KEYFLEX_ID   " +
        //                                      "  LEFT OUTER JOIN PER_PAY_BASES PAYB ON PAYB.PAY_BASIS_ID = ASIGNACIONES.PAY_BASIS_ID   " +
        //                                      "  LEFT OUTER JOIN PER_JOBS TRABAJOS ON TRABAJOS.JOB_ID = ASIGNACIONES.JOB_ID   " +
        //                                      "  LEFT OUTER JOIN PER_ASSIGNMENT_STATUS_TYPES ESTADOS ON ESTADOS.ASSIGNMENT_STATUS_TYPE_ID = ASIGNACIONES.ASSIGNMENT_STATUS_TYPE_ID   " +
        //                                      "  LEFT OUTER JOIN HR_LOCATIONS_ALL UBICACIONES ON UBICACIONES.LOCATION_ID =  ASIGNACIONES.LOCATION_ID    " +
        //                                      "  LEFT OUTER JOIN PAY_PEOPLE_GROUPS GRUPOS ON GRUPOS.PEOPLE_GROUP_ID = ASIGNACIONES.PEOPLE_GROUP_ID      " +
        //                                      "   LEFT OUTER JOIN PER_ALL_POSITIONS PUESTOS ON PUESTOS.POSITION_ID = ASIGNACIONES.POSITION_ID           " +
        //                                      "   LEFT OUTER JOIN PAY_ALL_PAYROLLS_F NOMINA ON NOMINA.PAYROLL_ID = ASIGNACIONES.PAYROLL_ID              " +
        //                                   "  ) ASG ON ASG.ASIG_PERSONA_CLAVE =  EMP.PERS_CLAVE    " +
        //                   "  LEFT OUTER JOIN (   " +
        //                                     "  SELECT   " +
        //                                     "  GRUPOS.PEOPLE_GROUP_ID AS GRUP_CLAVE,   " +
        //                                     "  GRUPOS.GROUP_NAME AS GRUP_NOMBRE,   " +
        //                                     "  GRUPOS.ENABLED_FLAG AS GRUP_BANDERA_HABILITADO,   " +
        //                                     "  GRUPOS.SEGMENT4 AS GRUP_NOMINA_JDE,   " +
        //                                     "  GRUPOS.SEGMENT6 AS GRUP_COMPANIA_JDE,   " +
        //                                     "  GRUPOS.SEGMENT2 AS GRUP_PROYECTO_JDE,   " +
        //                                     "  PROY.LOOKUP_CODE AS GRUP_PROYECTO_CODE_JDE,   " +
        //                                     "  GRUPOS.SEGMENT3 AS GRUP_FASE_JDE,   " +
        //                                     "  FASE.LOOKUP_CODE AS GRUP_FASE_CODE_JDE,   " +
        //                                     "  grupos.segment7 as GRUP_PUESTO_JDE,   " +
        //                                     "  IMMS.LOOKUP_CODE AS GRUP_PUESTO_CODE_JDE   " +
        //                                     "  FROM PAY_PEOPLE_GROUPS GRUPOS   " +
        //                                     "  LEFT OUTER JOIN FND_LOOKUP_VALUES PROY ON PROY.MEANING = GRUPOS.SEGMENT2   " +
        //                                      "                                     AND PROY.lookup_type = 'NVL_PAY_PROYECTO'   " +
        //                                      "                                     AND PROY.LANGUAGE = 'ESA'   " +
        //                                    "   LEFT OUTER JOIN FND_LOOKUP_VALUES FASE ON FASE.MEANING = GRUPOS.SEGMENT3   " +
        //                                     "                                        AND FASE.lookup_type = 'NVL_PAY_FASE_V2'   " +
        //                                     "                                         AND FASE.LANGUAGE = 'ESA'   " +
        //                                     "   LEFT OUTER JOIN FND_LOOKUP_VALUES IMMS ON IMMS.MEANING = GRUPOS.segment7   " +
        //                                     "                                        AND IMMS.lookup_type = 'NVL_PUESTO_IMSS'   " +
        //                                     "                                        AND IMMS.LANGUAGE = 'ESA'   " +
        //                                     " ) GRP ON GRP.GRUP_CLAVE = ASG.ASIG_GRUPO_CLAVE   " +
        //                   "  left outer join (   " +
        //                                    "    select   " +
        //                                    "    PPPM.ASSIGNMENT_ID AS METODO_ASIGNACION_ID,   " +
        //                                    "    POPN.ORG_PAYMENT_METHOD_NAME AS METODO_NOMBRE,   " +
        //                                    "    PTI.PAYMENT_TYPE_NAME AS METODO_TIPO,   " +
        //                                    "    PPPM.PRIORITY AS METODO_PRIORIDAD,   " +
        //                                    "    PPPM.EFFECTIVE_START_DATE AS METODO_FECHA_EFEC_DESDE,   " +
        //                                    "    PPPM.EFFECTIVE_END_DATE AS METODO_FECHA_EFEC_HASTA,   " +
        //                                    "    PPPM.AMOUNT AS METODO_IMPORTE_SALDO,   " +
        //                                    "    PPPM.PERCENTAGE AS METODO_PORCENTAJE,   " +
        //                                    "    PPPM.ATTRIBUTE1 AS METODO_PAGO,   " +
        //                                    "    PEA.SEGMENT2 AS METODO_SUCURSAL,   " +
        //                                    "    PEA.SEGMENT3 AS METODO_CUENTA,   " +
        //                                    "    PEA.SEGMENT4 AS METODO_TIPO_CUENTA_ID,   " +
        //                                    "    PEA.SEGMENT5 AS METODO_CLABE   " +
        //                                    "    from PAY_PERSONAL_PAYMENT_METHODS_F PPPM   " +
        //                                    "    LEFT OUTER JOIN PAY_EXTERNAL_ACCOUNTS PEA   " +
        //                                    "                 ON PEA.EXTERNAL_ACCOUNT_ID = PPPM.EXTERNAL_ACCOUNT_ID   " +
        //                                    "    LEFT OUTER JOIN PAY_ORG_PAYMENT_METHODS_F POPN   " +
        //                                     "                ON POPN.ORG_PAYMENT_METHOD_ID = PPPM.ORG_PAYMENT_METHOD_ID   " +
        //                                    "    LEFT OUTER JOIN PAY_PAYMENT_TYPES PTI   " +
        //                                     "                ON PTI.PAYMENT_TYPE_ID = POPN.PAYMENT_TYPE_ID    " +
        //                                    "    WHERE TO_CHAR(PPPM.EFFECTIVE_END_DATE,'YYYY-MM-DD' ) =  '4712-12-31'   " +
        //                                  "  ) MTP ON MTP.METODO_ASIGNACION_ID = asg.ASIG_CLAVE   " +
        //                   "  WHERE   " +
        //                        "  NVL(PERS_TIPO_DESC,'VACIO' ) like 'Administrativo'  " +
        //                        "   and ASIG_UBICACION_CLAVE IS NOT NULL " +
        //                   "  group by    " +
        //                   "         PERS_TIPO_DESC, " +
        //                   "         CASE " +
        //                   "             WHEN ASIG_UBICACION_CLAVE = '144' or ASIG_UBICACION_CLAVE = '143' or ASIG_UBICACION_CLAVE = '142' THEN 'VILLAHERMOSA'   " +
        //                   "             WHEN ASIG_UBICACION_CLAVE = '148' or ASIG_UBICACION_CLAVE = '147' THEN 'POZA RICA'   " +
        //                   "             WHEN ASIG_UBICACION_CLAVE = '145'  THEN 'REYNOSA'   " +
        //                   "             WHEN ASIG_UBICACION_CLAVE = '146'  THEN 'VERACRUZ'  " +
        //                   "             WHEN ASIG_UBICACION_CLAVE = '243' THEN 'H3A1'   " +
        //                   "          ELSE '--'    " +
        //                   "         END ";

        //    DataSet conjuntoDatos = baseOracle.Consultar(sentenciaSQL);

        //    if (conjuntoDatos != null) // Valida que no exista error
        //    {
        //        DataTable datos = conjuntoDatos.Tables[0];

        //        if (datos.Rows.Count != 0) // Valida que existan registrosx
        //        {
        //            List<EntidadIncidenciasGraficas> listaGradoAcademico = new List<EntidadIncidenciasGraficas>();

        //            foreach (DataRow fila in datos.Rows)
        //            {
        //                GradoAcademico GradoAcademico = new GradoAcademico();

        //                GradoAcademico.Clave = fila["QUALIFICATION_TYPE_ID"].ToString();
        //                GradoAcademico.Descripcion = fila["NAME"].ToString();
        //                GradoAcademico.Clave = GradoAcademico.Clave.ToUpper();
        //                GradoAcademico.Descripcion = GradoAcademico.Descripcion.ToUpper();

        //                listaGradoAcademico.Add(GradoAcademico);
        //            }

        //            this.log = listaGradoAcademico.Count.ToString();
        //            return listaGradoAcademico;
        //        }
        //        else
        //        {
        //            this.log = "VACIO";
        //            return null;
        //        }
        //    }
        //    else
        //    {
        //        this.log = baseOracle.Log;
        //        return null;
        //    }

        //}


        public DataTable ObtenerEmpleadoZona(EntidadIncidenciasGraficas parTipo)
        {
            try
            {
                ManagerOracle baseOracle = new ManagerOracle("EBS");
                OracleCommand comando = new OracleCommand();

                comando.CommandText =
                                  " SELECT " +
                                  " CASE " +
                                     "    WHEN ASIG_UBICACION_CLAVE = '144' or ASIG_UBICACION_CLAVE = '143' or ASIG_UBICACION_CLAVE = '142' THEN 'VILLAHERMOSA'  " +
                                     "    WHEN ASIG_UBICACION_CLAVE = '148'  or ASIG_UBICACION_CLAVE = '147' THEN 'POZA RICA' " +
                                     "    WHEN ASIG_UBICACION_CLAVE = '145'  THEN 'REYNOSA' " +
                                     "    WHEN ASIG_UBICACION_CLAVE = '146' and GRUP_PROYECTO_CODE_JDE = '133' THEN 'CD.CARMEN-PLATAFORMA' " +
                                     "    WHEN ASIG_UBICACION_CLAVE = '146' and GRUP_PROYECTO_CODE_JDE = 'E07' THEN 'SINEA' " +
                                     "    WHEN ASIG_UBICACION_CLAVE = '146' and(GRUP_PROYECTO_CODE_JDE != 'E07' or GRUP_PROYECTO_CODE_JDE != '133') THEN 'VERACRUZ' " +
                                     "    WHEN ASIG_UBICACION_CLAVE = '243'  THEN 'H3A1' " +
                                  " ELSE '--'  " +
                                  " END zona , " +
                           " count( PERS_CLAVE) as total " +
                           " FROM   " +
                           " (      " +
                              " SELECT  " +
                              "     EMPLEADOS.PERSON_ID AS PERS_CLAVE,   " +
                              "     EMPLEADOS.PERSON_TYPE_ID AS PERS_TIPO_CODIGO,   " +
                              "     TIPOS.USER_PERSON_TYPE AS PERS_TIPO_DESC,  " +
                              "     EMPLEADOS.EMPLOYEE_NUMBER AS PERS_EMPLEADO_NUMERO  " +
                              "  FROM PER_ALL_PEOPLE_F EMPLEADOS  " +
                              " INNER JOIN (  " +
                                          "    SELECT  " +
                                          "     PERSON_ID,  " +
                                          "     MAX(OBJECT_VERSION_NUMBER) AS VER,  " +
                                          "     MAX(EFFECTIVE_END_DATE) AS EFEC_DATE  " +
                                          "     FROM PER_ALL_PEOPLE_F  " +
                                          "     GROUP BY PERSON_ID  " +
                                         " ) ACT ON ACT.PERSON_ID = EMPLEADOS.PERSON_ID AND ACT.VER = EMPLEADOS.OBJECT_VERSION_NUMBER AND ACT.EFEC_DATE = EMPLEADOS.EFFECTIVE_END_DATE   " +
                              " LEFT OUTER JOIN PER_PERSON_TYPES TIPOS ON TIPOS.PERSON_TYPE_ID = EMPLEADOS.PERSON_TYPE_ID " +
                           " ) EMP  " +
                           " left outer join (  " +
                                             " SELECT " +
                                             " ASIGNACIONES.ASSIGNMENT_ID AS ASIG_CLAVE,  " +
                                             " ASIGNACIONES.ASSIGNMENT_NUMBER AS ASIG_EMPLEADO_NUMERO,  " +
                                             " ASIGNACIONES.PERSON_ID AS ASIG_PERSONA_CLAVE,  " +
                                             " ASIGNACIONES.EFFECTIVE_START_DATE AS ASIG_FECHA_INICIO,  " +
                                             " ASIGNACIONES.EFFECTIVE_END_DATE as ASIG_FECHA_FIN,  " +
                                             " ASIGNACIONES.ORGANIZATION_ID AS ASIG_ORGANIZACION_CLAVE,  " +
                                             " ORGANIZACIONES.NAME AS ASIG_ORGANIZACION_DESC,  " +
                                             " ASIGNACIONES.JOB_ID AS ASIG_TRABAJO_CLAVE,  " +
                                             " TRABAJOS.NAME AS ASIG_TRABAJO_DESC,  " +
                                             " ASIGNACIONES.GRADE_ID AS ASIG_GRADO_CLAVE,  " +
                                             " GRADOS.NAME AS ASIG_GRADO_DESC,   " +
                                             " ASIGNACIONES.LOCATION_ID AS ASIG_UBICACION_CLAVE,   " +
                                             " UBICACIONES.location_code AS ASIG_UBICACION_DESC,   " +
                                             " ASIGNACIONES.PEOPLE_GROUP_ID AS ASIG_GRUPO_CLAVE,   " +
                                             "  GRUPOS.GROUP_NAME AS ASIG_GRUPO_DESC,   " +
                                             "  ASIGNACIONES.POSITION_ID AS ASIG_PUESTO_CLAVE,   " +
                                             "  PUESTOS.NAME AS ASIG_PUESTO_DESC,   " +
                                             "  ASIGNACIONES.PAYROLL_ID AS ASIG_NOMINA_CLAVE,   " +
                                             "  NOMINA.PAYROLL_NAME AS ASIG_NOMINA_DESC,   " +
                                             "  ASIGNACIONES.ASSIGNMENT_STATUS_TYPE_ID AS ASIG_ESTADO_CLAVE,   " +
                                             "  ESTADOS.USER_STATUS AS ASIG_ESTADO_DESC,   " +
                                             "  ASIGNACIONES.EMPLOYMENT_CATEGORY AS ASIG_CATEGORIA_CODIGO,   " +
                                             "  ASIGNACIONES.PAY_BASIS_ID AS ASIG_SALARIO_BASE_CLAVE,   " +
                                             "  PAYB.name as ASIG_SALARIO_BASE_DESC,   " +
                                             "  ASIGNACIONES.SOFT_CODING_KEYFLEX_ID AS INFORMACION_ESTATUTARIA_CLAVE,   " +
                                             "   ESTATUTARIA.CONCATENATED_SEGMENTS AS INFORMACION_ESTATUTARIA_DESC,   " +
                                             "  ASIGNACIONES.OBJECT_VERSION_NUMBER AS ASIG_VERSION   " +
                                             "  FROM PER_ALL_ASSIGNMENTS_F  ASIGNACIONES   " +
                                             "  INNER JOIN (   " +
                                                           "  SELECT   " +
                                                           "  ASSIGNMENT_NUMBER,   " +
                                                           "  MAX(OBJECT_VERSION_NUMBER) AS VER,   " +
                                                           "  max(EFFECTIVE_END_DATE) as asig_date   " +
                                                           "  FROM PER_ALL_ASSIGNMENTS_F   " +
                                                           "  where TO_CHAR(EFFECTIVE_END_DATE,'YYYY-MM-DD' ) = '4712-12-31'   " +
                                                           "  GROUP BY ASSIGNMENT_NUMBER   " +
                                                       "   ) ACT ON ACT.ASSIGNMENT_NUMBER = ASIGNACIONES.ASSIGNMENT_NUMBER  AND ACT.VER = ASIGNACIONES.OBJECT_VERSION_NUMBER and ACT.ASIG_DATE = ASIGNACIONES.EFFECTIVE_END_DATE   " +
                                             "  LEFT OUTER JOIN PER_GRADES GRADOS ON GRADOS.GRADE_ID = ASIGNACIONES.GRADE_ID   " +
                                             "  LEFT OUTER JOIN HR_ALL_ORGANIZATION_UNITS ORGANIZACIONES ON ORGANIZACIONES.ORGANIZATION_ID = ASIGNACIONES.ORGANIZATION_ID   " +
                                             "  LEFT OUTER JOIN HR_SOFT_CODING_KEYFLEX ESTATUTARIA ON ESTATUTARIA.SOFT_CODING_KEYFLEX_ID = ASIGNACIONES.SOFT_CODING_KEYFLEX_ID   " +
                                             "  LEFT OUTER JOIN PER_PAY_BASES PAYB ON PAYB.PAY_BASIS_ID = ASIGNACIONES.PAY_BASIS_ID   " +
                                             "  LEFT OUTER JOIN PER_JOBS TRABAJOS ON TRABAJOS.JOB_ID = ASIGNACIONES.JOB_ID   " +
                                             "  LEFT OUTER JOIN PER_ASSIGNMENT_STATUS_TYPES ESTADOS ON ESTADOS.ASSIGNMENT_STATUS_TYPE_ID = ASIGNACIONES.ASSIGNMENT_STATUS_TYPE_ID   " +
                                             "  LEFT OUTER JOIN HR_LOCATIONS_ALL UBICACIONES ON UBICACIONES.LOCATION_ID =  ASIGNACIONES.LOCATION_ID    " +
                                             "  LEFT OUTER JOIN PAY_PEOPLE_GROUPS GRUPOS ON GRUPOS.PEOPLE_GROUP_ID = ASIGNACIONES.PEOPLE_GROUP_ID      " +
                                             "   LEFT OUTER JOIN PER_ALL_POSITIONS PUESTOS ON PUESTOS.POSITION_ID = ASIGNACIONES.POSITION_ID           " +
                                             "   LEFT OUTER JOIN PAY_ALL_PAYROLLS_F NOMINA ON NOMINA.PAYROLL_ID = ASIGNACIONES.PAYROLL_ID              " +
                                          "  ) ASG ON ASG.ASIG_PERSONA_CLAVE =  EMP.PERS_CLAVE    " +
                          "  LEFT OUTER JOIN (   " +
                                            "  SELECT   " +
                                            "  GRUPOS.PEOPLE_GROUP_ID AS GRUP_CLAVE,   " +
                                            "  GRUPOS.GROUP_NAME AS GRUP_NOMBRE,   " +
                                            "  GRUPOS.ENABLED_FLAG AS GRUP_BANDERA_HABILITADO,   " +
                                            "  GRUPOS.SEGMENT4 AS GRUP_NOMINA_JDE,   " +
                                            "  GRUPOS.SEGMENT6 AS GRUP_COMPANIA_JDE,   " +
                                            "  GRUPOS.SEGMENT2 AS GRUP_PROYECTO_JDE,   " +
                                            "  PROY.LOOKUP_CODE AS GRUP_PROYECTO_CODE_JDE,   " +
                                            "  GRUPOS.SEGMENT3 AS GRUP_FASE_JDE,   " +
                                            "  FASE.LOOKUP_CODE AS GRUP_FASE_CODE_JDE,   " +
                                            "  grupos.segment7 as GRUP_PUESTO_JDE,   " +
                                            "  IMMS.LOOKUP_CODE AS GRUP_PUESTO_CODE_JDE   " +
                                            "  FROM PAY_PEOPLE_GROUPS GRUPOS   " +
                                            "  LEFT OUTER JOIN FND_LOOKUP_VALUES PROY ON PROY.MEANING = GRUPOS.SEGMENT2   " +
                                             "                                     AND PROY.lookup_type = 'NVL_PAY_PROYECTO'   " +
                                             "                                     AND PROY.LANGUAGE = 'ESA'   " +
                                           "   LEFT OUTER JOIN FND_LOOKUP_VALUES FASE ON FASE.MEANING = GRUPOS.SEGMENT3   " +
                                            "                                        AND FASE.lookup_type = 'NVL_PAY_FASE_V2'   " +
                                            "                                         AND FASE.LANGUAGE = 'ESA'   " +
                                            "   LEFT OUTER JOIN FND_LOOKUP_VALUES IMMS ON IMMS.MEANING = GRUPOS.segment7   " +
                                            "                                        AND IMMS.lookup_type = 'NVL_PUESTO_IMSS'   " +
                                            "                                        AND IMMS.LANGUAGE = 'ESA'   " +
                                            " ) GRP ON GRP.GRUP_CLAVE = ASG.ASIG_GRUPO_CLAVE   " +
                          "  left outer join (   " +
                                           "    select   " +
                                           "    PPPM.ASSIGNMENT_ID AS METODO_ASIGNACION_ID,   " +
                                           "    POPN.ORG_PAYMENT_METHOD_NAME AS METODO_NOMBRE,   " +
                                           "    PTI.PAYMENT_TYPE_NAME AS METODO_TIPO,   " +
                                           "    PPPM.PRIORITY AS METODO_PRIORIDAD,   " +
                                           "    PPPM.EFFECTIVE_START_DATE AS METODO_FECHA_EFEC_DESDE,   " +
                                           "    PPPM.EFFECTIVE_END_DATE AS METODO_FECHA_EFEC_HASTA,   " +
                                           "    PPPM.AMOUNT AS METODO_IMPORTE_SALDO,   " +
                                           "    PPPM.PERCENTAGE AS METODO_PORCENTAJE,   " +
                                           "    PPPM.ATTRIBUTE1 AS METODO_PAGO,   " +
                                           "    PEA.SEGMENT2 AS METODO_SUCURSAL,   " +
                                           "    PEA.SEGMENT3 AS METODO_CUENTA,   " +
                                           "    PEA.SEGMENT4 AS METODO_TIPO_CUENTA_ID,   " +
                                           "    PEA.SEGMENT5 AS METODO_CLABE   " +
                                           "    from PAY_PERSONAL_PAYMENT_METHODS_F PPPM   " +
                                           "    LEFT OUTER JOIN PAY_EXTERNAL_ACCOUNTS PEA   " +
                                           "                 ON PEA.EXTERNAL_ACCOUNT_ID = PPPM.EXTERNAL_ACCOUNT_ID   " +
                                           "    LEFT OUTER JOIN PAY_ORG_PAYMENT_METHODS_F POPN   " +
                                            "                ON POPN.ORG_PAYMENT_METHOD_ID = PPPM.ORG_PAYMENT_METHOD_ID   " +
                                           "    LEFT OUTER JOIN PAY_PAYMENT_TYPES PTI   " +
                                            "                ON PTI.PAYMENT_TYPE_ID = POPN.PAYMENT_TYPE_ID    " +
                                           "    WHERE TO_CHAR(PPPM.EFFECTIVE_END_DATE,'YYYY-MM-DD' ) =  '4712-12-31'   " +
                                         "  ) MTP ON MTP.METODO_ASIGNACION_ID = asg.ASIG_CLAVE   " +
                          "  WHERE   " +
                               "  NVL(PERS_TIPO_DESC,'VACIO' ) like 'Administrativo'  " +
                               "   and ASIG_UBICACION_CLAVE IS NOT NULL " +
                          "  group by    " +
                          "         PERS_TIPO_DESC, " +
                          "         CASE " +
                                     "    WHEN ASIG_UBICACION_CLAVE = '144' or ASIG_UBICACION_CLAVE = '143' or ASIG_UBICACION_CLAVE = '142' THEN 'VILLAHERMOSA'  " +
                                     "    WHEN ASIG_UBICACION_CLAVE = '148'  or ASIG_UBICACION_CLAVE = '147' THEN 'POZA RICA' " +
                                     "    WHEN ASIG_UBICACION_CLAVE = '145'  THEN 'REYNOSA' " +
                                     "    WHEN ASIG_UBICACION_CLAVE = '146' and GRUP_PROYECTO_CODE_JDE = '133' THEN 'CD.CARMEN-PLATAFORMA' " +
                                     "    WHEN ASIG_UBICACION_CLAVE = '146' and GRUP_PROYECTO_CODE_JDE = 'E07' THEN 'SINEA' " +
                                     "    WHEN ASIG_UBICACION_CLAVE = '146' and(GRUP_PROYECTO_CODE_JDE != 'E07' or GRUP_PROYECTO_CODE_JDE != '133') THEN 'VERACRUZ' " +
                                     "    WHEN ASIG_UBICACION_CLAVE = '243'  THEN 'H3A1' " +
                          "          ELSE '--'    " +
                          "         END ";

                
                DataTable datos = baseOracle.Consultar(comando);
                return datos;

            }
            catch (Exception ex)
            {
                this.log = ex.Message;
                return null;
            }


        }
        public List<EntidadIncidenciasGraficas> ObtenerTRIR()
        {
            var total = 0.0;
            var total2 = 0.0;
            var totalPOperativo = 0.0;
            var totalPersonal = 0.0;
            var totalIncidencias = 0.0;

            this.comando.CommandText = " SELECT    * " +
                                   " FROM      INC_TRIR " +
                                   " WHERE PERIODO LIKE @parPeriodo ";

            this.comando.Parameters.Add("@parPeriodo", SqlDbType.VarChar).Value = this.periodo.Anio;

            DataTable datos = this.conxSqlServer.Consultar(this.comando);

            if (datos != null)
            {
                if (datos.Rows.Count != 0)
                {
                    List<EntidadIncidenciasGraficas> listaIncidenciasGraficas = new List<EntidadIncidenciasGraficas>();
                    foreach (DataRow fila in datos.Rows)
                    {
                        EntidadIncidenciasGraficas periodoTotal = new EntidadIncidenciasGraficas();
                        periodoTotal.TRIROperativo = (Convert.ToDouble(fila["INCIDENCIAS"]) * 200000) / (Convert.ToInt32(fila["TOTAL_OPERATIVO"]) * 2000);
                        periodoTotal.TRIRZona = (Convert.ToDouble(fila["INCIDENCIAS"]) * 200000) / (Convert.ToInt32(fila["TOTAL_PERSONAL"]) * 2000);
                       
                        total = total + periodoTotal.TRIROperativo;
                        total2 = total2 + periodoTotal.TRIRZona;
                        totalPOperativo = totalPOperativo + Convert.ToInt32(fila["TOTAL_OPERATIVO"]);
                        totalPersonal = totalPersonal + Convert.ToInt32(fila["TOTAL_PERSONAL"]);
                        totalIncidencias = totalIncidencias + Convert.ToInt32(fila["INCIDENCIAS"]);
                        
                    }

                    foreach (DataRow fila in datos.Rows)
                    {
                        EntidadIncidenciasGraficas periodo = new EntidadIncidenciasGraficas();
                        periodo.DescZona = fila["DESC_ZONA"].ToString();
                        periodo.TotalOperativo = Convert.ToInt32(fila["TOTAL_OPERATIVO"]);
                        periodo.TotalPersonal = Convert.ToInt32(fila["TOTAL_PERSONAL"]);
                        periodo.Incidencias = Convert.ToInt32(fila["INCIDENCIAS"]);
                        periodo.TRIROperativo =(Convert.ToDouble(fila["INCIDENCIAS"])*200000)/(Convert.ToInt32(fila["TOTAL_OPERATIVO"])*2000);
                        periodo.TRIRZona = (Convert.ToDouble(fila["INCIDENCIAS"]) * 200000) / (Convert.ToInt32(fila["TOTAL_PERSONAL"]) * 2000);

                        periodo.PorcentajeTRIR = ((Convert.ToDouble(fila["INCIDENCIAS"]) * 200000) / (Convert.ToInt32(fila["TOTAL_OPERATIVO"]) * 2000)) / total;
                        periodo.PorcentajeTRIRZona = ((Convert.ToDouble(fila["INCIDENCIAS"]) * 200000) / (Convert.ToInt32(fila["TOTAL_PERSONAL"]) * 2000)) / total2;


                        periodo.TotalTRIRZona = (totalIncidencias*200000) / (totalPersonal*2000);
                        periodo.TotalTRIROperativo = (totalIncidencias * 200000) / (totalPOperativo * 2000);

                        listaIncidenciasGraficas.Add(periodo);
                        
                    }

                    

                    this.log = listaIncidenciasGraficas.Count.ToString();
                    return listaIncidenciasGraficas;
                }
                else
                {
                    this.log = "VACIO";
                    return null;
                }
            }
            else
            {
                // this.log = this.conxSqlServer.Log();
                return null;
            }

        }
        public static List<EntidadIncidenciasGraficas> ObtenerTrir(String parPeriodo)
        {
            EntidadIncidenciasGraficas incidencia = new EntidadIncidenciasGraficas();
            incidencia.Anio = parPeriodo;
          
            NegocioIncidenciasGraficas INCIDENCIAS = new NegocioIncidenciasGraficas(incidencia);
            List<EntidadIncidenciasGraficas> listaIncidenciasGraficas = INCIDENCIAS.ObtenerTrir();
            if (listaIncidenciasGraficas != null)
            {
                return listaIncidenciasGraficas;
            }
            else
            {
                return null;
            }

        }