diff --git a/app/Http/Controllers/Transaction/MassController.php b/app/Http/Controllers/Transaction/MassController.php index aa80d2cead..b26b5778eb 100644 --- a/app/Http/Controllers/Transaction/MassController.php +++ b/app/Http/Controllers/Transaction/MassController.php @@ -116,6 +116,24 @@ class MassController extends Controller Session::flash('gaEventCategory', 'transactions'); Session::flash('gaEventAction', 'mass-edit'); + // set some values to be used in the edit routine: + $journals->each( + function (TransactionJournal $journal) { + $journal->amount = TransactionJournal::amountPositive($journal); + $sources = TransactionJournal::sourceAccountList($journal); + $destinations = TransactionJournal::destinationAccountList($journal); + $journal->transaction_count = $journal->transactions()->count(); + if (!is_null($sources->first())) { + $journal->source_account_id = $sources->first()->id; + $journal->source_account_name = $sources->first()->name; + } + if (!is_null($destinations->first())) { + $journal->destination_account_id = $destinations->first()->id; + $journal->destination_account_name = $destinations->first()->name; + } + } + ); + return view('transactions.mass-edit', compact('journals', 'subTitle', 'accountList')); } diff --git a/app/Models/TransactionJournal.php b/app/Models/TransactionJournal.php index 949d028148..873d5826d4 100644 --- a/app/Models/TransactionJournal.php +++ b/app/Models/TransactionJournal.php @@ -47,15 +47,15 @@ use Watson\Validating\ValidatingTrait; * @method static \Illuminate\Database\Query\Builder|\FireflyIII\Models\TransactionJournal after($date) * @method static \Illuminate\Database\Query\Builder|\FireflyIII\Models\TransactionJournal before($date) * @method static \Illuminate\Database\Query\Builder|\FireflyIII\Models\TransactionJournal transactionTypes($types) - * @property-read string $transaction_type_type + * @property string $transaction_type_type * @property-read string $transaction_currency_code * @property-read string $destination_amount - * @property-read string $destination_account_id - * @property-read string $destination_account_name + * @property string $destination_account_id + * @property string $destination_account_name * @property-read string $destination_account_type * @property-read string $source_amount - * @property-read string $source_account_id - * @property-read string $source_account_name + * @property string $source_account_id + * @property string $source_account_name * @property-read string $source_account_type * @property \Carbon\Carbon $process_date * @property int $account_id @@ -178,20 +178,6 @@ class TransactionJournal extends TransactionJournalSupport return $value; } - /** - * @param $value - * - * @return string - */ - public function getDestinationAccountNameAttribute($value) - { - if (!is_null($value) && strlen(strval($value)) > 0) { - return Crypt::decrypt($value); - } - - return null; - } - /** * * @param string $fieldName @@ -209,21 +195,6 @@ class TransactionJournal extends TransactionJournalSupport return ''; } - /** - * @param $value - * - * @return string - */ - public function getSourceAccountNameAttribute($value) - { - if (!is_null($value) && strlen(strval($value)) > 0) { - return Crypt::decrypt($value); - } - - return null; - - } - /** * @return bool */ @@ -322,17 +293,6 @@ class TransactionJournal extends TransactionJournalSupport return $query->where('transaction_journals.date', '<=', $date->format('Y-m-d 00:00:00')); } - /** - * @param EloquentBuilder $query - */ - public function scopeSortCorrectly(EloquentBuilder $query) - { - $query->orderBy('transaction_journals.date', 'DESC'); - $query->orderBy('transaction_journals.order', 'ASC'); - $query->orderBy('transaction_journals.id', 'DESC'); - - } - /** * @param EloquentBuilder $query */ @@ -351,6 +311,17 @@ class TransactionJournal extends TransactionJournalSupport $query->with(['categories', 'budgets', 'attachments', 'bill', 'transactions']); } + /** + * @param EloquentBuilder $query + */ + public function scopeSortCorrectly(EloquentBuilder $query) + { + $query->orderBy('transaction_journals.date', 'DESC'); + $query->orderBy('transaction_journals.order', 'ASC'); + $query->orderBy('transaction_journals.id', 'DESC'); + + } + /** * * @param EloquentBuilder $query diff --git a/resources/views/transactions/mass-edit.twig b/resources/views/transactions/mass-edit.twig index bdc9831de1..45fe55359d 100644 --- a/resources/views/transactions/mass-edit.twig +++ b/resources/views/transactions/mass-edit.twig @@ -27,61 +27,58 @@ {{ trans('list.to') }} {% for journal in journals %} - - - - - - - - - - - - - - - {% if journal.destination_amount > 0 %} - {% set amount = journal.destination_amount %} - {% else %} - {% set amount = journal.source_amount %} - {% endif %} + {% if journal.transaction_count == 2 %} + + + + + + + + + + + + + + + {{ ExpandedForm.amountSmall('amount_'~journal.id, journal.amount, {'name' : 'amount['~journal.id~']', 'currency' : journal.transactionCurrency}) }} + + + + + + - {{ ExpandedForm.amountSmall('amount_'~journal.id, amount, {'name' : 'amount['~journal.id~']', 'currency' : journal.transactionCurrency}) }} - - - - - - + + {% 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', 'revenue_account['~journal.id~']', journal.source_account_name, {'class': 'form-control', 'placeholder': trans('form.revenue_account')}) }} + {% endif %} - - {% 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', 'revenue_account['~journal.id~']', journal.source_account_name, {'class': 'form-control', 'placeholder': trans('form.revenue_account')}) }} - {% 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'}) }} + {% else %} + - {% 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'}) }} - {% else %} - - {{ Form.input('text', 'expense_account['~journal.id~']', journal.destination_account_name, {'class': 'form-control', 'placeholder': trans('form.expense_account')}) }} - {% endif %} + {{ Form.input('text', 'expense_account['~journal.id~']', journal.destination_account_name, {'class': 'form-control', 'placeholder': trans('form.expense_account')}) }} + {% endif %} - - + + + {% endif %} {% endfor %}