/** * Edits an existing Transaction model. * If edit is successful, the browser will be redirected to the 'index' page. * @param integer $id * @return mixed * @throws NotFoundHttpException if the model cannot be found */ public function run($id) { /** @var Transaction $model */ $model = $this->controller->findModel($id); if ($model->load(Yii::$app->request->post()) && $model->validate()) { $transaction2Category = ''; if (isset(Yii::$app->request->post('Transaction')['categoryIds'])) { $transaction2Category = Yii::$app->request->post('Transaction')['categoryIds']; } if ($model->save()) { if (!empty($transaction2Category)) { TransactionHelper::saveTransaction2Category($transaction2Category, $model->id); } Yii::$app->getSession()->setFlash('success', 'Транзакция изменена.'); return $this->controller->redirect(['/transaction']); } } /** @var Accounts $account */ $account = Accounts::find()->andWhere(['id' => $model->accounts])->one(); $model->categoryIds = $model->getTransaction2CategoryList(); return $this->controller->render('_forms/_edit', ['model' => $model, 'account' => $account]); }
public function renderIndex($param = [], $extraOptions = []) { $dataProvider = $this->getDataProviderForIndex($param); $dataProviderForTotal = $this->getDataProviderForIndex($param); $dataProviderForTotal->pagination->pageSize = false; return $this->render('index', ArrayHelper::merge(['dataProvider' => $dataProvider, 'totalAmounts' => TransactionHelper::getTotalAmountsByPeriod($dataProviderForTotal->models)], $extraOptions)); }
?> <?php echo $form->field($model, 'accounts')->widget(Select2::classname(), ['data' => AccountsHelper::getListAccounts(), 'options' => ['placeholder' => 'Выберите счет ...'], 'pluginEvents' => ["select2:select" => 'function(e, object) { var label = $("#select2-transaction-accounts-container").text(); var valuta = label.split("("); valuta = valuta[valuta.length - 1].split(")")[0]; $("#amountLabel").text("Величина (" + valuta + ")*"); }']]); ?> </div> <div class="col-md-9"> <?php echo $form->field($model, 'categoryIds', ['options' => ['id' => 'transaction2Category', 'class' => 'form-group'], 'inputOptions' => ['class' => 'form-control custom-class_field1 custom-class_field2']])->checkboxList(TransactionHelper::getListTransaction()); ?> </div> <div class="col-md-12 form-actions"> <?php echo Html::a('Отмена', Url::to(['/transaction']), ['class' => 'btn btn-default']); ?> <?php echo Html::submitButton('Сохранить', ['class' => 'btn btn-success']); ?> </div>
/** * @param $model \common\models\Transaction */ private function _deleteTransaction2Category($model) { TransactionHelper::deleteTransaction2CategoryByTransactionId($model->id); }
echo GridView::widget(['dataProvider' => $dataProvider, 'showOnEmpty' => false, 'layout' => "{items}\n{pager}", 'tableOptions' => ['class' => 'table'], 'pager' => ['prevPageLabel' => 'Предыдущая', 'nextPageLabel' => 'Следующая'], 'columns' => [['class' => CheckboxColumn::className(), 'headerOptions' => ['class' => 'check']], ['attribute' => 'date', 'headerOptions' => ['width' => '100'], 'content' => function ($data) { /** @var $data \frontend\models\Transaction */ return TransactionHelper::getFormattedDate($data->date); }], ['attribute' => 'total', 'headerOptions' => ['class' => 'transaction-amount', 'min-width' => '200'], 'contentOptions' => ['class' => 'transaction-amount'], 'content' => function ($data) { /** @var $data \frontend\models\Transaction */ if ($data->type_id == TransactionHelper::TYPE_TRANSFER) { return TransactionHelper::getFullAmountForTransfer($data); } else { return TransactionHelper::getFullAmount($data); } }], ['attribute' => '', 'headerOptions' => ['width' => '500'], 'content' => function ($data) { /** @var $data \frontend\models\Transaction */ return TransactionHelper::getAmountValueForGrid($data); }], ['attribute' => 'created_at', 'headerOptions' => ['width' => '100'], 'content' => function ($data) { /** @var $data \frontend\models\Transaction */ return TransactionHelper::getFormattedDate($data->created_at); }], ['class' => ActionColumn::className(), 'header' => '', 'contentOptions' => ['class' => 'button-group'], 'template' => '{edit} {remove}', 'buttons' => ['edit' => function ($url, $model) { /** @var $model \frontend\models\Transaction */ if ($model->type_id != TransactionHelper::TYPE_TRANSFER) { return Html::a('<span class="glyphicon glyphicon-pencil"></span>', $url); } }, 'remove' => function ($url) { return Html::a('', $url, ['class' => 'glyphicon glyphicon-remove', 'data-pjax' => 'false', 'data' => ['confirm' => 'Вы уверены, что хотите удалить транзакцию?', 'method' => 'post']]); }]]]]); ?> <?php Pjax::end(); ?> </div> </div>