public function getAnnouncementPro(AnnounceFilter $announceFilter)
 {
     global $tipkin_prefix;
     $where = " WHERE 1";
     if ($announceFilter->getCategoryId() != "" && $announceFilter->getCategoryId() != "all") {
         $where .= " AND CATEGORY_ID =" . (int) $announceFilter->getCategoryId();
     }
     if ($announceFilter->getSubCategoryId() != "" && $announceFilter->getSubCategoryId() != "all") {
         $where .= " AND SUB_CATEGORY_ID =" . (int) $announceFilter->getSubCategoryId();
     }
     if ($announceFilter->getRegionId() != "all" && $announceFilter->getRegionId() != "") {
         $where .= " AND REGION_ID =" . (int) $announceFilter->getRegionId();
     }
     if ($announceFilter->getDepartmentId() != "all" && $announceFilter->getDepartmentId() != "") {
         $where .= " AND DEPARTMENT_ID ='" . $announceFilter->getDepartmentId() . "'";
     }
     if ($announceFilter->getZipCode() != "") {
         $where .= " AND ZIP_CODE ='" . $announceFilter->getZipCode() . "'";
     }
     //Filtre texte
     $where .= " AND (TITLE LIKE '%" . $announceFilter->getFilterText() . "%' OR DESCRIPTION LIKE '%" . $announceFilter->getFilterText() . "%')";
     //Contrainte globale pour la recherche
     $where .= " AND STATE_ID =" . AnnouncementStates::STATE_VALIDATED;
     $where .= " AND IS_PUBLISHED =" . true;
     //Fin de contrainte globale
     $query = 'SELECT * FROM ' . $tipkin_prefix . 'announcements_pro' . $where . ' ORDER BY PUBLICATION_DATE DESC';
     //echo $query; die;
     $q = $this->dao->prepare($query);
     $q->execute();
     $announces = array();
     while ($data = $q->fetch(PDO::FETCH_ASSOC)) {
         $announces[] = new AnnouncementPro($data);
     }
     return $announces;
 }