Exemple #1
0
 public function addCategoryFilterToMerchantCategoryList(Pap_Affiliates_Promo_SelectBuilderCompoundFilter $compound) {
     $selectBuilder = $compound->getSelectBuilder();
     $filters = $compound->getFilters();
     $categoryFilter = $filters->getFilter("categoryid");
     if (count($categoryFilter) > 0) {
         if ($categoryFilter[0]->getValue()=="FILTER_SELECT_ALL") {
             $selectBuilder->from->addLeftJoin(Pap_Db_Table_BannersInCategory::getName(), 'bic',
                 'b.'.Pap_Db_Table_Banners::ID.'=bic.'.Pap_Db_Table_BannersInCategory::BANNERID);
             $selectBuilder->where->add('bic.'.Pap_Db_Table_BannersInCategory::CATEGORYID,'!=',null);
             $selectBuilder->groupBy->add('b.'.Pap_Db_Table_Banners::ID);
         } else {
             $selectBuilder->from->addLeftJoin(Pap_Db_Table_BannersInCategory::getName(), 'bic',
                 'b.'.Pap_Db_Table_Banners::ID.'=bic.'.Pap_Db_Table_BannersInCategory::BANNERID.
                 ' AND bic.'.Pap_Db_Table_BannersInCategory::CATEGORYID.' IN ('.$categoryFilter[0]->getValue().')');
             $selectBuilder->where->add('bic.'.Pap_Db_Table_BannersInCategory::CATEGORYID,'in',preg_split('/,/',$categoryFilter[0]->getValue()));
             $selectBuilder->groupBy->add('b.'.Pap_Db_Table_Banners::ID);
         }
     }
 }
 protected function buildFrom(){
     $this->_selectBuilder->from->add(Gpf_Db_Table_HierarchicalDataNodes::getName(), 'p');
     $this->_selectBuilder->from->add(Gpf_Db_Table_HierarchicalDataNodes::getName(), 'ni');
     $this->_selectBuilder->from->addLeftJoin(Pap_Db_Table_BannersInCategory::getName(), 'c', 'c.'.Pap_Db_Table_BannersInCategory::CATEGORYID.' = ni.'.Gpf_Db_Table_HierarchicalDataNodes::CODE);
 }
    /**
     * @service banner write
     * @return Gpf_Rpc_Serializable
     */
    public function saveCategories(Gpf_Rpc_Params $params) {
        $action = new Gpf_Rpc_Action($params);
        $bannerId = $action->getParam('bannerid');

        $fields = $action->getParam('fields');
        for ($i=1; $i<count($fields); $i++) {
            $field = $fields[$i];
            $catgoryId = $field[0];
            $selected = $field[2];
            if ($selected == Gpf::YES) {
                $bannerInCateogry = new Pap_Db_BannerInCategory();
                $bannerInCateogry->setBannerId($bannerId);
                $bannerInCateogry->setCategoryId($catgoryId);
                $bannerInCateogry->insert();
            } else if ($selected == Gpf::NO) {
                $delete = new Gpf_SqlBuilder_DeleteBuilder();
                $delete->from->add(Pap_Db_Table_BannersInCategory::getName());
                $delete->where->add(Pap_Db_Table_BannersInCategory::BANNERID, '=', $bannerId);
                $delete->where->add(Pap_Db_Table_BannersInCategory::CATEGORYID, '=', $catgoryId);
                $delete->execute();
            }
        }

        $action->setInfoMessage('Cateogries saved');
        return $action;
    }
 /**
  * @return Pap_Db_Table_CampaignsCategories
  */
 public static function getInstance() {
     if(self::$instance === null) {
         self::$instance = new self;
     }
     return self::$instance;
 }
 function init() {
     $this->setTable(Pap_Db_Table_BannersInCategory::getInstance());
     parent::init();
 }