Exemple #1
0
 public function afterSave($insert, $changedAttributes)
 {
     foreach ($this->_images as $image) {
         $image->product_id = $this->id;
         $image->scenario = "insert";
         $image->save(true);
     }
     if (!$insert) {
         //foreach ($this->_parameters as $parameter) {
         //ParametersValues::deleteAll('product_id = :product_id AND param_id in (:param_id)', [':product_id' => $this->id, ':param_id' => $parameter->id]);
         ParametersValues::deleteAll('product_id = :product_id', [':product_id' => $this->id]);
         //}
         //foreach ($this->_categories as $category) {
         CategoryProduct::deleteAll('product_id = :product_id', [':product_id' => $this->id]);
         //}
         //foreach ($this->_prices as $price) {
         Prices::deleteAll('product_id = :product_id', [':product_id' => $this->id]);
         //}
     }
     foreach ($this->_prices as $price) {
         $price->product_id = $this->id;
         $price->save(true);
     }
     foreach ($this->_categories as $category) {
         $category->product_id = $this->id;
         $category->save(true);
     }
     foreach ($this->_parameters as $parameter) {
         switch ($parameter->is_range) {
             case ParametersRange::RANGE_SINGLE:
                 if ($parameter->range_id) {
                     $new_parameter = new ParametersValues();
                     $new_parameter->param_id = $parameter->param_id;
                     $new_parameter->product_id = $this->id;
                     $new_parameter->range_id = $parameter->range_id;
                     $new_parameter->param_value = "";
                     $new_parameter->save(true);
                 }
                 break;
             case ParametersRange::RANGE_MULTIPLY:
                 //create new param for each checked range
                 if (is_array($parameter->range_id)) {
                     foreach ($parameter->range_id as $range_id) {
                         if ($parameter->range_id) {
                             $new_parameter = new ParametersValues();
                             $new_parameter->param_id = $parameter->param_id;
                             $new_parameter->product_id = $this->id;
                             $new_parameter->range_id = $range_id;
                             $new_parameter->param_value = "";
                             $new_parameter->save(true);
                         }
                     }
                 }
                 break;
             default:
                 if ($parameter->param_value) {
                     $new_parameter = new ParametersValues();
                     $new_parameter->param_id = $parameter->param_id;
                     $new_parameter->product_id = $this->id;
                     $new_parameter->param_value = $parameter->param_value;
                     $new_parameter->save(true);
                 }
                 break;
         }
     }
     parent::afterSave($insert, $changedAttributes);
 }