Example #1
0
 /**
  * Delete related data.
  */
 public function afterDelete()
 {
     // Delete related products
     $this->clearRelatedProducts();
     StoreRelatedProduct::model()->deleteAll('related_id=:id', array('id' => $this->id));
     // Delete categorization
     StoreProductCategoryRef::model()->deleteAllByAttributes(array('product' => $this->id));
     // Delete images
     $images = $this->images;
     if (!empty($images)) {
         foreach ($images as $image) {
             $image->delete();
         }
     }
     // Delete variants
     $variants = StoreProductVariant::model()->findAllByAttributes(array('product_id' => $this->id));
     foreach ($variants as $v) {
         $v->delete();
     }
     // Clear configurable attributes
     Yii::app()->db->createCommand()->delete('StoreProductConfigurableAttributes', 'product_id=:id', array(':id' => $this->id));
     // Delete configurations
     Yii::app()->db->createCommand()->delete('StoreProductConfigurations', 'product_id=:id', array(':id' => $this->id));
     Yii::app()->db->createCommand()->delete('StoreProductConfigurations', 'configurable_id=:id', array(':id' => $this->id));
     // Delete from wish lists
     Yii::import('application.modules.store.models.wishlist.StoreWishlistProducts');
     $wishlistProduct = StoreWishlistProducts::model()->findByAttributes(array('product_id' => $this->id));
     if ($wishlistProduct) {
         $wishlistProduct->delete();
     }
     return parent::afterDelete();
 }
Example #2
0
 /**
  * @param null $user_id if null will count for current user
  * @return mixed
  */
 public static function countByUser($user_id = null)
 {
     if ($user_id === null) {
         $user_id = Yii::app()->user->id;
     }
     $table = StoreWishlistProducts::model()->tableName();
     return Yii::app()->db->createCommand("SELECT COUNT(id) FROM {$table} WHERE user_id=:user_id")->bindValue(':user_id', $user_id)->queryScalar();
 }