Fix for #1622 and a special debug view.

This commit is contained in:
James Cole 2018-11-23 08:31:00 +01:00
parent baac2ad921
commit 886d05d436
No known key found for this signature in database
GPG Key ID: C16961E655E74B5E
4 changed files with 43 additions and 10 deletions

View File

@ -30,10 +30,12 @@ use FireflyIII\Http\Controllers\Controller;
use FireflyIII\Http\Requests\JournalFormRequest;
use FireflyIII\Models\Transaction;
use FireflyIII\Models\TransactionJournal;
use FireflyIII\Models\TransactionJournalMeta;
use FireflyIII\Models\TransactionType;
use FireflyIII\Repositories\Budget\BudgetRepositoryInterface;
use FireflyIII\Repositories\Journal\JournalRepositoryInterface;
use FireflyIII\Support\Http\Controllers\ModelInformation;
use Illuminate\Http\JsonResponse;
use Illuminate\Http\RedirectResponse;
use Illuminate\Http\Request;
use Log;
@ -180,6 +182,31 @@ class SingleController extends Controller
);
}
/**
* Show a special JSONified view of a transaction, for easier debug purposes.
*
* @param TransactionJournal $journal
*
* @return JsonResponse
*/
public function debugShow(TransactionJournal $journal): JsonResponse
{
$array = $journal->toArray();
$array['transactions'] = [];
$array['meta'] = [];
/** @var Transaction $transaction */
foreach ($journal->transactions as $transaction) {
$array['transactions'][] = $transaction->toArray();
}
/** @var TransactionJournalMeta $meta */
foreach ($journal->transactionJournalMeta as $meta) {
$array['meta'][] = $meta->toArray();
}
return response()->json($array);
}
/**
* Shows the form that allows a user to delete a transaction journal.
*
@ -283,6 +310,8 @@ class SingleController extends Controller
'source_name' => $sourceAccounts->first()->edit_name,
'destination_id' => $destinationAccounts->first()->id,
'destination_name' => $destinationAccounts->first()->edit_name,
'bill_id' => $journal->bill_id,
'bill_name' => null === $journal->bill_id ? null : $journal->bill->name,
// new custom fields:
'due_date' => $repository->getJournalDate($journal, 'due_date'),
@ -414,6 +443,12 @@ class SingleController extends Controller
// keep current bill:
$data['bill_id'] = $journal->bill_id;
// remove it if no checkbox:
if (!$request->boolean('keep_bill_id')) {
$data['bill_id'] = null;
}
$journal = $repository->update($journal, $data);
/** @var array $files */
$files = $request->hasFile('attachments') ? $request->file('attachments') : null;
@ -446,14 +481,4 @@ class SingleController extends Controller
// redirect to previous URL.
return redirect($this->getPreviousUri('transactions.edit.uri'));
}
/**
* Show a special JSONified view of a transaction, for easier debug purposes.
*
* @param TransactionJournal $journal
*/
public function debugShow(TransactionJournal $journal)
{
}
}

View File

@ -64,6 +64,8 @@ use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
* @property int $id
* @property TransactionType $transactionType
* @property Collection budgets
* @property Bill $bill
* @property Collection transactionJournalMeta
*
* @SuppressWarnings(PHPMD.TooManyPublicMethods)
* @SuppressWarnings(PHPMD.CouplingBetweenObjects)

View File

@ -90,6 +90,11 @@
{% endif %}
{{ ExpandedForm.text('category',data['category']) }}
{{ ExpandedForm.text('tags') }}
{% if data.bill_id != null %}
{{ ExpandedForm.checkbox('keep_bill_id',1,true, {'helpText': trans('firefly.journal_link_bill', {name: data.bill_name,route: route('bills.show', [data.bill_id])})} ) }}
{% endif %}
{# NO PIGGY BANK #}
</div>
</div>

View File

@ -879,6 +879,7 @@ Route::group(
);
Route::get('show/{tj}', ['uses' => 'TransactionController@show', 'as' => 'show']);
Route::get('debug/{tj}', ['uses' => 'Transaction\SingleController@debugShow', 'as' => 'debug']);
Route::post('reorder', ['uses' => 'TransactionController@reorder', 'as' => 'reorder']);
Route::post('reconcile', ['uses' => 'TransactionController@reconcile', 'as' => 'reconcile']);
}