Example #1
0
 /**
  * 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));
 }
Example #3
0
?>

            <?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);
 }
Example #5
0
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>