Exemplo n.º 1
0
 public function afterSave($insert, $changedAttributes)
 {
     if ($fieldValues = yii::$app->request->post('FieldValue')['value']) {
         foreach ($fieldValues as $field_id => $fieldValue) {
             $fieldValueModel = new FieldValue();
             $fieldValueModel->value = $fieldValue;
             $fieldValueModel->order_id = $this->id;
             $fieldValueModel->field_id = $field_id;
             $fieldValueModel->save();
         }
     }
     if (empty($this->elements)) {
         $cartService = yii::$app->cart;
         if ($elements = $cartService->elements) {
             foreach ($elements as $element) {
                 $count = $element->getCount();
                 $orderElementModel = new Element();
                 $orderElementModel->order_id = $this->id;
                 $orderElementModel->is_assigment = $this->is_assigment;
                 $orderElementModel->model = $element->getModel(false);
                 $orderElementModel->item_id = $element->getItemId();
                 $orderElementModel->count = $count;
                 $orderElementModel->base_price = $element->getPrice(false);
                 $orderElementModel->price = $element->getPrice();
                 $orderElementModel->options = json_encode($element->getOptions());
                 $orderElementModel->description = '';
                 $orderElementModel->save();
                 $element->getModel()->minusAmount($count);
             }
         }
         if (yii::$app->has('promocode')) {
             yii::$app->promocode->clear();
         }
         $cartService->truncate();
     }
     return parent::afterSave($insert, $changedAttributes);
 }