From 91fe1493a714cde0fcfeede6c51656322d40f89f Mon Sep 17 00:00:00 2001 From: James Cole Date: Fri, 6 Apr 2018 12:44:43 +0200 Subject: [PATCH] Improve edit routine for split transactions. --- .../Controllers/Transaction/SplitController.php | 17 +++++++++++++---- app/Support/Twig/Extension/Transaction.php | 2 +- app/Transformers/TransactionTransformer.php | 1 - resources/views/transactions/single/edit.twig | 11 ++++++++--- resources/views/transactions/split/edit.twig | 2 +- 5 files changed, 23 insertions(+), 10 deletions(-) diff --git a/app/Http/Controllers/Transaction/SplitController.php b/app/Http/Controllers/Transaction/SplitController.php index 5b184eb55b..d0a961fb41 100644 --- a/app/Http/Controllers/Transaction/SplitController.php +++ b/app/Http/Controllers/Transaction/SplitController.php @@ -33,6 +33,7 @@ use FireflyIII\Models\Account; use FireflyIII\Models\AccountType; use FireflyIII\Models\Transaction; use FireflyIII\Models\TransactionJournal; +use FireflyIII\Models\TransactionType; use FireflyIII\Repositories\Account\AccountRepositoryInterface; use FireflyIII\Repositories\Budget\BudgetRepositoryInterface; use FireflyIII\Repositories\Currency\CurrencyRepositoryInterface; @@ -114,7 +115,7 @@ class SplitController extends Controller /** @var Account $account */ foreach ($accountList as $account) { $accountArray[$account->id] = $account; - $accountArray[$account->id]['currency_id'] = (int)$account->getMeta('currency_id'); + $accountArray[$account->id]['currency_id'] = (int)$this->accounts->getMetaValue($account, 'currency_id'); } // put previous url in session if not redirect from store (not "return_to_edit"). @@ -235,11 +236,19 @@ class SplitController extends Controller $set = $collector->getJournals(); $transactions = []; $transformer = new TransactionTransformer(new ParameterBag); - /** @var Transaction $transaction */ foreach ($set as $transaction) { - if ($transaction->transaction_amount > 0) { - $transactions[] = $transformer->transform($transaction); + $res = []; + if ((float)$transaction->transaction_amount > 0 && $journal->transactionType->type === TransactionType::DEPOSIT) { + $res = $transformer->transform($transaction); + } + if ((float)$transaction->transaction_amount < 0 && $journal->transactionType->type !== TransactionType::DEPOSIT) { + $res = $transformer->transform($transaction); + } + + if (count($res) > 0) { + $res['amount'] = app('steam')->positive((string)$res['amount']); + $transactions[] = $res; } } diff --git a/app/Support/Twig/Extension/Transaction.php b/app/Support/Twig/Extension/Transaction.php index c461925e78..622d08d6ed 100644 --- a/app/Support/Twig/Extension/Transaction.php +++ b/app/Support/Twig/Extension/Transaction.php @@ -357,7 +357,7 @@ class Transaction extends Twig_Extension { $res = ''; if ($transaction->is_split === true) { - $res = '!!!'; + $res = ''; } if ($transaction->is_split === null) { diff --git a/app/Transformers/TransactionTransformer.php b/app/Transformers/TransactionTransformer.php index 4f028bc60e..0a12a23c2a 100644 --- a/app/Transformers/TransactionTransformer.php +++ b/app/Transformers/TransactionTransformer.php @@ -215,7 +215,6 @@ class TransactionTransformer extends TransformerAbstract if (null !== $transaction->transaction_foreign_amount) { $data['foreign_amount'] = round($transaction->transaction_foreign_amount, (int)$transaction->foreign_currency_dp); } - // switch on type for consistency switch ($transaction->transaction_type_type) { case TransactionType::WITHDRAWAL: diff --git a/resources/views/transactions/single/edit.twig b/resources/views/transactions/single/edit.twig index aba0cb3a51..13c50709be 100644 --- a/resources/views/transactions/single/edit.twig +++ b/resources/views/transactions/single/edit.twig @@ -33,6 +33,7 @@

{{ 'mandatoryFields'|_ }}

+ {# ALWAYS AVAILABLE #} {{ ExpandedForm.text('description',journal.description) }} @@ -81,7 +82,11 @@
{% if what == 'withdrawal' %} - {{ ExpandedForm.select('budget_id',budgetList,data['budget_id']) }} + {% if budgetList|length > 1 %} + {{ ExpandedForm.select('budget_id', budgetList, data['budget_id']) }} + {% else %} + {{ ExpandedForm.select('budget_id', budgetList, data['budget_id'], {helpText: trans('firefly.no_budget_pointer')}) }} + {% endif %} {% endif %} {{ ExpandedForm.text('category',data['category']) }} {{ ExpandedForm.text('tags') }} @@ -209,8 +214,8 @@
- - + + diff --git a/resources/views/transactions/split/edit.twig b/resources/views/transactions/split/edit.twig index 111529da7f..1cb3cbc0cb 100644 --- a/resources/views/transactions/split/edit.twig +++ b/resources/views/transactions/split/edit.twig @@ -228,7 +228,7 @@ {% if preFilled.what == 'withdrawal' %}
+ value="{% if transaction.destination_type != 'Cash account' %}{{ transaction.destination_name }}{% endif %}" class="form-control"/>
{% endif %}