Exemple #1
0
 public static function getActivitatsCercaHospici($CER)
 {
     $idText = $CER['TEXT'];
     $idPoble = $CER['POBLE'];
     $idCategoria = $CER['CATEGORIA'];
     $idSite = $CER['SITE'];
     $datai = myUser::revDate($CER['DATAI']);
     $dataf = myUser::revDate($CER['DATAF']);
     $p = $CER['P'];
     $idText = addslashes($idText);
     $text = !is_null($idText) && !empty($idText) ? " AND (a.tMig like '%{$idText}%' OR a.dMig like '%{$idText}%')" : "";
     $poble = !is_null($idPoble) && $idPoble > 0 ? ' AND p.idPoblacio = ' . $idPoble : '';
     $categoria = !is_null($idCategoria) && $idCategoria > 0 ? ' AND a.TipusActivitat_idTipusActivitat = ' . $idCategoria : '';
     $data = " AND h.Dia >= '" . $datai . "' AND h.Dia <= '" . $dataf . "'";
     $site = $idSite > 0 ? " AND s.site_id = {$idSite}" : "";
     $connection = Propel::getConnection();
     $query = "                              \r\n               Select a.ActivitatID as idA\r\n                  from activitats a \r\n                  LEFT JOIN horaris h ON (a.ActivitatID = h.Activitats_ActivitatID )\r\n                  LEFT JOIN horarisespais he ON (h.HorarisID = he.Horaris_HorarisID)\r\n                  LEFT JOIN espais e ON (he.Espais_EspaiID = e.EspaiID)\r\n                  LEFT JOIN sites s ON (a.site_id = s.site_id)\r\n                  LEFT JOIN poblacions p ON (p.idPoblacio = s.poble)  \r\n                WHERE \r\n                   a.actiu = 1 AND h.actiu = 1 AND he.actiu = 1 AND e.actiu = 1 AND s.actiu = 1\r\n                   AND a.PublicaWEB = 1\r\n                   {$text}\r\n                   {$poble}\r\n                   {$categoria}\r\n                   {$data}\r\n                   {$site}\r\n              GROUP BY idA\r\n                \r\n                UNION\r\n              Select a.ActivitatID as idA\r\n                  from activitats a \r\n                  LEFT JOIN horaris h ON (a.ActivitatID = h.Activitats_ActivitatID )\r\n                  LEFT JOIN horarisespais he ON (h.HorarisID = he.Horaris_HorarisID)\r\n                  LEFT JOIN espais_externs ee ON (he.idEspaiextern = ee.idEspaiextern)\r\n                  LEFT JOIN sites s ON (a.site_id = s.site_id)\r\n                  LEFT JOIN poblacions p ON (p.idPoblacio = ee.Poble)  \r\n                WHERE \r\n                   a.actiu = 1 AND h.actiu = 1 AND he.actiu = 1 AND ee.actiu = 1 AND s.actiu = 1\r\n                   AND a.PublicaWEB = 1\r\n                   {$text}\r\n                   {$poble}\r\n                   {$categoria}\r\n                   {$data}\r\n                   {$site}\r\n              GROUP BY idA              \r\n            ";
     $statement = $connection->prepare($query);
     $statement->execute();
     $RET = array();
     //Guardo els elements resultats i els passo a un format Criteria
     while ($result = $statement->fetch(PDO::FETCH_ASSOC)) {
         $RET[$result['idA']] = $result['idA'];
     }
     //Ara fem la select dels cursos amb el pager
     $C = new Criteria();
     $C->add(self::ACTIVITATID, $RET, CRITERIA::IN);
     $C->addJoin(HorarisPeer::ACTIVITATS_ACTIVITATID, self::ACTIVITATID);
     $C->addAscendingOrderByColumn(self::TIPUSACTIVITAT_IDTIPUSACTIVITAT);
     $C->addAscendingOrderByColumn(HorarisPeer::DIA);
     $C->addGroupByColumn(self::ACTIVITATID);
     $pager = new sfPropelPager('Activitats', 20);
     $pager->setCriteria($C);
     $pager->setPage($p);
     $pager->init();
     return array('PAGER' => $pager, 'LACTIVITATS' => $RET);
 }
 /**
    * ActivitatsPeer::getActivitatsHospici()
    * 
    * Ens mostra un pager amb les activitats seleccionades
    * 
    * @param mixed $idText
    * @param mixed $idSite
    * @param mixed $idPoble
    * @param mixed $idCategoria
    * @param mixed $idData
    * @param mixed $aDates
    * @param integer $p
    * @return     $aRET = array( 
                 'ON' =>  array( 0 => array( 'QUANTS'=>0 , 'ELEMENT' => 'Escull una població...' ) ), 
                 'QUI' => array( 0 => array( 'QUANTS'=>0 , 'ELEMENT' => 'Escull una entitat...' ) ) , 
                 'QUE' => array( 0 => array( 'QUANTS'=>0 , 'ELEMENT' => 'Escull una categoria...' ) ) , 
                 'A' =>   array( Activitats or Activitatsexternes ) 
                 );
 */
 public static function getActivitatsCercaHospici($CER)
 {
     $idText = $CER['TEXT'];
     $idPoble = $CER['POBLE'];
     $idCategoria = $CER['CATEGORIA'];
     $idSite = $CER['SITE'];
     $datai = myUser::revDate($CER['DATAI']);
     $dataf = myUser::revDate($CER['DATAF']);
     $p = $CER['P'];
     $idText = addslashes($idText);
     //***************************************
     // CONSULTEM LES ACTIVITATS INTERNES
     //***************************************
     $C = new Criteria();
     $C1 = $C->getNewCriterion(ActivitatsPeer::TMIG, "%{$idText}%", Criteria::LIKE);
     $C2 = $C->getNewCriterion(ActivitatsPeer::DMIG, "%{$idText}%", Criteria::LIKE);
     $C1->addOr($C2);
     $C->add($C1);
     $C1 = $C->getNewCriterion(HorarisPeer::DIA, $datai, Criteria::GREATER_EQUAL);
     $C2 = $C->getNewCriterion(HorarisPeer::DIA, $dataf, Criteria::LESS_EQUAL);
     $C1->addAnd($C2);
     $C->add($C1);
     if ($idPoble > 0) {
         $C->add(PoblacionsPeer::IDPOBLACIO, $idPoble);
     }
     if (!empty($idCategoria) && $idCategoria != '0') {
         $C->add(ActivitatsPeer::TIPUSACTIVITAT_IDTIPUSACTIVITAT, $idCategoria);
     }
     if (!empty($idSite) && $idSite != '0') {
         $C->add(SitesPeer::SITE_ID, $idSite);
     }
     $C->addJoin(ActivitatsPeer::ACTIVITATID, HorarisPeer::ACTIVITATS_ACTIVITATID);
     $C->addJoin(HorarisPeer::HORARISID, HorarisespaisPeer::HORARIS_HORARISID);
     $C->addJoin(HorarisespaisPeer::ESPAIS_ESPAIID, EspaisPeer::ESPAIID);
     $C->addJoin(ActivitatsPeer::SITE_ID, SitesPeer::SITE_ID);
     $C->addJoin(PoblacionsPeer::IDPOBLACIO, SitesPeer::POBLE);
     $C->add(ActivitatsPeer::ACTIU, true);
     $C->add(HorarisPeer::ACTIU, true);
     $C->add(HorarisespaisPeer::ACTIU, true);
     $C->add(EspaisPeer::ACTIU, true);
     $C->add(SitesPeer::ACTIU, true);
     $C->add(ActivitatsPeer::PUBLICAWEB, true);
     $C->addGroupByColumn(ActivitatsPeer::ACTIVITATID);
     $C->addAscendingOrderByColumn(HorarisPeer::DIA);
     $C->addAscendingOrderByColumn(ActivitatsPeer::TIPUSACTIVITAT_IDTIPUSACTIVITAT);
     //***************************************
     // CONSULTEM LES ACTIVITATS EXTERNES
     //***************************************
     $CE = new Criteria();
     $C1 = $CE->getNewCriterion(ActivitatsExternesPeer::TITOL, "%{$idText}%", Criteria::LIKE);
     $C2 = $CE->getNewCriterion(ActivitatsExternesPeer::DESCRIPCIO, "%{$idText}%", Criteria::LIKE);
     $C1->addOr($C2);
     $CE->add($C1);
     $C1 = $CE->getNewCriterion(ActivitatsExternesPeer::DATAINICIAL, $datai, Criteria::GREATER_EQUAL);
     $C2 = $CE->getNewCriterion(ActivitatsExternesPeer::DATAINICIAL, $dataf, Criteria::LESS_EQUAL);
     $C1->addAnd($C2);
     $CE->add($C1);
     if ($idPoble > 0) {
         $CE->add(ActivitatsExternesPeer::POBLACIO, $idPoble);
     }
     if (!empty($idCategoria) && $idCategoria != '0') {
         $CE->add(ActivitatsExternesPeer::CATEGORIA, $idCategoria);
     }
     if (!empty($idSite) && $idSite != '0') {
         $CE->add(ActivitatsExternesPeer::ENTITAT, $idSite);
     }
     $CE->addGroupByColumn(ActivitatsExternesPeer::IDACTIVITAT);
     $CE->addAscendingOrderByColumn(ActivitatsExternesPeer::DATAINICIAL);
     $CE->addAscendingOrderByColumn(ActivitatsExternesPeer::CATEGORIA);
     //***************************************
     // CARREGUEM ELS ARRAYS
     //***************************************
     $aRET = array('ON' => array('ELEMENT' => array(0 => 'Escull una població...'), 'QUANTS' => array(0 => 0)), 'QUI' => array('ELEMENT' => array(0 => 'Escull una entitat...'), 'QUANTS' => array(0 => 0)), 'QUE' => array('ELEMENT' => array(0 => 'Escull una categoria...'), 'QUANTS' => array(0 => 0)), 'A' => array());
     foreach (ActivitatsPeer::doSelect($C) as $OA) {
         $OTA = TipusactivitatPeer::retrieveByPK($OA->getTipusactivitatIdtipusactivitat());
         if ($OTA instanceof Tipusactivitat) {
             if (!isset($aRET['QUE']['QUANTS'][$OTA->getIdTipusactivitat()])) {
                 $aRET['QUE']['QUANTS'][$OTA->getIdTipusactivitat()] = 0;
             }
             $aRET['QUE']['QUANTS'][$OTA->getIdTipusactivitat()]++;
             $aRET['QUE']['ELEMENT'][$OTA->getIdTipusactivitat()] = $OTA->getNom() . ' (' . $aRET['QUE']['QUANTS'][$OTA->getIdTipusactivitat()] . ')';
         }
         $OS = SitesPeer::retrieveByPK($OA->getSiteId());
         if ($OS instanceof Sites) {
             if (!isset($aRET['QUI']['QUANTS'][$OS->getSiteid()])) {
                 $aRET['QUI']['QUANTS'][$OS->getSiteid()] = 0;
             }
             $aRET['QUI']['QUANTS'][$OS->getSiteid()]++;
             $aRET['QUI']['ELEMENT'][$OS->getSiteid()] = $OS->getNom() . ' (' . $aRET['QUI']['QUANTS'][$OS->getSiteid()] . ')';
         }
         $OP = PoblacionsPeer::retrieveByPK($OS->getPoble());
         if ($OP instanceof Poblacions) {
             if (!isset($aRET['ON']['QUANTS'][$OP->getIdpoblacio()])) {
                 $aRET['ON']['QUANTS'][$OP->getIdpoblacio()] = 0;
             }
             $aRET['ON']['QUANTS'][$OP->getIdpoblacio()]++;
             $aRET['ON']['ELEMENT'][$OP->getIdpoblacio()] = $OP->getNom() . ' (' . $aRET['ON']['QUANTS'][$OP->getIdpoblacio()] . ')';
         }
         $aRET['A'][$OA->getActivitatid()] = $OA;
     }
     foreach (ActivitatsExternesPeer::doSelect($CE) as $OAE) {
         if (!isset($aRET['QUE']['QUANTS'][$OAE->getCategoria()])) {
             $aRET['QUE']['QUANTS'][$OAE->getCategoria()] = 0;
         }
         $aRET['QUE']['QUANTS'][$OAE->getCategoria()]++;
         $aRET['QUE']['ELEMENT'][$OAE->getCategoria()] = $OAE->getCategoriaNom() . ' (' . $aRET['QUE']['QUANTS'][$OAE->getCategoria()] . ')';
         $OS = SitesPeer::retrieveByPK($OAE->getEntitat());
         if ($OS instanceof Sites && is_int($OAE->getEntitat())) {
             if (!isset($aRET['QUI']['QUANTS'][$OS->getSiteid()])) {
                 $aRET['QUI']['QUANTS'][$OS->getSiteid()] = 0;
             }
             $aRET['QUI']['QUANTS'][$OS->getSiteid()]++;
             $aRET['QUI']['ELEMENT'][$OS->getSiteid()] = $OS->getNom() . ' (' . $aRET['QUI']['QUANTS'][$OS->getSiteid()] . ')';
         } else {
             if (!isset($aRET['QUI']['QUANTS'][$OAE->getEntitat()])) {
                 $aRET['QUI']['QUANTS'][$OAE->getEntitat()] = 0;
             }
             $aRET['QUI']['QUANTS'][$OAE->getEntitat()]++;
             $aRET['QUI']['ELEMENT'][$OAE->getEntitat()] = $OAE->getEntitat() . ' (' . $aRET['QUI']['QUANTS'][$OAE->getEntitat()] . ')';
         }
         $OP = PoblacionsPeer::retrieveByPK($OAE->getPoblacio());
         if ($OP instanceof Poblacions) {
             if (!isset($aRET['ON']['QUANTS'][$OP->getIdpoblacio()])) {
                 $aRET['ON']['QUANTS'][$OP->getIdpoblacio()] = 0;
             }
             $aRET['ON']['QUANTS'][$OP->getIdpoblacio()]++;
             $aRET['ON']['ELEMENT'][$OP->getIdpoblacio()] = $OP->getNom() . ' (' . $aRET['ON']['QUANTS'][$OP->getIdpoblacio()] . ')';
         } else {
             if (!isset($aRET['ON']['QUANTS'][$OAE->getgetPoblacio()])) {
                 $aRET['ON']['QUANTS'][$OAE->getgetPoblacio()] = 0;
             }
             $aRET['ON']['QUANTS'][$OAE->getgetPoblacio()]++;
             $aRET['ON']['ELEMENT'][$OAE->getgetPoblacio()] = $OAE->getgetPoblacio() . ' (' . $aRET['ON']['QUANTS'][$OAE->getgetPoblacio()] . ')';
         }
         $aRET['A']['E' . $OAE->getIdactivitat()] = $OAE;
     }
     $aRET['ON']['ELEMENT'][0] = 'Escull una població (' . sizeof($aRET['A']) . ')...';
     $aRET['QUI']['ELEMENT'][0] = 'Escull una entitat (' . sizeof($aRET['A']) . ')...';
     $aRET['QUE']['ELEMENT'][0] = 'Escull una categoria (' . sizeof($aRET['A']) . ')...';
     return $aRET;
 }