diff --git a/app/Http/Controllers/Transaction/MassController.php b/app/Http/Controllers/Transaction/MassController.php
index 0457d4d677..dfff2e24b7 100644
--- a/app/Http/Controllers/Transaction/MassController.php
+++ b/app/Http/Controllers/Transaction/MassController.php
@@ -14,13 +14,13 @@ declare(strict_types = 1);
namespace FireflyIII\Http\Controllers\Transaction;
use Carbon\Carbon;
-use ExpandedForm;
use FireflyIII\Http\Controllers\Controller;
use FireflyIII\Http\Requests\MassDeleteJournalRequest;
use FireflyIII\Http\Requests\MassEditJournalRequest;
use FireflyIII\Models\AccountType;
use FireflyIII\Models\TransactionJournal;
use FireflyIII\Repositories\Account\AccountRepositoryInterface;
+use FireflyIII\Repositories\Budget\BudgetRepositoryInterface;
use FireflyIII\Repositories\Journal\JournalRepositoryInterface;
use Illuminate\Support\Collection;
use Preferences;
@@ -118,8 +118,13 @@ class MassController extends Controller
$subTitle = trans('firefly.mass_edit_journals');
/** @var AccountRepositoryInterface $repository */
- $repository = app(AccountRepositoryInterface::class);
- $accountList = ExpandedForm::makeSelectList($repository->getAccountsByType([AccountType::DEFAULT, AccountType::ASSET]));
+ $repository = app(AccountRepositoryInterface::class);
+ $accounts = $repository->getAccountsByType([AccountType::DEFAULT, AccountType::ASSET]);
+
+ // get budgets
+ /** @var BudgetRepositoryInterface $budgetRepository */
+ $budgetRepository = app(BudgetRepositoryInterface::class);
+ $budgets = $budgetRepository->getBudgets();
// skip transactions that have multiple destinations
// or multiple sources:
@@ -177,7 +182,7 @@ class MassController extends Controller
$journals = $filtered;
- return view('transactions.mass.edit', compact('journals', 'subTitle', 'accountList'));
+ return view('transactions.mass.edit', compact('journals', 'subTitle', 'accounts', 'budgets'));
}
/**
@@ -200,7 +205,7 @@ class MassController extends Controller
$sourceAccountName = $request->get('source_account_name')[$journal->id] ?? '';
$destAccountId = $request->get('destination_account_id')[$journal->id] ?? 0;
$destAccountName = $request->get('destination_account_name')[$journal->id] ?? '';
- $budgetId = $journal->budgets->first() ? $journal->budgets->first()->id : 0;
+ $budgetId = $request->get('budget_id')[$journal->id] ?? 0;
$category = $request->get('category')[$journal->id];
$tags = $journal->tags->pluck('tag')->toArray();
@@ -214,12 +219,12 @@ class MassController extends Controller
'destination_account_id' => intval($destAccountId),
'destination_account_name' => $destAccountName,
'amount' => round($request->get('amount')[$journal->id], 12),
- 'currency_id' => intval($request->get('amount_currency_id_amount_' . $journal->id)),
+ 'currency_id' => $journal->transaction_currency_id,
'date' => new Carbon($request->get('date')[$journal->id]),
'interest_date' => $journal->interest_date,
'book_date' => $journal->book_date,
'process_date' => $journal->process_date,
- 'budget_id' => $budgetId,
+ 'budget_id' => intval($budgetId),
'category' => $category,
'tags' => $tags,
diff --git a/resources/views/transactions/mass/edit.twig b/resources/views/transactions/mass/edit.twig
index f4dfb503a9..4f47734b4d 100644
--- a/resources/views/transactions/mass/edit.twig
+++ b/resources/views/transactions/mass/edit.twig
@@ -22,66 +22,87 @@
|
- {{ trans('list.description') }} |
+ {{ trans('list.description') }} |
{{ trans('list.amount') }} |
{{ trans('list.date') }} |
{{ trans('list.from') }} |
{{ trans('list.to') }} |
{{ trans('list.category') }} |
+ {{ trans('list.budget') }} |
{% for journal in journals %}
{% if journal.transaction_count == 2 %}
-
-
-
-
+ {# LINK TO EDIT FORM #}
+
|
-
-
- |
-
-
- {{ ExpandedForm.amountSmall('amount_'~journal.id, journal.amount, {'name' : 'amount['~journal.id~']', 'currency' : journal.transactionCurrency}) }}
- |
-
-
-
+ {# DESCRIPTION #}
+
|
+
+ {{ journal.transactionCurrency.symbol }}
+
+
-
+ |
+
+ {# DATE #}
+
+ |
+
+ {# SOURCE ACCOUNT ID FOR TRANSFER OR WITHDRAWAL #}
{% if journal.transaction_type_type == 'Transfer' or journal.transaction_type_type == 'Withdrawal' %}
- {{ Form.select('source_account_id['~journal.id~']', accountList, journal.source_account_id, {'class': 'form-control'}) }}
+
{% else %}
-
- {{ Form.input('text', 'source_account_name['~journal.id~']', journal.source_account_name, {'class': 'form-control', 'placeholder': trans('form.revenue_account')}) }}
+ {# SOURCE ACCOUNT NAME FOR DEPOSIT #}
+
{% endif %}
-
|
-
{% if journal.transaction_type_type == 'Transfer' or journal.transaction_type_type == 'Deposit' %}
-
- {{ Form.select('destination_account_id['~journal.id~']', accountList, journal.destination_account_id, {'class': 'form-control'}) }}
+ {# DESTINATION ACCOUNT NAME FOR TRANSFER AND DEPOSIT #}
+
{% else %}
-
-
- {{ Form.input('text', 'destination_account_name['~journal.id~']', journal.destination_account_name, {'class': 'form-control', 'placeholder': trans('form.expense_account')}) }}
+ {# DESTINATION ACCOUNT NAME FOR EXPENSE #}
+
{% endif %}
|
-
+ {# category #}
- {{ Form.input('text', 'category['~journal.id~']', journal.categories[0].name, {'class': 'form-control', 'placeholder': trans('form.category')}) }}
+
+ |
+ {# budget #}
+
+ {% if journal.transaction_type_type == 'Withdrawal' %}
+
+ {% endif %}
|
{% endif %}
diff --git a/tests/Feature/Controllers/Transaction/MassControllerTest.php b/tests/Feature/Controllers/Transaction/MassControllerTest.php
index 342380be36..c662c2c6b5 100644
--- a/tests/Feature/Controllers/Transaction/MassControllerTest.php
+++ b/tests/Feature/Controllers/Transaction/MassControllerTest.php
@@ -16,6 +16,7 @@ use DB;
use FireflyIII\Models\AccountType;
use FireflyIII\Models\TransactionJournal;
use FireflyIII\Repositories\Account\AccountRepositoryInterface;
+use FireflyIII\Repositories\Budget\BudgetRepositoryInterface;
use FireflyIII\Repositories\Journal\JournalRepositoryInterface;
use Illuminate\Support\Collection;
use Log;
@@ -77,6 +78,10 @@ class MassControllerTest extends TestCase
$repository = $this->mock(AccountRepositoryInterface::class);
$repository->shouldReceive('getAccountsByType')->once()->withArgs([[AccountType::DEFAULT, AccountType::ASSET]])->andReturn(new Collection);
+ // mock more stuff:
+ $budgetRepos = $this->mock(BudgetRepositoryInterface::class);
+ $budgetRepos->shouldReceive('getBudgets')->andReturn(new Collection);
+
$transfers = TransactionJournal::where('transaction_type_id', 3)->where('user_id', $this->user()->id)->take(2)->get()->pluck('id')->toArray();
$this->be($this->user());