diff --git a/app/Http/Controllers/Transaction/ConvertController.php b/app/Http/Controllers/Transaction/ConvertController.php index 4b47b22714..c66f5421c5 100644 --- a/app/Http/Controllers/Transaction/ConvertController.php +++ b/app/Http/Controllers/Transaction/ConvertController.php @@ -64,30 +64,35 @@ class ConvertController extends Controller $positiveAmount = TransactionJournal::amountPositive($journal); $assetAccounts = ExpandedForm::makeSelectList($this->accounts->getActiveAccountsByType([AccountType::DEFAULT, AccountType::ASSET])); $sourceType = $journal->transactionType; + $subTitle = trans('firefly.convert_to_' . $destinationType->type, ['description' => $journal->description]); + $subTitleIcon = 'fa-exchange'; - $subTitle = trans('firefly.convert_to_' . $destinationType->type, ['description' => $journal->description]); - $subTitleIcon = 'fa-exchange'; - + // cannot convert to its own type. if ($sourceType->type === $destinationType->type) { Session::flash('info', trans('firefly.convert_is_already_type_' . $destinationType->type)); return redirect(route('transactions.show', [$journal->id])); } + + // cannot convert split. if ($journal->transactions()->count() > 2) { Session::flash('error', trans('firefly.cannot_convert_split_journl')); return redirect(route('transactions.show', [$journal->id])); } + + // get source and destination account: $sourceAccount = TransactionJournal::sourceAccountList($journal)->first(); $destinationAccount = TransactionJournal::destinationAccountList($journal)->first(); return view( - 'transactions.convert', compact( - 'sourceType', 'destinationType', 'journal', 'assetAccounts', - 'positiveAmount', 'sourceAccount', 'destinationAccount', 'sourceType', - 'subTitle', 'subTitleIcon' + 'transactions.convert', + compact( + 'sourceType', 'destinationType', 'journal', 'assetAccounts', + 'positiveAmount', 'sourceAccount', 'destinationAccount', 'sourceType', + 'subTitle', 'subTitleIcon' - ) + ) ); @@ -95,8 +100,35 @@ class ConvertController extends Controller // or to transfer requires } - public function submit(Request $request) + /** + * @param Request $request + * @param TransactionType $destinationType + * @param TransactionJournal $journal + */ + public function submit(Request $request, TransactionType $destinationType, TransactionJournal $journal) { + $sourceType = $journal->transactionType; + + // cannot convert to its own type. + if ($sourceType->type === $destinationType->type) { + Session::flash('info', trans('firefly.convert_is_already_type_' . $destinationType->type)); + + return redirect(route('transactions.show', [$journal->id])); + } + + // cannot convert split. + if ($journal->transactions()->count() > 2) { + Session::flash('error', trans('firefly.cannot_convert_split_journl')); + + return redirect(route('transactions.show', [$journal->id])); + } + + // try the conversion with the given data: + + + + + echo '
';
 
         var_dump($request->all());
diff --git a/resources/lang/en_US/firefly.php b/resources/lang/en_US/firefly.php
index b1d1d18a1a..1db69759c3 100644
--- a/resources/lang/en_US/firefly.php
+++ b/resources/lang/en_US/firefly.php
@@ -366,8 +366,23 @@ return [
     'convert_options_DepositWithdrawal'          => 'Convert a deposit into a withdrawal',
     'convert_options_TransferWithdrawal'         => 'Convert a transfer into a withdrawal',
     'convert_options_TransferDeposit'            => 'Convert a transfer into a deposit',
-
-
+    'transaction_journal_convert_options'        => 'Convert this transaction',
+    'convert_Withdrawal_to_deposit'              => 'Convert this withdrawal to a deposit',
+    'convert_Withdrawal_to_transfer'             => 'Convert this withdrawal to a transfer',
+    'convert_Deposit_to_withdrawal'              => 'Convert this deposit to a withdrawal',
+    'convert_Deposit_to_transfer'                => 'Convert this deposit to a transfer',
+    'convert_Transfer_to_deposit'                => 'Convert this transfer to a deposit',
+    'convert_Transfer_to_withdrawal'             => 'Convert this transfer to a withdrawal',
+    'convert_please_set_revenue_source'          => 'Please pick the revenue account where the money will come from.',
+    'convert_please_set_asset_destination'       => 'Please pick the asset account where the money will go to.',
+    'convert_please_set_expense_destination'     => 'Please pick the expense account where the money will go to.',
+    'convert_please_set_asset_source'            => 'Please pick the asset account where the money will come from.',
+    'convert_explanation_withdrawal_deposit'     => 'If you convert this withdrawal into a deposit, :amount will be deposited into :sourceName instead of taken from it.',
+    'convert_explanation_withdrawal_transfer'    => 'If you convert this withdrawal into a transfer, :amount will be transferred from :sourceName to a new asset account, instead of being paid to :destinationName.',
+    'convert_explanation_deposit_withdrawal'     => 'If you convert this deposit into a withdrawal, :amount will be removed from :destinationName instead of added to it.',
+    'convert_explanation_deposit_transfer'       => 'If you convert this deposit into a transfer, :amount will be transferred from an asset account of your choice into :destinationName.',
+    'convert_explanation_transfer_withdrawal'    => 'If you convert this transfer into a withdrawal, :amount will go from :sourceName to a new destination as an expense, instead of to :destinationName as a transfer.',
+    'convert_explanation_transfer_deposit'       => 'If you convert this transfer into a deposit, :amount will be deposited into account :destinationName instead of being transferred there.',
     // create new stuff:
     'create_new_withdrawal'                      => 'Create new withdrawal',
     'create_new_deposit'                         => 'Create new deposit',
diff --git a/resources/views/transactions/convert.twig b/resources/views/transactions/convert.twig
index c7617480a6..c5c7c95429 100644
--- a/resources/views/transactions/convert.twig
+++ b/resources/views/transactions/convert.twig
@@ -40,13 +40,19 @@
                         {# ONE #}
                         {% if sourceType.type == 'Withdrawal' and destinationType.type == 'Deposit' %}
                             

- If you convert this withdrawal into a deposit, {{ positiveAmount|formatAmount }} - will be deposited into {{ sourceAccount.name }} - instead of taken from it. + {{ trans('firefly.convert_explanation_withdrawal_deposit', + { + amount: positiveAmount|formatAmount, + sourceRoute: route('accounts.show', [sourceAccount.id]), + sourceName: sourceAccount.name, + destinationRoute: route('accounts.show', [destinationAccount.id]), + destinationName: destinationAccount.name, + })|raw + }}

- Please pick the revenue account where the money will come from. + {{ 'convert_please_set_revenue_source'|_ }}

@@ -56,15 +62,21 @@ {# TWO #} {% if sourceType.type == 'Withdrawal' and destinationType.type == 'Transfer' %}

- If you convert this withdrawal into a transfer, {{ positiveAmount|formatAmount }} - will be transferred from {{ sourceAccount.name }} - to a new asset account, instead of being paid to - {{ destinationAccount.name }}. + {{ trans('firefly.convert_explanation_withdrawal_transfer', + { + amount: positiveAmount|formatAmount, + sourceRoute: route('accounts.show', [sourceAccount.id]), + sourceName: sourceAccount.name, + destinationRoute: route('accounts.show', [destinationAccount.id]), + destinationName: destinationAccount.name, + })|raw + }}

- Please pick the asset account where the money will go to. + {{ 'convert_please_set_asset_destination'|_ }} +

{{ ExpandedForm.select('destination_account_asset', assetAccounts) }} @@ -76,14 +88,21 @@ {% if sourceType.type == 'Deposit' and destinationType.type == 'Withdrawal' %}

- If you convert this deposit into a withdrawal, {{ positiveAmount|formatAmount }} - will be removed from {{ destinationAccount.name }} - instead of added to it. + {{ trans('firefly.convert_explanation_deposit_withdrawal', + { + amount: positiveAmount|formatAmount, + sourceRoute: route('accounts.show', [sourceAccount.id]), + sourceName: sourceAccount.name, + destinationRoute: route('accounts.show', [destinationAccount.id]), + destinationName: destinationAccount.name, + })|raw + }}

- Please pick the expense account where the money will go to. + {{ 'convert_please_set_expense_destination'|_ }} +

{{ ExpandedForm.text('destination_account_expense', destinationAccount.name) }} @@ -95,14 +114,21 @@

- If you convert this deposit into a transfer, {{ positiveAmount|formatAmount }} will be transferred - from an asset account of your choice into - {{ destinationAccount.name }}. + {{ trans('firefly.convert_explanation_deposit_transfer', + { + amount: positiveAmount|formatAmount, + sourceRoute: route('accounts.show', [sourceAccount.id]), + sourceName: sourceAccount.name, + destinationRoute: route('accounts.show', [destinationAccount.id]), + destinationName: destinationAccount.name, + })|raw + }}

- Please pick the asset account where the money will come from. + {{ 'convert_please_set_asset_source'|_ }} +

@@ -114,17 +140,21 @@

- If you convert this transfer into a withdrawal, {{ positiveAmount|formatAmount }} - will go from {{ sourceAccount.name }} - to a new destination as an expense, instead of to - {{ destinationAccount.name }} - as a transfer. + {{ trans('firefly.convert_explanation_transfer_withdrawal', + { + amount: positiveAmount|formatAmount, + sourceRoute: route('accounts.show', [sourceAccount.id]), + sourceName: sourceAccount.name, + destinationRoute: route('accounts.show', [destinationAccount.id]), + destinationName: destinationAccount.name, + })|raw + }}

- Please pick the expense account where the money will go to. + {{ 'convert_please_set_expense_destination'|_ }}

@@ -135,17 +165,24 @@ {# SIX #} {% if sourceType.type == 'Transfer' and destinationType.type == 'Deposit' %} +

- If you convert this transfer into a deposit, {{ positiveAmount|formatAmount }} - will be deposited into account {{ destinationAccount.name }} - instead of being transferred there. + {{ trans('firefly.convert_explanation_transfer_deposit', + { + amount: positiveAmount|formatAmount, + sourceRoute: route('accounts.show', [sourceAccount.id]), + sourceName: sourceAccount.name, + destinationRoute: route('accounts.show', [destinationAccount.id]), + destinationName: destinationAccount.name, + })|raw + }}

- Please pick the revenue account where the money will come from. + {{ 'convert_please_set_revenue_source'|_ }}

diff --git a/resources/views/transactions/show.twig b/resources/views/transactions/show.twig index 5a146f26be..f4928d89f4 100644 --- a/resources/views/transactions/show.twig +++ b/resources/views/transactions/show.twig @@ -218,7 +218,7 @@

- Convert this {{ journal.transactionType.type }} to a withdrawal. + {{ ('convert_'~journal.transactionType.type~'_to_withdrawal')|_ }}

{% endif %} @@ -226,7 +226,7 @@

- Convert this {{ journal.transactionType.type }} to a deposit. + {{ ('convert_'~journal.transactionType.type~'_to_deposit')|_ }}

{% endif %} @@ -235,7 +235,7 @@

- Convert this {{ journal.transactionType.type }} to a transfer. + {{ ('convert_'~journal.transactionType.type~'_to_transfer')|_ }}

{% endif %} @@ -251,7 +251,7 @@
-

Transactions

+

{{ 'transactions'|_ }}