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(); }
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(); }