public function save() { if ($this->clicks === 0 && $this->impressions === 0 && $this->conversions === 0) { return false; } parent::save(); }
public function delete() { $deleteList = ['Link', 'Platform', 'Ad', 'Performance', 'Invoice', 'Adaccess']; $query = ['user_id' => $this->_id]; $delete = false; switch ($this->_type) { case 'publisher': $clicks = Click::count(['pid' => $this->_id]); if ($clicks !== 0) { return false; } $delete = true; $this->removeFields(); break; case 'advertiser': $ads = Ad::all(['user_id' => $this->_id], ['_id']); if (count($ads) === 0) { $delete = true; } else { $in = array_keys($ads); $in = Db::convertType($in, 'id'); $clickCount = Click::count(['adid' => ['$in' => $in]]); if ($clickCount === 0) { Commission::deleteAll(['ad_id' => ['$in' => $in]]); $delete = true; } } break; } if ($delete) { parent::delete(); foreach ($deleteList as $table) { $table::deleteAll($query); } } return $delete; }
/** * Overrides the parent delete method to check for clicks on the * ad before deleting it */ public function delete() { $id = Utils::mongoObjectId($this->_id); $count = \Click::count(['adid' => $id]); if ($count !== 0) { return ['message' => 'Can not delete!! Campaign contain clicks', 'success' => false]; } $this->_removeMedia(); parent::delete(); \Commission::deleteAll(['ad_id' => $id]); \Link::deleteAll(['ad_id' => $id]); return ['message' => 'Campaign removed successfully!!', 'success' => true]; }