Beispiel #1
0
 public function sFNCAccesoValidar()
 {
     $this->iError = 0;
     $this->sMensajeError = "";
     $arrSalida = array();
     $arrDatosPersona = array();
     $arrDatosRol = array();
     //checa el acceso del usuario
     $arrSalida = $this->FNCProcesoValidacionEjecutar();
     $iNoError = $arrSalida['noError'];
     $sMsjError = $arrSalida['mensaje'];
     //$this->iError=0;
     if ($iNoError == 0) {
         require $_SERVER['DOCUMENT_ROOT'] . "/dce/evaluacionCompetencias/conexionBD.php";
         $sModulo = utf8_decode('Gestión en Dependencia de Evaluación por Competencia');
         $objProc = new clsProcedimientos("ecmUsuarioAccesoValidar");
         $objProc->FNCAgregaParametrosEntrada($this->sUsuario, 1);
         $objProc->FNCAgregaParametrosEntrada($sModulo, 1);
         $objProc->FNCAgregaParametroSalida("idPersona", "INT");
         $objProc->FNCAgregaParametroSalida("nombre", "VARCHAR", 30);
         $objProc->FNCAgregaParametroSalida("paterno", "VARCHAR", 30);
         $objProc->FNCAgregaParametroSalida("materno", "VARCHAR", 30);
         $objProc->FNCAgregaParametroSalida("noError", "INT");
         $objProc->FNCAgregaParametroSalida("mensaje", "VARCHAR", 255);
         $arrSalidaUsr = array();
         $arrSalidaUsr = $objProc->FNCObtieneResultado();
         //echo $objProc->getCadenaQuery(); die();
         // Array[0] --> idPersona, nombre, paterno, materno, noError, mensaje
         if (empty($arrSalidaUsr[0]['noError'])) {
             $arrSalidaUsr[0]['noError'] = 0;
         }
         $iNoError = $arrSalidaUsr[0]['noError'];
         if ($iNoError > 0) {
             $sMsjError = $arrSalidaUsr[0]['mensaje'];
         } else {
             $arrSalida['rol0'] = 'Responsable de Gestión de Evaluación por Competencia';
             // Crea la sesión
             //session_start();
             $_SESSION['VS_TiempoSesionEvalCompetencias'] = time();
             $_SESSION['VS_PersonaID'] = $arrSalidaUsr[0]['idPersona'];
             $_SESSION['VS_PersonaNombre'] = utf8_encode($arrSalidaUsr[0]['nombre'] . ' ' . $arrSalidaUsr[0]['paterno'] . ' ' . $arrSalidaUsr[0]['materno']);
             $_SESSION['VS_Usuario'] = $this->sUsuario;
             $_SESSION['VS_Rol'] = $arrSalida['rol0'];
             $arrSalida['roles'] = 1;
             /*if($i==1) $_SESSION['VS_Rol'] = $arrSalida['rol0'];
             		else $_SESSION['VS_Rol'] = 'por definir';
             		 $VS_Rol = */
             // TODO: Simplificar consulta dep y prog. (?) Checar si no afecta los DISTINCT en los resultados devueltos
             $objConsDependencia = new clsDependencia_ProgramaEducativoVersion_Responsable();
             $objConsDependencia->setidPersona($_SESSION['VS_PersonaID']);
             $objConsDependencia->setqueryDistinct(true);
             $objConsDependencia->setqueryCampos('idDependencia, dependencia');
             $objConsDependencia->setOrdenQuery("dependencia");
             $dependenciasPersona = $objConsDependencia->getDatos(false);
             $_SESSION['numDependencias'] = sizeof($dependenciasPersona);
             if ($_SESSION['numDependencias'] == 0) {
                 // No hay dependencias
                 $iNoError = 3;
                 $sMsjError = 'Ocurrió un problema al consultar las dependencias. Intente nuevamente.';
             } else {
                 // Hay dependencia(s)
                 $idsDependenciasPersona = array();
                 foreach ($dependenciasPersona as $dP) {
                     $idsDependenciasPersona[] = $dP['idDependencia'];
                 }
                 // Preparar consulta de programas
                 $objConsPrograma = new clsDependencia_ProgramaEducativoVersion_Responsable();
                 $objConsPrograma->setidPersona($_SESSION['VS_PersonaID']);
                 $objConsPrograma->setqueryDistinct(true);
                 $objConsPrograma->setqueryCampos('idDependencia, idProgramaEducativoVersion, ProgramaEducativoVersionAnio');
                 $objConsPrograma->setOrdenQuery("ProgramaEducativoVersionAnio");
                 $objConsPrograma->setidDependencia($idsDependenciasPersona);
                 $programasPersona = $objConsPrograma->getDatos(false);
                 $_SESSION['numProgramas'] = sizeof($programasPersona);
                 if ($_SESSION['numProgramas'] == 0) {
                     // No hay programas
                     $iNoError = 4;
                     $sMsjError = 'Ocurrió un problema al consultar los programas educativos. Intente nuevamente.';
                 } else {
                     // Publicar datos
                     $_SESSION['dependencias'] = array();
                     // Estructurar dependencias en arreglo
                     foreach ($dependenciasPersona as $dP) {
                         $_SESSION['dependencias'][$dP['idDependencia']]['idDependencia'] = $dP['idDependencia'];
                         $_SESSION['dependencias'][$dP['idDependencia']]['nombre'] = utf8_encode($dP['dependencia']);
                         $_SESSION['dependencias'][$dP['idDependencia']]['programas'] = array();
                     }
                     // Ubicar los programas en la dependencia correspondiente
                     foreach ($programasPersona as $pP) {
                         $_SESSION['dependencias'][$pP['idDependencia']]['programas'][$pP['idProgramaEducativoVersion']]['idProgramaEducativo'] = $pP['idProgramaEducativoVersion'];
                         $_SESSION['dependencias'][$pP['idDependencia']]['programas'][$pP['idProgramaEducativoVersion']]['programaEducativo'] = utf8_encode($pP['ProgramaEducativoVersionAnio']);
                     }
                 }
             }
         }
     }
     // If $this->iError
     $arrSalida['noError'] = $iNoError;
     $arrSalida['mensaje'] = $sMsjError;
     return $arrSalida;
 }
ob_clean();
// Validar parámetros
if (!isset($_GET['cDep']) && !isset($_GET['cProg'])) {
    $respuesta = new stdClass();
    $respuesta->noError = 1;
    $respuesta->mensaje = 'Parámetros insuficientes. (E01)';
    echo json_encode($respuesta);
    die;
}
if (isset($_GET['cProg']) && (!isset($_POST['idDependencia']) || $_POST['idDependencia'] == '')) {
    $respuesta = new stdClass();
    $respuesta->noError = 2;
    $respuesta->mensaje = 'Parámetros insuficientes. (E02)';
    echo json_encode($respuesta);
    die;
}
$objConsulta = new clsDependencia_ProgramaEducativoVersion_Responsable();
// Configurar el filtro de la consulta
$objConsulta->setidPersona($_SESSION['VS_PersonaID']);
$objConsulta->setqueryDistinct(true);
if (isset($_GET['cDep'])) {
    $objConsulta->setqueryCampos('idDependencia, dependencia');
    $objConsulta->setOrdenQuery("dependencia");
} else {
    if (isset($_GET['cProg'])) {
        $objConsulta->setidDependencia($_POST['idDependencia']);
        $objConsulta->setqueryCampos('idProgramaEducativoVersion, ProgramaEducativoVersionAnio');
        $objConsulta->setOrdenQuery("ProgramaEducativoVersionAnio");
    }
}
echo $objConsulta->getDatosJson(false);