Esempio n. 1
0
 public function save()
 {
     if ($this->clicks === 0 && $this->impressions === 0 && $this->conversions === 0) {
         return false;
     }
     parent::save();
 }
Esempio n. 2
0
 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;
 }
Esempio n. 3
0
 /**
  * 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];
 }