예제 #1
0
 public static function ph_EstatCurs($AUTH, $OC, $url, $CURSOS_MATRICULATS, $IDU)
 {
     //L'usuari està autentificat?
     $AUTEN = isset($AUTH) && $AUTH > 0;
     //Queden places al curs?
     $HiHaPlaces = !$OC->isPle();
     //És antic alumne
     $IsAnticAlumne = MatriculesPeer::isAnticAlumneArray(substr($OC->getCodi(), 0, 3), $CURSOS_MATRICULATS);
     //Quan comença?
     $datai = $OC->getDatainmatricula('U');
     //La matrícula està activa
     $isActiu = $OC->getIsactiu();
     //L'alumne ja està matriculat?
     $JaMat = isset($CURSOS_MATRICULATS[$OC->getIdcursos()]);
     //Hi ha llista d'espera?
     $LLE = $OC->getIsLlistaEspera(false);
     //Si puc accedir al curs, ok. Sinó marco com a restringit
     if (!$OC->getIsRestringit()) {
         $Rest = true;
     } elseif (CursosPeer::getRestrictedNotes($IDU, $OC->getIdCursos())) {
         $Rest = true;
     } else {
         $Rest = false;
     }
     $url = url_for('@hospici_detall_curs?idC=' . $OC->getIdcursos() . '&titol=' . $OC->getNomForUrl());
     $idS = $OC->getSiteId();
     $OS = SitesPeer::retrieveByPK($idS);
     $nom = $OS->getNom();
     $email = $OS->getEmailString();
     $tel = $OS->getTelefonString();
     $MatAntIdi = CursosPeer::IsAnticAlumne($OC->getIdcursos(), $CURSOS_MATRICULATS);
     $dataiA = mktime(0, 0, 0, 9, 12, 2011);
     $RET = "";
     //Si la data d'inici de matrícula és inferior a la d'avui, mostrem que encara no s'han iniciat les matrícules
     $avui = time();
     //Si no està autentificat
     if (!$AUTEN) {
         return "NO_AUTENTIFICAT";
         //Ja està autentificat
     } else {
         //Ja ha estat matriculat
         if ($JaMat) {
             //Seleccionem la matrícula del curs que volem veure l'estat
             $OM = MatriculesPeer::retrieveByPK($CURSOS_MATRICULATS[$OC->getIdcursos()]);
             if ($OM instanceof Matricules) {
                 //Si l'usuari ja està matriculat, doncs li marquem
                 if (MatriculesPeer::ACCEPTAT_NO_PAGAT == $OM->getEstat() || MatriculesPeer::ACCEPTAT_PAGAT == $OM->getEstat()) {
                     return "MATRICULAT";
                     //L'usuari està en espera
                 } elseif (MatriculesPeer::EN_ESPERA == $OM->getEstat()) {
                     return "EN_ESPERA";
                     //L'usuari està en espera'
                 } elseif (MatriculesPeer::RESERVAT == $OM->getEstat()) {
                     return "RESERVAT";
                 }
             } else {
                 return "ANULADA";
             }
             //No està matriculat
         } else {
             //El curs està restringit
             if (!$Rest) {
                 return "CURS_RESTRINGIT";
                 //No queden places
             } elseif (!$HiHaPlaces) {
                 //No queden places però hi ha possibilitat de llista d'espera
                 if ($LLE) {
                     return "LLISTA_ESPERA";
                 } else {
                     return "NO_HI_PLACES";
                 }
                 //Si no hi ha cap tipus de pagament extern, vol dir que no hi ha reserva en línia.
             } elseif (in_array(TipusPeer::PAGAMENT_CAP, $OC->getPagamentextern()) > 0) {
                 return "NO_HI_HA_RESERVA_LINIA";
                 //Encara no ha iniciat el període de matrícules.
             } elseif ($avui < $datai || date('d', $avui) == date('d', $datai) && date('m', $avui) == date('m', $datai) && date('H') < 9) {
                 return "ABANS_PERIODE_MATRICULA";
                 // Si ja som dins el període de matrícules, mirem si el curs està o no actiu.
             } elseif (!$isActiu) {
                 return "CURS_INACTIU";
                 //Si la data és inferior a la data d'inici de matrícula per a nous alumnes, ho indiquem.
             } elseif (!$IsAnticAlumne) {
                 return "ANTIC_ALUMNE";
                 //Si no és cap de les anteriors, pot matricular-se.
             } else {
                 return "POT_MATRICULAR";
             }
         }
     }
 }