Exemplo n.º 1
0
 public function actionCreate()
 {
     // master value
     $fmShortDatePhp = DateTimeUtils::getDateFormat(DateTimeUtils::FM_KEY_PHP, null);
     $fmShortDateJui = DateTimeUtils::getDateFormat(DateTimeUtils::FM_KEY_JUI, null);
     JarPayment::$_PHP_FM_SHORTDATE = $fmShortDatePhp;
     $arrAccount = ModelUtils::getArrData(JarAccount::find()->select(['account_id', 'account_name'])->where(['delete_flag' => MasterValueUtils::MV_FIN_FLG_DELETE_FALSE, 'status' => MasterValueUtils::MV_JAR_ACCOUNT_STATUS_ON])->orderBy('account_type, order_num'), 'account_id', 'account_name');
     $arrEntryLog = MasterValueUtils::getArrData('jar_payment_status');
     // submit data
     $postData = Yii::$app->request->post();
     $submitMode = isset($postData[MasterValueUtils::SM_MODE_NAME]) ? $postData[MasterValueUtils::SM_MODE_NAME] : false;
     // populate model attributes with user inputs
     $model = new JarPayment();
     $model->load($postData);
     if (Yii::$app->request->getIsGet()) {
         $model->entry_date = DateTimeUtils::formatNow($fmShortDatePhp);
         $model->entry_status = MasterValueUtils::MV_JAR_ENTRY_TYPE_SIMPLE;
     }
     // init value
     $model->scenario = MasterValueUtils::SCENARIO_CREATE;
     // render GUI
     $renderView = 'create';
     $renderData = ['model' => $model, 'fmShortDatePhp' => $fmShortDatePhp, 'fmShortDateJui' => $fmShortDateJui, 'arrAccount' => $arrAccount, 'arrEntryLog' => $arrEntryLog];
     switch ($submitMode) {
         case MasterValueUtils::SM_MODE_INPUT:
             $isValid = $model->validate();
             if ($isValid) {
                 $renderView = 'confirm';
                 $renderData['formMode'] = [MasterValueUtils::PG_MODE_NAME => MasterValueUtils::PG_MODE_CREATE];
             }
             break;
         case MasterValueUtils::SM_MODE_CONFIRM:
             $isValid = $model->validate();
             if ($isValid) {
                 $result = $this->createPayment($model, $fmShortDatePhp);
                 if ($result === true) {
                     Yii::$app->session->setFlash(MasterValueUtils::FLASH_SUCCESS, Yii::t('common', '{record} has been saved successfully.', ['record' => Yii::t('jar.models', 'Payment')]));
                     return Yii::$app->getResponse()->redirect(Url::to(['index']));
                 } else {
                     // restore Data for View
                     $model->entry_date = DateTimeUtils::parse($model->entry_date, DateTimeUtils::FM_DB_DATE, $fmShortDatePhp);
                     // render View
                     Yii::$app->session->setFlash(MasterValueUtils::FLASH_ERROR, $result);
                     $renderView = 'confirm';
                     $renderData['formMode'] = [MasterValueUtils::PG_MODE_NAME => MasterValueUtils::PG_MODE_CREATE];
                 }
             }
             break;
         case MasterValueUtils::SM_MODE_BACK:
             break;
         default:
             break;
     }
     // render GUI
     return $this->render($renderView, $renderData);
 }