public function actionIndex()
 {
     $arrCustomerStatus = MasterValueUtils::getArrData('net_customer_status');
     $dataQuery = NetCustomer::find()->where(['=', 'delete_flag', MasterValueUtils::MV_FIN_FLG_DELETE_FALSE])->orderBy('status, order_num');
     $sumCustomerQuery = (new Query())->select(['SUM(balance) AS balance'])->from('net_customer')->where(['=', 'delete_flag', MasterValueUtils::MV_FIN_FLG_DELETE_FALSE]);
     $sumCustomerValue = $sumCustomerQuery->createCommand()->queryOne();
     // render GUI
     $renderData = ['dataQuery' => $dataQuery, 'arrCustomerStatus' => $arrCustomerStatus, 'sumCustomerValue' => $sumCustomerValue];
     return $this->render('index', $renderData);
 }
 public function actionUpdate($id)
 {
     $this->objectId = $id;
     // master value
     $fmShortDatePhp = DateTimeUtils::getDateFormat(DateTimeUtils::FM_KEY_PHP, null);
     NetBill::$_PHP_FM_SHORTDATE = $fmShortDatePhp;
     NetBillDetail::$_PHP_FM_SHORTDATE = $fmShortDatePhp;
     // 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 = $this->loadBill($id, $postData, $fmShortDatePhp);
     $renderView = 'update';
     if ($model === false) {
         $renderData = ['model' => $model];
         Yii::$app->session->setFlash(MasterValueUtils::FLASH_ERROR, Yii::t('common', 'The requested {record} does not exist.', ['record' => Yii::t('fin.models', 'Bill')]));
     } else {
         // master value
         $fmShortDateJui = DateTimeUtils::getDateFormat(DateTimeUtils::FM_KEY_JUI, null);
         $arrNetCustomer = ModelUtils::getArrData(NetCustomer::find()->select(['id', 'name'])->where(['delete_flag' => MasterValueUtils::MV_FIN_FLG_DELETE_FALSE, 'status' => MasterValueUtils::MV_NET_CUSTOMER_STATUS_ON])->orderBy('order_num'), 'id', 'name');
         $billDetail = new NetBillDetail();
         // populate model attributes with user inputs
         $billDetail->load($postData);
         $arrBillDetail = $this->loadBillDetails($id, $postData, $fmShortDatePhp);
         // init value
         $model->scenario = MasterValueUtils::SCENARIO_UPDATE;
         $renderData = ['model' => $model, 'billDetail' => $billDetail, 'fmShortDatePhp' => $fmShortDatePhp, 'arrBillDetail' => $arrBillDetail, 'fmShortDateJui' => $fmShortDateJui, 'arrNetCustomer' => $arrNetCustomer];
         switch ($submitMode) {
             case MasterValueUtils::SM_MODE_ADD_ITEM:
                 $itemNo = empty($billDetail->item_no) ? count($arrBillDetail) + 1 : $billDetail->item_no;
                 $billDetail->item_no = $itemNo;
                 $arrBillDetail[$itemNo] = $billDetail;
                 $isValid = $this->validate($model, $arrBillDetail, false);
                 if ($isValid !== true) {
                     $renderData['isValid'] = $isValid;
                 }
                 $renderData['model'] = $model;
                 $renderData['arrBillDetail'] = $arrBillDetail;
                 break;
             case MasterValueUtils::SM_MODE_DEL_ITEM:
                 $arrBillDetail[$billDetail->item_no]->delete_flag = MasterValueUtils::MV_FIN_FLG_DELETE_TRUE;
                 $renderData['arrBillDetail'] = $arrBillDetail;
                 break;
             case MasterValueUtils::SM_MODE_INPUT:
                 $isValid = $this->validate($model, $arrBillDetail);
                 if ($isValid === true) {
                     $renderView = 'confirm';
                     $renderData['formMode'] = [MasterValueUtils::PG_MODE_NAME => MasterValueUtils::PG_MODE_EDIT];
                 } else {
                     $renderData['isValid'] = $isValid;
                 }
                 $renderData['model'] = $model;
                 $renderData['arrBillDetail'] = $arrBillDetail;
                 break;
             case MasterValueUtils::SM_MODE_CONFIRM:
                 $isValid = $this->validate($model, $arrBillDetail);
                 if ($isValid === true) {
                     $result = $this->updateBill($model, $arrBillDetail, $fmShortDatePhp);
                     if ($result === true) {
                         Yii::$app->session->setFlash(MasterValueUtils::FLASH_SUCCESS, Yii::t('common', '{record} has been saved successfully.', ['record' => Yii::t('fin.models', 'Bill')]));
                         return Yii::$app->getResponse()->redirect(Url::to(['update', 'id' => $id]));
                     } else {
                         // restore Data for View
                         $this->restoreData4View($model, $arrBillDetail, $fmShortDatePhp);
                         // render View
                         Yii::$app->session->setFlash(MasterValueUtils::FLASH_ERROR, $result);
                         $renderView = 'confirm';
                         $renderData['formMode'] = [MasterValueUtils::PG_MODE_NAME => MasterValueUtils::PG_MODE_EDIT];
                     }
                 } else {
                     $renderData['isValid'] = $isValid;
                     $renderData['model'] = $model;
                     $renderData['arrBillDetail'] = $arrBillDetail;
                 }
                 break;
             case MasterValueUtils::SM_MODE_BACK:
                 break;
             default:
                 break;
         }
     }
     // render GUI
     return $this->render($renderView, $renderData);
 }
 public function actionUpdate($id)
 {
     $this->objectId = $id;
     // master value
     $fmShortDatePhp = DateTimeUtils::getDateFormat(DateTimeUtils::FM_KEY_PHP, null);
     $model = $this->getPaymentModel($id);
     NetPayment::$_PHP_FM_SHORTDATE = $fmShortDatePhp;
     $renderView = 'update';
     if (is_null($model)) {
         $model = false;
         $renderData = ['model' => $model];
         Yii::$app->session->setFlash(MasterValueUtils::FLASH_ERROR, Yii::t('common', 'The requested {record} does not exist.', ['record' => Yii::t('fin.models', 'Payment')]));
     } else {
         // back up data
         $model->credit_old = $model->credit;
         $model->entry_date_old = $model->entry_date;
         // master value
         $fmShortDateJui = DateTimeUtils::getDateFormat(DateTimeUtils::FM_KEY_JUI, null);
         $arrNetCustomer = ModelUtils::getArrData(NetCustomer::find()->select(['id', 'name'])->where(['delete_flag' => MasterValueUtils::MV_FIN_FLG_DELETE_FALSE, 'status' => MasterValueUtils::MV_NET_CUSTOMER_STATUS_ON])->orderBy('order_num'), 'id', 'name');
         // 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->load($postData);
         // init value
         $model->scenario = MasterValueUtils::SCENARIO_UPDATE;
         // render GUI
         $renderView = 'update';
         $renderData = ['model' => $model, 'fmShortDatePhp' => $fmShortDatePhp, 'fmShortDateJui' => $fmShortDateJui, 'arrNetCustomer' => $arrNetCustomer];
         switch ($submitMode) {
             case MasterValueUtils::SM_MODE_INPUT:
                 $isValid = $model->validate();
                 if ($isValid) {
                     $renderView = 'confirm';
                     $renderData['formMode'] = [MasterValueUtils::PG_MODE_NAME => MasterValueUtils::PG_MODE_EDIT];
                 }
                 break;
             case MasterValueUtils::SM_MODE_CONFIRM:
                 $isValid = $model->validate();
                 if ($isValid) {
                     $result = $this->updatePayment($model, $fmShortDatePhp);
                     if ($result === true) {
                         Yii::$app->session->setFlash(MasterValueUtils::FLASH_SUCCESS, Yii::t('common', '{record} has been saved successfully.', ['record' => Yii::t('fin.models', 'Payment')]));
                         return Yii::$app->getResponse()->redirect(Url::to(['update', 'id' => $model->secret_key]));
                     } else {
                         // modify 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_EDIT];
                     }
                 }
                 break;
             case MasterValueUtils::SM_MODE_BACK:
                 break;
             default:
                 break;
         }
     }
     // render GUI
     return $this->render($renderView, $renderData);
 }