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]);
 }
Beispiel #2
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);
 }