public function actionPushElements($id, $push_cart = false) { $model = $this->findModel($id); if ($elements = yii::$app->cart->elements) { foreach ($elements as $element) { $count = $element->getCount(); $orderElementModel = new Element(); $orderElementModel->order_id = $model->id; $orderElementModel->is_assigment = $model->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); } yii::$app->cart->truncate(); } $this->redirect(['/order/order/view', 'id' => $id]); }
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); }