Better routes and titles.

This commit is contained in:
James Cole 2016-05-15 12:26:40 +02:00
parent 1c93d8bf79
commit 823839fbf6
9 changed files with 202 additions and 56 deletions

View File

@ -58,6 +58,8 @@ class SplitController extends Controller
$uploadSize = min(Steam::phpBytes(ini_get('upload_max_filesize')), Steam::phpBytes(ini_get('post_max_size')));
$currencies = ExpandedForm::makeSelectList($currencyRepository->get());
$budgets = ExpandedForm::makeSelectListWithEmpty($budgetRepository->getActiveBudgets());
$subTitle = trans('form.add_new_' . $sessionData['what']);
$subTitleIcon = 'fa-plus';
$preFilled = [
'what' => $sessionData['what'] ?? 'withdrawal',
'journal_amount' => $sessionData['amount'] ?? 0,
@ -71,7 +73,9 @@ class SplitController extends Controller
'category' => [$sessionData['category']],
];
return view('split.journals.create', compact('journal', 'preFilled', 'assetAccounts', 'currencies', 'budgets', 'uploadSize'));
return view(
'split.journals.create', compact('journal', 'subTitle', 'subTitleIcon', 'preFilled', 'assetAccounts', 'currencies', 'budgets', 'uploadSize')
);
}
/**
@ -90,6 +94,8 @@ class SplitController extends Controller
$assetAccounts = ExpandedForm::makeSelectList($accountRepository->getAccountsByType(['Default account', 'Asset account']));
$budgets = ExpandedForm::makeSelectListWithEmpty($budgetRepository->getActiveBudgets());
$preFilled = $this->arrayFromJournal($request, $journal);
$subTitle = trans('breadcrumbs.edit_journal', ['description' => $journal->description]);
$subTitleIcon = 'fa-pencil';
Session::flash('gaEventCategory', 'transactions');
Session::flash('gaEventAction', 'edit-split-' . $preFilled['what']);
@ -102,7 +108,10 @@ class SplitController extends Controller
return view(
'split.journals.edit',
compact('currencies', 'preFilled', 'amount', 'sourceAccounts', 'uploadSize', 'destinationAccounts', 'assetAccounts', 'budgets', 'journal')
compact(
'subTitleIcon', 'currencies', 'preFilled', 'subTitle', 'amount', 'sourceAccounts', 'uploadSize', 'destinationAccounts', 'assetAccounts',
'budgets', 'journal'
)
);
}

View File

@ -68,6 +68,7 @@ class TransactionController extends Controller
$piggies = ExpandedForm::makeSelectListWithEmpty($piggyBanks);
$preFilled = Session::has('preFilled') ? session('preFilled') : [];
$subTitle = trans('form.add_new_' . $what);
$subTitleIcon = 'fa-plus';
Session::put('preFilled', $preFilled);
@ -84,7 +85,7 @@ class TransactionController extends Controller
asort($piggies);
return view('transactions.create', compact('assetAccounts', 'uploadSize', 'budgets', 'what', 'piggies', 'subTitle'));
return view('transactions.create', compact('assetAccounts', 'subTitleIcon', 'uploadSize', 'budgets', 'what', 'piggies', 'subTitle'));
}
/**

View File

@ -502,6 +502,7 @@ Breadcrumbs::register(
}
);
/**
* TAGS
*/
@ -579,3 +580,20 @@ Breadcrumbs::register(
}
);
/**
* SPLIT
*/
Breadcrumbs::register(
'split.journal.edit', function (BreadCrumbGenerator $breadcrumbs, TransactionJournal $journal) {
$breadcrumbs->parent('transactions.show', $journal);
$breadcrumbs->push(trans('breadcrumbs.edit_journal', ['description' => $journal->description]), route('split.journal.edit', [$journal->id]));
}
);
Breadcrumbs::register(
'split.journal.create', function (BreadCrumbGenerator $breadcrumbs, string $what) {
$breadcrumbs->parent('transactions.index', $what);
$breadcrumbs->push(trans('breadcrumbs.create_' . e($what)), route('split.journal.create', [$what]));
}
);

View File

@ -482,6 +482,70 @@ class TestData
}
}
private function createMultiTransfers()
{
foreach ($this->data['multi-transfers'] as $transfer) {
$journalId = DB::table('transaction_journals')->insertGetId(
[
'created_at' => DB::raw('NOW()'),
'updated_at' => DB::raw('NOW()'),
'user_id' => $transfer['user_id'],
'transaction_type_id' => 3,
'transaction_currency_id' => 1,
'description' => Crypt::encrypt($transfer['description']),
'completed' => 1,
'date' => $transfer['date'],
'interest_date' => $transfer['interest_date'] ?? null,
'book_date' => $transfer['book_date'] ?? null,
'process_date' => $transfer['process_date'] ?? null,
'encrypted' => 1,
'order' => 0,
'tag_count' => 0,
]
);
foreach ($transfer['destination_ids'] as $index => $destination) {
$description = $transfer['description'] . ' (#' . ($index + 1) . ')';
$amount = $transfer['amounts'][$index];
$source = $transfer['source_ids'][$index];
$first = DB::table('transactions')->insertGetId(
[
'created_at' => DB::raw('NOW()'),
'updated_at' => DB::raw('NOW()'),
'account_id' => $source,
'transaction_journal_id' => $journalId,
'description' => $description,
'amount' => $amount * -1,
]
);
$second = DB::table('transactions')->insertGetId(
[
'created_at' => DB::raw('NOW()'),
'updated_at' => DB::raw('NOW()'),
'account_id' => $destination,
'transaction_journal_id' => $journalId,
'description' => $description,
'amount' => $amount,
]
);
if (isset($transfer['category_ids'][$index])) {
DB::table('category_transaction')->insert(
[
'category_id' => $transfer['category_ids'][$index],
'transaction_id' => $first,
]
);
DB::table('category_transaction')->insert(
[
'category_id' => $transfer['category_ids'][$index],
'transaction_id' => $second,
]
);
}
}
}
}
/**
*
*/
@ -728,6 +792,7 @@ class TestData
$this->createAttachments();
$this->createMultiWithdrawals();
$this->createMultiDeposits();
$this->createMultiTransfers();
}
}

View File

@ -70,6 +70,8 @@ return [
'registered' => 'You have registered successfully!',
'search' => 'Search',
'no_budget_pointer' => 'You seem to have no budgets yet. You should create some on the <a href="/budgets">budgets</a>-page. Budgets can help you keep track of expenses.',
'source_accounts' => 'Source account(s)',
'destination_accounts' => 'Destination account(s)',
// repeat frequencies:
'repeat_freq_monthly' => 'monthly',

View File

@ -1,7 +1,7 @@
{% extends "./layout/default.twig" %}
{% block breadcrumbs %}
{{ Breadcrumbs.renderIfExists }}
{{ Breadcrumbs.renderIfExists(Route.getCurrentRoute.getName, preFilled.what) }}
{% endblock %}
{% block content %}
<form method="POST" action="{{ route('split.journal.store',journal.id) }}" accept-charset="UTF-8" class="form-horizontal" id="update"

View File

@ -1,7 +1,7 @@
{% extends "./layout/default.twig" %}
{% block breadcrumbs %}
{{ Breadcrumbs.renderIfExists }}
{{ Breadcrumbs.renderIfExists(Route.getCurrentRoute.getName, journal) }}
{% endblock %}
{% block content %}
<form method="POST" action="{{ route('split.journal.update',journal.id) }}" accept-charset="UTF-8" class="form-horizontal" id="update"

View File

@ -12,9 +12,9 @@
<h3 class="box-title">Metadata</h3>
</div>
<div class="box-body table-responsive no-padding">
<table class="table table-hover sortable">
<table class="table table-hover">
<tr>
<td>{{ trans('list.date') }}</td>
<td style="width:30%;">{{ trans('list.date') }}</td>
<td>{{ journal.date.formatLocalized(monthAndDayFormat) }}</td>
</tr>
{% if journal.interest_date %}
@ -50,18 +50,22 @@
{% endif %}
</td>
</tr>
{% for budget in journal.budgets %}
<tr>
<td>{{ 'budget'|_ }}</td>
<td><a href="{{ route('budgets.show',budget.id) }}">{{ budget.name }}</a></td>
<td>{{ 'budgets'|_ }}</td>
<td>{{ journalBudgets(journal)|raw }}</td>
</tr>
{% endfor %}
{% for category in journal.categories %}
<tr>
<td>{{ 'category'|_ }}</td>
<td><a href="{{ route('categories.show',category.id) }}">{{ category.name }}</a></td>
<td>{{ 'categories'|_ }}</td>
<td>{{ journalCategories(journal)|raw }}</td>
</tr>
<tr>
<td>{{ 'source_accounts'|_ }}</td>
<td>{{ sourceAccount(journal)|raw }}</td>
</tr>
<tr>
<td>{{ 'destination_accounts'|_ }}</td>
<td>{{ destinationAccount(journal)|raw }}</td>
</tr>
{% endfor %}
{% if journal.bill %}
<tr>
<td>{{ 'bill'|_ }}</td>

View File

@ -959,5 +959,52 @@
]
}
],
"multi-transfers": []
"multi-transfers": [
{
"user_id": 1,
"date": "2016-03-02",
"description": "Even multi-transfer (50, 50)",
"source_ids": [
4,
4
],
"destination_ids": [
5,
5
],
"amounts": [
50,
50
],
"category_ids": [
7,
8
]
},
{
"user_id": 1,
"date": "2016-05-02",
"description": "Uneven multi-transfer (15,34,51)",
"source_ids": [
4,
4,
4
],
"destination_ids": [
5,
5,
5
],
"amounts": [
14,
35,
51
],
"category_ids": [
7,
8,
9
]
}
]
}