mirror of
https://github.com/firefly-iii/firefly-iii.git
synced 2025-02-25 18:45:27 -06:00
Allow unreconcile and expand API to block reconciled transactions.
This commit is contained in:
parent
a86a582d0f
commit
2c34bd36a5
@ -417,15 +417,22 @@ class UpdateRequest extends FormRequest
|
|||||||
// all transaction types must be equal:
|
// all transaction types must be equal:
|
||||||
$this->validateTransactionTypesForUpdate($validator);
|
$this->validateTransactionTypesForUpdate($validator);
|
||||||
|
|
||||||
|
|
||||||
|
// user wants to update a reconciled transaction.
|
||||||
|
// source, destination, amount + foreign_amount cannot be changed
|
||||||
|
// and must be omitted from the request.
|
||||||
|
$this->preventUpdateReconciled($validator, $transactionGroup);
|
||||||
|
|
||||||
// validate source/destination is equal, depending on the transaction journal type.
|
// validate source/destination is equal, depending on the transaction journal type.
|
||||||
$this->validateEqualAccountsForUpdate($validator, $transactionGroup);
|
$this->validateEqualAccountsForUpdate($validator, $transactionGroup);
|
||||||
|
|
||||||
// a catch when users submit splits with no source or destination info at all.
|
// see method:
|
||||||
$this->preventNoAccountInfo($validator, );
|
//$this->preventNoAccountInfo($validator, );
|
||||||
|
|
||||||
// validate that the currency fits the source and/or destination account.
|
// validate that the currency fits the source and/or destination account.
|
||||||
// validate all account info
|
// validate all account info
|
||||||
$this->validateAccountInformationUpdate($validator, $transactionGroup);
|
$this->validateAccountInformationUpdate($validator, $transactionGroup);
|
||||||
|
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -25,8 +25,11 @@ namespace FireflyIII\Http\Controllers\Transaction;
|
|||||||
|
|
||||||
use FireflyIII\Http\Controllers\Controller;
|
use FireflyIII\Http\Controllers\Controller;
|
||||||
use FireflyIII\Models\TransactionGroup;
|
use FireflyIII\Models\TransactionGroup;
|
||||||
|
use FireflyIII\Models\TransactionJournal;
|
||||||
use FireflyIII\Repositories\Account\AccountRepositoryInterface;
|
use FireflyIII\Repositories\Account\AccountRepositoryInterface;
|
||||||
|
use FireflyIII\Repositories\Journal\JournalRepositoryInterface;
|
||||||
use Illuminate\Contracts\View\Factory;
|
use Illuminate\Contracts\View\Factory;
|
||||||
|
use Illuminate\Http\JsonResponse;
|
||||||
use Illuminate\Http\RedirectResponse;
|
use Illuminate\Http\RedirectResponse;
|
||||||
use Illuminate\Routing\Redirector;
|
use Illuminate\Routing\Redirector;
|
||||||
use Illuminate\View\View;
|
use Illuminate\View\View;
|
||||||
@ -36,8 +39,11 @@ use Illuminate\View\View;
|
|||||||
*/
|
*/
|
||||||
class EditController extends Controller
|
class EditController extends Controller
|
||||||
{
|
{
|
||||||
|
|
||||||
|
private JournalRepositoryInterface $repository;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* EditController constructor.
|
* IndexController constructor.
|
||||||
*
|
*
|
||||||
|
|
||||||
*/
|
*/
|
||||||
@ -45,17 +51,30 @@ class EditController extends Controller
|
|||||||
{
|
{
|
||||||
parent::__construct();
|
parent::__construct();
|
||||||
|
|
||||||
// some useful repositories:
|
// translations:
|
||||||
$this->middleware(
|
$this->middleware(
|
||||||
static function ($request, $next) {
|
function ($request, $next) {
|
||||||
app('view')->share('title', (string)trans('firefly.transactions'));
|
app('view')->share('title', (string)trans('firefly.transactions'));
|
||||||
app('view')->share('mainTitleIcon', 'fa-exchange');
|
app('view')->share('mainTitleIcon', 'fa-exchange');
|
||||||
|
|
||||||
|
$this->repository = app(JournalRepositoryInterface::class);
|
||||||
|
|
||||||
return $next($request);
|
return $next($request);
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param TransactionJournal $journal
|
||||||
|
*
|
||||||
|
* @return JsonResponse
|
||||||
|
*/
|
||||||
|
public function unreconcile(TransactionJournal $journal): JsonResponse
|
||||||
|
{
|
||||||
|
$this->repository->unreconcileById($journal->id);
|
||||||
|
return response()->json([], 204);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param TransactionGroup $transactionGroup
|
* @param TransactionGroup $transactionGroup
|
||||||
*
|
*
|
||||||
|
@ -46,7 +46,7 @@ use Illuminate\Support\Collection;
|
|||||||
class JournalRepository implements JournalRepositoryInterface
|
class JournalRepository implements JournalRepositoryInterface
|
||||||
{
|
{
|
||||||
/** @var User */
|
/** @var User */
|
||||||
private $user;
|
private User $user;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param TransactionGroup $transactionGroup
|
* @param TransactionGroup $transactionGroup
|
||||||
@ -334,4 +334,14 @@ class JournalRepository implements JournalRepositoryInterface
|
|||||||
|
|
||||||
return $journal;
|
return $journal;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @inheritDoc
|
||||||
|
*/
|
||||||
|
public function unreconcileById(int $journalId): void
|
||||||
|
{
|
||||||
|
/** @var TransactionJournal $journal */
|
||||||
|
$journal = $this->user->transactionJournals()->find($journalId);
|
||||||
|
$journal?->transactions()->update(['reconciled' => false]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -133,6 +133,13 @@ interface JournalRepositoryInterface
|
|||||||
*/
|
*/
|
||||||
public function reconcileById(int $journalId): void;
|
public function reconcileById(int $journalId): void;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* TODO Maybe to account repository? Do this wen reconcile is API only.
|
||||||
|
*
|
||||||
|
* @param int $journalId
|
||||||
|
*/
|
||||||
|
public function unreconcileById(int $journalId): void;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Search in journal descriptions.
|
* Search in journal descriptions.
|
||||||
*
|
*
|
||||||
|
@ -25,7 +25,9 @@ declare(strict_types=1);
|
|||||||
namespace FireflyIII\Validation;
|
namespace FireflyIII\Validation;
|
||||||
|
|
||||||
use FireflyIII\Exceptions\FireflyException;
|
use FireflyIII\Exceptions\FireflyException;
|
||||||
|
use FireflyIII\Models\Transaction;
|
||||||
use FireflyIII\Models\TransactionGroup;
|
use FireflyIII\Models\TransactionGroup;
|
||||||
|
use FireflyIII\Models\TransactionJournal;
|
||||||
use Illuminate\Support\Facades\Log;
|
use Illuminate\Support\Facades\Log;
|
||||||
use Illuminate\Validation\Validator;
|
use Illuminate\Validation\Validator;
|
||||||
|
|
||||||
@ -37,6 +39,50 @@ use Illuminate\Validation\Validator;
|
|||||||
trait GroupValidation
|
trait GroupValidation
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
|
* @param Validator $validator
|
||||||
|
* @param TransactionGroup $transactionGroup
|
||||||
|
*
|
||||||
|
* @return void
|
||||||
|
*/
|
||||||
|
protected function preventUpdateReconciled(Validator $validator, TransactionGroup $transactionGroup): void
|
||||||
|
{
|
||||||
|
app('log')->debug(sprintf('Now in %s', __METHOD__));
|
||||||
|
|
||||||
|
$count = Transaction
|
||||||
|
::leftJoin('transaction_journals', 'transaction_journals.id', 'transactions.transaction_journal_id')
|
||||||
|
->leftJoin('transaction_groups', 'transaction_groups.id', 'transaction_journals.transaction_group_id')
|
||||||
|
->where('transaction_journals.transaction_group_id', $transactionGroup->id)
|
||||||
|
->where('transactions.reconciled', 1)->where('transactions.amount', '<', 0)->count(['transactions.id']);
|
||||||
|
if (0 === $count) {
|
||||||
|
app('log')->debug(sprintf('Transaction is not reconciled, done with %s', __METHOD__));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
$data = $validator->getData();
|
||||||
|
$forbidden = ['amount','foreign_amount','currency_code','currency_id','foreign_currency_code','foreign_currency_id',
|
||||||
|
'source_id','source_name','source_number','source_iban',
|
||||||
|
'destination_id','destination_name','destination_number','destination_iban',
|
||||||
|
];
|
||||||
|
foreach($data['transactions'] as $index => $row) {
|
||||||
|
foreach($forbidden as $key) {
|
||||||
|
if(array_key_exists($key, $row)) {
|
||||||
|
$validator->errors()->add(
|
||||||
|
sprintf('transactions.%d.%s', $index, $key),
|
||||||
|
(string)trans('validation.reconciled_forbidden_field', ['field' => $key])
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
app('log')->debug(sprintf('Done with %s', __METHOD__));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A catch when users submit splits with no source or destination info at all.
|
||||||
|
*
|
||||||
|
* TODO This should prevent errors down the road but I'm not yet sure what I'm validating here
|
||||||
|
* TODO so I disabled this on 2023-10-22 to see if it causes any issues.
|
||||||
|
*
|
||||||
* @param Validator $validator
|
* @param Validator $validator
|
||||||
*
|
*
|
||||||
* @throws FireflyException
|
* @throws FireflyException
|
||||||
|
@ -376,6 +376,11 @@ trait TransactionValidation
|
|||||||
public function validateAccountInformationUpdate(Validator $validator, TransactionGroup $transactionGroup): void
|
public function validateAccountInformationUpdate(Validator $validator, TransactionGroup $transactionGroup): void
|
||||||
{
|
{
|
||||||
Log::debug('Now in validateAccountInformationUpdate()');
|
Log::debug('Now in validateAccountInformationUpdate()');
|
||||||
|
if ($validator->errors()->count() > 0) {
|
||||||
|
Log::debug('Validator already has errors, so return.');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
$transactions = $this->getTransactionsArray($validator);
|
$transactions = $this->getTransactionsArray($validator);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -699,6 +704,11 @@ trait TransactionValidation
|
|||||||
*/
|
*/
|
||||||
private function validateEqualAccountsForUpdate(Validator $validator, TransactionGroup $transactionGroup): void
|
private function validateEqualAccountsForUpdate(Validator $validator, TransactionGroup $transactionGroup): void
|
||||||
{
|
{
|
||||||
|
if ($validator->errors()->count() > 0) {
|
||||||
|
Log::debug('Validator already has errors, so return.');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
Log::debug('Now in validateEqualAccountsForUpdate()');
|
Log::debug('Now in validateEqualAccountsForUpdate()');
|
||||||
$transactions = $this->getTransactionsArray($validator);
|
$transactions = $this->getTransactionsArray($validator);
|
||||||
|
|
||||||
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
@ -2,6 +2,7 @@
|
|||||||
"firefly": {
|
"firefly": {
|
||||||
"welcome_back": "\u041a\u0430\u043a\u0432\u043e \u0441\u0435 \u0441\u043b\u0443\u0447\u0432\u0430?",
|
"welcome_back": "\u041a\u0430\u043a\u0432\u043e \u0441\u0435 \u0441\u043b\u0443\u0447\u0432\u0430?",
|
||||||
"flash_error": "\u0413\u0440\u0435\u0448\u043a\u0430!",
|
"flash_error": "\u0413\u0440\u0435\u0448\u043a\u0430!",
|
||||||
|
"flash_warning": "\u0412\u043d\u0438\u043c\u0430\u043d\u0438\u0435!",
|
||||||
"flash_success": "\u0423\u0441\u043f\u0435\u0445!",
|
"flash_success": "\u0423\u0441\u043f\u0435\u0445!",
|
||||||
"close": "\u0417\u0430\u0442\u0432\u043e\u0440\u0438",
|
"close": "\u0417\u0430\u0442\u0432\u043e\u0440\u0438",
|
||||||
"split_transaction_title": "\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043d\u0430 \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0430 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044f",
|
"split_transaction_title": "\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043d\u0430 \u0440\u0430\u0437\u0434\u0435\u043b\u0435\u043d\u0430 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044f",
|
||||||
@ -29,6 +30,7 @@
|
|||||||
"submit": "\u041f\u043e\u0442\u0432\u044a\u0440\u0434\u0438",
|
"submit": "\u041f\u043e\u0442\u0432\u044a\u0440\u0434\u0438",
|
||||||
"amount": "\u0421\u0443\u043c\u0430",
|
"amount": "\u0421\u0443\u043c\u0430",
|
||||||
"date": "\u0414\u0430\u0442\u0430",
|
"date": "\u0414\u0430\u0442\u0430",
|
||||||
|
"is_reconciled_fields_dropped": "Because this transaction is reconciled, you will not be able to update the accounts, nor the amount(s).",
|
||||||
"tags": "\u0415\u0442\u0438\u043a\u0435\u0442\u0438",
|
"tags": "\u0415\u0442\u0438\u043a\u0435\u0442\u0438",
|
||||||
"no_budget": "(\u0431\u0435\u0437 \u0431\u044e\u0434\u0436\u0435\u0442)",
|
"no_budget": "(\u0431\u0435\u0437 \u0431\u044e\u0434\u0436\u0435\u0442)",
|
||||||
"no_bill": "(\u043d\u044f\u043c\u0430 \u0441\u043c\u0435\u0442\u043a\u0430)",
|
"no_bill": "(\u043d\u044f\u043c\u0430 \u0441\u043c\u0435\u0442\u043a\u0430)",
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
"firefly": {
|
"firefly": {
|
||||||
"welcome_back": "Qu\u00e8 est\u00e0 passant?",
|
"welcome_back": "Qu\u00e8 est\u00e0 passant?",
|
||||||
"flash_error": "Error!",
|
"flash_error": "Error!",
|
||||||
|
"flash_warning": "Atenci\u00f3!",
|
||||||
"flash_success": "\u00c8xit!",
|
"flash_success": "\u00c8xit!",
|
||||||
"close": "Tancar",
|
"close": "Tancar",
|
||||||
"split_transaction_title": "Descripci\u00f3 de la transacci\u00f3 dividida",
|
"split_transaction_title": "Descripci\u00f3 de la transacci\u00f3 dividida",
|
||||||
@ -29,6 +30,7 @@
|
|||||||
"submit": "Enviar",
|
"submit": "Enviar",
|
||||||
"amount": "Import",
|
"amount": "Import",
|
||||||
"date": "Data",
|
"date": "Data",
|
||||||
|
"is_reconciled_fields_dropped": "Because this transaction is reconciled, you will not be able to update the accounts, nor the amount(s).",
|
||||||
"tags": "Etiquetes",
|
"tags": "Etiquetes",
|
||||||
"no_budget": "(cap pressupost)",
|
"no_budget": "(cap pressupost)",
|
||||||
"no_bill": "(cap factura)",
|
"no_bill": "(cap factura)",
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
"firefly": {
|
"firefly": {
|
||||||
"welcome_back": "Jak to jde?",
|
"welcome_back": "Jak to jde?",
|
||||||
"flash_error": "Chyba!",
|
"flash_error": "Chyba!",
|
||||||
|
"flash_warning": "Varov\u00e1n\u00ed!",
|
||||||
"flash_success": "\u00dasp\u011b\u0161n\u011b dokon\u010deno!",
|
"flash_success": "\u00dasp\u011b\u0161n\u011b dokon\u010deno!",
|
||||||
"close": "Zav\u0159\u00edt",
|
"close": "Zav\u0159\u00edt",
|
||||||
"split_transaction_title": "Popis roz\u00fa\u010dtov\u00e1n\u00ed",
|
"split_transaction_title": "Popis roz\u00fa\u010dtov\u00e1n\u00ed",
|
||||||
@ -29,6 +30,7 @@
|
|||||||
"submit": "Odeslat",
|
"submit": "Odeslat",
|
||||||
"amount": "\u010c\u00e1stka",
|
"amount": "\u010c\u00e1stka",
|
||||||
"date": "Datum",
|
"date": "Datum",
|
||||||
|
"is_reconciled_fields_dropped": "Because this transaction is reconciled, you will not be able to update the accounts, nor the amount(s).",
|
||||||
"tags": "\u0160t\u00edtky",
|
"tags": "\u0160t\u00edtky",
|
||||||
"no_budget": "(\u017e\u00e1dn\u00fd rozpo\u010det)",
|
"no_budget": "(\u017e\u00e1dn\u00fd rozpo\u010det)",
|
||||||
"no_bill": "(no bill)",
|
"no_bill": "(no bill)",
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
"firefly": {
|
"firefly": {
|
||||||
"welcome_back": "Hvad spiller?",
|
"welcome_back": "Hvad spiller?",
|
||||||
"flash_error": "Fejl!",
|
"flash_error": "Fejl!",
|
||||||
|
"flash_warning": "Advarsel!",
|
||||||
"flash_success": "Succes!",
|
"flash_success": "Succes!",
|
||||||
"close": "Luk",
|
"close": "Luk",
|
||||||
"split_transaction_title": "Description of the split transaction",
|
"split_transaction_title": "Description of the split transaction",
|
||||||
@ -29,6 +30,7 @@
|
|||||||
"submit": "Submit",
|
"submit": "Submit",
|
||||||
"amount": "Bel\u00f8b",
|
"amount": "Bel\u00f8b",
|
||||||
"date": "Date",
|
"date": "Date",
|
||||||
|
"is_reconciled_fields_dropped": "Because this transaction is reconciled, you will not be able to update the accounts, nor the amount(s).",
|
||||||
"tags": "Etiketter",
|
"tags": "Etiketter",
|
||||||
"no_budget": "(no budget)",
|
"no_budget": "(no budget)",
|
||||||
"no_bill": "(no bill)",
|
"no_bill": "(no bill)",
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
"firefly": {
|
"firefly": {
|
||||||
"welcome_back": "\u00dcberblick",
|
"welcome_back": "\u00dcberblick",
|
||||||
"flash_error": "Fehler!",
|
"flash_error": "Fehler!",
|
||||||
|
"flash_warning": "Achtung!",
|
||||||
"flash_success": "Geschafft!",
|
"flash_success": "Geschafft!",
|
||||||
"close": "Schlie\u00dfen",
|
"close": "Schlie\u00dfen",
|
||||||
"split_transaction_title": "Beschreibung der Splittbuchung",
|
"split_transaction_title": "Beschreibung der Splittbuchung",
|
||||||
@ -29,6 +30,7 @@
|
|||||||
"submit": "Absenden",
|
"submit": "Absenden",
|
||||||
"amount": "Betrag",
|
"amount": "Betrag",
|
||||||
"date": "Datum",
|
"date": "Datum",
|
||||||
|
"is_reconciled_fields_dropped": "Because this transaction is reconciled, you will not be able to update the accounts, nor the amount(s).",
|
||||||
"tags": "Schlagw\u00f6rter",
|
"tags": "Schlagw\u00f6rter",
|
||||||
"no_budget": "(kein Budget)",
|
"no_budget": "(kein Budget)",
|
||||||
"no_bill": "(keine Belege)",
|
"no_bill": "(keine Belege)",
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
"firefly": {
|
"firefly": {
|
||||||
"welcome_back": "\u03a4\u03b9 \u03c0\u03b1\u03af\u03b6\u03b5\u03b9;",
|
"welcome_back": "\u03a4\u03b9 \u03c0\u03b1\u03af\u03b6\u03b5\u03b9;",
|
||||||
"flash_error": "\u03a3\u03c6\u03ac\u03bb\u03bc\u03b1!",
|
"flash_error": "\u03a3\u03c6\u03ac\u03bb\u03bc\u03b1!",
|
||||||
|
"flash_warning": "\u03a0\u03c1\u03bf\u03c3\u03bf\u03c7\u03ae!",
|
||||||
"flash_success": "\u0395\u03c0\u03b9\u03c4\u03c5\u03c7\u03af\u03b1!",
|
"flash_success": "\u0395\u03c0\u03b9\u03c4\u03c5\u03c7\u03af\u03b1!",
|
||||||
"close": "\u039a\u03bb\u03b5\u03af\u03c3\u03b9\u03bc\u03bf",
|
"close": "\u039a\u03bb\u03b5\u03af\u03c3\u03b9\u03bc\u03bf",
|
||||||
"split_transaction_title": "\u03a0\u03b5\u03c1\u03b9\u03b3\u03c1\u03b1\u03c6\u03ae \u03c4\u03b7\u03c2 \u03c3\u03c5\u03bd\u03b1\u03bb\u03bb\u03b1\u03b3\u03ae\u03c2 \u03bc\u03b5 \u03b4\u03b9\u03b1\u03c7\u03c9\u03c1\u03b9\u03c3\u03bc\u03cc",
|
"split_transaction_title": "\u03a0\u03b5\u03c1\u03b9\u03b3\u03c1\u03b1\u03c6\u03ae \u03c4\u03b7\u03c2 \u03c3\u03c5\u03bd\u03b1\u03bb\u03bb\u03b1\u03b3\u03ae\u03c2 \u03bc\u03b5 \u03b4\u03b9\u03b1\u03c7\u03c9\u03c1\u03b9\u03c3\u03bc\u03cc",
|
||||||
@ -29,6 +30,7 @@
|
|||||||
"submit": "\u03a5\u03c0\u03bf\u03b2\u03bf\u03bb\u03ae",
|
"submit": "\u03a5\u03c0\u03bf\u03b2\u03bf\u03bb\u03ae",
|
||||||
"amount": "\u03a0\u03bf\u03c3\u03cc",
|
"amount": "\u03a0\u03bf\u03c3\u03cc",
|
||||||
"date": "\u0397\u03bc\u03b5\u03c1\u03bf\u03bc\u03b7\u03bd\u03af\u03b1",
|
"date": "\u0397\u03bc\u03b5\u03c1\u03bf\u03bc\u03b7\u03bd\u03af\u03b1",
|
||||||
|
"is_reconciled_fields_dropped": "Because this transaction is reconciled, you will not be able to update the accounts, nor the amount(s).",
|
||||||
"tags": "\u0395\u03c4\u03b9\u03ba\u03ad\u03c4\u03b5\u03c2",
|
"tags": "\u0395\u03c4\u03b9\u03ba\u03ad\u03c4\u03b5\u03c2",
|
||||||
"no_budget": "(\u03c7\u03c9\u03c1\u03af\u03c2 \u03c0\u03c1\u03bf\u03cb\u03c0\u03bf\u03bb\u03bf\u03b3\u03b9\u03c3\u03bc\u03cc)",
|
"no_budget": "(\u03c7\u03c9\u03c1\u03af\u03c2 \u03c0\u03c1\u03bf\u03cb\u03c0\u03bf\u03bb\u03bf\u03b3\u03b9\u03c3\u03bc\u03cc)",
|
||||||
"no_bill": "(\u03c7\u03c9\u03c1\u03af\u03c2 \u03c0\u03ac\u03b3\u03b9\u03bf \u03ad\u03be\u03bf\u03b4\u03bf)",
|
"no_bill": "(\u03c7\u03c9\u03c1\u03af\u03c2 \u03c0\u03ac\u03b3\u03b9\u03bf \u03ad\u03be\u03bf\u03b4\u03bf)",
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
"firefly": {
|
"firefly": {
|
||||||
"welcome_back": "What's playing?",
|
"welcome_back": "What's playing?",
|
||||||
"flash_error": "Error!",
|
"flash_error": "Error!",
|
||||||
|
"flash_warning": "Warning!",
|
||||||
"flash_success": "Success!",
|
"flash_success": "Success!",
|
||||||
"close": "Close",
|
"close": "Close",
|
||||||
"split_transaction_title": "Description of the split transaction",
|
"split_transaction_title": "Description of the split transaction",
|
||||||
@ -29,6 +30,7 @@
|
|||||||
"submit": "Submit",
|
"submit": "Submit",
|
||||||
"amount": "Amount",
|
"amount": "Amount",
|
||||||
"date": "Date",
|
"date": "Date",
|
||||||
|
"is_reconciled_fields_dropped": "Because this transaction is reconciled, you will not be able to update the accounts, nor the amount(s).",
|
||||||
"tags": "Tags",
|
"tags": "Tags",
|
||||||
"no_budget": "(no budget)",
|
"no_budget": "(no budget)",
|
||||||
"no_bill": "(no bill)",
|
"no_bill": "(no bill)",
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
"firefly": {
|
"firefly": {
|
||||||
"welcome_back": "What's playing?",
|
"welcome_back": "What's playing?",
|
||||||
"flash_error": "Error!",
|
"flash_error": "Error!",
|
||||||
|
"flash_warning": "Warning!",
|
||||||
"flash_success": "Success!",
|
"flash_success": "Success!",
|
||||||
"close": "Close",
|
"close": "Close",
|
||||||
"split_transaction_title": "Description of the split transaction",
|
"split_transaction_title": "Description of the split transaction",
|
||||||
@ -29,6 +30,7 @@
|
|||||||
"submit": "Submit",
|
"submit": "Submit",
|
||||||
"amount": "Amount",
|
"amount": "Amount",
|
||||||
"date": "Date",
|
"date": "Date",
|
||||||
|
"is_reconciled_fields_dropped": "Because this transaction is reconciled, you will not be able to update the accounts, nor the amount(s).",
|
||||||
"tags": "Tags",
|
"tags": "Tags",
|
||||||
"no_budget": "(no budget)",
|
"no_budget": "(no budget)",
|
||||||
"no_bill": "(no bill)",
|
"no_bill": "(no bill)",
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
"firefly": {
|
"firefly": {
|
||||||
"welcome_back": "\u00bfQu\u00e9 est\u00e1 pasando?",
|
"welcome_back": "\u00bfQu\u00e9 est\u00e1 pasando?",
|
||||||
"flash_error": "\u00a1Error!",
|
"flash_error": "\u00a1Error!",
|
||||||
|
"flash_warning": "\u00a1Atenci\u00f3n!",
|
||||||
"flash_success": "\u00a1Operaci\u00f3n correcta!",
|
"flash_success": "\u00a1Operaci\u00f3n correcta!",
|
||||||
"close": "Cerrar",
|
"close": "Cerrar",
|
||||||
"split_transaction_title": "Descripci\u00f3n de la transacci\u00f3n dividida",
|
"split_transaction_title": "Descripci\u00f3n de la transacci\u00f3n dividida",
|
||||||
@ -29,6 +30,7 @@
|
|||||||
"submit": "Enviar",
|
"submit": "Enviar",
|
||||||
"amount": "Cantidad",
|
"amount": "Cantidad",
|
||||||
"date": "Fecha",
|
"date": "Fecha",
|
||||||
|
"is_reconciled_fields_dropped": "Because this transaction is reconciled, you will not be able to update the accounts, nor the amount(s).",
|
||||||
"tags": "Etiquetas",
|
"tags": "Etiquetas",
|
||||||
"no_budget": "(sin presupuesto)",
|
"no_budget": "(sin presupuesto)",
|
||||||
"no_bill": "(sin factura)",
|
"no_bill": "(sin factura)",
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
"firefly": {
|
"firefly": {
|
||||||
"welcome_back": "Mit\u00e4 kuuluu?",
|
"welcome_back": "Mit\u00e4 kuuluu?",
|
||||||
"flash_error": "Virhe!",
|
"flash_error": "Virhe!",
|
||||||
|
"flash_warning": "Varoitus!",
|
||||||
"flash_success": "Valmista tuli!",
|
"flash_success": "Valmista tuli!",
|
||||||
"close": "Sulje",
|
"close": "Sulje",
|
||||||
"split_transaction_title": "Jaetun tapahtuman kuvaus",
|
"split_transaction_title": "Jaetun tapahtuman kuvaus",
|
||||||
@ -29,6 +30,7 @@
|
|||||||
"submit": "Vahvista",
|
"submit": "Vahvista",
|
||||||
"amount": "Summa",
|
"amount": "Summa",
|
||||||
"date": "P\u00e4iv\u00e4m\u00e4\u00e4r\u00e4",
|
"date": "P\u00e4iv\u00e4m\u00e4\u00e4r\u00e4",
|
||||||
|
"is_reconciled_fields_dropped": "Because this transaction is reconciled, you will not be able to update the accounts, nor the amount(s).",
|
||||||
"tags": "T\u00e4git",
|
"tags": "T\u00e4git",
|
||||||
"no_budget": "(ei budjettia)",
|
"no_budget": "(ei budjettia)",
|
||||||
"no_bill": "(ei laskua)",
|
"no_bill": "(ei laskua)",
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
"firefly": {
|
"firefly": {
|
||||||
"welcome_back": "Quoi de neuf ?",
|
"welcome_back": "Quoi de neuf ?",
|
||||||
"flash_error": "Erreur !",
|
"flash_error": "Erreur !",
|
||||||
|
"flash_warning": "Attention !",
|
||||||
"flash_success": "Super !",
|
"flash_success": "Super !",
|
||||||
"close": "Fermer",
|
"close": "Fermer",
|
||||||
"split_transaction_title": "Description de l'op\u00e9ration ventil\u00e9e",
|
"split_transaction_title": "Description de l'op\u00e9ration ventil\u00e9e",
|
||||||
@ -29,6 +30,7 @@
|
|||||||
"submit": "Soumettre",
|
"submit": "Soumettre",
|
||||||
"amount": "Montant",
|
"amount": "Montant",
|
||||||
"date": "Date",
|
"date": "Date",
|
||||||
|
"is_reconciled_fields_dropped": "Because this transaction is reconciled, you will not be able to update the accounts, nor the amount(s).",
|
||||||
"tags": "Tags",
|
"tags": "Tags",
|
||||||
"no_budget": "(pas de budget)",
|
"no_budget": "(pas de budget)",
|
||||||
"no_bill": "(aucune facture)",
|
"no_bill": "(aucune facture)",
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
"firefly": {
|
"firefly": {
|
||||||
"welcome_back": "Mi a helyzet?",
|
"welcome_back": "Mi a helyzet?",
|
||||||
"flash_error": "Hiba!",
|
"flash_error": "Hiba!",
|
||||||
|
"flash_warning": "Figyelmeztet\u00e9s!",
|
||||||
"flash_success": "Siker!",
|
"flash_success": "Siker!",
|
||||||
"close": "Bez\u00e1r\u00e1s",
|
"close": "Bez\u00e1r\u00e1s",
|
||||||
"split_transaction_title": "Felosztott tranzakci\u00f3 le\u00edr\u00e1sa",
|
"split_transaction_title": "Felosztott tranzakci\u00f3 le\u00edr\u00e1sa",
|
||||||
@ -29,6 +30,7 @@
|
|||||||
"submit": "Bek\u00fcld\u00e9s",
|
"submit": "Bek\u00fcld\u00e9s",
|
||||||
"amount": "\u00d6sszeg",
|
"amount": "\u00d6sszeg",
|
||||||
"date": "D\u00e1tum",
|
"date": "D\u00e1tum",
|
||||||
|
"is_reconciled_fields_dropped": "Because this transaction is reconciled, you will not be able to update the accounts, nor the amount(s).",
|
||||||
"tags": "C\u00edmk\u00e9k",
|
"tags": "C\u00edmk\u00e9k",
|
||||||
"no_budget": "(nincs k\u00f6lts\u00e9gkeret)",
|
"no_budget": "(nincs k\u00f6lts\u00e9gkeret)",
|
||||||
"no_bill": "(no bill)",
|
"no_bill": "(no bill)",
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
"firefly": {
|
"firefly": {
|
||||||
"welcome_back": "Apa yang sedang dimainkan?",
|
"welcome_back": "Apa yang sedang dimainkan?",
|
||||||
"flash_error": "Kesalahan!",
|
"flash_error": "Kesalahan!",
|
||||||
|
"flash_warning": "PERINGATAN!",
|
||||||
"flash_success": "Keberhasilan!",
|
"flash_success": "Keberhasilan!",
|
||||||
"close": "Dekat",
|
"close": "Dekat",
|
||||||
"split_transaction_title": "Description of the split transaction",
|
"split_transaction_title": "Description of the split transaction",
|
||||||
@ -29,6 +30,7 @@
|
|||||||
"submit": "Menyerahkan",
|
"submit": "Menyerahkan",
|
||||||
"amount": "Jumlah",
|
"amount": "Jumlah",
|
||||||
"date": "Tanggal",
|
"date": "Tanggal",
|
||||||
|
"is_reconciled_fields_dropped": "Because this transaction is reconciled, you will not be able to update the accounts, nor the amount(s).",
|
||||||
"tags": "Tag",
|
"tags": "Tag",
|
||||||
"no_budget": "(no budget)",
|
"no_budget": "(no budget)",
|
||||||
"no_bill": "(no bill)",
|
"no_bill": "(no bill)",
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
"firefly": {
|
"firefly": {
|
||||||
"welcome_back": "La tua situazione finanziaria",
|
"welcome_back": "La tua situazione finanziaria",
|
||||||
"flash_error": "Errore!",
|
"flash_error": "Errore!",
|
||||||
|
"flash_warning": "Avviso!",
|
||||||
"flash_success": "Successo!",
|
"flash_success": "Successo!",
|
||||||
"close": "Chiudi",
|
"close": "Chiudi",
|
||||||
"split_transaction_title": "Descrizione della transazione suddivisa",
|
"split_transaction_title": "Descrizione della transazione suddivisa",
|
||||||
@ -29,6 +30,7 @@
|
|||||||
"submit": "Invia",
|
"submit": "Invia",
|
||||||
"amount": "Importo",
|
"amount": "Importo",
|
||||||
"date": "Data",
|
"date": "Data",
|
||||||
|
"is_reconciled_fields_dropped": "Because this transaction is reconciled, you will not be able to update the accounts, nor the amount(s).",
|
||||||
"tags": "Etichette",
|
"tags": "Etichette",
|
||||||
"no_budget": "(nessun budget)",
|
"no_budget": "(nessun budget)",
|
||||||
"no_bill": "(nessuna bolletta)",
|
"no_bill": "(nessuna bolletta)",
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
"firefly": {
|
"firefly": {
|
||||||
"welcome_back": "\u6982\u8981",
|
"welcome_back": "\u6982\u8981",
|
||||||
"flash_error": "\u30a8\u30e9\u30fc\uff01",
|
"flash_error": "\u30a8\u30e9\u30fc\uff01",
|
||||||
|
"flash_warning": "\u8b66\u544a\uff01",
|
||||||
"flash_success": "\u6210\u529f\u3057\u307e\u3057\u305f\uff01",
|
"flash_success": "\u6210\u529f\u3057\u307e\u3057\u305f\uff01",
|
||||||
"close": "\u9589\u3058\u308b",
|
"close": "\u9589\u3058\u308b",
|
||||||
"split_transaction_title": "\u5206\u5272\u53d6\u5f15\u306e\u6982\u8981",
|
"split_transaction_title": "\u5206\u5272\u53d6\u5f15\u306e\u6982\u8981",
|
||||||
@ -29,6 +30,7 @@
|
|||||||
"submit": "\u9001\u4fe1",
|
"submit": "\u9001\u4fe1",
|
||||||
"amount": "\u91d1\u984d",
|
"amount": "\u91d1\u984d",
|
||||||
"date": "\u65e5\u4ed8",
|
"date": "\u65e5\u4ed8",
|
||||||
|
"is_reconciled_fields_dropped": "Because this transaction is reconciled, you will not be able to update the accounts, nor the amount(s).",
|
||||||
"tags": "\u30bf\u30b0",
|
"tags": "\u30bf\u30b0",
|
||||||
"no_budget": "(\u4e88\u7b97\u306a\u3057)",
|
"no_budget": "(\u4e88\u7b97\u306a\u3057)",
|
||||||
"no_bill": "(\u8acb\u6c42\u306a\u3057)",
|
"no_bill": "(\u8acb\u6c42\u306a\u3057)",
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
"firefly": {
|
"firefly": {
|
||||||
"welcome_back": "\ubb34\uc2a8 \uc77c\uc774\uc8e0?",
|
"welcome_back": "\ubb34\uc2a8 \uc77c\uc774\uc8e0?",
|
||||||
"flash_error": "\uc624\ub958!",
|
"flash_error": "\uc624\ub958!",
|
||||||
|
"flash_warning": "\uacbd\uace0!",
|
||||||
"flash_success": "\uc131\uacf5!",
|
"flash_success": "\uc131\uacf5!",
|
||||||
"close": "\ub2eb\uae30",
|
"close": "\ub2eb\uae30",
|
||||||
"split_transaction_title": "\ubd84\ud560 \uac70\ub798\uc5d0 \ub300\ud55c \uc124\uba85",
|
"split_transaction_title": "\ubd84\ud560 \uac70\ub798\uc5d0 \ub300\ud55c \uc124\uba85",
|
||||||
@ -29,6 +30,7 @@
|
|||||||
"submit": "\uc81c\ucd9c",
|
"submit": "\uc81c\ucd9c",
|
||||||
"amount": "\uae08\uc561",
|
"amount": "\uae08\uc561",
|
||||||
"date": "\ub0a0\uc9dc",
|
"date": "\ub0a0\uc9dc",
|
||||||
|
"is_reconciled_fields_dropped": "Because this transaction is reconciled, you will not be able to update the accounts, nor the amount(s).",
|
||||||
"tags": "\ud0dc\uadf8",
|
"tags": "\ud0dc\uadf8",
|
||||||
"no_budget": "(\uc608\uc0b0 \uc5c6\uc74c)",
|
"no_budget": "(\uc608\uc0b0 \uc5c6\uc74c)",
|
||||||
"no_bill": "(\uccad\uad6c\uc11c \uc5c6\uc74c)",
|
"no_bill": "(\uccad\uad6c\uc11c \uc5c6\uc74c)",
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
"firefly": {
|
"firefly": {
|
||||||
"welcome_back": "Hvordan g\u00e5r det?",
|
"welcome_back": "Hvordan g\u00e5r det?",
|
||||||
"flash_error": "Feil!",
|
"flash_error": "Feil!",
|
||||||
|
"flash_warning": "Advarsel!",
|
||||||
"flash_success": "Suksess!",
|
"flash_success": "Suksess!",
|
||||||
"close": "Lukk",
|
"close": "Lukk",
|
||||||
"split_transaction_title": "Beskrivelse av den splittende transaksjon",
|
"split_transaction_title": "Beskrivelse av den splittende transaksjon",
|
||||||
@ -29,6 +30,7 @@
|
|||||||
"submit": "Send inn",
|
"submit": "Send inn",
|
||||||
"amount": "Bel\u00f8p",
|
"amount": "Bel\u00f8p",
|
||||||
"date": "Dato",
|
"date": "Dato",
|
||||||
|
"is_reconciled_fields_dropped": "Because this transaction is reconciled, you will not be able to update the accounts, nor the amount(s).",
|
||||||
"tags": "Tagger",
|
"tags": "Tagger",
|
||||||
"no_budget": "(ingen budsjett)",
|
"no_budget": "(ingen budsjett)",
|
||||||
"no_bill": "(ingen regning)",
|
"no_bill": "(ingen regning)",
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
"firefly": {
|
"firefly": {
|
||||||
"welcome_back": "Hoe staat het er voor?",
|
"welcome_back": "Hoe staat het er voor?",
|
||||||
"flash_error": "Fout!",
|
"flash_error": "Fout!",
|
||||||
|
"flash_warning": "Waarschuwing!",
|
||||||
"flash_success": "Gelukt!",
|
"flash_success": "Gelukt!",
|
||||||
"close": "Sluiten",
|
"close": "Sluiten",
|
||||||
"split_transaction_title": "Beschrijving van de gesplitste transactie",
|
"split_transaction_title": "Beschrijving van de gesplitste transactie",
|
||||||
@ -29,6 +30,7 @@
|
|||||||
"submit": "Invoeren",
|
"submit": "Invoeren",
|
||||||
"amount": "Bedrag",
|
"amount": "Bedrag",
|
||||||
"date": "Datum",
|
"date": "Datum",
|
||||||
|
"is_reconciled_fields_dropped": "Because this transaction is reconciled, you will not be able to update the accounts, nor the amount(s).",
|
||||||
"tags": "Tags",
|
"tags": "Tags",
|
||||||
"no_budget": "(geen budget)",
|
"no_budget": "(geen budget)",
|
||||||
"no_bill": "(geen contract)",
|
"no_bill": "(geen contract)",
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
"firefly": {
|
"firefly": {
|
||||||
"welcome_back": "Korleis g\u00e5r det?",
|
"welcome_back": "Korleis g\u00e5r det?",
|
||||||
"flash_error": "Feil!",
|
"flash_error": "Feil!",
|
||||||
|
"flash_warning": "Advarsel!",
|
||||||
"flash_success": "Suksess!",
|
"flash_success": "Suksess!",
|
||||||
"close": "Lukk",
|
"close": "Lukk",
|
||||||
"split_transaction_title": "Beskrivinga av den splitta transaksjonen",
|
"split_transaction_title": "Beskrivinga av den splitta transaksjonen",
|
||||||
@ -29,6 +30,7 @@
|
|||||||
"submit": "Send inn",
|
"submit": "Send inn",
|
||||||
"amount": "Bel\u00f8p",
|
"amount": "Bel\u00f8p",
|
||||||
"date": "Dato",
|
"date": "Dato",
|
||||||
|
"is_reconciled_fields_dropped": "Because this transaction is reconciled, you will not be able to update the accounts, nor the amount(s).",
|
||||||
"tags": "N\u00f8kkelord",
|
"tags": "N\u00f8kkelord",
|
||||||
"no_budget": "(ingen budsjett)",
|
"no_budget": "(ingen budsjett)",
|
||||||
"no_bill": "(ingen rekning)",
|
"no_bill": "(ingen rekning)",
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
"firefly": {
|
"firefly": {
|
||||||
"welcome_back": "Co jest grane?",
|
"welcome_back": "Co jest grane?",
|
||||||
"flash_error": "B\u0142\u0105d!",
|
"flash_error": "B\u0142\u0105d!",
|
||||||
|
"flash_warning": "Ostrze\u017cenie!",
|
||||||
"flash_success": "Sukces!",
|
"flash_success": "Sukces!",
|
||||||
"close": "Zamknij",
|
"close": "Zamknij",
|
||||||
"split_transaction_title": "Opis podzielonej transakcji",
|
"split_transaction_title": "Opis podzielonej transakcji",
|
||||||
@ -29,6 +30,7 @@
|
|||||||
"submit": "Prze\u015blij",
|
"submit": "Prze\u015blij",
|
||||||
"amount": "Kwota",
|
"amount": "Kwota",
|
||||||
"date": "Data",
|
"date": "Data",
|
||||||
|
"is_reconciled_fields_dropped": "Because this transaction is reconciled, you will not be able to update the accounts, nor the amount(s).",
|
||||||
"tags": "Tagi",
|
"tags": "Tagi",
|
||||||
"no_budget": "(brak bud\u017cetu)",
|
"no_budget": "(brak bud\u017cetu)",
|
||||||
"no_bill": "(brak rachunku)",
|
"no_bill": "(brak rachunku)",
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
"firefly": {
|
"firefly": {
|
||||||
"welcome_back": "O que est\u00e1 acontecendo?",
|
"welcome_back": "O que est\u00e1 acontecendo?",
|
||||||
"flash_error": "Erro!",
|
"flash_error": "Erro!",
|
||||||
|
"flash_warning": "Aten\u00e7\u00e3o!",
|
||||||
"flash_success": "Sucesso!",
|
"flash_success": "Sucesso!",
|
||||||
"close": "Fechar",
|
"close": "Fechar",
|
||||||
"split_transaction_title": "Descri\u00e7\u00e3o da transa\u00e7\u00e3o dividida",
|
"split_transaction_title": "Descri\u00e7\u00e3o da transa\u00e7\u00e3o dividida",
|
||||||
@ -29,6 +30,7 @@
|
|||||||
"submit": "Enviar",
|
"submit": "Enviar",
|
||||||
"amount": "Valor",
|
"amount": "Valor",
|
||||||
"date": "Data",
|
"date": "Data",
|
||||||
|
"is_reconciled_fields_dropped": "Because this transaction is reconciled, you will not be able to update the accounts, nor the amount(s).",
|
||||||
"tags": "Tags",
|
"tags": "Tags",
|
||||||
"no_budget": "(sem or\u00e7amento)",
|
"no_budget": "(sem or\u00e7amento)",
|
||||||
"no_bill": "(sem fatura)",
|
"no_bill": "(sem fatura)",
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
"firefly": {
|
"firefly": {
|
||||||
"welcome_back": "Painel de controlo",
|
"welcome_back": "Painel de controlo",
|
||||||
"flash_error": "Erro!",
|
"flash_error": "Erro!",
|
||||||
|
"flash_warning": "Aviso!",
|
||||||
"flash_success": "Sucesso!",
|
"flash_success": "Sucesso!",
|
||||||
"close": "Fechar",
|
"close": "Fechar",
|
||||||
"split_transaction_title": "Descri\u00e7\u00e3o da transa\u00e7\u00e3o dividida",
|
"split_transaction_title": "Descri\u00e7\u00e3o da transa\u00e7\u00e3o dividida",
|
||||||
@ -29,6 +30,7 @@
|
|||||||
"submit": "Guardar",
|
"submit": "Guardar",
|
||||||
"amount": "Montante",
|
"amount": "Montante",
|
||||||
"date": "Data",
|
"date": "Data",
|
||||||
|
"is_reconciled_fields_dropped": "Because this transaction is reconciled, you will not be able to update the accounts, nor the amount(s).",
|
||||||
"tags": "Etiquetas",
|
"tags": "Etiquetas",
|
||||||
"no_budget": "(sem or\u00e7amento)",
|
"no_budget": "(sem or\u00e7amento)",
|
||||||
"no_bill": "(sem encargo)",
|
"no_bill": "(sem encargo)",
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
"firefly": {
|
"firefly": {
|
||||||
"welcome_back": "Ce se red\u0103?",
|
"welcome_back": "Ce se red\u0103?",
|
||||||
"flash_error": "Eroare!",
|
"flash_error": "Eroare!",
|
||||||
|
"flash_warning": "Avertizare!",
|
||||||
"flash_success": "Succes!",
|
"flash_success": "Succes!",
|
||||||
"close": "\u00cenchide",
|
"close": "\u00cenchide",
|
||||||
"split_transaction_title": "Descrierea tranzac\u021biei divizate",
|
"split_transaction_title": "Descrierea tranzac\u021biei divizate",
|
||||||
@ -29,6 +30,7 @@
|
|||||||
"submit": "Trimite",
|
"submit": "Trimite",
|
||||||
"amount": "Sum\u0103",
|
"amount": "Sum\u0103",
|
||||||
"date": "Dat\u0103",
|
"date": "Dat\u0103",
|
||||||
|
"is_reconciled_fields_dropped": "Because this transaction is reconciled, you will not be able to update the accounts, nor the amount(s).",
|
||||||
"tags": "Etichete",
|
"tags": "Etichete",
|
||||||
"no_budget": "(nici un buget)",
|
"no_budget": "(nici un buget)",
|
||||||
"no_bill": "(f\u0103r\u0103 factur\u0103)",
|
"no_bill": "(f\u0103r\u0103 factur\u0103)",
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
"firefly": {
|
"firefly": {
|
||||||
"welcome_back": "\u0427\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0441 \u043c\u043e\u0438\u043c\u0438 \u0444\u0438\u043d\u0430\u043d\u0441\u0430\u043c\u0438?",
|
"welcome_back": "\u0427\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0441 \u043c\u043e\u0438\u043c\u0438 \u0444\u0438\u043d\u0430\u043d\u0441\u0430\u043c\u0438?",
|
||||||
"flash_error": "\u041e\u0448\u0438\u0431\u043a\u0430!",
|
"flash_error": "\u041e\u0448\u0438\u0431\u043a\u0430!",
|
||||||
|
"flash_warning": "\u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435!",
|
||||||
"flash_success": "\u0423\u0441\u043f\u0435\u0448\u043d\u043e!",
|
"flash_success": "\u0423\u0441\u043f\u0435\u0448\u043d\u043e!",
|
||||||
"close": "\u0417\u0430\u043a\u0440\u044b\u0442\u044c",
|
"close": "\u0417\u0430\u043a\u0440\u044b\u0442\u044c",
|
||||||
"split_transaction_title": "\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0440\u0430\u0437\u0434\u0435\u043b\u0451\u043d\u043d\u043e\u0439 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438",
|
"split_transaction_title": "\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0440\u0430\u0437\u0434\u0435\u043b\u0451\u043d\u043d\u043e\u0439 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438",
|
||||||
@ -29,6 +30,7 @@
|
|||||||
"submit": "\u041f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u044c",
|
"submit": "\u041f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u044c",
|
||||||
"amount": "\u0421\u0443\u043c\u043c\u0430",
|
"amount": "\u0421\u0443\u043c\u043c\u0430",
|
||||||
"date": "\u0414\u0430\u0442\u0430",
|
"date": "\u0414\u0430\u0442\u0430",
|
||||||
|
"is_reconciled_fields_dropped": "Because this transaction is reconciled, you will not be able to update the accounts, nor the amount(s).",
|
||||||
"tags": "\u041c\u0435\u0442\u043a\u0438",
|
"tags": "\u041c\u0435\u0442\u043a\u0438",
|
||||||
"no_budget": "(\u0432\u043d\u0435 \u0431\u044e\u0434\u0436\u0435\u0442\u0430)",
|
"no_budget": "(\u0432\u043d\u0435 \u0431\u044e\u0434\u0436\u0435\u0442\u0430)",
|
||||||
"no_bill": "(\u043d\u0435\u0442 \u0441\u0447\u0451\u0442\u0430 \u043d\u0430 \u043e\u043f\u043b\u0430\u0442\u0443)",
|
"no_bill": "(\u043d\u0435\u0442 \u0441\u0447\u0451\u0442\u0430 \u043d\u0430 \u043e\u043f\u043b\u0430\u0442\u0443)",
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
"firefly": {
|
"firefly": {
|
||||||
"welcome_back": "Ako to ide?",
|
"welcome_back": "Ako to ide?",
|
||||||
"flash_error": "Chyba!",
|
"flash_error": "Chyba!",
|
||||||
|
"flash_warning": "Varovanie!",
|
||||||
"flash_success": "Hotovo!",
|
"flash_success": "Hotovo!",
|
||||||
"close": "Zavrie\u0165",
|
"close": "Zavrie\u0165",
|
||||||
"split_transaction_title": "Popis roz\u00fa\u010dtovania",
|
"split_transaction_title": "Popis roz\u00fa\u010dtovania",
|
||||||
@ -29,6 +30,7 @@
|
|||||||
"submit": "Odosla\u0165",
|
"submit": "Odosla\u0165",
|
||||||
"amount": "Suma",
|
"amount": "Suma",
|
||||||
"date": "D\u00e1tum",
|
"date": "D\u00e1tum",
|
||||||
|
"is_reconciled_fields_dropped": "Because this transaction is reconciled, you will not be able to update the accounts, nor the amount(s).",
|
||||||
"tags": "\u0160t\u00edtky",
|
"tags": "\u0160t\u00edtky",
|
||||||
"no_budget": "(\u017eiadny rozpo\u010det)",
|
"no_budget": "(\u017eiadny rozpo\u010det)",
|
||||||
"no_bill": "(\u017eiadny \u00fa\u010det)",
|
"no_bill": "(\u017eiadny \u00fa\u010det)",
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
"firefly": {
|
"firefly": {
|
||||||
"welcome_back": "Kaj dogaja?",
|
"welcome_back": "Kaj dogaja?",
|
||||||
"flash_error": "Napaka!",
|
"flash_error": "Napaka!",
|
||||||
|
"flash_warning": "Opozorilo!",
|
||||||
"flash_success": "Uspelo je!",
|
"flash_success": "Uspelo je!",
|
||||||
"close": "zapri",
|
"close": "zapri",
|
||||||
"split_transaction_title": "Opis deljene transakcije",
|
"split_transaction_title": "Opis deljene transakcije",
|
||||||
@ -29,6 +30,7 @@
|
|||||||
"submit": "Potrdi",
|
"submit": "Potrdi",
|
||||||
"amount": "Znesek",
|
"amount": "Znesek",
|
||||||
"date": "Datum",
|
"date": "Datum",
|
||||||
|
"is_reconciled_fields_dropped": "Because this transaction is reconciled, you will not be able to update the accounts, nor the amount(s).",
|
||||||
"tags": "Oznake",
|
"tags": "Oznake",
|
||||||
"no_budget": "(brez prora\u010duna)",
|
"no_budget": "(brez prora\u010duna)",
|
||||||
"no_bill": "(ni ra\u010duna)",
|
"no_bill": "(ni ra\u010duna)",
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
"firefly": {
|
"firefly": {
|
||||||
"welcome_back": "Vad spelas?",
|
"welcome_back": "Vad spelas?",
|
||||||
"flash_error": "Fel!",
|
"flash_error": "Fel!",
|
||||||
|
"flash_warning": "Varning!",
|
||||||
"flash_success": "Slutf\u00f6rd!",
|
"flash_success": "Slutf\u00f6rd!",
|
||||||
"close": "St\u00e4ng",
|
"close": "St\u00e4ng",
|
||||||
"split_transaction_title": "Beskrivning av delad transaktion",
|
"split_transaction_title": "Beskrivning av delad transaktion",
|
||||||
@ -29,6 +30,7 @@
|
|||||||
"submit": "Skicka",
|
"submit": "Skicka",
|
||||||
"amount": "Belopp",
|
"amount": "Belopp",
|
||||||
"date": "Datum",
|
"date": "Datum",
|
||||||
|
"is_reconciled_fields_dropped": "Because this transaction is reconciled, you will not be able to update the accounts, nor the amount(s).",
|
||||||
"tags": "Etiketter",
|
"tags": "Etiketter",
|
||||||
"no_budget": "(ingen budget)",
|
"no_budget": "(ingen budget)",
|
||||||
"no_bill": "(ingen r\u00e4kning)",
|
"no_bill": "(ingen r\u00e4kning)",
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
"firefly": {
|
"firefly": {
|
||||||
"welcome_back": "Neler oluyor?",
|
"welcome_back": "Neler oluyor?",
|
||||||
"flash_error": "Hata!",
|
"flash_error": "Hata!",
|
||||||
|
"flash_warning": "Uyar\u0131!",
|
||||||
"flash_success": "Ba\u015far\u0131l\u0131!",
|
"flash_success": "Ba\u015far\u0131l\u0131!",
|
||||||
"close": "Kapat",
|
"close": "Kapat",
|
||||||
"split_transaction_title": "Description of the split transaction",
|
"split_transaction_title": "Description of the split transaction",
|
||||||
@ -29,6 +30,7 @@
|
|||||||
"submit": "G\u00f6nder",
|
"submit": "G\u00f6nder",
|
||||||
"amount": "Miktar",
|
"amount": "Miktar",
|
||||||
"date": "Tarih",
|
"date": "Tarih",
|
||||||
|
"is_reconciled_fields_dropped": "Because this transaction is reconciled, you will not be able to update the accounts, nor the amount(s).",
|
||||||
"tags": "Etiketler",
|
"tags": "Etiketler",
|
||||||
"no_budget": "(b\u00fct\u00e7e yok)",
|
"no_budget": "(b\u00fct\u00e7e yok)",
|
||||||
"no_bill": "(hay\u0131r bill)",
|
"no_bill": "(hay\u0131r bill)",
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
"firefly": {
|
"firefly": {
|
||||||
"welcome_back": "\u0429\u043e \u0432 \u0433\u0430\u043c\u0430\u043d\u0446\u0456?",
|
"welcome_back": "\u0429\u043e \u0432 \u0433\u0430\u043c\u0430\u043d\u0446\u0456?",
|
||||||
"flash_error": "\u041f\u043e\u043c\u0438\u043b\u043a\u0430!",
|
"flash_error": "\u041f\u043e\u043c\u0438\u043b\u043a\u0430!",
|
||||||
|
"flash_warning": "\u0423\u0432\u0430\u0433\u0430!",
|
||||||
"flash_success": "\u0423\u0441\u043f\u0456\u0448\u043d\u043e!",
|
"flash_success": "\u0423\u0441\u043f\u0456\u0448\u043d\u043e!",
|
||||||
"close": "\u0417\u0430\u043a\u0440\u0438\u0442\u0438",
|
"close": "\u0417\u0430\u043a\u0440\u0438\u0442\u0438",
|
||||||
"split_transaction_title": "Description of the split transaction",
|
"split_transaction_title": "Description of the split transaction",
|
||||||
@ -29,6 +30,7 @@
|
|||||||
"submit": "\u041f\u0456\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0438",
|
"submit": "\u041f\u0456\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u0438",
|
||||||
"amount": "\u0421\u0443\u043c\u0430",
|
"amount": "\u0421\u0443\u043c\u0430",
|
||||||
"date": "\u0414\u0430\u0442\u0430",
|
"date": "\u0414\u0430\u0442\u0430",
|
||||||
|
"is_reconciled_fields_dropped": "Because this transaction is reconciled, you will not be able to update the accounts, nor the amount(s).",
|
||||||
"tags": "\u0422\u0435\u0433\u0438",
|
"tags": "\u0422\u0435\u0433\u0438",
|
||||||
"no_budget": "(\u043f\u043e\u0437\u0430 \u0431\u044e\u0434\u0436\u0435\u0442\u043e\u043c)",
|
"no_budget": "(\u043f\u043e\u0437\u0430 \u0431\u044e\u0434\u0436\u0435\u0442\u043e\u043c)",
|
||||||
"no_bill": "(no bill)",
|
"no_bill": "(no bill)",
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
"firefly": {
|
"firefly": {
|
||||||
"welcome_back": "Ch\u00e0o m\u1eebng tr\u1edf l\u1ea1i?",
|
"welcome_back": "Ch\u00e0o m\u1eebng tr\u1edf l\u1ea1i?",
|
||||||
"flash_error": "L\u1ed7i!",
|
"flash_error": "L\u1ed7i!",
|
||||||
|
"flash_warning": "C\u1ea3nh b\u00e1o!",
|
||||||
"flash_success": "Th\u00e0nh c\u00f4ng!",
|
"flash_success": "Th\u00e0nh c\u00f4ng!",
|
||||||
"close": "\u0110\u00f3ng",
|
"close": "\u0110\u00f3ng",
|
||||||
"split_transaction_title": "M\u00f4 t\u1ea3 giao d\u1ecbch t\u00e1ch",
|
"split_transaction_title": "M\u00f4 t\u1ea3 giao d\u1ecbch t\u00e1ch",
|
||||||
@ -29,6 +30,7 @@
|
|||||||
"submit": "G\u1eedi",
|
"submit": "G\u1eedi",
|
||||||
"amount": "S\u1ed1 ti\u1ec1n",
|
"amount": "S\u1ed1 ti\u1ec1n",
|
||||||
"date": "Ng\u00e0y",
|
"date": "Ng\u00e0y",
|
||||||
|
"is_reconciled_fields_dropped": "Because this transaction is reconciled, you will not be able to update the accounts, nor the amount(s).",
|
||||||
"tags": "Nh\u00e3n",
|
"tags": "Nh\u00e3n",
|
||||||
"no_budget": "(kh\u00f4ng c\u00f3 ng\u00e2n s\u00e1ch)",
|
"no_budget": "(kh\u00f4ng c\u00f3 ng\u00e2n s\u00e1ch)",
|
||||||
"no_bill": "(no bill)",
|
"no_bill": "(no bill)",
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
"firefly": {
|
"firefly": {
|
||||||
"welcome_back": "\u4eca\u5929\u7406\u8d22\u4e86\u5417\uff1f",
|
"welcome_back": "\u4eca\u5929\u7406\u8d22\u4e86\u5417\uff1f",
|
||||||
"flash_error": "\u9519\u8bef\uff01",
|
"flash_error": "\u9519\u8bef\uff01",
|
||||||
|
"flash_warning": "\u8b66\u544a\uff01",
|
||||||
"flash_success": "\u6210\u529f\uff01",
|
"flash_success": "\u6210\u529f\uff01",
|
||||||
"close": "\u5173\u95ed",
|
"close": "\u5173\u95ed",
|
||||||
"split_transaction_title": "\u62c6\u5206\u4ea4\u6613\u7684\u63cf\u8ff0",
|
"split_transaction_title": "\u62c6\u5206\u4ea4\u6613\u7684\u63cf\u8ff0",
|
||||||
@ -29,6 +30,7 @@
|
|||||||
"submit": "\u63d0\u4ea4",
|
"submit": "\u63d0\u4ea4",
|
||||||
"amount": "\u91d1\u989d",
|
"amount": "\u91d1\u989d",
|
||||||
"date": "\u65e5\u671f",
|
"date": "\u65e5\u671f",
|
||||||
|
"is_reconciled_fields_dropped": "Because this transaction is reconciled, you will not be able to update the accounts, nor the amount(s).",
|
||||||
"tags": "\u6807\u7b7e",
|
"tags": "\u6807\u7b7e",
|
||||||
"no_budget": "(\u65e0\u9884\u7b97)",
|
"no_budget": "(\u65e0\u9884\u7b97)",
|
||||||
"no_bill": "(\u65e0\u8d26\u5355)",
|
"no_bill": "(\u65e0\u8d26\u5355)",
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
"firefly": {
|
"firefly": {
|
||||||
"welcome_back": "What's playing?",
|
"welcome_back": "What's playing?",
|
||||||
"flash_error": "\u932f\u8aa4\uff01",
|
"flash_error": "\u932f\u8aa4\uff01",
|
||||||
|
"flash_warning": "\u8b66\u544a\uff01",
|
||||||
"flash_success": "\u6210\u529f\uff01",
|
"flash_success": "\u6210\u529f\uff01",
|
||||||
"close": "\u95dc\u9589",
|
"close": "\u95dc\u9589",
|
||||||
"split_transaction_title": "\u62c6\u5206\u4ea4\u6613\u7684\u63cf\u8ff0",
|
"split_transaction_title": "\u62c6\u5206\u4ea4\u6613\u7684\u63cf\u8ff0",
|
||||||
@ -29,6 +30,7 @@
|
|||||||
"submit": "\u9001\u51fa",
|
"submit": "\u9001\u51fa",
|
||||||
"amount": "\u91d1\u984d",
|
"amount": "\u91d1\u984d",
|
||||||
"date": "\u65e5\u671f",
|
"date": "\u65e5\u671f",
|
||||||
|
"is_reconciled_fields_dropped": "Because this transaction is reconciled, you will not be able to update the accounts, nor the amount(s).",
|
||||||
"tags": "\u6a19\u7c64",
|
"tags": "\u6a19\u7c64",
|
||||||
"no_budget": "(\u7121\u9810\u7b97)",
|
"no_budget": "(\u7121\u9810\u7b97)",
|
||||||
"no_bill": "(no bill)",
|
"no_bill": "(no bill)",
|
||||||
|
@ -1516,6 +1516,7 @@ return [
|
|||||||
'list_all_attachments' => 'List of all attachments',
|
'list_all_attachments' => 'List of all attachments',
|
||||||
|
|
||||||
// transaction index
|
// transaction index
|
||||||
|
'is_reconciled_fields_dropped' => 'Because this transaction is reconciled, you will not be able to update the accounts, nor the amount(s).',
|
||||||
'title_expenses' => 'Expenses',
|
'title_expenses' => 'Expenses',
|
||||||
'title_withdrawal' => 'Expenses',
|
'title_withdrawal' => 'Expenses',
|
||||||
'title_revenue' => 'Revenue / income',
|
'title_revenue' => 'Revenue / income',
|
||||||
@ -1888,6 +1889,7 @@ return [
|
|||||||
// Ignore this comment
|
// Ignore this comment
|
||||||
|
|
||||||
// transactions:
|
// transactions:
|
||||||
|
'unreconcile' => 'Undo reconciliation',
|
||||||
'update_withdrawal' => 'Update withdrawal',
|
'update_withdrawal' => 'Update withdrawal',
|
||||||
'update_deposit' => 'Update deposit',
|
'update_deposit' => 'Update deposit',
|
||||||
'update_transaction' => 'Update transaction',
|
'update_transaction' => 'Update transaction',
|
||||||
|
@ -38,6 +38,7 @@ return [
|
|||||||
'source_equals_destination' => 'The source account equals the destination account.',
|
'source_equals_destination' => 'The source account equals the destination account.',
|
||||||
'unique_account_number_for_user' => 'It looks like this account number is already in use.',
|
'unique_account_number_for_user' => 'It looks like this account number is already in use.',
|
||||||
'unique_iban_for_user' => 'It looks like this IBAN is already in use.',
|
'unique_iban_for_user' => 'It looks like this IBAN is already in use.',
|
||||||
|
'reconciled_forbidden_field' => 'This transaction is already reconciled, you cannot change the ":field"',
|
||||||
'deleted_user' => 'Due to security constraints, you cannot register using this email address.',
|
'deleted_user' => 'Due to security constraints, you cannot register using this email address.',
|
||||||
'rule_trigger_value' => 'This value is invalid for the selected trigger.',
|
'rule_trigger_value' => 'This value is invalid for the selected trigger.',
|
||||||
'rule_action_value' => 'This value is invalid for the selected action.',
|
'rule_action_value' => 'This value is invalid for the selected action.',
|
||||||
|
@ -220,6 +220,10 @@
|
|||||||
class="fa fa-pencil"></span> {{ 'edit'|_ }}</a></li>
|
class="fa fa-pencil"></span> {{ 'edit'|_ }}</a></li>
|
||||||
<li><a href="{{ route('transactions.delete', [transactionGroup.id]) }}"><span
|
<li><a href="{{ route('transactions.delete', [transactionGroup.id]) }}"><span
|
||||||
class="fa fa-trash"></span> {{ 'delete'|_ }}</a></li>
|
class="fa fa-trash"></span> {{ 'delete'|_ }}</a></li>
|
||||||
|
{% if journal.reconciled %}
|
||||||
|
<li><a class="reconcile-button" href="{{ route('transactions.unreconcile', [journal.transaction_journal_id]) }}"><span
|
||||||
|
class="fa fa-history"></span> {{ 'unreconcile'|_ }}</a></li>
|
||||||
|
{% endif %}
|
||||||
<li role="separator" class="divider"></li>
|
<li role="separator" class="divider"></li>
|
||||||
|
|
||||||
{# convert to different type #}
|
{# convert to different type #}
|
||||||
@ -504,9 +508,25 @@
|
|||||||
var cloneGroupUrl = '{{ route('transactions.clone') }}';
|
var cloneGroupUrl = '{{ route('transactions.clone') }}';
|
||||||
var cloneAndEditUrl = '{{ route('transactions.clone') }}?redirect=edit';
|
var cloneAndEditUrl = '{{ route('transactions.clone') }}?redirect=edit';
|
||||||
|
|
||||||
|
|
||||||
$('.switch-link').on('click', switchLink);
|
$('.switch-link').on('click', switchLink);
|
||||||
|
$('.reconcile-button').on('click', unreconcile);
|
||||||
var switchLinkUrl = '{{ route('transactions.link.switch') }}';
|
var switchLinkUrl = '{{ route('transactions.link.switch') }}';
|
||||||
|
|
||||||
|
function unreconcile(e) {
|
||||||
|
e.preventDefault();
|
||||||
|
var obj = $(e.currentTarget);
|
||||||
|
$.post(obj.attr('href'), {
|
||||||
|
_token: token
|
||||||
|
}).done(function () {
|
||||||
|
location.reload();
|
||||||
|
}).fail(function () {
|
||||||
|
console.error('I failed :(');
|
||||||
|
});
|
||||||
|
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
function switchLink(e) {
|
function switchLink(e) {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
var obj = $(e.currentTarget);
|
var obj = $(e.currentTarget);
|
||||||
|
@ -1227,6 +1227,9 @@ Route::group(
|
|||||||
Route::get('delete/{transactionGroup}', ['uses' => 'Transaction\DeleteController@delete', 'as' => 'delete']);
|
Route::get('delete/{transactionGroup}', ['uses' => 'Transaction\DeleteController@delete', 'as' => 'delete']);
|
||||||
Route::post('destroy/{transactionGroup}', ['uses' => 'Transaction\DeleteController@destroy', 'as' => 'destroy']);
|
Route::post('destroy/{transactionGroup}', ['uses' => 'Transaction\DeleteController@destroy', 'as' => 'destroy']);
|
||||||
|
|
||||||
|
// unreconcile
|
||||||
|
Route::post('unreconcile/{tj}', ['uses' => 'Transaction\EditController@unreconcile', 'as' => 'unreconcile']);
|
||||||
|
|
||||||
Route::get('show/{transactionGroup}', ['uses' => 'Transaction\ShowController@show', 'as' => 'show']);
|
Route::get('show/{transactionGroup}', ['uses' => 'Transaction\ShowController@show', 'as' => 'show']);
|
||||||
Route::get('debug/{transactionGroup}', ['uses' => 'Transaction\ShowController@debugShow', 'as' => 'debug']);
|
Route::get('debug/{transactionGroup}', ['uses' => 'Transaction\ShowController@debugShow', 'as' => 'debug']);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user