public function actionLeafEdit($id = null)
 {
     $model = null;
     if (null !== $id) {
         $model = OrderStageLeaf::findOne(['id' => $id]);
     }
     if (Yii::$app->request->isPost) {
         if (empty($model)) {
             $model = new OrderStageLeaf();
             $model->loadDefaultValues();
         }
         if ($model->load(Yii::$app->request->post())) {
             if ($model->validate() && $model->save()) {
                 return $this->redirect(Url::to(['', 'id' => $model->id]));
             } else {
                 Yii::$app->session->setFlash('error', 'Error saving data.');
             }
         } else {
             Yii::$app->session->setFlash('error', 'Error loading data.');
         }
     }
     if (empty($model)) {
         $model = new OrderStageLeaf();
         $model->loadDefaultValues();
     }
     $stages = array_reduce(OrderStage::find()->all(), function ($result, $item) {
         $result[$item->id] = $item->name;
         return $result;
     }, []);
     $events = array_reduce(Events::find()->all(), function ($result, $item) {
         /** @var Events $item */
         $result[$item->event_name] = $item->event_name;
         return $result;
     }, ['' => '']);
     return $this->render('leaf-edit', ['model' => $model, 'stages' => $stages, 'events' => $events]);
 }
 public function up()
 {
     $event = \app\modules\core\models\Events::find()->where(['event_name' => 'order_calculate', 'event_class_name' => 'app\\modules\\shop\\events\\OrderCalculateEvent'])->one();
     $this->insert('{{%event_handlers}}', ['event_id' => $event->id, 'sort_order' => -5, 'handler_class_name' => 'app\\modules\\shop\\helpers\\PriceHandlers', 'handler_function_name' => 'handleSaveDelivery', 'is_active' => 1, 'non_deletable' => 0, 'triggering_type' => 'application_trigger']);
 }