Пример #1
0
 private function deleteUnusedCategories($activeList) {
     //TODO: do this with delte constraints
     $delete = new Gpf_SqlBuilder_DeleteBuilder();
     $delete->from->add(Pap_Db_Table_CampaignsCategories::getName());
     $delete->where->add(Pap_Db_Table_CampaignsCategories::CATEGORYID, 'not in', $activeList);
     $delete->execute();
     
     $delete = new Gpf_SqlBuilder_DeleteBuilder();
     $delete->from->add(Pap_Db_Table_CampaignsInCategory::getName());
     $delete->where->add(Pap_Db_Table_CampaignsInCategory::CATEGORYID, 'not in', $activeList);
     $delete->execute();
 }
Пример #2
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_CampaignsInCategory::getName(), 'cic',
                 'c.'.Pap_Db_Table_Campaigns::ID.'=cic.'.Pap_Db_Table_CampaignsInCategory::CAMPAIGNID);
             $selectBuilder->where->add('cic.'.Pap_Db_Table_CampaignsInCategory::CATEGORYID,'!=',null);
             $selectBuilder->groupBy->add('c.'.Pap_Db_Table_Campaigns::ID);
         } else {
             $selectBuilder->from->addLeftJoin(Pap_Db_Table_CampaignsInCategory::getName(), 'cic',
                 'c.'.Pap_Db_Table_Campaigns::ID.'=cic.'.Pap_Db_Table_CampaignsInCategory::CAMPAIGNID.
                 ' AND cic.'.Pap_Db_Table_CampaignsInCategory::CATEGORYID.' IN ('.$categoryFilter[0]->getValue().')');
             $selectBuilder->where->add('cic.'.Pap_Db_Table_CampaignsInCategory::CATEGORYID,'in',preg_split('/,/',$categoryFilter[0]->getValue()));
             $selectBuilder->groupBy->add('c.'.Pap_Db_Table_Campaigns::ID);
         }
     }
 }
    /**
     * @service campaign write
     * @return Gpf_Rpc_Serializable
     */
    public function saveCategories(Gpf_Rpc_Params $params) {
        $action = new Gpf_Rpc_Action($params);
        $campaignId = $action->getParam('campaignid');

        $fields = $action->getParam('fields');
        for ($i=1; $i<count($fields); $i++) {
            $field = $fields[$i];
            $catgoryId = $field[0];
            $selected = $field[2];
            if ($selected == Gpf::YES) {
                $campaignInCateogry = new Pap_Db_CampaignInCategory();
                $campaignInCateogry->setCampaignId($campaignId);
                $campaignInCateogry->setCategoryId($catgoryId);
                $campaignInCateogry->insert();
            } else if ($selected == Gpf::NO) {
                $delete = new Gpf_SqlBuilder_DeleteBuilder();
                $delete->from->add(Pap_Db_Table_CampaignsInCategory::getName());
                $delete->where->add(Pap_Db_Table_CampaignsInCategory::CAMPAIGNID, '=', $campaignId);
                $delete->where->add(Pap_Db_Table_CampaignsInCategory::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;
 }
 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_CampaignsInCategory::getName(), 'c', 'c.categoryid = ni.code');
 }
 function init() {
     $this->setTable(Pap_Db_Table_CampaignsInCategory::getInstance());
     parent::init();
 }