diff --git a/app/Api/V1/Controllers/Autocomplete/AccountController.php b/app/Api/V1/Controllers/Autocomplete/AccountController.php index 1121928794..dbe91e2566 100644 --- a/app/Api/V1/Controllers/Autocomplete/AccountController.php +++ b/app/Api/V1/Controllers/Autocomplete/AccountController.php @@ -23,7 +23,6 @@ declare(strict_types=1); namespace FireflyIII\Api\V1\Controllers\Autocomplete; - use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Api\V1\Requests\Autocomplete\AutocompleteRequest; use FireflyIII\Models\Account; @@ -43,7 +42,6 @@ class AccountController extends Controller private array $balanceTypes; private AccountRepositoryInterface $repository; - /** * AccountController constructor. */ @@ -104,8 +102,6 @@ class AccountController extends Controller // custom order. $order = [AccountType::ASSET, AccountType::REVENUE, AccountType::EXPENSE]; - - usort( $return, function ($a, $b) use ($order) { $pos_a = array_search($a['type'], $order); diff --git a/app/Api/V1/Controllers/Autocomplete/BillController.php b/app/Api/V1/Controllers/Autocomplete/BillController.php index 2038883f2e..6369629f30 100644 --- a/app/Api/V1/Controllers/Autocomplete/BillController.php +++ b/app/Api/V1/Controllers/Autocomplete/BillController.php @@ -23,7 +23,6 @@ declare(strict_types=1); namespace FireflyIII\Api\V1\Controllers\Autocomplete; - use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Api\V1\Requests\Autocomplete\AutocompleteRequest; use FireflyIII\Models\Bill; @@ -38,7 +37,6 @@ class BillController extends Controller { private BillRepositoryInterface $repository; - /** * BillController constructor. */ @@ -75,7 +73,6 @@ class BillController extends Controller } ); - return response()->json($filtered->toArray()); } diff --git a/app/Api/V1/Controllers/Autocomplete/BudgetController.php b/app/Api/V1/Controllers/Autocomplete/BudgetController.php index 616989d2f2..62c12b7a4a 100644 --- a/app/Api/V1/Controllers/Autocomplete/BudgetController.php +++ b/app/Api/V1/Controllers/Autocomplete/BudgetController.php @@ -23,7 +23,6 @@ declare(strict_types=1); namespace FireflyIII\Api\V1\Controllers\Autocomplete; - use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Api\V1\Requests\Autocomplete\AutocompleteRequest; use FireflyIII\Models\Budget; @@ -38,7 +37,6 @@ class BudgetController extends Controller { private BudgetRepositoryInterface $repository; - /** * BudgetController constructor. */ diff --git a/app/Api/V1/Controllers/Autocomplete/CategoryController.php b/app/Api/V1/Controllers/Autocomplete/CategoryController.php index ab05ebf504..9798c8579b 100644 --- a/app/Api/V1/Controllers/Autocomplete/CategoryController.php +++ b/app/Api/V1/Controllers/Autocomplete/CategoryController.php @@ -37,7 +37,6 @@ class CategoryController extends Controller { private CategoryRepositoryInterface $repository; - /** * CategoryController constructor. */ diff --git a/app/Api/V1/Controllers/Autocomplete/CurrencyController.php b/app/Api/V1/Controllers/Autocomplete/CurrencyController.php index 8aa7d6cf52..e9abdbf128 100644 --- a/app/Api/V1/Controllers/Autocomplete/CurrencyController.php +++ b/app/Api/V1/Controllers/Autocomplete/CurrencyController.php @@ -23,7 +23,6 @@ declare(strict_types=1); namespace FireflyIII\Api\V1\Controllers\Autocomplete; - use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Api\V1\Requests\Autocomplete\AutocompleteRequest; use FireflyIII\Models\TransactionCurrency; @@ -38,7 +37,6 @@ class CurrencyController extends Controller { private CurrencyRepositoryInterface $repository; - /** * CurrencyController constructor. */ diff --git a/app/Api/V1/Controllers/Autocomplete/ObjectGroupController.php b/app/Api/V1/Controllers/Autocomplete/ObjectGroupController.php index bfa257dca4..3181f350c0 100644 --- a/app/Api/V1/Controllers/Autocomplete/ObjectGroupController.php +++ b/app/Api/V1/Controllers/Autocomplete/ObjectGroupController.php @@ -23,7 +23,6 @@ declare(strict_types=1); namespace FireflyIII\Api\V1\Controllers\Autocomplete; - use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Api\V1\Requests\Autocomplete\AutocompleteRequest; use FireflyIII\Models\ObjectGroup; @@ -38,7 +37,6 @@ class ObjectGroupController extends Controller { private ObjectGroupRepositoryInterface $repository; - /** * CurrencyController constructor. */ diff --git a/app/Api/V1/Controllers/Autocomplete/PiggyBankController.php b/app/Api/V1/Controllers/Autocomplete/PiggyBankController.php index 4887963ea1..403cdf71c4 100644 --- a/app/Api/V1/Controllers/Autocomplete/PiggyBankController.php +++ b/app/Api/V1/Controllers/Autocomplete/PiggyBankController.php @@ -23,7 +23,6 @@ declare(strict_types=1); namespace FireflyIII\Api\V1\Controllers\Autocomplete; - use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Api\V1\Requests\Autocomplete\AutocompleteRequest; use FireflyIII\Models\PiggyBank; diff --git a/app/Api/V1/Controllers/Autocomplete/RecurrenceController.php b/app/Api/V1/Controllers/Autocomplete/RecurrenceController.php index 01f2584a29..7569c1e4e6 100644 --- a/app/Api/V1/Controllers/Autocomplete/RecurrenceController.php +++ b/app/Api/V1/Controllers/Autocomplete/RecurrenceController.php @@ -23,7 +23,6 @@ declare(strict_types=1); namespace FireflyIII\Api\V1\Controllers\Autocomplete; - use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Api\V1\Requests\Autocomplete\AutocompleteRequest; use FireflyIII\Models\Rule; @@ -37,7 +36,6 @@ class RecurrenceController extends Controller { private RecurringRepositoryInterface $repository; - /** * RecurrenceController constructor. */ diff --git a/app/Api/V1/Controllers/Autocomplete/RuleController.php b/app/Api/V1/Controllers/Autocomplete/RuleController.php index 05510fceea..8d64b4ef65 100644 --- a/app/Api/V1/Controllers/Autocomplete/RuleController.php +++ b/app/Api/V1/Controllers/Autocomplete/RuleController.php @@ -23,7 +23,6 @@ declare(strict_types=1); namespace FireflyIII\Api\V1\Controllers\Autocomplete; - use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Api\V1\Requests\Autocomplete\AutocompleteRequest; use FireflyIII\Models\Rule; @@ -37,7 +36,6 @@ class RuleController extends Controller { private RuleRepositoryInterface $repository; - /** * RuleController constructor. */ diff --git a/app/Api/V1/Controllers/Autocomplete/RuleGroupController.php b/app/Api/V1/Controllers/Autocomplete/RuleGroupController.php index d67ae1c01c..bc269f20f8 100644 --- a/app/Api/V1/Controllers/Autocomplete/RuleGroupController.php +++ b/app/Api/V1/Controllers/Autocomplete/RuleGroupController.php @@ -23,7 +23,6 @@ declare(strict_types=1); namespace FireflyIII\Api\V1\Controllers\Autocomplete; - use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Api\V1\Requests\Autocomplete\AutocompleteRequest; use FireflyIII\Models\RuleGroup; @@ -37,7 +36,6 @@ class RuleGroupController extends Controller { private RuleGroupRepositoryInterface $repository; - /** * RuleGroupController constructor. */ diff --git a/app/Api/V1/Controllers/Autocomplete/TagController.php b/app/Api/V1/Controllers/Autocomplete/TagController.php index ef26cd12fe..47b51e43a4 100644 --- a/app/Api/V1/Controllers/Autocomplete/TagController.php +++ b/app/Api/V1/Controllers/Autocomplete/TagController.php @@ -23,7 +23,6 @@ declare(strict_types=1); namespace FireflyIII\Api\V1\Controllers\Autocomplete; - use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Api\V1\Requests\Autocomplete\AutocompleteRequest; use FireflyIII\Models\Tag; @@ -38,7 +37,6 @@ class TagController extends Controller { private TagRepositoryInterface $repository; - /** * TagController constructor. */ diff --git a/app/Api/V1/Controllers/Autocomplete/TransactionController.php b/app/Api/V1/Controllers/Autocomplete/TransactionController.php index 579eb422b1..5ce1debfb6 100644 --- a/app/Api/V1/Controllers/Autocomplete/TransactionController.php +++ b/app/Api/V1/Controllers/Autocomplete/TransactionController.php @@ -23,7 +23,6 @@ declare(strict_types=1); namespace FireflyIII\Api\V1\Controllers\Autocomplete; - use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Api\V1\Requests\Autocomplete\AutocompleteRequest; use FireflyIII\Models\TransactionJournal; @@ -39,7 +38,7 @@ use Illuminate\Support\Collection; class TransactionController extends Controller { private TransactionGroupRepositoryInterface $groupRepository; - private JournalRepositoryInterface $repository; + private JournalRepositoryInterface $repository; /** * TransactionController constructor. @@ -61,7 +60,6 @@ class TransactionController extends Controller ); } - /** * @param AutocompleteRequest $request * diff --git a/app/Api/V1/Controllers/Autocomplete/TransactionTypeController.php b/app/Api/V1/Controllers/Autocomplete/TransactionTypeController.php index 2984aab1e9..6143d0db36 100644 --- a/app/Api/V1/Controllers/Autocomplete/TransactionTypeController.php +++ b/app/Api/V1/Controllers/Autocomplete/TransactionTypeController.php @@ -23,7 +23,6 @@ declare(strict_types=1); namespace FireflyIII\Api\V1\Controllers\Autocomplete; - use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Api\V1\Requests\Autocomplete\AutocompleteRequest; use FireflyIII\Models\TransactionType; @@ -37,7 +36,6 @@ class TransactionTypeController extends Controller { private TransactionTypeRepositoryInterface $repository; - /** * TransactionTypeController constructor. */ diff --git a/app/Api/V1/Controllers/Chart/AccountController.php b/app/Api/V1/Controllers/Chart/AccountController.php index 062748cfe5..4f7d27061e 100644 --- a/app/Api/V1/Controllers/Chart/AccountController.php +++ b/app/Api/V1/Controllers/Chart/AccountController.php @@ -45,7 +45,6 @@ class AccountController extends Controller private CurrencyRepositoryInterface $currencyRepository; private AccountRepositoryInterface $repository; - /** * AccountController constructor. * diff --git a/app/Api/V1/Controllers/Data/Export/ExportController.php b/app/Api/V1/Controllers/Data/Export/ExportController.php index 5851a4e34b..cac678dca6 100644 --- a/app/Api/V1/Controllers/Data/Export/ExportController.php +++ b/app/Api/V1/Controllers/Data/Export/ExportController.php @@ -1,4 +1,6 @@ returnExport('transactions'); } -} \ No newline at end of file +} diff --git a/app/Api/V1/Controllers/Insight/Expense/BillController.php b/app/Api/V1/Controllers/Insight/Expense/BillController.php index 2a6f398810..70c46525b6 100644 --- a/app/Api/V1/Controllers/Insight/Expense/BillController.php +++ b/app/Api/V1/Controllers/Insight/Expense/BillController.php @@ -1,4 +1,6 @@ json(array_values($response)); } -} \ No newline at end of file +} diff --git a/app/Api/V1/Controllers/Insight/Expense/BudgetController.php b/app/Api/V1/Controllers/Insight/Expense/BudgetController.php index 0d8431a60b..25c8357f06 100644 --- a/app/Api/V1/Controllers/Insight/Expense/BudgetController.php +++ b/app/Api/V1/Controllers/Insight/Expense/BudgetController.php @@ -19,8 +19,9 @@ * along with this program. If not, see . */ -namespace FireflyIII\Api\V1\Controllers\Insight\Expense; +declare(strict_types=1); +namespace FireflyIII\Api\V1\Controllers\Insight\Expense; use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Api\V1\Requests\Insight\GenericRequest; @@ -123,4 +124,4 @@ class BudgetController extends Controller } -} \ No newline at end of file +} diff --git a/app/Api/V1/Controllers/Insight/Expense/CategoryController.php b/app/Api/V1/Controllers/Insight/Expense/CategoryController.php index bea6b88901..c32e800655 100644 --- a/app/Api/V1/Controllers/Insight/Expense/CategoryController.php +++ b/app/Api/V1/Controllers/Insight/Expense/CategoryController.php @@ -1,9 +1,29 @@ . + */ + +declare(strict_types=1); namespace FireflyIII\Api\V1\Controllers\Insight\Expense; - use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Api\V1\Requests\Insight\GenericRequest; use FireflyIII\Models\Category; @@ -104,4 +124,4 @@ class CategoryController extends Controller return response()->json($result); } -} \ No newline at end of file +} diff --git a/app/Api/V1/Controllers/Insight/Expense/PeriodController.php b/app/Api/V1/Controllers/Insight/Expense/PeriodController.php index 0fd6da9c3a..ec06e0436b 100644 --- a/app/Api/V1/Controllers/Insight/Expense/PeriodController.php +++ b/app/Api/V1/Controllers/Insight/Expense/PeriodController.php @@ -19,8 +19,9 @@ * along with this program. If not, see . */ -namespace FireflyIII\Api\V1\Controllers\Insight\Expense; +declare(strict_types=1); +namespace FireflyIII\Api\V1\Controllers\Insight\Expense; use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Api\V1\Requests\Insight\GenericRequest; @@ -79,4 +80,4 @@ class PeriodController extends Controller return response()->json(array_values($response)); } -} \ No newline at end of file +} diff --git a/app/Api/V1/Controllers/Insight/Expense/TagController.php b/app/Api/V1/Controllers/Insight/Expense/TagController.php index 0894fd16c3..18ed980c44 100644 --- a/app/Api/V1/Controllers/Insight/Expense/TagController.php +++ b/app/Api/V1/Controllers/Insight/Expense/TagController.php @@ -1,4 +1,6 @@ json(array_values($response)); } -} \ No newline at end of file +} diff --git a/app/Api/V1/Controllers/Insight/Income/CategoryController.php b/app/Api/V1/Controllers/Insight/Income/CategoryController.php index 431233d0b7..8599ca28aa 100644 --- a/app/Api/V1/Controllers/Insight/Income/CategoryController.php +++ b/app/Api/V1/Controllers/Insight/Income/CategoryController.php @@ -1,9 +1,29 @@ . + */ + +declare(strict_types=1); namespace FireflyIII\Api\V1\Controllers\Insight\Income; - use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Api\V1\Requests\Insight\GenericRequest; use FireflyIII\Models\Category; @@ -105,4 +125,4 @@ class CategoryController extends Controller return response()->json($result); } -} \ No newline at end of file +} diff --git a/app/Api/V1/Controllers/Insight/Income/PeriodController.php b/app/Api/V1/Controllers/Insight/Income/PeriodController.php index f32bcc4fc8..f443cdc81d 100644 --- a/app/Api/V1/Controllers/Insight/Income/PeriodController.php +++ b/app/Api/V1/Controllers/Insight/Income/PeriodController.php @@ -19,8 +19,9 @@ * along with this program. If not, see . */ -namespace FireflyIII\Api\V1\Controllers\Insight\Income; +declare(strict_types=1); +namespace FireflyIII\Api\V1\Controllers\Insight\Income; use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Api\V1\Requests\Insight\GenericRequest; @@ -81,4 +82,4 @@ class PeriodController extends Controller return response()->json(array_values($response)); } -} \ No newline at end of file +} diff --git a/app/Api/V1/Controllers/Insight/Income/TagController.php b/app/Api/V1/Controllers/Insight/Income/TagController.php index af88ccfe3c..5eaa7f6c77 100644 --- a/app/Api/V1/Controllers/Insight/Income/TagController.php +++ b/app/Api/V1/Controllers/Insight/Income/TagController.php @@ -1,4 +1,6 @@ json(array_values($response)); } -} \ No newline at end of file +} diff --git a/app/Api/V1/Controllers/Insight/Transfer/AccountController.php b/app/Api/V1/Controllers/Insight/Transfer/AccountController.php index ad113a6325..62204e5e07 100644 --- a/app/Api/V1/Controllers/Insight/Transfer/AccountController.php +++ b/app/Api/V1/Controllers/Insight/Transfer/AccountController.php @@ -19,8 +19,9 @@ * along with this program. If not, see . */ -namespace FireflyIII\Api\V1\Controllers\Insight\Transfer; +declare(strict_types=1); +namespace FireflyIII\Api\V1\Controllers\Insight\Transfer; use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Api\V1\Requests\Insight\GenericRequest; @@ -82,4 +83,4 @@ class AccountController extends Controller return response()->json($result); } -} \ No newline at end of file +} diff --git a/app/Api/V1/Controllers/Insight/Transfer/CategoryController.php b/app/Api/V1/Controllers/Insight/Transfer/CategoryController.php index 3fea7cf04a..b575bbc93a 100644 --- a/app/Api/V1/Controllers/Insight/Transfer/CategoryController.php +++ b/app/Api/V1/Controllers/Insight/Transfer/CategoryController.php @@ -19,8 +19,9 @@ * along with this program. If not, see . */ -namespace FireflyIII\Api\V1\Controllers\Insight\Transfer; +declare(strict_types=1); +namespace FireflyIII\Api\V1\Controllers\Insight\Transfer; use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Api\V1\Requests\Insight\GenericRequest; @@ -122,4 +123,4 @@ class CategoryController extends Controller return response()->json($result); } -} \ No newline at end of file +} diff --git a/app/Api/V1/Controllers/Insight/Transfer/PeriodController.php b/app/Api/V1/Controllers/Insight/Transfer/PeriodController.php index 8be400b2d4..dfa12c7132 100644 --- a/app/Api/V1/Controllers/Insight/Transfer/PeriodController.php +++ b/app/Api/V1/Controllers/Insight/Transfer/PeriodController.php @@ -19,8 +19,9 @@ * along with this program. If not, see . */ -namespace FireflyIII\Api\V1\Controllers\Insight\Transfer; +declare(strict_types=1); +namespace FireflyIII\Api\V1\Controllers\Insight\Transfer; use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Api\V1\Requests\Insight\GenericRequest; @@ -81,4 +82,4 @@ class PeriodController extends Controller return response()->json(array_values($response)); } -} \ No newline at end of file +} diff --git a/app/Api/V1/Controllers/Insight/Transfer/TagController.php b/app/Api/V1/Controllers/Insight/Transfer/TagController.php index 51b949d651..cfadadd10b 100644 --- a/app/Api/V1/Controllers/Insight/Transfer/TagController.php +++ b/app/Api/V1/Controllers/Insight/Transfer/TagController.php @@ -19,8 +19,9 @@ * along with this program. If not, see . */ -namespace FireflyIII\Api\V1\Controllers\Insight\Transfer; +declare(strict_types=1); +namespace FireflyIII\Api\V1\Controllers\Insight\Transfer; use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Api\V1\Requests\Insight\GenericRequest; @@ -174,4 +175,4 @@ class TagController extends Controller return response()->json(array_values($response)); } -} \ No newline at end of file +} diff --git a/app/Api/V1/Controllers/Models/Account/ListController.php b/app/Api/V1/Controllers/Models/Account/ListController.php index 43d6343713..67764aafc3 100644 --- a/app/Api/V1/Controllers/Models/Account/ListController.php +++ b/app/Api/V1/Controllers/Models/Account/ListController.php @@ -133,7 +133,6 @@ class ListController extends Controller } - /** * Show all transaction groups related to the account. * diff --git a/app/Api/V1/Controllers/Models/Account/ShowController.php b/app/Api/V1/Controllers/Models/Account/ShowController.php index aa5dd3ccdc..2a96fc56dc 100644 --- a/app/Api/V1/Controllers/Models/Account/ShowController.php +++ b/app/Api/V1/Controllers/Models/Account/ShowController.php @@ -19,8 +19,9 @@ * along with this program. If not, see . */ -namespace FireflyIII\Api\V1\Controllers\Models\Account; +declare(strict_types=1); +namespace FireflyIII\Api\V1\Controllers\Models\Account; use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Models\Account; @@ -123,4 +124,4 @@ class ShowController extends Controller return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE); } -} \ No newline at end of file +} diff --git a/app/Api/V1/Controllers/Models/Account/StoreController.php b/app/Api/V1/Controllers/Models/Account/StoreController.php index 89254c6c1f..db5226a614 100644 --- a/app/Api/V1/Controllers/Models/Account/StoreController.php +++ b/app/Api/V1/Controllers/Models/Account/StoreController.php @@ -39,7 +39,6 @@ class StoreController extends Controller private AccountRepositoryInterface $repository; - /** * AccountController constructor. * diff --git a/app/Api/V1/Controllers/Models/Account/UpdateController.php b/app/Api/V1/Controllers/Models/Account/UpdateController.php index 665c10e7ca..1d53ee4cd1 100644 --- a/app/Api/V1/Controllers/Models/Account/UpdateController.php +++ b/app/Api/V1/Controllers/Models/Account/UpdateController.php @@ -41,7 +41,6 @@ class UpdateController extends Controller private AccountRepositoryInterface $repository; - /** * AccountController constructor. * diff --git a/app/Api/V1/Controllers/Models/Attachment/DestroyController.php b/app/Api/V1/Controllers/Models/Attachment/DestroyController.php index 977556ffcf..9e52a073ec 100644 --- a/app/Api/V1/Controllers/Models/Attachment/DestroyController.php +++ b/app/Api/V1/Controllers/Models/Attachment/DestroyController.php @@ -19,8 +19,9 @@ * along with this program. If not, see . */ -namespace FireflyIII\Api\V1\Controllers\Models\Attachment; +declare(strict_types=1); +namespace FireflyIII\Api\V1\Controllers\Models\Attachment; use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Api\V1\Middleware\ApiDemoUser; @@ -36,7 +37,6 @@ class DestroyController extends Controller { private AttachmentRepositoryInterface $repository; - /** * DestroyController constructor. * @@ -53,7 +53,6 @@ class DestroyController extends Controller $this->repository = app(AttachmentRepositoryInterface::class); $this->repository->setUser($user); - return $next($request); } ); @@ -74,4 +73,4 @@ class DestroyController extends Controller return response()->json([], 204); } -} \ No newline at end of file +} diff --git a/app/Api/V1/Controllers/Models/Attachment/ShowController.php b/app/Api/V1/Controllers/Models/Attachment/ShowController.php index 8047339f7c..574db4add7 100644 --- a/app/Api/V1/Controllers/Models/Attachment/ShowController.php +++ b/app/Api/V1/Controllers/Models/Attachment/ShowController.php @@ -19,8 +19,9 @@ * along with this program. If not, see . */ -namespace FireflyIII\Api\V1\Controllers\Models\Attachment; +declare(strict_types=1); +namespace FireflyIII\Api\V1\Controllers\Models\Attachment; use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Api\V1\Middleware\ApiDemoUser; @@ -43,7 +44,6 @@ class ShowController extends Controller { private AttachmentRepositoryInterface $repository; - /** * ShowController constructor. * @@ -60,7 +60,6 @@ class ShowController extends Controller $this->repository = app(AttachmentRepositoryInterface::class); $this->repository->setUser($user); - return $next($request); } ); @@ -140,7 +139,6 @@ class ShowController extends Controller return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE); } - /** * Display the specified resource. * @@ -159,4 +157,4 @@ class ShowController extends Controller return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE); } -} \ No newline at end of file +} diff --git a/app/Api/V1/Controllers/Models/Attachment/StoreController.php b/app/Api/V1/Controllers/Models/Attachment/StoreController.php index a6bc307bd1..eba7ead400 100644 --- a/app/Api/V1/Controllers/Models/Attachment/StoreController.php +++ b/app/Api/V1/Controllers/Models/Attachment/StoreController.php @@ -19,8 +19,9 @@ * along with this program. If not, see . */ -namespace FireflyIII\Api\V1\Controllers\Models\Attachment; +declare(strict_types=1); +namespace FireflyIII\Api\V1\Controllers\Models\Attachment; use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Api\V1\Middleware\ApiDemoUser; @@ -43,7 +44,6 @@ class StoreController extends Controller { private AttachmentRepositoryInterface $repository; - /** * StoreController constructor. * @@ -60,13 +60,11 @@ class StoreController extends Controller $this->repository = app(AttachmentRepositoryInterface::class); $this->repository->setUser($user); - return $next($request); } ); } - /** * Store a newly created resource in storage. * @@ -115,4 +113,4 @@ class StoreController extends Controller return response()->json([], 204); } -} \ No newline at end of file +} diff --git a/app/Api/V1/Controllers/Models/Attachment/UpdateController.php b/app/Api/V1/Controllers/Models/Attachment/UpdateController.php index fd2a8271b3..e560fbb084 100644 --- a/app/Api/V1/Controllers/Models/Attachment/UpdateController.php +++ b/app/Api/V1/Controllers/Models/Attachment/UpdateController.php @@ -19,8 +19,9 @@ * along with this program. If not, see . */ -namespace FireflyIII\Api\V1\Controllers\Models\Attachment; +declare(strict_types=1); +namespace FireflyIII\Api\V1\Controllers\Models\Attachment; use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Api\V1\Middleware\ApiDemoUser; @@ -39,7 +40,6 @@ class UpdateController extends Controller { private AttachmentRepositoryInterface $repository; - /** * UpdateController constructor. * @@ -56,13 +56,11 @@ class UpdateController extends Controller $this->repository = app(AttachmentRepositoryInterface::class); $this->repository->setUser($user); - return $next($request); } ); } - /** * Update the specified resource in storage. * @@ -85,4 +83,4 @@ class UpdateController extends Controller return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE); } -} \ No newline at end of file +} diff --git a/app/Api/V1/Controllers/Models/AvailableBudget/DestroyController.php b/app/Api/V1/Controllers/Models/AvailableBudget/DestroyController.php index 482ec355c1..27ca1d5608 100644 --- a/app/Api/V1/Controllers/Models/AvailableBudget/DestroyController.php +++ b/app/Api/V1/Controllers/Models/AvailableBudget/DestroyController.php @@ -19,8 +19,9 @@ * along with this program. If not, see . */ -namespace FireflyIII\Api\V1\Controllers\Models\AvailableBudget; +declare(strict_types=1); +namespace FireflyIII\Api\V1\Controllers\Models\AvailableBudget; use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Models\AvailableBudget; @@ -70,4 +71,4 @@ class DestroyController extends Controller return response()->json([], 204); } -} \ No newline at end of file +} diff --git a/app/Api/V1/Controllers/Models/AvailableBudget/ShowController.php b/app/Api/V1/Controllers/Models/AvailableBudget/ShowController.php index a767b144ac..d0df201bc4 100644 --- a/app/Api/V1/Controllers/Models/AvailableBudget/ShowController.php +++ b/app/Api/V1/Controllers/Models/AvailableBudget/ShowController.php @@ -19,8 +19,9 @@ * along with this program. If not, see . */ -namespace FireflyIII\Api\V1\Controllers\Models\AvailableBudget; +declare(strict_types=1); +namespace FireflyIII\Api\V1\Controllers\Models\AvailableBudget; use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Models\AvailableBudget; @@ -116,4 +117,4 @@ class ShowController extends Controller return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE); } -} \ No newline at end of file +} diff --git a/app/Api/V1/Controllers/Models/AvailableBudget/StoreController.php b/app/Api/V1/Controllers/Models/AvailableBudget/StoreController.php index 72f533a722..860688e55a 100644 --- a/app/Api/V1/Controllers/Models/AvailableBudget/StoreController.php +++ b/app/Api/V1/Controllers/Models/AvailableBudget/StoreController.php @@ -19,8 +19,9 @@ * along with this program. If not, see . */ -namespace FireflyIII\Api\V1\Controllers\Models\AvailableBudget; +declare(strict_types=1); +namespace FireflyIII\Api\V1\Controllers\Models\AvailableBudget; use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Api\V1\Requests\Models\AvailableBudget\Request; @@ -94,4 +95,4 @@ class StoreController extends Controller return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE); } -} \ No newline at end of file +} diff --git a/app/Api/V1/Controllers/Models/AvailableBudget/UpdateController.php b/app/Api/V1/Controllers/Models/AvailableBudget/UpdateController.php index 50c1d77e61..864c8d7840 100644 --- a/app/Api/V1/Controllers/Models/AvailableBudget/UpdateController.php +++ b/app/Api/V1/Controllers/Models/AvailableBudget/UpdateController.php @@ -19,8 +19,9 @@ * along with this program. If not, see . */ -namespace FireflyIII\Api\V1\Controllers\Models\AvailableBudget; +declare(strict_types=1); +namespace FireflyIII\Api\V1\Controllers\Models\AvailableBudget; use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Api\V1\Requests\Models\AvailableBudget\Request; @@ -93,4 +94,4 @@ class UpdateController extends Controller return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE); } -} \ No newline at end of file +} diff --git a/app/Api/V1/Controllers/Models/Bill/DestroyController.php b/app/Api/V1/Controllers/Models/Bill/DestroyController.php index 6e110e1249..06d40de10f 100644 --- a/app/Api/V1/Controllers/Models/Bill/DestroyController.php +++ b/app/Api/V1/Controllers/Models/Bill/DestroyController.php @@ -19,8 +19,9 @@ * along with this program. If not, see . */ -namespace FireflyIII\Api\V1\Controllers\Models\Bill; +declare(strict_types=1); +namespace FireflyIII\Api\V1\Controllers\Models\Bill; use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Models\Bill; @@ -57,7 +58,6 @@ class DestroyController extends Controller ); } - /** * Remove the specified resource from storage. * @@ -73,4 +73,4 @@ class DestroyController extends Controller return response()->json([], 204); } -} \ No newline at end of file +} diff --git a/app/Api/V1/Controllers/Models/Bill/ListController.php b/app/Api/V1/Controllers/Models/Bill/ListController.php index fef22d7896..ac8aa382c1 100644 --- a/app/Api/V1/Controllers/Models/Bill/ListController.php +++ b/app/Api/V1/Controllers/Models/Bill/ListController.php @@ -19,8 +19,9 @@ * along with this program. If not, see . */ -namespace FireflyIII\Api\V1\Controllers\Models\Bill; +declare(strict_types=1); +namespace FireflyIII\Api\V1\Controllers\Models\Bill; use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Helpers\Collector\GroupCollectorInterface; @@ -46,7 +47,6 @@ class ListController extends Controller private BillRepositoryInterface $repository; - /** * BillController constructor. * @@ -100,7 +100,6 @@ class ListController extends Controller return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE); } - /** * List all of them. * @@ -128,8 +127,6 @@ class ListController extends Controller /** @var RuleTransformer $transformer */ $transformer = app(RuleTransformer::class); $transformer->setParameters($this->parameters); - - $resource = new FractalCollection($rules, $transformer, 'rules'); $resource->setPaginator(new IlluminatePaginatorAdapter($paginator)); @@ -137,7 +134,6 @@ class ListController extends Controller } - /** * Show all transactions. * @@ -196,4 +192,4 @@ class ListController extends Controller return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE); } -} \ No newline at end of file +} diff --git a/app/Api/V1/Controllers/Models/Bill/ShowController.php b/app/Api/V1/Controllers/Models/Bill/ShowController.php index b80093d496..8ba46997b4 100644 --- a/app/Api/V1/Controllers/Models/Bill/ShowController.php +++ b/app/Api/V1/Controllers/Models/Bill/ShowController.php @@ -19,8 +19,9 @@ * along with this program. If not, see . */ -namespace FireflyIII\Api\V1\Controllers\Models\Bill; +declare(strict_types=1); +namespace FireflyIII\Api\V1\Controllers\Models\Bill; use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Models\Bill; @@ -107,4 +108,4 @@ class ShowController extends Controller return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE); } -} \ No newline at end of file +} diff --git a/app/Api/V1/Controllers/Models/Bill/StoreController.php b/app/Api/V1/Controllers/Models/Bill/StoreController.php index 7cb6c2847f..bffec9a225 100644 --- a/app/Api/V1/Controllers/Models/Bill/StoreController.php +++ b/app/Api/V1/Controllers/Models/Bill/StoreController.php @@ -19,8 +19,9 @@ * along with this program. If not, see . */ -namespace FireflyIII\Api\V1\Controllers\Models\Bill; +declare(strict_types=1); +namespace FireflyIII\Api\V1\Controllers\Models\Bill; use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Api\V1\Requests\Models\Bill\StoreRequest; @@ -41,7 +42,6 @@ class StoreController extends Controller private BillRepositoryInterface $repository; - /** * BillController constructor. * @@ -86,4 +86,4 @@ class StoreController extends Controller return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE); } -} \ No newline at end of file +} diff --git a/app/Api/V1/Controllers/Models/Bill/UpdateController.php b/app/Api/V1/Controllers/Models/Bill/UpdateController.php index 6a899b0bb3..cbdc6a69fd 100644 --- a/app/Api/V1/Controllers/Models/Bill/UpdateController.php +++ b/app/Api/V1/Controllers/Models/Bill/UpdateController.php @@ -19,8 +19,9 @@ * along with this program. If not, see . */ -namespace FireflyIII\Api\V1\Controllers\Models\Bill; +declare(strict_types=1); +namespace FireflyIII\Api\V1\Controllers\Models\Bill; use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Api\V1\Requests\Models\Bill\UpdateRequest; @@ -38,7 +39,6 @@ class UpdateController extends Controller { private BillRepositoryInterface $repository; - /** * BillController constructor. * @@ -85,4 +85,4 @@ class UpdateController extends Controller } -} \ No newline at end of file +} diff --git a/app/Api/V1/Controllers/Models/Budget/DestroyController.php b/app/Api/V1/Controllers/Models/Budget/DestroyController.php index 9afe473fd5..81b8012303 100644 --- a/app/Api/V1/Controllers/Models/Budget/DestroyController.php +++ b/app/Api/V1/Controllers/Models/Budget/DestroyController.php @@ -19,8 +19,9 @@ * along with this program. If not, see . */ -namespace FireflyIII\Api\V1\Controllers\Models\Budget; +declare(strict_types=1); +namespace FireflyIII\Api\V1\Controllers\Models\Budget; use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Models\Budget; @@ -66,4 +67,4 @@ class DestroyController extends Controller return response()->json([], 204); } -} \ No newline at end of file +} diff --git a/app/Api/V1/Controllers/Models/Budget/ListController.php b/app/Api/V1/Controllers/Models/Budget/ListController.php index 065b7597f5..c2ed25a28e 100644 --- a/app/Api/V1/Controllers/Models/Budget/ListController.php +++ b/app/Api/V1/Controllers/Models/Budget/ListController.php @@ -19,8 +19,9 @@ * along with this program. If not, see . */ -namespace FireflyIII\Api\V1\Controllers\Models\Budget; +declare(strict_types=1); +namespace FireflyIII\Api\V1\Controllers\Models\Budget; use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Helpers\Collector\GroupCollectorInterface; @@ -119,8 +120,6 @@ class ListController extends Controller /** @var BudgetLimitTransformer $transformer */ $transformer = app(BudgetLimitTransformer::class); $transformer->setParameters($this->parameters); - - $resource = new FractalCollection($budgetLimits, $transformer, 'budget_limits'); $resource->setPaginator(new IlluminatePaginatorAdapter($paginator)); @@ -183,12 +182,10 @@ class ListController extends Controller /** @var TransactionGroupTransformer $transformer */ $transformer = app(TransactionGroupTransformer::class); $transformer->setParameters($this->parameters); - - $resource = new FractalCollection($transactions, $transformer, 'transactions'); $resource->setPaginator(new IlluminatePaginatorAdapter($paginator)); return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE); } -} \ No newline at end of file +} diff --git a/app/Api/V1/Controllers/Models/Budget/ShowController.php b/app/Api/V1/Controllers/Models/Budget/ShowController.php index 424e7fee6e..997720f896 100644 --- a/app/Api/V1/Controllers/Models/Budget/ShowController.php +++ b/app/Api/V1/Controllers/Models/Budget/ShowController.php @@ -19,8 +19,9 @@ * along with this program. If not, see . */ -namespace FireflyIII\Api\V1\Controllers\Models\Budget; +declare(strict_types=1); +namespace FireflyIII\Api\V1\Controllers\Models\Budget; use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Models\Budget; @@ -114,4 +115,4 @@ class ShowController extends Controller return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE); } -} \ No newline at end of file +} diff --git a/app/Api/V1/Controllers/Models/Budget/StoreController.php b/app/Api/V1/Controllers/Models/Budget/StoreController.php index 8ce134b648..6ea43ad78c 100644 --- a/app/Api/V1/Controllers/Models/Budget/StoreController.php +++ b/app/Api/V1/Controllers/Models/Budget/StoreController.php @@ -19,8 +19,9 @@ * along with this program. If not, see . */ -namespace FireflyIII\Api\V1\Controllers\Models\Budget; +declare(strict_types=1); +namespace FireflyIII\Api\V1\Controllers\Models\Budget; use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Api\V1\Requests\Models\Budget\StoreRequest; @@ -37,7 +38,6 @@ class StoreController extends Controller { private BudgetRepositoryInterface $repository; - /** * StoreController constructor. * @@ -79,4 +79,4 @@ class StoreController extends Controller return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE); } -} \ No newline at end of file +} diff --git a/app/Api/V1/Controllers/Models/Budget/UpdateController.php b/app/Api/V1/Controllers/Models/Budget/UpdateController.php index 9afbf2aab4..94094a4f94 100644 --- a/app/Api/V1/Controllers/Models/Budget/UpdateController.php +++ b/app/Api/V1/Controllers/Models/Budget/UpdateController.php @@ -19,8 +19,9 @@ * along with this program. If not, see . */ -namespace FireflyIII\Api\V1\Controllers\Models\Budget; +declare(strict_types=1); +namespace FireflyIII\Api\V1\Controllers\Models\Budget; use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Api\V1\Requests\Models\Budget\UpdateRequest; @@ -78,4 +79,4 @@ class UpdateController extends Controller return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE); } -} \ No newline at end of file +} diff --git a/app/Api/V1/Controllers/Models/BudgetLimit/DestroyController.php b/app/Api/V1/Controllers/Models/BudgetLimit/DestroyController.php index df7de2dd16..91d4c2edb7 100644 --- a/app/Api/V1/Controllers/Models/BudgetLimit/DestroyController.php +++ b/app/Api/V1/Controllers/Models/BudgetLimit/DestroyController.php @@ -19,8 +19,9 @@ * along with this program. If not, see . */ -namespace FireflyIII\Api\V1\Controllers\Models\BudgetLimit; +declare(strict_types=1); +namespace FireflyIII\Api\V1\Controllers\Models\BudgetLimit; use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Exceptions\FireflyException; @@ -37,7 +38,6 @@ class DestroyController extends Controller { private BudgetLimitRepositoryInterface $blRepository; - /** * BudgetLimitController constructor. * @@ -76,4 +76,4 @@ class DestroyController extends Controller return response()->json([], 204); } -} \ No newline at end of file +} diff --git a/app/Api/V1/Controllers/Models/BudgetLimit/ListController.php b/app/Api/V1/Controllers/Models/BudgetLimit/ListController.php index 0b3e3faa5e..fc8c2e687d 100644 --- a/app/Api/V1/Controllers/Models/BudgetLimit/ListController.php +++ b/app/Api/V1/Controllers/Models/BudgetLimit/ListController.php @@ -19,8 +19,9 @@ * along with this program. If not, see . */ -namespace FireflyIII\Api\V1\Controllers\Models\BudgetLimit; +declare(strict_types=1); +namespace FireflyIII\Api\V1\Controllers\Models\BudgetLimit; use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Helpers\Collector\GroupCollectorInterface; @@ -44,7 +45,6 @@ class ListController extends Controller private BudgetLimitRepositoryInterface $blRepository; - /** * BudgetLimitController constructor. * @@ -65,7 +65,6 @@ class ListController extends Controller ); } - /** * Show all transactions. * @@ -119,4 +118,4 @@ class ListController extends Controller return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE); } -} \ No newline at end of file +} diff --git a/app/Api/V1/Controllers/Models/BudgetLimit/ShowController.php b/app/Api/V1/Controllers/Models/BudgetLimit/ShowController.php index 52b05b11af..dc70cb8132 100644 --- a/app/Api/V1/Controllers/Models/BudgetLimit/ShowController.php +++ b/app/Api/V1/Controllers/Models/BudgetLimit/ShowController.php @@ -19,6 +19,8 @@ * along with this program. If not, see . */ +declare(strict_types=1); + namespace FireflyIII\Api\V1\Controllers\Models\BudgetLimit; use FireflyIII\Api\V1\Controllers\Controller; @@ -149,4 +151,4 @@ class ShowController extends Controller return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE); } -} \ No newline at end of file +} diff --git a/app/Api/V1/Controllers/Models/BudgetLimit/StoreController.php b/app/Api/V1/Controllers/Models/BudgetLimit/StoreController.php index c623b0909e..33546f3f60 100644 --- a/app/Api/V1/Controllers/Models/BudgetLimit/StoreController.php +++ b/app/Api/V1/Controllers/Models/BudgetLimit/StoreController.php @@ -19,8 +19,9 @@ * along with this program. If not, see . */ -namespace FireflyIII\Api\V1\Controllers\Models\BudgetLimit; +declare(strict_types=1); +namespace FireflyIII\Api\V1\Controllers\Models\BudgetLimit; use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Api\V1\Requests\Models\BudgetLimit\StoreRequest; @@ -39,7 +40,6 @@ class StoreController extends Controller { private BudgetLimitRepositoryInterface $blRepository; - /** * BudgetLimitController constructor. * @@ -60,7 +60,6 @@ class StoreController extends Controller ); } - /** * Store a newly created resource in storage. * @@ -79,8 +78,6 @@ class StoreController extends Controller $budgetLimit = $this->blRepository->store($data); $manager = $this->getManager(); - - /** @var BudgetLimitTransformer $transformer */ $transformer = app(BudgetLimitTransformer::class); $transformer->setParameters($this->parameters); @@ -89,4 +86,4 @@ class StoreController extends Controller return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE); } -} \ No newline at end of file +} diff --git a/app/Api/V1/Controllers/Models/BudgetLimit/UpdateController.php b/app/Api/V1/Controllers/Models/BudgetLimit/UpdateController.php index 1930a955a7..009f9ceed0 100644 --- a/app/Api/V1/Controllers/Models/BudgetLimit/UpdateController.php +++ b/app/Api/V1/Controllers/Models/BudgetLimit/UpdateController.php @@ -19,8 +19,9 @@ * along with this program. If not, see . */ -namespace FireflyIII\Api\V1\Controllers\Models\BudgetLimit; +declare(strict_types=1); +namespace FireflyIII\Api\V1\Controllers\Models\BudgetLimit; use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Api\V1\Requests\Models\BudgetLimit\UpdateRequest; @@ -40,7 +41,6 @@ class UpdateController extends Controller { private BudgetLimitRepositoryInterface $blRepository; - /** * BudgetLimitController constructor. * @@ -90,4 +90,4 @@ class UpdateController extends Controller return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE); } -} \ No newline at end of file +} diff --git a/app/Api/V1/Controllers/Models/Category/DestroyController.php b/app/Api/V1/Controllers/Models/Category/DestroyController.php index 0a3dd9854e..62e74982fd 100644 --- a/app/Api/V1/Controllers/Models/Category/DestroyController.php +++ b/app/Api/V1/Controllers/Models/Category/DestroyController.php @@ -19,8 +19,9 @@ * along with this program. If not, see . */ -namespace FireflyIII\Api\V1\Controllers\Models\Category; +declare(strict_types=1); +namespace FireflyIII\Api\V1\Controllers\Models\Category; use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Models\Category; @@ -35,7 +36,6 @@ class DestroyController extends Controller { private CategoryRepositoryInterface $repository; - /** * CategoryController constructor. * @@ -72,6 +72,4 @@ class DestroyController extends Controller return response()->json([], 204); } - - -} \ No newline at end of file +} diff --git a/app/Api/V1/Controllers/Models/Category/ListController.php b/app/Api/V1/Controllers/Models/Category/ListController.php index 5f6559b588..bee9f4453e 100644 --- a/app/Api/V1/Controllers/Models/Category/ListController.php +++ b/app/Api/V1/Controllers/Models/Category/ListController.php @@ -19,8 +19,9 @@ * along with this program. If not, see . */ -namespace FireflyIII\Api\V1\Controllers\Models\Category; +declare(strict_types=1); +namespace FireflyIII\Api\V1\Controllers\Models\Category; use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Helpers\Collector\GroupCollectorInterface; @@ -67,7 +68,6 @@ class ListController extends Controller ); } - /** * @param Category $category * @@ -97,7 +97,6 @@ class ListController extends Controller return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE); } - /** * Show all transactions. * @@ -154,4 +153,4 @@ class ListController extends Controller return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE); } -} \ No newline at end of file +} diff --git a/app/Api/V1/Controllers/Models/Category/ShowController.php b/app/Api/V1/Controllers/Models/Category/ShowController.php index f33dc446dd..e7d30a53b3 100644 --- a/app/Api/V1/Controllers/Models/Category/ShowController.php +++ b/app/Api/V1/Controllers/Models/Category/ShowController.php @@ -19,8 +19,9 @@ * along with this program. If not, see . */ -namespace FireflyIII\Api\V1\Controllers\Models\Category; +declare(strict_types=1); +namespace FireflyIII\Api\V1\Controllers\Models\Category; use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Models\Category; @@ -62,7 +63,6 @@ class ShowController extends Controller ); } - /** * Display a listing of the resource. * @@ -88,8 +88,6 @@ class ShowController extends Controller /** @var CategoryTransformer $transformer */ $transformer = app(CategoryTransformer::class); $transformer->setParameters($this->parameters); - - $resource = new FractalCollection($categories, $transformer, 'categories'); $resource->setPaginator(new IlluminatePaginatorAdapter($paginator)); @@ -116,4 +114,4 @@ class ShowController extends Controller return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE); } -} \ No newline at end of file +} diff --git a/app/Api/V1/Controllers/Models/Category/StoreController.php b/app/Api/V1/Controllers/Models/Category/StoreController.php index 3829646f39..d733697364 100644 --- a/app/Api/V1/Controllers/Models/Category/StoreController.php +++ b/app/Api/V1/Controllers/Models/Category/StoreController.php @@ -19,8 +19,9 @@ * along with this program. If not, see . */ -namespace FireflyIII\Api\V1\Controllers\Models\Category; +declare(strict_types=1); +namespace FireflyIII\Api\V1\Controllers\Models\Category; use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Api\V1\Requests\Models\Category\StoreRequest; @@ -38,7 +39,6 @@ class StoreController extends Controller { private CategoryRepositoryInterface $repository; - /** * CategoryController constructor. * @@ -83,4 +83,4 @@ class StoreController extends Controller return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE); } -} \ No newline at end of file +} diff --git a/app/Api/V1/Controllers/Models/Category/UpdateController.php b/app/Api/V1/Controllers/Models/Category/UpdateController.php index 05cd41adf1..f05625dcdc 100644 --- a/app/Api/V1/Controllers/Models/Category/UpdateController.php +++ b/app/Api/V1/Controllers/Models/Category/UpdateController.php @@ -19,8 +19,9 @@ * along with this program. If not, see . */ -namespace FireflyIII\Api\V1\Controllers\Models\Category; +declare(strict_types=1); +namespace FireflyIII\Api\V1\Controllers\Models\Category; use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Api\V1\Requests\Models\Category\UpdateRequest; @@ -83,4 +84,4 @@ class UpdateController extends Controller return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE); } -} \ No newline at end of file +} diff --git a/app/Api/V1/Controllers/Models/ObjectGroup/DestroyController.php b/app/Api/V1/Controllers/Models/ObjectGroup/DestroyController.php index 180c4127e3..fa580b6ffc 100644 --- a/app/Api/V1/Controllers/Models/ObjectGroup/DestroyController.php +++ b/app/Api/V1/Controllers/Models/ObjectGroup/DestroyController.php @@ -19,8 +19,9 @@ * along with this program. If not, see . */ -namespace FireflyIII\Api\V1\Controllers\Models\ObjectGroup; +declare(strict_types=1); +namespace FireflyIII\Api\V1\Controllers\Models\ObjectGroup; use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Models\ObjectGroup; @@ -35,7 +36,6 @@ class DestroyController extends Controller { private ObjectGroupRepositoryInterface $repository; - /** * ObjectGroupController constructor. * @@ -70,4 +70,4 @@ class DestroyController extends Controller return response()->json([], 204); } -} \ No newline at end of file +} diff --git a/app/Api/V1/Controllers/Models/ObjectGroup/ListController.php b/app/Api/V1/Controllers/Models/ObjectGroup/ListController.php index 9a2375ffde..e37d4190ee 100644 --- a/app/Api/V1/Controllers/Models/ObjectGroup/ListController.php +++ b/app/Api/V1/Controllers/Models/ObjectGroup/ListController.php @@ -19,8 +19,9 @@ * along with this program. If not, see . */ -namespace FireflyIII\Api\V1\Controllers\Models\ObjectGroup; +declare(strict_types=1); +namespace FireflyIII\Api\V1\Controllers\Models\ObjectGroup; use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Models\ObjectGroup; @@ -40,7 +41,6 @@ class ListController extends Controller { private ObjectGroupRepositoryInterface $repository; - /** * ObjectGroupController constructor. * @@ -128,4 +128,4 @@ class ListController extends Controller return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE); } -} \ No newline at end of file +} diff --git a/app/Api/V1/Controllers/Models/ObjectGroup/ShowController.php b/app/Api/V1/Controllers/Models/ObjectGroup/ShowController.php index 267c18d8fc..00a4281cf1 100644 --- a/app/Api/V1/Controllers/Models/ObjectGroup/ShowController.php +++ b/app/Api/V1/Controllers/Models/ObjectGroup/ShowController.php @@ -19,8 +19,9 @@ * along with this program. If not, see . */ -namespace FireflyIII\Api\V1\Controllers\Models\ObjectGroup; +declare(strict_types=1); +namespace FireflyIII\Api\V1\Controllers\Models\ObjectGroup; use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Models\ObjectGroup; @@ -41,7 +42,6 @@ class ShowController extends Controller { private ObjectGroupRepositoryInterface $repository; - /** * ObjectGroupController constructor. * @@ -62,7 +62,6 @@ class ShowController extends Controller ); } - /** * Display a listing of the resource. * @@ -97,7 +96,6 @@ class ShowController extends Controller return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE); } - /** * Show single instance. * @@ -118,6 +116,4 @@ class ShowController extends Controller return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE); } - - -} \ No newline at end of file +} diff --git a/app/Api/V1/Controllers/Models/ObjectGroup/UpdateController.php b/app/Api/V1/Controllers/Models/ObjectGroup/UpdateController.php index 87842525d8..85b5e89e96 100644 --- a/app/Api/V1/Controllers/Models/ObjectGroup/UpdateController.php +++ b/app/Api/V1/Controllers/Models/ObjectGroup/UpdateController.php @@ -19,8 +19,9 @@ * along with this program. If not, see . */ -namespace FireflyIII\Api\V1\Controllers\Models\ObjectGroup; +declare(strict_types=1); +namespace FireflyIII\Api\V1\Controllers\Models\ObjectGroup; use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Api\V1\Requests\Models\ObjectGroup\UpdateRequest; @@ -38,7 +39,6 @@ class UpdateController extends Controller { private ObjectGroupRepositoryInterface $repository; - /** * ObjectGroupController constructor. * @@ -59,7 +59,6 @@ class UpdateController extends Controller ); } - /** * @param UpdateRequest $request * @param ObjectGroup $objectGroup @@ -80,4 +79,4 @@ class UpdateController extends Controller return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE); } -} \ No newline at end of file +} diff --git a/app/Api/V1/Controllers/Models/PiggyBank/DestroyController.php b/app/Api/V1/Controllers/Models/PiggyBank/DestroyController.php index 99fdc7c03e..0f85923d97 100644 --- a/app/Api/V1/Controllers/Models/PiggyBank/DestroyController.php +++ b/app/Api/V1/Controllers/Models/PiggyBank/DestroyController.php @@ -19,8 +19,9 @@ * along with this program. If not, see . */ -namespace FireflyIII\Api\V1\Controllers\Models\PiggyBank; +declare(strict_types=1); +namespace FireflyIII\Api\V1\Controllers\Models\PiggyBank; use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Models\PiggyBank; @@ -47,7 +48,6 @@ class DestroyController extends Controller $this->repository = app(PiggyBankRepositoryInterface::class); $this->repository->setUser(auth()->user()); - return $next($request); } ); @@ -67,4 +67,4 @@ class DestroyController extends Controller return response()->json([], 204); } -} \ No newline at end of file +} diff --git a/app/Api/V1/Controllers/Models/PiggyBank/ListController.php b/app/Api/V1/Controllers/Models/PiggyBank/ListController.php index 33ae7728f3..3992330a63 100644 --- a/app/Api/V1/Controllers/Models/PiggyBank/ListController.php +++ b/app/Api/V1/Controllers/Models/PiggyBank/ListController.php @@ -19,8 +19,9 @@ * along with this program. If not, see . */ -namespace FireflyIII\Api\V1\Controllers\Models\PiggyBank; +declare(strict_types=1); +namespace FireflyIII\Api\V1\Controllers\Models\PiggyBank; use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Models\PiggyBank; @@ -52,7 +53,6 @@ class ListController extends Controller $this->repository = app(PiggyBankRepositoryInterface::class); $this->repository->setUser(auth()->user()); - return $next($request); } ); @@ -119,4 +119,4 @@ class ListController extends Controller return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE); } -} \ No newline at end of file +} diff --git a/app/Api/V1/Controllers/Models/PiggyBank/ShowController.php b/app/Api/V1/Controllers/Models/PiggyBank/ShowController.php index fa9dce1248..27ae137981 100644 --- a/app/Api/V1/Controllers/Models/PiggyBank/ShowController.php +++ b/app/Api/V1/Controllers/Models/PiggyBank/ShowController.php @@ -19,8 +19,9 @@ * along with this program. If not, see . */ -namespace FireflyIII\Api\V1\Controllers\Models\PiggyBank; +declare(strict_types=1); +namespace FireflyIII\Api\V1\Controllers\Models\PiggyBank; use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Models\PiggyBank; @@ -52,7 +53,6 @@ class ShowController extends Controller $this->repository = app(PiggyBankRepositoryInterface::class); $this->repository->setUser(auth()->user()); - return $next($request); } ); @@ -111,4 +111,4 @@ class ShowController extends Controller return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE); } -} \ No newline at end of file +} diff --git a/app/Api/V1/Controllers/Models/PiggyBank/StoreController.php b/app/Api/V1/Controllers/Models/PiggyBank/StoreController.php index f0517961c4..0f4e7a01f1 100644 --- a/app/Api/V1/Controllers/Models/PiggyBank/StoreController.php +++ b/app/Api/V1/Controllers/Models/PiggyBank/StoreController.php @@ -19,8 +19,9 @@ * along with this program. If not, see . */ -namespace FireflyIII\Api\V1\Controllers\Models\PiggyBank; +declare(strict_types=1); +namespace FireflyIII\Api\V1\Controllers\Models\PiggyBank; use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Api\V1\Requests\Models\PiggyBank\StoreRequest; @@ -50,7 +51,6 @@ class StoreController extends Controller $this->repository = app(PiggyBankRepositoryInterface::class); $this->repository->setUser(auth()->user()); - return $next($request); } ); @@ -77,4 +77,4 @@ class StoreController extends Controller return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE); } -} \ No newline at end of file +} diff --git a/app/Api/V1/Controllers/Models/PiggyBank/UpdateController.php b/app/Api/V1/Controllers/Models/PiggyBank/UpdateController.php index 6a756c6b30..b7afab8caa 100644 --- a/app/Api/V1/Controllers/Models/PiggyBank/UpdateController.php +++ b/app/Api/V1/Controllers/Models/PiggyBank/UpdateController.php @@ -19,8 +19,9 @@ * along with this program. If not, see . */ -namespace FireflyIII\Api\V1\Controllers\Models\PiggyBank; +declare(strict_types=1); +namespace FireflyIII\Api\V1\Controllers\Models\PiggyBank; use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Api\V1\Requests\Models\PiggyBank\UpdateRequest; @@ -50,7 +51,6 @@ class UpdateController extends Controller $this->repository = app(PiggyBankRepositoryInterface::class); $this->repository->setUser(auth()->user()); - return $next($request); } ); @@ -83,4 +83,4 @@ class UpdateController extends Controller return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE); } -} \ No newline at end of file +} diff --git a/app/Api/V1/Controllers/Models/Recurrence/DestroyController.php b/app/Api/V1/Controllers/Models/Recurrence/DestroyController.php index 573c996762..7e63348ec5 100644 --- a/app/Api/V1/Controllers/Models/Recurrence/DestroyController.php +++ b/app/Api/V1/Controllers/Models/Recurrence/DestroyController.php @@ -19,8 +19,9 @@ * along with this program. If not, see . */ -namespace FireflyIII\Api\V1\Controllers\Models\Recurrence; +declare(strict_types=1); +namespace FireflyIII\Api\V1\Controllers\Models\Recurrence; use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Models\Recurrence; @@ -57,7 +58,6 @@ class DestroyController extends Controller ); } - /** * Delete the resource. * @@ -72,4 +72,4 @@ class DestroyController extends Controller return response()->json([], 204); } -} \ No newline at end of file +} diff --git a/app/Api/V1/Controllers/Models/Recurrence/ListController.php b/app/Api/V1/Controllers/Models/Recurrence/ListController.php index b84b2ae63e..a493df5377 100644 --- a/app/Api/V1/Controllers/Models/Recurrence/ListController.php +++ b/app/Api/V1/Controllers/Models/Recurrence/ListController.php @@ -19,8 +19,9 @@ * along with this program. If not, see . */ -namespace FireflyIII\Api\V1\Controllers\Models\Recurrence; +declare(strict_types=1); +namespace FireflyIII\Api\V1\Controllers\Models\Recurrence; use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Helpers\Collector\GroupCollectorInterface; @@ -120,4 +121,4 @@ class ListController extends Controller return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE); } -} \ No newline at end of file +} diff --git a/app/Api/V1/Controllers/Models/Recurrence/ShowController.php b/app/Api/V1/Controllers/Models/Recurrence/ShowController.php index f776df6626..bfa6bbcd58 100644 --- a/app/Api/V1/Controllers/Models/Recurrence/ShowController.php +++ b/app/Api/V1/Controllers/Models/Recurrence/ShowController.php @@ -19,8 +19,9 @@ * along with this program. If not, see . */ -namespace FireflyIII\Api\V1\Controllers\Models\Recurrence; +declare(strict_types=1); +namespace FireflyIII\Api\V1\Controllers\Models\Recurrence; use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Models\Recurrence; @@ -114,7 +115,5 @@ class ShowController extends Controller $resource = new Item($recurrence, $transformer, 'recurrences'); return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE); - - } -} \ No newline at end of file +} diff --git a/app/Api/V1/Controllers/Models/Recurrence/StoreController.php b/app/Api/V1/Controllers/Models/Recurrence/StoreController.php index af84688bf8..8b0a7c2275 100644 --- a/app/Api/V1/Controllers/Models/Recurrence/StoreController.php +++ b/app/Api/V1/Controllers/Models/Recurrence/StoreController.php @@ -19,8 +19,9 @@ * along with this program. If not, see . */ -namespace FireflyIII\Api\V1\Controllers\Models\Recurrence; +declare(strict_types=1); +namespace FireflyIII\Api\V1\Controllers\Models\Recurrence; use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Api\V1\Requests\Models\Recurrence\StoreRequest; @@ -82,4 +83,4 @@ class StoreController extends Controller return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE); } -} \ No newline at end of file +} diff --git a/app/Api/V1/Controllers/Models/Recurrence/TriggerController.php b/app/Api/V1/Controllers/Models/Recurrence/TriggerController.php index 7735076232..0848c80b19 100644 --- a/app/Api/V1/Controllers/Models/Recurrence/TriggerController.php +++ b/app/Api/V1/Controllers/Models/Recurrence/TriggerController.php @@ -19,8 +19,9 @@ * along with this program. If not, see . */ -namespace FireflyIII\Api\V1\Controllers\Models\Recurrence; +declare(strict_types=1); +namespace FireflyIII\Api\V1\Controllers\Models\Recurrence; use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Exceptions\FireflyException; @@ -59,7 +60,6 @@ class TriggerController extends Controller ); } - /** * @return JsonResponse * @throws FireflyException @@ -83,4 +83,4 @@ class TriggerController extends Controller return response()->json(); } -} \ No newline at end of file +} diff --git a/app/Api/V1/Controllers/Models/Recurrence/UpdateController.php b/app/Api/V1/Controllers/Models/Recurrence/UpdateController.php index 8065bdf2c1..7d4c4646bb 100644 --- a/app/Api/V1/Controllers/Models/Recurrence/UpdateController.php +++ b/app/Api/V1/Controllers/Models/Recurrence/UpdateController.php @@ -19,8 +19,9 @@ * along with this program. If not, see . */ -namespace FireflyIII\Api\V1\Controllers\Models\Recurrence; +declare(strict_types=1); +namespace FireflyIII\Api\V1\Controllers\Models\Recurrence; use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Api\V1\Requests\Models\Recurrence\UpdateRequest; @@ -60,7 +61,6 @@ class UpdateController extends Controller ); } - /** * Update single recurrence. * @@ -84,4 +84,4 @@ class UpdateController extends Controller return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE); } -} \ No newline at end of file +} diff --git a/app/Api/V1/Controllers/Models/Rule/DestroyController.php b/app/Api/V1/Controllers/Models/Rule/DestroyController.php index 5238a31249..97b3313b3d 100644 --- a/app/Api/V1/Controllers/Models/Rule/DestroyController.php +++ b/app/Api/V1/Controllers/Models/Rule/DestroyController.php @@ -19,8 +19,9 @@ * along with this program. If not, see . */ -namespace FireflyIII\Api\V1\Controllers\Models\Rule; +declare(strict_types=1); +namespace FireflyIII\Api\V1\Controllers\Models\Rule; use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Models\Rule; @@ -70,4 +71,4 @@ class DestroyController extends Controller return response()->json([], 204); } -} \ No newline at end of file +} diff --git a/app/Api/V1/Controllers/Models/Rule/ListController.php b/app/Api/V1/Controllers/Models/Rule/ListController.php index 3f52273e79..bf7c95c283 100644 --- a/app/Api/V1/Controllers/Models/Rule/ListController.php +++ b/app/Api/V1/Controllers/Models/Rule/ListController.php @@ -19,8 +19,9 @@ * along with this program. If not, see . */ -namespace FireflyIII\Api\V1\Controllers\Models\Rule; +declare(strict_types=1); +namespace FireflyIII\Api\V1\Controllers\Models\Rule; use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Repositories\Account\AccountRepositoryInterface; @@ -35,7 +36,6 @@ class ListController extends Controller private AccountRepositoryInterface $accountRepository; private RuleRepositoryInterface $ruleRepository; - /** * RuleController constructor. * @@ -59,4 +59,4 @@ class ListController extends Controller } ); } -} \ No newline at end of file +} diff --git a/app/Api/V1/Controllers/Models/Rule/ShowController.php b/app/Api/V1/Controllers/Models/Rule/ShowController.php index 8ab227136c..c4f33bcb8f 100644 --- a/app/Api/V1/Controllers/Models/Rule/ShowController.php +++ b/app/Api/V1/Controllers/Models/Rule/ShowController.php @@ -19,8 +19,9 @@ * along with this program. If not, see . */ -namespace FireflyIII\Api\V1\Controllers\Models\Rule; +declare(strict_types=1); +namespace FireflyIII\Api\V1\Controllers\Models\Rule; use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Models\Rule; @@ -61,7 +62,6 @@ class ShowController extends Controller ); } - /** * List all of them. * @@ -95,7 +95,6 @@ class ShowController extends Controller } - /** * List single resource. * @@ -116,4 +115,4 @@ class ShowController extends Controller return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE); } -} \ No newline at end of file +} diff --git a/app/Api/V1/Controllers/Models/Rule/StoreController.php b/app/Api/V1/Controllers/Models/Rule/StoreController.php index b3f54c542f..5f46fd8d90 100644 --- a/app/Api/V1/Controllers/Models/Rule/StoreController.php +++ b/app/Api/V1/Controllers/Models/Rule/StoreController.php @@ -19,8 +19,9 @@ * along with this program. If not, see . */ -namespace FireflyIII\Api\V1\Controllers\Models\Rule; +declare(strict_types=1); +namespace FireflyIII\Api\V1\Controllers\Models\Rule; use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Api\V1\Requests\Models\Rule\StoreRequest; @@ -77,4 +78,4 @@ class StoreController extends Controller return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE); } -} \ No newline at end of file +} diff --git a/app/Api/V1/Controllers/Models/Rule/TriggerController.php b/app/Api/V1/Controllers/Models/Rule/TriggerController.php index 32d5c76b8d..dd7b818fa1 100644 --- a/app/Api/V1/Controllers/Models/Rule/TriggerController.php +++ b/app/Api/V1/Controllers/Models/Rule/TriggerController.php @@ -19,8 +19,9 @@ * along with this program. If not, see . */ -namespace FireflyIII\Api\V1\Controllers\Models\Rule; +declare(strict_types=1); +namespace FireflyIII\Api\V1\Controllers\Models\Rule; use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Api\V1\Requests\Models\Rule\TestRequest; @@ -43,7 +44,6 @@ class TriggerController extends Controller { private RuleRepositoryInterface $ruleRepository; - /** * RuleController constructor. * @@ -112,7 +112,6 @@ class TriggerController extends Controller return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE); } - /** * Execute the given rule group on a set of existing transactions. * @@ -149,4 +148,4 @@ class TriggerController extends Controller return response()->json([], 204); } -} \ No newline at end of file +} diff --git a/app/Api/V1/Controllers/Models/Rule/UpdateController.php b/app/Api/V1/Controllers/Models/Rule/UpdateController.php index 6488aee87c..174226934d 100644 --- a/app/Api/V1/Controllers/Models/Rule/UpdateController.php +++ b/app/Api/V1/Controllers/Models/Rule/UpdateController.php @@ -19,8 +19,9 @@ * along with this program. If not, see . */ -namespace FireflyIII\Api\V1\Controllers\Models\Rule; +declare(strict_types=1); +namespace FireflyIII\Api\V1\Controllers\Models\Rule; use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Api\V1\Requests\Models\Rule\UpdateRequest; @@ -38,7 +39,6 @@ class UpdateController extends Controller { private RuleRepositoryInterface $ruleRepository; - /** * RuleController constructor. * @@ -60,7 +60,6 @@ class UpdateController extends Controller ); } - /** * Update a rule. * @@ -83,4 +82,4 @@ class UpdateController extends Controller return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE); } -} \ No newline at end of file +} diff --git a/app/Api/V1/Controllers/Models/RuleGroup/DestroyController.php b/app/Api/V1/Controllers/Models/RuleGroup/DestroyController.php index 64d09952a5..037ba21be3 100644 --- a/app/Api/V1/Controllers/Models/RuleGroup/DestroyController.php +++ b/app/Api/V1/Controllers/Models/RuleGroup/DestroyController.php @@ -19,8 +19,9 @@ * along with this program. If not, see . */ -namespace FireflyIII\Api\V1\Controllers\Models\RuleGroup; +declare(strict_types=1); +namespace FireflyIII\Api\V1\Controllers\Models\RuleGroup; use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Models\RuleGroup; @@ -70,4 +71,4 @@ class DestroyController extends Controller return response()->json([], 204); } -} \ No newline at end of file +} diff --git a/app/Api/V1/Controllers/Models/RuleGroup/ListController.php b/app/Api/V1/Controllers/Models/RuleGroup/ListController.php index 2d8c5c712d..04392f2f1c 100644 --- a/app/Api/V1/Controllers/Models/RuleGroup/ListController.php +++ b/app/Api/V1/Controllers/Models/RuleGroup/ListController.php @@ -19,8 +19,9 @@ * along with this program. If not, see . */ -namespace FireflyIII\Api\V1\Controllers\Models\RuleGroup; +declare(strict_types=1); +namespace FireflyIII\Api\V1\Controllers\Models\RuleGroup; use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Models\RuleGroup; @@ -39,7 +40,6 @@ class ListController extends Controller { private RuleGroupRepositoryInterface $ruleGroupRepository; - /** * RuleGroupController constructor. * @@ -61,7 +61,6 @@ class ListController extends Controller ); } - /** * @param RuleGroup $group * @@ -93,4 +92,4 @@ class ListController extends Controller return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE); } -} \ No newline at end of file +} diff --git a/app/Api/V1/Controllers/Models/RuleGroup/ShowController.php b/app/Api/V1/Controllers/Models/RuleGroup/ShowController.php index 40ae267b43..7a9f08eedc 100644 --- a/app/Api/V1/Controllers/Models/RuleGroup/ShowController.php +++ b/app/Api/V1/Controllers/Models/RuleGroup/ShowController.php @@ -19,8 +19,9 @@ * along with this program. If not, see . */ -namespace FireflyIII\Api\V1\Controllers\Models\RuleGroup; +declare(strict_types=1); +namespace FireflyIII\Api\V1\Controllers\Models\RuleGroup; use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Models\RuleGroup; @@ -40,7 +41,6 @@ class ShowController extends Controller { private RuleGroupRepositoryInterface $ruleGroupRepository; - /** * RuleGroupController constructor. * @@ -62,7 +62,6 @@ class ShowController extends Controller ); } - /** * List all of them. * @@ -94,7 +93,6 @@ class ShowController extends Controller return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE); } - /** * List single resource. * @@ -116,4 +114,4 @@ class ShowController extends Controller } -} \ No newline at end of file +} diff --git a/app/Api/V1/Controllers/Models/RuleGroup/StoreController.php b/app/Api/V1/Controllers/Models/RuleGroup/StoreController.php index 61c5f3ea77..56ce1cdaf8 100644 --- a/app/Api/V1/Controllers/Models/RuleGroup/StoreController.php +++ b/app/Api/V1/Controllers/Models/RuleGroup/StoreController.php @@ -19,8 +19,9 @@ * along with this program. If not, see . */ -namespace FireflyIII\Api\V1\Controllers\Models\RuleGroup; +declare(strict_types=1); +namespace FireflyIII\Api\V1\Controllers\Models\RuleGroup; use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Api\V1\Requests\Models\RuleGroup\StoreRequest; @@ -40,7 +41,6 @@ class StoreController extends Controller private AccountRepositoryInterface $accountRepository; private RuleGroupRepositoryInterface $ruleGroupRepository; - /** * RuleGroupController constructor. * @@ -65,7 +65,6 @@ class StoreController extends Controller ); } - /** * Store new object. * @@ -87,4 +86,4 @@ class StoreController extends Controller return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE); } -} \ No newline at end of file +} diff --git a/app/Api/V1/Controllers/Models/RuleGroup/TriggerController.php b/app/Api/V1/Controllers/Models/RuleGroup/TriggerController.php index 7a7e4fec6b..fd79c5d4ed 100644 --- a/app/Api/V1/Controllers/Models/RuleGroup/TriggerController.php +++ b/app/Api/V1/Controllers/Models/RuleGroup/TriggerController.php @@ -19,8 +19,9 @@ * along with this program. If not, see . */ -namespace FireflyIII\Api\V1\Controllers\Models\RuleGroup; +declare(strict_types=1); +namespace FireflyIII\Api\V1\Controllers\Models\RuleGroup; use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Api\V1\Requests\Models\RuleGroup\TestRequest; @@ -44,7 +45,6 @@ class TriggerController extends Controller { private RuleGroupRepositoryInterface $ruleGroupRepository; - /** * RuleGroupController constructor. * @@ -66,7 +66,6 @@ class TriggerController extends Controller ); } - /** * @param TestRequest $request * @param RuleGroup $group @@ -121,7 +120,6 @@ class TriggerController extends Controller return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE); } - /** * Execute the given rule group on a set of existing transactions. * @@ -166,4 +164,4 @@ class TriggerController extends Controller return response()->json([], 204); } -} \ No newline at end of file +} diff --git a/app/Api/V1/Controllers/Models/RuleGroup/UpdateController.php b/app/Api/V1/Controllers/Models/RuleGroup/UpdateController.php index 98ee2ef161..840c1f43e4 100644 --- a/app/Api/V1/Controllers/Models/RuleGroup/UpdateController.php +++ b/app/Api/V1/Controllers/Models/RuleGroup/UpdateController.php @@ -19,8 +19,9 @@ * along with this program. If not, see . */ -namespace FireflyIII\Api\V1\Controllers\Models\RuleGroup; +declare(strict_types=1); +namespace FireflyIII\Api\V1\Controllers\Models\RuleGroup; use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Api\V1\Requests\Models\RuleGroup\UpdateRequest; @@ -39,7 +40,6 @@ class UpdateController extends Controller private RuleGroupRepositoryInterface $ruleGroupRepository; - /** * RuleGroupController constructor. * @@ -61,7 +61,6 @@ class UpdateController extends Controller ); } - /** * Update a rule group. * @@ -83,4 +82,4 @@ class UpdateController extends Controller return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE); } -} \ No newline at end of file +} diff --git a/app/Api/V1/Controllers/Models/Tag/DestroyController.php b/app/Api/V1/Controllers/Models/Tag/DestroyController.php index d8b9a7d4f8..dd7a5f8068 100644 --- a/app/Api/V1/Controllers/Models/Tag/DestroyController.php +++ b/app/Api/V1/Controllers/Models/Tag/DestroyController.php @@ -19,8 +19,9 @@ * along with this program. If not, see . */ -namespace FireflyIII\Api\V1\Controllers\Models\Tag; +declare(strict_types=1); +namespace FireflyIII\Api\V1\Controllers\Models\Tag; use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Models\Tag; @@ -35,7 +36,6 @@ class DestroyController extends Controller { private TagRepositoryInterface $repository; - /** * TagController constructor. * @@ -57,7 +57,6 @@ class DestroyController extends Controller ); } - /** * Delete the resource. * @@ -72,4 +71,4 @@ class DestroyController extends Controller return response()->json([], 204); } -} \ No newline at end of file +} diff --git a/app/Api/V1/Controllers/Models/Tag/ListController.php b/app/Api/V1/Controllers/Models/Tag/ListController.php index 82d41d8f64..ea39eb52a9 100644 --- a/app/Api/V1/Controllers/Models/Tag/ListController.php +++ b/app/Api/V1/Controllers/Models/Tag/ListController.php @@ -19,8 +19,9 @@ * along with this program. If not, see . */ -namespace FireflyIII\Api\V1\Controllers\Models\Tag; +declare(strict_types=1); +namespace FireflyIII\Api\V1\Controllers\Models\Tag; use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Helpers\Collector\GroupCollectorInterface; @@ -45,7 +46,6 @@ class ListController extends Controller private TagRepositoryInterface $repository; - /** * TagController constructor. * @@ -67,7 +67,6 @@ class ListController extends Controller ); } - /** * @param Tag $tag * @@ -97,7 +96,6 @@ class ListController extends Controller return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE); } - /** * Show all transactions. * @@ -150,4 +148,4 @@ class ListController extends Controller return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE); } -} \ No newline at end of file +} diff --git a/app/Api/V1/Controllers/Models/Tag/ShowController.php b/app/Api/V1/Controllers/Models/Tag/ShowController.php index c834493adf..e2b8a3d036 100644 --- a/app/Api/V1/Controllers/Models/Tag/ShowController.php +++ b/app/Api/V1/Controllers/Models/Tag/ShowController.php @@ -19,8 +19,9 @@ * along with this program. If not, see . */ -namespace FireflyIII\Api\V1\Controllers\Models\Tag; +declare(strict_types=1); +namespace FireflyIII\Api\V1\Controllers\Models\Tag; use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Models\Tag; @@ -40,7 +41,6 @@ class ShowController extends Controller { private TagRepositoryInterface $repository; - /** * TagController constructor. * @@ -93,7 +93,6 @@ class ShowController extends Controller return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE); } - /** * List single resource. * @@ -114,4 +113,4 @@ class ShowController extends Controller return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE); } -} \ No newline at end of file +} diff --git a/app/Api/V1/Controllers/Models/Tag/StoreController.php b/app/Api/V1/Controllers/Models/Tag/StoreController.php index e958ed2ea3..bceb8e045d 100644 --- a/app/Api/V1/Controllers/Models/Tag/StoreController.php +++ b/app/Api/V1/Controllers/Models/Tag/StoreController.php @@ -19,8 +19,9 @@ * along with this program. If not, see . */ -namespace FireflyIII\Api\V1\Controllers\Models\Tag; +declare(strict_types=1); +namespace FireflyIII\Api\V1\Controllers\Models\Tag; use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Api\V1\Requests\Models\Tag\StoreRequest; @@ -37,7 +38,6 @@ class StoreController extends Controller { private TagRepositoryInterface $repository; - /** * TagController constructor. * @@ -59,7 +59,6 @@ class StoreController extends Controller ); } - /** * Store new object. * diff --git a/app/Api/V1/Controllers/Models/Tag/UpdateController.php b/app/Api/V1/Controllers/Models/Tag/UpdateController.php index b229ca3785..68540de27f 100644 --- a/app/Api/V1/Controllers/Models/Tag/UpdateController.php +++ b/app/Api/V1/Controllers/Models/Tag/UpdateController.php @@ -19,8 +19,9 @@ * along with this program. If not, see . */ -namespace FireflyIII\Api\V1\Controllers\Models\Tag; +declare(strict_types=1); +namespace FireflyIII\Api\V1\Controllers\Models\Tag; use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Api\V1\Requests\Models\Tag\UpdateRequest; @@ -38,7 +39,6 @@ class UpdateController extends Controller { private TagRepositoryInterface $repository; - /** * TagController constructor. * @@ -60,7 +60,6 @@ class UpdateController extends Controller ); } - /** * Update a rule. * @@ -83,4 +82,4 @@ class UpdateController extends Controller } -} \ No newline at end of file +} diff --git a/app/Api/V1/Controllers/Models/Transaction/DestroyController.php b/app/Api/V1/Controllers/Models/Transaction/DestroyController.php index f997a28536..a3ac9dc901 100644 --- a/app/Api/V1/Controllers/Models/Transaction/DestroyController.php +++ b/app/Api/V1/Controllers/Models/Transaction/DestroyController.php @@ -19,8 +19,9 @@ * along with this program. If not, see . */ -namespace FireflyIII\Api\V1\Controllers\Models\Transaction; +declare(strict_types=1); +namespace FireflyIII\Api\V1\Controllers\Models\Transaction; use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Events\DestroyedTransactionGroup; @@ -37,7 +38,6 @@ class DestroyController extends Controller { private JournalRepositoryInterface $repository; - /** * TransactionController constructor. * @@ -59,7 +59,6 @@ class DestroyController extends Controller ); } - /** * Remove the specified resource from storage. * @@ -77,7 +76,6 @@ class DestroyController extends Controller return response()->json([], 204); } - /** * Remove the specified resource from storage. * @@ -92,4 +90,4 @@ class DestroyController extends Controller return response()->json([], 204); } -} \ No newline at end of file +} diff --git a/app/Api/V1/Controllers/Models/Transaction/ListController.php b/app/Api/V1/Controllers/Models/Transaction/ListController.php index 9acf1f58d2..ff29f747e9 100644 --- a/app/Api/V1/Controllers/Models/Transaction/ListController.php +++ b/app/Api/V1/Controllers/Models/Transaction/ListController.php @@ -19,8 +19,9 @@ * along with this program. If not, see . */ -namespace FireflyIII\Api\V1\Controllers\Models\Transaction; +declare(strict_types=1); +namespace FireflyIII\Api\V1\Controllers\Models\Transaction; use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Models\TransactionGroup; @@ -64,7 +65,6 @@ class ListController extends Controller ); } - /** * @param TransactionGroup $transactionGroup * @@ -97,7 +97,6 @@ class ListController extends Controller return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE); } - /** * @param TransactionGroup $transactionGroup * @@ -114,8 +113,6 @@ class ListController extends Controller } $count = $collection->count(); $events = $collection->slice(($this->parameters->get('page') - 1) * $pageSize, $pageSize); - - // make paginator: $paginator = new LengthAwarePaginator($events, $count, $pageSize, $this->parameters->get('page')); $paginator->setPath(route('api.v1.transactions.piggy_bank_events', [$transactionGroup->id]) . $this->buildParams()); @@ -126,8 +123,6 @@ class ListController extends Controller $resource = new FractalCollection($events, $transformer, 'piggy_bank_events'); $resource->setPaginator(new IlluminatePaginatorAdapter($paginator)); - - // /** @var PiggyBankEventTransformer $transformer */ // $transformer = app(PiggyBankEventTransformer::class); // $transformer->setParameters($this->parameters); @@ -137,7 +132,6 @@ class ListController extends Controller return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE); } - /** * @param TransactionJournal $transactionJournal * @@ -165,4 +159,4 @@ class ListController extends Controller return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE); } -} \ No newline at end of file +} diff --git a/app/Api/V1/Controllers/Models/Transaction/ShowController.php b/app/Api/V1/Controllers/Models/Transaction/ShowController.php index 0b0bd67c57..da68f88750 100644 --- a/app/Api/V1/Controllers/Models/Transaction/ShowController.php +++ b/app/Api/V1/Controllers/Models/Transaction/ShowController.php @@ -19,8 +19,9 @@ * along with this program. If not, see . */ -namespace FireflyIII\Api\V1\Controllers\Models\Transaction; +declare(strict_types=1); +namespace FireflyIII\Api\V1\Controllers\Models\Transaction; use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Helpers\Collector\GroupCollectorInterface; @@ -75,8 +76,6 @@ class ShowController extends Controller ->setPage($this->parameters->get('page')) // set types of transactions to return. ->setTypes($types); - - if (null !== $this->parameters->get('start') && null !== $this->parameters->get('end')) { $collector->setRange($this->parameters->get('start'), $this->parameters->get('end')); } @@ -142,4 +141,4 @@ class ShowController extends Controller return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE); } -} \ No newline at end of file +} diff --git a/app/Api/V1/Controllers/Models/Transaction/StoreController.php b/app/Api/V1/Controllers/Models/Transaction/StoreController.php index fb31cea302..c46fcac390 100644 --- a/app/Api/V1/Controllers/Models/Transaction/StoreController.php +++ b/app/Api/V1/Controllers/Models/Transaction/StoreController.php @@ -19,8 +19,9 @@ * along with this program. If not, see . */ -namespace FireflyIII\Api\V1\Controllers\Models\Transaction; +declare(strict_types=1); +namespace FireflyIII\Api\V1\Controllers\Models\Transaction; use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Api\V1\Requests\Models\Transaction\StoreRequest; @@ -48,7 +49,6 @@ class StoreController extends Controller private TransactionGroupRepositoryInterface $groupRepository; - /** * TransactionController constructor. * @@ -70,7 +70,6 @@ class StoreController extends Controller ); } - /** * Store a new transaction. * @@ -130,4 +129,4 @@ class StoreController extends Controller return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE); } -} \ No newline at end of file +} diff --git a/app/Api/V1/Controllers/Models/Transaction/UpdateController.php b/app/Api/V1/Controllers/Models/Transaction/UpdateController.php index e1365cb6bc..2e7c76d7b9 100644 --- a/app/Api/V1/Controllers/Models/Transaction/UpdateController.php +++ b/app/Api/V1/Controllers/Models/Transaction/UpdateController.php @@ -19,8 +19,9 @@ * along with this program. If not, see . */ -namespace FireflyIII\Api\V1\Controllers\Models\Transaction; +declare(strict_types=1); +namespace FireflyIII\Api\V1\Controllers\Models\Transaction; use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Api\V1\Requests\Models\Transaction\UpdateRequest; @@ -63,7 +64,6 @@ class UpdateController extends Controller ); } - /** * Update a transaction. * @@ -106,4 +106,4 @@ class UpdateController extends Controller return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE); } -} \ No newline at end of file +} diff --git a/app/Api/V1/Controllers/Models/TransactionCurrency/DestroyController.php b/app/Api/V1/Controllers/Models/TransactionCurrency/DestroyController.php index b668094ee3..da72def335 100644 --- a/app/Api/V1/Controllers/Models/TransactionCurrency/DestroyController.php +++ b/app/Api/V1/Controllers/Models/TransactionCurrency/DestroyController.php @@ -1,9 +1,29 @@ . + */ + +declare(strict_types=1); namespace FireflyIII\Api\V1\Controllers\Models\TransactionCurrency; - use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Exceptions\FireflyException; use FireflyIII\Models\TransactionCurrency; @@ -72,4 +92,4 @@ class DestroyController extends Controller return response()->json([], 204); } -} \ No newline at end of file +} diff --git a/app/Api/V1/Controllers/Models/TransactionCurrency/ListController.php b/app/Api/V1/Controllers/Models/TransactionCurrency/ListController.php index 3d6f185db0..36a9bd080c 100644 --- a/app/Api/V1/Controllers/Models/TransactionCurrency/ListController.php +++ b/app/Api/V1/Controllers/Models/TransactionCurrency/ListController.php @@ -1,9 +1,29 @@ . + */ + +declare(strict_types=1); namespace FireflyIII\Api\V1\Controllers\Models\TransactionCurrency; - use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Helpers\Collector\GroupCollectorInterface; use FireflyIII\Models\Account; @@ -115,8 +135,6 @@ class ListController extends Controller /** @var AccountTransformer $transformer */ $transformer = app(AccountTransformer::class); $transformer->setParameters($this->parameters); - - $resource = new FractalCollection($accounts, $transformer, 'accounts'); $resource->setPaginator(new IlluminatePaginatorAdapter($paginator)); @@ -144,8 +162,6 @@ class ListController extends Controller $collection = $abRepository->getAvailableBudgetsByCurrency($currency); $count = $collection->count(); $availableBudgets = $collection->slice(($this->parameters->get('page') - 1) * $pageSize, $pageSize); - - // make paginator: $paginator = new LengthAwarePaginator($availableBudgets, $count, $pageSize, $this->parameters->get('page')); $paginator->setPath(route('api.v1.currencies.available_budgets', [$currency->code]) . $this->buildParams()); @@ -263,8 +279,6 @@ class ListController extends Controller return null; } ); - - $count = $collection->count(); $piggyBanks = $collection->slice(($this->parameters->get('page') - 1) * $pageSize, $pageSize); @@ -369,8 +383,6 @@ class ListController extends Controller ->setPage($this->parameters->get('page')) // set types of transactions to return. ->setTypes($types); - - if (null !== $this->parameters->get('start') && null !== $this->parameters->get('end')) { $collector->setRange($this->parameters->get('start'), $this->parameters->get('end')); } @@ -387,4 +399,4 @@ class ListController extends Controller return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE); } -} \ No newline at end of file +} diff --git a/app/Api/V1/Controllers/Models/TransactionCurrency/ShowController.php b/app/Api/V1/Controllers/Models/TransactionCurrency/ShowController.php index f5cfe2fe3b..efb7605fa3 100644 --- a/app/Api/V1/Controllers/Models/TransactionCurrency/ShowController.php +++ b/app/Api/V1/Controllers/Models/TransactionCurrency/ShowController.php @@ -1,9 +1,29 @@ . + */ + +declare(strict_types=1); namespace FireflyIII\Api\V1\Controllers\Models\TransactionCurrency; - use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Models\TransactionCurrency; use FireflyIII\Repositories\Currency\CurrencyRepositoryInterface; @@ -63,8 +83,6 @@ class ShowController extends Controller $currencies = $collection->slice(($this->parameters->get('page') - 1) * $pageSize, $pageSize); $paginator = new LengthAwarePaginator($currencies, $count, $pageSize, $this->parameters->get('page')); $paginator->setPath(route('api.v1.currencies.index') . $this->buildParams()); - - $manager = $this->getManager(); $defaultCurrency = app('amount')->getDefaultCurrencyByUser(auth()->user()); $this->parameters->set('defaultCurrency', $defaultCurrency); @@ -122,4 +140,4 @@ class ShowController extends Controller return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE); } -} \ No newline at end of file +} diff --git a/app/Api/V1/Controllers/Models/TransactionCurrency/StoreController.php b/app/Api/V1/Controllers/Models/TransactionCurrency/StoreController.php index 840aaa0e18..e26e2b1fda 100644 --- a/app/Api/V1/Controllers/Models/TransactionCurrency/StoreController.php +++ b/app/Api/V1/Controllers/Models/TransactionCurrency/StoreController.php @@ -1,5 +1,26 @@ . + */ + +declare(strict_types=1); namespace FireflyIII\Api\V1\Controllers\Models\TransactionCurrency; @@ -25,7 +46,6 @@ class StoreController extends Controller private CurrencyRepositoryInterface $repository; private UserRepositoryInterface $userRepository; - /** * CurrencyRepository constructor. * @@ -49,7 +69,6 @@ class StoreController extends Controller ); } - /** * Store new currency. * @@ -77,4 +96,4 @@ class StoreController extends Controller return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE); } -} \ No newline at end of file +} diff --git a/app/Api/V1/Controllers/Models/TransactionCurrency/UpdateController.php b/app/Api/V1/Controllers/Models/TransactionCurrency/UpdateController.php index 2495bd783a..8e8641dd46 100644 --- a/app/Api/V1/Controllers/Models/TransactionCurrency/UpdateController.php +++ b/app/Api/V1/Controllers/Models/TransactionCurrency/UpdateController.php @@ -1,9 +1,29 @@ . + */ + +declare(strict_types=1); namespace FireflyIII\Api\V1\Controllers\Models\TransactionCurrency; - use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Api\V1\Requests\Models\TransactionCurrency\UpdateRequest; use FireflyIII\Models\TransactionCurrency; @@ -166,4 +186,4 @@ class UpdateController extends Controller return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE); } -} \ No newline at end of file +} diff --git a/app/Api/V1/Controllers/Models/TransactionLink/DestroyController.php b/app/Api/V1/Controllers/Models/TransactionLink/DestroyController.php index 4c8f56315d..b70feb91b0 100644 --- a/app/Api/V1/Controllers/Models/TransactionLink/DestroyController.php +++ b/app/Api/V1/Controllers/Models/TransactionLink/DestroyController.php @@ -1,9 +1,29 @@ . + */ + +declare(strict_types=1); namespace FireflyIII\Api\V1\Controllers\Models\TransactionLink; - use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Models\TransactionJournalLink; use FireflyIII\Repositories\LinkType\LinkTypeRepositoryInterface; @@ -15,7 +35,6 @@ class DestroyController extends Controller private LinkTypeRepositoryInterface $repository; - /** * TransactionLinkController constructor. * @@ -53,4 +72,4 @@ class DestroyController extends Controller return response()->json([], 204); } -} \ No newline at end of file +} diff --git a/app/Api/V1/Controllers/Models/TransactionLink/ShowController.php b/app/Api/V1/Controllers/Models/TransactionLink/ShowController.php index 925127adbb..b988ceb5be 100644 --- a/app/Api/V1/Controllers/Models/TransactionLink/ShowController.php +++ b/app/Api/V1/Controllers/Models/TransactionLink/ShowController.php @@ -1,9 +1,29 @@ . + */ + +declare(strict_types=1); namespace FireflyIII\Api\V1\Controllers\Models\TransactionLink; - use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Models\TransactionJournalLink; use FireflyIII\Repositories\LinkType\LinkTypeRepositoryInterface; @@ -81,7 +101,6 @@ class ShowController extends Controller } - /** * List single resource. * @@ -103,6 +122,4 @@ class ShowController extends Controller return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE); } - - -} \ No newline at end of file +} diff --git a/app/Api/V1/Controllers/Models/TransactionLink/StoreController.php b/app/Api/V1/Controllers/Models/TransactionLink/StoreController.php index f2f1ca1903..79c23e9868 100644 --- a/app/Api/V1/Controllers/Models/TransactionLink/StoreController.php +++ b/app/Api/V1/Controllers/Models/TransactionLink/StoreController.php @@ -1,9 +1,29 @@ . + */ + +declare(strict_types=1); namespace FireflyIII\Api\V1\Controllers\Models\TransactionLink; - use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Api\V1\Requests\Models\TransactionLink\StoreRequest; use FireflyIII\Exceptions\FireflyException; @@ -22,7 +42,6 @@ class StoreController extends Controller private JournalRepositoryInterface $journalRepository; private LinkTypeRepositoryInterface $repository; - /** * TransactionLinkController constructor. * @@ -47,7 +66,6 @@ class StoreController extends Controller ); } - /** * Store new object. * @@ -77,4 +95,4 @@ class StoreController extends Controller return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE); } -} \ No newline at end of file +} diff --git a/app/Api/V1/Controllers/Models/TransactionLink/UpdateController.php b/app/Api/V1/Controllers/Models/TransactionLink/UpdateController.php index 68c65ecb53..f026797954 100644 --- a/app/Api/V1/Controllers/Models/TransactionLink/UpdateController.php +++ b/app/Api/V1/Controllers/Models/TransactionLink/UpdateController.php @@ -1,9 +1,29 @@ . + */ + +declare(strict_types=1); namespace FireflyIII\Api\V1\Controllers\Models\TransactionLink; - use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Api\V1\Requests\Models\TransactionLink\UpdateRequest; use FireflyIII\Exceptions\FireflyException; @@ -20,7 +40,6 @@ class UpdateController extends Controller private JournalRepositoryInterface $journalRepository; private LinkTypeRepositoryInterface $repository; - /** * TransactionLinkController constructor. * @@ -71,4 +90,4 @@ class UpdateController extends Controller return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE); } -} \ No newline at end of file +} diff --git a/app/Api/V1/Controllers/Models/TransactionLinkType/DestroyController.php b/app/Api/V1/Controllers/Models/TransactionLinkType/DestroyController.php index 171dc384ae..67d093b513 100644 --- a/app/Api/V1/Controllers/Models/TransactionLinkType/DestroyController.php +++ b/app/Api/V1/Controllers/Models/TransactionLinkType/DestroyController.php @@ -1,9 +1,29 @@ . + */ + +declare(strict_types=1); namespace FireflyIII\Api\V1\Controllers\Models\TransactionLinkType; - use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Exceptions\FireflyException; use FireflyIII\Models\LinkType; @@ -44,7 +64,6 @@ class DestroyController extends Controller ); } - /** * Delete the resource. * @@ -64,4 +83,4 @@ class DestroyController extends Controller return response()->json([], 204); } -} \ No newline at end of file +} diff --git a/app/Api/V1/Controllers/Models/TransactionLinkType/ListController.php b/app/Api/V1/Controllers/Models/TransactionLinkType/ListController.php index b2dc4aa630..ff12138a1b 100644 --- a/app/Api/V1/Controllers/Models/TransactionLinkType/ListController.php +++ b/app/Api/V1/Controllers/Models/TransactionLinkType/ListController.php @@ -1,9 +1,29 @@ . + */ + +declare(strict_types=1); namespace FireflyIII\Api\V1\Controllers\Models\TransactionLinkType; - use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Helpers\Collector\GroupCollectorInterface; use FireflyIII\Models\LinkType; @@ -48,7 +68,6 @@ class ListController extends Controller ); } - /** * Delete the resource. * @@ -88,8 +107,6 @@ class ListController extends Controller ->setPage($this->parameters->get('page')) // set types of transactions to return. ->setTypes($types); - - if (null !== $this->parameters->get('start') && null !== $this->parameters->get('end')) { $collector->setRange($this->parameters->get('start'), $this->parameters->get('end')); } @@ -107,4 +124,4 @@ class ListController extends Controller return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE); } -} \ No newline at end of file +} diff --git a/app/Api/V1/Controllers/Models/TransactionLinkType/ShowController.php b/app/Api/V1/Controllers/Models/TransactionLinkType/ShowController.php index 5f9560cf67..33f91da621 100644 --- a/app/Api/V1/Controllers/Models/TransactionLinkType/ShowController.php +++ b/app/Api/V1/Controllers/Models/TransactionLinkType/ShowController.php @@ -1,9 +1,29 @@ . + */ + +declare(strict_types=1); namespace FireflyIII\Api\V1\Controllers\Models\TransactionLinkType; - use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Models\LinkType; use FireflyIII\Repositories\LinkType\LinkTypeRepositoryInterface; @@ -80,7 +100,6 @@ class ShowController extends Controller } - /** * List single resource. * @@ -101,4 +120,4 @@ class ShowController extends Controller return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE); } -} \ No newline at end of file +} diff --git a/app/Api/V1/Controllers/Models/TransactionLinkType/StoreController.php b/app/Api/V1/Controllers/Models/TransactionLinkType/StoreController.php index 7a66d5cd88..22f93456cf 100644 --- a/app/Api/V1/Controllers/Models/TransactionLinkType/StoreController.php +++ b/app/Api/V1/Controllers/Models/TransactionLinkType/StoreController.php @@ -1,9 +1,29 @@ . + */ + +declare(strict_types=1); namespace FireflyIII\Api\V1\Controllers\Models\TransactionLinkType; - use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Api\V1\Requests\Models\TransactionLinkType\StoreRequest; use FireflyIII\Exceptions\FireflyException; @@ -46,7 +66,6 @@ class StoreController extends Controller ); } - /** * Store new object. * @@ -76,4 +95,4 @@ class StoreController extends Controller return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE); } -} \ No newline at end of file +} diff --git a/app/Api/V1/Controllers/Models/TransactionLinkType/UpdateController.php b/app/Api/V1/Controllers/Models/TransactionLinkType/UpdateController.php index c9c6a63aa7..5b49acdf06 100644 --- a/app/Api/V1/Controllers/Models/TransactionLinkType/UpdateController.php +++ b/app/Api/V1/Controllers/Models/TransactionLinkType/UpdateController.php @@ -1,9 +1,29 @@ . + */ + +declare(strict_types=1); namespace FireflyIII\Api\V1\Controllers\Models\TransactionLinkType; - use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Api\V1\Requests\Models\TransactionLinkType\UpdateRequest; use FireflyIII\Exceptions\FireflyException; @@ -47,7 +67,6 @@ class UpdateController extends Controller ); } - /** * Update object. * @@ -82,4 +101,4 @@ class UpdateController extends Controller return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE); } -} \ No newline at end of file +} diff --git a/app/Api/V1/Controllers/Search/AccountController.php b/app/Api/V1/Controllers/Search/AccountController.php index b1df06b854..6bb2441c92 100644 --- a/app/Api/V1/Controllers/Search/AccountController.php +++ b/app/Api/V1/Controllers/Search/AccountController.php @@ -46,7 +46,6 @@ class AccountController extends Controller private array $validFields; - public function __construct() { parent::__construct(); @@ -85,8 +84,6 @@ class AccountController extends Controller $search->setQuery($query); $accounts = $search->search(); - - /** @var AccountTransformer $transformer */ $transformer = app(AccountTransformer::class); $transformer->setParameters($this->parameters); diff --git a/app/Api/V1/Controllers/Summary/BasicController.php b/app/Api/V1/Controllers/Summary/BasicController.php index 5d8d830f03..ab75914003 100644 --- a/app/Api/V1/Controllers/Summary/BasicController.php +++ b/app/Api/V1/Controllers/Summary/BasicController.php @@ -81,7 +81,6 @@ class BasicController extends Controller $this->abRepository->setUser($user); $this->opsRepository->setUser($user); - return $next($request); } ); @@ -162,8 +161,6 @@ class BasicController extends Controller ->setPage($this->parameters->get('page')) // set types of transactions to return. ->setTypes([TransactionType::WITHDRAWAL]); - - $set = $collector->getExtractedJournals(); /** @var array $transactionJournal */ @@ -346,8 +343,6 @@ class BasicController extends Controller /** @var User $user */ $user = auth()->user(); $date = Carbon::now()->startOfDay(); - - // start and end in the future? use $end if ($this->notInDateRange($date, $start, $end)) { /** @var Carbon $date */ diff --git a/app/Api/V1/Controllers/System/AboutController.php b/app/Api/V1/Controllers/System/AboutController.php index aec3865e3d..054c8fa0d8 100644 --- a/app/Api/V1/Controllers/System/AboutController.php +++ b/app/Api/V1/Controllers/System/AboutController.php @@ -50,10 +50,8 @@ class AboutController extends Controller $phpVersion = str_replace($search, $replace, PHP_VERSION); $phpOs = str_replace($search, $replace, PHP_OS); $currentDriver = DB::getDriverName(); - - $data - = [ + = [ 'version' => config('firefly.version'), 'api_version' => config('firefly.api_version'), 'php_version' => $phpVersion, diff --git a/app/Api/V1/Controllers/System/ConfigurationController.php b/app/Api/V1/Controllers/System/ConfigurationController.php index d52ccf332f..da86e0369c 100644 --- a/app/Api/V1/Controllers/System/ConfigurationController.php +++ b/app/Api/V1/Controllers/System/ConfigurationController.php @@ -19,8 +19,9 @@ * along with this program. If not, see . */ -namespace FireflyIII\Api\V1\Controllers\System; +declare(strict_types=1); +namespace FireflyIII\Api\V1\Controllers\System; use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Api\V1\Requests\System\UpdateRequest; @@ -169,9 +170,7 @@ class ConfigurationController extends Controller // get updated config: $newConfig = $this->getDynamicConfiguration(); - - - $data = [ + $data = [ 'title' => $name, 'value' => $newConfig[$shortName], 'editable' => true, @@ -179,4 +178,4 @@ class ConfigurationController extends Controller return response()->json(['data' => $data])->header('Content-Type', self::CONTENT_TYPE); } -} \ No newline at end of file +} diff --git a/app/Api/V1/Controllers/System/CronController.php b/app/Api/V1/Controllers/System/CronController.php index b4f6895da0..dfb77101c3 100644 --- a/app/Api/V1/Controllers/System/CronController.php +++ b/app/Api/V1/Controllers/System/CronController.php @@ -19,8 +19,9 @@ * along with this program. If not, see . */ -namespace FireflyIII\Api\V1\Controllers\System; +declare(strict_types=1); +namespace FireflyIII\Api\V1\Controllers\System; use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Api\V1\Requests\System\CronRequest; @@ -46,14 +47,13 @@ class CronController extends Controller $config = $request->getAll(); Log::debug(sprintf('Now in %s', __METHOD__)); - + Log::debug(sprintf('Date is %s', $config['date']->toIsoString())); $return = []; $return['recurring_transactions'] = $this->runRecurring($config['force'], $config['date']); $return['auto_budgets'] = $this->runAutoBudget($config['force'], $config['date']); $return['telemetry'] = $this->runTelemetry($config['force'], $config['date']); - return response()->json($return); } -} \ No newline at end of file +} diff --git a/app/Api/V1/Controllers/System/UserController.php b/app/Api/V1/Controllers/System/UserController.php index 0165d2afcb..2a83429055 100644 --- a/app/Api/V1/Controllers/System/UserController.php +++ b/app/Api/V1/Controllers/System/UserController.php @@ -37,7 +37,6 @@ use League\Fractal\Pagination\IlluminatePaginatorAdapter; use League\Fractal\Resource\Collection as FractalCollection; use League\Fractal\Resource\Item; - /** * Class UserController. */ @@ -45,7 +44,6 @@ class UserController extends Controller { private UserRepositoryInterface $repository; - /** * UserController constructor. * diff --git a/app/Api/V1/Controllers/Webhook/AttemptController.php b/app/Api/V1/Controllers/Webhook/AttemptController.php index dd130f1a2d..2f938ebbcc 100644 --- a/app/Api/V1/Controllers/Webhook/AttemptController.php +++ b/app/Api/V1/Controllers/Webhook/AttemptController.php @@ -19,8 +19,9 @@ * along with this program. If not, see . */ -namespace FireflyIII\Api\V1\Controllers\Webhook; +declare(strict_types=1); +namespace FireflyIII\Api\V1\Controllers\Webhook; use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Exceptions\FireflyException; @@ -124,4 +125,4 @@ class AttemptController extends Controller return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE); } -} \ No newline at end of file +} diff --git a/app/Api/V1/Controllers/Webhook/DestroyController.php b/app/Api/V1/Controllers/Webhook/DestroyController.php index 268613e60c..5c3e2799f7 100644 --- a/app/Api/V1/Controllers/Webhook/DestroyController.php +++ b/app/Api/V1/Controllers/Webhook/DestroyController.php @@ -1,7 +1,7 @@ . - */ namespace FireflyIII\Api\V1\Controllers\Webhook; - use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Exceptions\FireflyException; use FireflyIII\Models\Webhook; @@ -135,6 +115,4 @@ class DestroyController extends Controller return response()->json([], 204); } - - } diff --git a/app/Api/V1/Controllers/Webhook/MessageController.php b/app/Api/V1/Controllers/Webhook/MessageController.php index 33f5124282..08005210bb 100644 --- a/app/Api/V1/Controllers/Webhook/MessageController.php +++ b/app/Api/V1/Controllers/Webhook/MessageController.php @@ -19,8 +19,9 @@ * along with this program. If not, see . */ -namespace FireflyIII\Api\V1\Controllers\Webhook; +declare(strict_types=1); +namespace FireflyIII\Api\V1\Controllers\Webhook; use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Exceptions\FireflyException; @@ -113,4 +114,4 @@ class MessageController extends Controller return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE); } -} \ No newline at end of file +} diff --git a/app/Api/V1/Controllers/Webhook/ShowController.php b/app/Api/V1/Controllers/Webhook/ShowController.php index 2fe432df79..424f10990e 100644 --- a/app/Api/V1/Controllers/Webhook/ShowController.php +++ b/app/Api/V1/Controllers/Webhook/ShowController.php @@ -19,8 +19,9 @@ * along with this program. If not, see . */ -namespace FireflyIII\Api\V1\Controllers\Webhook; +declare(strict_types=1); +namespace FireflyIII\Api\V1\Controllers\Webhook; use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Models\Webhook; @@ -107,4 +108,4 @@ class ShowController extends Controller return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE); } -} \ No newline at end of file +} diff --git a/app/Api/V1/Controllers/Webhook/StoreController.php b/app/Api/V1/Controllers/Webhook/StoreController.php index 73766a32b6..28bfb00b28 100644 --- a/app/Api/V1/Controllers/Webhook/StoreController.php +++ b/app/Api/V1/Controllers/Webhook/StoreController.php @@ -19,8 +19,9 @@ * along with this program. If not, see . */ -namespace FireflyIII\Api\V1\Controllers\Webhook; +declare(strict_types=1); +namespace FireflyIII\Api\V1\Controllers\Webhook; use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Api\V1\Requests\Models\Webhook\CreateRequest; @@ -58,7 +59,6 @@ class StoreController extends Controller ); } - /** * @param CreateRequest $request * @@ -77,4 +77,4 @@ class StoreController extends Controller return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE); } -} \ No newline at end of file +} diff --git a/app/Api/V1/Controllers/Webhook/SubmitController.php b/app/Api/V1/Controllers/Webhook/SubmitController.php index 5e2f139d26..c2227b04e5 100644 --- a/app/Api/V1/Controllers/Webhook/SubmitController.php +++ b/app/Api/V1/Controllers/Webhook/SubmitController.php @@ -19,8 +19,9 @@ * along with this program. If not, see . */ -namespace FireflyIII\Api\V1\Controllers\Webhook; +declare(strict_types=1); +namespace FireflyIII\Api\V1\Controllers\Webhook; use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Jobs\SendWebhookMessage; @@ -79,4 +80,4 @@ class SubmitController extends Controller return response()->json([], 200); } -} \ No newline at end of file +} diff --git a/app/Api/V1/Controllers/Webhook/UpdateController.php b/app/Api/V1/Controllers/Webhook/UpdateController.php index ce4f371445..e7db643085 100644 --- a/app/Api/V1/Controllers/Webhook/UpdateController.php +++ b/app/Api/V1/Controllers/Webhook/UpdateController.php @@ -19,8 +19,9 @@ * along with this program. If not, see . */ -namespace FireflyIII\Api\V1\Controllers\Webhook; +declare(strict_types=1); +namespace FireflyIII\Api\V1\Controllers\Webhook; use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Api\V1\Requests\Models\Webhook\UpdateRequest; @@ -78,4 +79,4 @@ class UpdateController extends Controller return response()->json($manager->createData($resource)->toArray())->header('Content-Type', self::CONTENT_TYPE); } -} \ No newline at end of file +} diff --git a/app/Api/V1/Requests/Autocomplete/AutocompleteRequest.php b/app/Api/V1/Requests/Autocomplete/AutocompleteRequest.php index 1dff545f96..fa97eaaa82 100644 --- a/app/Api/V1/Requests/Autocomplete/AutocompleteRequest.php +++ b/app/Api/V1/Requests/Autocomplete/AutocompleteRequest.php @@ -23,7 +23,6 @@ declare(strict_types=1); namespace FireflyIII\Api\V1\Requests\Autocomplete; - use FireflyIII\Models\AccountType; use FireflyIII\Support\Request\ChecksLogin; use FireflyIII\Support\Request\ConvertsDataTypes; diff --git a/app/Api/V1/Requests/Data/DateRequest.php b/app/Api/V1/Requests/Data/DateRequest.php index c5ea73f04b..18feea7b45 100644 --- a/app/Api/V1/Requests/Data/DateRequest.php +++ b/app/Api/V1/Requests/Data/DateRequest.php @@ -24,7 +24,6 @@ declare(strict_types=1); namespace FireflyIII\Api\V1\Requests\Data; - use FireflyIII\Support\Request\ChecksLogin; use FireflyIII\Support\Request\ConvertsDataTypes; use Illuminate\Foundation\Http\FormRequest; diff --git a/app/Api/V1/Requests/Data/Export/ExportRequest.php b/app/Api/V1/Requests/Data/Export/ExportRequest.php index 6eefffa754..a5c96c8f5d 100644 --- a/app/Api/V1/Requests/Data/Export/ExportRequest.php +++ b/app/Api/V1/Requests/Data/Export/ExportRequest.php @@ -19,8 +19,9 @@ * along with this program. If not, see . */ -namespace FireflyIII\Api\V1\Requests\Data\Export; +declare(strict_types=1); +namespace FireflyIII\Api\V1\Requests\Data\Export; use Carbon\Carbon; use FireflyIII\Models\AccountType; @@ -77,4 +78,4 @@ class ExportRequest extends FormRequest 'end' => 'date|after:start', ]; } -} \ No newline at end of file +} diff --git a/app/Api/V1/Requests/Insight/GenericRequest.php b/app/Api/V1/Requests/Insight/GenericRequest.php index 504178c906..1f05c08a28 100644 --- a/app/Api/V1/Requests/Insight/GenericRequest.php +++ b/app/Api/V1/Requests/Insight/GenericRequest.php @@ -1,9 +1,29 @@ . + */ + +declare(strict_types=1); namespace FireflyIII\Api\V1\Requests\Insight; - use Carbon\Carbon; use FireflyIII\Models\Account; use FireflyIII\Models\AccountType; @@ -303,4 +323,4 @@ class GenericRequest extends FormRequest 'end' => 'required|date|after:start', ]; } -} \ No newline at end of file +} diff --git a/app/Api/V1/Requests/Models/Attachment/UpdateRequest.php b/app/Api/V1/Requests/Models/Attachment/UpdateRequest.php index 288fd27354..3820c7cf79 100644 --- a/app/Api/V1/Requests/Models/Attachment/UpdateRequest.php +++ b/app/Api/V1/Requests/Models/Attachment/UpdateRequest.php @@ -72,7 +72,6 @@ class UpdateRequest extends FormRequest $models = implode(',', $models); $model = $this->string('attachable_type'); - return [ 'filename' => 'between:1,255', 'title' => 'between:1,255', diff --git a/app/Api/V1/Requests/Models/AvailableBudget/Request.php b/app/Api/V1/Requests/Models/AvailableBudget/Request.php index c421d2a9df..c3277c3ab0 100644 --- a/app/Api/V1/Requests/Models/AvailableBudget/Request.php +++ b/app/Api/V1/Requests/Models/AvailableBudget/Request.php @@ -96,6 +96,4 @@ class Request extends FormRequest } ); } - - } diff --git a/app/Api/V1/Requests/Models/PiggyBank/StoreRequest.php b/app/Api/V1/Requests/Models/PiggyBank/StoreRequest.php index 7a3e264d49..e42993cea6 100644 --- a/app/Api/V1/Requests/Models/PiggyBank/StoreRequest.php +++ b/app/Api/V1/Requests/Models/PiggyBank/StoreRequest.php @@ -43,12 +43,10 @@ class StoreRequest extends FormRequest */ public function getAll(): array { - $fields = [ + $fields = [ 'order' => ['order', 'integer'], ]; - $data = $this->getAllData($fields); - - + $data = $this->getAllData($fields); $data['name'] = $this->string('name'); $data['account_id'] = $this->integer('account_id'); $data['targetamount'] = $this->string('target_amount'); diff --git a/app/Api/V1/Requests/Models/Recurrence/StoreRequest.php b/app/Api/V1/Requests/Models/Recurrence/StoreRequest.php index 476b8ab4f4..99a9d378e5 100644 --- a/app/Api/V1/Requests/Models/Recurrence/StoreRequest.php +++ b/app/Api/V1/Requests/Models/Recurrence/StoreRequest.php @@ -42,7 +42,6 @@ class StoreRequest extends FormRequest { use ConvertsDataTypes, RecurrenceValidation, TransactionValidation, CurrencyValidation, GetRecurrenceData, ChecksLogin; - /** * Get all data from the request. * @@ -171,8 +170,6 @@ class StoreRequest extends FormRequest 'transactions.*.piggy_bank_id' => ['numeric', 'mustExist:piggy_banks,id', new BelongsUser], 'transactions.*.piggy_bank_name' => ['between:1,255', 'nullable', new BelongsUser], 'transactions.*.tags' => 'between:1,64000', - - ]; } diff --git a/app/Api/V1/Requests/Models/Recurrence/UpdateRequest.php b/app/Api/V1/Requests/Models/Recurrence/UpdateRequest.php index 02634ba488..2c76b46ad1 100644 --- a/app/Api/V1/Requests/Models/Recurrence/UpdateRequest.php +++ b/app/Api/V1/Requests/Models/Recurrence/UpdateRequest.php @@ -42,7 +42,6 @@ class UpdateRequest extends FormRequest { use ConvertsDataTypes, RecurrenceValidation, TransactionValidation, CurrencyValidation, GetRecurrenceData, ChecksLogin; - /** * Get all data from the request. * diff --git a/app/Api/V1/Requests/Models/Rule/StoreRequest.php b/app/Api/V1/Requests/Models/Rule/StoreRequest.php index 94446a49f2..b005f12c96 100644 --- a/app/Api/V1/Requests/Models/Rule/StoreRequest.php +++ b/app/Api/V1/Requests/Models/Rule/StoreRequest.php @@ -31,7 +31,6 @@ use Illuminate\Foundation\Http\FormRequest; use Illuminate\Validation\Validator; use function is_array; - /** * Class StoreRequest */ @@ -39,7 +38,6 @@ class StoreRequest extends FormRequest { use ConvertsDataTypes, GetRuleConfiguration, ChecksLogin; - /** * Get all data from the request. * diff --git a/app/Api/V1/Requests/Models/Rule/TestRequest.php b/app/Api/V1/Requests/Models/Rule/TestRequest.php index bcfb564c37..6b77117878 100644 --- a/app/Api/V1/Requests/Models/Rule/TestRequest.php +++ b/app/Api/V1/Requests/Models/Rule/TestRequest.php @@ -24,7 +24,6 @@ declare(strict_types=1); namespace FireflyIII\Api\V1\Requests\Models\Rule; - use Carbon\Carbon; use FireflyIII\Support\Request\ChecksLogin; use FireflyIII\Support\Request\ConvertsDataTypes; @@ -37,7 +36,6 @@ class TestRequest extends FormRequest { use ConvertsDataTypes, ChecksLogin; - /** * @return array */ diff --git a/app/Api/V1/Requests/Models/Rule/TriggerRequest.php b/app/Api/V1/Requests/Models/Rule/TriggerRequest.php index 479647ce73..8226b88c2b 100644 --- a/app/Api/V1/Requests/Models/Rule/TriggerRequest.php +++ b/app/Api/V1/Requests/Models/Rule/TriggerRequest.php @@ -24,7 +24,6 @@ declare(strict_types=1); namespace FireflyIII\Api\V1\Requests\Models\Rule; - use Carbon\Carbon; use FireflyIII\Support\Request\ChecksLogin; use FireflyIII\Support\Request\ConvertsDataTypes; @@ -37,7 +36,6 @@ class TriggerRequest extends FormRequest { use ConvertsDataTypes, ChecksLogin; - /** * @return array */ diff --git a/app/Api/V1/Requests/Models/Rule/UpdateRequest.php b/app/Api/V1/Requests/Models/Rule/UpdateRequest.php index d73f5c7806..f047946fcb 100644 --- a/app/Api/V1/Requests/Models/Rule/UpdateRequest.php +++ b/app/Api/V1/Requests/Models/Rule/UpdateRequest.php @@ -31,7 +31,6 @@ use Illuminate\Foundation\Http\FormRequest; use Illuminate\Validation\Validator; use function is_array; - /** * Class UpdateRequest */ diff --git a/app/Api/V1/Requests/Models/RuleGroup/StoreRequest.php b/app/Api/V1/Requests/Models/RuleGroup/StoreRequest.php index 5f61b7257a..54a535882f 100644 --- a/app/Api/V1/Requests/Models/RuleGroup/StoreRequest.php +++ b/app/Api/V1/Requests/Models/RuleGroup/StoreRequest.php @@ -28,7 +28,6 @@ use FireflyIII\Support\Request\ChecksLogin; use FireflyIII\Support\Request\ConvertsDataTypes; use Illuminate\Foundation\Http\FormRequest; - /** * @codeCoverageIgnore * Class StoreRequest diff --git a/app/Api/V1/Requests/Models/RuleGroup/TestRequest.php b/app/Api/V1/Requests/Models/RuleGroup/TestRequest.php index 51a9bc9e0b..aefc709247 100644 --- a/app/Api/V1/Requests/Models/RuleGroup/TestRequest.php +++ b/app/Api/V1/Requests/Models/RuleGroup/TestRequest.php @@ -24,7 +24,6 @@ declare(strict_types=1); namespace FireflyIII\Api\V1\Requests\Models\RuleGroup; - use Carbon\Carbon; use FireflyIII\Support\Request\ChecksLogin; use FireflyIII\Support\Request\ConvertsDataTypes; @@ -37,7 +36,6 @@ class TestRequest extends FormRequest { use ConvertsDataTypes, ChecksLogin; - /** * @return array */ diff --git a/app/Api/V1/Requests/Models/RuleGroup/TriggerRequest.php b/app/Api/V1/Requests/Models/RuleGroup/TriggerRequest.php index c8d1f87ded..e6c3f2df80 100644 --- a/app/Api/V1/Requests/Models/RuleGroup/TriggerRequest.php +++ b/app/Api/V1/Requests/Models/RuleGroup/TriggerRequest.php @@ -24,7 +24,6 @@ declare(strict_types=1); namespace FireflyIII\Api\V1\Requests\Models\RuleGroup; - use Carbon\Carbon; use FireflyIII\Support\Request\ChecksLogin; use FireflyIII\Support\Request\ConvertsDataTypes; @@ -37,7 +36,6 @@ class TriggerRequest extends FormRequest { use ConvertsDataTypes, ChecksLogin; - /** * @return array */ diff --git a/app/Api/V1/Requests/Models/RuleGroup/UpdateRequest.php b/app/Api/V1/Requests/Models/RuleGroup/UpdateRequest.php index c41e927dd1..8b572a96d8 100644 --- a/app/Api/V1/Requests/Models/RuleGroup/UpdateRequest.php +++ b/app/Api/V1/Requests/Models/RuleGroup/UpdateRequest.php @@ -28,7 +28,6 @@ use FireflyIII\Support\Request\ChecksLogin; use FireflyIII\Support\Request\ConvertsDataTypes; use Illuminate\Foundation\Http\FormRequest; - /** * @codeCoverageIgnore * Class UpdateRequest diff --git a/app/Api/V1/Requests/Models/Tag/UpdateRequest.php b/app/Api/V1/Requests/Models/Tag/UpdateRequest.php index 86c17ee38e..99651753e8 100644 --- a/app/Api/V1/Requests/Models/Tag/UpdateRequest.php +++ b/app/Api/V1/Requests/Models/Tag/UpdateRequest.php @@ -39,7 +39,6 @@ class UpdateRequest extends FormRequest { use ConvertsDataTypes, ChecksLogin, AppendsLocationData; - /** * Get all data from the request. * diff --git a/app/Api/V1/Requests/Models/Transaction/StoreRequest.php b/app/Api/V1/Requests/Models/Transaction/StoreRequest.php index 19854987d5..1f442eeaa6 100644 --- a/app/Api/V1/Requests/Models/Transaction/StoreRequest.php +++ b/app/Api/V1/Requests/Models/Transaction/StoreRequest.php @@ -147,8 +147,6 @@ class StoreRequest extends FormRequest 'sepa_ep' => $this->stringFromValue($object['sepa_ep']), 'sepa_ci' => $this->stringFromValue($object['sepa_ci']), 'sepa_batch_id' => $this->stringFromValue($object['sepa_batch_id']), - - // custom date fields. Must be Carbon objects. Presence is optional. 'interest_date' => $this->dateFromValue($object['interest_date']), 'book_date' => $this->dateFromValue($object['book_date']), @@ -250,8 +248,6 @@ class StoreRequest extends FormRequest 'transactions.*.payment_date' => 'date|nullable', 'transactions.*.invoice_date' => 'date|nullable', ]; - - } /** diff --git a/app/Api/V1/Requests/Models/TransactionCurrency/StoreRequest.php b/app/Api/V1/Requests/Models/TransactionCurrency/StoreRequest.php index 2146b685c8..0fb0fc3ae2 100644 --- a/app/Api/V1/Requests/Models/TransactionCurrency/StoreRequest.php +++ b/app/Api/V1/Requests/Models/TransactionCurrency/StoreRequest.php @@ -28,7 +28,6 @@ use FireflyIII\Support\Request\ChecksLogin; use FireflyIII\Support\Request\ConvertsDataTypes; use Illuminate\Foundation\Http\FormRequest; - /** * Class StoreRequest * diff --git a/app/Api/V1/Requests/Models/TransactionCurrency/UpdateRequest.php b/app/Api/V1/Requests/Models/TransactionCurrency/UpdateRequest.php index 359b1533cd..a50013b939 100644 --- a/app/Api/V1/Requests/Models/TransactionCurrency/UpdateRequest.php +++ b/app/Api/V1/Requests/Models/TransactionCurrency/UpdateRequest.php @@ -28,7 +28,6 @@ use FireflyIII\Support\Request\ChecksLogin; use FireflyIII\Support\Request\ConvertsDataTypes; use Illuminate\Foundation\Http\FormRequest; - /** * Class UpdateRequest * diff --git a/app/Api/V1/Requests/Models/TransactionLinkType/StoreRequest.php b/app/Api/V1/Requests/Models/TransactionLinkType/StoreRequest.php index 00a6376489..1d301fdbb5 100644 --- a/app/Api/V1/Requests/Models/TransactionLinkType/StoreRequest.php +++ b/app/Api/V1/Requests/Models/TransactionLinkType/StoreRequest.php @@ -48,8 +48,6 @@ class StoreRequest extends FormRequest 'outward' => $this->string('outward'), 'inward' => $this->string('inward'), ]; - - } /** diff --git a/app/Api/V1/Requests/Models/TransactionLinkType/UpdateRequest.php b/app/Api/V1/Requests/Models/TransactionLinkType/UpdateRequest.php index 3d738cfef7..cbc2a988f6 100644 --- a/app/Api/V1/Requests/Models/TransactionLinkType/UpdateRequest.php +++ b/app/Api/V1/Requests/Models/TransactionLinkType/UpdateRequest.php @@ -49,8 +49,6 @@ class UpdateRequest extends FormRequest 'outward' => $this->string('outward'), 'inward' => $this->string('inward'), ]; - - } /** diff --git a/app/Api/V1/Requests/Models/Webhook/CreateRequest.php b/app/Api/V1/Requests/Models/Webhook/CreateRequest.php index f96c524813..5345f7eeb8 100644 --- a/app/Api/V1/Requests/Models/Webhook/CreateRequest.php +++ b/app/Api/V1/Requests/Models/Webhook/CreateRequest.php @@ -1,5 +1,4 @@ . - */ namespace FireflyIII\Api\V1\Requests\Models\Webhook; diff --git a/app/Api/V1/Requests/Models/Webhook/UpdateRequest.php b/app/Api/V1/Requests/Models/Webhook/UpdateRequest.php index 6b5f779043..6adc6a0880 100644 --- a/app/Api/V1/Requests/Models/Webhook/UpdateRequest.php +++ b/app/Api/V1/Requests/Models/Webhook/UpdateRequest.php @@ -1,5 +1,4 @@ . - */ namespace FireflyIII\Api\V1\Requests\Models\Webhook; diff --git a/app/Api/V1/Requests/System/UpdateRequest.php b/app/Api/V1/Requests/System/UpdateRequest.php index 67b40c52a0..a123e5477a 100644 --- a/app/Api/V1/Requests/System/UpdateRequest.php +++ b/app/Api/V1/Requests/System/UpdateRequest.php @@ -38,7 +38,6 @@ class UpdateRequest extends FormRequest { use ConvertsDataTypes, ChecksLogin; - /** * Get all data from the request. * diff --git a/app/Api/V1/Requests/System/UserStoreRequest.php b/app/Api/V1/Requests/System/UserStoreRequest.php index dc7c4603e2..a2e4ff67ec 100644 --- a/app/Api/V1/Requests/System/UserStoreRequest.php +++ b/app/Api/V1/Requests/System/UserStoreRequest.php @@ -29,7 +29,6 @@ use FireflyIII\Support\Request\ChecksLogin; use FireflyIII\Support\Request\ConvertsDataTypes; use Illuminate\Foundation\Http\FormRequest; - /** * Class UserStoreRequest */ diff --git a/app/Api/V1/Requests/System/UserUpdateRequest.php b/app/Api/V1/Requests/System/UserUpdateRequest.php index f78e8c03c5..e3a707c00f 100644 --- a/app/Api/V1/Requests/System/UserUpdateRequest.php +++ b/app/Api/V1/Requests/System/UserUpdateRequest.php @@ -29,7 +29,6 @@ use FireflyIII\Support\Request\ChecksLogin; use FireflyIII\Support\Request\ConvertsDataTypes; use Illuminate\Foundation\Http\FormRequest; - /** * Class UserUpdateRequest */ diff --git a/app/Api/V1/Requests/User/PreferenceStoreRequest.php b/app/Api/V1/Requests/User/PreferenceStoreRequest.php index fe589f2801..5e7037c136 100644 --- a/app/Api/V1/Requests/User/PreferenceStoreRequest.php +++ b/app/Api/V1/Requests/User/PreferenceStoreRequest.php @@ -19,8 +19,9 @@ * along with this program. If not, see . */ -namespace FireflyIII\Api\V1\Requests\User; +declare(strict_types=1); +namespace FireflyIII\Api\V1\Requests\User; use FireflyIII\Support\Request\ChecksLogin; use FireflyIII\Support\Request\ConvertsDataTypes; @@ -63,4 +64,4 @@ class PreferenceStoreRequest extends FormRequest ]; } -} \ No newline at end of file +} diff --git a/app/Api/V1/Requests/User/PreferenceUpdateRequest.php b/app/Api/V1/Requests/User/PreferenceUpdateRequest.php index 60d91d4d5e..1daca9562e 100644 --- a/app/Api/V1/Requests/User/PreferenceUpdateRequest.php +++ b/app/Api/V1/Requests/User/PreferenceUpdateRequest.php @@ -1,4 +1,6 @@ line('Updated inconsistent transaction groups.'); - return 0; } } diff --git a/app/Console/Commands/Correction/FixLongDescriptions.php b/app/Console/Commands/Correction/FixLongDescriptions.php index 12ade346d2..32fa810ec7 100644 --- a/app/Console/Commands/Correction/FixLongDescriptions.php +++ b/app/Console/Commands/Correction/FixLongDescriptions.php @@ -47,7 +47,6 @@ class FixLongDescriptions extends Command */ protected $signature = 'firefly-iii:fix-long-descriptions'; - /** * Execute the console command. * diff --git a/app/Console/Commands/Correction/FixPiggies.php b/app/Console/Commands/Correction/FixPiggies.php index eb7875c3ed..274e5265b4 100644 --- a/app/Console/Commands/Correction/FixPiggies.php +++ b/app/Console/Commands/Correction/FixPiggies.php @@ -51,7 +51,6 @@ class FixPiggies extends Command /** @var int */ private $count; - /** * Execute the console command. * diff --git a/app/Console/Commands/Correction/FixRecurringTransactions.php b/app/Console/Commands/Correction/FixRecurringTransactions.php index c34bb68a31..ac6e047558 100644 --- a/app/Console/Commands/Correction/FixRecurringTransactions.php +++ b/app/Console/Commands/Correction/FixRecurringTransactions.php @@ -54,7 +54,6 @@ class FixRecurringTransactions extends Command /** @var UserRepositoryInterface */ private $userRepos; - /** * Execute the console command. * @@ -65,8 +64,6 @@ class FixRecurringTransactions extends Command $start = microtime(true); $this->stupidLaravel(); $this->correctTransactions(); - - $end = round(microtime(true) - $start, 2); $this->info(sprintf('Corrected recurring transactions in %s seconds.', $end)); diff --git a/app/Console/Commands/Correction/FixTransactionTypes.php b/app/Console/Commands/Correction/FixTransactionTypes.php index 3c51059e1f..a3a01326e7 100644 --- a/app/Console/Commands/Correction/FixTransactionTypes.php +++ b/app/Console/Commands/Correction/FixTransactionTypes.php @@ -50,7 +50,6 @@ class FixTransactionTypes extends Command */ protected $signature = 'firefly-iii:fix-transaction-types'; - /** * Execute the console command. * diff --git a/app/Console/Commands/Correction/FixUnevenAmount.php b/app/Console/Commands/Correction/FixUnevenAmount.php index 20c6b08e57..28b28ab7e9 100644 --- a/app/Console/Commands/Correction/FixUnevenAmount.php +++ b/app/Console/Commands/Correction/FixUnevenAmount.php @@ -48,7 +48,6 @@ class FixUnevenAmount extends Command */ protected $signature = 'firefly-iii:fix-uneven-amount'; - /** * Execute the console command. * diff --git a/app/Console/Commands/Correction/RemoveBills.php b/app/Console/Commands/Correction/RemoveBills.php index 53f7a2d126..f4f2d0d1a4 100644 --- a/app/Console/Commands/Correction/RemoveBills.php +++ b/app/Console/Commands/Correction/RemoveBills.php @@ -45,7 +45,6 @@ class RemoveBills extends Command */ protected $signature = 'firefly-iii:remove-bills'; - /** * Execute the console command. * diff --git a/app/Console/Commands/Correction/RenameMetaFields.php b/app/Console/Commands/Correction/RenameMetaFields.php index 8be384f419..75af3c3ff1 100644 --- a/app/Console/Commands/Correction/RenameMetaFields.php +++ b/app/Console/Commands/Correction/RenameMetaFields.php @@ -46,7 +46,6 @@ class RenameMetaFields extends Command private int $count; - /** * Execute the console command. * diff --git a/app/Console/Commands/Correction/TransferBudgets.php b/app/Console/Commands/Correction/TransferBudgets.php index 8022122edc..173b010e1a 100644 --- a/app/Console/Commands/Correction/TransferBudgets.php +++ b/app/Console/Commands/Correction/TransferBudgets.php @@ -46,7 +46,6 @@ class TransferBudgets extends Command */ protected $signature = 'firefly-iii:fix-transfer-budgets'; - /** * Execute the console command. * diff --git a/app/Console/Commands/CreateDatabase.php b/app/Console/Commands/CreateDatabase.php index ab87a7ac48..aa4a9092d9 100644 --- a/app/Console/Commands/CreateDatabase.php +++ b/app/Console/Commands/CreateDatabase.php @@ -28,7 +28,6 @@ use Illuminate\Console\Command; use PDO; use PDOException; - /** * Class CreateDatabase */ @@ -47,7 +46,6 @@ class CreateDatabase extends Command */ protected $signature = 'firefly-iii:create-database'; - /** * Execute the console command. * diff --git a/app/Console/Commands/CreateFirstUser.php b/app/Console/Commands/CreateFirstUser.php index 3ddec90a24..aa7a4d10b6 100644 --- a/app/Console/Commands/CreateFirstUser.php +++ b/app/Console/Commands/CreateFirstUser.php @@ -47,7 +47,7 @@ class CreateFirstUser extends Command * * @var string */ - protected $signature = 'firefly-iii:create-first-user {email}'; + protected $signature = 'firefly-iii:create-first-user {email}'; private UserRepositoryInterface $repository; /** diff --git a/app/Console/Commands/Export/ExportData.php b/app/Console/Commands/Export/ExportData.php index e06f2ff9b8..d5da37c14a 100644 --- a/app/Console/Commands/Export/ExportData.php +++ b/app/Console/Commands/Export/ExportData.php @@ -78,7 +78,6 @@ class ExportData extends Command private JournalRepositoryInterface $journalRepository; private User $user; - /** * Execute the console command. * @@ -115,8 +114,6 @@ class ExportData extends Command $exporter->setStart($options['start']); $exporter->setEnd($options['end']); $exporter->setAccounts($options['accounts']); - - $exporter->setExportTransactions($options['export']['transactions']); $exporter->setExportAccounts($options['export']['accounts']); $exporter->setExportBudgets($options['export']['budgets']); @@ -294,6 +291,4 @@ class ExportData extends Command $this->info(sprintf('Wrote %s-export to file "%s".', $key, $file)); } } - - } diff --git a/app/Console/Commands/Integrity/ReportEmptyObjects.php b/app/Console/Commands/Integrity/ReportEmptyObjects.php index fe8f33d061..fe1d9eaa3b 100644 --- a/app/Console/Commands/Integrity/ReportEmptyObjects.php +++ b/app/Console/Commands/Integrity/ReportEmptyObjects.php @@ -48,7 +48,6 @@ class ReportEmptyObjects extends Command */ protected $signature = 'firefly-iii:report-empty-objects'; - /** * Execute the console command. * diff --git a/app/Console/Commands/Integrity/ReportIntegrity.php b/app/Console/Commands/Integrity/ReportIntegrity.php index ed63e7c54b..c4f7122fb6 100644 --- a/app/Console/Commands/Integrity/ReportIntegrity.php +++ b/app/Console/Commands/Integrity/ReportIntegrity.php @@ -23,7 +23,6 @@ declare(strict_types=1); namespace FireflyIII\Console\Commands\Integrity; - use Artisan; use Illuminate\Console\Command; use Schema; @@ -49,7 +48,6 @@ class ReportIntegrity extends Command */ protected $signature = 'firefly-iii:report-integrity'; - /** * Execute the console command. */ diff --git a/app/Console/Commands/Integrity/ReportSum.php b/app/Console/Commands/Integrity/ReportSum.php index f11366c8f4..a9b6054269 100644 --- a/app/Console/Commands/Integrity/ReportSum.php +++ b/app/Console/Commands/Integrity/ReportSum.php @@ -45,7 +45,6 @@ class ReportSum extends Command */ protected $signature = 'firefly-iii:report-sum'; - /** * Execute the console command. * @@ -58,7 +57,6 @@ class ReportSum extends Command return 0; } - /** * Reports for each user when the sum of their transactions is not zero. */ diff --git a/app/Console/Commands/Integrity/RestoreOAuthKeys.php b/app/Console/Commands/Integrity/RestoreOAuthKeys.php index 9f8c66e76c..4144ebcfbe 100644 --- a/app/Console/Commands/Integrity/RestoreOAuthKeys.php +++ b/app/Console/Commands/Integrity/RestoreOAuthKeys.php @@ -46,7 +46,6 @@ class RestoreOAuthKeys extends Command */ protected $signature = 'firefly-iii:restore-oauth-keys'; - /** * Execute the console command. * diff --git a/app/Console/Commands/ScanAttachments.php b/app/Console/Commands/ScanAttachments.php index 51e2a42abe..b423497fda 100644 --- a/app/Console/Commands/ScanAttachments.php +++ b/app/Console/Commands/ScanAttachments.php @@ -54,7 +54,6 @@ class ScanAttachments extends Command */ protected $signature = 'firefly-iii:scan-attachments'; - /** * Execute the console command. */ diff --git a/app/Console/Commands/SetLatestVersion.php b/app/Console/Commands/SetLatestVersion.php index 310cc2d19f..b961e755d7 100644 --- a/app/Console/Commands/SetLatestVersion.php +++ b/app/Console/Commands/SetLatestVersion.php @@ -44,7 +44,6 @@ class SetLatestVersion extends Command */ protected $signature = 'firefly-iii:set-latest-version {--james-is-cool}'; - /** * Execute the console command. * diff --git a/app/Console/Commands/Tools/ApplyRules.php b/app/Console/Commands/Tools/ApplyRules.php index 04295f3dc5..d01e63fba3 100644 --- a/app/Console/Commands/Tools/ApplyRules.php +++ b/app/Console/Commands/Tools/ApplyRules.php @@ -23,7 +23,6 @@ declare(strict_types=1); namespace FireflyIII\Console\Commands\Tools; - use Carbon\Carbon; use FireflyIII\Console\Commands\VerifiesAccessToken; use FireflyIII\Exceptions\FireflyException; @@ -78,7 +77,6 @@ class ApplyRules extends Command private array $ruleSelection; private Carbon $startDate; - /** * Execute the console command. * @@ -227,8 +225,6 @@ class ApplyRules extends Command /** @var AccountRepositoryInterface $accountRepository */ $accountRepository = app(AccountRepositoryInterface::class); $accountRepository->setUser($this->getUser()); - - foreach ($accountList as $accountId) { $accountId = (int)$accountId; $account = $accountRepository->findNull($accountId); diff --git a/app/Console/Commands/Tools/Cron.php b/app/Console/Commands/Tools/Cron.php index 0012981ff5..d65dc729fc 100644 --- a/app/Console/Commands/Tools/Cron.php +++ b/app/Console/Commands/Tools/Cron.php @@ -57,7 +57,6 @@ class Cron extends Command {--date= : Set the date in YYYY-MM-DD to make Firefly III think that\'s the current date.} '; - /** * @return int */ diff --git a/app/Console/Commands/Upgrade/AccountCurrencies.php b/app/Console/Commands/Upgrade/AccountCurrencies.php index ae331fa8e4..3c9a11bad7 100644 --- a/app/Console/Commands/Upgrade/AccountCurrencies.php +++ b/app/Console/Commands/Upgrade/AccountCurrencies.php @@ -59,7 +59,6 @@ class AccountCurrencies extends Command /** @var UserRepositoryInterface */ private $userRepos; - /** * Each (asset) account must have a reference to a preferred currency. If the account does not have one, it's forced upon the account. * @@ -88,7 +87,6 @@ class AccountCurrencies extends Command $this->info(sprintf('Verified and fixed account currencies in %s seconds.', $end)); $this->markAsExecuted(); - return 0; } @@ -206,8 +204,6 @@ class AccountCurrencies extends Command return; } - - // do not match and opening balance id is not null. if ($accountCurrency !== $obCurrency && null !== $openingBalance) { Log::debug(sprintf('Account (#%d) and OB currency (#%d) are different. Overrule OB, set to account currency.', $accountCurrency, $obCurrency)); diff --git a/app/Console/Commands/Upgrade/AppendBudgetLimitPeriods.php b/app/Console/Commands/Upgrade/AppendBudgetLimitPeriods.php index 3af1a62fc5..b3fb1a3bc2 100644 --- a/app/Console/Commands/Upgrade/AppendBudgetLimitPeriods.php +++ b/app/Console/Commands/Upgrade/AppendBudgetLimitPeriods.php @@ -1,5 +1,4 @@ . - */ namespace FireflyIII\Console\Commands\Upgrade; diff --git a/app/Console/Commands/Upgrade/BackToJournals.php b/app/Console/Commands/Upgrade/BackToJournals.php index e2956bd6ef..a499a83009 100644 --- a/app/Console/Commands/Upgrade/BackToJournals.php +++ b/app/Console/Commands/Upgrade/BackToJournals.php @@ -51,7 +51,6 @@ class BackToJournals extends Command */ protected $signature = 'firefly-iii:back-to-journals {--F|force : Force the execution of this command.}'; - /** * Execute the console command. * diff --git a/app/Console/Commands/Upgrade/BudgetLimitCurrency.php b/app/Console/Commands/Upgrade/BudgetLimitCurrency.php index 586d9fae96..0867427b99 100644 --- a/app/Console/Commands/Upgrade/BudgetLimitCurrency.php +++ b/app/Console/Commands/Upgrade/BudgetLimitCurrency.php @@ -23,7 +23,6 @@ declare(strict_types=1); namespace FireflyIII\Console\Commands\Upgrade; - use FireflyIII\Models\Budget; use FireflyIII\Models\BudgetLimit; use Illuminate\Console\Command; @@ -47,7 +46,6 @@ class BudgetLimitCurrency extends Command */ protected $signature = 'firefly-iii:bl-currency {--F|force : Force the execution of this command.}'; - /** * Execute the console command. * @@ -109,7 +107,6 @@ class BudgetLimitCurrency extends Command return false; // @codeCoverageIgnore } - /** * */ diff --git a/app/Console/Commands/Upgrade/CCLiabilities.php b/app/Console/Commands/Upgrade/CCLiabilities.php index e8f442f9df..e5736d230f 100644 --- a/app/Console/Commands/Upgrade/CCLiabilities.php +++ b/app/Console/Commands/Upgrade/CCLiabilities.php @@ -23,7 +23,6 @@ declare(strict_types=1); namespace FireflyIII\Console\Commands\Upgrade; - use FireflyIII\Models\Account; use FireflyIII\Models\AccountType; use Illuminate\Console\Command; @@ -34,8 +33,6 @@ use Illuminate\Support\Collection; */ class CCLiabilities extends Command { - - public const CONFIG_NAME = '480_cc_liabilities'; /** * The console command description. @@ -50,7 +47,6 @@ class CCLiabilities extends Command */ protected $signature = 'firefly-iii:cc-liabilities {--F|force : Force the execution of this command.}'; - /** * Execute the console command. * @@ -108,7 +104,6 @@ class CCLiabilities extends Command return false; // @codeCoverageIgnore } - /** * */ diff --git a/app/Console/Commands/Upgrade/MigrateAttachments.php b/app/Console/Commands/Upgrade/MigrateAttachments.php index a02d72f793..512adf9562 100644 --- a/app/Console/Commands/Upgrade/MigrateAttachments.php +++ b/app/Console/Commands/Upgrade/MigrateAttachments.php @@ -23,7 +23,6 @@ declare(strict_types=1); namespace FireflyIII\Console\Commands\Upgrade; - use FireflyIII\Models\Attachment; use FireflyIII\Models\Note; use Illuminate\Console\Command; @@ -48,7 +47,6 @@ class MigrateAttachments extends Command */ protected $signature = 'firefly-iii:migrate-attachments {--F|force : Force the execution of this command.}'; - /** * Execute the console command. * @@ -118,7 +116,6 @@ class MigrateAttachments extends Command return false; // @codeCoverageIgnore } - /** * */ diff --git a/app/Console/Commands/Upgrade/MigrateJournalNotes.php b/app/Console/Commands/Upgrade/MigrateJournalNotes.php index 5b1ef28746..685e1a77a4 100644 --- a/app/Console/Commands/Upgrade/MigrateJournalNotes.php +++ b/app/Console/Commands/Upgrade/MigrateJournalNotes.php @@ -23,7 +23,6 @@ declare(strict_types=1); namespace FireflyIII\Console\Commands\Upgrade; - use Exception; use FireflyIII\Models\Note; use FireflyIII\Models\TransactionJournalMeta; @@ -49,7 +48,6 @@ class MigrateJournalNotes extends Command */ protected $signature = 'firefly-iii:migrate-notes {--F|force : Force the execution of this command.}'; - /** * Execute the console command. * @@ -117,7 +115,6 @@ class MigrateJournalNotes extends Command return false; // @codeCoverageIgnore } - /** * */ diff --git a/app/Console/Commands/Upgrade/MigrateRecurrenceMeta.php b/app/Console/Commands/Upgrade/MigrateRecurrenceMeta.php index 0a35c94c5b..bb1365ac8f 100644 --- a/app/Console/Commands/Upgrade/MigrateRecurrenceMeta.php +++ b/app/Console/Commands/Upgrade/MigrateRecurrenceMeta.php @@ -47,7 +47,6 @@ class MigrateRecurrenceMeta extends Command */ protected $signature = 'firefly-iii:migrate-recurrence-meta {--F|force : Force the execution of this command.}'; - /** * Execute the console command. * diff --git a/app/Console/Commands/Upgrade/MigrateRecurrenceType.php b/app/Console/Commands/Upgrade/MigrateRecurrenceType.php index af5e5a7a7a..51d32603c1 100644 --- a/app/Console/Commands/Upgrade/MigrateRecurrenceType.php +++ b/app/Console/Commands/Upgrade/MigrateRecurrenceType.php @@ -1,5 +1,27 @@ . + */ + +declare(strict_types=1); + namespace FireflyIII\Console\Commands\Upgrade; use FireflyIII\Models\Recurrence; diff --git a/app/Console/Commands/Upgrade/MigrateTagLocations.php b/app/Console/Commands/Upgrade/MigrateTagLocations.php index b6a9bacbad..b201db99f2 100644 --- a/app/Console/Commands/Upgrade/MigrateTagLocations.php +++ b/app/Console/Commands/Upgrade/MigrateTagLocations.php @@ -48,7 +48,6 @@ class MigrateTagLocations extends Command */ protected $signature = 'firefly-iii:migrate-tag-locations {--F|force : Force the execution of this command.}'; - /** * Execute the console command. * @@ -130,6 +129,4 @@ class MigrateTagLocations extends Command { app('fireflyconfig')->set(self::CONFIG_NAME, true); } - - } diff --git a/app/Console/Commands/Upgrade/MigrateToGroups.php b/app/Console/Commands/Upgrade/MigrateToGroups.php index 7e12b33577..48f5d709f4 100644 --- a/app/Console/Commands/Upgrade/MigrateToGroups.php +++ b/app/Console/Commands/Upgrade/MigrateToGroups.php @@ -104,8 +104,6 @@ class MigrateToGroups extends Command if (0 === $this->count) { $this->line('No journals to migrate to groups.'); } - - $this->markAsMigrated(); return 0; diff --git a/app/Console/Commands/Upgrade/MigrateToRules.php b/app/Console/Commands/Upgrade/MigrateToRules.php index d7b8a1a2b3..44024e4077 100644 --- a/app/Console/Commands/Upgrade/MigrateToRules.php +++ b/app/Console/Commands/Upgrade/MigrateToRules.php @@ -23,7 +23,6 @@ declare(strict_types=1); namespace FireflyIII\Console\Commands\Upgrade; - use FireflyIII\Exceptions\FireflyException; use FireflyIII\Models\Bill; use FireflyIII\Models\Preference; @@ -63,7 +62,6 @@ class MigrateToRules extends Command /** @var UserRepositoryInterface */ private $userRepository; - /** * Execute the console command. * diff --git a/app/Console/Commands/Upgrade/OtherCurrenciesCorrections.php b/app/Console/Commands/Upgrade/OtherCurrenciesCorrections.php index 7aee00ec54..f274d63087 100644 --- a/app/Console/Commands/Upgrade/OtherCurrenciesCorrections.php +++ b/app/Console/Commands/Upgrade/OtherCurrenciesCorrections.php @@ -66,7 +66,6 @@ class OtherCurrenciesCorrections extends Command /** @var JournalRepositoryInterface */ private $journalRepos; - /** * Execute the console command. * diff --git a/app/Console/Commands/Upgrade/RenameAccountMeta.php b/app/Console/Commands/Upgrade/RenameAccountMeta.php index d697c17c34..9e12c60d7b 100644 --- a/app/Console/Commands/Upgrade/RenameAccountMeta.php +++ b/app/Console/Commands/Upgrade/RenameAccountMeta.php @@ -45,7 +45,6 @@ class RenameAccountMeta extends Command */ protected $signature = 'firefly-iii:rename-account-meta {--F|force : Force the execution of this command.}'; - /** * Execute the console command. * @@ -108,7 +107,6 @@ class RenameAccountMeta extends Command return false; // @codeCoverageIgnore } - /** * */ diff --git a/app/Console/Commands/Upgrade/TransactionIdentifier.php b/app/Console/Commands/Upgrade/TransactionIdentifier.php index 9ddad9f896..3628af9d9c 100644 --- a/app/Console/Commands/Upgrade/TransactionIdentifier.php +++ b/app/Console/Commands/Upgrade/TransactionIdentifier.php @@ -57,7 +57,6 @@ class TransactionIdentifier extends Command /** @var JournalRepositoryInterface */ private $journalRepository; - /** * This method gives all transactions which are part of a split journal (so more than 2) a sort of "order" so they are easier * to easier to match to their counterpart. When a journal is split, it has two or three transactions: -3, -4 and -5 for example. diff --git a/app/Console/Commands/Upgrade/TransferCurrenciesCorrections.php b/app/Console/Commands/Upgrade/TransferCurrenciesCorrections.php index b23de4ae19..9524a85c4a 100644 --- a/app/Console/Commands/Upgrade/TransferCurrenciesCorrections.php +++ b/app/Console/Commands/Upgrade/TransferCurrenciesCorrections.php @@ -186,8 +186,6 @@ class TransferCurrenciesCorrections extends Command return; } // @codeCoverageIgnoreEnd - - // both accounts must have currency preference: // @codeCoverageIgnoreStart if ($this->isNoCurrencyPresent()) { diff --git a/app/Console/Commands/Upgrade/UpgradeDatabase.php b/app/Console/Commands/Upgrade/UpgradeDatabase.php index ca3d4ca158..7dd43c5b48 100644 --- a/app/Console/Commands/Upgrade/UpgradeDatabase.php +++ b/app/Console/Commands/Upgrade/UpgradeDatabase.php @@ -48,7 +48,6 @@ class UpgradeDatabase extends Command */ protected $signature = 'firefly-iii:upgrade-database {--F|force : Force all upgrades.}'; - /** * Execute the console command. * @@ -58,8 +57,6 @@ class UpgradeDatabase extends Command { $this->callInitialCommands(); - - $commands = [ // there are 14 upgrade commands. 'firefly-iii:transaction-identifiers', diff --git a/app/Console/Commands/UpgradeFireflyInstructions.php b/app/Console/Commands/UpgradeFireflyInstructions.php index f905385b12..b178a1f6ab 100644 --- a/app/Console/Commands/UpgradeFireflyInstructions.php +++ b/app/Console/Commands/UpgradeFireflyInstructions.php @@ -50,7 +50,6 @@ class UpgradeFireflyInstructions extends Command */ protected $signature = 'firefly:instructions {task}'; - /** * Execute the console command. */ @@ -168,8 +167,6 @@ class UpgradeFireflyInstructions extends Command $text = $config[$compare]; } } - - $this->showLine(); $this->boxed(''); if (null === $text) { diff --git a/app/Events/AdminRequestedTestMessage.php b/app/Events/AdminRequestedTestMessage.php index 87b3652aa2..821064065c 100644 --- a/app/Events/AdminRequestedTestMessage.php +++ b/app/Events/AdminRequestedTestMessage.php @@ -41,8 +41,6 @@ class AdminRequestedTestMessage extends Event public $ipAddress; /** @var User The user */ public $user; - - /** * Create a new event instance. * diff --git a/app/Events/DestroyedTransactionGroup.php b/app/Events/DestroyedTransactionGroup.php index 483dbc1abc..baca5a78f5 100644 --- a/app/Events/DestroyedTransactionGroup.php +++ b/app/Events/DestroyedTransactionGroup.php @@ -37,8 +37,6 @@ class DestroyedTransactionGroup extends Event use SerializesModels; public TransactionGroup $transactionGroup; - - /** * Create a new event instance. * diff --git a/app/Events/DestroyedTransactionLink.php b/app/Events/DestroyedTransactionLink.php index a23465063e..fde76cf98c 100644 --- a/app/Events/DestroyedTransactionLink.php +++ b/app/Events/DestroyedTransactionLink.php @@ -22,8 +22,6 @@ declare(strict_types=1); namespace FireflyIII\Events; - - use FireflyIII\Models\TransactionJournalLink; use Illuminate\Queue\SerializesModels; diff --git a/app/Events/DetectedNewIPAddress.php b/app/Events/DetectedNewIPAddress.php index b381200a83..231f1247d8 100644 --- a/app/Events/DetectedNewIPAddress.php +++ b/app/Events/DetectedNewIPAddress.php @@ -1,5 +1,4 @@ . - */ namespace FireflyIII\Events; - - use FireflyIII\User; use Illuminate\Queue\SerializesModels; diff --git a/app/Events/RegisteredUser.php b/app/Events/RegisteredUser.php index 2518f8214e..a8a8d59fd7 100644 --- a/app/Events/RegisteredUser.php +++ b/app/Events/RegisteredUser.php @@ -40,8 +40,6 @@ class RegisteredUser extends Event public $ipAddress; /** @var User The user */ public $user; - - /** * Create a new event instance. This event is triggered when a new user registers. * diff --git a/app/Events/RequestedNewPassword.php b/app/Events/RequestedNewPassword.php index 2532ccc837..13f04ce363 100644 --- a/app/Events/RequestedNewPassword.php +++ b/app/Events/RequestedNewPassword.php @@ -42,8 +42,6 @@ class RequestedNewPassword extends Event public $token; /** @var User The user */ public $user; - - /** * Create a new event instance. This event is triggered when a users tries to reset his or her password. * diff --git a/app/Events/RequestedReportOnJournals.php b/app/Events/RequestedReportOnJournals.php index e16e0d205c..cfe28a5d9f 100644 --- a/app/Events/RequestedReportOnJournals.php +++ b/app/Events/RequestedReportOnJournals.php @@ -45,8 +45,6 @@ class RequestedReportOnJournals public $groups; /** @var int The ID of the user. */ public $userId; - - /** * Create a new event instance. * diff --git a/app/Events/RequestedSendWebhookMessages.php b/app/Events/RequestedSendWebhookMessages.php index 15ac7b55c2..a46fb630e5 100644 --- a/app/Events/RequestedSendWebhookMessages.php +++ b/app/Events/RequestedSendWebhookMessages.php @@ -1,5 +1,4 @@ . - */ namespace FireflyIII\Events; use Illuminate\Queue\SerializesModels; - - class RequestedSendWebhookMessages extends Event { use SerializesModels; diff --git a/app/Events/RequestedVersionCheckStatus.php b/app/Events/RequestedVersionCheckStatus.php index 45f26a92c9..cdd1aa4d76 100644 --- a/app/Events/RequestedVersionCheckStatus.php +++ b/app/Events/RequestedVersionCheckStatus.php @@ -26,8 +26,6 @@ namespace FireflyIII\Events; use FireflyIII\User; use Illuminate\Queue\SerializesModels; - - /** * Class RequestedVersionCheckStatus * @@ -39,8 +37,6 @@ class RequestedVersionCheckStatus extends Event /** @var User The user */ public $user; - - /** * Create a new event instance. This event is triggered when Firefly III wants to know * what the deal is with the version checker. diff --git a/app/Events/StoredTransactionGroup.php b/app/Events/StoredTransactionGroup.php index 56b80fd217..558dc9015d 100644 --- a/app/Events/StoredTransactionGroup.php +++ b/app/Events/StoredTransactionGroup.php @@ -38,8 +38,6 @@ class StoredTransactionGroup extends Event public bool $applyRules; public TransactionGroup $transactionGroup; - - /** * Create a new event instance. * diff --git a/app/Events/StoredTransactionLink.php b/app/Events/StoredTransactionLink.php index 401a506b0b..087142ca0a 100644 --- a/app/Events/StoredTransactionLink.php +++ b/app/Events/StoredTransactionLink.php @@ -22,8 +22,6 @@ declare(strict_types=1); namespace FireflyIII\Events; - - use FireflyIII\Models\TransactionJournalLink; use Illuminate\Queue\SerializesModels; diff --git a/app/Events/UpdatedTransactionGroup.php b/app/Events/UpdatedTransactionGroup.php index bd3f14e589..e379251fbd 100644 --- a/app/Events/UpdatedTransactionGroup.php +++ b/app/Events/UpdatedTransactionGroup.php @@ -40,8 +40,6 @@ class UpdatedTransactionGroup extends Event public $applyRules; /** @var TransactionGroup The group that was stored. */ public $transactionGroup; - - /** * Create a new event instance. * diff --git a/app/Events/UpdatedTransactionLink.php b/app/Events/UpdatedTransactionLink.php index 6e18ee2463..c2499ec9a2 100644 --- a/app/Events/UpdatedTransactionLink.php +++ b/app/Events/UpdatedTransactionLink.php @@ -22,8 +22,6 @@ declare(strict_types=1); namespace FireflyIII\Events; - - use FireflyIII\Models\TransactionJournalLink; use Illuminate\Queue\SerializesModels; diff --git a/app/Events/UserChangedEmail.php b/app/Events/UserChangedEmail.php index d293b4ed15..c8b3dec0b6 100644 --- a/app/Events/UserChangedEmail.php +++ b/app/Events/UserChangedEmail.php @@ -44,8 +44,6 @@ class UserChangedEmail extends Event public $oldEmail; /** @var User The user itself */ public $user; - - /** * UserChangedEmail constructor. * diff --git a/app/Exceptions/GracefulNotFoundHandler.php b/app/Exceptions/GracefulNotFoundHandler.php index 9af5faa991..c87c4a5327 100644 --- a/app/Exceptions/GracefulNotFoundHandler.php +++ b/app/Exceptions/GracefulNotFoundHandler.php @@ -23,7 +23,6 @@ declare(strict_types=1); namespace FireflyIII\Exceptions; - use Exception; use FireflyIII\Models\Account; use FireflyIII\Models\Attachment; diff --git a/app/Exceptions/Handler.php b/app/Exceptions/Handler.php index 2e94350ecc..b2dede5d2e 100644 --- a/app/Exceptions/Handler.php +++ b/app/Exceptions/Handler.php @@ -98,8 +98,6 @@ class Handler extends ExceptionHandler return $handler->render($request, $exception); } - - if ($exception instanceof FireflyException || $exception instanceof ErrorException || $exception instanceof OAuthServerException) { $isDebug = config('app.debug'); diff --git a/app/Factory/AccountFactory.php b/app/Factory/AccountFactory.php index 74c349d22d..e755820b98 100644 --- a/app/Factory/AccountFactory.php +++ b/app/Factory/AccountFactory.php @@ -208,7 +208,6 @@ class AccountFactory Log::debug(sprintf('Found account type based on %d and "%s": "%s"', $accountTypeId, $accountType, $result->type)); } - return $result; } @@ -233,6 +232,4 @@ class AccountFactory { $this->user = $user; } - - } diff --git a/app/Factory/CategoryFactory.php b/app/Factory/CategoryFactory.php index 9a84dda2a6..2a5dcbe67f 100644 --- a/app/Factory/CategoryFactory.php +++ b/app/Factory/CategoryFactory.php @@ -23,7 +23,6 @@ declare(strict_types=1); namespace FireflyIII\Factory; - use FireflyIII\Exceptions\FireflyException; use FireflyIII\Models\Category; use FireflyIII\User; diff --git a/app/Factory/PiggyBankFactory.php b/app/Factory/PiggyBankFactory.php index 4d337dcf1e..29a4fb70d9 100644 --- a/app/Factory/PiggyBankFactory.php +++ b/app/Factory/PiggyBankFactory.php @@ -23,7 +23,6 @@ declare(strict_types=1); namespace FireflyIII\Factory; - use FireflyIII\Models\PiggyBank; use FireflyIII\User; diff --git a/app/Factory/RecurrenceFactory.php b/app/Factory/RecurrenceFactory.php index 7a9298e88a..8b0c70e2f1 100644 --- a/app/Factory/RecurrenceFactory.php +++ b/app/Factory/RecurrenceFactory.php @@ -24,7 +24,6 @@ declare(strict_types=1); namespace FireflyIII\Factory; - use Carbon\Carbon; use FireflyIII\Exceptions\FireflyException; use FireflyIII\Models\Recurrence; @@ -45,7 +44,6 @@ class RecurrenceFactory private MessageBag $errors; private User $user; - /** * Constructor. * diff --git a/app/Factory/TransactionCurrencyFactory.php b/app/Factory/TransactionCurrencyFactory.php index 4e355b3c09..86bb2dacd0 100644 --- a/app/Factory/TransactionCurrencyFactory.php +++ b/app/Factory/TransactionCurrencyFactory.php @@ -102,6 +102,4 @@ class TransactionCurrencyFactory return null; } - - } diff --git a/app/Factory/TransactionFactory.php b/app/Factory/TransactionFactory.php index 66739d3209..759251a790 100644 --- a/app/Factory/TransactionFactory.php +++ b/app/Factory/TransactionFactory.php @@ -45,7 +45,6 @@ class TransactionFactory private bool $reconciled; private User $user; - /** * Constructor. * diff --git a/app/Factory/TransactionGroupFactory.php b/app/Factory/TransactionGroupFactory.php index e7f6d99e1a..902004855f 100644 --- a/app/Factory/TransactionGroupFactory.php +++ b/app/Factory/TransactionGroupFactory.php @@ -41,7 +41,6 @@ class TransactionGroupFactory /** @var User The user */ private $user; - /** * TransactionGroupFactory constructor. */ @@ -75,7 +74,7 @@ class TransactionGroupFactory if (null !== $title) { $title = substr($title, 0, 1000); } - if(0 === $collection->count()) { + if (0 === $collection->count()) { throw new FireflyException('Created zero transaction journals.'); } diff --git a/app/Factory/TransactionJournalFactory.php b/app/Factory/TransactionJournalFactory.php index 3350b2720e..ac981c7984 100644 --- a/app/Factory/TransactionJournalFactory.php +++ b/app/Factory/TransactionJournalFactory.php @@ -263,8 +263,6 @@ class TransactionJournalFactory $this->forceDeleteOnError(new Collection([$journal])); throw new FireflyException($e->getMessage()); } - - // verify that journal has two transactions. Otherwise, delete and cancel. $journal->completed = true; $journal->save(); @@ -578,6 +576,4 @@ class TransactionJournalFactory $this->piggyRepository->setUser($this->user); $this->accountRepository->setUser($this->user); } - - } diff --git a/app/Generator/Report/Standard/YearReportGenerator.php b/app/Generator/Report/Standard/YearReportGenerator.php index 1e80fe6026..7b0f7ec6c2 100644 --- a/app/Generator/Report/Standard/YearReportGenerator.php +++ b/app/Generator/Report/Standard/YearReportGenerator.php @@ -66,7 +66,6 @@ class YearReportGenerator implements ReportGeneratorInterface return $result; } - /** * Set the accounts. * diff --git a/app/Generator/Webhook/MessageGeneratorInterface.php b/app/Generator/Webhook/MessageGeneratorInterface.php index 8d02908203..066a203fa1 100644 --- a/app/Generator/Webhook/MessageGeneratorInterface.php +++ b/app/Generator/Webhook/MessageGeneratorInterface.php @@ -1,5 +1,4 @@ . - */ namespace FireflyIII\Generator\Webhook; diff --git a/app/Generator/Webhook/StandardMessageGenerator.php b/app/Generator/Webhook/StandardMessageGenerator.php index 751dd6260d..f00d164bf6 100644 --- a/app/Generator/Webhook/StandardMessageGenerator.php +++ b/app/Generator/Webhook/StandardMessageGenerator.php @@ -1,25 +1,5 @@ . - */ - declare(strict_types=1); /* * WebhookMessageGenerator.php diff --git a/app/Handlers/Events/APIEventHandler.php b/app/Handlers/Events/APIEventHandler.php index b04c80ed5d..1e9542f6d2 100644 --- a/app/Handlers/Events/APIEventHandler.php +++ b/app/Handlers/Events/APIEventHandler.php @@ -23,7 +23,6 @@ declare(strict_types=1); namespace FireflyIII\Handlers\Events; - use Exception; use FireflyIII\Mail\AccessTokenCreatedMail; use FireflyIII\Repositories\User\UserRepositoryInterface; @@ -82,8 +81,6 @@ class APIEventHandler } return true; - - } } diff --git a/app/Handlers/Events/DestroyedGroupEventHandler.php b/app/Handlers/Events/DestroyedGroupEventHandler.php index 74d58492c6..7d6837cd14 100644 --- a/app/Handlers/Events/DestroyedGroupEventHandler.php +++ b/app/Handlers/Events/DestroyedGroupEventHandler.php @@ -1,5 +1,4 @@ . - */ namespace FireflyIII\Handlers\Events; - use FireflyIII\Events\DestroyedTransactionGroup; use FireflyIII\Events\RequestedSendWebhookMessages; use FireflyIII\Generator\Webhook\MessageGeneratorInterface; diff --git a/app/Handlers/Events/UserEventHandler.php b/app/Handlers/Events/UserEventHandler.php index f2606086a4..095ca2f773 100644 --- a/app/Handlers/Events/UserEventHandler.php +++ b/app/Handlers/Events/UserEventHandler.php @@ -318,8 +318,6 @@ class UserEventHandler 'time' => now(config('app.timezone'))->format('Y-m-d H:i:s'), 'notified' => false, ]; - - } $preference = array_values($preference); app('preferences')->setForUser($user, 'login_ip_history', $preference); diff --git a/app/Handlers/Events/VersionCheckEventHandler.php b/app/Handlers/Events/VersionCheckEventHandler.php index 7399974dc4..7e8d200bdb 100644 --- a/app/Handlers/Events/VersionCheckEventHandler.php +++ b/app/Handlers/Events/VersionCheckEventHandler.php @@ -24,7 +24,6 @@ declare(strict_types=1); namespace FireflyIII\Handlers\Events; - use FireflyIII\Events\RequestedVersionCheckStatus; use FireflyIII\Helpers\Update\UpdateTrait; use FireflyIII\Models\Configuration; @@ -32,7 +31,6 @@ use FireflyIII\Repositories\User\UserRepositoryInterface; use FireflyIII\User; use Log; - /** * Class VersionCheckEventHandler */ diff --git a/app/Handlers/Events/WebhookEventHandler.php b/app/Handlers/Events/WebhookEventHandler.php index cb6a4ea66e..2a75380c21 100644 --- a/app/Handlers/Events/WebhookEventHandler.php +++ b/app/Handlers/Events/WebhookEventHandler.php @@ -1,5 +1,4 @@ . - */ namespace FireflyIII\Handlers\Events; - use FireflyIII\Jobs\SendWebhookMessage; use FireflyIII\Models\WebhookMessage; use Log; diff --git a/app/Helpers/Attachments/AttachmentHelper.php b/app/Helpers/Attachments/AttachmentHelper.php index ef89e71efe..f5ac7b738d 100644 --- a/app/Helpers/Attachments/AttachmentHelper.php +++ b/app/Helpers/Attachments/AttachmentHelper.php @@ -56,7 +56,6 @@ class AttachmentHelper implements AttachmentHelperInterface /** @var Filesystem The disk where attachments are stored. */ protected $uploadDisk; - /** * AttachmentHelper constructor. * @@ -72,7 +71,6 @@ class AttachmentHelper implements AttachmentHelperInterface $this->uploadDisk = Storage::disk('upload'); } - /** * Returns the content of an attachment. * diff --git a/app/Helpers/Collector/Extensions/AccountCollection.php b/app/Helpers/Collector/Extensions/AccountCollection.php index 0b4f32361d..41f3aa35b7 100644 --- a/app/Helpers/Collector/Extensions/AccountCollection.php +++ b/app/Helpers/Collector/Extensions/AccountCollection.php @@ -53,7 +53,6 @@ trait AccountCollection return $this; } - /** * These accounts must not be source accounts. * @@ -73,7 +72,6 @@ trait AccountCollection return $this; } - /** * Define which accounts can be part of the source and destination transactions. * @@ -120,7 +118,6 @@ trait AccountCollection return $this; } - /** * Define which accounts can be part of the source and destination transactions. * @@ -140,7 +137,6 @@ trait AccountCollection return $this; } - /** * Define which accounts can be part of the source and destination transactions. * @@ -160,7 +156,6 @@ trait AccountCollection return $this; } - /** * Either account can be set, but NOT both. This effectively excludes internal transfers. * @@ -198,7 +193,6 @@ trait AccountCollection return $this; } - /** * Will include the source and destination account names and types. * @@ -222,11 +216,9 @@ trait AccountCollection $this->query->leftJoin('account_types as dest_account_type', 'dest_account_type.id', '=', 'dest_account.account_type_id'); // and add fields: - $this->fields[] = 'dest_account.name as destination_account_name'; - $this->fields[] = 'dest_account.iban as destination_account_iban'; - $this->fields[] = 'dest_account_type.type as destination_account_type'; - - + $this->fields[] = 'dest_account.name as destination_account_name'; + $this->fields[] = 'dest_account.iban as destination_account_iban'; + $this->fields[] = 'dest_account_type.type as destination_account_type'; $this->hasAccountInfo = true; } diff --git a/app/Helpers/Collector/Extensions/CollectorProperties.php b/app/Helpers/Collector/Extensions/CollectorProperties.php index ea497d7391..c3bf6a3396 100644 --- a/app/Helpers/Collector/Extensions/CollectorProperties.php +++ b/app/Helpers/Collector/Extensions/CollectorProperties.php @@ -43,7 +43,7 @@ trait CollectorProperties /** @var bool Will be true if query result contains category info. */ private $hasCatInformation; /** @var bool Will be true for attachments */ - private $hasJoinedAttTables; + private $hasJoinedAttTables; private bool $hasJoinedMetaTables; /** @var bool Will be true of the query has the tag info tables joined. */ private $hasJoinedTagTables; diff --git a/app/Helpers/Collector/Extensions/MetaCollection.php b/app/Helpers/Collector/Extensions/MetaCollection.php index 538050e508..c726c945d3 100644 --- a/app/Helpers/Collector/Extensions/MetaCollection.php +++ b/app/Helpers/Collector/Extensions/MetaCollection.php @@ -470,6 +470,4 @@ trait MetaCollection $this->query->leftJoin('tags', 'tag_transaction_journal.tag_id', '=', 'tags.id'); } } - - } diff --git a/app/Helpers/Collector/Extensions/TimeCollection.php b/app/Helpers/Collector/Extensions/TimeCollection.php index fb92e3d41f..86c45a6f92 100644 --- a/app/Helpers/Collector/Extensions/TimeCollection.php +++ b/app/Helpers/Collector/Extensions/TimeCollection.php @@ -103,7 +103,6 @@ trait TimeCollection return $this; } - /** * Collect transactions updated on a specific date. * diff --git a/app/Helpers/Collector/GroupCollector.php b/app/Helpers/Collector/GroupCollector.php index c12f3da83b..6db7a7bfd8 100644 --- a/app/Helpers/Collector/GroupCollector.php +++ b/app/Helpers/Collector/GroupCollector.php @@ -485,6 +485,25 @@ class GroupCollector implements GroupCollectorInterface return $this; } + /** + * Join table to get attachment information. + */ + private function joinAttachmentTables(): void + { + if (false === $this->hasJoinedAttTables) { + // join some extra tables: + $this->hasJoinedAttTables = true; + $this->query->leftJoin('attachments', 'attachments.attachable_id', '=', 'transaction_journals.id') + ->where( + static function (EloquentBuilder $q1) { + $q1->where('attachments.attachable_type', TransactionJournal::class); + $q1->where('attachments.uploaded', 1); + $q1->orWhereNull('attachments.attachable_type'); + } + ); + } + } + /** * Build the query. */ @@ -528,25 +547,6 @@ class GroupCollector implements GroupCollectorInterface ->orderBy('source.amount', 'DESC'); } - /** - * Join table to get attachment information. - */ - private function joinAttachmentTables(): void - { - if (false === $this->hasJoinedAttTables) { - // join some extra tables: - $this->hasJoinedAttTables = true; - $this->query->leftJoin('attachments', 'attachments.attachable_id', '=', 'transaction_journals.id') - ->where( - static function (EloquentBuilder $q1) { - $q1->where('attachments.attachable_type', TransactionJournal::class); - $q1->where('attachments.uploaded', 1); - $q1->orWhereNull('attachments.attachable_type'); - } - ); - } - } - /** * */ @@ -654,8 +654,6 @@ class GroupCollector implements GroupCollectorInterface } // or parse the rest. $journalId = (int)$augumentedJournal->transaction_journal_id; - - if (array_key_exists($journalId, $groups[$groupId]['transactions'])) { // append data to existing group + journal (for multiple tags or multiple attachments) $groups[$groupId]['transactions'][$journalId] = $this->mergeTags($groups[$groupId]['transactions'][$journalId], $augumentedJournal); diff --git a/app/Helpers/Report/PopupReport.php b/app/Helpers/Report/PopupReport.php index 8230672a3c..543a7a46a5 100644 --- a/app/Helpers/Report/PopupReport.php +++ b/app/Helpers/Report/PopupReport.php @@ -79,8 +79,6 @@ class PopupReport implements PopupReportInterface $repos = app(CurrencyRepositoryInterface::class); $currency = $repos->find((int)$currencyId); } - - /** @var GroupCollectorInterface $collector */ $collector = app(GroupCollectorInterface::class); $collector @@ -116,8 +114,6 @@ class PopupReport implements PopupReportInterface $repos = app(CurrencyRepositoryInterface::class); $currency = $repos->find((int)$currencyId); } - - /** @var GroupCollectorInterface $collector */ $collector = app(GroupCollectorInterface::class); $collector->setAccounts($attributes['accounts']) diff --git a/app/Helpers/Webhook/Sha3SignatureGenerator.php b/app/Helpers/Webhook/Sha3SignatureGenerator.php index 8077432f9d..8f06f1604a 100644 --- a/app/Helpers/Webhook/Sha3SignatureGenerator.php +++ b/app/Helpers/Webhook/Sha3SignatureGenerator.php @@ -1,5 +1,4 @@ . - */ namespace FireflyIII\Helpers\Webhook; diff --git a/app/Helpers/Webhook/SignatureGeneratorInterface.php b/app/Helpers/Webhook/SignatureGeneratorInterface.php index cf27c888b1..ebbc8a5278 100644 --- a/app/Helpers/Webhook/SignatureGeneratorInterface.php +++ b/app/Helpers/Webhook/SignatureGeneratorInterface.php @@ -1,5 +1,4 @@ . - */ namespace FireflyIII\Helpers\Webhook; diff --git a/app/Http/Controllers/Account/CreateController.php b/app/Http/Controllers/Account/CreateController.php index 202afd6cfe..d426f13fe7 100644 --- a/app/Http/Controllers/Account/CreateController.php +++ b/app/Http/Controllers/Account/CreateController.php @@ -44,7 +44,7 @@ class CreateController extends Controller { use ModelInformation; - private AttachmentHelperInterface $attachments; + private AttachmentHelperInterface $attachments; private AccountRepositoryInterface $repository; /** @@ -60,7 +60,7 @@ class CreateController extends Controller $this->middleware( function ($request, $next) { app('view')->share('mainTitleIcon', 'fa-credit-card'); - app('view')->share('title', (string) trans('firefly.accounts')); + app('view')->share('title', (string)trans('firefly.accounts')); $this->repository = app(AccountRepositoryInterface::class); $this->attachments = app(AttachmentHelperInterface::class); @@ -83,7 +83,7 @@ class CreateController extends Controller $objectType = $objectType ?? 'asset'; $defaultCurrency = app('amount')->getDefaultCurrency(); $subTitleIcon = config(sprintf('firefly.subIconsByIdentifier.%s', $objectType)); - $subTitle = (string) trans(sprintf('firefly.make_new_%s_account', $objectType)); + $subTitle = (string)trans(sprintf('firefly.make_new_%s_account', $objectType)); $roles = $this->getRoles(); $liabilityTypes = $this->getLiabilityTypes(); $hasOldInput = null !== $request->old('_token'); @@ -98,9 +98,9 @@ class CreateController extends Controller // interest calculation periods: $interestPeriods = [ - 'daily' => (string) trans('firefly.interest_calc_daily'), - 'monthly' => (string) trans('firefly.interest_calc_monthly'), - 'yearly' => (string) trans('firefly.interest_calc_yearly'), + 'daily' => (string)trans('firefly.interest_calc_daily'), + 'monthly' => (string)trans('firefly.interest_calc_monthly'), + 'yearly' => (string)trans('firefly.interest_calc_yearly'), ]; // pre fill some data @@ -108,7 +108,7 @@ class CreateController extends Controller 'preFilled', [ 'currency_id' => $defaultCurrency->id, - 'include_net_worth' => $hasOldInput ? (bool) $request->old('include_net_worth') : true, + 'include_net_worth' => $hasOldInput ? (bool)$request->old('include_net_worth') : true, ] ); @@ -133,7 +133,7 @@ class CreateController extends Controller { $data = $request->getAccountData(); $account = $this->repository->store($data); - $request->session()->flash('success', (string) trans('firefly.stored_new_account', ['name' => $account->name])); + $request->session()->flash('success', (string)trans('firefly.stored_new_account', ['name' => $account->name])); app('preferences')->mark(); Log::channel('audit')->info('Stored new account.', $data); @@ -152,7 +152,7 @@ class CreateController extends Controller $this->attachments->saveAttachmentsForModel($account, $files); } if (null !== $files && auth()->user()->hasRole('demo')) { - session()->flash('info',(string)trans('firefly.no_att_demo_user')); + session()->flash('info', (string)trans('firefly.no_att_demo_user')); } if (count($this->attachments->getMessages()->get('attachments')) > 0) { @@ -161,7 +161,7 @@ class CreateController extends Controller // redirect to previous URL. $redirect = redirect($this->getPreviousUri('accounts.create.uri')); - if (1 === (int) $request->get('create_another')) { + if (1 === (int)$request->get('create_another')) { // set value so create routine will not overwrite URL: $request->session()->put('accounts.create.fromStore', true); diff --git a/app/Http/Controllers/Account/DeleteController.php b/app/Http/Controllers/Account/DeleteController.php index 6e37dbd1f8..41a5cc1f59 100644 --- a/app/Http/Controllers/Account/DeleteController.php +++ b/app/Http/Controllers/Account/DeleteController.php @@ -23,7 +23,6 @@ declare(strict_types=1); namespace FireflyIII\Http\Controllers\Account; - use FireflyIII\Http\Controllers\Controller; use FireflyIII\Models\Account; use FireflyIII\Repositories\Account\AccountRepositoryInterface; @@ -57,7 +56,7 @@ class DeleteController extends Controller $this->middleware( function ($request, $next) { app('view')->share('mainTitleIcon', 'fa-credit-card'); - app('view')->share('title', (string) trans('firefly.accounts')); + app('view')->share('title', (string)trans('firefly.accounts')); $this->repository = app(AccountRepositoryInterface::class); @@ -80,7 +79,7 @@ class DeleteController extends Controller } $typeName = config(sprintf('firefly.shortNamesByFullName.%s', $account->accountType->type)); - $subTitle = (string) trans(sprintf('firefly.delete_%s_account', $typeName), ['name' => $account->name]); + $subTitle = (string)trans(sprintf('firefly.delete_%s_account', $typeName), ['name' => $account->name]); $accountList = app('expandedform')->makeSelectListWithEmpty($this->repository->getAccountsByType([$account->accountType->type])); $objectType = $typeName; unset($accountList[$account->id]); @@ -108,11 +107,11 @@ class DeleteController extends Controller $type = $account->accountType->type; $typeName = config(sprintf('firefly.shortNamesByFullName.%s', $type)); $name = $account->name; - $moveTo = $this->repository->findNull((int) $request->get('move_account_before_delete')); + $moveTo = $this->repository->findNull((int)$request->get('move_account_before_delete')); $this->repository->destroy($account, $moveTo); - $request->session()->flash('success', (string) trans(sprintf('firefly.%s_deleted', $typeName), ['name' => $name])); + $request->session()->flash('success', (string)trans(sprintf('firefly.%s_deleted', $typeName), ['name' => $name])); app('preferences')->mark(); return redirect($this->getPreviousUri('accounts.delete.uri')); diff --git a/app/Http/Controllers/Account/EditController.php b/app/Http/Controllers/Account/EditController.php index 1d45e1a99e..afa92d88eb 100644 --- a/app/Http/Controllers/Account/EditController.php +++ b/app/Http/Controllers/Account/EditController.php @@ -44,13 +44,13 @@ use Illuminate\View\View; class EditController extends Controller { use ModelInformation, UserNavigation; + + private AttachmentHelperInterface $attachments; /** @var CurrencyRepositoryInterface The currency repository */ private $currencyRepos; /** @var AccountRepositoryInterface The account repository */ private $repository; - private AttachmentHelperInterface $attachments; - /** * EditController constructor. */ @@ -62,7 +62,7 @@ class EditController extends Controller $this->middleware( function ($request, $next) { app('view')->share('mainTitleIcon', 'fa-credit-card'); - app('view')->share('title', (string) trans('firefly.accounts')); + app('view')->share('title', (string)trans('firefly.accounts')); $this->repository = app(AccountRepositoryInterface::class); $this->currencyRepos = app(CurrencyRepositoryInterface::class); @@ -89,7 +89,7 @@ class EditController extends Controller } $objectType = config('firefly.shortNamesByFullName')[$account->accountType->type]; - $subTitle = (string) trans(sprintf('firefly.edit_%s_account', $objectType), ['name' => $account->name]); + $subTitle = (string)trans(sprintf('firefly.edit_%s_account', $objectType), ['name' => $account->name]); $subTitleIcon = config(sprintf('firefly.subIconsByIdentifier.%s', $objectType)); $roles = $this->getRoles(); $liabilityTypes = $this->getLiabilityTypes(); @@ -109,9 +109,9 @@ class EditController extends Controller // interest calculation periods: $interestPeriods = [ - 'daily' => (string) trans('firefly.interest_calc_daily'), - 'monthly' => (string) trans('firefly.interest_calc_monthly'), - 'yearly' => (string) trans('firefly.interest_calc_yearly'), + 'daily' => (string)trans('firefly.interest_calc_daily'), + 'monthly' => (string)trans('firefly.interest_calc_monthly'), + 'yearly' => (string)trans('firefly.interest_calc_yearly'), ]; // put previous url in session if not redirect from store (not "return_to_edit"). @@ -120,7 +120,7 @@ class EditController extends Controller } $request->session()->forget('accounts.edit.fromUpdate'); - $openingBalanceAmount = (string) $repository->getOpeningBalanceAmount($account); + $openingBalanceAmount = (string)$repository->getOpeningBalanceAmount($account); $openingBalanceDate = $repository->getOpeningBalanceDate($account); $currency = $this->repository->getAccountCurrency($account) ?? app('amount')->getDefaultCurrency(); @@ -145,7 +145,7 @@ class EditController extends Controller 'interest' => $repository->getMetaValue($account, 'interest'), 'interest_period' => $repository->getMetaValue($account, 'interest_period'), 'notes' => $this->repository->getNoteText($account), - 'active' => $hasOldInput ? (bool) $request->old('active') : $account->active, + 'active' => $hasOldInput ? (bool)$request->old('active') : $account->active, ]; $request->session()->flash('preFilled', $preFilled); @@ -167,7 +167,6 @@ class EditController extends Controller ); } - /** * Update the account. * @@ -185,7 +184,7 @@ class EditController extends Controller $data = $request->getAccountData(); $this->repository->update($account, $data); - $request->session()->flash('success', (string) trans('firefly.updated_account', ['name' => $account->name])); + $request->session()->flash('success', (string)trans('firefly.updated_account', ['name' => $account->name])); // store new attachment(s): $files = $request->hasFile('attachments') ? $request->file('attachments') : null; @@ -193,7 +192,7 @@ class EditController extends Controller $this->attachments->saveAttachmentsForModel($account, $files); } if (null !== $files && auth()->user()->hasRole('demo')) { - session()->flash('info',(string)trans('firefly.no_att_demo_user')); + session()->flash('info', (string)trans('firefly.no_att_demo_user')); } if (count($this->attachments->getMessages()->get('attachments')) > 0) { @@ -202,7 +201,7 @@ class EditController extends Controller // redirect $redirect = redirect($this->getPreviousUri('accounts.edit.uri')); - if (1 === (int) $request->get('return_to_edit')) { + if (1 === (int)$request->get('return_to_edit')) { // set value so edit routine will not overwrite URL: $request->session()->put('accounts.edit.fromUpdate', true); diff --git a/app/Http/Controllers/Account/IndexController.php b/app/Http/Controllers/Account/IndexController.php index eb7dff2ca9..028e2cfce6 100644 --- a/app/Http/Controllers/Account/IndexController.php +++ b/app/Http/Controllers/Account/IndexController.php @@ -58,7 +58,7 @@ class IndexController extends Controller $this->middleware( function ($request, $next) { app('view')->share('mainTitleIcon', 'fa-credit-card'); - app('view')->share('title', (string) trans('firefly.accounts')); + app('view')->share('title', (string)trans('firefly.accounts')); $this->repository = app(AccountRepositoryInterface::class); @@ -77,13 +77,13 @@ class IndexController extends Controller { $objectType = $objectType ?? 'asset'; $inactivePage = true; - $subTitle = (string) trans(sprintf('firefly.%s_accounts_inactive', $objectType)); + $subTitle = (string)trans(sprintf('firefly.%s_accounts_inactive', $objectType)); $subTitleIcon = config(sprintf('firefly.subIconsByIdentifier.%s', $objectType)); $types = config(sprintf('firefly.accountTypesByIdentifier.%s', $objectType)); $collection = $this->repository->getInactiveAccountsByType($types); $total = $collection->count(); - $page = 0 === (int) $request->get('page') ? 1 : (int) $request->get('page'); - $pageSize = (int) app('preferences')->get('listPageSize', 50)->data; + $page = 0 === (int)$request->get('page') ? 1 : (int)$request->get('page'); + $pageSize = (int)app('preferences')->get('listPageSize', 50)->data; $accounts = $collection->slice(($page - 1) * $pageSize, $pageSize); unset($collection); /** @var Carbon $start */ @@ -103,9 +103,9 @@ class IndexController extends Controller $account->startBalance = $this->isInArray($startBalances, $account->id); $account->endBalance = $this->isInArray($endBalances, $account->id); $account->difference = bcsub($account->endBalance, $account->startBalance); - $account->interest = number_format((float) $this->repository->getMetaValue($account, 'interest'), 6, '.', ''); - $account->interestPeriod = (string) trans(sprintf('firefly.interest_calc_%s', $this->repository->getMetaValue($account, 'interest_period'))); - $account->accountTypeString = (string) trans(sprintf('firefly.account_type_%s', $account->accountType->type)); + $account->interest = number_format((float)$this->repository->getMetaValue($account, 'interest'), 6, '.', ''); + $account->interestPeriod = (string)trans(sprintf('firefly.interest_calc_%s', $this->repository->getMetaValue($account, 'interest_period'))); + $account->accountTypeString = (string)trans(sprintf('firefly.account_type_%s', $account->accountType->type)); } ); @@ -130,19 +130,16 @@ class IndexController extends Controller { Log::debug(sprintf('Now at %s', __METHOD__)); $objectType = $objectType ?? 'asset'; - $subTitle = (string) trans(sprintf('firefly.%s_accounts', $objectType)); + $subTitle = (string)trans(sprintf('firefly.%s_accounts', $objectType)); $subTitleIcon = config(sprintf('firefly.subIconsByIdentifier.%s', $objectType)); $types = config(sprintf('firefly.accountTypesByIdentifier.%s', $objectType)); - if (1 === random_int(0, 20)) { - Log::debug('Will reset order.'); - $this->repository->resetAccountOrder(); - } + $this->repository->resetAccountOrder(); $collection = $this->repository->getActiveAccountsByType($types); $total = $collection->count(); - $page = 0 === (int) $request->get('page') ? 1 : (int) $request->get('page'); - $pageSize = (int) app('preferences')->get('listPageSize', 50)->data; + $page = 0 === (int)$request->get('page') ? 1 : (int)$request->get('page'); + $pageSize = (int)app('preferences')->get('listPageSize', 50)->data; $accounts = $collection->slice(($page - 1) * $pageSize, $pageSize); $inactiveCount = $this->repository->getInactiveAccountsByType($types)->count(); @@ -167,9 +164,9 @@ class IndexController extends Controller $account->startBalance = $this->isInArray($startBalances, $account->id); $account->endBalance = $this->isInArray($endBalances, $account->id); $account->difference = bcsub($account->endBalance, $account->startBalance); - $account->interest = number_format((float) $this->repository->getMetaValue($account, 'interest'), 6, '.', ''); - $account->interestPeriod = (string) trans(sprintf('firefly.interest_calc_%s', $this->repository->getMetaValue($account, 'interest_period'))); - $account->accountTypeString = (string) trans(sprintf('firefly.account_type_%s', $account->accountType->type)); + $account->interest = number_format((float)$this->repository->getMetaValue($account, 'interest'), 6, '.', ''); + $account->interestPeriod = (string)trans(sprintf('firefly.interest_calc_%s', $this->repository->getMetaValue($account, 'interest_period'))); + $account->accountTypeString = (string)trans(sprintf('firefly.account_type_%s', $account->accountType->type)); $account->location = $this->repository->getLocation($account); } ); @@ -184,6 +181,4 @@ class IndexController extends Controller return prefixView('accounts.index', compact('objectType', 'inactiveCount', 'subTitleIcon', 'subTitle', 'page', 'accounts')); } - - } diff --git a/app/Http/Controllers/Account/ReconcileController.php b/app/Http/Controllers/Account/ReconcileController.php index 647fff39ef..112273fef4 100644 --- a/app/Http/Controllers/Account/ReconcileController.php +++ b/app/Http/Controllers/Account/ReconcileController.php @@ -50,6 +50,7 @@ use Log; class ReconcileController extends Controller { use UserNavigation; + /** @var AccountRepositoryInterface The account repository */ private $accountRepos; /** @var CurrencyRepositoryInterface The currency repository */ @@ -70,7 +71,7 @@ class ReconcileController extends Controller $this->middleware( function ($request, $next) { app('view')->share('mainTitleIcon', 'fa-credit-card'); - app('view')->share('title', (string) trans('firefly.accounts')); + app('view')->share('title', (string)trans('firefly.accounts')); $this->repository = app(JournalRepositoryInterface::class); $this->accountRepos = app(AccountRepositoryInterface::class); $this->currencyRepos = app(CurrencyRepositoryInterface::class); @@ -87,19 +88,17 @@ class ReconcileController extends Controller * @param Carbon|null $start * @param Carbon|null $end * - * @throws Exception * @return Factory|RedirectResponse|Redirector|View + * @throws Exception */ public function reconcile(Account $account, Carbon $start = null, Carbon $end = null) { if (!$this->isEditableAccount($account)) { return $this->redirectAccountToAccount($account); // @codeCoverageIgnore } - - if (AccountType::ASSET !== $account->accountType->type) { // @codeCoverageIgnoreStart - session()->flash('error', (string) trans('firefly.must_be_asset_account')); + session()->flash('error', (string)trans('firefly.must_be_asset_account')); return redirect(route('accounts.index', [config(sprintf('firefly.shortNamesByFullName.%s', $account->accountType->type))])); // @codeCoverageIgnoreEnd @@ -129,10 +128,10 @@ class ReconcileController extends Controller $startDate = clone $start; $startDate->subDay(); - $startBalance = number_format((float) app('steam')->balance($account, $startDate), $currency->decimal_places, '.', ''); - $endBalance = number_format((float) app('steam')->balance($account, $end), $currency->decimal_places, '.', ''); + $startBalance = number_format((float)app('steam')->balance($account, $startDate), $currency->decimal_places, '.', ''); + $endBalance = number_format((float)app('steam')->balance($account, $end), $currency->decimal_places, '.', ''); $subTitleIcon = config(sprintf('firefly.subIconsByIdentifier.%s', $account->accountType->type)); - $subTitle = (string) trans('firefly.reconcile_account', ['account' => $account->name]); + $subTitle = (string)trans('firefly.reconcile_account', ['account' => $account->name]); // various links $transactionsUri = route('accounts.reconcile.transactions', [$account->id, '%start%', '%end%']); @@ -180,7 +179,7 @@ class ReconcileController extends Controller /** @var string $journalId */ foreach ($data['journals'] as $journalId) { - $this->repository->reconcileById((int) $journalId); + $this->repository->reconcileById((int)$journalId); } Log::debug('Reconciled all transactions.'); @@ -197,10 +196,10 @@ class ReconcileController extends Controller Log::debug('End of routine.'); app('preferences')->mark(); if ('' === $result) { - session()->flash('success', (string) trans('firefly.reconciliation_stored')); + session()->flash('success', (string)trans('firefly.reconciliation_stored')); } if ('' !== $result) { - session()->flash('error', (string) trans('firefly.reconciliation_error', ['error' => $result])); + session()->flash('error', (string)trans('firefly.reconciliation_error', ['error' => $result])); } return redirect(route('accounts.show', [$account->id])); @@ -214,9 +213,9 @@ class ReconcileController extends Controller * @param Carbon $end * @param string $difference * + * @return RedirectResponse|Redirector|string * @throws DuplicateTransactionException * - * @return RedirectResponse|Redirector|string */ private function createReconciliation(Account $account, Carbon $start, Carbon $end, string $difference) { diff --git a/app/Http/Controllers/Account/ShowController.php b/app/Http/Controllers/Account/ShowController.php index 0c22048ff8..6d25d3bb49 100644 --- a/app/Http/Controllers/Account/ShowController.php +++ b/app/Http/Controllers/Account/ShowController.php @@ -32,10 +32,12 @@ use FireflyIII\Repositories\Account\AccountRepositoryInterface; use FireflyIII\Repositories\Currency\CurrencyRepositoryInterface; use FireflyIII\Support\Http\Controllers\PeriodOverview; use FireflyIII\Support\Http\Controllers\UserNavigation; +use Illuminate\Contracts\View\Factory; use Illuminate\Http\RedirectResponse; use Illuminate\Http\Request; use Illuminate\Routing\Redirector; use Illuminate\Support\Collection; +use Illuminate\View\View; /** * Class ShowController @@ -46,7 +48,7 @@ class ShowController extends Controller use UserNavigation, PeriodOverview; private CurrencyRepositoryInterface $currencyRepos; - private AccountRepositoryInterface $repository; + private AccountRepositoryInterface $repository; /** * ShowController constructor. @@ -63,7 +65,7 @@ class ShowController extends Controller $this->middleware( function ($request, $next) { app('view')->share('mainTitleIcon', 'fa-credit-card'); - app('view')->share('title', (string) trans('firefly.accounts')); + app('view')->share('title', (string)trans('firefly.accounts')); $this->repository = app(AccountRepositoryInterface::class); $this->currencyRepos = app(CurrencyRepositoryInterface::class); @@ -73,8 +75,6 @@ class ShowController extends Controller ); } - - /** * Show an account. * @@ -83,13 +83,13 @@ class ShowController extends Controller * @param Carbon|null $start * @param Carbon|null $end * + * @return RedirectResponse|Redirector|Factory|View * @throws Exception * - * @return RedirectResponse|Redirector|\Illuminate\Contracts\View\Factory|\Illuminate\View\View */ public function show(Request $request, Account $account, Carbon $start = null, Carbon $end = null) { - $objectType = config(sprintf('firefly.shortNamesByFullName.%s', $account->accountType->type)); + $objectType = config(sprintf('firefly.shortNamesByFullName.%s', $account->accountType->type)); if (!$this->isEditableAccount($account)) { return $this->redirectAccountToAccount($account); // @codeCoverageIgnore @@ -107,12 +107,12 @@ class ShowController extends Controller $attachments = $this->repository->getAttachments($account); $today = today(config('app.timezone')); $subTitleIcon = config(sprintf('firefly.subIconsByIdentifier.%s', $account->accountType->type)); - $page = (int) $request->get('page'); - $pageSize = (int) app('preferences')->get('listPageSize', 50)->data; + $page = (int)$request->get('page'); + $pageSize = (int)app('preferences')->get('listPageSize', 50)->data; $currency = $this->repository->getAccountCurrency($account) ?? app('amount')->getDefaultCurrency(); $fStart = $start->formatLocalized($this->monthAndDayFormat); $fEnd = $end->formatLocalized($this->monthAndDayFormat); - $subTitle = (string) trans('firefly.journals_in_period_for_account', ['name' => $account->name, 'start' => $fStart, 'end' => $fEnd]); + $subTitle = (string)trans('firefly.journals_in_period_for_account', ['name' => $account->name, 'start' => $fStart, 'end' => $fEnd]); $chartUri = route('chart.account.period', [$account->id, $start->format('Y-m-d'), $end->format('Y-m-d')]); $firstTransaction = $this->repository->oldestJournalDate($account) ?? $start; $periods = $this->getAccountPeriodOverview($account, $firstTransaction, $end); @@ -158,29 +158,27 @@ class ShowController extends Controller * @param Request $request * @param Account $account * + * @return RedirectResponse|Redirector|Factory|View * @throws Exception * - * @return RedirectResponse|Redirector|\Illuminate\Contracts\View\Factory|\Illuminate\View\View */ public function showAll(Request $request, Account $account) { if (!$this->isEditableAccount($account)) { return $this->redirectAccountToAccount($account); // @codeCoverageIgnore } - - $location = $this->repository->getLocation($account); $isLiability = $this->repository->isLiability($account); - $attachments = $this->repository->getAttachments($account); + $attachments = $this->repository->getAttachments($account); $objectType = config(sprintf('firefly.shortNamesByFullName.%s', $account->accountType->type)); $end = today(config('app.timezone')); $today = today(config('app.timezone')); $start = $this->repository->oldestJournalDate($account) ?? Carbon::now()->startOfMonth(); $subTitleIcon = config('firefly.subIconsByIdentifier.' . $account->accountType->type); - $page = (int) $request->get('page'); - $pageSize = (int) app('preferences')->get('listPageSize', 50)->data; + $page = (int)$request->get('page'); + $pageSize = (int)app('preferences')->get('listPageSize', 50)->data; $currency = $this->repository->getAccountCurrency($account) ?? app('amount')->getDefaultCurrency(); - $subTitle = (string) trans('firefly.all_journals_for_account', ['name' => $account->name]); + $subTitle = (string)trans('firefly.all_journals_for_account', ['name' => $account->name]); $periods = new Collection; /** @var GroupCollectorInterface $collector */ $collector = app(GroupCollectorInterface::class); diff --git a/app/Http/Controllers/Admin/ConfigurationController.php b/app/Http/Controllers/Admin/ConfigurationController.php index 8d5517bb05..f3c17ce1b0 100644 --- a/app/Http/Controllers/Admin/ConfigurationController.php +++ b/app/Http/Controllers/Admin/ConfigurationController.php @@ -47,7 +47,7 @@ class ConfigurationController extends Controller $this->middleware( static function ($request, $next) { - app('view')->share('title', (string) trans('firefly.administration')); + app('view')->share('title', (string)trans('firefly.administration')); app('view')->share('mainTitleIcon', 'fa-hand-spock-o'); return $next($request); @@ -63,7 +63,7 @@ class ConfigurationController extends Controller */ public function index() { - $subTitle = (string) trans('firefly.instance_configuration'); + $subTitle = (string)trans('firefly.instance_configuration'); $subTitleIcon = 'fa-wrench'; Log::channel('audit')->info('User visits admin config index.'); @@ -99,7 +99,7 @@ class ConfigurationController extends Controller app('fireflyconfig')->set('is_demo_site', $data['is_demo_site']); // flash message - session()->flash('success', (string) trans('firefly.configuration_updated')); + session()->flash('success', (string)trans('firefly.configuration_updated')); app('preferences')->mark(); return redirect()->route('admin.configuration.index'); diff --git a/app/Http/Controllers/Admin/TelemetryController.php b/app/Http/Controllers/Admin/TelemetryController.php index 8aa94a3721..ee377bfc49 100644 --- a/app/Http/Controllers/Admin/TelemetryController.php +++ b/app/Http/Controllers/Admin/TelemetryController.php @@ -28,6 +28,8 @@ use FireflyIII\Http\Controllers\Controller; use FireflyIII\Jobs\SubmitTelemetryData; use FireflyIII\Repositories\Telemetry\TelemetryRepositoryInterface; use Illuminate\Contracts\View\Factory; +use Illuminate\Http\RedirectResponse; +use Illuminate\Routing\Redirector; use Illuminate\View\View; /** @@ -47,7 +49,7 @@ class TelemetryController extends Controller $this->middleware( function ($request, $next) { - app('view')->share('title', (string) trans('firefly.administration')); + app('view')->share('title', (string)trans('firefly.administration')); app('view')->share('mainTitleIcon', 'fa-hand-spock-o'); $this->repository = app(TelemetryRepositoryInterface::class); @@ -57,7 +59,19 @@ class TelemetryController extends Controller } /** - * @return \Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector + * @return RedirectResponse|Redirector + */ + public function deleteAll() + { + $this->repository->deleteAll(); + + session()->flash('success', trans('firefly.telemetry_all_deleted')); + + return redirect(url()->previous(route('admin.telemetry.index'))); + } + + /** + * @return RedirectResponse|Redirector */ public function deleteSubmitted() { @@ -69,15 +83,18 @@ class TelemetryController extends Controller } /** - * @return \Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector + * Index */ - public function deleteAll() + public function index() { - $this->repository->deleteAll(); + app('view')->share('subTitleIcon', 'fa-eye'); + app('view')->share('subTitle', (string)trans('firefly.telemetry_admin_index')); + $version = config('firefly.version'); + $enabled = config('firefly.send_telemetry', false) && config('firefly.feature_flags.telemetry'); - session()->flash('success', trans('firefly.telemetry_all_deleted')); + $count = $this->repository->count(); - return redirect(url()->previous(route('admin.telemetry.index'))); + return prefixView('admin.telemetry.index', compact('version', 'enabled', 'count')); } /** @@ -94,21 +111,6 @@ class TelemetryController extends Controller return redirect(url()->previous(route('admin.telemetry.index'))); } - /** - * Index - */ - public function index() - { - app('view')->share('subTitleIcon', 'fa-eye'); - app('view')->share('subTitle', (string) trans('firefly.telemetry_admin_index')); - $version = config('firefly.version'); - $enabled = config('firefly.send_telemetry', false) && config('firefly.feature_flags.telemetry'); - - $count = $this->repository->count(); - - return prefixView('admin.telemetry.index', compact('version', 'enabled', 'count')); - } - /** * View telemetry. Paginated because you never know how much will be collected. * diff --git a/app/Http/Controllers/Admin/UpdateController.php b/app/Http/Controllers/Admin/UpdateController.php index 64d0fa3244..65911fe54d 100644 --- a/app/Http/Controllers/Admin/UpdateController.php +++ b/app/Http/Controllers/Admin/UpdateController.php @@ -49,7 +49,7 @@ class UpdateController extends Controller parent::__construct(); $this->middleware( static function ($request, $next) { - app('view')->share('title', (string) trans('firefly.administration')); + app('view')->share('title', (string)trans('firefly.administration')); app('view')->share('mainTitleIcon', 'fa-hand-spock-o'); return $next($request); @@ -67,22 +67,22 @@ class UpdateController extends Controller */ public function index() { - $subTitle = (string) trans('firefly.update_check_title'); + $subTitle = (string)trans('firefly.update_check_title'); $subTitleIcon = 'fa-star'; $permission = app('fireflyconfig')->get('permission_update_check', -1); $channel = app('fireflyconfig')->get('update_channel', 'stable'); $selected = $permission->data; $channelSelected = $channel->data; $options = [ - -1 => (string) trans('firefly.updates_ask_me_later'), - 0 => (string) trans('firefly.updates_do_not_check'), - 1 => (string) trans('firefly.updates_enable_check'), + -1 => (string)trans('firefly.updates_ask_me_later'), + 0 => (string)trans('firefly.updates_do_not_check'), + 1 => (string)trans('firefly.updates_enable_check'), ]; $channelOptions = [ - 'stable' => (string) trans('firefly.update_channel_stable'), - 'beta' => (string) trans('firefly.update_channel_beta'), - 'alpha' => (string) trans('firefly.update_channel_alpha'), + 'stable' => (string)trans('firefly.update_channel_stable'), + 'beta' => (string)trans('firefly.update_channel_beta'), + 'alpha' => (string)trans('firefly.update_channel_alpha'), ]; return prefixView('admin.update.index', compact('subTitle', 'subTitleIcon', 'selected', 'options', 'channelSelected', 'channelOptions')); @@ -97,18 +97,18 @@ class UpdateController extends Controller */ public function post(Request $request) { - $checkForUpdates = (int) $request->get('check_for_updates'); + $checkForUpdates = (int)$request->get('check_for_updates'); $channel = $request->get('update_channel'); $channel = in_array($channel, ['stable', 'beta', 'alpha'], true) ? $channel : 'stable'; // store as telemetry app('telemetry')->feature('admin.update.channel', $channel); - app('telemetry')->feature('admin.update.permission', (string) $checkForUpdates); + app('telemetry')->feature('admin.update.permission', (string)$checkForUpdates); app('fireflyconfig')->set('permission_update_check', $checkForUpdates); app('fireflyconfig')->set('last_update_check', time()); app('fireflyconfig')->set('update_channel', $channel); - session()->flash('success', (string) trans('firefly.configuration_updated')); + session()->flash('success', (string)trans('firefly.configuration_updated')); return redirect(route('admin.update-check')); } diff --git a/app/Http/Controllers/Admin/UserController.php b/app/Http/Controllers/Admin/UserController.php index bae9542d46..d898fdc448 100644 --- a/app/Http/Controllers/Admin/UserController.php +++ b/app/Http/Controllers/Admin/UserController.php @@ -27,8 +27,11 @@ use FireflyIII\Http\Middleware\IsDemoUser; use FireflyIII\Http\Requests\UserFormRequest; use FireflyIII\Repositories\User\UserRepositoryInterface; use FireflyIII\User; +use Illuminate\Contracts\Foundation\Application; +use Illuminate\Contracts\View\Factory; use Illuminate\Http\RedirectResponse; use Illuminate\Routing\Redirector; +use Illuminate\View\View; use Log; /** @@ -36,8 +39,8 @@ use Log; */ class UserController extends Controller { - private UserRepositoryInterface $repository; protected bool $externalIdentity; + private UserRepositoryInterface $repository; /** * UserController constructor. @@ -64,7 +67,7 @@ class UserController extends Controller /** * @param User $user * - * @return \Illuminate\Contracts\Foundation\Application|\Illuminate\Contracts\View\Factory|RedirectResponse|Redirector|\Illuminate\View\View + * @return Application|Factory|RedirectResponse|Redirector|View */ public function delete(User $user) { @@ -104,7 +107,7 @@ class UserController extends Controller * * @param User $user * - * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View + * @return Factory|View */ public function edit(User $user) { @@ -135,7 +138,7 @@ class UserController extends Controller /** * Show index of user manager. * - * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View + * @return Factory|View */ public function index() { @@ -159,7 +162,7 @@ class UserController extends Controller * * @param User $user * - * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View + * @return Factory|View */ public function show(User $user) { diff --git a/app/Http/Controllers/AttachmentController.php b/app/Http/Controllers/AttachmentController.php index bcfda6f939..e8fb8a4b97 100644 --- a/app/Http/Controllers/AttachmentController.php +++ b/app/Http/Controllers/AttachmentController.php @@ -26,9 +26,12 @@ use FireflyIII\Exceptions\FireflyException; use FireflyIII\Http\Requests\AttachmentFormRequest; use FireflyIII\Models\Attachment; use FireflyIII\Repositories\Attachment\AttachmentRepositoryInterface; +use Illuminate\Contracts\View\Factory; use Illuminate\Http\RedirectResponse; use Illuminate\Http\Request; use Illuminate\Http\Response as LaravelResponse; +use Illuminate\Routing\Redirector; +use Illuminate\View\View; /** * Class AttachmentController. @@ -52,7 +55,7 @@ class AttachmentController extends Controller $this->middleware( function ($request, $next) { app('view')->share('mainTitleIcon', 'fa-paperclip'); - app('view')->share('title', (string) trans('firefly.attachments')); + app('view')->share('title', (string)trans('firefly.attachments')); $this->repository = app(AttachmentRepositoryInterface::class); return $next($request); @@ -65,11 +68,11 @@ class AttachmentController extends Controller * * @param Attachment $attachment * - * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View + * @return Factory|View */ public function delete(Attachment $attachment) { - $subTitle = (string) trans('firefly.delete_attachment', ['name' => $attachment->filename]); + $subTitle = (string)trans('firefly.delete_attachment', ['name' => $attachment->filename]); // put previous url in session $this->rememberPreviousUri('attachments.delete.uri'); @@ -83,7 +86,7 @@ class AttachmentController extends Controller * @param Request $request * @param Attachment $attachment * - * @return \Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector + * @return RedirectResponse|Redirector */ public function destroy(Request $request, Attachment $attachment) { @@ -91,7 +94,7 @@ class AttachmentController extends Controller $this->repository->destroy($attachment); - $request->session()->flash('success', (string) trans('firefly.attachment_deleted', ['name' => $name])); + $request->session()->flash('success', (string)trans('firefly.attachment_deleted', ['name' => $name])); app('preferences')->mark(); return redirect($this->getPreviousUri('attachments.delete.uri')); @@ -102,9 +105,9 @@ class AttachmentController extends Controller * * @param Attachment $attachment * - * @throws FireflyException * @return mixed * + * @throws FireflyException */ public function download(Attachment $attachment) { @@ -136,12 +139,12 @@ class AttachmentController extends Controller * @param Request $request * @param Attachment $attachment * - * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View + * @return Factory|View */ public function edit(Request $request, Attachment $attachment) { $subTitleIcon = 'fa-pencil'; - $subTitle = (string) trans('firefly.edit_attachment', ['name' => $attachment->filename]); + $subTitle = (string)trans('firefly.edit_attachment', ['name' => $attachment->filename]); // put previous url in session if not redirect from store (not "return_to_edit"). if (true !== session('attachments.edit.fromUpdate')) { @@ -159,7 +162,7 @@ class AttachmentController extends Controller /** * Index of all attachments. * - * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View + * @return Factory|View */ public function index() { @@ -172,7 +175,6 @@ class AttachmentController extends Controller } ); - return prefixView('attachments.index', compact('set')); } @@ -189,11 +191,11 @@ class AttachmentController extends Controller $data = $request->getAttachmentData(); $this->repository->update($attachment, $data); - $request->session()->flash('success', (string) trans('firefly.attachment_updated', ['name' => $attachment->filename])); + $request->session()->flash('success', (string)trans('firefly.attachment_updated', ['name' => $attachment->filename])); app('preferences')->mark(); $redirect = redirect($this->getPreviousUri('attachments.edit.uri')); - if (1 === (int) $request->get('return_to_edit')) { + if (1 === (int)$request->get('return_to_edit')) { // @codeCoverageIgnoreStart $request->session()->put('attachments.edit.fromUpdate', true); @@ -210,8 +212,8 @@ class AttachmentController extends Controller * * @param Attachment $attachment * - * @throws FireflyException * @return LaravelResponse + * @throws FireflyException */ public function view(Request $request, Attachment $attachment): LaravelResponse { diff --git a/app/Http/Controllers/Auth/LoginController.php b/app/Http/Controllers/Auth/LoginController.php index f5f2c776fd..e64eb3e487 100644 --- a/app/Http/Controllers/Auth/LoginController.php +++ b/app/Http/Controllers/Auth/LoginController.php @@ -68,7 +68,6 @@ class LoginController extends Controller $this->middleware('guest')->except('logout'); } - /** * Handle a login request to the application. * @@ -217,7 +216,6 @@ class LoginController extends Controller request()->cookies->set($cookieName, 'invalid'); } - return prefixView('auth.login', compact('allowRegistration', 'email', 'remember', 'allowReset', 'title')); } diff --git a/app/Http/Controllers/Bill/CreateController.php b/app/Http/Controllers/Bill/CreateController.php index 3b05ee956a..41b69d5c17 100644 --- a/app/Http/Controllers/Bill/CreateController.php +++ b/app/Http/Controllers/Bill/CreateController.php @@ -24,7 +24,6 @@ declare(strict_types=1); namespace FireflyIII\Http\Controllers\Bill; - use FireflyIII\Exceptions\FireflyException; use FireflyIII\Helpers\Attachments\AttachmentHelperInterface; use FireflyIII\Http\Controllers\Controller; diff --git a/app/Http/Controllers/Bill/DeleteController.php b/app/Http/Controllers/Bill/DeleteController.php index 634a40cc56..14bb9f25ec 100644 --- a/app/Http/Controllers/Bill/DeleteController.php +++ b/app/Http/Controllers/Bill/DeleteController.php @@ -24,7 +24,6 @@ declare(strict_types=1); namespace FireflyIII\Http\Controllers\Bill; - use FireflyIII\Http\Controllers\Controller; use FireflyIII\Models\Bill; use FireflyIII\Repositories\Bill\BillRepositoryInterface; diff --git a/app/Http/Controllers/Bill/EditController.php b/app/Http/Controllers/Bill/EditController.php index 37ec000360..690d9b4faa 100644 --- a/app/Http/Controllers/Bill/EditController.php +++ b/app/Http/Controllers/Bill/EditController.php @@ -24,7 +24,6 @@ declare(strict_types=1); namespace FireflyIII\Http\Controllers\Bill; - use FireflyIII\Helpers\Attachments\AttachmentHelperInterface; use FireflyIII\Http\Controllers\Controller; use FireflyIII\Http\Requests\BillUpdateRequest; @@ -65,7 +64,6 @@ class EditController extends Controller ); } - /** * Edit a bill. * @@ -113,7 +111,6 @@ class EditController extends Controller return prefixView('bills.edit', compact('subTitle', 'periods', 'rules', 'bill', 'defaultCurrency', 'preFilled')); } - /** * Update a bill. * diff --git a/app/Http/Controllers/Bill/IndexController.php b/app/Http/Controllers/Bill/IndexController.php index 84b15d9e4f..559b86845b 100644 --- a/app/Http/Controllers/Bill/IndexController.php +++ b/app/Http/Controllers/Bill/IndexController.php @@ -24,7 +24,6 @@ declare(strict_types=1); namespace FireflyIII\Http\Controllers\Bill; - use Carbon\Carbon; use FireflyIII\Http\Controllers\Controller; use FireflyIII\Models\Bill; @@ -73,8 +72,6 @@ class IndexController extends Controller { $this->cleanupObjectGroups(); $this->repository->correctOrder(); - - $start = session('start'); $end = session('end'); $collection = $this->repository->getBills(); @@ -100,8 +97,6 @@ class IndexController extends Controller 'bills' => [], ], ]; - - /** @var Bill $bill */ foreach ($collection as $bill) { $array = $transformer->transform($bill); @@ -146,7 +141,6 @@ class IndexController extends Controller return prefixView('bills.index', compact('bills', 'sums', 'total', 'totals')); } - /** * @param array $bills * diff --git a/app/Http/Controllers/Bill/ShowController.php b/app/Http/Controllers/Bill/ShowController.php index c8c9484eaf..d597d1dce4 100644 --- a/app/Http/Controllers/Bill/ShowController.php +++ b/app/Http/Controllers/Bill/ShowController.php @@ -23,7 +23,6 @@ declare(strict_types=1); namespace FireflyIII\Http\Controllers\Bill; - use Carbon\Carbon; use FireflyIII\Exceptions\FireflyException; use FireflyIII\Helpers\Collector\GroupCollectorInterface; @@ -119,7 +118,6 @@ class ShowController extends Controller return redirect(route('bills.show', [$bill->id])); } - /** * Show a bill. * @@ -182,8 +180,6 @@ class ShowController extends Controller } // @codeCoverageIgnoreEnd - - return prefixView('bills.show', compact('attachments', 'groups', 'rules', 'yearAverage', 'overallAverage', 'year', 'object', 'bill', 'subTitle')); } diff --git a/app/Http/Controllers/Budget/AvailableBudgetController.php b/app/Http/Controllers/Budget/AvailableBudgetController.php index e5d8d0f57a..31ca116e66 100644 --- a/app/Http/Controllers/Budget/AvailableBudgetController.php +++ b/app/Http/Controllers/Budget/AvailableBudgetController.php @@ -127,9 +127,7 @@ class AvailableBudgetController extends Controller return true; } ); - - - $page = (int)($request->get('page') ?? 1); + $page = (int)($request->get('page') ?? 1); return prefixView('budgets.available-budgets.create-alternative', compact('start', 'end', 'page', 'currencies')); } @@ -245,8 +243,6 @@ class AvailableBudgetController extends Controller return redirect(route('budgets.index', [$start->format('Y-m-d'), $end->format('Y-m-d')])); } - - $this->abRepository->update($availableBudget, ['amount' => $amount]); session()->flash('success', trans('firefly.updated_ab')); diff --git a/app/Http/Controllers/Budget/BudgetLimitController.php b/app/Http/Controllers/Budget/BudgetLimitController.php index 3ace4acb71..c281774a4b 100644 --- a/app/Http/Controllers/Budget/BudgetLimitController.php +++ b/app/Http/Controllers/Budget/BudgetLimitController.php @@ -161,8 +161,6 @@ class BudgetLimitController extends Controller if ($request->expectsJson()) { $array = $limit->toArray(); - - // add some extra meta data: $spentArr = $this->opsRepository->sumExpenses($limit->start_date, $limit->end_date, null, new Collection([$budget]), $currency); $array['spent'] = $spentArr[$currency->id]['sum'] ?? '0'; diff --git a/app/Http/Controllers/Budget/CreateController.php b/app/Http/Controllers/Budget/CreateController.php index d908b03ffb..d7aca5491b 100644 --- a/app/Http/Controllers/Budget/CreateController.php +++ b/app/Http/Controllers/Budget/CreateController.php @@ -23,7 +23,6 @@ declare(strict_types=1); namespace FireflyIII\Http\Controllers\Budget; - use FireflyIII\Helpers\Attachments\AttachmentHelperInterface; use FireflyIII\Http\Controllers\Controller; use FireflyIII\Http\Requests\BudgetFormStoreRequest; @@ -39,8 +38,8 @@ use Illuminate\View\View; */ class CreateController extends Controller { - private BudgetRepositoryInterface $repository; private AttachmentHelperInterface $attachments; + private BudgetRepositoryInterface $repository; /** * CreateController constructor. @@ -50,13 +49,11 @@ class CreateController extends Controller public function __construct() { parent::__construct(); - - $this->middleware( function ($request, $next) { - app('view')->share('title', (string) trans('firefly.budgets')); + app('view')->share('title', (string)trans('firefly.budgets')); app('view')->share('mainTitleIcon', 'fa-pie-chart'); - $this->repository = app(BudgetRepositoryInterface::class); + $this->repository = app(BudgetRepositoryInterface::class); $this->attachments = app(AttachmentHelperInterface::class); return $next($request); @@ -64,7 +61,6 @@ class CreateController extends Controller ); } - /** * Form to create a budget. * @@ -78,23 +74,23 @@ class CreateController extends Controller // auto budget types $autoBudgetTypes = [ - 0 => (string) trans('firefly.auto_budget_none'), - AutoBudget::AUTO_BUDGET_RESET => (string) trans('firefly.auto_budget_reset'), - AutoBudget::AUTO_BUDGET_ROLLOVER => (string) trans('firefly.auto_budget_rollover'), + 0 => (string)trans('firefly.auto_budget_none'), + AutoBudget::AUTO_BUDGET_RESET => (string)trans('firefly.auto_budget_reset'), + AutoBudget::AUTO_BUDGET_ROLLOVER => (string)trans('firefly.auto_budget_rollover'), ]; $autoBudgetPeriods = [ - 'daily' => (string) trans('firefly.auto_budget_period_daily'), - 'weekly' => (string) trans('firefly.auto_budget_period_weekly'), - 'monthly' => (string) trans('firefly.auto_budget_period_monthly'), - 'quarterly' => (string) trans('firefly.auto_budget_period_quarterly'), - 'half_year' => (string) trans('firefly.auto_budget_period_half_year'), - 'yearly' => (string) trans('firefly.auto_budget_period_yearly'), + 'daily' => (string)trans('firefly.auto_budget_period_daily'), + 'weekly' => (string)trans('firefly.auto_budget_period_weekly'), + 'monthly' => (string)trans('firefly.auto_budget_period_monthly'), + 'quarterly' => (string)trans('firefly.auto_budget_period_quarterly'), + 'half_year' => (string)trans('firefly.auto_budget_period_half_year'), + 'yearly' => (string)trans('firefly.auto_budget_period_yearly'), ]; $currency = app('amount')->getDefaultCurrency(); $preFilled = [ - 'auto_budget_period' => $hasOldInput ? (bool) $request->old('auto_budget_period') : 'monthly', - 'auto_budget_currency_id' => $hasOldInput ? (int) $request->old('auto_budget_currency_id') : $currency->id, + 'auto_budget_period' => $hasOldInput ? (bool)$request->old('auto_budget_period') : 'monthly', + 'auto_budget_currency_id' => $hasOldInput ? (int)$request->old('auto_budget_currency_id') : $currency->id, ]; $request->session()->flash('preFilled', $preFilled); @@ -104,12 +100,11 @@ class CreateController extends Controller $this->rememberPreviousUri('budgets.create.uri'); } $request->session()->forget('budgets.create.fromStore'); - $subTitle = (string) trans('firefly.create_new_budget'); + $subTitle = (string)trans('firefly.create_new_budget'); return prefixView('budgets.create', compact('subTitle', 'autoBudgetTypes', 'autoBudgetPeriods')); } - /** * Stores a budget. * @@ -123,7 +118,7 @@ class CreateController extends Controller $budget = $this->repository->store($data); $this->repository->cleanupBudgets(); - $request->session()->flash('success', (string) trans('firefly.stored_new_budget', ['name' => $budget->name])); + $request->session()->flash('success', (string)trans('firefly.stored_new_budget', ['name' => $budget->name])); app('preferences')->mark(); // store attachment(s): @@ -132,7 +127,7 @@ class CreateController extends Controller $this->attachments->saveAttachmentsForModel($budget, $files); } if (null !== $files && auth()->user()->hasRole('demo')) { - session()->flash('info',(string)trans('firefly.no_att_demo_user')); + session()->flash('info', (string)trans('firefly.no_att_demo_user')); } if (count($this->attachments->getMessages()->get('attachments')) > 0) { @@ -141,7 +136,7 @@ class CreateController extends Controller $redirect = redirect($this->getPreviousUri('budgets.create.uri')); - if (1 === (int) $request->get('create_another')) { + if (1 === (int)$request->get('create_another')) { // @codeCoverageIgnoreStart $request->session()->put('budgets.create.fromStore', true); diff --git a/app/Http/Controllers/Budget/DeleteController.php b/app/Http/Controllers/Budget/DeleteController.php index d547ced8a0..6d7aa47763 100644 --- a/app/Http/Controllers/Budget/DeleteController.php +++ b/app/Http/Controllers/Budget/DeleteController.php @@ -23,7 +23,6 @@ declare(strict_types=1); namespace FireflyIII\Http\Controllers\Budget; - use FireflyIII\Http\Controllers\Controller; use FireflyIII\Models\Budget; use FireflyIII\Repositories\Budget\BudgetRepositoryInterface; @@ -53,7 +52,7 @@ class DeleteController extends Controller $this->middleware( function ($request, $next) { - app('view')->share('title', (string) trans('firefly.budgets')); + app('view')->share('title', (string)trans('firefly.budgets')); app('view')->share('mainTitleIcon', 'fa-pie-chart'); $this->repository = app(BudgetRepositoryInterface::class); @@ -62,7 +61,6 @@ class DeleteController extends Controller ); } - /** * Deletes a budget. * @@ -72,7 +70,7 @@ class DeleteController extends Controller */ public function delete(Budget $budget) { - $subTitle = (string) trans('firefly.delete_budget', ['name' => $budget->name]); + $subTitle = (string)trans('firefly.delete_budget', ['name' => $budget->name]); // put previous url in session $this->rememberPreviousUri('budgets.delete.uri'); @@ -92,7 +90,7 @@ class DeleteController extends Controller { $name = $budget->name; $this->repository->destroy($budget); - $request->session()->flash('success', (string) trans('firefly.deleted_budget', ['name' => $name])); + $request->session()->flash('success', (string)trans('firefly.deleted_budget', ['name' => $name])); app('preferences')->mark(); return redirect($this->getPreviousUri('budgets.delete.uri')); diff --git a/app/Http/Controllers/Budget/EditController.php b/app/Http/Controllers/Budget/EditController.php index f0a728669d..1205a19a67 100644 --- a/app/Http/Controllers/Budget/EditController.php +++ b/app/Http/Controllers/Budget/EditController.php @@ -23,7 +23,6 @@ declare(strict_types=1); namespace FireflyIII\Http\Controllers\Budget; - use FireflyIII\Helpers\Attachments\AttachmentHelperInterface; use FireflyIII\Http\Controllers\Controller; use FireflyIII\Http\Requests\BudgetFormUpdateRequest; @@ -41,11 +40,10 @@ use Illuminate\View\View; */ class EditController extends Controller { - /** @var BudgetRepositoryInterface The budget repository */ - private $repository; - /** @var AttachmentHelperInterface Helper for attachments. */ private $attachments; + /** @var BudgetRepositoryInterface The budget repository */ + private $repository; /** * EditController constructor. @@ -58,9 +56,9 @@ class EditController extends Controller $this->middleware( function ($request, $next) { - app('view')->share('title', (string) trans('firefly.budgets')); + app('view')->share('title', (string)trans('firefly.budgets')); app('view')->share('mainTitleIcon', 'fa-pie-chart'); - $this->repository = app(BudgetRepositoryInterface::class); + $this->repository = app(BudgetRepositoryInterface::class); $this->attachments = app(AttachmentHelperInterface::class); return $next($request); @@ -78,30 +76,30 @@ class EditController extends Controller */ public function edit(Request $request, Budget $budget) { - $subTitle = (string) trans('firefly.edit_budget', ['name' => $budget->name]); + $subTitle = (string)trans('firefly.edit_budget', ['name' => $budget->name]); $autoBudget = $this->repository->getAutoBudget($budget); // auto budget types $autoBudgetTypes = [ - 0 => (string) trans('firefly.auto_budget_none'), - AutoBudget::AUTO_BUDGET_RESET => (string) trans('firefly.auto_budget_reset'), - AutoBudget::AUTO_BUDGET_ROLLOVER => (string) trans('firefly.auto_budget_rollover'), + 0 => (string)trans('firefly.auto_budget_none'), + AutoBudget::AUTO_BUDGET_RESET => (string)trans('firefly.auto_budget_reset'), + AutoBudget::AUTO_BUDGET_ROLLOVER => (string)trans('firefly.auto_budget_rollover'), ]; $autoBudgetPeriods = [ - 'daily' => (string) trans('firefly.auto_budget_period_daily'), - 'weekly' => (string) trans('firefly.auto_budget_period_weekly'), - 'monthly' => (string) trans('firefly.auto_budget_period_monthly'), - 'quarterly' => (string) trans('firefly.auto_budget_period_quarterly'), - 'half_year' => (string) trans('firefly.auto_budget_period_half_year'), - 'yearly' => (string) trans('firefly.auto_budget_period_yearly'), + 'daily' => (string)trans('firefly.auto_budget_period_daily'), + 'weekly' => (string)trans('firefly.auto_budget_period_weekly'), + 'monthly' => (string)trans('firefly.auto_budget_period_monthly'), + 'quarterly' => (string)trans('firefly.auto_budget_period_quarterly'), + 'half_year' => (string)trans('firefly.auto_budget_period_half_year'), + 'yearly' => (string)trans('firefly.auto_budget_period_yearly'), ]; // code to handle active-checkboxes $hasOldInput = null !== $request->old('_token'); $currency = app('amount')->getDefaultCurrency(); $preFilled = [ - 'active' => $hasOldInput ? (bool) $request->old('active') : $budget->active, - 'auto_budget_currency_id' => $hasOldInput ? (int) $request->old('auto_budget_currency_id') : $currency->id, + 'active' => $hasOldInput ? (bool)$request->old('active') : $budget->active, + 'auto_budget_currency_id' => $hasOldInput ? (int)$request->old('auto_budget_currency_id') : $currency->id, ]; if ($autoBudget) { $preFilled['auto_budget_amount'] = $hasOldInput ? $request->old('auto_budget_amount') : $autoBudget->amount; @@ -130,7 +128,7 @@ class EditController extends Controller $data = $request->getBudgetData(); $this->repository->update($budget, $data); - $request->session()->flash('success', (string) trans('firefly.updated_budget', ['name' => $budget->name])); + $request->session()->flash('success', (string)trans('firefly.updated_budget', ['name' => $budget->name])); $this->repository->cleanupBudgets(); app('preferences')->mark(); @@ -142,14 +140,14 @@ class EditController extends Controller $this->attachments->saveAttachmentsForModel($budget, $files); } if (null !== $files && auth()->user()->hasRole('demo')) { - session()->flash('info',(string)trans('firefly.no_att_demo_user')); + session()->flash('info', (string)trans('firefly.no_att_demo_user')); } if (count($this->attachments->getMessages()->get('attachments')) > 0) { $request->session()->flash('info', $this->attachments->getMessages()->get('attachments')); // @codeCoverageIgnore } - if (1 === (int) $request->get('return_to_edit')) { + if (1 === (int)$request->get('return_to_edit')) { // @codeCoverageIgnoreStart $request->session()->put('budgets.edit.fromUpdate', true); diff --git a/app/Http/Controllers/Budget/IndexController.php b/app/Http/Controllers/Budget/IndexController.php index 8a90506f15..d796956cb4 100644 --- a/app/Http/Controllers/Budget/IndexController.php +++ b/app/Http/Controllers/Budget/IndexController.php @@ -49,11 +49,12 @@ use Log; class IndexController extends Controller { use DateCalculation; + private AvailableBudgetRepositoryInterface $abRepository; - private BudgetLimitRepositoryInterface $blRepository; - private CurrencyRepositoryInterface $currencyRepository; - private OperationsRepositoryInterface $opsRepository; - private BudgetRepositoryInterface $repository; + private BudgetLimitRepositoryInterface $blRepository; + private CurrencyRepositoryInterface $currencyRepository; + private OperationsRepositoryInterface $opsRepository; + private BudgetRepositoryInterface $repository; /** * IndexController constructor. @@ -66,7 +67,7 @@ class IndexController extends Controller $this->middleware( function ($request, $next) { - app('view')->share('title', (string) trans('firefly.budgets')); + app('view')->share('title', (string)trans('firefly.budgets')); app('view')->share('mainTitleIcon', 'fa-pie-chart'); $this->repository = app(BudgetRepositoryInterface::class); $this->opsRepository = app(OperationsRepositoryInterface::class); @@ -95,7 +96,7 @@ class IndexController extends Controller Log::debug('Start of IndexController::index()'); // collect some basic vars: - $range = (string) app('preferences')->get('viewRange', '1M')->data; + $range = (string)app('preferences')->get('viewRange', '1M')->data; $start = $start ?? session('start', Carbon::now()->startOfMonth()); $end = $end ?? app('navigation')->endOfPeriod($start, $range); $defaultCurrency = app('amount')->getDefaultCurrency(); @@ -141,91 +142,6 @@ class IndexController extends Controller ); } - /** - * @param Request $request - * @param BudgetRepositoryInterface $repository - * - * @return JsonResponse - */ - public function reorder(Request $request, BudgetRepositoryInterface $repository): JsonResponse - { - $budgetIds = $request->get('budgetIds'); - - foreach ($budgetIds as $index => $budgetId) { - $budgetId = (int) $budgetId; - $budget = $repository->findNull($budgetId); - if (null !== $budget) { - Log::debug(sprintf('Set budget #%d ("%s") to position %d', $budget->id, $budget->name, $index + 1)); - $repository->setBudgetOrder($budget, $index + 1); - } - } - app('preferences')->mark(); - - return response()->json(['OK']); - } - - /** - * @param array $budgets - * - * @return array - */ - private function getSums(array $budgets): array - { - $sums = [ - 'budgeted' => [], - 'spent' => [], - 'left' => [], - ]; - - /** @var array $budget */ - foreach ($budgets as $budget) { - /** @var array $spent */ - foreach ($budget['spent'] as $spent) { - $currencyId = $spent['currency_id']; - $sums['spent'][$currencyId] - = $sums['spent'][$currencyId] - ?? [ - 'amount' => '0', - 'currency_id' => $spent['currency_id'], - 'currency_symbol' => $spent['currency_symbol'], - 'currency_decimal_places' => $spent['currency_decimal_places'], - ]; - $sums['spent'][$currencyId]['amount'] = bcadd($sums['spent'][$currencyId]['amount'], $spent['spent']); - } - - /** @var array $budgeted */ - foreach ($budget['budgeted'] as $budgeted) { - $currencyId = $budgeted['currency_id']; - $sums['budgeted'][$currencyId] - = $sums['budgeted'][$currencyId] - ?? [ - 'amount' => '0', - 'currency_id' => $budgeted['currency_id'], - 'currency_symbol' => $budgeted['currency_symbol'], - 'currency_decimal_places' => $budgeted['currency_decimal_places'], - ]; - $sums['budgeted'][$currencyId]['amount'] = bcadd($sums['budgeted'][$currencyId]['amount'], $budgeted['amount']); - - // also calculate how much left from budgeted: - $sums['left'][$currencyId] = $sums['left'][$currencyId] - ?? [ - 'amount' => '0', - 'currency_id' => $budgeted['currency_id'], - 'currency_symbol' => $budgeted['currency_symbol'], - 'currency_decimal_places' => $budgeted['currency_decimal_places'], - ]; - } - } - // final calculation for 'left': - foreach ($sums['budgeted'] as $currencyId => $info) { - $spent = $sums['spent'][$currencyId]['amount'] ?? '0'; - $budgeted = $sums['budgeted'][$currencyId]['amount'] ?? '0'; - $sums['left'][$currencyId]['amount'] = bcadd($spent, $budgeted); - } - - return $sums; - } - /** * @param Carbon $start * @param Carbon $end @@ -289,7 +205,7 @@ class IndexController extends Controller $currency = $limit->transactionCurrency ?? $defaultCurrency; $array['budgeted'][] = [ 'id' => $limit->id, - 'amount' => number_format((float) $limit->amount, $currency->decimal_places, '.', ''), + 'amount' => number_format((float)$limit->amount, $currency->decimal_places, '.', ''), 'start_date' => $limit->start_date->formatLocalized($this->monthAndDayFormat), 'end_date' => $limit->end_date->formatLocalized($this->monthAndDayFormat), 'in_range' => $limit->start_date->isSameDay($start) && $limit->end_date->isSameDay($end), @@ -312,6 +228,92 @@ class IndexController extends Controller } $budgets[] = $array; } + return $budgets; } + + /** + * @param array $budgets + * + * @return array + */ + private function getSums(array $budgets): array + { + $sums = [ + 'budgeted' => [], + 'spent' => [], + 'left' => [], + ]; + + /** @var array $budget */ + foreach ($budgets as $budget) { + /** @var array $spent */ + foreach ($budget['spent'] as $spent) { + $currencyId = $spent['currency_id']; + $sums['spent'][$currencyId] + = $sums['spent'][$currencyId] + ?? [ + 'amount' => '0', + 'currency_id' => $spent['currency_id'], + 'currency_symbol' => $spent['currency_symbol'], + 'currency_decimal_places' => $spent['currency_decimal_places'], + ]; + $sums['spent'][$currencyId]['amount'] = bcadd($sums['spent'][$currencyId]['amount'], $spent['spent']); + } + + /** @var array $budgeted */ + foreach ($budget['budgeted'] as $budgeted) { + $currencyId = $budgeted['currency_id']; + $sums['budgeted'][$currencyId] + = $sums['budgeted'][$currencyId] + ?? [ + 'amount' => '0', + 'currency_id' => $budgeted['currency_id'], + 'currency_symbol' => $budgeted['currency_symbol'], + 'currency_decimal_places' => $budgeted['currency_decimal_places'], + ]; + $sums['budgeted'][$currencyId]['amount'] = bcadd($sums['budgeted'][$currencyId]['amount'], $budgeted['amount']); + + // also calculate how much left from budgeted: + $sums['left'][$currencyId] = $sums['left'][$currencyId] + ?? [ + 'amount' => '0', + 'currency_id' => $budgeted['currency_id'], + 'currency_symbol' => $budgeted['currency_symbol'], + 'currency_decimal_places' => $budgeted['currency_decimal_places'], + ]; + } + } + // final calculation for 'left': + foreach ($sums['budgeted'] as $currencyId => $info) { + $spent = $sums['spent'][$currencyId]['amount'] ?? '0'; + $budgeted = $sums['budgeted'][$currencyId]['amount'] ?? '0'; + $sums['left'][$currencyId]['amount'] = bcadd($spent, $budgeted); + } + + return $sums; + } + + /** + * @param Request $request + * @param BudgetRepositoryInterface $repository + * + * @return JsonResponse + */ + public function reorder(Request $request, BudgetRepositoryInterface $repository): JsonResponse + { + $budgetIds = $request->get('budgetIds'); + + foreach ($budgetIds as $index => $budgetId) { + $budgetId = (int)$budgetId; + $budget = $repository->findNull($budgetId); + if (null !== $budget) { + Log::debug(sprintf('Set budget #%d ("%s") to position %d', $budget->id, $budget->name, $index + 1)); + $repository->setBudgetOrder($budget, $index + 1); + } + } + app('preferences')->mark(); + + return response()->json(['OK']); + } } diff --git a/app/Http/Controllers/Budget/ShowController.php b/app/Http/Controllers/Budget/ShowController.php index 589a60f9a0..a146dc199c 100644 --- a/app/Http/Controllers/Budget/ShowController.php +++ b/app/Http/Controllers/Budget/ShowController.php @@ -23,7 +23,6 @@ declare(strict_types=1); namespace FireflyIII\Http\Controllers\Budget; - use Carbon\Carbon; use FireflyIII\Exceptions\FireflyException; use FireflyIII\Helpers\Collector\GroupCollectorInterface; @@ -46,8 +45,9 @@ use Illuminate\View\View; class ShowController extends Controller { use PeriodOverview, AugumentData; + private JournalRepositoryInterface $journalRepos; - private BudgetRepositoryInterface $repository; + private BudgetRepositoryInterface $repository; /** * ShowController constructor. @@ -60,10 +60,10 @@ class ShowController extends Controller parent::__construct(); $this->middleware( function ($request, $next) { - app('view')->share('title', (string) trans('firefly.budgets')); + app('view')->share('title', (string)trans('firefly.budgets')); app('view')->share('mainTitleIcon', 'fa-pie-chart'); $this->journalRepos = app(JournalRepositoryInterface::class); - $this->repository = app(BudgetRepositoryInterface::class); + $this->repository = app(BudgetRepositoryInterface::class); return $next($request); } @@ -94,8 +94,8 @@ class ShowController extends Controller $first = $this->journalRepos->firstNull(); $firstDate = null !== $first ? $first->date : $start; $periods = $this->getNoBudgetPeriodOverview($firstDate, $end); - $page = (int) $request->get('page'); - $pageSize = (int) app('preferences')->get('listPageSize', 50)->data; + $page = (int)$request->get('page'); + $pageSize = (int)app('preferences')->get('listPageSize', 50)->data; /** @var GroupCollectorInterface $collector */ $collector = app(GroupCollectorInterface::class); @@ -117,12 +117,12 @@ class ShowController extends Controller public function noBudgetAll(Request $request) { - $subTitle = (string) trans('firefly.all_journals_without_budget'); + $subTitle = (string)trans('firefly.all_journals_without_budget'); $first = $this->journalRepos->firstNull(); $start = null === $first ? new Carbon : $first->date; $end = today(config('app.timezone')); - $page = (int) $request->get('page'); - $pageSize = (int) app('preferences')->get('listPageSize', 50)->data; + $page = (int)$request->get('page'); + $pageSize = (int)app('preferences')->get('listPageSize', 50)->data; /** @var GroupCollectorInterface $collector */ $collector = app(GroupCollectorInterface::class); @@ -134,7 +134,6 @@ class ShowController extends Controller return prefixView('budgets.no-budget', compact('groups', 'subTitle', 'start', 'end')); } - /** * Show a single budget. * @@ -146,14 +145,12 @@ class ShowController extends Controller public function show(Request $request, Budget $budget) { /** @var Carbon $start */ - $allStart = session('first', Carbon::now()->startOfYear()); - $allEnd = today(); - - - $page = (int) $request->get('page'); - $pageSize = (int) app('preferences')->get('listPageSize', 50)->data; - $limits = $this->getLimits($budget, $allStart, $allEnd); - $repetition = null; + $allStart = session('first', Carbon::now()->startOfYear()); + $allEnd = today(); + $page = (int)$request->get('page'); + $pageSize = (int)app('preferences')->get('listPageSize', 50)->data; + $limits = $this->getLimits($budget, $allStart, $allEnd); + $repetition = null; $attachments = $this->repository->getAttachments($budget); // collector: @@ -165,9 +162,9 @@ class ShowController extends Controller $groups = $collector->getPaginatedGroups(); $groups->setPath(route('budgets.show', [$budget->id])); - $subTitle = (string) trans('firefly.all_journals_for_budget', ['name' => $budget->name]); + $subTitle = (string)trans('firefly.all_journals_for_budget', ['name' => $budget->name]); - return prefixView('budgets.show', compact('limits','attachments', 'budget', 'repetition', 'groups', 'subTitle')); + return prefixView('budgets.show', compact('limits', 'attachments', 'budget', 'repetition', 'groups', 'subTitle')); } /** @@ -177,8 +174,8 @@ class ShowController extends Controller * @param Budget $budget * @param BudgetLimit $budgetLimit * - * @throws FireflyException * @return Factory|View + * @throws FireflyException */ public function showByBudgetLimit(Request $request, Budget $budget, BudgetLimit $budgetLimit) { @@ -186,8 +183,8 @@ class ShowController extends Controller throw new FireflyException('This budget limit is not part of this budget.'); // @codeCoverageIgnore } - $page = (int) $request->get('page'); - $pageSize = (int) app('preferences')->get('listPageSize', 50)->data; + $page = (int)$request->get('page'); + $pageSize = (int)app('preferences')->get('listPageSize', 50)->data; $subTitle = trans( 'firefly.budget_in_period', [ @@ -207,11 +204,11 @@ class ShowController extends Controller $groups = $collector->getPaginatedGroups(); $groups->setPath(route('budgets.show', [$budget->id, $budgetLimit->id])); /** @var Carbon $start */ - $start = session('first', Carbon::now()->startOfYear()); - $end = today(config('app.timezone')); + $start = session('first', Carbon::now()->startOfYear()); + $end = today(config('app.timezone')); $attachments = $this->repository->getAttachments($budget); - $limits = $this->getLimits($budget, $start, $end); + $limits = $this->getLimits($budget, $start, $end); - return prefixView('budgets.show', compact('limits','attachments', 'budget', 'budgetLimit', 'groups', 'subTitle')); + return prefixView('budgets.show', compact('limits', 'attachments', 'budget', 'budgetLimit', 'groups', 'subTitle')); } } diff --git a/app/Http/Controllers/Category/CreateController.php b/app/Http/Controllers/Category/CreateController.php index e96c30ae78..c35c44ce94 100644 --- a/app/Http/Controllers/Category/CreateController.php +++ b/app/Http/Controllers/Category/CreateController.php @@ -23,7 +23,6 @@ declare(strict_types=1); namespace FireflyIII\Http\Controllers\Category; - use FireflyIII\Helpers\Attachments\AttachmentHelperInterface; use FireflyIII\Http\Controllers\Controller; use FireflyIII\Http\Requests\CategoryFormRequest; @@ -39,8 +38,8 @@ use Illuminate\View\View; */ class CreateController extends Controller { - private CategoryRepositoryInterface $repository; private AttachmentHelperInterface $attachments; + private CategoryRepositoryInterface $repository; /** * CategoryController constructor. @@ -53,7 +52,7 @@ class CreateController extends Controller $this->middleware( function ($request, $next) { - app('view')->share('title', (string) trans('firefly.categories')); + app('view')->share('title', (string)trans('firefly.categories')); app('view')->share('mainTitleIcon', 'fa-bookmark'); $this->repository = app(CategoryRepositoryInterface::class); $this->attachments = app(AttachmentHelperInterface::class); @@ -63,7 +62,6 @@ class CreateController extends Controller ); } - /** * Create category. * @@ -77,12 +75,11 @@ class CreateController extends Controller $this->rememberPreviousUri('categories.create.uri'); } $request->session()->forget('categories.create.fromStore'); - $subTitle = (string) trans('firefly.create_new_category'); + $subTitle = (string)trans('firefly.create_new_category'); return prefixView('categories.create', compact('subTitle')); } - /** * Store new category. * @@ -95,7 +92,7 @@ class CreateController extends Controller $data = $request->getCategoryData(); $category = $this->repository->store($data); - $request->session()->flash('success', (string) trans('firefly.stored_category', ['name' => $category->name])); + $request->session()->flash('success', (string)trans('firefly.stored_category', ['name' => $category->name])); app('preferences')->mark(); // store attachment(s): @@ -104,7 +101,7 @@ class CreateController extends Controller $this->attachments->saveAttachmentsForModel($category, $files); } if (null !== $files && auth()->user()->hasRole('demo')) { - session()->flash('info', (string) trans('firefly.no_att_demo_user')); + session()->flash('info', (string)trans('firefly.no_att_demo_user')); } if (count($this->attachments->getMessages()->get('attachments')) > 0) { @@ -112,7 +109,7 @@ class CreateController extends Controller } $redirect = redirect(route('categories.index')); - if (1 === (int) $request->get('create_another')) { + if (1 === (int)$request->get('create_another')) { // @codeCoverageIgnoreStart $request->session()->put('categories.create.fromStore', true); diff --git a/app/Http/Controllers/Category/DeleteController.php b/app/Http/Controllers/Category/DeleteController.php index d6b406503d..191b5acdf2 100644 --- a/app/Http/Controllers/Category/DeleteController.php +++ b/app/Http/Controllers/Category/DeleteController.php @@ -23,7 +23,6 @@ declare(strict_types=1); namespace FireflyIII\Http\Controllers\Category; - use FireflyIII\Http\Controllers\Controller; use FireflyIII\Models\Category; use FireflyIII\Repositories\Category\CategoryRepositoryInterface; @@ -52,7 +51,7 @@ class DeleteController extends Controller $this->middleware( function ($request, $next) { - app('view')->share('title', (string) trans('firefly.categories')); + app('view')->share('title', (string)trans('firefly.categories')); app('view')->share('mainTitleIcon', 'fa-bookmark'); $this->repository = app(CategoryRepositoryInterface::class); @@ -70,7 +69,7 @@ class DeleteController extends Controller */ public function delete(Category $category) { - $subTitle = (string) trans('firefly.delete_category', ['name' => $category->name]); + $subTitle = (string)trans('firefly.delete_category', ['name' => $category->name]); // put previous url in session $this->rememberPreviousUri('categories.delete.uri'); @@ -91,7 +90,7 @@ class DeleteController extends Controller $name = $category->name; $this->repository->destroy($category); - $request->session()->flash('success', (string) trans('firefly.deleted_category', ['name' => $name])); + $request->session()->flash('success', (string)trans('firefly.deleted_category', ['name' => $name])); app('preferences')->mark(); return redirect($this->getPreviousUri('categories.delete.uri')); diff --git a/app/Http/Controllers/Category/EditController.php b/app/Http/Controllers/Category/EditController.php index c1552813e8..16940cfb70 100644 --- a/app/Http/Controllers/Category/EditController.php +++ b/app/Http/Controllers/Category/EditController.php @@ -23,7 +23,6 @@ declare(strict_types=1); namespace FireflyIII\Http\Controllers\Category; - use FireflyIII\Helpers\Attachments\AttachmentHelperInterface; use FireflyIII\Http\Controllers\Controller; use FireflyIII\Http\Requests\CategoryFormRequest; @@ -41,8 +40,8 @@ use Illuminate\View\View; class EditController extends Controller { - private CategoryRepositoryInterface $repository; private AttachmentHelperInterface $attachments; + private CategoryRepositoryInterface $repository; /** * CategoryController constructor. @@ -65,7 +64,6 @@ class EditController extends Controller ); } - /** * Edit a category. * @@ -119,8 +117,6 @@ class EditController extends Controller if (count($this->attachments->getMessages()->get('attachments')) > 0) { $request->session()->flash('info', $this->attachments->getMessages()->get('attachments')); // @codeCoverageIgnore } - - $redirect = redirect($this->getPreviousUri('categories.edit.uri')); if (1 === (int)$request->get('return_to_edit')) { diff --git a/app/Http/Controllers/Category/IndexController.php b/app/Http/Controllers/Category/IndexController.php index 19c974cfdc..9b75383272 100644 --- a/app/Http/Controllers/Category/IndexController.php +++ b/app/Http/Controllers/Category/IndexController.php @@ -23,7 +23,6 @@ declare(strict_types=1); namespace FireflyIII\Http\Controllers\Category; - use FireflyIII\Http\Controllers\Controller; use FireflyIII\Models\Category; use FireflyIII\Repositories\Category\CategoryRepositoryInterface; @@ -52,7 +51,7 @@ class IndexController extends Controller $this->middleware( function ($request, $next) { - app('view')->share('title', (string) trans('firefly.categories')); + app('view')->share('title', (string)trans('firefly.categories')); app('view')->share('mainTitleIcon', 'fa-bookmark'); $this->repository = app(CategoryRepositoryInterface::class); @@ -61,7 +60,6 @@ class IndexController extends Controller ); } - /** * Show all categories. * @@ -71,8 +69,8 @@ class IndexController extends Controller */ public function index(Request $request) { - $page = 0 === (int) $request->get('page') ? 1 : (int) $request->get('page'); - $pageSize = (int) app('preferences')->get('listPageSize', 50)->data; + $page = 0 === (int)$request->get('page') ? 1 : (int)$request->get('page'); + $pageSize = (int)app('preferences')->get('listPageSize', 50)->data; $collection = $this->repository->getCategories(); $total = $collection->count(); $collection = $collection->slice(($page - 1) * $pageSize, $pageSize); diff --git a/app/Http/Controllers/Category/NoCategoryController.php b/app/Http/Controllers/Category/NoCategoryController.php index 5d3461edf1..5360245aba 100644 --- a/app/Http/Controllers/Category/NoCategoryController.php +++ b/app/Http/Controllers/Category/NoCategoryController.php @@ -23,7 +23,6 @@ declare(strict_types=1); namespace FireflyIII\Http\Controllers\Category; - use Carbon\Carbon; use FireflyIII\Helpers\Collector\GroupCollectorInterface; use FireflyIII\Http\Controllers\Controller; @@ -43,6 +42,7 @@ use Log; class NoCategoryController extends Controller { use PeriodOverview; + /** @var JournalRepositoryInterface Journals and transactions overview */ private $journalRepos; @@ -58,7 +58,7 @@ class NoCategoryController extends Controller $this->middleware( function ($request, $next) { - app('view')->share('title', (string) trans('firefly.categories')); + app('view')->share('title', (string)trans('firefly.categories')); app('view')->share('mainTitleIcon', 'fa-bookmark'); $this->journalRepos = app(JournalRepositoryInterface::class); @@ -83,8 +83,8 @@ class NoCategoryController extends Controller $start = $start ?? session('start'); /** @var Carbon $end */ $end = $end ?? session('end'); - $page = (int) $request->get('page'); - $pageSize = (int) app('preferences')->get('listPageSize', 50)->data; + $page = (int)$request->get('page'); + $pageSize = (int)app('preferences')->get('listPageSize', 50)->data; $subTitle = trans( 'firefly.without_category_between', ['start' => $start->formatLocalized($this->monthAndDayFormat), 'end' => $end->formatLocalized($this->monthAndDayFormat)] @@ -106,7 +106,6 @@ class NoCategoryController extends Controller return prefixView('categories.no-category', compact('groups', 'subTitle', 'periods', 'start', 'end')); } - /** * Show all transactions without a category. * @@ -120,10 +119,10 @@ class NoCategoryController extends Controller $start = null; $end = null; $periods = new Collection; - $page = (int) $request->get('page'); - $pageSize = (int) app('preferences')->get('listPageSize', 50)->data; + $page = (int)$request->get('page'); + $pageSize = (int)app('preferences')->get('listPageSize', 50)->data; Log::debug('Start of noCategory()'); - $subTitle = (string) trans('firefly.all_journals_without_category'); + $subTitle = (string)trans('firefly.all_journals_without_category'); $first = $this->journalRepos->firstNull(); $start = null === $first ? new Carbon : $first->date; $end = today(config('app.timezone')); diff --git a/app/Http/Controllers/Category/ShowController.php b/app/Http/Controllers/Category/ShowController.php index 4ba3d743b9..67c21af5b4 100644 --- a/app/Http/Controllers/Category/ShowController.php +++ b/app/Http/Controllers/Category/ShowController.php @@ -42,6 +42,7 @@ use Illuminate\View\View; class ShowController extends Controller { use PeriodOverview; + /** @var CategoryRepositoryInterface The category repository */ private $repository; @@ -57,7 +58,7 @@ class ShowController extends Controller $this->middleware( function ($request, $next) { - app('view')->share('title', (string) trans('firefly.categories')); + app('view')->share('title', (string)trans('firefly.categories')); app('view')->share('mainTitleIcon', 'fa-bookmark'); $this->repository = app(CategoryRepositoryInterface::class); @@ -66,7 +67,6 @@ class ShowController extends Controller ); } - /** * Show a single category. * @@ -84,9 +84,9 @@ class ShowController extends Controller /** @var Carbon $end */ $end = $end ?? session('end', Carbon::now()->endOfMonth()); $subTitleIcon = 'fa-bookmark'; - $page = (int) $request->get('page'); + $page = (int)$request->get('page'); $attachments = $this->repository->getAttachments($category); - $pageSize = (int) app('preferences')->get('listPageSize', 50)->data; + $pageSize = (int)app('preferences')->get('listPageSize', 50)->data; $oldest = $this->repository->firstUseDate($category) ?? Carbon::now()->startOfYear(); $periods = $this->getCategoryPeriodOverview($category, $oldest, $end); $path = route('categories.show', [$category->id, $start->format('Y-m-d'), $end->format('Y-m-d')]); @@ -105,7 +105,7 @@ class ShowController extends Controller $groups = $collector->getPaginatedGroups(); $groups->setPath($path); - return prefixView('categories.show', compact('category','attachments', 'groups', 'periods', 'subTitle', 'subTitleIcon', 'start', 'end')); + return prefixView('categories.show', compact('category', 'attachments', 'groups', 'periods', 'subTitle', 'subTitleIcon', 'start', 'end')); } /** @@ -120,19 +120,19 @@ class ShowController extends Controller { // default values: $subTitleIcon = 'fa-bookmark'; - $page = (int) $request->get('page'); - $pageSize = (int) app('preferences')->get('listPageSize', 50)->data; + $page = (int)$request->get('page'); + $pageSize = (int)app('preferences')->get('listPageSize', 50)->data; $start = null; $end = null; $periods = new Collection; - $subTitle = (string) trans('firefly.all_journals_for_category', ['name' => $category->name]); + $subTitle = (string)trans('firefly.all_journals_for_category', ['name' => $category->name]); $first = $this->repository->firstUseDate($category); /** @var Carbon $start */ - $start = $first ?? today(config('app.timezone')); - $end = today(config('app.timezone')); - $path = route('categories.show.all', [$category->id]); - $attachments = $this->repository->getAttachments($category); + $start = $first ?? today(config('app.timezone')); + $end = today(config('app.timezone')); + $path = route('categories.show.all', [$category->id]); + $attachments = $this->repository->getAttachments($category); /** @var GroupCollectorInterface $collector */ $collector = app(GroupCollectorInterface::class); @@ -143,6 +143,6 @@ class ShowController extends Controller $groups = $collector->getPaginatedGroups(); $groups->setPath($path); - return prefixView('categories.show', compact('category','attachments', 'groups', 'periods', 'subTitle', 'subTitleIcon', 'start', 'end')); + return prefixView('categories.show', compact('category', 'attachments', 'groups', 'periods', 'subTitle', 'subTitleIcon', 'start', 'end')); } } diff --git a/app/Http/Controllers/Chart/AccountController.php b/app/Http/Controllers/Chart/AccountController.php index 997a2c26c9..75894437eb 100644 --- a/app/Http/Controllers/Chart/AccountController.php +++ b/app/Http/Controllers/Chart/AccountController.php @@ -75,11 +75,8 @@ class AccountController extends Controller return $next($request); } ); - - } - /** * Shows the balances for all the user's expense accounts (on the front page). * @@ -117,10 +114,10 @@ class AccountController extends Controller // loop the end balances. This is an array for each account ($expenses) foreach ($endBalances as $accountId => $expenses) { - $accountId = (int) $accountId; + $accountId = (int)$accountId; // loop each expense entry (each entry can be a different currency). foreach ($expenses as $currencyId => $endAmount) { - $currencyId = (int) $currencyId; + $currencyId = (int)$currencyId; // see if there is an accompanying start amount. // grab the difference and find the currency. @@ -132,7 +129,7 @@ class AccountController extends Controller $tempData[] = [ 'name' => $accountNames[$accountId], 'difference' => $diff, - 'diff_float' => (float) $diff, + 'diff_float' => (float)$diff, 'currency_id' => $currencyId, ]; } @@ -151,7 +148,7 @@ class AccountController extends Controller foreach ($currencies as $currencyId => $currency) { $dataSet = [ - 'label' => (string) trans('firefly.spent'), + 'label' => (string)trans('firefly.spent'), 'type' => 'bar', 'currency_symbol' => $currency->symbol, 'currency_code' => $currency->code, @@ -173,6 +170,22 @@ class AccountController extends Controller return response()->json($data); } + /** + * Expenses per budget for all time, as shown on account overview. + * + * @param AccountRepositoryInterface $repository + * @param Account $account + * + * @return JsonResponse + */ + public function expenseBudgetAll(AccountRepositoryInterface $repository, Account $account): JsonResponse + { + $start = $repository->oldestJournalDate($account) ?? Carbon::now()->startOfMonth(); + $end = Carbon::now(); + + return $this->expenseBudget($account, $start, $end); + } + /** * Expenses per budget, as shown on account overview. * @@ -201,7 +214,7 @@ class AccountController extends Controller $budgetIds = []; /** @var array $journal */ foreach ($journals as $journal) { - $budgetId = (int) $journal['budget_id']; + $budgetId = (int)$journal['budget_id']; $key = sprintf('%d-%d', $budgetId, $journal['currency_id']); $budgetIds[] = $budgetId; if (!isset($result[$key])) { @@ -221,7 +234,7 @@ class AccountController extends Controller foreach ($result as $row) { $budgetId = $row['budget_id']; $name = $names[$budgetId]; - $label = (string) trans('firefly.name_in_currency', ['name' => $name, 'currency' => $row['currency_name']]); + $label = (string)trans('firefly.name_in_currency', ['name' => $name, 'currency' => $row['currency_name']]); $chartData[$label] = ['amount' => $row['total'], 'currency_symbol' => $row['currency_symbol'], 'currency_code' => $row['currency_code']]; } @@ -232,19 +245,19 @@ class AccountController extends Controller } /** - * Expenses per budget for all time, as shown on account overview. + * Expenses grouped by category for account. * * @param AccountRepositoryInterface $repository * @param Account $account * * @return JsonResponse */ - public function expenseBudgetAll(AccountRepositoryInterface $repository, Account $account): JsonResponse + public function expenseCategoryAll(AccountRepositoryInterface $repository, Account $account): JsonResponse { $start = $repository->oldestJournalDate($account) ?? Carbon::now()->startOfMonth(); $end = Carbon::now(); - return $this->expenseBudget($account, $start, $end); + return $this->expenseCategory($account, $start, $end); } /** @@ -280,7 +293,7 @@ class AccountController extends Controller if (!isset($result[$key])) { $result[$key] = [ 'total' => '0', - 'category_id' => (int) $journal['category_id'], + 'category_id' => (int)$journal['category_id'], 'currency_name' => $journal['currency_name'], 'currency_symbol' => $journal['currency_symbol'], 'currency_code' => $journal['currency_code'], @@ -293,7 +306,7 @@ class AccountController extends Controller foreach ($result as $row) { $categoryId = $row['category_id']; $name = $names[$categoryId] ?? '(unknown)'; - $label = (string) trans('firefly.name_in_currency', ['name' => $name, 'currency' => $row['currency_name']]); + $label = (string)trans('firefly.name_in_currency', ['name' => $name, 'currency' => $row['currency_name']]); $chartData[$label] = ['amount' => $row['total'], 'currency_symbol' => $row['currency_symbol'], 'currency_code' => $row['currency_code']]; } @@ -303,22 +316,6 @@ class AccountController extends Controller return response()->json($data); } - /** - * Expenses grouped by category for account. - * - * @param AccountRepositoryInterface $repository - * @param Account $account - * - * @return JsonResponse - */ - public function expenseCategoryAll(AccountRepositoryInterface $repository, Account $account): JsonResponse - { - $start = $repository->oldestJournalDate($account) ?? Carbon::now()->startOfMonth(); - $end = Carbon::now(); - - return $this->expenseCategory($account, $start, $end); - } - /** * Shows the balances for all the user's frontpage accounts. * @@ -333,8 +330,6 @@ class AccountController extends Controller $defaultSet = $repository->getAccountsByType([AccountType::DEFAULT, AccountType::ASSET])->pluck('id')->toArray(); Log::debug('Default set is ', $defaultSet); $frontPage = app('preferences')->get('frontPageAccounts', $defaultSet); - - Log::debug('Frontpage preference set is ', $frontPage->data); if (0 === count($frontPage->data)) { app('preferences')->set('frontPageAccounts', $defaultSet); @@ -345,6 +340,22 @@ class AccountController extends Controller return response()->json($this->accountBalanceChart($accounts, $start, $end)); } + /** + * Shows the income grouped by category for an account, in all time. + * + * @param AccountRepositoryInterface $repository + * @param Account $account + * + * @return JsonResponse + */ + public function incomeCategoryAll(AccountRepositoryInterface $repository, Account $account): JsonResponse + { + $start = $repository->oldestJournalDate($account) ?? Carbon::now()->startOfMonth(); + $end = Carbon::now(); + + return $this->incomeCategory($account, $start, $end); + } + /** * Shows all income per account for each category. * @@ -382,7 +393,7 @@ class AccountController extends Controller 'category_id' => $journal['category_id'], 'currency_name' => $journal['currency_name'], 'currency_symbol' => $journal['currency_symbol'], - 'currency_code' => $journal['currency_code'], + 'currency_code' => $journal['currency_code'], ]; } $result[$key]['total'] = bcadd($journal['amount'], $result[$key]['total']); @@ -392,7 +403,7 @@ class AccountController extends Controller foreach ($result as $row) { $categoryId = $row['category_id']; $name = $names[$categoryId] ?? '(unknown)'; - $label = (string) trans('firefly.name_in_currency', ['name' => $name, 'currency' => $row['currency_name']]); + $label = (string)trans('firefly.name_in_currency', ['name' => $name, 'currency' => $row['currency_name']]); $chartData[$label] = ['amount' => $row['total'], 'currency_symbol' => $row['currency_symbol'], 'currency_code' => $row['currency_code']]; } $data = $this->generator->multiCurrencyPieChart($chartData); @@ -401,22 +412,6 @@ class AccountController extends Controller return response()->json($data); } - /** - * Shows the income grouped by category for an account, in all time. - * - * @param AccountRepositoryInterface $repository - * @param Account $account - * - * @return JsonResponse - */ - public function incomeCategoryAll(AccountRepositoryInterface $repository, Account $account): JsonResponse - { - $start = $repository->oldestJournalDate($account) ?? Carbon::now()->startOfMonth(); - $end = Carbon::now(); - - return $this->incomeCategory($account, $start, $end); - } - /** * Shows overview of account during a single period. * @@ -456,6 +451,61 @@ class AccountController extends Controller return response()->json($data); } + /** + * @param Carbon $start + * @param Carbon $end + * @param Account $account + * @param TransactionCurrency $currency + * + * @return array + */ + private function periodByCurrency(Carbon $start, Carbon $end, Account $account, TransactionCurrency $currency): array + { + $locale = app('steam')->getLocale(); + $step = $this->calculateStep($start, $end); + $result = [ + 'label' => sprintf('%s (%s)', $account->name, $currency->symbol), + 'currency_symbol' => $currency->symbol, + 'currency_code' => $currency->code, + 'entries' => [], + ]; + $entries = []; + $current = clone $start; + switch ($step) { + default: + break; + case '1D': + // per day the entire period, balance for every day. + $format = (string)trans('config.month_and_day', [], $locale); + $range = app('steam')->balanceInRange($account, $start, $end, $currency); + $previous = array_values($range)[0]; + while ($end >= $current) { + $theDate = $current->format('Y-m-d'); + $balance = $range[$theDate] ?? $previous; + $label = $current->formatLocalized($format); + $entries[$label] = (float)$balance; + $previous = $balance; + $current->addDay(); + } + break; + // @codeCoverageIgnoreStart + case '1W': + case '1M': + case '1Y': + while ($end >= $current) { + $balance = (float)app('steam')->balance($account, $current, $currency); + $label = app('navigation')->periodShow($current, $step); + $entries[$label] = $balance; + $current = app('navigation')->addPeriod($current, $step, 0); + } + break; + // @codeCoverageIgnoreEnd + } + $result['entries'] = $entries; + + return $result; + } + /** * Shows the balances for a given set of dates and accounts. * @@ -472,7 +522,6 @@ class AccountController extends Controller return response()->json($this->accountBalanceChart($accounts, $start, $end)); } - /** * Shows the balances for all the user's revenue accounts. * @@ -510,10 +559,10 @@ class AccountController extends Controller // loop the end balances. This is an array for each account ($expenses) foreach ($endBalances as $accountId => $expenses) { - $accountId = (int) $accountId; + $accountId = (int)$accountId; // loop each expense entry (each entry can be a different currency). foreach ($expenses as $currencyId => $endAmount) { - $currencyId = (int) $currencyId; + $currencyId = (int)$currencyId; // see if there is an accompanying start amount. // grab the difference and find the currency. @@ -525,7 +574,7 @@ class AccountController extends Controller $tempData[] = [ 'name' => $accountNames[$accountId], 'difference' => $diff, - 'diff_float' => (float) $diff, + 'diff_float' => (float)$diff, 'currency_id' => $currencyId, ]; } @@ -544,7 +593,7 @@ class AccountController extends Controller foreach ($currencies as $currencyId => $currency) { $dataSet = [ - 'label' => (string) trans('firefly.earned'), + 'label' => (string)trans('firefly.earned'), 'type' => 'bar', 'currency_symbol' => $currency->symbol, 'currency_code' => $currency->code, @@ -565,59 +614,4 @@ class AccountController extends Controller return response()->json($data); } - - /** - * @param Carbon $start - * @param Carbon $end - * @param Account $account - * @param TransactionCurrency $currency - * - * @return array - */ - private function periodByCurrency(Carbon $start, Carbon $end, Account $account, TransactionCurrency $currency): array - { - $locale = app('steam')->getLocale(); - $step = $this->calculateStep($start, $end); - $result = [ - 'label' => sprintf('%s (%s)', $account->name, $currency->symbol), - 'currency_symbol' => $currency->symbol, - 'currency_code' => $currency->code, - 'entries' => [], - ]; - $entries = []; - $current = clone $start; - switch ($step) { - default: - break; - case '1D': - // per day the entire period, balance for every day. - $format = (string) trans('config.month_and_day', [], $locale); - $range = app('steam')->balanceInRange($account, $start, $end, $currency); - $previous = array_values($range)[0]; - while ($end >= $current) { - $theDate = $current->format('Y-m-d'); - $balance = $range[$theDate] ?? $previous; - $label = $current->formatLocalized($format); - $entries[$label] = (float) $balance; - $previous = $balance; - $current->addDay(); - } - break; - // @codeCoverageIgnoreStart - case '1W': - case '1M': - case '1Y': - while ($end >= $current) { - $balance = (float) app('steam')->balance($account, $current, $currency); - $label = app('navigation')->periodShow($current, $step); - $entries[$label] = $balance; - $current = app('navigation')->addPeriod($current, $step, 0); - } - break; - // @codeCoverageIgnoreEnd - } - $result['entries'] = $entries; - - return $result; - } } diff --git a/app/Http/Controllers/Chart/BillController.php b/app/Http/Controllers/Chart/BillController.php index 3e06e23d3b..de009a6f45 100644 --- a/app/Http/Controllers/Chart/BillController.php +++ b/app/Http/Controllers/Chart/BillController.php @@ -51,7 +51,6 @@ class BillController extends Controller $this->generator = app(GeneratorInterface::class); } - /** * Shows all bills and whether or not they've been paid this month (pie chart). * @@ -80,13 +79,15 @@ class BillController extends Controller foreach ($paid as $currencyId => $amount) { $currencies[$currencyId] = $currencies[$currencyId] ?? $currencyRepository->findNull($currencyId); - $label = (string) trans('firefly.paid_in_currency', ['currency' => $currencies[$currencyId]->name]); - $chartData[$label] = ['amount' => $amount, 'currency_symbol' => $currencies[$currencyId]->symbol, 'currency_code' => $currencies[$currencyId]->code]; + $label = (string)trans('firefly.paid_in_currency', ['currency' => $currencies[$currencyId]->name]); + $chartData[$label] = ['amount' => $amount, 'currency_symbol' => $currencies[$currencyId]->symbol, + 'currency_code' => $currencies[$currencyId]->code]; } foreach ($unpaid as $currencyId => $amount) { $currencies[$currencyId] = $currencies[$currencyId] ?? $currencyRepository->findNull($currencyId); - $label = (string) trans('firefly.unpaid_in_currency', ['currency' => $currencies[$currencyId]->name]); - $chartData[$label] = ['amount' => $amount, 'currency_symbol' => $currencies[$currencyId]->symbol, 'currency_code' => $currencies[$currencyId]->code]; + $label = (string)trans('firefly.unpaid_in_currency', ['currency' => $currencies[$currencyId]->name]); + $chartData[$label] = ['amount' => $amount, 'currency_symbol' => $currencies[$currencyId]->symbol, + 'currency_code' => $currencies[$currencyId]->code]; } $data = $this->generator->multiCurrencyPieChart($chartData); @@ -95,7 +96,6 @@ class BillController extends Controller return response()->json($data); } - /** * Shows overview for a single bill. * @@ -109,7 +109,7 @@ class BillController extends Controller $cache->addProperty('chart.bill.single'); $cache->addProperty($bill->id); if ($cache->has()) { - return response()->json($cache->get()); // @codeCoverageIgnore + return response()->json($cache->get()); // @codeCoverageIgnore } $locale = app('steam')->getLocale(); @@ -121,24 +121,28 @@ class BillController extends Controller usort( $journals, static function (array $left, array $right) { - if($left['date']->gt($right['date'])) { + if ($left['date']->gt($right['date'])) { return 1; } - if($left['date']->lt($right['date'])) { + if ($left['date']->lt($right['date'])) { return -1; } + return 0; } ); $chartData = [ - ['type' => 'line', 'label' => (string) trans('firefly.min-amount'), 'currency_symbol' => $bill->transactionCurrency->symbol, 'currency_code' => $bill->transactionCurrency->code, 'entries' => []], - ['type' => 'line', 'label' => (string) trans('firefly.max-amount'), 'currency_symbol' => $bill->transactionCurrency->symbol, 'currency_code' => $bill->transactionCurrency->code, 'entries' => []], - ['type' => 'bar', 'label' => (string) trans('firefly.journal-amount'), 'currency_symbol' => $bill->transactionCurrency->symbol, 'currency_code' => $bill->transactionCurrency->code, 'entries' => []], + ['type' => 'line', 'label' => (string)trans('firefly.min-amount'), 'currency_symbol' => $bill->transactionCurrency->symbol, + 'currency_code' => $bill->transactionCurrency->code, 'entries' => []], + ['type' => 'line', 'label' => (string)trans('firefly.max-amount'), 'currency_symbol' => $bill->transactionCurrency->symbol, + 'currency_code' => $bill->transactionCurrency->code, 'entries' => []], + ['type' => 'bar', 'label' => (string)trans('firefly.journal-amount'), 'currency_symbol' => $bill->transactionCurrency->symbol, + 'currency_code' => $bill->transactionCurrency->code, 'entries' => []], ]; foreach ($journals as $journal) { - $date = $journal['date']->formatLocalized((string) trans('config.month_and_day', [], $locale)); + $date = $journal['date']->formatLocalized((string)trans('config.month_and_day', [], $locale)); $chartData[0]['entries'][$date] = $bill->amount_min; // minimum amount of bill $chartData[1]['entries'][$date] = $bill->amount_max; // maximum amount of bill diff --git a/app/Http/Controllers/Chart/BudgetController.php b/app/Http/Controllers/Chart/BudgetController.php index a3518a925a..1cca259abf 100644 --- a/app/Http/Controllers/Chart/BudgetController.php +++ b/app/Http/Controllers/Chart/BudgetController.php @@ -78,7 +78,6 @@ class BudgetController extends Controller ); } - /** * Shows overview of a single budget. * @@ -144,7 +143,6 @@ class BudgetController extends Controller return response()->json($data); } - /** * Shows the amount left in a specific budget limit. * @@ -171,7 +169,7 @@ class BudgetController extends Controller $cache->addProperty($budget->id); if ($cache->has()) { - return response()->json($cache->get()); // @codeCoverageIgnore + return response()->json($cache->get()); // @codeCoverageIgnore } $locale = app('steam')->getLocale(); $entries = []; @@ -197,7 +195,6 @@ class BudgetController extends Controller return response()->json($data); } - /** * Shows how much is spent per asset account. * @@ -266,7 +263,6 @@ class BudgetController extends Controller return response()->json($data); } - /** * Shows how much is spent per category. * @@ -331,7 +327,6 @@ class BudgetController extends Controller return response()->json($data); } - /** * Shows how much is spent per expense account. * @@ -399,7 +394,6 @@ class BudgetController extends Controller return response()->json($data); } - /** * Shows a budget list with spent/left/overspent. * @@ -432,7 +426,6 @@ class BudgetController extends Controller return response()->json($data); } - /** * Shows a budget overview chart (spent and budgeted). * @@ -491,13 +484,13 @@ class BudgetController extends Controller // get budget limit in this period for this currency. $limit = $this->blRepository->find($budget, $currency, $currentStart, $currentEnd); if (null !== $limit) { - $chartData[1]['entries'][$title] = round((float) $limit->amount, $currency->decimal_places); + $chartData[1]['entries'][$title] = round((float)$limit->amount, $currency->decimal_places); } // get spent amount in this period for this currency. $sum = $this->opsRepository->sumExpenses($currentStart, $currentEnd, $accounts, new Collection([$budget]), $currency); $amount = app('steam')->positive($sum[$currency->id]['sum'] ?? '0'); - $chartData[0]['entries'][$title] = round((float) $amount, $currency->decimal_places); + $chartData[0]['entries'][$title] = round((float)$amount, $currency->decimal_places); $currentStart = clone $currentEnd; $currentStart->addDay()->startOfDay(); @@ -509,7 +502,6 @@ class BudgetController extends Controller return response()->json($data); } - /** * Shows a chart for transactions without a budget. * @@ -543,7 +535,7 @@ class BudgetController extends Controller $title = $currentStart->formatLocalized($titleFormat); $sum = $this->nbRepository->sumExpenses($currentStart, $currentEnd, $accounts, $currency); $amount = app('steam')->positive($sum[$currency->id]['sum'] ?? '0'); - $chartData[$title] = round((float) $amount, $currency->decimal_places); + $chartData[$title] = round((float)$amount, $currency->decimal_places); $currentStart = app('navigation')->addPeriod($currentStart, $preferredRange, 0); } diff --git a/app/Http/Controllers/Chart/BudgetReportController.php b/app/Http/Controllers/Chart/BudgetReportController.php index 0ab328e656..69bf517433 100644 --- a/app/Http/Controllers/Chart/BudgetReportController.php +++ b/app/Http/Controllers/Chart/BudgetReportController.php @@ -42,6 +42,7 @@ use Illuminate\Support\Collection; class BudgetReportController extends Controller { use AugumentData, TransactionCalculation; + /** @var GeneratorInterface Chart generation methods. */ private $generator; @@ -199,7 +200,7 @@ class BudgetReportController extends Controller $chartData[$spentKey] = $chartData[$spentKey] ?? [ 'label' => sprintf( '%s (%s)', - (string) trans('firefly.spent_in_specific_budget', ['budget' => $budget->name]), + (string)trans('firefly.spent_in_specific_budget', ['budget' => $budget->name]), $currency['currency_name'] ), 'type' => 'bar', @@ -224,6 +225,29 @@ class BudgetReportController extends Controller return response()->json($data); } + /** + * @param Carbon $start + * @param Carbon $end + * + * @return array + */ + private function makeEntries(Carbon $start, Carbon $end): array + { + $return = []; + $format = app('navigation')->preferredCarbonLocalizedFormat($start, $end); + $preferredRange = app('navigation')->preferredRangeFormat($start, $end); + $currentStart = clone $start; + while ($currentStart <= $end) { + $currentEnd = app('navigation')->endOfPeriod($currentStart, $preferredRange); + $key = $currentStart->formatLocalized($format); + $return[$key] = '0'; + $currentStart = clone $currentEnd; + $currentStart->addDay()->startOfDay(); + } + + return $return; + } + /** * Chart that groups expenses by the account. * @@ -260,27 +284,4 @@ class BudgetReportController extends Controller return response()->json($data); } - - /** - * @param Carbon $start - * @param Carbon $end - * - * @return array - */ - private function makeEntries(Carbon $start, Carbon $end): array - { - $return = []; - $format = app('navigation')->preferredCarbonLocalizedFormat($start, $end); - $preferredRange = app('navigation')->preferredRangeFormat($start, $end); - $currentStart = clone $start; - while ($currentStart <= $end) { - $currentEnd = app('navigation')->endOfPeriod($currentStart, $preferredRange); - $key = $currentStart->formatLocalized($format); - $return[$key] = '0'; - $currentStart = clone $currentEnd; - $currentStart->addDay()->startOfDay(); - } - - return $return; - } } diff --git a/app/Http/Controllers/Chart/CategoryController.php b/app/Http/Controllers/Chart/CategoryController.php index 5ecdb02468..bcf58c25c6 100644 --- a/app/Http/Controllers/Chart/CategoryController.php +++ b/app/Http/Controllers/Chart/CategoryController.php @@ -61,7 +61,6 @@ class CategoryController extends Controller $this->generator = app(GeneratorInterface::class); } - /** * Show an overview for a category for all time, per month/week/year. * TODO test method, for category refactor. @@ -95,6 +94,20 @@ class CategoryController extends Controller return response()->json($data); } + /** + * @return Carbon + */ + private function getDate(): Carbon + { + $carbon = null; + try { + $carbon = today(config('app.timezone')); + } catch (Exception $e) { + $e->getMessage(); + } + + return $carbon; + } /** * Shows the category chart on the front page. @@ -116,10 +129,8 @@ class CategoryController extends Controller } $frontPageGenerator = new FrontpageChartGenerator($start, $end); - - - $chartData = $frontPageGenerator->generate(); - $data = $this->generator->multiSet($chartData); + $chartData = $frontPageGenerator->generate(); + $data = $this->generator->multiSet($chartData); $cache->store($data); return response()->json($data); @@ -154,6 +165,92 @@ class CategoryController extends Controller return response()->json($data); } + /** + * Generate report chart for either with or without category. + * + * @param Collection $accounts + * @param Carbon $start + * @param Carbon $end + * @param Category $category + * + * @return array + */ + private function reportPeriodChart(Collection $accounts, Carbon $start, Carbon $end, ?Category $category): array + { + $income = []; + $expenses = []; + $categoryId = 0; + if (null === $category) { + /** @var NoCategoryRepositoryInterface $noCatRepository */ + $noCatRepository = app(NoCategoryRepositoryInterface::class); + + // this gives us all currencies + $expenses = $noCatRepository->listExpenses($start, $end, $accounts); + $income = $noCatRepository->listIncome($start, $end, $accounts); + } + + if (null !== $category) { + /** @var OperationsRepositoryInterface $opsRepository */ + $opsRepository = app(OperationsRepositoryInterface::class); + $categoryId = (int)$category->id; + // this gives us all currencies + $collection = new Collection([$category]); + $expenses = $opsRepository->listExpenses($start, $end, null, $collection); + $income = $opsRepository->listIncome($start, $end, null, $collection); + + } + $currencies = array_unique(array_merge(array_keys($income), array_keys($expenses))); + $periods = app('navigation')->listOfPeriods($start, $end); + $format = app('navigation')->preferredCarbonLocalizedFormat($start, $end); + $chartData = []; + // make empty data array: + // double foreach (bad) to make empty array: + foreach ($currencies as $currencyId) { + $currencyInfo = $expenses[$currencyId] ?? $income[$currencyId]; + $outKey = sprintf('%d-out', $currencyId); + $inKey = sprintf('%d-in', $currencyId); + $chartData[$outKey] + = [ + 'label' => sprintf('%s (%s)', (string)trans('firefly.spent'), $currencyInfo['currency_name']), + 'entries' => [], + 'type' => 'bar', + 'backgroundColor' => 'rgba(219, 68, 55, 0.5)', // red + ]; + + $chartData[$inKey] + = [ + 'label' => sprintf('%s (%s)', (string)trans('firefly.earned'), $currencyInfo['currency_name']), + 'entries' => [], + 'type' => 'bar', + 'backgroundColor' => 'rgba(0, 141, 76, 0.5)', // green + ]; + // loop empty periods: + foreach (array_keys($periods) as $period) { + $label = $periods[$period]; + $chartData[$outKey]['entries'][$label] = '0'; + $chartData[$inKey]['entries'][$label] = '0'; + } + // loop income and expenses for this category.: + $outSet = $expenses[$currencyId]['categories'][$categoryId] ?? ['transaction_journals' => []]; + foreach ($outSet['transaction_journals'] as $journal) { + $amount = app('steam')->positive($journal['amount']); + $date = $journal['date']->formatLocalized($format); + $chartData[$outKey]['entries'][$date] = $chartData[$outKey]['entries'][$date] ?? '0'; + + $chartData[$outKey]['entries'][$date] = bcadd($amount, $chartData[$outKey]['entries'][$date]); + } + + $inSet = $income[$currencyId]['categories'][$categoryId] ?? ['transaction_journals' => []]; + foreach ($inSet['transaction_journals'] as $journal) { + $amount = app('steam')->positive($journal['amount']); + $date = $journal['date']->formatLocalized($format); + $chartData[$inKey]['entries'][$date] = $chartData[$inKey]['entries'][$date] ?? '0'; + $chartData[$inKey]['entries'][$date] = bcadd($amount, $chartData[$inKey]['entries'][$date]); + } + } + + return $this->generator->multiSet($chartData); + } /** * Chart for period for transactions without a category. @@ -205,8 +302,6 @@ class CategoryController extends Controller $cache->addProperty($end); $cache->addProperty($category->id); $cache->addProperty('chart.category.period-chart'); - - if ($cache->has()) { return response()->json($cache->get()); // @codeCoverageIgnore } @@ -220,108 +315,4 @@ class CategoryController extends Controller return response()->json($data); } - - /** - * @return Carbon - */ - private function getDate(): Carbon - { - $carbon = null; - try { - $carbon = today(config('app.timezone')); - } catch (Exception $e) { - $e->getMessage(); - } - - return $carbon; - } - - /** - * Generate report chart for either with or without category. - * - * @param Collection $accounts - * @param Carbon $start - * @param Carbon $end - * @param Category $category - * - * @return array - */ - private function reportPeriodChart(Collection $accounts, Carbon $start, Carbon $end, ?Category $category): array - { - $income = []; - $expenses = []; - $categoryId = 0; - if (null === $category) { - /** @var NoCategoryRepositoryInterface $noCatRepository */ - $noCatRepository = app(NoCategoryRepositoryInterface::class); - - // this gives us all currencies - $expenses = $noCatRepository->listExpenses($start, $end, $accounts); - $income = $noCatRepository->listIncome($start, $end, $accounts); - } - - if (null !== $category) { - /** @var OperationsRepositoryInterface $opsRepository */ - $opsRepository = app(OperationsRepositoryInterface::class); - $categoryId = (int) $category->id; - // this gives us all currencies - $collection = new Collection([$category]); - $expenses = $opsRepository->listExpenses($start, $end, null, $collection); - $income = $opsRepository->listIncome($start, $end, null, $collection); - - } - $currencies = array_unique(array_merge(array_keys($income), array_keys($expenses))); - $periods = app('navigation')->listOfPeriods($start, $end); - $format = app('navigation')->preferredCarbonLocalizedFormat($start, $end); - $chartData = []; - // make empty data array: - // double foreach (bad) to make empty array: - foreach ($currencies as $currencyId) { - $currencyInfo = $expenses[$currencyId] ?? $income[$currencyId]; - $outKey = sprintf('%d-out', $currencyId); - $inKey = sprintf('%d-in', $currencyId); - $chartData[$outKey] - = [ - 'label' => sprintf('%s (%s)', (string) trans('firefly.spent'), $currencyInfo['currency_name']), - 'entries' => [], - 'type' => 'bar', - 'backgroundColor' => 'rgba(219, 68, 55, 0.5)', // red - ]; - - $chartData[$inKey] - = [ - 'label' => sprintf('%s (%s)', (string) trans('firefly.earned'), $currencyInfo['currency_name']), - 'entries' => [], - 'type' => 'bar', - 'backgroundColor' => 'rgba(0, 141, 76, 0.5)', // green - ]; - - - // loop empty periods: - foreach (array_keys($periods) as $period) { - $label = $periods[$period]; - $chartData[$outKey]['entries'][$label] = '0'; - $chartData[$inKey]['entries'][$label] = '0'; - } - // loop income and expenses for this category.: - $outSet = $expenses[$currencyId]['categories'][$categoryId] ?? ['transaction_journals' => []]; - foreach ($outSet['transaction_journals'] as $journal) { - $amount = app('steam')->positive($journal['amount']); - $date = $journal['date']->formatLocalized($format); - $chartData[$outKey]['entries'][$date] = $chartData[$outKey]['entries'][$date] ?? '0'; - - $chartData[$outKey]['entries'][$date] = bcadd($amount, $chartData[$outKey]['entries'][$date]); - } - - $inSet = $income[$currencyId]['categories'][$categoryId] ?? ['transaction_journals' => []]; - foreach ($inSet['transaction_journals'] as $journal) { - $amount = app('steam')->positive($journal['amount']); - $date = $journal['date']->formatLocalized($format); - $chartData[$inKey]['entries'][$date] = $chartData[$inKey]['entries'][$date] ?? '0'; - $chartData[$inKey]['entries'][$date] = bcadd($amount, $chartData[$inKey]['entries'][$date]); - } - } - - return $this->generator->multiSet($chartData); - } } diff --git a/app/Http/Controllers/Chart/CategoryReportController.php b/app/Http/Controllers/Chart/CategoryReportController.php index 28d155a5fe..92c61e323c 100644 --- a/app/Http/Controllers/Chart/CategoryReportController.php +++ b/app/Http/Controllers/Chart/CategoryReportController.php @@ -267,7 +267,7 @@ class CategoryReportController extends Controller $chartData[$spentKey] = $chartData[$spentKey] ?? [ 'label' => sprintf( '%s (%s)', - (string) trans('firefly.spent_in_specific_category', ['category' => $category->name]), + (string)trans('firefly.spent_in_specific_category', ['category' => $category->name]), $currency['currency_name'] ), 'type' => 'bar', @@ -294,7 +294,7 @@ class CategoryReportController extends Controller $chartData[$spentKey] = $chartData[$spentKey] ?? [ 'label' => sprintf( '%s (%s)', - (string) trans('firefly.earned_in_specific_category', ['category' => $category->name]), + (string)trans('firefly.earned_in_specific_category', ['category' => $category->name]), $currency['currency_name'] ), 'type' => 'bar', @@ -319,6 +319,31 @@ class CategoryReportController extends Controller return response()->json($data); } + /** + * TODO duplicate function + * + * @param Carbon $start + * @param Carbon $end + * + * @return array + */ + private function makeEntries(Carbon $start, Carbon $end): array + { + $return = []; + $format = app('navigation')->preferredCarbonLocalizedFormat($start, $end); + $preferredRange = app('navigation')->preferredRangeFormat($start, $end); + $currentStart = clone $start; + while ($currentStart <= $end) { + $currentEnd = app('navigation')->endOfPeriod($currentStart, $preferredRange); + $key = $currentStart->formatLocalized($format); + $return[$key] = '0'; + $currentStart = clone $currentEnd; + $currentStart->addDay()->startOfDay(); + } + + return $return; + } + /** * @param Collection $accounts * @param Collection $categories @@ -390,29 +415,4 @@ class CategoryReportController extends Controller return response()->json($data); } - - /** - * TODO duplicate function - * - * @param Carbon $start - * @param Carbon $end - * - * @return array - */ - private function makeEntries(Carbon $start, Carbon $end): array - { - $return = []; - $format = app('navigation')->preferredCarbonLocalizedFormat($start, $end); - $preferredRange = app('navigation')->preferredRangeFormat($start, $end); - $currentStart = clone $start; - while ($currentStart <= $end) { - $currentEnd = app('navigation')->endOfPeriod($currentStart, $preferredRange); - $key = $currentStart->formatLocalized($format); - $return[$key] = '0'; - $currentStart = clone $currentEnd; - $currentStart->addDay()->startOfDay(); - } - - return $return; - } } diff --git a/app/Http/Controllers/Chart/DoubleReportController.php b/app/Http/Controllers/Chart/DoubleReportController.php index 87c62cea35..0060605cdc 100644 --- a/app/Http/Controllers/Chart/DoubleReportController.php +++ b/app/Http/Controllers/Chart/DoubleReportController.php @@ -199,7 +199,7 @@ class DoubleReportController extends Controller $chartData[$spentKey] = $chartData[$spentKey] ?? [ 'label' => sprintf( '%s (%s)', - (string) trans('firefly.spent_in_specific_double', ['account' => $name]), + (string)trans('firefly.spent_in_specific_double', ['account' => $name]), $currency['currency_name'] ), 'type' => 'bar', @@ -225,7 +225,7 @@ class DoubleReportController extends Controller $chartData[$earnedKey] = $chartData[$earnedKey] ?? [ 'label' => sprintf( '%s (%s)', - (string) trans('firefly.earned_in_specific_double', ['account' => $name]), + (string)trans('firefly.earned_in_specific_double', ['account' => $name]), $currency['currency_name'] ), 'type' => 'bar', @@ -248,6 +248,55 @@ class DoubleReportController extends Controller return response()->json($data); } + /** + * TODO this method is double. + * + * @param Collection $accounts + * @param int $id + * @param string $name + * @param null|string $iban + * + * @return string + */ + private function getCounterpartName(Collection $accounts, int $id, string $name, ?string $iban): string + { + /** @var Account $account */ + foreach ($accounts as $account) { + if ($account->name === $name && $account->id !== $id) { + return $account->name; + } + if (null !== $account->iban && $account->iban === $iban && $account->id !== $id) { + return $account->iban; + } + } + + return $name; + } + + /** + * TODO duplicate function + * + * @param Carbon $start + * @param Carbon $end + * + * @return array + */ + private function makeEntries(Carbon $start, Carbon $end): array + { + $return = []; + $format = app('navigation')->preferredCarbonLocalizedFormat($start, $end); + $preferredRange = app('navigation')->preferredRangeFormat($start, $end); + $currentStart = clone $start; + while ($currentStart <= $end) { + $currentEnd = app('navigation')->endOfPeriod($currentStart, $preferredRange); + $key = $currentStart->formatLocalized($format); + $return[$key] = '0'; + $currentStart = clone $currentEnd; + $currentStart->addDay()->startOfDay(); + } + + return $return; + } /** * @param Collection $accounts @@ -368,54 +417,4 @@ class DoubleReportController extends Controller return response()->json($data); } - - /** - * TODO this method is double. - * - * @param Collection $accounts - * @param int $id - * @param string $name - * @param null|string $iban - * - * @return string - */ - private function getCounterpartName(Collection $accounts, int $id, string $name, ?string $iban): string - { - /** @var Account $account */ - foreach ($accounts as $account) { - if ($account->name === $name && $account->id !== $id) { - return $account->name; - } - if (null !== $account->iban && $account->iban === $iban && $account->id !== $id) { - return $account->iban; - } - } - - return $name; - } - - /** - * TODO duplicate function - * - * @param Carbon $start - * @param Carbon $end - * - * @return array - */ - private function makeEntries(Carbon $start, Carbon $end): array - { - $return = []; - $format = app('navigation')->preferredCarbonLocalizedFormat($start, $end); - $preferredRange = app('navigation')->preferredRangeFormat($start, $end); - $currentStart = clone $start; - while ($currentStart <= $end) { - $currentEnd = app('navigation')->endOfPeriod($currentStart, $preferredRange); - $key = $currentStart->formatLocalized($format); - $return[$key] = '0'; - $currentStart = clone $currentEnd; - $currentStart->addDay()->startOfDay(); - } - - return $return; - } } diff --git a/app/Http/Controllers/Chart/ExpenseReportController.php b/app/Http/Controllers/Chart/ExpenseReportController.php index 32e0bbd641..bfda695e27 100644 --- a/app/Http/Controllers/Chart/ExpenseReportController.php +++ b/app/Http/Controllers/Chart/ExpenseReportController.php @@ -42,6 +42,7 @@ use Illuminate\Support\Collection; class ExpenseReportController extends Controller { use AugumentData, TransactionCalculation; + /** @var AccountRepositoryInterface The account repository */ protected $accountRepository; /** @var GeneratorInterface Chart generation methods. */ @@ -65,7 +66,6 @@ class ExpenseReportController extends Controller ); } - /** * Main chart that shows income and expense for a combination of expense/revenue accounts. * @@ -112,27 +112,27 @@ class ExpenseReportController extends Controller /** @var Account $exp */ $exp = $combination->first(); $chartData[$exp->id . '-in'] = [ - 'label' => sprintf('%s (%s)', $name, (string) trans('firefly.income')), + 'label' => sprintf('%s (%s)', $name, (string)trans('firefly.income')), 'type' => 'bar', 'yAxisID' => 'y-axis-0', 'entries' => [], ]; $chartData[$exp->id . '-out'] = [ - 'label' => sprintf('%s (%s)', $name, (string) trans('firefly.expenses')), + 'label' => sprintf('%s (%s)', $name, (string)trans('firefly.expenses')), 'type' => 'bar', 'yAxisID' => 'y-axis-0', 'entries' => [], ]; // total in, total out: $chartData[$exp->id . '-total-in'] = [ - 'label' => sprintf('%s (%s)', $name, (string) trans('firefly.sum_of_income')), + 'label' => sprintf('%s (%s)', $name, (string)trans('firefly.sum_of_income')), 'type' => 'line', 'fill' => false, 'yAxisID' => 'y-axis-1', 'entries' => [], ]; $chartData[$exp->id . '-total-out'] = [ - 'label' => sprintf('%s (%s)', $name, (string) trans('firefly.sum_of_expenses')), + 'label' => sprintf('%s (%s)', $name, (string)trans('firefly.sum_of_expenses')), 'type' => 'line', 'fill' => false, 'yAxisID' => 'y-axis-1', diff --git a/app/Http/Controllers/Chart/PiggyBankController.php b/app/Http/Controllers/Chart/PiggyBankController.php index 2d08fa7aa6..96d7287638 100644 --- a/app/Http/Controllers/Chart/PiggyBankController.php +++ b/app/Http/Controllers/Chart/PiggyBankController.php @@ -39,6 +39,7 @@ use Illuminate\Support\Collection; class PiggyBankController extends Controller { use DateCalculation; + /** @var GeneratorInterface Chart generation methods. */ protected $generator; @@ -74,9 +75,9 @@ class PiggyBankController extends Controller if ($cache->has()) { return response()->json($cache->get()); // @codeCoverageIgnore } - $set = $repository->getEvents($piggyBank); - $set = $set->reverse(); - $locale =app('steam')->getLocale(); + $set = $repository->getEvents($piggyBank); + $set = $set->reverse(); + $locale = app('steam')->getLocale(); // get first event or start date of piggy bank or today $startDate = $piggyBank->start_date ?? today(config('app.timezone')); @@ -100,7 +101,7 @@ class PiggyBankController extends Controller } ); $currentSum = $filtered->sum('amount'); - $label = $oldest->formatLocalized((string) trans('config.month_and_day', [], $locale)); + $label = $oldest->formatLocalized((string)trans('config.month_and_day', [], $locale)); $chartData[$label] = $currentSum; $oldest = app('navigation')->addPeriod($oldest, $step, 0); } @@ -111,7 +112,7 @@ class PiggyBankController extends Controller } ); $finalSum = $finalFiltered->sum('amount'); - $finalLabel = $today->formatLocalized((string) trans('config.month_and_day', [], $locale)); + $finalLabel = $today->formatLocalized((string)trans('config.month_and_day', [], $locale)); $chartData[$finalLabel] = $finalSum; $data = $this->generator->singleSet($piggyBank->name, $chartData); diff --git a/app/Http/Controllers/Chart/ReportController.php b/app/Http/Controllers/Chart/ReportController.php index 5c24bd889d..9e736e5ea9 100644 --- a/app/Http/Controllers/Chart/ReportController.php +++ b/app/Http/Controllers/Chart/ReportController.php @@ -43,6 +43,7 @@ use Log; class ReportController extends Controller { use BasicDataSupport, ChartGeneration; + /** @var GeneratorInterface Chart generation methods. */ protected $generator; @@ -79,7 +80,7 @@ class ReportController extends Controller if ($cache->has()) { return response()->json($cache->get()); // @codeCoverageIgnore } - $locale = app('steam')->getLocale(); + $locale = app('steam')->getLocale(); $current = clone $start; $chartData = []; /** @var NetWorthInterface $helper */ @@ -111,13 +112,13 @@ class ReportController extends Controller /** @var array $netWorthItem */ foreach ($result as $netWorthItem) { $currencyId = $netWorthItem['currency']->id; - $label = $current->formatLocalized((string) trans('config.month_and_day', [], $locale)); + $label = $current->formatLocalized((string)trans('config.month_and_day', [], $locale)); if (!isset($chartData[$currencyId])) { $chartData[$currencyId] = [ 'label' => 'Net worth in ' . $netWorthItem['currency']->name, 'type' => 'line', 'currency_symbol' => $netWorthItem['currency']->symbol, - 'currency_code' => $netWorthItem['currency']->code, + 'currency_code' => $netWorthItem['currency']->code, 'entries' => [], ]; } @@ -175,13 +176,13 @@ class ReportController extends Controller /** @var array $journal */ foreach ($journals as $journal) { $period = $journal['date']->format($format); - $currencyId = (int) $journal['currency_id']; + $currencyId = (int)$journal['currency_id']; $data[$currencyId] = $data[$currencyId] ?? [ 'currency_id' => $currencyId, 'currency_symbol' => $journal['currency_symbol'], 'currency_code' => $journal['currency_code'], 'currency_name' => $journal['currency_name'], - 'currency_decimal_places' => (int) $journal['currency_decimal_places'], + 'currency_decimal_places' => (int)$journal['currency_decimal_places'], ]; $data[$currencyId][$period] = $data[$currencyId][$period] ?? [ 'period' => $period, @@ -213,7 +214,7 @@ class ReportController extends Controller /** @var array $currency */ foreach ($data as $currency) { $income = [ - 'label' => (string) trans('firefly.box_earned_in_currency', ['currency' => $currency['currency_name']]), + 'label' => (string)trans('firefly.box_earned_in_currency', ['currency' => $currency['currency_name']]), 'type' => 'bar', 'backgroundColor' => 'rgba(0, 141, 76, 0.5)', // green 'currency_id' => $currency['currency_id'], @@ -222,7 +223,7 @@ class ReportController extends Controller 'entries' => [], ]; $expense = [ - 'label' => (string) trans('firefly.box_spent_in_currency', ['currency' => $currency['currency_name']]), + 'label' => (string)trans('firefly.box_spent_in_currency', ['currency' => $currency['currency_name']]), 'type' => 'bar', 'backgroundColor' => 'rgba(219, 68, 55, 0.5)', // red 'currency_id' => $currency['currency_id'], @@ -236,8 +237,8 @@ class ReportController extends Controller while ($currentStart <= $end) { $key = $currentStart->format($format); $title = $currentStart->formatLocalized($titleFormat); - $income['entries'][$title] = round((float) ($currency[$key]['earned'] ?? '0'), $currency['currency_decimal_places']); - $expense['entries'][$title] = round((float) ($currency[$key]['spent'] ?? '0'), $currency['currency_decimal_places']); + $income['entries'][$title] = round((float)($currency[$key]['earned'] ?? '0'), $currency['currency_decimal_places']); + $expense['entries'][$title] = round((float)($currency[$key]['spent'] ?? '0'), $currency['currency_decimal_places']); $currentStart = app('navigation')->addPeriod($currentStart, $preferredRange, 0); } diff --git a/app/Http/Controllers/Chart/TagReportController.php b/app/Http/Controllers/Chart/TagReportController.php index a187e74b55..395202d481 100644 --- a/app/Http/Controllers/Chart/TagReportController.php +++ b/app/Http/Controllers/Chart/TagReportController.php @@ -38,6 +38,7 @@ use Illuminate\Support\Collection; class TagReportController extends Controller { use AugumentData, TransactionCalculation; + /** @var GeneratorInterface Chart generation methods. */ protected $generator; @@ -172,7 +173,6 @@ class TagReportController extends Controller return response()->json($data); } - /** * @param Collection $accounts * @param Collection $tags @@ -270,7 +270,7 @@ class TagReportController extends Controller $chartData[$spentKey] = $chartData[$spentKey] ?? [ 'label' => sprintf( '%s (%s)', - (string) trans('firefly.spent_in_specific_tag', ['tag' => $tag->tag]), + (string)trans('firefly.spent_in_specific_tag', ['tag' => $tag->tag]), $currency['currency_name'] ), 'type' => 'bar', @@ -297,7 +297,7 @@ class TagReportController extends Controller $chartData[$spentKey] = $chartData[$spentKey] ?? [ 'label' => sprintf( '%s (%s)', - (string) trans('firefly.earned_in_specific_tag', ['tag' => $tag->tag]), + (string)trans('firefly.earned_in_specific_tag', ['tag' => $tag->tag]), $currency['currency_name'] ), 'type' => 'bar', @@ -322,6 +322,31 @@ class TagReportController extends Controller return response()->json($data); } + /** + * TODO duplicate function + * + * @param Carbon $start + * @param Carbon $end + * + * @return array + */ + private function makeEntries(Carbon $start, Carbon $end): array + { + $return = []; + $format = app('navigation')->preferredCarbonLocalizedFormat($start, $end); + $preferredRange = app('navigation')->preferredRangeFormat($start, $end); + $currentStart = clone $start; + while ($currentStart <= $end) { + $currentEnd = app('navigation')->endOfPeriod($currentStart, $preferredRange); + $key = $currentStart->formatLocalized($format); + $return[$key] = '0'; + $currentStart = clone $currentEnd; + $currentStart->addDay()->startOfDay(); + } + + return $return; + } + /** * @param Collection $accounts * @param Collection $tags @@ -428,7 +453,6 @@ class TagReportController extends Controller return response()->json($data); } - /** * @param Collection $accounts * @param Collection $tags @@ -462,30 +486,4 @@ class TagReportController extends Controller return response()->json($data); } - - - /** - * TODO duplicate function - * - * @param Carbon $start - * @param Carbon $end - * - * @return array - */ - private function makeEntries(Carbon $start, Carbon $end): array - { - $return = []; - $format = app('navigation')->preferredCarbonLocalizedFormat($start, $end); - $preferredRange = app('navigation')->preferredRangeFormat($start, $end); - $currentStart = clone $start; - while ($currentStart <= $end) { - $currentEnd = app('navigation')->endOfPeriod($currentStart, $preferredRange); - $key = $currentStart->formatLocalized($format); - $return[$key] = '0'; - $currentStart = clone $currentEnd; - $currentStart->addDay()->startOfDay(); - } - - return $return; - } } diff --git a/app/Http/Controllers/Chart/TransactionController.php b/app/Http/Controllers/Chart/TransactionController.php index 2f8061e919..f6d1aca390 100644 --- a/app/Http/Controllers/Chart/TransactionController.php +++ b/app/Http/Controllers/Chart/TransactionController.php @@ -56,8 +56,8 @@ class TransactionController extends Controller * @param Carbon $start * @param Carbon $end * - * @throws FireflyException * @return JsonResponse + * @throws FireflyException */ public function budgets(Carbon $start, Carbon $end) { @@ -68,8 +68,6 @@ class TransactionController extends Controller if ($cache->has()) { return response()->json($cache->get()); // @codeCoverageIgnore } - - /** @var GroupCollectorInterface $collector */ $collector = app(GroupCollectorInterface::class); $collector->setRange($start, $end); @@ -82,8 +80,8 @@ class TransactionController extends Controller // group by category. /** @var array $journal */ foreach ($result as $journal) { - $budget = $journal['budget_name'] ?? (string) trans('firefly.no_budget'); - $title = sprintf('%s (%s)', $budget, $journal['currency_symbol']); + $budget = $journal['budget_name'] ?? (string)trans('firefly.no_budget'); + $title = sprintf('%s (%s)', $budget, $journal['currency_symbol']); $data[$title] = $data[$title] ?? [ 'amount' => '0', 'currency_symbol' => $journal['currency_symbol'], @@ -102,8 +100,8 @@ class TransactionController extends Controller * @param Carbon $start * @param Carbon $end * - * @throws FireflyException * @return JsonResponse + * @throws FireflyException */ public function categories(string $objectType, Carbon $start, Carbon $end) { @@ -115,8 +113,6 @@ class TransactionController extends Controller if ($cache->has()) { return response()->json($cache->get()); // @codeCoverageIgnore } - - /** @var GroupCollectorInterface $collector */ $collector = app(GroupCollectorInterface::class); $collector->setRange($start, $end); @@ -141,8 +137,8 @@ class TransactionController extends Controller // group by category. /** @var array $journal */ foreach ($result as $journal) { - $category = $journal['category_name'] ?? (string) trans('firefly.no_category'); - $title = sprintf('%s (%s)', $category, $journal['currency_symbol']); + $category = $journal['category_name'] ?? (string)trans('firefly.no_category'); + $title = sprintf('%s (%s)', $category, $journal['currency_symbol']); $data[$title] = $data[$title] ?? [ 'amount' => '0', 'currency_symbol' => $journal['currency_symbol'], @@ -162,8 +158,8 @@ class TransactionController extends Controller * @param Carbon $start * @param Carbon $end * - * @throws FireflyException * @return JsonResponse + * @throws FireflyException */ public function destinationAccounts(string $objectType, Carbon $start, Carbon $end) { @@ -175,8 +171,6 @@ class TransactionController extends Controller if ($cache->has()) { return response()->json($cache->get()); // @codeCoverageIgnore } - - /** @var GroupCollectorInterface $collector */ $collector = app(GroupCollectorInterface::class); $collector->setRange($start, $end); @@ -221,8 +215,8 @@ class TransactionController extends Controller * @param Carbon $start * @param Carbon $end * - * @throws FireflyException * @return JsonResponse + * @throws FireflyException */ public function sourceAccounts(string $objectType, Carbon $start, Carbon $end) { @@ -234,8 +228,6 @@ class TransactionController extends Controller if ($cache->has()) { return response()->json($cache->get()); // @codeCoverageIgnore } - - /** @var GroupCollectorInterface $collector */ $collector = app(GroupCollectorInterface::class); $collector->setRange($start, $end); diff --git a/app/Http/Controllers/Controller.php b/app/Http/Controllers/Controller.php index ef272460f9..6d3bbedf34 100644 --- a/app/Http/Controllers/Controller.php +++ b/app/Http/Controllers/Controller.php @@ -76,8 +76,6 @@ abstract class Controller extends BaseController $maxFileSize = app('steam')->phpBytes(ini_get('upload_max_filesize')); $maxPostSize = app('steam')->phpBytes(ini_get('post_max_size')); $uploadSize = min($maxFileSize, $maxPostSize); - - app('view')->share('uploadSize', $uploadSize); // share is alpha, is beta diff --git a/app/Http/Controllers/CurrencyController.php b/app/Http/Controllers/CurrencyController.php index e800be82bf..1f950ed0b0 100644 --- a/app/Http/Controllers/CurrencyController.php +++ b/app/Http/Controllers/CurrencyController.php @@ -21,8 +21,6 @@ declare(strict_types=1); namespace FireflyIII\Http\Controllers; - - use FireflyIII\Exceptions\FireflyException; use FireflyIII\Http\Requests\CurrencyFormRequest; use FireflyIII\Models\TransactionCurrency; @@ -67,8 +65,6 @@ class CurrencyController extends Controller } ); } - - /** * Create a currency. * @@ -346,8 +342,6 @@ class CurrencyController extends Controller return prefixView('currencies.index', compact('currencies', 'defaultCurrency', 'isOwner')); } - - /** * Store new currency. * @@ -394,8 +388,6 @@ class CurrencyController extends Controller return $redirect; } - - /** * Updates a currency. * @@ -421,8 +413,6 @@ class CurrencyController extends Controller return redirect(route('currencies.index')); // @codeCoverageIgnoreEnd } - - $currency = $this->repository->update($currency, $data); Log::channel('audit')->info('Updated (POST) currency.', $data); $request->session()->flash('success', (string) trans('firefly.updated_currency', ['name' => $currency->name])); diff --git a/app/Http/Controllers/DebugController.php b/app/Http/Controllers/DebugController.php index 2be7f99e4b..a53aef9f5f 100644 --- a/app/Http/Controllers/DebugController.php +++ b/app/Http/Controllers/DebugController.php @@ -27,13 +27,16 @@ use Artisan; use Carbon\Carbon; use DB; use Exception; +use FireflyConfig; use FireflyIII\Exceptions\FireflyException; use FireflyIII\Http\Middleware\IsDemoUser; use FireflyIII\Support\Http\Controllers\GetConfigurationData; +use Illuminate\Contracts\View\Factory; use Illuminate\Http\RedirectResponse; use Illuminate\Http\Request; use Illuminate\Routing\Redirector; use Illuminate\Routing\Route; +use Illuminate\View\View; use Log; use Monolog\Handler\RotatingFileHandler; use Route as RouteFacade; @@ -113,7 +116,7 @@ class DebugController extends Controller * * @param Request $request * - * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View + * @return Factory|View * */ public function index(Request $request) @@ -132,7 +135,7 @@ class DebugController extends Controller $userAgent = $request->header('user-agent'); $trustedProxies = config('firefly.trusted_proxies'); $displayErrors = ini_get('display_errors'); - $errorReporting = $this->errorReporting((int) ini_get('error_reporting')); + $errorReporting = $this->errorReporting((int)ini_get('error_reporting')); $appEnv = config('app.env'); $appDebug = var_export(config('app.debug'), true); $logChannel = config('logging.default'); @@ -144,12 +147,12 @@ class DebugController extends Controller // expected + found DB version: $expectedDBversion = config('firefly.db_version'); - $foundDBversion = \FireflyConfig::get('db_version',1)->data; + $foundDBversion = FireflyConfig::get('db_version', 1)->data; // some new vars. $telemetry = true === config('firefly.send_telemetry') && true === config('firefly.feature_flags.telemetry'); - $defaultLanguage = (string) config('firefly.default_language'); - $defaultLocale = (string) config('firefly.default_locale'); + $defaultLanguage = (string)config('firefly.default_language'); + $defaultLocale = (string)config('firefly.default_locale'); $userLanguage = app('steam')->getLanguage(); $userLocale = app('steam')->getLocale(); $isDocker = env('IS_DOCKER', false); @@ -248,7 +251,7 @@ class DebugController extends Controller $return = ' '; /** @var Route $route */ foreach ($set as $route) { - $name = (string) $route->getName(); + $name = (string)$route->getName(); if (in_array('GET', $route->methods(), true)) { $found = false; foreach ($ignore as $string) { diff --git a/app/Http/Controllers/Export/IndexController.php b/app/Http/Controllers/Export/IndexController.php index 30d472d95c..af0a66181f 100644 --- a/app/Http/Controllers/Export/IndexController.php +++ b/app/Http/Controllers/Export/IndexController.php @@ -24,7 +24,6 @@ declare(strict_types=1); namespace FireflyIII\Http\Controllers\Export; - use FireflyIII\Http\Controllers\Controller; use FireflyIII\Http\Middleware\IsDemoUser; use FireflyIII\Repositories\Journal\JournalRepositoryInterface; @@ -55,7 +54,7 @@ class IndexController extends Controller $this->middleware( function ($request, $next) { app('view')->share('mainTitleIcon', 'fa-life-bouy'); - app('view')->share('title', (string) trans('firefly.export_data_title')); + app('view')->share('title', (string)trans('firefly.export_data_title')); $this->journalRepository = app(JournalRepositoryInterface::class); $this->middleware(IsDemoUser::class)->except(['index']); @@ -65,8 +64,8 @@ class IndexController extends Controller } /** - * @throws CannotInsertRecord * @return LaravelResponse + * @throws CannotInsertRecord */ public function export(): LaravelResponse { diff --git a/app/Http/Controllers/HomeController.php b/app/Http/Controllers/HomeController.php index b15ec8b399..4d981a1ffd 100644 --- a/app/Http/Controllers/HomeController.php +++ b/app/Http/Controllers/HomeController.php @@ -74,11 +74,9 @@ class HomeController extends Controller $isCustomRange = false; Log::debug('Received dateRange', ['start' => $request->get('start'), 'end' => $request->get('end'), 'label' => $request->get('label')]); - - // check if the label is "everything" or "Custom range" which will betray // a possible problem with the budgets. - if ($label === (string) trans('firefly.everything') || $label === (string) trans('firefly.customRange')) { + if ($label === (string)trans('firefly.everything') || $label === (string)trans('firefly.customRange')) { $isCustomRange = true; Log::debug('Range is now marked as "custom".'); } @@ -86,7 +84,7 @@ class HomeController extends Controller $diff = $start->diffInDays($end) + 1; if ($diff > 50) { - $request->session()->flash('warning', (string) trans('firefly.warning_much_data', ['days' => $diff])); + $request->session()->flash('warning', (string)trans('firefly.warning_much_data', ['days' => $diff])); } $request->session()->put('is_custom_range', $isCustomRange); @@ -99,7 +97,6 @@ class HomeController extends Controller return response()->json(['ok' => 'ok']); } - /** * Show index. * @@ -110,14 +107,15 @@ class HomeController extends Controller */ public function index(AccountRepositoryInterface $repository) { - $types = config('firefly.accountTypesByIdentifier.asset'); - $count = $repository->count($types); + $result = version_compare(phpversion(), '8.0'); + $types = config('firefly.accountTypesByIdentifier.asset'); + $count = $repository->count($types); Log::channel('audit')->info('User visits homepage.'); if (0 === $count) { return redirect(route('new-user.index')); } - $subTitle = (string) trans('firefly.welcome_back'); + $subTitle = (string)trans('firefly.welcome_back'); $transactions = []; $frontPage = app('preferences')->getFresh('frontPageAccounts', $repository->getAccountsByType([AccountType::ASSET])->pluck('id')->toArray()); /** @var Carbon $start */ @@ -133,8 +131,6 @@ class HomeController extends Controller /** @var BillRepositoryInterface $billRepository */ $billRepository = app(BillRepositoryInterface::class); $billCount = $billRepository->getBills()->count(); - - // collect groups for each transaction. foreach ($accounts as $account) { /** @var GroupCollectorInterface $collector */ diff --git a/app/Http/Controllers/Json/AutoCompleteController.php b/app/Http/Controllers/Json/AutoCompleteController.php index 552733d74f..af2b1b5f52 100644 --- a/app/Http/Controllers/Json/AutoCompleteController.php +++ b/app/Http/Controllers/Json/AutoCompleteController.php @@ -36,8 +36,6 @@ use Illuminate\Http\Request; */ class AutoCompleteController extends Controller { - - /** * Searches in the titles of all transaction journals. * The result is limited to the top 15 unique results. @@ -79,7 +77,6 @@ class AutoCompleteController extends Controller $array[$index]['name'] = sprintf('#%d: %s', $item['transaction_group_id'], $item['description']); } - return response()->json($array); } diff --git a/app/Http/Controllers/Json/BoxController.php b/app/Http/Controllers/Json/BoxController.php index 98df9ede43..5de2c2d2a2 100644 --- a/app/Http/Controllers/Json/BoxController.php +++ b/app/Http/Controllers/Json/BoxController.php @@ -61,8 +61,6 @@ class BoxController extends Controller $opsRepository = app(OperationsRepositoryInterface::class); /** @var AvailableBudgetRepositoryInterface $abRepository */ $abRepository = app(AvailableBudgetRepositoryInterface::class); - - /** @var Carbon $start */ $start = session('start', Carbon::now()->startOfMonth()); /** @var Carbon $end */ @@ -128,7 +126,6 @@ class BoxController extends Controller return response()->json($return); } - /** * Current total balance. * @@ -209,8 +206,6 @@ class BoxController extends Controller 'size' => count($sums), 'preferred' => $currency->id, ]; - - $cache->store($response); return response()->json($response); @@ -256,9 +251,7 @@ class BoxController extends Controller ); $netWorthSet = $netWorthHelper->getNetWorthByCurrency($filtered, $date); - - - $return = []; + $return = []; foreach ($netWorthSet as $data) { /** @var TransactionCurrency $currency */ $currency = $data['currency']; diff --git a/app/Http/Controllers/Json/BudgetController.php b/app/Http/Controllers/Json/BudgetController.php index ff5bbc7814..28ed024372 100644 --- a/app/Http/Controllers/Json/BudgetController.php +++ b/app/Http/Controllers/Json/BudgetController.php @@ -24,7 +24,6 @@ declare(strict_types=1); namespace FireflyIII\Http\Controllers\Json; - use Carbon\Carbon; use FireflyIII\Http\Controllers\Controller; use FireflyIII\Models\TransactionCurrency; diff --git a/app/Http/Controllers/Json/ReconcileController.php b/app/Http/Controllers/Json/ReconcileController.php index fdcea33607..1aabc1a206 100644 --- a/app/Http/Controllers/Json/ReconcileController.php +++ b/app/Http/Controllers/Json/ReconcileController.php @@ -162,8 +162,6 @@ class ReconcileController extends Controller $view = sprintf('Could not render accounts.reconcile.overview: %s', $e->getMessage()); } // @codeCoverageIgnoreEnd - - $return = [ 'post_uri' => $route, 'html' => $view, diff --git a/app/Http/Controllers/Json/RecurrenceController.php b/app/Http/Controllers/Json/RecurrenceController.php index 3c647a4682..6fc636fd32 100644 --- a/app/Http/Controllers/Json/RecurrenceController.php +++ b/app/Http/Controllers/Json/RecurrenceController.php @@ -118,8 +118,6 @@ class RecurrenceController extends Controller $occurrences = $this->recurring->getXOccurrences($repetition, $actualStart, $repetitions); break; } - - /** @var Carbon $current */ foreach ($occurrences as $current) { if ($current->gte($start)) { @@ -180,7 +178,6 @@ class RecurrenceController extends Controller } Log::debug('Dropdown is', $result); - return response()->json($result); } } diff --git a/app/Http/Controllers/Json/RuleController.php b/app/Http/Controllers/Json/RuleController.php index 5a070e7b29..9fe3d32b02 100644 --- a/app/Http/Controllers/Json/RuleController.php +++ b/app/Http/Controllers/Json/RuleController.php @@ -23,7 +23,6 @@ declare(strict_types=1); namespace FireflyIII\Http\Controllers\Json; - use FireflyIII\Http\Controllers\Controller; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; @@ -90,7 +89,6 @@ class RuleController extends Controller $view = 'Could not render view.'; } - return response()->json(['html' => $view]); } diff --git a/app/Http/Controllers/ObjectGroup/DeleteController.php b/app/Http/Controllers/ObjectGroup/DeleteController.php index 1b298fb074..c5fa6c7f85 100644 --- a/app/Http/Controllers/ObjectGroup/DeleteController.php +++ b/app/Http/Controllers/ObjectGroup/DeleteController.php @@ -24,7 +24,6 @@ declare(strict_types=1); namespace FireflyIII\Http\Controllers\ObjectGroup; - use FireflyIII\Http\Controllers\Controller; use FireflyIII\Models\ObjectGroup; use FireflyIII\Repositories\ObjectGroup\ObjectGroupRepositoryInterface; @@ -49,7 +48,7 @@ class DeleteController extends Controller $this->middleware( function ($request, $next) { app('view')->share('mainTitleIcon', 'fa-envelope-o'); - app('view')->share('title', (string) trans('firefly.object_groups_page_title')); + app('view')->share('title', (string)trans('firefly.object_groups_page_title')); $this->repository = app(ObjectGroupRepositoryInterface::class); @@ -65,7 +64,7 @@ class DeleteController extends Controller */ public function delete(ObjectGroup $objectGroup) { - $subTitle = (string) trans('firefly.delete_object_group', ['title' => $objectGroup->title]); + $subTitle = (string)trans('firefly.delete_object_group', ['title' => $objectGroup->title]); $piggyBanks = $objectGroup->piggyBanks()->count(); // put previous url in session @@ -81,7 +80,7 @@ class DeleteController extends Controller */ public function destroy(ObjectGroup $objectGroup): RedirectResponse { - session()->flash('success', (string) trans('firefly.deleted_object_group', ['title' => $objectGroup->title])); + session()->flash('success', (string)trans('firefly.deleted_object_group', ['title' => $objectGroup->title])); app('preferences')->mark(); $this->repository->destroy($objectGroup); diff --git a/app/Http/Controllers/ObjectGroup/EditController.php b/app/Http/Controllers/ObjectGroup/EditController.php index aa5b3214f2..e2d966afb7 100644 --- a/app/Http/Controllers/ObjectGroup/EditController.php +++ b/app/Http/Controllers/ObjectGroup/EditController.php @@ -24,7 +24,6 @@ declare(strict_types=1); namespace FireflyIII\Http\Controllers\ObjectGroup; - use FireflyIII\Http\Controllers\Controller; use FireflyIII\Http\Requests\ObjectGroupFormRequest; use FireflyIII\Models\ObjectGroup; @@ -49,7 +48,7 @@ class EditController extends Controller $this->middleware( function ($request, $next) { app('view')->share('mainTitleIcon', 'fa-envelope-o'); - app('view')->share('title', (string) trans('firefly.object_groups_page_title')); + app('view')->share('title', (string)trans('firefly.object_groups_page_title')); $this->repository = app(ObjectGroupRepositoryInterface::class); @@ -65,7 +64,7 @@ class EditController extends Controller */ public function edit(ObjectGroup $objectGroup) { - $subTitle = (string) trans('firefly.edit_object_group', ['title' => $objectGroup->title]); + $subTitle = (string)trans('firefly.edit_object_group', ['title' => $objectGroup->title]); $subTitleIcon = 'fa-pencil'; if (true !== session('object-groups.edit.fromUpdate')) { @@ -76,24 +75,23 @@ class EditController extends Controller return prefixView('object-groups.edit', compact('subTitle', 'subTitleIcon', 'objectGroup')); } - /** * Update a piggy bank. * * @param ObjectGroupFormRequest $request - * @param ObjectGroup $objectGroup + * @param ObjectGroup $objectGroup */ public function update(ObjectGroupFormRequest $request, ObjectGroup $objectGroup) { $data = $request->getObjectGroupData(); $piggyBank = $this->repository->update($objectGroup, $data); - session()->flash('success', (string) trans('firefly.updated_object_group', ['title' => $objectGroup->title])); + session()->flash('success', (string)trans('firefly.updated_object_group', ['title' => $objectGroup->title])); app('preferences')->mark(); $redirect = redirect($this->getPreviousUri('object-groups.edit.uri')); - if (1 === (int) $request->get('return_to_edit')) { + if (1 === (int)$request->get('return_to_edit')) { // @codeCoverageIgnoreStart session()->put('object-groups.edit.fromUpdate', true); diff --git a/app/Http/Controllers/ObjectGroup/IndexController.php b/app/Http/Controllers/ObjectGroup/IndexController.php index 1c8b5e7362..59baa17e7c 100644 --- a/app/Http/Controllers/ObjectGroup/IndexController.php +++ b/app/Http/Controllers/ObjectGroup/IndexController.php @@ -24,11 +24,13 @@ declare(strict_types=1); namespace FireflyIII\Http\Controllers\ObjectGroup; - use FireflyIII\Http\Controllers\Controller; use FireflyIII\Models\ObjectGroup; use FireflyIII\Repositories\ObjectGroup\ObjectGroupRepositoryInterface; +use Illuminate\Contracts\Foundation\Application; +use Illuminate\Contracts\View\Factory; use Illuminate\Http\Request; +use Illuminate\View\View; use Log; /** @@ -51,7 +53,7 @@ class IndexController extends Controller $this->middleware( function ($request, $next) { app('view')->share('mainTitleIcon', 'fa-envelope-o'); - app('view')->share('title', (string) trans('firefly.object_groups_page_title')); + app('view')->share('title', (string)trans('firefly.object_groups_page_title')); $this->repository = app(ObjectGroupRepositoryInterface::class); return $next($request); @@ -60,13 +62,13 @@ class IndexController extends Controller } /** - * @return \Illuminate\Contracts\Foundation\Application|\Illuminate\Contracts\View\Factory|\Illuminate\View\View + * @return Application|Factory|View */ public function index() { $this->repository->deleteEmpty(); $this->repository->resetOrder(); - $subTitle = (string) trans('firefly.object_groups_index'); + $subTitle = (string)trans('firefly.object_groups_index'); $objectGroups = $this->repository->get(); return prefixView('object-groups.index', compact('subTitle', 'objectGroups')); @@ -78,7 +80,7 @@ class IndexController extends Controller public function setOrder(Request $request, ObjectGroup $objectGroup) { Log::debug(sprintf('Found object group #%d "%s"', $objectGroup->id, $objectGroup->title)); - $newOrder = (int) $request->get('order'); + $newOrder = (int)$request->get('order'); $this->repository->setOrder($objectGroup, $newOrder); return response()->json([]); diff --git a/app/Http/Controllers/PiggyBank/AmountController.php b/app/Http/Controllers/PiggyBank/AmountController.php index 95ced60014..29286be025 100644 --- a/app/Http/Controllers/PiggyBank/AmountController.php +++ b/app/Http/Controllers/PiggyBank/AmountController.php @@ -24,7 +24,6 @@ declare(strict_types=1); namespace FireflyIII\Http\Controllers\PiggyBank; - use Carbon\Carbon; use FireflyIII\Http\Controllers\Controller; use FireflyIII\Models\PiggyBank; @@ -56,7 +55,7 @@ class AmountController extends Controller $this->middleware( function ($request, $next) { - app('view')->share('title', (string) trans('firefly.piggyBanks')); + app('view')->share('title', (string)trans('firefly.piggyBanks')); app('view')->share('mainTitleIcon', 'fa-bullseye'); $this->piggyRepos = app(PiggyBankRepositoryInterface::class); @@ -126,7 +125,7 @@ class AmountController extends Controller $this->piggyRepos->createEvent($piggyBank, $amount); session()->flash( 'success', - (string) trans( + (string)trans( 'firefly.added_amount_to_piggy', ['amount' => app('amount')->formatAnything($currency, $amount, false), 'name' => $piggyBank->name] ) @@ -139,7 +138,7 @@ class AmountController extends Controller Log::error('Cannot add ' . $amount . ' because canAddAmount returned false.'); session()->flash( 'error', - (string) trans( + (string)trans( 'firefly.cannot_add_amount_piggy', ['amount' => app('amount')->formatAnything($currency, $amount, false), 'name' => e($piggyBank->name)] ) @@ -168,7 +167,7 @@ class AmountController extends Controller $this->piggyRepos->removeAmount($piggyBank, $amount); session()->flash( 'success', - (string) trans( + (string)trans( 'firefly.removed_amount_from_piggy', ['amount' => app('amount')->formatAnything($currency, $amount, false), 'name' => $piggyBank->name] ) @@ -177,11 +176,11 @@ class AmountController extends Controller return redirect(route('piggy-banks.index')); } - $amount = number_format((float) $request->get('amount'), 12, '.', ''); + $amount = number_format((float)$request->get('amount'), 12, '.', ''); session()->flash( 'error', - (string) trans( + (string)trans( 'firefly.cannot_remove_from_piggy', ['amount' => app('amount')->formatAnything($currency, $amount, false), 'name' => e($piggyBank->name)] ) diff --git a/app/Http/Controllers/PiggyBank/CreateController.php b/app/Http/Controllers/PiggyBank/CreateController.php index 45ff1bc280..6ad6f2b4b7 100644 --- a/app/Http/Controllers/PiggyBank/CreateController.php +++ b/app/Http/Controllers/PiggyBank/CreateController.php @@ -24,7 +24,6 @@ declare(strict_types=1); namespace FireflyIII\Http\Controllers\PiggyBank; - use FireflyIII\Helpers\Attachments\AttachmentHelperInterface; use FireflyIII\Http\Controllers\Controller; use FireflyIII\Http\Requests\PiggyBankStoreRequest; @@ -53,7 +52,7 @@ class CreateController extends Controller $this->middleware( function ($request, $next) { - app('view')->share('title', (string) trans('firefly.piggyBanks')); + app('view')->share('title', (string)trans('firefly.piggyBanks')); app('view')->share('mainTitleIcon', 'fa-bullseye'); $this->attachments = app(AttachmentHelperInterface::class); @@ -71,7 +70,7 @@ class CreateController extends Controller */ public function create() { - $subTitle = (string) trans('firefly.new_piggy_bank'); + $subTitle = (string)trans('firefly.new_piggy_bank'); $subTitleIcon = 'fa-plus'; // put previous url in session if not redirect from store (not "create another"). @@ -83,7 +82,6 @@ class CreateController extends Controller return prefixView('piggy-banks.create', compact('subTitle', 'subTitleIcon')); } - /** * Store a new piggy bank. * @@ -99,7 +97,7 @@ class CreateController extends Controller } $piggyBank = $this->piggyRepos->store($data); - session()->flash('success', (string) trans('firefly.stored_piggy_bank', ['name' => $piggyBank->name])); + session()->flash('success', (string)trans('firefly.stored_piggy_bank', ['name' => $piggyBank->name])); app('preferences')->mark(); // store attachment(s): @@ -109,17 +107,15 @@ class CreateController extends Controller $this->attachments->saveAttachmentsForModel($piggyBank, $files); } if (null !== $files && auth()->user()->hasRole('demo')) { - session()->flash('info', (string) trans('firefly.no_att_demo_user')); + session()->flash('info', (string)trans('firefly.no_att_demo_user')); } if (count($this->attachments->getMessages()->get('attachments')) > 0) { $request->session()->flash('info', $this->attachments->getMessages()->get('attachments')); // @codeCoverageIgnore } - - $redirect = redirect($this->getPreviousUri('piggy-banks.create.uri')); - if (1 === (int) $request->get('create_another')) { + if (1 === (int)$request->get('create_another')) { // @codeCoverageIgnoreStart session()->put('piggy-banks.create.fromStore', true); diff --git a/app/Http/Controllers/PiggyBank/DeleteController.php b/app/Http/Controllers/PiggyBank/DeleteController.php index 27803dfbd1..4f2d8e7456 100644 --- a/app/Http/Controllers/PiggyBank/DeleteController.php +++ b/app/Http/Controllers/PiggyBank/DeleteController.php @@ -24,7 +24,6 @@ declare(strict_types=1); namespace FireflyIII\Http\Controllers\PiggyBank; - use FireflyIII\Http\Controllers\Controller; use FireflyIII\Models\PiggyBank; use FireflyIII\Repositories\PiggyBank\PiggyBankRepositoryInterface; @@ -51,7 +50,7 @@ class DeleteController extends Controller $this->middleware( function ($request, $next) { - app('view')->share('title', (string) trans('firefly.piggyBanks')); + app('view')->share('title', (string)trans('firefly.piggyBanks')); app('view')->share('mainTitleIcon', 'fa-bullseye'); $this->piggyRepos = app(PiggyBankRepositoryInterface::class); @@ -70,7 +69,7 @@ class DeleteController extends Controller */ public function delete(PiggyBank $piggyBank) { - $subTitle = (string) trans('firefly.delete_piggy_bank', ['name' => $piggyBank->name]); + $subTitle = (string)trans('firefly.delete_piggy_bank', ['name' => $piggyBank->name]); // put previous url in session $this->rememberPreviousUri('piggy-banks.delete.uri'); @@ -87,7 +86,7 @@ class DeleteController extends Controller */ public function destroy(PiggyBank $piggyBank): RedirectResponse { - session()->flash('success', (string) trans('firefly.deleted_piggy_bank', ['name' => $piggyBank->name])); + session()->flash('success', (string)trans('firefly.deleted_piggy_bank', ['name' => $piggyBank->name])); app('preferences')->mark(); $this->piggyRepos->destroy($piggyBank); diff --git a/app/Http/Controllers/PiggyBank/EditController.php b/app/Http/Controllers/PiggyBank/EditController.php index 6e81b8f793..694f1c787d 100644 --- a/app/Http/Controllers/PiggyBank/EditController.php +++ b/app/Http/Controllers/PiggyBank/EditController.php @@ -24,7 +24,6 @@ declare(strict_types=1); namespace FireflyIII\Http\Controllers\PiggyBank; - use FireflyIII\Helpers\Attachments\AttachmentHelperInterface; use FireflyIII\Http\Controllers\Controller; use FireflyIII\Http\Requests\PiggyBankUpdateRequest; @@ -54,7 +53,7 @@ class EditController extends Controller $this->middleware( function ($request, $next) { - app('view')->share('title', (string) trans('firefly.piggyBanks')); + app('view')->share('title', (string)trans('firefly.piggyBanks')); app('view')->share('mainTitleIcon', 'fa-bullseye'); $this->attachments = app(AttachmentHelperInterface::class); @@ -74,7 +73,7 @@ class EditController extends Controller */ public function edit(PiggyBank $piggyBank) { - $subTitle = (string) trans('firefly.update_piggy_title', ['name' => $piggyBank->name]); + $subTitle = (string)trans('firefly.update_piggy_title', ['name' => $piggyBank->name]); $subTitleIcon = 'fa-pencil'; $targetDate = null; $startDate = null; @@ -106,12 +105,11 @@ class EditController extends Controller return prefixView('piggy-banks.edit', compact('subTitle', 'subTitleIcon', 'piggyBank', 'preFilled')); } - /** * Update a piggy bank. * * @param PiggyBankUpdateRequest $request - * @param PiggyBank $piggyBank + * @param PiggyBank $piggyBank * * @return RedirectResponse|Redirector */ @@ -120,7 +118,7 @@ class EditController extends Controller $data = $request->getPiggyBankData(); $piggyBank = $this->piggyRepos->update($piggyBank, $data); - session()->flash('success', (string) trans('firefly.updated_piggy_bank', ['name' => $piggyBank->name])); + session()->flash('success', (string)trans('firefly.updated_piggy_bank', ['name' => $piggyBank->name])); app('preferences')->mark(); // store new attachment(s): @@ -130,17 +128,15 @@ class EditController extends Controller $this->attachments->saveAttachmentsForModel($piggyBank, $files); } if (null !== $files && auth()->user()->hasRole('demo')) { - session()->flash('info', (string) trans('firefly.no_att_demo_user')); + session()->flash('info', (string)trans('firefly.no_att_demo_user')); } if (count($this->attachments->getMessages()->get('attachments')) > 0) { $request->session()->flash('info', $this->attachments->getMessages()->get('attachments')); // @codeCoverageIgnore } - - $redirect = redirect($this->getPreviousUri('piggy-banks.edit.uri')); - if (1 === (int) $request->get('return_to_edit')) { + if (1 === (int)$request->get('return_to_edit')) { // @codeCoverageIgnoreStart session()->put('piggy-banks.edit.fromUpdate', true); diff --git a/app/Http/Controllers/PiggyBank/IndexController.php b/app/Http/Controllers/PiggyBank/IndexController.php index 56df847f53..c14bac0b50 100644 --- a/app/Http/Controllers/PiggyBank/IndexController.php +++ b/app/Http/Controllers/PiggyBank/IndexController.php @@ -24,7 +24,6 @@ declare(strict_types=1); namespace FireflyIII\Http\Controllers\PiggyBank; - use Carbon\Carbon; use FireflyIII\Http\Controllers\Controller; use FireflyIII\Models\PiggyBank; @@ -44,6 +43,7 @@ use Symfony\Component\HttpFoundation\ParameterBag; class IndexController extends Controller { use OrganisesObjectGroups; + private PiggyBankRepositoryInterface $piggyRepos; /** @@ -57,7 +57,7 @@ class IndexController extends Controller $this->middleware( function ($request, $next) { - app('view')->share('title', (string) trans('firefly.piggyBanks')); + app('view')->share('title', (string)trans('firefly.piggyBanks')); app('view')->share('mainTitleIcon', 'fa-bullseye'); $this->piggyRepos = app(PiggyBankRepositoryInterface::class); @@ -101,7 +101,7 @@ class IndexController extends Controller /** @var PiggyBank $piggy */ foreach ($collection as $piggy) { $array = $transformer->transform($piggy); - $groupOrder = (int) $array['object_group_order']; + $groupOrder = (int)$array['object_group_order']; // make group array if necessary: $piggyBanks[$groupOrder] = $piggyBanks[$groupOrder] ?? [ 'object_group_id' => $array['object_group_id'] ?? 0, @@ -110,7 +110,7 @@ class IndexController extends Controller ]; $account = $accountTransformer->transform($piggy->account); - $accountId = (int) $account['id']; + $accountId = (int)$account['id']; $array['attachments'] = $this->piggyRepos->getAttachments($piggy); if (!isset($accounts[$accountId])) { // create new: @@ -165,10 +165,10 @@ class IndexController extends Controller // current_amount // left_to_save // save_per_month - $sums[$groupId][$currencyId]['target'] = bcadd($sums[$groupId][$currencyId]['target'], (string) $piggy['target_amount']); - $sums[$groupId][$currencyId]['saved'] = bcadd($sums[$groupId][$currencyId]['saved'], (string) $piggy['current_amount']); - $sums[$groupId][$currencyId]['left_to_save'] = bcadd($sums[$groupId][$currencyId]['left_to_save'], (string) $piggy['left_to_save']); - $sums[$groupId][$currencyId]['save_per_month'] = bcadd($sums[$groupId][$currencyId]['save_per_month'], (string) $piggy['save_per_month']); + $sums[$groupId][$currencyId]['target'] = bcadd($sums[$groupId][$currencyId]['target'], (string)$piggy['target_amount']); + $sums[$groupId][$currencyId]['saved'] = bcadd($sums[$groupId][$currencyId]['saved'], (string)$piggy['current_amount']); + $sums[$groupId][$currencyId]['left_to_save'] = bcadd($sums[$groupId][$currencyId]['left_to_save'], (string)$piggy['left_to_save']); + $sums[$groupId][$currencyId]['save_per_month'] = bcadd($sums[$groupId][$currencyId]['save_per_month'], (string)$piggy['save_per_month']); } } foreach ($piggyBanks as $groupOrder => $group) { @@ -189,8 +189,8 @@ class IndexController extends Controller */ public function setOrder(Request $request, PiggyBank $piggyBank): JsonResponse { - $objectGroupTitle = (string) $request->get('objectGroupTitle'); - $newOrder = (int) $request->get('order'); + $objectGroupTitle = (string)$request->get('objectGroupTitle'); + $newOrder = (int)$request->get('order'); $this->piggyRepos->setOrder($piggyBank, $newOrder); if ('' !== $objectGroupTitle) { $this->piggyRepos->setObjectGroup($piggyBank, $objectGroupTitle); diff --git a/app/Http/Controllers/PiggyBank/ShowController.php b/app/Http/Controllers/PiggyBank/ShowController.php index e28943051d..cd14e7fdbc 100644 --- a/app/Http/Controllers/PiggyBank/ShowController.php +++ b/app/Http/Controllers/PiggyBank/ShowController.php @@ -24,7 +24,6 @@ declare(strict_types=1); namespace FireflyIII\Http\Controllers\PiggyBank; - use Carbon\Carbon; use FireflyIII\Http\Controllers\Controller; use FireflyIII\Models\PiggyBank; @@ -52,7 +51,7 @@ class ShowController extends Controller $this->middleware( function ($request, $next) { - app('view')->share('title', (string) trans('firefly.piggyBanks')); + app('view')->share('title', (string)trans('firefly.piggyBanks')); app('view')->share('mainTitleIcon', 'fa-bullseye'); $this->piggyRepos = app(PiggyBankRepositoryInterface::class); diff --git a/app/Http/Controllers/Popup/ReportController.php b/app/Http/Controllers/Popup/ReportController.php index 7ebd09fb6a..9cb593ce9b 100644 --- a/app/Http/Controllers/Popup/ReportController.php +++ b/app/Http/Controllers/Popup/ReportController.php @@ -75,6 +75,4 @@ class ReportController extends Controller return response()->json(['html' => $html]); } - - } diff --git a/app/Http/Controllers/Recurring/CreateController.php b/app/Http/Controllers/Recurring/CreateController.php index 3c8849be03..1f19e1bfd7 100644 --- a/app/Http/Controllers/Recurring/CreateController.php +++ b/app/Http/Controllers/Recurring/CreateController.php @@ -44,9 +44,9 @@ use Illuminate\View\View; */ class CreateController extends Controller { + private AttachmentHelperInterface $attachments; private BudgetRepositoryInterface $budgetRepos; private RecurringRepositoryInterface $recurring; - private AttachmentHelperInterface $attachments; /** * CreateController constructor. @@ -61,8 +61,8 @@ class CreateController extends Controller $this->middleware( function ($request, $next) { app('view')->share('mainTitleIcon', 'fa-paint-brush'); - app('view')->share('title', (string) trans('firefly.recurrences')); - app('view')->share('subTitle', (string) trans('firefly.create_new_recurrence')); + app('view')->share('title', (string)trans('firefly.recurrences')); + app('view')->share('subTitle', (string)trans('firefly.create_new_recurrence')); $this->recurring = app(RecurringRepositoryInterface::class); $this->budgetRepos = app(BudgetRepositoryInterface::class); @@ -73,6 +73,52 @@ class CreateController extends Controller ); } + /** + * Create a new recurring transaction. + * + * @param Request $request + * + * @return Factory|View + */ + public function create(Request $request) + { + $budgets = app('expandedform')->makeSelectListWithEmpty($this->budgetRepos->getActiveBudgets()); + $defaultCurrency = app('amount')->getDefaultCurrency(); + $tomorrow = today(config('app.timezone')); + $oldRepetitionType = $request->old('repetition_type'); + $tomorrow->addDay(); + + // put previous url in session if not redirect from store (not "create another"). + if (true !== session('recurring.create.fromStore')) { + $this->rememberPreviousUri('recurring.create.uri'); + } + $request->session()->forget('recurring.create.fromStore'); + $repetitionEnds = [ + 'forever' => (string)trans('firefly.repeat_forever'), + 'until_date' => (string)trans('firefly.repeat_until_date'), + 'times' => (string)trans('firefly.repeat_times'), + ]; + $weekendResponses = [ + RecurrenceRepetition::WEEKEND_DO_NOTHING => (string)trans('firefly.do_nothing'), + RecurrenceRepetition::WEEKEND_SKIP_CREATION => (string)trans('firefly.skip_transaction'), + RecurrenceRepetition::WEEKEND_TO_FRIDAY => (string)trans('firefly.jump_to_friday'), + RecurrenceRepetition::WEEKEND_TO_MONDAY => (string)trans('firefly.jump_to_monday'), + ]; + $hasOldInput = null !== $request->old('_token'); // flash some data + $preFilled = [ + 'first_date' => $tomorrow->format('Y-m-d'), + 'transaction_type' => $hasOldInput ? $request->old('transaction_type') : 'withdrawal', + 'active' => $hasOldInput ? (bool)$request->old('active') : true, + 'apply_rules' => $hasOldInput ? (bool)$request->old('apply_rules') : true, + ]; + $request->session()->flash('preFilled', $preFilled); + + return prefixView( + 'recurring.create', + compact('tomorrow', 'oldRepetitionType', 'weekendResponses', 'preFilled', 'repetitionEnds', 'defaultCurrency', 'budgets') + ); + } + /** * @param Request $request * @param TransactionJournal $journal @@ -91,15 +137,15 @@ class CreateController extends Controller } $request->session()->forget('recurring.create.fromStore'); $repetitionEnds = [ - 'forever' => (string) trans('firefly.repeat_forever'), - 'until_date' => (string) trans('firefly.repeat_until_date'), - 'times' => (string) trans('firefly.repeat_times'), + 'forever' => (string)trans('firefly.repeat_forever'), + 'until_date' => (string)trans('firefly.repeat_until_date'), + 'times' => (string)trans('firefly.repeat_times'), ]; $weekendResponses = [ - RecurrenceRepetition::WEEKEND_DO_NOTHING => (string) trans('firefly.do_nothing'), - RecurrenceRepetition::WEEKEND_SKIP_CREATION => (string) trans('firefly.skip_transaction'), - RecurrenceRepetition::WEEKEND_TO_FRIDAY => (string) trans('firefly.jump_to_friday'), - RecurrenceRepetition::WEEKEND_TO_MONDAY => (string) trans('firefly.jump_to_monday'), + RecurrenceRepetition::WEEKEND_DO_NOTHING => (string)trans('firefly.do_nothing'), + RecurrenceRepetition::WEEKEND_SKIP_CREATION => (string)trans('firefly.skip_transaction'), + RecurrenceRepetition::WEEKEND_TO_FRIDAY => (string)trans('firefly.jump_to_friday'), + RecurrenceRepetition::WEEKEND_TO_MONDAY => (string)trans('firefly.jump_to_monday'), ]; /** @var Transaction $source */ @@ -130,8 +176,8 @@ class CreateController extends Controller 'transaction_type' => $request->old('transaction_type'), 'category' => $request->old('category'), 'budget_id' => $request->old('budget_id'), - 'active' => (bool) $request->old('active'), - 'apply_rules' => (bool) $request->old('apply_rules'), + 'active' => (bool)$request->old('active'), + 'apply_rules' => (bool)$request->old('apply_rules'), ]; } if (false === $hasOldInput) { @@ -154,8 +200,6 @@ class CreateController extends Controller 'apply_rules' => true, ]; } - - $request->session()->flash('preFilled', $preFilled); return prefixView( @@ -164,55 +208,6 @@ class CreateController extends Controller ); } - /** - * Create a new recurring transaction. - * - * @param Request $request - * - * @return Factory|View - */ - public function create(Request $request) - { - $budgets = app('expandedform')->makeSelectListWithEmpty($this->budgetRepos->getActiveBudgets()); - $defaultCurrency = app('amount')->getDefaultCurrency(); - $tomorrow = today(config('app.timezone')); - $oldRepetitionType = $request->old('repetition_type'); - $tomorrow->addDay(); - - // put previous url in session if not redirect from store (not "create another"). - if (true !== session('recurring.create.fromStore')) { - $this->rememberPreviousUri('recurring.create.uri'); - } - $request->session()->forget('recurring.create.fromStore'); - $repetitionEnds = [ - 'forever' => (string) trans('firefly.repeat_forever'), - 'until_date' => (string) trans('firefly.repeat_until_date'), - 'times' => (string) trans('firefly.repeat_times'), - ]; - $weekendResponses = [ - RecurrenceRepetition::WEEKEND_DO_NOTHING => (string) trans('firefly.do_nothing'), - RecurrenceRepetition::WEEKEND_SKIP_CREATION => (string) trans('firefly.skip_transaction'), - RecurrenceRepetition::WEEKEND_TO_FRIDAY => (string) trans('firefly.jump_to_friday'), - RecurrenceRepetition::WEEKEND_TO_MONDAY => (string) trans('firefly.jump_to_monday'), - ]; - - - $hasOldInput = null !== $request->old('_token'); // flash some data - $preFilled = [ - 'first_date' => $tomorrow->format('Y-m-d'), - 'transaction_type' => $hasOldInput ? $request->old('transaction_type') : 'withdrawal', - 'active' => $hasOldInput ? (bool) $request->old('active') : true, - 'apply_rules' => $hasOldInput ? (bool) $request->old('apply_rules') : true, - ]; - $request->session()->flash('preFilled', $preFilled); - - return prefixView( - 'recurring.create', - compact('tomorrow', 'oldRepetitionType', 'weekendResponses', 'preFilled', 'repetitionEnds', 'defaultCurrency', 'budgets') - ); - } - - /** * Store a recurring transaction. * @@ -231,7 +226,7 @@ class CreateController extends Controller return redirect(route('recurring.create'))->withInput(); } - $request->session()->flash('success', (string) trans('firefly.stored_new_recurrence', ['title' => $recurrence->title])); + $request->session()->flash('success', (string)trans('firefly.stored_new_recurrence', ['title' => $recurrence->title])); app('preferences')->mark(); // store attachment(s): @@ -241,7 +236,7 @@ class CreateController extends Controller $this->attachments->saveAttachmentsForModel($recurrence, $files); } if (null !== $files && auth()->user()->hasRole('demo')) { - session()->flash('info', (string) trans('firefly.no_att_demo_user')); + session()->flash('info', (string)trans('firefly.no_att_demo_user')); } if (count($this->attachments->getMessages()->get('attachments')) > 0) { @@ -249,7 +244,7 @@ class CreateController extends Controller } $redirect = redirect($this->getPreviousUri('recurring.create.uri')); - if (1 === (int) $request->get('create_another')) { + if (1 === (int)$request->get('create_another')) { // set value so create routine will not overwrite URL: $request->session()->put('recurring.create.fromStore', true); diff --git a/app/Http/Controllers/Recurring/DeleteController.php b/app/Http/Controllers/Recurring/DeleteController.php index b58e940eb6..6b3fb29014 100644 --- a/app/Http/Controllers/Recurring/DeleteController.php +++ b/app/Http/Controllers/Recurring/DeleteController.php @@ -23,7 +23,6 @@ declare(strict_types=1); namespace FireflyIII\Http\Controllers\Recurring; - use FireflyIII\Http\Controllers\Controller; use FireflyIII\Models\Recurrence; use FireflyIII\Repositories\Recurring\RecurringRepositoryInterface; @@ -54,7 +53,7 @@ class DeleteController extends Controller $this->middleware( function ($request, $next) { app('view')->share('mainTitleIcon', 'fa-paint-brush'); - app('view')->share('title', (string) trans('firefly.recurrences')); + app('view')->share('title', (string)trans('firefly.recurrences')); $this->recurring = app(RecurringRepositoryInterface::class); @@ -72,7 +71,7 @@ class DeleteController extends Controller */ public function delete(Recurrence $recurrence) { - $subTitle = (string) trans('firefly.delete_recurring', ['title' => $recurrence->title]); + $subTitle = (string)trans('firefly.delete_recurring', ['title' => $recurrence->title]); // put previous url in session $this->rememberPreviousUri('recurrences.delete.uri'); @@ -93,7 +92,7 @@ class DeleteController extends Controller public function destroy(RecurringRepositoryInterface $repository, Request $request, Recurrence $recurrence) { $repository->destroy($recurrence); - $request->session()->flash('success', (string) trans('firefly.' . 'recurrence_deleted', ['title' => $recurrence->title])); + $request->session()->flash('success', (string)trans('firefly.' . 'recurrence_deleted', ['title' => $recurrence->title])); app('preferences')->mark(); return redirect($this->getPreviousUri('recurrences.delete.uri')); diff --git a/app/Http/Controllers/Recurring/EditController.php b/app/Http/Controllers/Recurring/EditController.php index 1d94838b01..7a3326c44a 100644 --- a/app/Http/Controllers/Recurring/EditController.php +++ b/app/Http/Controllers/Recurring/EditController.php @@ -23,7 +23,6 @@ declare(strict_types=1); namespace FireflyIII\Http\Controllers\Recurring; - use FireflyIII\Exceptions\FireflyException; use FireflyIII\Helpers\Attachments\AttachmentHelperInterface; use FireflyIII\Http\Controllers\Controller; @@ -46,9 +45,9 @@ use Symfony\Component\HttpFoundation\ParameterBag; */ class EditController extends Controller { + private AttachmentHelperInterface $attachments; private BudgetRepositoryInterface $budgetRepos; private RecurringRepositoryInterface $recurring; - private AttachmentHelperInterface $attachments; /** * EditController constructor. @@ -63,12 +62,13 @@ class EditController extends Controller $this->middleware( function ($request, $next) { app('view')->share('mainTitleIcon', 'fa-paint-brush'); - app('view')->share('title', (string) trans('firefly.recurrences')); - app('view')->share('subTitle', (string) trans('firefly.recurrences')); + app('view')->share('title', (string)trans('firefly.recurrences')); + app('view')->share('subTitle', (string)trans('firefly.recurrences')); $this->recurring = app(RecurringRepositoryInterface::class); $this->budgetRepos = app(BudgetRepositoryInterface::class); $this->attachments = app(AttachmentHelperInterface::class); + return $next($request); } ); @@ -88,7 +88,7 @@ class EditController extends Controller { // TODO should be in repos $count = $recurrence->recurrenceTransactions()->count(); - if(0 === $count) { + if (0 === $count) { throw new FireflyException('This recurring transaction has no meta-data. You will have to delete it and recreate it. Sorry!'); } @@ -114,9 +114,9 @@ class EditController extends Controller $repetitionEnd = 'forever'; $repetitionEnds = [ - 'forever' => (string) trans('firefly.repeat_forever'), - 'until_date' => (string) trans('firefly.repeat_until_date'), - 'times' => (string) trans('firefly.repeat_times'), + 'forever' => (string)trans('firefly.repeat_forever'), + 'until_date' => (string)trans('firefly.repeat_until_date'), + 'times' => (string)trans('firefly.repeat_times'), ]; if (null !== $recurrence->repeat_until) { $repetitionEnd = 'until_date'; // @codeCoverageIgnore @@ -126,17 +126,17 @@ class EditController extends Controller } $weekendResponses = [ - RecurrenceRepetition::WEEKEND_DO_NOTHING => (string) trans('firefly.do_nothing'), - RecurrenceRepetition::WEEKEND_SKIP_CREATION => (string) trans('firefly.skip_transaction'), - RecurrenceRepetition::WEEKEND_TO_FRIDAY => (string) trans('firefly.jump_to_friday'), - RecurrenceRepetition::WEEKEND_TO_MONDAY => (string) trans('firefly.jump_to_monday'), + RecurrenceRepetition::WEEKEND_DO_NOTHING => (string)trans('firefly.do_nothing'), + RecurrenceRepetition::WEEKEND_SKIP_CREATION => (string)trans('firefly.skip_transaction'), + RecurrenceRepetition::WEEKEND_TO_FRIDAY => (string)trans('firefly.jump_to_friday'), + RecurrenceRepetition::WEEKEND_TO_MONDAY => (string)trans('firefly.jump_to_monday'), ]; $hasOldInput = null !== $request->old('_token'); $preFilled = [ 'transaction_type' => strtolower($recurrence->transactionType->type), - 'active' => $hasOldInput ? (bool) $request->old('active') : $recurrence->active, - 'apply_rules' => $hasOldInput ? (bool) $request->old('apply_rules') : $recurrence->apply_rules, + 'active' => $hasOldInput ? (bool)$request->old('active') : $recurrence->active, + 'apply_rules' => $hasOldInput ? (bool)$request->old('apply_rules') : $recurrence->apply_rules, 'deposit_source_id' => $array['transactions'][0]['source_id'], 'withdrawal_destination_id' => $array['transactions'][0]['destination_id'], ]; @@ -164,7 +164,7 @@ class EditController extends Controller $this->recurring->update($recurrence, $data); - $request->session()->flash('success', (string) trans('firefly.updated_recurrence', ['title' => $recurrence->title])); + $request->session()->flash('success', (string)trans('firefly.updated_recurrence', ['title' => $recurrence->title])); // store new attachment(s): $files = $request->hasFile('attachments') ? $request->file('attachments') : null; @@ -172,17 +172,15 @@ class EditController extends Controller $this->attachments->saveAttachmentsForModel($recurrence, $files); } if (null !== $files && auth()->user()->hasRole('demo')) { - session()->flash('info', (string) trans('firefly.no_att_demo_user')); + session()->flash('info', (string)trans('firefly.no_att_demo_user')); } if (count($this->attachments->getMessages()->get('attachments')) > 0) { $request->session()->flash('info', $this->attachments->getMessages()->get('attachments')); // @codeCoverageIgnore } - - app('preferences')->mark(); $redirect = redirect($this->getPreviousUri('recurrences.edit.uri')); - if (1 === (int) $request->get('return_to_edit')) { + if (1 === (int)$request->get('return_to_edit')) { // set value so edit routine will not overwrite URL: $request->session()->put('recurrences.edit.fromUpdate', true); @@ -192,6 +190,4 @@ class EditController extends Controller // redirect to previous URL. return $redirect; } - - } diff --git a/app/Http/Controllers/Recurring/IndexController.php b/app/Http/Controllers/Recurring/IndexController.php index de1404bb9f..63a0e49dd2 100644 --- a/app/Http/Controllers/Recurring/IndexController.php +++ b/app/Http/Controllers/Recurring/IndexController.php @@ -23,7 +23,6 @@ declare(strict_types=1); namespace FireflyIII\Http\Controllers\Recurring; - use Carbon\Carbon; use FireflyIII\Exceptions\FireflyException; use FireflyIII\Http\Controllers\Controller; @@ -44,6 +43,7 @@ use Symfony\Component\HttpFoundation\ParameterBag; class IndexController extends Controller { use GetConfigurationData; + private RecurringRepositoryInterface $recurringRepos; /** @@ -59,7 +59,7 @@ class IndexController extends Controller $this->middleware( function ($request, $next) { app('view')->share('mainTitleIcon', 'fa-paint-brush'); - app('view')->share('title', (string) trans('firefly.recurrences')); + app('view')->share('title', (string)trans('firefly.recurrences')); $this->recurringRepos = app(RecurringRepositoryInterface::class); @@ -74,20 +74,20 @@ class IndexController extends Controller * * @param Request $request * + * @return Factory|View * @throws FireflyException * - * @return Factory|View */ public function index(Request $request) { - $page = 0 === (int) $request->get('page') ? 1 : (int) $request->get('page'); - $pageSize = (int) app('preferences')->get('listPageSize', 50)->data; + $page = 0 === (int)$request->get('page') ? 1 : (int)$request->get('page'); + $pageSize = (int)app('preferences')->get('listPageSize', 50)->data; $collection = $this->recurringRepos->get(); $today = today(config('app.timezone')); $year = today(config('app.timezone')); // split collection - $total = $collection->count(); + $total = $collection->count(); $recurrences = $collection->slice(($page - 1) * $pageSize, $pageSize); /** @var RecurrenceTransformer $transformer */ diff --git a/app/Http/Controllers/Recurring/ShowController.php b/app/Http/Controllers/Recurring/ShowController.php index 652aaed8d0..6622b4dc37 100644 --- a/app/Http/Controllers/Recurring/ShowController.php +++ b/app/Http/Controllers/Recurring/ShowController.php @@ -41,6 +41,7 @@ use Symfony\Component\HttpFoundation\ParameterBag; class ShowController extends Controller { use GetConfigurationData; + /** @var RecurringRepositoryInterface Recurring repository */ private $recurring; @@ -58,7 +59,7 @@ class ShowController extends Controller $this->middleware( function ($request, $next) { app('view')->share('mainTitleIcon', 'fa-paint-brush'); - app('view')->share('title', (string) trans('firefly.recurrences')); + app('view')->share('title', (string)trans('firefly.recurrences')); $this->recurring = app(RecurringRepositoryInterface::class); @@ -67,14 +68,13 @@ class ShowController extends Controller ); } - /** * Show a single recurring transaction. * * @param Recurrence $recurrence * - * @throws FireflyException * @return Factory|View + * @throws FireflyException */ public function show(Recurrence $recurrence) { @@ -94,8 +94,8 @@ class ShowController extends Controller } } - $subTitle = (string) trans('firefly.overview_for_recurrence', ['title' => $recurrence->title]); + $subTitle = (string)trans('firefly.overview_for_recurrence', ['title' => $recurrence->title]); - return prefixView('recurring.show', compact('recurrence', 'subTitle', 'array', 'groups','today')); + return prefixView('recurring.show', compact('recurrence', 'subTitle', 'array', 'groups', 'today')); } } diff --git a/app/Http/Controllers/Report/BalanceController.php b/app/Http/Controllers/Report/BalanceController.php index 1d823b8e20..4613e1c506 100644 --- a/app/Http/Controllers/Report/BalanceController.php +++ b/app/Http/Controllers/Report/BalanceController.php @@ -57,7 +57,6 @@ class BalanceController extends Controller ); } - /** * Show overview of budget balances. * @@ -136,8 +135,6 @@ class BalanceController extends Controller $report['budgets'][$budgetId]['spent'] = $spent; // get transactions in budget } - - try { $result = prefixView('reports.partials.balance', compact('report'))->render(); // @codeCoverageIgnoreStart diff --git a/app/Http/Controllers/Report/BillController.php b/app/Http/Controllers/Report/BillController.php index e8cea95237..4f92954c24 100644 --- a/app/Http/Controllers/Report/BillController.php +++ b/app/Http/Controllers/Report/BillController.php @@ -23,7 +23,6 @@ declare(strict_types=1); namespace FireflyIII\Http\Controllers\Report; - use Carbon\Carbon; use FireflyIII\Helpers\Report\ReportHelperInterface; use FireflyIII\Http\Controllers\Controller; @@ -52,13 +51,9 @@ class BillController extends Controller if ($cache->has()) { return $cache->get(); // @codeCoverageIgnore } - - /** @var ReportHelperInterface $helper */ $helper = app(ReportHelperInterface::class); $report = $helper->getBillReport($accounts, $start, $end); - - try { $result = prefixView('reports.partials.bills', compact('report'))->render(); // @codeCoverageIgnoreStart diff --git a/app/Http/Controllers/Report/BudgetController.php b/app/Http/Controllers/Report/BudgetController.php index 1a9eeb9a57..d455ba5e3d 100644 --- a/app/Http/Controllers/Report/BudgetController.php +++ b/app/Http/Controllers/Report/BudgetController.php @@ -265,7 +265,7 @@ class BudgetController extends Controller $total = $sums[$currencyId]['sum'] ?? '0'; $pct = '0'; if (0 !== bccomp($sum, '0') && 0 !== bccomp($total, '9')) { - $pct = round((float) bcmul(bcdiv($sum, $total), '100')); + $pct = round((float)bcmul(bcdiv($sum, $total), '100')); } $report[$budgetId]['currencies'][$currencyId]['sum_pct'] = $pct; } @@ -321,8 +321,6 @@ class BudgetController extends Controller $periods = app('navigation')->listOfPeriods($start, $end); $keyFormat = app('navigation')->preferredCarbonFormat($start, $end); - - // list expenses for budgets in account(s) $expenses = $this->opsRepository->listExpenses($start, $end, $accounts); diff --git a/app/Http/Controllers/Report/CategoryController.php b/app/Http/Controllers/Report/CategoryController.php index d5558f4ee6..15561046e8 100644 --- a/app/Http/Controllers/Report/CategoryController.php +++ b/app/Http/Controllers/Report/CategoryController.php @@ -44,8 +44,8 @@ class CategoryController extends Controller { use BasicDataSupport; - private OperationsRepositoryInterface $opsRepository; private NoCategoryRepositoryInterface $noCatRepository; + private OperationsRepositoryInterface $opsRepository; /** * ExpenseReportController constructor. @@ -124,8 +124,6 @@ class CategoryController extends Controller } } } - - // loop income. foreach ($earned as $currency) { $currencyId = $currency['currency_id']; @@ -133,18 +131,16 @@ class CategoryController extends Controller /** @var array $category */ foreach ($currency['categories'] as $category) { foreach ($category['transaction_journals'] as $journal) { - $destinationId = $journal['destination_account_id']; + $destinationId = $journal['destination_account_id']; $report[$destinationId]['currencies'][$currencyId] - = $report[$destinationId]['currencies'][$currencyId] - ?? [ - 'currency_id' => $currency['currency_id'], - 'currency_symbol' => $currency['currency_symbol'], - 'currency_name' => $currency['currency_name'], - 'currency_decimal_places' => $currency['currency_decimal_places'], - 'categories' => [], - ]; - - + = $report[$destinationId]['currencies'][$currencyId] + ?? [ + 'currency_id' => $currency['currency_id'], + 'currency_symbol' => $currency['currency_symbol'], + 'currency_name' => $currency['currency_name'], + 'currency_decimal_places' => $currency['currency_decimal_places'], + 'categories' => [], + ]; $report[$destinationId]['currencies'][$currencyId]['categories'][$category['id']] = $report[$destinationId]['currencies'][$currencyId]['categories'][$category['id']] ?? diff --git a/app/Http/Controllers/Report/DoubleController.php b/app/Http/Controllers/Report/DoubleController.php index 5a4a7de4cd..0cd1bf0bc5 100644 --- a/app/Http/Controllers/Report/DoubleController.php +++ b/app/Http/Controllers/Report/DoubleController.php @@ -291,6 +291,31 @@ class DoubleController extends Controller return prefixView('reports.double.partials.accounts', compact('sums', 'report')); } + /** + * TODO this method is double. + * + * @param Collection $accounts + * @param int $id + * @param string $name + * @param string|null $iban + * + * @return string + */ + private function getCounterpartName(Collection $accounts, int $id, string $name, ?string $iban): string + { + /** @var Account $account */ + foreach ($accounts as $account) { + if ($account->name === $name && $account->id !== $id) { + return $account->name; + } + if (null !== $account->iban && $account->iban === $iban && $account->id !== $id) { + return $account->iban; + } + } + + return $name; + } + /** * @param Collection $accounts * @param Collection $double @@ -490,29 +515,4 @@ class DoubleController extends Controller return $result; } - - /** - * TODO this method is double. - * - * @param Collection $accounts - * @param int $id - * @param string $name - * @param string|null $iban - * - * @return string - */ - private function getCounterpartName(Collection $accounts, int $id, string $name, ?string $iban): string - { - /** @var Account $account */ - foreach ($accounts as $account) { - if ($account->name === $name && $account->id !== $id) { - return $account->name; - } - if (null !== $account->iban && $account->iban === $iban && $account->id !== $id) { - return $account->iban; - } - } - - return $name; - } } diff --git a/app/Http/Controllers/Report/OperationsController.php b/app/Http/Controllers/Report/OperationsController.php index 04ee93f96e..0dc06329eb 100644 --- a/app/Http/Controllers/Report/OperationsController.php +++ b/app/Http/Controllers/Report/OperationsController.php @@ -58,7 +58,6 @@ class OperationsController extends Controller ); } - /** * View of income and expense. * diff --git a/app/Http/Controllers/Report/TagController.php b/app/Http/Controllers/Report/TagController.php index 50edfafe84..48a506d581 100644 --- a/app/Http/Controllers/Report/TagController.php +++ b/app/Http/Controllers/Report/TagController.php @@ -118,8 +118,6 @@ class TagController extends Controller } } } - - // loop income. foreach ($earned as $currency) { $currencyId = $currency['currency_id']; @@ -127,18 +125,16 @@ class TagController extends Controller /** @var array $category */ foreach ($currency['tags'] as $tag) { foreach ($tag['transaction_journals'] as $journal) { - $destinationId = $journal['destination_account_id']; + $destinationId = $journal['destination_account_id']; $report[$destinationId]['currencies'][$currencyId] - = $report[$destinationId]['currencies'][$currencyId] - ?? [ - 'currency_id' => $currency['currency_id'], - 'currency_symbol' => $currency['currency_symbol'], - 'currency_name' => $currency['currency_name'], - 'currency_decimal_places' => $currency['currency_decimal_places'], - 'tags' => [], - ]; - - + = $report[$destinationId]['currencies'][$currencyId] + ?? [ + 'currency_id' => $currency['currency_id'], + 'currency_symbol' => $currency['currency_symbol'], + 'currency_name' => $currency['currency_name'], + 'currency_decimal_places' => $currency['currency_decimal_places'], + 'tags' => [], + ]; $report[$destinationId]['currencies'][$currencyId]['tags'][$tag['id']] = $report[$destinationId]['currencies'][$currencyId]['tags'][$tag['id']] ?? diff --git a/app/Http/Controllers/ReportController.php b/app/Http/Controllers/ReportController.php index 8dc4988fe1..d4e5c9f2a7 100644 --- a/app/Http/Controllers/ReportController.php +++ b/app/Http/Controllers/ReportController.php @@ -63,7 +63,7 @@ class ReportController extends Controller $this->middleware( function ($request, $next) { - app('view')->share('title', (string) trans('firefly.reports')); + app('view')->share('title', (string)trans('firefly.reports')); app('view')->share('mainTitleIcon', 'fa-bar-chart'); app('view')->share('subTitleIcon', 'fa-calendar'); $this->helper = app(ReportHelperInterface::class); @@ -81,14 +81,14 @@ class ReportController extends Controller * @param Carbon $start * @param Carbon $end * - * @throws FireflyException * @return Factory|View|string * + * @throws FireflyException */ public function auditReport(Collection $accounts, Carbon $start, Carbon $end) { if ($end < $start) { - return prefixView('error')->with('message', (string) trans('firefly.end_after_start_date')); // @codeCoverageIgnore + return prefixView('error')->with('message', (string)trans('firefly.end_after_start_date')); // @codeCoverageIgnore } $this->repository->cleanupBudgets(); @@ -117,14 +117,14 @@ class ReportController extends Controller * @param Carbon $start * @param Carbon $end * - * @throws FireflyException * @return Factory|View|string * + * @throws FireflyException */ public function budgetReport(Collection $accounts, Collection $budgets, Carbon $start, Carbon $end) { if ($end < $start) { - return prefixView('error')->with('message', (string) trans('firefly.end_after_start_date')); // @codeCoverageIgnore + return prefixView('error')->with('message', (string)trans('firefly.end_after_start_date')); // @codeCoverageIgnore } $this->repository->cleanupBudgets(); @@ -154,14 +154,14 @@ class ReportController extends Controller * @param Carbon $start * @param Carbon $end * - * @throws FireflyException * @return Factory|View|string * + * @throws FireflyException */ public function categoryReport(Collection $accounts, Collection $categories, Carbon $start, Carbon $end) { if ($end < $start) { - return prefixView('error')->with('message', (string) trans('firefly.end_after_start_date')); // @codeCoverageIgnore + return prefixView('error')->with('message', (string)trans('firefly.end_after_start_date')); // @codeCoverageIgnore } $this->repository->cleanupBudgets(); @@ -190,14 +190,14 @@ class ReportController extends Controller * @param Carbon $start * @param Carbon $end * - * @throws FireflyException * @return Factory|View|string * + * @throws FireflyException */ public function defaultReport(Collection $accounts, Carbon $start, Carbon $end) { if ($end < $start) { - return prefixView('error')->with('message', (string) trans('firefly.end_after_start_date')); + return prefixView('error')->with('message', (string)trans('firefly.end_after_start_date')); } $this->repository->cleanupBudgets(); @@ -227,8 +227,8 @@ class ReportController extends Controller * @param Carbon $start * @param Carbon $end * - * @throws FireflyException * @return Factory|View|string + * @throws FireflyException */ public function doubleReport(Collection $accounts, Collection $expense, Carbon $start, Carbon $end) { @@ -330,10 +330,10 @@ class ReportController extends Controller * * @param ReportFormRequest $request * - * @throws FireflyException - * * @return RedirectResponse|Redirector * + * @throws FireflyException + * */ public function postIndex(ReportFormRequest $request) { @@ -349,37 +349,37 @@ class ReportController extends Controller if (0 === $request->getAccountList()->count()) { Log::debug('Account count is zero'); - session()->flash('error', (string) trans('firefly.select_at_least_one_account')); + session()->flash('error', (string)trans('firefly.select_at_least_one_account')); return redirect(route('reports.index')); } if ('category' === $reportType && 0 === $request->getCategoryList()->count()) { - session()->flash('error', (string) trans('firefly.select_at_least_one_category')); + session()->flash('error', (string)trans('firefly.select_at_least_one_category')); return redirect(route('reports.index')); } if ('budget' === $reportType && 0 === $request->getBudgetList()->count()) { - session()->flash('error', (string) trans('firefly.select_at_least_one_budget')); + session()->flash('error', (string)trans('firefly.select_at_least_one_budget')); return redirect(route('reports.index')); } if ('tag' === $reportType && 0 === $request->getTagList()->count()) { - session()->flash('error', (string) trans('firefly.select_at_least_one_tag')); + session()->flash('error', (string)trans('firefly.select_at_least_one_tag')); return redirect(route('reports.index')); } if ('double' === $reportType && 0 === $request->getDoubleList()->count()) { - session()->flash('error', (string) trans('firefly.select_at_least_one_expense')); + session()->flash('error', (string)trans('firefly.select_at_least_one_expense')); return redirect(route('reports.index')); } if ($request->getEndDate() < $request->getStartDate()) { - return prefixView('error')->with('message', (string) trans('firefly.end_after_start_date')); + return prefixView('error')->with('message', (string)trans('firefly.end_after_start_date')); } switch ($reportType) { @@ -407,7 +407,6 @@ class ReportController extends Controller return redirect($uri); } - /** * Get a tag report. * @@ -416,13 +415,13 @@ class ReportController extends Controller * @param Carbon $start * @param Carbon $end * - * @throws FireflyException * @return Factory|View|string + * @throws FireflyException */ public function tagReport(Collection $accounts, Collection $tags, Carbon $start, Carbon $end) { if ($end < $start) { - return prefixView('error')->with('message', (string) trans('firefly.end_after_start_date')); // @codeCoverageIgnore + return prefixView('error')->with('message', (string)trans('firefly.end_after_start_date')); // @codeCoverageIgnore } $this->repository->cleanupBudgets(); diff --git a/app/Http/Controllers/Rule/DeleteController.php b/app/Http/Controllers/Rule/DeleteController.php index c2b5e6f8b0..aba1d789a3 100644 --- a/app/Http/Controllers/Rule/DeleteController.php +++ b/app/Http/Controllers/Rule/DeleteController.php @@ -23,7 +23,6 @@ declare(strict_types=1); namespace FireflyIII\Http\Controllers\Rule; - use FireflyIII\Http\Controllers\Controller; use FireflyIII\Models\Rule; use FireflyIII\Repositories\Rule\RuleRepositoryInterface; diff --git a/app/Http/Controllers/Rule/EditController.php b/app/Http/Controllers/Rule/EditController.php index 873a040549..8dcec9c785 100644 --- a/app/Http/Controllers/Rule/EditController.php +++ b/app/Http/Controllers/Rule/EditController.php @@ -23,7 +23,6 @@ declare(strict_types=1); namespace FireflyIII\Http\Controllers\Rule; - use FireflyIII\Http\Controllers\Controller; use FireflyIII\Http\Requests\RuleFormRequest; use FireflyIII\Models\Rule; @@ -98,8 +97,6 @@ class EditController extends Controller } $oldTriggers = $this->parseFromOperators($operators); } - - // has old input? if (count($request->old()) > 0) { $oldTriggers = $this->getPreviousTriggers($request); diff --git a/app/Http/Controllers/Rule/SelectController.php b/app/Http/Controllers/Rule/SelectController.php index ecab505702..4299fce5e3 100644 --- a/app/Http/Controllers/Rule/SelectController.php +++ b/app/Http/Controllers/Rule/SelectController.php @@ -23,7 +23,6 @@ declare(strict_types=1); namespace FireflyIII\Http\Controllers\Rule; - use Carbon\Carbon; use FireflyIII\Http\Controllers\Controller; use FireflyIII\Http\Requests\SelectTransactionsRequest; @@ -104,7 +103,6 @@ class SelectController extends Controller return redirect()->route('rules.index'); } - /** * View to select transactions by a rule. * @@ -206,8 +204,6 @@ class SelectController extends Controller if (0 === count($triggers)) { return response()->json(['html' => '', 'warning' => (string)trans('firefly.warning_no_valid_triggers')]); // @codeCoverageIgnore } - - // create new rule engine: $newRuleEngine = app(RuleEngineInterface::class); @@ -235,6 +231,4 @@ class SelectController extends Controller return response()->json(['html' => $view, 'warning' => $warning]); } - - } diff --git a/app/Http/Controllers/RuleGroup/CreateController.php b/app/Http/Controllers/RuleGroup/CreateController.php index 31e7969d72..9c4456544e 100644 --- a/app/Http/Controllers/RuleGroup/CreateController.php +++ b/app/Http/Controllers/RuleGroup/CreateController.php @@ -23,7 +23,6 @@ declare(strict_types=1); namespace FireflyIII\Http\Controllers\RuleGroup; - use FireflyIII\Http\Controllers\Controller; use FireflyIII\Http\Requests\RuleGroupFormRequest; use FireflyIII\Repositories\RuleGroup\RuleGroupRepositoryInterface; @@ -51,7 +50,7 @@ class CreateController extends Controller $this->middleware( function ($request, $next) { - app('view')->share('title', (string) trans('firefly.rules')); + app('view')->share('title', (string)trans('firefly.rules')); app('view')->share('mainTitleIcon', 'fa-random'); $this->repository = app(RuleGroupRepositoryInterface::class); @@ -69,7 +68,7 @@ class CreateController extends Controller public function create() { $subTitleIcon = 'fa-clone'; - $subTitle = (string) trans('firefly.make_new_rule_group'); + $subTitle = (string)trans('firefly.make_new_rule_group'); // put previous url in session if not redirect from store (not "create another"). if (true !== session('rule-groups.create.fromStore')) { @@ -92,11 +91,11 @@ class CreateController extends Controller $data = $request->getRuleGroupData(); $ruleGroup = $this->repository->store($data); - session()->flash('success', (string) trans('firefly.created_new_rule_group', ['title' => $ruleGroup->title])); + session()->flash('success', (string)trans('firefly.created_new_rule_group', ['title' => $ruleGroup->title])); app('preferences')->mark(); $redirect = redirect($this->getPreviousUri('rule-groups.create.uri')); - if (1 === (int) $request->get('create_another')) { + if (1 === (int)$request->get('create_another')) { // @codeCoverageIgnoreStart session()->put('rule-groups.create.fromStore', true); diff --git a/app/Http/Controllers/RuleGroup/DeleteController.php b/app/Http/Controllers/RuleGroup/DeleteController.php index f83f73d9ec..d499868af9 100644 --- a/app/Http/Controllers/RuleGroup/DeleteController.php +++ b/app/Http/Controllers/RuleGroup/DeleteController.php @@ -23,7 +23,6 @@ declare(strict_types=1); namespace FireflyIII\Http\Controllers\RuleGroup; - use FireflyIII\Http\Controllers\Controller; use FireflyIII\Models\RuleGroup; use FireflyIII\Repositories\RuleGroup\RuleGroupRepositoryInterface; @@ -52,7 +51,7 @@ class DeleteController extends Controller $this->middleware( function ($request, $next) { - app('view')->share('title', (string) trans('firefly.rules')); + app('view')->share('title', (string)trans('firefly.rules')); app('view')->share('mainTitleIcon', 'fa-random'); $this->repository = app(RuleGroupRepositoryInterface::class); @@ -62,7 +61,6 @@ class DeleteController extends Controller ); } - /** * Delete a rule group. * @@ -72,7 +70,7 @@ class DeleteController extends Controller */ public function delete(RuleGroup $ruleGroup) { - $subTitle = (string) trans('firefly.delete_rule_group', ['title' => $ruleGroup->title]); + $subTitle = (string)trans('firefly.delete_rule_group', ['title' => $ruleGroup->title]); // put previous url in session $this->rememberPreviousUri('rule-groups.delete.uri'); @@ -93,10 +91,10 @@ class DeleteController extends Controller $title = $ruleGroup->title; /** @var RuleGroup $moveTo */ - $moveTo = $this->repository->find((int) $request->get('move_rules_before_delete')); + $moveTo = $this->repository->find((int)$request->get('move_rules_before_delete')); $this->repository->destroy($ruleGroup, $moveTo); - session()->flash('success', (string) trans('firefly.deleted_rule_group', ['title' => $title])); + session()->flash('success', (string)trans('firefly.deleted_rule_group', ['title' => $title])); app('preferences')->mark(); return redirect($this->getPreviousUri('rule-groups.delete.uri')); diff --git a/app/Http/Controllers/RuleGroup/EditController.php b/app/Http/Controllers/RuleGroup/EditController.php index 6dbe96807a..f7ff347786 100644 --- a/app/Http/Controllers/RuleGroup/EditController.php +++ b/app/Http/Controllers/RuleGroup/EditController.php @@ -70,8 +70,8 @@ class EditController extends Controller */ public function down(RuleGroup $ruleGroup) { - $maxOrder =$this->repository->maxOrder(); - $order = (int)$ruleGroup->order; + $maxOrder = $this->repository->maxOrder(); + $order = (int)$ruleGroup->order; if ($order < $maxOrder) { $newOrder = $order + 1; $this->repository->setOrder($ruleGroup, $newOrder); @@ -80,7 +80,6 @@ class EditController extends Controller return redirect(route('rules.index')); } - /** * Edit a rule group. * @@ -97,8 +96,6 @@ class EditController extends Controller $preFilled = [ 'active' => $hasOldInput ? (bool)$request->old('active') : $ruleGroup->active, ]; - - // put previous url in session if not redirect from store (not "return_to_edit"). if (true !== session('rule-groups.edit.fromUpdate')) { $this->rememberPreviousUri('rule-groups.edit.uri'); diff --git a/app/Http/Controllers/RuleGroup/ExecutionController.php b/app/Http/Controllers/RuleGroup/ExecutionController.php index bb57a6cb72..8df7f6f719 100644 --- a/app/Http/Controllers/RuleGroup/ExecutionController.php +++ b/app/Http/Controllers/RuleGroup/ExecutionController.php @@ -23,7 +23,6 @@ declare(strict_types=1); namespace FireflyIII\Http\Controllers\RuleGroup; - use Carbon\Carbon; use Exception; use FireflyIII\Http\Controllers\Controller; @@ -54,7 +53,7 @@ class ExecutionController extends Controller $this->middleware( function ($request, $next) { - app('view')->share('title', (string) trans('firefly.rules')); + app('view')->share('title', (string)trans('firefly.rules')); app('view')->share('mainTitleIcon', 'fa-random'); $this->ruleGroupRepository = app(RuleGroupRepositoryInterface::class); @@ -64,7 +63,6 @@ class ExecutionController extends Controller ); } - /** * Execute the given rulegroup on a set of existing transactions. * @@ -97,7 +95,7 @@ class ExecutionController extends Controller $newRuleEngine->fire(); // Tell the user that the job is queued - session()->flash('success', (string) trans('firefly.applied_rule_group_selection', ['title' => $ruleGroup->title])); + session()->flash('success', (string)trans('firefly.applied_rule_group_selection', ['title' => $ruleGroup->title])); return redirect()->route('rules.index'); } @@ -113,10 +111,8 @@ class ExecutionController extends Controller { $first = session('first')->format('Y-m-d'); $today = Carbon::now()->format('Y-m-d'); - $subTitle = (string) trans('firefly.apply_rule_group_selection', ['title' => $ruleGroup->title]); + $subTitle = (string)trans('firefly.apply_rule_group_selection', ['title' => $ruleGroup->title]); return prefixView('rules.rule-group.select-transactions', compact('first', 'today', 'ruleGroup', 'subTitle')); } - - } diff --git a/app/Http/Controllers/System/CronController.php b/app/Http/Controllers/System/CronController.php index 38ee1b2be0..442954d010 100644 --- a/app/Http/Controllers/System/CronController.php +++ b/app/Http/Controllers/System/CronController.php @@ -22,6 +22,7 @@ declare(strict_types=1); namespace FireflyIII\Http\Controllers\System; + use Log; /** @@ -35,6 +36,7 @@ class CronController public function cron() { Log::error('The cron endpoint has moved to GET /api/v1/cron/[token]'); + return response('The cron endpoint has moved to GET /api/v1/cron/[token]', 500); } } diff --git a/app/Http/Controllers/System/InstallController.php b/app/Http/Controllers/System/InstallController.php index af665d0a21..5460890474 100644 --- a/app/Http/Controllers/System/InstallController.php +++ b/app/Http/Controllers/System/InstallController.php @@ -23,18 +23,20 @@ declare(strict_types=1); namespace FireflyIII\Http\Controllers\System; - use Artisan; use Cache; use Exception; use FireflyIII\Http\Controllers\Controller; use FireflyIII\Support\Facades\Preferences; use FireflyIII\Support\Http\Controllers\GetConfigurationData; +use Illuminate\Contracts\View\Factory; use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; use Illuminate\Support\Arr; +use Illuminate\View\View; use Laravel\Passport\Passport; use Log; +use phpseclib3\Crypt\RSA; /** * Class InstallController @@ -48,12 +50,11 @@ class InstallController extends Controller public const FORBIDDEN_ERROR = 'Internal PHP function "proc_close" is disabled for your installation. Auto-migration is not possible.'; public const BASEDIR_ERROR = 'Firefly III cannot execute the upgrade commands. It is not allowed to because of an open_basedir restriction.'; public const OTHER_ERROR = 'An unknown error prevented Firefly III from executing the upgrade commands. Sorry.'; - private array $upgradeCommands; private string $lastError; - - + private array $upgradeCommands; /** @noinspection MagicMethodsValidityInspection */ /** @noinspection PhpMissingParentConstructorInspection */ + /** * InstallController constructor. */ @@ -115,7 +116,7 @@ class InstallController extends Controller /** * Show index. * - * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View + * @return Factory|View */ public function index() { @@ -128,34 +129,6 @@ class InstallController extends Controller return prefixView('install.index'); } - /** - * Create specific RSA keys. - */ - public function keys(): void - { - // switch on PHP version. - // switch on PHP version. - if (7 === PHP_MAJOR_VERSION) { - $rsa = new \phpseclib\Crypt\RSA; - $keys = $rsa->createKey(4096); - } - if (8 === PHP_MAJOR_VERSION) { - $keys = \phpseclib3\Crypt\RSA::createKey(4096); - } - - [$publicKey, $privateKey] = [ - Passport::keyPath('oauth-public.key'), - Passport::keyPath('oauth-private.key'), - ]; - - if (file_exists($publicKey) || file_exists($privateKey)) { - return; - } - - file_put_contents($publicKey, Arr::get($keys, 'publickey')); - file_put_contents($privateKey, Arr::get($keys, 'privatekey')); - } - /** * @param Request $request * @@ -237,4 +210,38 @@ class InstallController extends Controller return true; } + + /** + * Create specific RSA keys. + */ + public function keys(): void + { + // switch on PHP version. + $result = version_compare(phpversion(), '8.0'); + Log::info(sprintf('PHP version is %s', $result)); + if (-1 === $result) { + Log::info('Will run PHP7 code.'); + // PHP 7 + $rsa = new \phpseclib\Crypt\RSA; + $keys = $rsa->createKey(4096); + } + + if ($result >= 0) { + Log::info('Will run PHP8 code.'); + // PHP 8 + $keys = RSA::createKey(4096); + } + + [$publicKey, $privateKey] = [ + Passport::keyPath('oauth-public.key'), + Passport::keyPath('oauth-private.key'), + ]; + + if (file_exists($publicKey) || file_exists($privateKey)) { + return; + } + + file_put_contents($publicKey, Arr::get($keys, 'publickey')); + file_put_contents($privateKey, Arr::get($keys, 'privatekey')); + } } diff --git a/app/Http/Controllers/TagController.php b/app/Http/Controllers/TagController.php index 70433f63c1..5f32e14a81 100644 --- a/app/Http/Controllers/TagController.php +++ b/app/Http/Controllers/TagController.php @@ -43,7 +43,7 @@ class TagController extends Controller { use PeriodOverview; - protected TagRepositoryInterface $repository; + protected TagRepositoryInterface $repository; private AttachmentHelperInterface $attachmentsHelper; /** @@ -56,11 +56,11 @@ class TagController extends Controller $this->middleware( function ($request, $next) { - app('view')->share('title', (string) trans('firefly.tags')); + app('view')->share('title', (string)trans('firefly.tags')); app('view')->share('mainTitleIcon', 'fa-tag'); $this->attachmentsHelper = app(AttachmentHelperInterface::class); - $this->repository = app(TagRepositoryInterface::class); + $this->repository = app(TagRepositoryInterface::class); return $next($request); } @@ -74,7 +74,7 @@ class TagController extends Controller */ public function create(Request $request) { - $subTitle = (string) trans('firefly.new_tag'); + $subTitle = (string)trans('firefly.new_tag'); $subTitleIcon = 'fa-tag'; // location info: @@ -106,7 +106,7 @@ class TagController extends Controller */ public function delete(Tag $tag) { - $subTitle = (string) trans('breadcrumbs.delete_tag', ['tag' => $tag->tag]); + $subTitle = (string)trans('breadcrumbs.delete_tag', ['tag' => $tag->tag]); // put previous url in session $this->rememberPreviousUri('tags.delete.uri'); @@ -126,7 +126,7 @@ class TagController extends Controller $tagName = $tag->tag; $this->repository->destroy($tag); - session()->flash('success', (string) trans('firefly.deleted_tag', ['tag' => $tagName])); + session()->flash('success', (string)trans('firefly.deleted_tag', ['tag' => $tagName])); app('preferences')->mark(); return redirect($this->getPreviousUri('tags.delete.uri')); @@ -141,7 +141,7 @@ class TagController extends Controller */ public function edit(Tag $tag) { - $subTitle = (string) trans('firefly.edit_tag', ['tag' => $tag->tag]); + $subTitle = (string)trans('firefly.edit_tag', ['tag' => $tag->tag]); $subTitleIcon = 'fa-tag'; $location = $this->repository->getLocation($tag); @@ -177,7 +177,7 @@ class TagController extends Controller public function index(TagRepositoryInterface $repository) { // start with oldest tag - $first = session('first', today()) ?? today(); + $first = session('first', today()) ?? today(); $oldestTagDate = null === $repository->oldestTag() ? clone $first : $repository->oldestTag()->date; $newestTagDate = null === $repository->newestTag() ? today() : $repository->newestTag()->date; $oldestTagDate->startOfYear(); @@ -202,20 +202,20 @@ class TagController extends Controller { $tags = $request->get('tags'); if (null === $tags || !is_array($tags)) { - session()->flash('info', (string) trans('firefly.select_tags_to_delete')); + session()->flash('info', (string)trans('firefly.select_tags_to_delete')); return redirect(route('tags.index')); } $count = 0; foreach ($tags as $tagId) { - $tagId = (int) $tagId; + $tagId = (int)$tagId; $tag = $this->repository->findNull($tagId); if (null !== $tag) { $this->repository->destroy($tag); $count++; } } - session()->flash('success', (string) trans_choice('firefly.deleted_x_tags', $count)); + session()->flash('success', (string)trans_choice('firefly.deleted_x_tags', $count)); return redirect(route('tags.index')); } @@ -235,8 +235,8 @@ class TagController extends Controller { // default values: $subTitleIcon = 'fa-tag'; - $page = (int) $request->get('page'); - $pageSize = (int) app('preferences')->get('listPageSize', 50)->data; + $page = (int)$request->get('page'); + $pageSize = (int)app('preferences')->get('listPageSize', 50)->data; $start = $start ?? session('start'); $end = $end ?? session('end'); $location = $this->repository->getLocation($tag); @@ -278,10 +278,10 @@ class TagController extends Controller { // default values: $subTitleIcon = 'fa-tag'; - $page = (int) $request->get('page'); - $pageSize = (int) app('preferences')->get('listPageSize', 50)->data; + $page = (int)$request->get('page'); + $pageSize = (int)app('preferences')->get('listPageSize', 50)->data; $periods = []; - $subTitle = (string) trans('firefly.all_journals_for_tag', ['tag' => $tag->tag]); + $subTitle = (string)trans('firefly.all_journals_for_tag', ['tag' => $tag->tag]); $start = $this->repository->firstUseDate($tag) ?? today(config('app.timezone')); $end = $this->repository->lastUseDate($tag) ?? today(config('app.timezone')); $attachments = $this->repository->getAttachments($tag); @@ -313,7 +313,7 @@ class TagController extends Controller $result = $this->repository->store($data); Log::debug('Data after storage', $result->toArray()); - session()->flash('success', (string) trans('firefly.created_tag', ['tag' => $data['tag']])); + session()->flash('success', (string)trans('firefly.created_tag', ['tag' => $data['tag']])); app('preferences')->mark(); // store attachment(s): @@ -323,16 +323,14 @@ class TagController extends Controller $this->attachmentsHelper->saveAttachmentsForModel($result, $files); } if (null !== $files && auth()->user()->hasRole('demo')) { - session()->flash('info',(string)trans('firefly.no_att_demo_user')); + session()->flash('info', (string)trans('firefly.no_att_demo_user')); } if (count($this->attachmentsHelper->getMessages()->get('attachments')) > 0) { $request->session()->flash('info', $this->attachmentsHelper->getMessages()->get('attachments')); // @codeCoverageIgnore } - - $redirect = redirect($this->getPreviousUri('tags.create.uri')); - if (1 === (int) $request->get('create_another')) { + if (1 === (int)$request->get('create_another')) { // @codeCoverageIgnoreStart session()->put('tags.create.fromStore', true); @@ -356,7 +354,7 @@ class TagController extends Controller $data = $request->collectTagData(); $tag = $this->repository->update($tag, $data); - session()->flash('success', (string) trans('firefly.updated_tag', ['tag' => $data['tag']])); + session()->flash('success', (string)trans('firefly.updated_tag', ['tag' => $data['tag']])); app('preferences')->mark(); // store new attachment(s): @@ -366,16 +364,14 @@ class TagController extends Controller $this->attachmentsHelper->saveAttachmentsForModel($tag, $files); } if (null !== $files && auth()->user()->hasRole('demo')) { - session()->flash('info',(string)trans('firefly.no_att_demo_user')); + session()->flash('info', (string)trans('firefly.no_att_demo_user')); } if (count($this->attachmentsHelper->getMessages()->get('attachments')) > 0) { $request->session()->flash('info', $this->attachmentsHelper->getMessages()->get('attachments')); // @codeCoverageIgnore } - - $redirect = redirect($this->getPreviousUri('tags.edit.uri')); - if (1 === (int) $request->get('return_to_edit')) { + if (1 === (int)$request->get('return_to_edit')) { // @codeCoverageIgnoreStart session()->put('tags.edit.fromUpdate', true); diff --git a/app/Http/Controllers/Transaction/BulkController.php b/app/Http/Controllers/Transaction/BulkController.php index f630f3ec71..18a6ec6e75 100644 --- a/app/Http/Controllers/Transaction/BulkController.php +++ b/app/Http/Controllers/Transaction/BulkController.php @@ -23,7 +23,6 @@ declare(strict_types=1); namespace FireflyIII\Http\Controllers\Transaction; - use FireflyIII\Http\Controllers\Controller; use FireflyIII\Http\Requests\BulkEditJournalRequest; use FireflyIII\Models\TransactionJournal; @@ -41,7 +40,6 @@ class BulkController extends Controller /** @var JournalRepositoryInterface Journals and transactions overview */ private $repository; - /** * BulkController constructor. * @@ -82,12 +80,11 @@ class BulkController extends Controller // get list of budgets: /** @var BudgetRepositoryInterface $budgetRepos */ $budgetRepos = app(BudgetRepositoryInterface::class); - $budgetList = app('expandedform')->makeSelectListWithEmpty($budgetRepos->getActiveBudgets()); + $budgetList = app('expandedform')->makeSelectListWithEmpty($budgetRepos->getActiveBudgets()); return prefixView('transactions.bulk.edit', compact('journals', 'subTitle', 'budgetList')); } - /** * Update all journals. * @@ -142,24 +139,6 @@ class BulkController extends Controller return true; } - /** - * @param TransactionJournal $journal - * @param bool $ignoreUpdate - * @param string $category - * - * @return bool - */ - private function updateJournalCategory(TransactionJournal $journal, bool $ignoreUpdate, string $category): bool - { - if (true === $ignoreUpdate) { - return false; - } - Log::debug(sprintf('Set budget to %s', $category)); - $this->repository->updateCategory($journal, $category); - - return true; - } - /** * @param TransactionJournal $journal * @param string $action @@ -178,6 +157,25 @@ class BulkController extends Controller $new = array_unique(array_merge($tags, $existing)); $this->repository->updateTags($journal, $new); } + + return true; + } + + /** + * @param TransactionJournal $journal + * @param bool $ignoreUpdate + * @param string $category + * + * @return bool + */ + private function updateJournalCategory(TransactionJournal $journal, bool $ignoreUpdate, string $category): bool + { + if (true === $ignoreUpdate) { + return false; + } + Log::debug(sprintf('Set budget to %s', $category)); + $this->repository->updateCategory($journal, $category); + return true; } } diff --git a/app/Http/Controllers/Transaction/ConvertController.php b/app/Http/Controllers/Transaction/ConvertController.php index 6e75b311fb..d7ddfbd8f6 100644 --- a/app/Http/Controllers/Transaction/ConvertController.php +++ b/app/Http/Controllers/Transaction/ConvertController.php @@ -38,9 +38,11 @@ use FireflyIII\Support\Http\Controllers\ModelInformation; use FireflyIII\Support\Http\Controllers\UserNavigation; use FireflyIII\Transformers\TransactionGroupTransformer; use FireflyIII\Validation\AccountValidator; +use Illuminate\Contracts\View\Factory; use Illuminate\Http\RedirectResponse; use Illuminate\Http\Request; use Illuminate\Routing\Redirector; +use Illuminate\View\View; use Log; /** @@ -52,8 +54,8 @@ class ConvertController extends Controller { use ModelInformation, UserNavigation; - private JournalRepositoryInterface $repository; private AccountRepositoryInterface $accountRepository; + private JournalRepositoryInterface $repository; /** * ConvertController constructor. @@ -77,14 +79,13 @@ class ConvertController extends Controller ); } - /** * Show overview of a to be converted transaction. * * @param TransactionType $destinationType * @param TransactionGroup $group * - * @return RedirectResponse|Redirector|\Illuminate\Contracts\View\Factory|\Illuminate\View\View + * @return RedirectResponse|Redirector|Factory|View * @throws Exception * */ @@ -143,6 +144,137 @@ class ConvertController extends Controller ); } + /** + * @return array + */ + private function getValidDepositSources(): array + { + // make repositories + $liabilityTypes = [AccountType::MORTGAGE, AccountType::DEBT, AccountType::CREDITCARD, AccountType::LOAN]; + $accountList = $this->accountRepository + ->getActiveAccountsByType([AccountType::REVENUE, AccountType::CASH, AccountType::LOAN, AccountType::DEBT, AccountType::MORTGAGE]); + $grouped = []; + // group accounts: + /** @var Account $account */ + foreach ($accountList as $account) { + $role = (string)$this->accountRepository->getMetaValue($account, 'account_role'); + $name = $account->name; + if ('' === $role) { + $role = 'no_account_type'; // @codeCoverageIgnore + } + + // maybe it's a liability thing: + if (in_array($account->accountType->type, $liabilityTypes, true)) { + $role = 'l_' . $account->accountType->type; // @codeCoverageIgnore + } + if (AccountType::CASH === $account->accountType->type) { + // @codeCoverageIgnoreStart + $role = 'cash_account'; + $name = sprintf('(%s)', trans('firefly.cash')); + // @codeCoverageIgnoreEnd + } + if (AccountType::REVENUE === $account->accountType->type) { + $role = 'revenue_account'; // @codeCoverageIgnore + } + + $key = (string)trans('firefly.opt_group_' . $role); + $grouped[$key][$account->id] = $name; + } + + return $grouped; + } + + /** + * @return array + */ + private function getValidWithdrawalDests(): array + { + // make repositories + $liabilityTypes = [AccountType::MORTGAGE, AccountType::DEBT, AccountType::CREDITCARD, AccountType::LOAN]; + $accountList = $this->accountRepository->getActiveAccountsByType( + [AccountType::EXPENSE, AccountType::CASH, AccountType::LOAN, AccountType::DEBT, AccountType::MORTGAGE] + ); + $grouped = []; + // group accounts: + /** @var Account $account */ + foreach ($accountList as $account) { + $role = (string)$this->accountRepository->getMetaValue($account, 'account_role'); + $name = $account->name; + if ('' === $role) { + $role = 'no_account_type'; // @codeCoverageIgnore + } + + // maybe it's a liability thing: + if (in_array($account->accountType->type, $liabilityTypes, true)) { + $role = 'l_' . $account->accountType->type; // @codeCoverageIgnore + } + if (AccountType::CASH === $account->accountType->type) { + // @codeCoverageIgnoreStart + $role = 'cash_account'; + $name = sprintf('(%s)', trans('firefly.cash')); + // @codeCoverageIgnoreEnd + } + if (AccountType::EXPENSE === $account->accountType->type) { + $role = 'expense_account'; // @codeCoverageIgnore + } + + $key = (string)trans('firefly.opt_group_' . $role); + $grouped[$key][$account->id] = $name; + } + + return $grouped; + } + + /** + * @return array + * @throws Exception + */ + private function getLiabilities(): array + { + // make repositories + $accountList = $this->accountRepository->getActiveAccountsByType([AccountType::LOAN, AccountType::DEBT, AccountType::MORTGAGE]); + $defaultCurrency = app('amount')->getDefaultCurrency(); + $grouped = []; + // group accounts: + /** @var Account $account */ + foreach ($accountList as $account) { + $balance = app('steam')->balance($account, today()); + $currency = $this->accountRepository->getAccountCurrency($account) ?? $defaultCurrency; + $role = 'l_' . $account->accountType->type; + $key = (string)trans('firefly.opt_group_' . $role); + $grouped[$key][$account->id] = $account->name . ' (' . app('amount')->formatAnything($currency, $balance, false) . ')'; + } + + return $grouped; + } + + /** + * @return array + * @throws Exception + */ + private function getAssetAccounts(): array + { + // make repositories + $accountList = $this->accountRepository->getActiveAccountsByType([AccountType::ASSET]); + $defaultCurrency = app('amount')->getDefaultCurrency(); + $grouped = []; + // group accounts: + /** @var Account $account */ + foreach ($accountList as $account) { + $balance = app('steam')->balance($account, today()); + $currency = $this->accountRepository->getAccountCurrency($account) ?? $defaultCurrency; + $role = (string)$this->accountRepository->getMetaValue($account, 'account_role'); + if ('' === $role) { + $role = 'no_account_type'; // @codeCoverageIgnore + } + + $key = (string)trans('firefly.opt_group_' . $role); + $grouped[$key][$account->id] = $account->name . ' (' . app('amount')->formatAnything($currency, $balance, false) . ')'; + } + + return $grouped; + } + /** * Do the conversion. * @@ -234,135 +366,4 @@ class ConvertController extends Controller return $journal; } - - /** - * @return array - * @throws Exception - */ - private function getAssetAccounts(): array - { - // make repositories - $accountList = $this->accountRepository->getActiveAccountsByType([AccountType::ASSET]); - $defaultCurrency = app('amount')->getDefaultCurrency(); - $grouped = []; - // group accounts: - /** @var Account $account */ - foreach ($accountList as $account) { - $balance = app('steam')->balance($account, today()); - $currency = $this->accountRepository->getAccountCurrency($account) ?? $defaultCurrency; - $role = (string)$this->accountRepository->getMetaValue($account, 'account_role'); - if ('' === $role) { - $role = 'no_account_type'; // @codeCoverageIgnore - } - - $key = (string)trans('firefly.opt_group_' . $role); - $grouped[$key][$account->id] = $account->name . ' (' . app('amount')->formatAnything($currency, $balance, false) . ')'; - } - - return $grouped; - } - - /** - * @return array - * @throws Exception - */ - private function getLiabilities(): array - { - // make repositories - $accountList = $this->accountRepository->getActiveAccountsByType([AccountType::LOAN, AccountType::DEBT, AccountType::MORTGAGE]); - $defaultCurrency = app('amount')->getDefaultCurrency(); - $grouped = []; - // group accounts: - /** @var Account $account */ - foreach ($accountList as $account) { - $balance = app('steam')->balance($account, today()); - $currency = $this->accountRepository->getAccountCurrency($account) ?? $defaultCurrency; - $role = 'l_' . $account->accountType->type; - $key = (string)trans('firefly.opt_group_' . $role); - $grouped[$key][$account->id] = $account->name . ' (' . app('amount')->formatAnything($currency, $balance, false) . ')'; - } - - return $grouped; - } - - /** - * @return array - */ - private function getValidDepositSources(): array - { - // make repositories - $liabilityTypes = [AccountType::MORTGAGE, AccountType::DEBT, AccountType::CREDITCARD, AccountType::LOAN]; - $accountList = $this->accountRepository - ->getActiveAccountsByType([AccountType::REVENUE, AccountType::CASH, AccountType::LOAN, AccountType::DEBT, AccountType::MORTGAGE]); - $grouped = []; - // group accounts: - /** @var Account $account */ - foreach ($accountList as $account) { - $role = (string)$this->accountRepository->getMetaValue($account, 'account_role'); - $name = $account->name; - if ('' === $role) { - $role = 'no_account_type'; // @codeCoverageIgnore - } - - // maybe it's a liability thing: - if (in_array($account->accountType->type, $liabilityTypes, true)) { - $role = 'l_' . $account->accountType->type; // @codeCoverageIgnore - } - if (AccountType::CASH === $account->accountType->type) { - // @codeCoverageIgnoreStart - $role = 'cash_account'; - $name = sprintf('(%s)', trans('firefly.cash')); - // @codeCoverageIgnoreEnd - } - if (AccountType::REVENUE === $account->accountType->type) { - $role = 'revenue_account'; // @codeCoverageIgnore - } - - $key = (string)trans('firefly.opt_group_' . $role); - $grouped[$key][$account->id] = $name; - } - - return $grouped; - } - - /** - * @return array - */ - private function getValidWithdrawalDests(): array - { - // make repositories - $liabilityTypes = [AccountType::MORTGAGE, AccountType::DEBT, AccountType::CREDITCARD, AccountType::LOAN]; - $accountList = $this->accountRepository->getActiveAccountsByType( - [AccountType::EXPENSE, AccountType::CASH, AccountType::LOAN, AccountType::DEBT, AccountType::MORTGAGE] - ); - $grouped = []; - // group accounts: - /** @var Account $account */ - foreach ($accountList as $account) { - $role = (string)$this->accountRepository->getMetaValue($account, 'account_role'); - $name = $account->name; - if ('' === $role) { - $role = 'no_account_type'; // @codeCoverageIgnore - } - - // maybe it's a liability thing: - if (in_array($account->accountType->type, $liabilityTypes, true)) { - $role = 'l_' . $account->accountType->type; // @codeCoverageIgnore - } - if (AccountType::CASH === $account->accountType->type) { - // @codeCoverageIgnoreStart - $role = 'cash_account'; - $name = sprintf('(%s)', trans('firefly.cash')); - // @codeCoverageIgnoreEnd - } - if (AccountType::EXPENSE === $account->accountType->type) { - $role = 'expense_account'; // @codeCoverageIgnore - } - - $key = (string)trans('firefly.opt_group_' . $role); - $grouped[$key][$account->id] = $name; - } - - return $grouped; - } } diff --git a/app/Http/Controllers/Transaction/CreateController.php b/app/Http/Controllers/Transaction/CreateController.php index c8f3c8c6d5..4858a8f454 100644 --- a/app/Http/Controllers/Transaction/CreateController.php +++ b/app/Http/Controllers/Transaction/CreateController.php @@ -49,7 +49,7 @@ class CreateController extends Controller $this->middleware( static 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'); return $next($request); @@ -75,7 +75,7 @@ class CreateController extends Controller app('preferences')->mark(); $title = $newGroup->title ?? $newGroup->transactionJournals->first()->description; - $link = route('transactions.show', [$newGroup->id]); + $link = route('transactions.show', [$newGroup->id]); session()->flash('success', trans('firefly.stored_journal', ['description' => $title])); session()->flash('success_uri', $link); @@ -93,14 +93,14 @@ class CreateController extends Controller { app('preferences')->mark(); - $sourceId = (int) request()->get('source'); - $destinationId = (int) request()->get('destination'); + $sourceId = (int)request()->get('source'); + $destinationId = (int)request()->get('destination'); /** @var AccountRepositoryInterface $repository */ $repository = app(AccountRepositoryInterface::class); $cash = $repository->getCashAccount(); $preFilled = session()->has('preFilled') ? session('preFilled') : []; - $subTitle = (string) trans('breadcrumbs.create_new_transaction'); + $subTitle = (string)trans('breadcrumbs.create_new_transaction'); $subTitleIcon = 'fa-plus'; $optionalFields = app('preferences')->get('transaction_journal_optional_fields', [])->data; $allowedOpposingTypes = config('firefly.allowed_opposing_types'); @@ -113,7 +113,6 @@ class CreateController extends Controller session()->put('preFilled', $preFilled); - return prefixView( 'transactions.create', compact( diff --git a/app/Http/Controllers/Transaction/DeleteController.php b/app/Http/Controllers/Transaction/DeleteController.php index 7846e1f830..0c8ca3785a 100644 --- a/app/Http/Controllers/Transaction/DeleteController.php +++ b/app/Http/Controllers/Transaction/DeleteController.php @@ -23,7 +23,6 @@ declare(strict_types=1); namespace FireflyIII\Http\Controllers\Transaction; - use FireflyIII\Http\Controllers\Controller; use FireflyIII\Models\TransactionGroup; use FireflyIII\Repositories\TransactionGroup\TransactionGroupRepositoryInterface; @@ -40,6 +39,7 @@ use URL; class DeleteController extends Controller { use UserNavigation; + /** @var TransactionGroupRepositoryInterface */ private $repository; @@ -55,7 +55,7 @@ class DeleteController extends Controller // translations: $this->middleware( 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'); $this->repository = app(TransactionGroupRepositoryInterface::class); @@ -85,7 +85,7 @@ class DeleteController extends Controller throw new NotFoundHttpException; } $objectType = strtolower($journal->transaction_type_type ?? $journal->transactionType->type); - $subTitle = (string) trans('firefly.delete_' . $objectType, ['description' => $group->title ?? $journal->description]); + $subTitle = (string)trans('firefly.delete_' . $objectType, ['description' => $group->title ?? $journal->description]); $previous = URL::previous(route('index')); // put previous url in session Log::debug('Will try to remember previous URI'); @@ -112,7 +112,7 @@ class DeleteController extends Controller throw new NotFoundHttpException; } $objectType = strtolower($journal->transaction_type_type ?? $journal->transactionType->type); - session()->flash('success', (string) trans('firefly.deleted_' . strtolower($objectType), ['description' => $group->title ?? $journal->description])); + session()->flash('success', (string)trans('firefly.deleted_' . strtolower($objectType), ['description' => $group->title ?? $journal->description])); $this->repository->destroy($group); @@ -120,6 +120,4 @@ class DeleteController extends Controller return redirect($this->getPreviousUri('transactions.delete.uri')); } - - } diff --git a/app/Http/Controllers/Transaction/EditController.php b/app/Http/Controllers/Transaction/EditController.php index 6dc9475688..4c5657ed80 100644 --- a/app/Http/Controllers/Transaction/EditController.php +++ b/app/Http/Controllers/Transaction/EditController.php @@ -23,12 +23,13 @@ declare(strict_types=1); namespace FireflyIII\Http\Controllers\Transaction; - use FireflyIII\Http\Controllers\Controller; use FireflyIII\Models\TransactionGroup; use FireflyIII\Repositories\Account\AccountRepositoryInterface; use FireflyIII\Support\Http\Controllers\UserNavigation; use Illuminate\Contracts\View\Factory; +use Illuminate\Http\RedirectResponse; +use Illuminate\Routing\Redirector; use Illuminate\View\View; /** @@ -51,7 +52,7 @@ class EditController extends Controller $this->middleware( static 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'); return $next($request); @@ -59,11 +60,10 @@ class EditController extends Controller ); } - /** * @param TransactionGroup $transactionGroup * - * @return Factory|View|\Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector + * @return Factory|View|RedirectResponse|Redirector */ public function edit(TransactionGroup $transactionGroup) { @@ -88,7 +88,6 @@ class EditController extends Controller $search = sprintf('?%s', $parts['query'] ?? ''); $previousUri = str_replace($search, '', $previousUri); - return prefixView( 'transactions.edit', compact( diff --git a/app/Http/Controllers/Transaction/IndexController.php b/app/Http/Controllers/Transaction/IndexController.php index c82cbeedd9..fcec1abf82 100644 --- a/app/Http/Controllers/Transaction/IndexController.php +++ b/app/Http/Controllers/Transaction/IndexController.php @@ -23,7 +23,6 @@ declare(strict_types=1); namespace FireflyIII\Http\Controllers\Transaction; - use Carbon\Carbon; use Exception; use FireflyIII\Helpers\Collector\GroupCollectorInterface; @@ -56,7 +55,7 @@ class IndexController extends Controller $this->middleware( function ($request, $next) { app('view')->share('mainTitleIcon', 'fa-exchange'); - app('view')->share('title', (string) trans('firefly.transactions')); + app('view')->share('title', (string)trans('firefly.transactions')); $this->repository = app(JournalRepositoryInterface::class); @@ -73,15 +72,15 @@ class IndexController extends Controller * @param Carbon|null $start * @param Carbon|null $end * - * @throws Exception * @return Factory|View + * @throws Exception */ public function index(Request $request, string $objectType, Carbon $start = null, Carbon $end = null) { $subTitleIcon = config('firefly.transactionIconsByType.' . $objectType); $types = config('firefly.transactionTypesByType.' . $objectType); - $page = (int) $request->get('page'); - $pageSize = (int) app('preferences')->get('listPageSize', 50)->data; + $page = (int)$request->get('page'); + $pageSize = (int)app('preferences')->get('listPageSize', 50)->data; if (null === $start) { $start = session('start'); $end = session('end'); @@ -96,7 +95,7 @@ class IndexController extends Controller $path = route('transactions.index', [$objectType, $start->format('Y-m-d'), $end->format('Y-m-d')]); $startStr = $start->formatLocalized($this->monthAndDayFormat); $endStr = $end->formatLocalized($this->monthAndDayFormat); - $subTitle = (string) trans(sprintf('firefly.title_%s_between', $objectType), ['start' => $startStr, 'end' => $endStr]); + $subTitle = (string)trans(sprintf('firefly.title_%s_between', $objectType), ['start' => $startStr, 'end' => $endStr]); $firstJournal = $this->repository->firstNull(); $startPeriod = null === $firstJournal ? new Carbon : $firstJournal->date; @@ -126,21 +125,21 @@ class IndexController extends Controller * @param Request $request * @param string $objectType * - * @throws Exception * @return Factory|View + * @throws Exception */ public function indexAll(Request $request, string $objectType) { $subTitleIcon = config('firefly.transactionIconsByType.' . $objectType); $types = config('firefly.transactionTypesByType.' . $objectType); - $page = (int) $request->get('page'); - $pageSize = (int) app('preferences')->get('listPageSize', 50)->data; + $page = (int)$request->get('page'); + $pageSize = (int)app('preferences')->get('listPageSize', 50)->data; $path = route('transactions.index.all', [$objectType]); $first = $this->repository->firstNull(); $start = null === $first ? new Carbon : $first->date; $last = $this->repository->getLast(); $end = $last ? $last->date : today(config('app.timezone')); - $subTitle = (string) trans('firefly.all_' . $objectType); + $subTitle = (string)trans('firefly.all_' . $objectType); /** @var GroupCollectorInterface $collector */ $collector = app(GroupCollectorInterface::class); diff --git a/app/Http/Controllers/Transaction/LinkController.php b/app/Http/Controllers/Transaction/LinkController.php index ee6063405d..b174811293 100644 --- a/app/Http/Controllers/Transaction/LinkController.php +++ b/app/Http/Controllers/Transaction/LinkController.php @@ -40,7 +40,7 @@ use URL; */ class LinkController extends Controller { - private JournalRepositoryInterface $journalRepository; + private JournalRepositoryInterface $journalRepository; private LinkTypeRepositoryInterface $repository; /** @@ -54,7 +54,7 @@ class LinkController extends Controller // some useful repositories: $this->middleware( 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'); $this->journalRepository = app(JournalRepositoryInterface::class); @@ -75,7 +75,7 @@ class LinkController extends Controller public function delete(TransactionJournalLink $link) { $subTitleIcon = 'fa-link'; - $subTitle = (string) trans('breadcrumbs.delete_journal_link'); + $subTitle = (string)trans('breadcrumbs.delete_journal_link'); $this->rememberPreviousUri('journal_links.delete.uri'); return prefixView('transactions.links.delete', compact('link', 'subTitle', 'subTitleIcon')); @@ -92,10 +92,10 @@ class LinkController extends Controller { $this->repository->destroyLink($link); - session()->flash('success', (string) trans('firefly.deleted_link')); + session()->flash('success', (string)trans('firefly.deleted_link')); app('preferences')->mark(); - return redirect((string) session('journal_links.delete.uri')); + return redirect((string)session('journal_links.delete.uri')); } /** @@ -125,7 +125,7 @@ class LinkController extends Controller Log::debug('We are here (store)'); $other = $this->journalRepository->findNull($linkInfo['transaction_journal_id']); if (null === $other) { - session()->flash('error', (string) trans('firefly.invalid_link_selection')); + session()->flash('error', (string)trans('firefly.invalid_link_selection')); return redirect(route('transactions.show', [$journal->transaction_group_id])); } @@ -133,19 +133,19 @@ class LinkController extends Controller $alreadyLinked = $this->repository->findLink($journal, $other); if ($other->id === $journal->id) { - session()->flash('error', (string) trans('firefly.journals_link_to_self')); + session()->flash('error', (string)trans('firefly.journals_link_to_self')); return redirect(route('transactions.show', [$journal->transaction_group_id])); } if ($alreadyLinked) { - session()->flash('error', (string) trans('firefly.journals_error_linked')); + session()->flash('error', (string)trans('firefly.journals_error_linked')); return redirect(route('transactions.show', [$journal->transaction_group_id])); } Log::debug(sprintf('Journal is %d, opposing is %d', $journal->id, $other->id)); $this->repository->storeLink($linkInfo, $other, $journal); - session()->flash('success', (string) trans('firefly.journals_linked')); + session()->flash('success', (string)trans('firefly.journals_linked')); return redirect(route('transactions.show', [$journal->transaction_group_id])); } diff --git a/app/Http/Controllers/Transaction/MassController.php b/app/Http/Controllers/Transaction/MassController.php index 96ecbc05b8..b3a3bb7c28 100644 --- a/app/Http/Controllers/Transaction/MassController.php +++ b/app/Http/Controllers/Transaction/MassController.php @@ -60,7 +60,7 @@ class MassController extends Controller $this->middleware( 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'); $this->repository = app(JournalRepositoryInterface::class); @@ -78,7 +78,7 @@ class MassController extends Controller */ public function delete(array $journals): IlluminateView { - $subTitle = (string) trans('firefly.mass_delete_journals'); + $subTitle = (string)trans('firefly.mass_delete_journals'); // put previous url in session $this->rememberPreviousUri('transactions.mass-delete.uri'); @@ -103,17 +103,15 @@ class MassController extends Controller foreach ($ids as $journalId) { /** @var TransactionJournal $journal */ - $journal = $this->repository->findNull((int) $journalId); - if (null !== $journal && (int) $journalId === $journal->id) { + $journal = $this->repository->findNull((int)$journalId); + if (null !== $journal && (int)$journalId === $journal->id) { $this->repository->destroyJournal($journal); ++$count; } } } - - app('preferences')->mark(); - session()->flash('success', (string) trans_choice('firefly.mass_deleted_transactions_success', $count)); + session()->flash('success', (string)trans_choice('firefly.mass_deleted_transactions_success', $count)); // redirect to previous URL: return redirect($this->getPreviousUri('transactions.mass-delete.uri')); @@ -128,7 +126,7 @@ class MassController extends Controller */ public function edit(array $journals): IlluminateView { - $subTitle = (string) trans('firefly.mass_edit_journals'); + $subTitle = (string)trans('firefly.mass_edit_journals'); /** @var AccountRepositoryInterface $accountRepository */ $accountRepository = app(AccountRepositoryInterface::class); @@ -162,8 +160,8 @@ class MassController extends Controller * * @param MassEditJournalRequest $request * - * @throws FireflyException * @return RedirectResponse|Redirector + * @throws FireflyException */ public function update(MassEditJournalRequest $request) { @@ -175,7 +173,7 @@ class MassController extends Controller $count = 0; /** @var string $journalId */ foreach ($journalIds as $journalId) { - $integer = (int) $journalId; + $integer = (int)$journalId; try { $this->updateJournal($integer, $request); $count++; @@ -185,82 +183,12 @@ class MassController extends Controller } app('preferences')->mark(); - session()->flash('success', (string) trans_choice('firefly.mass_edited_transactions_success', $count )); + session()->flash('success', (string)trans_choice('firefly.mass_edited_transactions_success', $count)); // redirect to previous URL: return redirect($this->getPreviousUri('transactions.mass-edit.uri')); } - /** - * @param MassEditJournalRequest $request - * @param int $journalId - * @param string $string - * - * @return Carbon|null - * @codeCoverageIgnore - */ - private function getDateFromRequest(MassEditJournalRequest $request, int $journalId, string $string): ?Carbon - { - $value = $request->get($string); - if (!is_array($value)) { - return null; - } - if (!isset($value[$journalId])) { - return null; - } - try { - $carbon = Carbon::parse($value[$journalId]); - } catch (InvalidArgumentException $e) { - $e->getMessage(); - - return null; - } - - return $carbon; - } - - /** - * @param MassEditJournalRequest $request - * @param int $journalId - * @param string $string - * - * @return int|null - * @codeCoverageIgnore - */ - private function getIntFromRequest(MassEditJournalRequest $request, int $journalId, string $string): ?int - { - $value = $request->get($string); - if (!is_array($value)) { - return null; - } - if (!isset($value[$journalId])) { - return null; - } - - return (int) $value[$journalId]; - } - - /** - * @param MassEditJournalRequest $request - * @param int $journalId - * @param string $string - * - * @return string|null - * @codeCoverageIgnore - */ - private function getStringFromRequest(MassEditJournalRequest $request, int $journalId, string $string): ?string - { - $value = $request->get($string); - if (!is_array($value)) { - return null; - } - if (!isset($value[$journalId])) { - return null; - } - - return (string) $value[$journalId]; - } - /** * @param int $journalId * @param MassEditJournalRequest $request @@ -297,4 +225,74 @@ class MassController extends Controller // trigger rules event(new UpdatedTransactionGroup($journal->transactionGroup)); } + + /** + * @param MassEditJournalRequest $request + * @param int $journalId + * @param string $string + * + * @return Carbon|null + * @codeCoverageIgnore + */ + private function getDateFromRequest(MassEditJournalRequest $request, int $journalId, string $string): ?Carbon + { + $value = $request->get($string); + if (!is_array($value)) { + return null; + } + if (!isset($value[$journalId])) { + return null; + } + try { + $carbon = Carbon::parse($value[$journalId]); + } catch (InvalidArgumentException $e) { + $e->getMessage(); + + return null; + } + + return $carbon; + } + + /** + * @param MassEditJournalRequest $request + * @param int $journalId + * @param string $string + * + * @return string|null + * @codeCoverageIgnore + */ + private function getStringFromRequest(MassEditJournalRequest $request, int $journalId, string $string): ?string + { + $value = $request->get($string); + if (!is_array($value)) { + return null; + } + if (!isset($value[$journalId])) { + return null; + } + + return (string)$value[$journalId]; + } + + /** + * @param MassEditJournalRequest $request + * @param int $journalId + * @param string $string + * + * @return int|null + * @codeCoverageIgnore + */ + private function getIntFromRequest(MassEditJournalRequest $request, int $journalId, string $string): ?int + { + $value = $request->get($string); + if (!is_array($value)) { + return null; + } + if (!isset($value[$journalId])) { + return null; + } + + return (int)$value[$journalId]; + } } diff --git a/app/Http/Controllers/Transaction/ShowController.php b/app/Http/Controllers/Transaction/ShowController.php index 2afcf381fb..1b5e3901cf 100644 --- a/app/Http/Controllers/Transaction/ShowController.php +++ b/app/Http/Controllers/Transaction/ShowController.php @@ -54,7 +54,7 @@ class ShowController extends Controller function ($request, $next) { $this->repository = app(TransactionGroupRepositoryInterface::class); - app('view')->share('title', (string) trans('firefly.transactions')); + app('view')->share('title', (string)trans('firefly.transactions')); app('view')->share('mainTitleIcon', 'fa-exchange'); return $next($request); @@ -75,8 +75,8 @@ class ShowController extends Controller /** * @param TransactionGroup $transactionGroup * - * @throws FireflyException * @return Factory|View + * @throws FireflyException */ public function show(Request $request, TransactionGroup $transactionGroup) { @@ -88,7 +88,7 @@ class ShowController extends Controller throw new FireflyException('This transaction is broken :(.'); } - $type = (string) trans(sprintf('firefly.%s', $first->transactionType->type)); + $type = (string)trans(sprintf('firefly.%s', $first->transactionType->type)); $title = 1 === $splits ? $first->description : $transactionGroup->title; $subTitle = sprintf('%s: "%s"', $type, $title); @@ -98,7 +98,7 @@ class ShowController extends Controller $groupArray = $transformer->transformObject($transactionGroup); // do some calculations: - $amounts = $this->getAmounts($groupArray); + $amounts = $this->getAmounts($groupArray); $accounts = $this->getAccounts($groupArray); foreach ($groupArray['transactions'] as $index => $transaction) { @@ -161,7 +161,7 @@ class ShowController extends Controller return $amounts; } - + /** * @param array $group * @@ -170,22 +170,23 @@ class ShowController extends Controller private function getAccounts(array $group): array { $accounts = []; - + foreach ($group['transactions'] as $transaction) { - $accounts['source'][] = [ + $accounts['source'][] = [ 'type' => $transaction['source_type'], - 'id' => $transaction['source_id'], + 'id' => $transaction['source_id'], 'name' => $transaction['source_name'], - 'iban' => $transaction['source_iban'] ]; - $accounts['destination'][] = [ + 'iban' => $transaction['source_iban']]; + $accounts['destination'][] = [ 'type' => $transaction['destination_type'], - 'id' => $transaction['destination_id'], + 'id' => $transaction['destination_id'], 'name' => $transaction['destination_name'], - 'iban' => $transaction['destination_iban'] ]; + 'iban' => $transaction['destination_iban']]; } - $accounts['source'] = array_unique($accounts['source'], SORT_REGULAR); + $accounts['source'] = array_unique($accounts['source'], SORT_REGULAR); $accounts['destination'] = array_unique($accounts['destination'], SORT_REGULAR); + return $accounts; } } diff --git a/app/Http/Middleware/Authenticate.php b/app/Http/Middleware/Authenticate.php index d6bbca217c..bfc785315f 100644 --- a/app/Http/Middleware/Authenticate.php +++ b/app/Http/Middleware/Authenticate.php @@ -74,7 +74,6 @@ class Authenticate return $next($request); } - /** * Determine if the user is logged in to any of the given guards. * diff --git a/app/Http/Middleware/InstallationId.php b/app/Http/Middleware/InstallationId.php index 20a8177349..0b70627f28 100644 --- a/app/Http/Middleware/InstallationId.php +++ b/app/Http/Middleware/InstallationId.php @@ -21,7 +21,6 @@ declare(strict_types=1); - namespace FireflyIII\Http\Middleware; use Closure; @@ -41,7 +40,7 @@ class InstallationId * Handle an incoming request. * * @param Request $request - * @param Closure $next + * @param Closure $next * * @return mixed * @@ -50,8 +49,6 @@ class InstallationId */ public function handle($request, Closure $next) { - - $this->generateInstallationId(); return $next($request); diff --git a/app/Http/Middleware/Installer.php b/app/Http/Middleware/Installer.php index ea0b291e23..cb728680f9 100644 --- a/app/Http/Middleware/Installer.php +++ b/app/Http/Middleware/Installer.php @@ -76,8 +76,6 @@ class Installer OAuthKeys::verifyKeysRoutine(); // update scheme version // update firefly version - - return $next($request); } diff --git a/app/Http/Middleware/InterestingMessage.php b/app/Http/Middleware/InterestingMessage.php index 45f0eafab6..c2e729c3e3 100644 --- a/app/Http/Middleware/InterestingMessage.php +++ b/app/Http/Middleware/InterestingMessage.php @@ -23,7 +23,6 @@ declare(strict_types=1); namespace FireflyIII\Http\Middleware; - use Closure; use FireflyIII\Models\TransactionGroup; use FireflyIII\Models\TransactionJournal; @@ -116,7 +115,7 @@ class InterestingMessage session()->flash('success_uri', route('transactions.show', [$transactionGroupId])); session()->flash('success', (string)trans(sprintf('firefly.updated_%s', $type), ['description' => $title])); } - if('no_change' === $message) { + if ('no_change' === $message) { $type = strtolower($journal->transactionType->type); session()->flash('warning_uri', route('transactions.show', [$transactionGroupId])); session()->flash('warning', (string)trans(sprintf('firefly.no_changes_%s', $type), ['description' => $title])); diff --git a/app/Http/Middleware/SecureHeaders.php b/app/Http/Middleware/SecureHeaders.php index f32c81c336..82bf301873 100644 --- a/app/Http/Middleware/SecureHeaders.php +++ b/app/Http/Middleware/SecureHeaders.php @@ -48,9 +48,9 @@ class SecureHeaders $nonce = base64_encode(random_bytes(16)); app('view')->share('JS_NONCE', $nonce); - $response = $next($request); + $response = $next($request); $trackingScriptSrc = $this->getTrackingScriptSource(); - $csp = [ + $csp = [ "default-src 'none'", "object-src 'self'", sprintf("script-src 'unsafe-inline' 'nonce-%1s' %2s", $nonce, $trackingScriptSrc), diff --git a/app/Http/Requests/RecurrenceFormRequest.php b/app/Http/Requests/RecurrenceFormRequest.php index 61f07ec599..75c5d16508 100644 --- a/app/Http/Requests/RecurrenceFormRequest.php +++ b/app/Http/Requests/RecurrenceFormRequest.php @@ -172,8 +172,6 @@ class RecurrenceFormRequest extends FormRequest } return $return; - - } /** @@ -324,8 +322,6 @@ class RecurrenceFormRequest extends FormRequest $destinationId = (int)$data['destination_id']; break; } - - // validate source account. $validSource = $accountValidator->validateSource($sourceId, null, null); diff --git a/app/Jobs/CreateAutoBudgetLimits.php b/app/Jobs/CreateAutoBudgetLimits.php index e0bf7515f4..2d862087d7 100644 --- a/app/Jobs/CreateAutoBudgetLimits.php +++ b/app/Jobs/CreateAutoBudgetLimits.php @@ -57,8 +57,9 @@ class CreateAutoBudgetLimits implements ShouldQueue public function __construct(?Carbon $date) { if (null !== $date) { - $date->startOfDay(); - $this->date = $date; + $newDate = clone $date; + $newDate->startOfDay(); + $this->date = $newDate; Log::debug(sprintf('Created new CreateAutoBudgetLimits("%s")', $this->date->format('Y-m-d'))); } } @@ -293,7 +294,8 @@ class CreateAutoBudgetLimits implements ShouldQueue */ public function setDate(Carbon $date): void { - $date->startOfDay(); - $this->date = $date; + $newDate = clone $date; + $newDate->startOfDay(); + $this->date = $newDate; } } diff --git a/app/Jobs/CreateRecurringTransactions.php b/app/Jobs/CreateRecurringTransactions.php index c1360d1633..37e5471b77 100644 --- a/app/Jobs/CreateRecurringTransactions.php +++ b/app/Jobs/CreateRecurringTransactions.php @@ -69,8 +69,14 @@ class CreateRecurringTransactions implements ShouldQueue public function __construct(?Carbon $date) { if (null !== $date) { - $date->startOfDay(); - $this->date = $date; + $newDate = clone $date; + $newDate->startOfDay(); + $this->date = $newDate; + } + if (null === $date) { + $newDate = new Carbon; + $newDate->startOfDay(); + $this->date = $newDate; } $this->repository = app(RecurringRepositoryInterface::class); $this->journalRepository = app(JournalRepositoryInterface::class); @@ -168,8 +174,6 @@ class CreateRecurringTransactions implements ShouldQueue return false; } - - // is no longer running if ($this->repeatUntilHasPassed($recurrence)) { Log::info( @@ -457,8 +461,9 @@ class CreateRecurringTransactions implements ShouldQueue */ public function setDate(Carbon $date): void { - $date->startOfDay(); - $this->date = $date; + $newDate = clone $date; + $newDate->startOfDay(); + $this->date = $newDate; } /** diff --git a/app/Jobs/SubmitTelemetryData.php b/app/Jobs/SubmitTelemetryData.php index c29623bdae..7054d68a17 100644 --- a/app/Jobs/SubmitTelemetryData.php +++ b/app/Jobs/SubmitTelemetryData.php @@ -24,7 +24,6 @@ declare(strict_types=1); namespace FireflyIII\Jobs; - use Carbon\Carbon; use Exception; use FireflyIII\Exceptions\FireflyException; diff --git a/app/Mail/AccessTokenCreatedMail.php b/app/Mail/AccessTokenCreatedMail.php index 848dfbac58..5ffd04bacc 100644 --- a/app/Mail/AccessTokenCreatedMail.php +++ b/app/Mail/AccessTokenCreatedMail.php @@ -23,7 +23,6 @@ declare(strict_types=1); namespace FireflyIII\Mail; - use Illuminate\Bus\Queueable; use Illuminate\Mail\Mailable; use Illuminate\Queue\SerializesModels; diff --git a/app/Mail/NewIPAddressWarningMail.php b/app/Mail/NewIPAddressWarningMail.php index 855b97076b..5bb38a20cf 100644 --- a/app/Mail/NewIPAddressWarningMail.php +++ b/app/Mail/NewIPAddressWarningMail.php @@ -21,29 +21,9 @@ */ declare(strict_types=1); -/* - * NewIPAddressWarningMail.php - * Copyright (c) 2020 james@firefly-iii.org - * - * This file is part of Firefly III (https://github.com/firefly-iii). - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - */ namespace FireflyIII\Mail; - use Illuminate\Bus\Queueable; use Illuminate\Mail\Mailable; use Illuminate\Queue\SerializesModels; diff --git a/app/Mail/OAuthTokenCreatedMail.php b/app/Mail/OAuthTokenCreatedMail.php index 2e2e8e2d7e..b999af725f 100644 --- a/app/Mail/OAuthTokenCreatedMail.php +++ b/app/Mail/OAuthTokenCreatedMail.php @@ -28,7 +28,6 @@ use Illuminate\Mail\Mailable; use Illuminate\Queue\SerializesModels; use Laravel\Passport\Client; - /** * Class OAuthTokenCreatedMail * diff --git a/app/Models/Account.php b/app/Models/Account.php index 16e1afe35b..5714a23d50 100644 --- a/app/Models/Account.php +++ b/app/Models/Account.php @@ -39,36 +39,36 @@ use Symfony\Component\HttpKernel\Exception\NotFoundHttpException; /** * Class Account * - * @property int $id - * @property \Illuminate\Support\Carbon|null $created_at - * @property \Illuminate\Support\Carbon|null $updated_at - * @property \Illuminate\Support\Carbon|null $deleted_at - * @property int $user_id - * @property int $account_type_id - * @property string $name - * @property string|null $virtual_balance - * @property string|null $iban - * @property bool $active - * @property bool $encrypted - * @property int $order + * @property int $id + * @property \Illuminate\Support\Carbon|null $created_at + * @property \Illuminate\Support\Carbon|null $updated_at + * @property \Illuminate\Support\Carbon|null $deleted_at + * @property int $user_id + * @property int $account_type_id + * @property string $name + * @property string|null $virtual_balance + * @property string|null $iban + * @property bool $active + * @property bool $encrypted + * @property int $order * @property-read \Illuminate\Database\Eloquent\Collection|\FireflyIII\Models\AccountMeta[] $accountMeta - * @property-read int|null $account_meta_count - * @property-read \FireflyIII\Models\AccountType $accountType - * @property-read \Illuminate\Database\Eloquent\Collection|\FireflyIII\Models\Attachment[] $attachments - * @property-read int|null $attachments_count - * @property-read string $account_number - * @property-read string $edit_name - * @property-read \Illuminate\Database\Eloquent\Collection|\FireflyIII\Models\Location[] $locations - * @property-read int|null $locations_count - * @property-read \Illuminate\Database\Eloquent\Collection|\FireflyIII\Models\Note[] $notes - * @property-read int|null $notes_count + * @property-read int|null $account_meta_count + * @property-read \FireflyIII\Models\AccountType $accountType + * @property-read \Illuminate\Database\Eloquent\Collection|\FireflyIII\Models\Attachment[] $attachments + * @property-read int|null $attachments_count + * @property-read string $account_number + * @property-read string $edit_name + * @property-read \Illuminate\Database\Eloquent\Collection|\FireflyIII\Models\Location[] $locations + * @property-read int|null $locations_count + * @property-read \Illuminate\Database\Eloquent\Collection|\FireflyIII\Models\Note[] $notes + * @property-read int|null $notes_count * @property-read \Illuminate\Database\Eloquent\Collection|\FireflyIII\Models\ObjectGroup[] $objectGroups - * @property-read int|null $object_groups_count - * @property-read \Illuminate\Database\Eloquent\Collection|\FireflyIII\Models\PiggyBank[] $piggyBanks - * @property-read int|null $piggy_banks_count + * @property-read int|null $object_groups_count + * @property-read \Illuminate\Database\Eloquent\Collection|\FireflyIII\Models\PiggyBank[] $piggyBanks + * @property-read int|null $piggy_banks_count * @property-read \Illuminate\Database\Eloquent\Collection|\FireflyIII\Models\Transaction[] $transactions - * @property-read int|null $transactions_count - * @property-read User $user + * @property-read int|null $transactions_count + * @property-read User $user * @method static EloquentBuilder|Account accountTypeIn($types) * @method static EloquentBuilder|Account newModelQuery() * @method static EloquentBuilder|Account newQuery() @@ -120,13 +120,13 @@ class Account extends Model * * @param string $value * - * @throws NotFoundHttpException * @return Account + * @throws NotFoundHttpException */ public static function routeBinder(string $value): Account { if (auth()->check()) { - $accountId = (int) $value; + $accountId = (int)$value; /** @var User $user */ $user = auth()->user(); /** @var Account $account */ @@ -255,7 +255,7 @@ class Account extends Model public function setVirtualBalanceAttribute($value): void { $value = (string)$value; - if('' === $value) { + if ('' === $value) { $value = null; } $this->attributes['virtual_balance'] = $value; diff --git a/app/Models/AccountType.php b/app/Models/AccountType.php index da83308d88..dc9f1281a6 100644 --- a/app/Models/AccountType.php +++ b/app/Models/AccountType.php @@ -28,8 +28,6 @@ use Illuminate\Database\Eloquent\Collection; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Relations\HasMany; use Illuminate\Support\Carbon; - - /** * FireflyIII\Models\AccountType * diff --git a/app/Models/Bill.php b/app/Models/Bill.php index ee6c10be43..46a48a8b73 100644 --- a/app/Models/Bill.php +++ b/app/Models/Bill.php @@ -22,51 +22,51 @@ declare(strict_types=1); namespace FireflyIII\Models; -use Carbon\Carbon; use Eloquent; use FireflyIII\User; +use Illuminate\Database\Eloquent\Collection; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Relations\BelongsTo; use Illuminate\Database\Eloquent\Relations\HasMany; use Illuminate\Database\Eloquent\Relations\MorphMany; use Illuminate\Database\Eloquent\SoftDeletes; use Illuminate\Database\Query\Builder; -use Illuminate\Support\Collection; +use Illuminate\Support\Carbon; use Symfony\Component\HttpKernel\Exception\NotFoundHttpException; /** * FireflyIII\Models\Bill * - * @property int $id - * @property \Illuminate\Support\Carbon|null $created_at - * @property \Illuminate\Support\Carbon|null $updated_at - * @property \Illuminate\Support\Carbon|null $deleted_at - * @property int $user_id - * @property int|null $transaction_currency_id - * @property string $name - * @property string $match - * @property string $amount_min - * @property string $amount_max - * @property \Illuminate\Support\Carbon $date - * @property string|null $end_date - * @property string|null $extension_date - * @property string $repeat_freq - * @property int $skip - * @property bool $automatch - * @property bool $active - * @property bool $name_encrypted - * @property bool $match_encrypted - * @property int $order - * @property-read \Illuminate\Database\Eloquent\Collection|\FireflyIII\Models\Attachment[] $attachments - * @property-read int|null $attachments_count - * @property-read \Illuminate\Database\Eloquent\Collection|\FireflyIII\Models\Note[] $notes - * @property-read int|null $notes_count - * @property-read \Illuminate\Database\Eloquent\Collection|\FireflyIII\Models\ObjectGroup[] $objectGroups - * @property-read int|null $object_groups_count - * @property-read \FireflyIII\Models\TransactionCurrency|null $transactionCurrency - * @property-read \Illuminate\Database\Eloquent\Collection|\FireflyIII\Models\TransactionJournal[] $transactionJournals - * @property-read int|null $transaction_journals_count - * @property-read User $user + * @property int $id + * @property Carbon|null $created_at + * @property Carbon|null $updated_at + * @property Carbon|null $deleted_at + * @property int $user_id + * @property int|null $transaction_currency_id + * @property string $name + * @property string $match + * @property string $amount_min + * @property string $amount_max + * @property Carbon $date + * @property string|null $end_date + * @property string|null $extension_date + * @property string $repeat_freq + * @property int $skip + * @property bool $automatch + * @property bool $active + * @property bool $name_encrypted + * @property bool $match_encrypted + * @property int $order + * @property-read Collection|Attachment[] $attachments + * @property-read int|null $attachments_count + * @property-read Collection|Note[] $notes + * @property-read int|null $notes_count + * @property-read Collection|ObjectGroup[] $objectGroups + * @property-read int|null $object_groups_count + * @property-read TransactionCurrency|null $transactionCurrency + * @property-read Collection|TransactionJournal[] $transactionJournals + * @property-read int|null $transaction_journals_count + * @property-read User $user * @method static \Illuminate\Database\Eloquent\Builder|Bill newModelQuery() * @method static \Illuminate\Database\Eloquent\Builder|Bill newQuery() * @method static Builder|Bill onlyTrashed() diff --git a/app/Models/Budget.php b/app/Models/Budget.php index d018ebfbfc..d5a48c2f5a 100644 --- a/app/Models/Budget.php +++ b/app/Models/Budget.php @@ -22,9 +22,9 @@ declare(strict_types=1); namespace FireflyIII\Models; -use Carbon\Carbon; use Eloquent; use FireflyIII\User; +use Illuminate\Database\Eloquent\Collection; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Relations\BelongsTo; use Illuminate\Database\Eloquent\Relations\BelongsToMany; @@ -32,32 +32,32 @@ use Illuminate\Database\Eloquent\Relations\HasMany; use Illuminate\Database\Eloquent\Relations\MorphMany; use Illuminate\Database\Eloquent\SoftDeletes; use Illuminate\Database\Query\Builder; -use Illuminate\Support\Collection; +use Illuminate\Support\Carbon; use Symfony\Component\HttpKernel\Exception\NotFoundHttpException; /** * FireflyIII\Models\Budget * - * @property int $id - * @property \Illuminate\Support\Carbon|null $created_at - * @property \Illuminate\Support\Carbon|null $updated_at - * @property \Illuminate\Support\Carbon|null $deleted_at - * @property int $user_id - * @property string $name - * @property bool $active - * @property bool $encrypted - * @property int $order - * @property-read \Illuminate\Database\Eloquent\Collection|\FireflyIII\Models\Attachment[] $attachments - * @property-read int|null $attachments_count - * @property-read \Illuminate\Database\Eloquent\Collection|\FireflyIII\Models\AutoBudget[] $autoBudgets - * @property-read int|null $auto_budgets_count - * @property-read \Illuminate\Database\Eloquent\Collection|\FireflyIII\Models\BudgetLimit[] $budgetlimits - * @property-read int|null $budgetlimits_count - * @property-read \Illuminate\Database\Eloquent\Collection|\FireflyIII\Models\TransactionJournal[] $transactionJournals - * @property-read int|null $transaction_journals_count - * @property-read \Illuminate\Database\Eloquent\Collection|\FireflyIII\Models\Transaction[] $transactions - * @property-read int|null $transactions_count - * @property-read User $user + * @property int $id + * @property Carbon|null $created_at + * @property Carbon|null $updated_at + * @property Carbon|null $deleted_at + * @property int $user_id + * @property string $name + * @property bool $active + * @property bool $encrypted + * @property int $order + * @property-read Collection|Attachment[] $attachments + * @property-read int|null $attachments_count + * @property-read Collection|AutoBudget[] $autoBudgets + * @property-read int|null $auto_budgets_count + * @property-read Collection|BudgetLimit[] $budgetlimits + * @property-read int|null $budgetlimits_count + * @property-read Collection|TransactionJournal[] $transactionJournals + * @property-read int|null $transaction_journals_count + * @property-read Collection|Transaction[] $transactions + * @property-read int|null $transactions_count + * @property-read User $user * @method static \Illuminate\Database\Eloquent\Builder|Budget newModelQuery() * @method static \Illuminate\Database\Eloquent\Builder|Budget newQuery() * @method static Builder|Budget onlyTrashed() @@ -102,13 +102,13 @@ class Budget extends Model * * @param string $value * - * @throws NotFoundHttpException * @return Budget + * @throws NotFoundHttpException */ public static function routeBinder(string $value): Budget { if (auth()->check()) { - $budgetId = (int) $value; + $budgetId = (int)$value; /** @var User $user */ $user = auth()->user(); /** @var Budget $budget */ @@ -120,6 +120,15 @@ class Budget extends Model throw new NotFoundHttpException; } + /** + * @codeCoverageIgnore + * @return MorphMany + */ + public function attachments(): MorphMany + { + return $this->morphMany(Attachment::class, 'attachable'); + } + /** * @codeCoverageIgnore * @return HasMany @@ -138,16 +147,6 @@ class Budget extends Model return $this->hasMany(BudgetLimit::class); } - - /** - * @codeCoverageIgnore - * @return MorphMany - */ - public function attachments(): MorphMany - { - return $this->morphMany(Attachment::class, 'attachable'); - } - /** * @codeCoverageIgnore * @return BelongsToMany diff --git a/app/Models/Category.php b/app/Models/Category.php index b2d6491d29..36d5dcb30d 100644 --- a/app/Models/Category.php +++ b/app/Models/Category.php @@ -121,8 +121,6 @@ class Category extends Model { return $this->belongsToMany(TransactionJournal::class, 'category_transaction_journal', 'category_id'); } - - /** * @codeCoverageIgnore * @return MorphMany diff --git a/app/Models/LinkType.php b/app/Models/LinkType.php index 71716dc57d..ff50e87374 100644 --- a/app/Models/LinkType.php +++ b/app/Models/LinkType.php @@ -30,8 +30,6 @@ use Illuminate\Database\Eloquent\Relations\HasMany; use Illuminate\Database\Eloquent\SoftDeletes; use Illuminate\Database\Query\Builder; use Symfony\Component\HttpKernel\Exception\NotFoundHttpException; - - /** * FireflyIII\Models\LinkType * diff --git a/app/Models/Location.php b/app/Models/Location.php index bf6544f514..c8846cf06e 100644 --- a/app/Models/Location.php +++ b/app/Models/Location.php @@ -23,8 +23,6 @@ declare(strict_types=1); namespace FireflyIII\Models; - - use Eloquent; use Illuminate\Database\Eloquent\Builder; use Illuminate\Database\Eloquent\Collection; @@ -32,8 +30,6 @@ use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Relations\MorphMany; use Illuminate\Database\Eloquent\Relations\MorphTo; use Illuminate\Support\Carbon; - - /** * FireflyIII\Models\Location * diff --git a/app/Models/Note.php b/app/Models/Note.php index f5543f5d11..2090715d3b 100644 --- a/app/Models/Note.php +++ b/app/Models/Note.php @@ -22,26 +22,25 @@ declare(strict_types=1); namespace FireflyIII\Models; -use Carbon\Carbon; use Eloquent; -use Illuminate\Database\Eloquent\Collection; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Relations\MorphTo; use Illuminate\Database\Eloquent\SoftDeletes; use Illuminate\Database\Query\Builder; +use Illuminate\Support\Carbon; /** * FireflyIII\Models\Note * - * @property int $id - * @property \Illuminate\Support\Carbon|null $created_at - * @property \Illuminate\Support\Carbon|null $updated_at - * @property \Illuminate\Support\Carbon|null $deleted_at - * @property int $noteable_id - * @property string $noteable_type - * @property string|null $title - * @property string|null $text - * @property-read Model|\Eloquent $noteable + * @property int $id + * @property Carbon|null $created_at + * @property Carbon|null $updated_at + * @property Carbon|null $deleted_at + * @property int $noteable_id + * @property string $noteable_type + * @property string|null $title + * @property string|null $text + * @property-read Model|Eloquent $noteable * @method static \Illuminate\Database\Eloquent\Builder|Note newModelQuery() * @method static \Illuminate\Database\Eloquent\Builder|Note newQuery() * @method static Builder|Note onlyTrashed() @@ -85,6 +84,4 @@ class Note extends Model { return $this->morphTo(); } - - } diff --git a/app/Models/ObjectGroup.php b/app/Models/ObjectGroup.php index 9f11cc4268..0ec8c58207 100644 --- a/app/Models/ObjectGroup.php +++ b/app/Models/ObjectGroup.php @@ -23,14 +23,10 @@ declare(strict_types=1); namespace FireflyIII\Models; - - use FireflyIII\User; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Relations\BelongsTo; use Symfony\Component\HttpKernel\Exception\NotFoundHttpException; - - /** * FireflyIII\Models\ObjectGroup * diff --git a/app/Models/PiggyBank.php b/app/Models/PiggyBank.php index 63e011f844..419be6f8b2 100644 --- a/app/Models/PiggyBank.php +++ b/app/Models/PiggyBank.php @@ -32,8 +32,6 @@ use Illuminate\Database\Eloquent\Relations\MorphMany; use Illuminate\Database\Eloquent\SoftDeletes; use Illuminate\Database\Query\Builder; use Symfony\Component\HttpKernel\Exception\NotFoundHttpException; - - /** * FireflyIII\Models\PiggyBank * diff --git a/app/Models/PiggyBankEvent.php b/app/Models/PiggyBankEvent.php index 12d6b5f9e3..666049215d 100644 --- a/app/Models/PiggyBankEvent.php +++ b/app/Models/PiggyBankEvent.php @@ -27,8 +27,6 @@ use Eloquent; use Illuminate\Database\Eloquent\Builder; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Relations\BelongsTo; - - /** * FireflyIII\Models\PiggyBankEvent * diff --git a/app/Models/Recurrence.php b/app/Models/Recurrence.php index 2701636f7f..5c77df9618 100644 --- a/app/Models/Recurrence.php +++ b/app/Models/Recurrence.php @@ -22,8 +22,6 @@ declare(strict_types=1); namespace FireflyIII\Models; - - use Eloquent; use FireflyIII\User; use Illuminate\Database\Eloquent\Collection; diff --git a/app/Models/RecurrenceMeta.php b/app/Models/RecurrenceMeta.php index e2eb6c773d..43af735266 100644 --- a/app/Models/RecurrenceMeta.php +++ b/app/Models/RecurrenceMeta.php @@ -22,8 +22,6 @@ declare(strict_types=1); namespace FireflyIII\Models; - - use Eloquent; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Relations\BelongsTo; diff --git a/app/Models/RecurrenceRepetition.php b/app/Models/RecurrenceRepetition.php index 6a79933e9b..b5aac5c1be 100644 --- a/app/Models/RecurrenceRepetition.php +++ b/app/Models/RecurrenceRepetition.php @@ -22,8 +22,6 @@ declare(strict_types=1); namespace FireflyIII\Models; - - use Carbon\Carbon; use Eloquent; use Illuminate\Database\Eloquent\Model; diff --git a/app/Models/RecurrenceTransaction.php b/app/Models/RecurrenceTransaction.php index 137d59ef73..832f36c90c 100644 --- a/app/Models/RecurrenceTransaction.php +++ b/app/Models/RecurrenceTransaction.php @@ -22,8 +22,6 @@ declare(strict_types=1); namespace FireflyIII\Models; - - use Eloquent; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Relations\BelongsTo; diff --git a/app/Models/RecurrenceTransactionMeta.php b/app/Models/RecurrenceTransactionMeta.php index 8db83e6914..f2030342c6 100644 --- a/app/Models/RecurrenceTransactionMeta.php +++ b/app/Models/RecurrenceTransactionMeta.php @@ -22,8 +22,6 @@ declare(strict_types=1); namespace FireflyIII\Models; - - use Eloquent; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Relations\BelongsTo; diff --git a/app/Models/Role.php b/app/Models/Role.php index 5d31825cb6..1462fb2e30 100644 --- a/app/Models/Role.php +++ b/app/Models/Role.php @@ -33,14 +33,14 @@ use Illuminate\Support\Carbon; /** * FireflyIII\Models\Role * - * @property int $id - * @property Carbon|null $created_at - * @property Carbon|null $updated_at - * @property string $name - * @property string|null $display_name - * @property string|null $description + * @property int $id + * @property Carbon|null $created_at + * @property Carbon|null $updated_at + * @property string $name + * @property string|null $display_name + * @property string|null $description * @property-read Collection|User[] $users - * @property-read int|null $users_count + * @property-read int|null $users_count * @method static Builder|Role newModelQuery() * @method static Builder|Role newQuery() * @method static Builder|Role query() diff --git a/app/Models/Rule.php b/app/Models/Rule.php index ba8cb32306..5a15335d6f 100644 --- a/app/Models/Rule.php +++ b/app/Models/Rule.php @@ -22,38 +22,38 @@ declare(strict_types=1); namespace FireflyIII\Models; -use Carbon\Carbon; use Eloquent; use FireflyIII\User; +use Illuminate\Database\Eloquent\Collection; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Relations\BelongsTo; use Illuminate\Database\Eloquent\Relations\HasMany; use Illuminate\Database\Eloquent\SoftDeletes; use Illuminate\Database\Query\Builder; -use Illuminate\Support\Collection; +use Illuminate\Support\Carbon; use Symfony\Component\HttpKernel\Exception\NotFoundHttpException; /** * FireflyIII\Models\Rule * - * @property int $id - * @property \Illuminate\Support\Carbon|null $created_at - * @property \Illuminate\Support\Carbon|null $updated_at - * @property \Illuminate\Support\Carbon|null $deleted_at - * @property int $user_id - * @property int $rule_group_id - * @property string $title - * @property string|null $description - * @property int $order - * @property bool $active - * @property bool $stop_processing - * @property bool $strict - * @property-read \Illuminate\Database\Eloquent\Collection|\FireflyIII\Models\RuleAction[] $ruleActions - * @property-read int|null $rule_actions_count - * @property-read \FireflyIII\Models\RuleGroup $ruleGroup - * @property-read \Illuminate\Database\Eloquent\Collection|\FireflyIII\Models\RuleTrigger[] $ruleTriggers - * @property-read int|null $rule_triggers_count - * @property-read User $user + * @property int $id + * @property Carbon|null $created_at + * @property Carbon|null $updated_at + * @property Carbon|null $deleted_at + * @property int $user_id + * @property int $rule_group_id + * @property string $title + * @property string|null $description + * @property int $order + * @property bool $active + * @property bool $stop_processing + * @property bool $strict + * @property-read Collection|RuleAction[] $ruleActions + * @property-read int|null $rule_actions_count + * @property-read RuleGroup $ruleGroup + * @property-read Collection|RuleTrigger[] $ruleTriggers + * @property-read int|null $rule_triggers_count + * @property-read User $user * @method static \Illuminate\Database\Eloquent\Builder|Rule newModelQuery() * @method static \Illuminate\Database\Eloquent\Builder|Rule newQuery() * @method static Builder|Rule onlyTrashed() @@ -102,13 +102,13 @@ class Rule extends Model * * @param string $value * - * @throws NotFoundHttpException * @return Rule + * @throws NotFoundHttpException */ public static function routeBinder(string $value): Rule { if (auth()->check()) { - $ruleId = (int) $value; + $ruleId = (int)$value; /** @var User $user */ $user = auth()->user(); /** @var Rule $rule */ diff --git a/app/Models/RuleGroup.php b/app/Models/RuleGroup.php index 6bc281100d..3a02993817 100644 --- a/app/Models/RuleGroup.php +++ b/app/Models/RuleGroup.php @@ -32,8 +32,6 @@ use Illuminate\Database\Eloquent\SoftDeletes; use Illuminate\Database\Query\Builder; use Illuminate\Support\Collection; use Symfony\Component\HttpKernel\Exception\NotFoundHttpException; - - /** * FireflyIII\Models\RuleGroup * diff --git a/app/Models/Tag.php b/app/Models/Tag.php index fda812145d..7546cfd5ab 100644 --- a/app/Models/Tag.php +++ b/app/Models/Tag.php @@ -37,14 +37,14 @@ use Symfony\Component\HttpKernel\Exception\NotFoundHttpException; /** * FireflyIII\Models\Tag * - * @property int $id - * @property Carbon|null $created_at - * @property Carbon|null $updated_at - * @property Carbon|null $deleted_at + * @property int $id + * @property Carbon|null $created_at + * @property Carbon|null $updated_at + * @property Carbon|null $deleted_at * @property int $user_id * @property string $tag * @property string $tagMode - * @property Carbon|null $date + * @property Carbon|null $date * @property string|null $description * @property float|null $latitude * @property float|null $longitude diff --git a/app/Models/Telemetry.php b/app/Models/Telemetry.php index b08e5ee52d..e9ebd9b239 100644 --- a/app/Models/Telemetry.php +++ b/app/Models/Telemetry.php @@ -23,8 +23,6 @@ declare(strict_types=1); namespace FireflyIII\Models; - - use Eloquent; use Illuminate\Database\Eloquent\Builder; use Illuminate\Database\Eloquent\Model; diff --git a/app/Models/TransactionCurrency.php b/app/Models/TransactionCurrency.php index b1ba081fea..96a46a5609 100644 --- a/app/Models/TransactionCurrency.php +++ b/app/Models/TransactionCurrency.php @@ -30,8 +30,6 @@ use Illuminate\Database\Eloquent\Relations\HasMany; use Illuminate\Database\Eloquent\SoftDeletes; use Illuminate\Database\Query\Builder; use Symfony\Component\HttpKernel\Exception\NotFoundHttpException; - - /** * FireflyIII\Models\TransactionCurrency * diff --git a/app/Models/TransactionGroup.php b/app/Models/TransactionGroup.php index 3564d998db..9fb3210c50 100644 --- a/app/Models/TransactionGroup.php +++ b/app/Models/TransactionGroup.php @@ -32,8 +32,6 @@ use Illuminate\Database\Eloquent\SoftDeletes; use Illuminate\Database\Query\Builder; use Illuminate\Support\Carbon; use Symfony\Component\HttpKernel\Exception\NotFoundHttpException; - - /** * FireflyIII\Models\TransactionGroup * diff --git a/app/Models/TransactionJournal.php b/app/Models/TransactionJournal.php index 5bbdd544cf..922caf3382 100644 --- a/app/Models/TransactionJournal.php +++ b/app/Models/TransactionJournal.php @@ -37,8 +37,6 @@ use Illuminate\Database\Eloquent\Relations\MorphMany; use Illuminate\Database\Eloquent\SoftDeletes; use Illuminate\Support\Collection; use Symfony\Component\HttpKernel\Exception\NotFoundHttpException; - - /** * FireflyIII\Models\TransactionJournal * diff --git a/app/Models/Webhook.php b/app/Models/Webhook.php index 18705d949d..43fc74d58c 100644 --- a/app/Models/Webhook.php +++ b/app/Models/Webhook.php @@ -1,5 +1,4 @@ . - */ namespace FireflyIII\Models; - - use FireflyIII\User; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Relations\BelongsTo; diff --git a/app/Models/WebhookAttempt.php b/app/Models/WebhookAttempt.php index 2fc8420963..b138bdd80d 100644 --- a/app/Models/WebhookAttempt.php +++ b/app/Models/WebhookAttempt.php @@ -1,5 +1,4 @@ . - */ namespace FireflyIII\Models; - - use FireflyIII\User; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Relations\BelongsTo; diff --git a/app/Models/WebhookMessage.php b/app/Models/WebhookMessage.php index a05653866c..be3bc14a6c 100644 --- a/app/Models/WebhookMessage.php +++ b/app/Models/WebhookMessage.php @@ -1,5 +1,4 @@ . - */ namespace FireflyIII\Models; - - use FireflyIII\User; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Relations\BelongsTo; @@ -137,6 +115,4 @@ class WebhookMessage extends Model { return $this->hasMany(WebhookAttempt::class); } - - } diff --git a/app/Providers/AuthServiceProvider.php b/app/Providers/AuthServiceProvider.php index b7fe1c1fed..1876d368fc 100644 --- a/app/Providers/AuthServiceProvider.php +++ b/app/Providers/AuthServiceProvider.php @@ -64,11 +64,7 @@ class AuthServiceProvider extends ServiceProvider ); $this->registerPolicies(); - - Passport::routes(); Passport::tokensExpireIn(now()->addDays(14)); - - } } diff --git a/app/Providers/EventServiceProvider.php b/app/Providers/EventServiceProvider.php index 0a3d376d66..a31b381d4e 100644 --- a/app/Providers/EventServiceProvider.php +++ b/app/Providers/EventServiceProvider.php @@ -177,8 +177,6 @@ class EventServiceProvider extends ServiceProvider Session::flash('error', 'Possible email error: ' . $e->getMessage()); } Log::debug('If no error above this line, message was sent.'); - - } ); } diff --git a/app/Providers/FireflyServiceProvider.php b/app/Providers/FireflyServiceProvider.php index 2707e8f906..cfc57fe7e9 100644 --- a/app/Providers/FireflyServiceProvider.php +++ b/app/Providers/FireflyServiceProvider.php @@ -176,15 +176,11 @@ class FireflyServiceProvider extends ServiceProvider // chart generator: $this->app->bind(GeneratorInterface::class, ChartJsGenerator::class); - - // other generators $this->app->bind(UserRepositoryInterface::class, UserRepository::class); $this->app->bind(TransactionTypeRepositoryInterface::class, TransactionTypeRepository::class); $this->app->bind(AttachmentHelperInterface::class, AttachmentHelper::class); - - $this->app->bind( ObjectGroupRepositoryInterface::class, static function (Application $app) { diff --git a/app/Providers/RouteServiceProvider.php b/app/Providers/RouteServiceProvider.php index 92a4e98af2..6658a402b7 100644 --- a/app/Providers/RouteServiceProvider.php +++ b/app/Providers/RouteServiceProvider.php @@ -37,8 +37,6 @@ class RouteServiceProvider extends ServiceProvider * @var string */ public const HOME = '/'; - - /** * This namespace is applied to your controller routes. * diff --git a/app/Repositories/Account/AccountRepository.php b/app/Repositories/Account/AccountRepository.php index 0e0529f081..71dbda25c4 100644 --- a/app/Repositories/Account/AccountRepository.php +++ b/app/Repositories/Account/AccountRepository.php @@ -630,6 +630,10 @@ class AccountRepository implements AccountRepositoryInterface $list = $this->getAccountsByType($set); $index = 1; foreach ($list as $account) { + if (false === $account->active) { + $account->order = 0; + continue; + } if ($index !== (int)$account->order) { Log::debug(sprintf('Account #%d ("%s"): order should %d be but is %d.', $account->id, $account->name, $index, $account->order)); $account->order = $index; diff --git a/app/Repositories/Account/AccountRepositoryInterface.php b/app/Repositories/Account/AccountRepositoryInterface.php index b4e973d808..99385c33e4 100644 --- a/app/Repositories/Account/AccountRepositoryInterface.php +++ b/app/Repositories/Account/AccountRepositoryInterface.php @@ -32,7 +32,6 @@ use FireflyIII\Models\TransactionJournal; use FireflyIII\User; use Illuminate\Support\Collection; - /** * Interface AccountRepositoryInterface. */ diff --git a/app/Repositories/Account/AccountTasker.php b/app/Repositories/Account/AccountTasker.php index bde3ae8ad6..90e606a992 100644 --- a/app/Repositories/Account/AccountTasker.php +++ b/app/Repositories/Account/AccountTasker.php @@ -76,9 +76,7 @@ class AccountTasker implements AccountTaskerInterface 'currency_symbol' => $currency->symbol, 'currency_name' => $currency->name, 'currency_decimal_places' => $currency->decimal_places,]; - - - $entry = [ + $entry = [ 'name' => $account->name, 'id' => $account->id, 'currency_id' => $currency->id, diff --git a/app/Repositories/Account/OperationsRepository.php b/app/Repositories/Account/OperationsRepository.php index 13359b22b4..fcdd660788 100644 --- a/app/Repositories/Account/OperationsRepository.php +++ b/app/Repositories/Account/OperationsRepository.php @@ -58,8 +58,6 @@ class OperationsRepository implements OperationsRepositoryInterface $collector->withCategoryInformation()->withAccountInformation()->withBudgetInformation()->withTagInformation(); $journals = $collector->getExtractedJournals(); $array = []; - - foreach ($journals as $journal) { $currencyId = (int)$journal['currency_id']; $array[$currencyId] = $array[$currencyId] ?? [ @@ -114,8 +112,6 @@ class OperationsRepository implements OperationsRepositoryInterface $collector->withCategoryInformation()->withAccountInformation()->withBudgetInformation()->withTagInformation(); $journals = $collector->getExtractedJournals(); $array = []; - - foreach ($journals as $journal) { $currencyId = (int)$journal['currency_id']; $array[$currencyId] = $array[$currencyId] ?? [ diff --git a/app/Repositories/Budget/BudgetLimitRepository.php b/app/Repositories/Budget/BudgetLimitRepository.php index 81cf81138b..e8553b0180 100644 --- a/app/Repositories/Budget/BudgetLimitRepository.php +++ b/app/Repositories/Budget/BudgetLimitRepository.php @@ -22,8 +22,6 @@ declare(strict_types=1); namespace FireflyIII\Repositories\Budget; - - use Carbon\Carbon; use Exception; use FireflyIII\Exceptions\FireflyException; @@ -428,8 +426,6 @@ class BudgetLimitRepository implements BudgetLimitRepositoryInterface } catch (Exception $e) { Log::debug(sprintf('Could not delete limit: %s', $e->getMessage())); } - - return null; } // update if exists: diff --git a/app/Repositories/Budget/BudgetRepository.php b/app/Repositories/Budget/BudgetRepository.php index 3ce432a28a..6f2a8516e5 100644 --- a/app/Repositories/Budget/BudgetRepository.php +++ b/app/Repositories/Budget/BudgetRepository.php @@ -422,8 +422,6 @@ class BudgetRepository implements BudgetRepositoryInterface if (null === $currency) { $currency = app('amount')->getDefaultCurrencyByUser($this->user); } - - if (null === $autoBudget && array_key_exists('auto_budget_type', $data) && array_key_exists('auto_budget_amount', $data) @@ -463,8 +461,6 @@ class BudgetRepository implements BudgetRepositoryInterface if (null !== $autoBudget) { $autoBudget->save(); } - - return $budget; } diff --git a/app/Repositories/Budget/NoBudgetRepository.php b/app/Repositories/Budget/NoBudgetRepository.php index 8b3362e135..cf960845a5 100644 --- a/app/Repositories/Budget/NoBudgetRepository.php +++ b/app/Repositories/Budget/NoBudgetRepository.php @@ -22,8 +22,6 @@ declare(strict_types=1); namespace FireflyIII\Repositories\Budget; - - use Carbon\Carbon; use FireflyIII\Helpers\Collector\GroupCollectorInterface; use FireflyIII\Models\TransactionCurrency; diff --git a/app/Repositories/Budget/NoBudgetRepositoryInterface.php b/app/Repositories/Budget/NoBudgetRepositoryInterface.php index ca58eebfef..74ddcedffb 100644 --- a/app/Repositories/Budget/NoBudgetRepositoryInterface.php +++ b/app/Repositories/Budget/NoBudgetRepositoryInterface.php @@ -22,8 +22,6 @@ declare(strict_types=1); namespace FireflyIII\Repositories\Budget; - - use Carbon\Carbon; use FireflyIII\Models\TransactionCurrency; use FireflyIII\User; diff --git a/app/Repositories/Budget/OperationsRepository.php b/app/Repositories/Budget/OperationsRepository.php index 9b3fcd2c64..d054290e14 100644 --- a/app/Repositories/Budget/OperationsRepository.php +++ b/app/Repositories/Budget/OperationsRepository.php @@ -87,8 +87,6 @@ class OperationsRepository implements OperationsRepositoryInterface { $carbonFormat = app('navigation')->preferredCarbonFormat($start, $end); $data = []; - - // get all transactions: /** @var GroupCollectorInterface $collector */ $collector = app(GroupCollectorInterface::class); @@ -183,8 +181,6 @@ class OperationsRepository implements OperationsRepositoryInterface // add journal to array: // only a subset of the fields. $journalId = (int)$journal['transaction_journal_id']; - - $array[$currencyId]['budgets'][$budgetId]['transaction_journals'][$journalId] = [ 'amount' => app('steam')->negative($journal['amount']), 'destination_account_id' => $journal['destination_account_id'], @@ -347,8 +343,6 @@ class OperationsRepository implements OperationsRepositoryInterface $array[$foreignId]['sum'] = bcadd($array[$foreignId]['sum'], app('steam')->negative($journal['foreign_amount'])); } } - - return $array; } diff --git a/app/Repositories/Budget/OperationsRepositoryInterface.php b/app/Repositories/Budget/OperationsRepositoryInterface.php index 4296d13179..265dbbbc66 100644 --- a/app/Repositories/Budget/OperationsRepositoryInterface.php +++ b/app/Repositories/Budget/OperationsRepositoryInterface.php @@ -43,8 +43,6 @@ interface OperationsRepositoryInterface * @return string */ public function budgetedPerDay(Budget $budget): string; - - /** * @param Collection $budgets * @param Collection $accounts diff --git a/app/Repositories/Category/NoCategoryRepository.php b/app/Repositories/Category/NoCategoryRepository.php index 6883394a52..73e2d28e6a 100644 --- a/app/Repositories/Category/NoCategoryRepository.php +++ b/app/Repositories/Category/NoCategoryRepository.php @@ -22,8 +22,6 @@ declare(strict_types=1); namespace FireflyIII\Repositories\Category; - - use Carbon\Carbon; use FireflyIII\Helpers\Collector\GroupCollectorInterface; use FireflyIII\Models\TransactionType; @@ -130,8 +128,6 @@ class NoCategoryRepository implements NoCategoryRepositoryInterface 'name' => (string)trans('firefly.noCategory'), 'transaction_journals' => [], ]; - - // add journal to array: // only a subset of the fields. $journalId = (int)$journal['transaction_journal_id']; diff --git a/app/Repositories/Category/NoCategoryRepositoryInterface.php b/app/Repositories/Category/NoCategoryRepositoryInterface.php index 592526bd09..5285ffea95 100644 --- a/app/Repositories/Category/NoCategoryRepositoryInterface.php +++ b/app/Repositories/Category/NoCategoryRepositoryInterface.php @@ -22,8 +22,6 @@ declare(strict_types=1); namespace FireflyIII\Repositories\Category; - - use Carbon\Carbon; use FireflyIII\User; use Illuminate\Support\Collection; @@ -97,6 +95,4 @@ interface NoCategoryRepositoryInterface * @return array */ public function sumTransfers(Carbon $start, Carbon $end, ?Collection $accounts = null): array; - - } diff --git a/app/Repositories/Category/OperationsRepository.php b/app/Repositories/Category/OperationsRepository.php index a640186676..3b7319a049 100644 --- a/app/Repositories/Category/OperationsRepository.php +++ b/app/Repositories/Category/OperationsRepository.php @@ -22,8 +22,6 @@ declare(strict_types=1); namespace FireflyIII\Repositories\Category; - - use Carbon\Carbon; use FireflyIII\Helpers\Collector\GroupCollectorInterface; use FireflyIII\Models\TransactionType; @@ -101,8 +99,6 @@ class OperationsRepository implements OperationsRepositoryInterface // add journal to array: // only a subset of the fields. $journalId = (int)$journal['transaction_journal_id']; - - $array[$currencyId]['categories'][$categoryId]['transaction_journals'][$journalId] = [ 'amount' => app('steam')->negative($journal['amount']), 'date' => $journal['date'], @@ -180,8 +176,6 @@ class OperationsRepository implements OperationsRepositoryInterface // add journal to array: // only a subset of the fields. $journalId = (int)$journal['transaction_journal_id']; - - $array[$currencyId]['categories'][$categoryId]['transaction_journals'][$journalId] = [ 'amount' => app('steam')->positive($journal['amount']), 'date' => $journal['date'], diff --git a/app/Repositories/Currency/CurrencyRepository.php b/app/Repositories/Currency/CurrencyRepository.php index 80fdee57c5..1f2601c059 100644 --- a/app/Repositories/Currency/CurrencyRepository.php +++ b/app/Repositories/Currency/CurrencyRepository.php @@ -171,8 +171,6 @@ class CurrencyRepository implements CurrencyRepositoryInterface { /** @var UserRepositoryInterface $repository */ $repository = app(UserRepositoryInterface::class); - - if ($repository->hasRole($this->user, 'owner')) { /** @var CurrencyDestroyService $service */ $service = app(CurrencyDestroyService::class); diff --git a/app/Repositories/Journal/JournalCLIRepository.php b/app/Repositories/Journal/JournalCLIRepository.php index 449cf7bdff..691e2c6638 100644 --- a/app/Repositories/Journal/JournalCLIRepository.php +++ b/app/Repositories/Journal/JournalCLIRepository.php @@ -22,8 +22,6 @@ declare(strict_types=1); namespace FireflyIII\Repositories\Journal; - - use Carbon\Carbon; use DB; use Exception; diff --git a/app/Repositories/Journal/JournalRepository.php b/app/Repositories/Journal/JournalRepository.php index 45f9e760cc..1268306c39 100644 --- a/app/Repositories/Journal/JournalRepository.php +++ b/app/Repositories/Journal/JournalRepository.php @@ -43,8 +43,6 @@ use Illuminate\Support\Collection; */ class JournalRepository implements JournalRepositoryInterface { - - /** @var User */ private $user; diff --git a/app/Repositories/LinkType/LinkTypeRepository.php b/app/Repositories/LinkType/LinkTypeRepository.php index 6602e06d99..c6a0028461 100644 --- a/app/Repositories/LinkType/LinkTypeRepository.php +++ b/app/Repositories/LinkType/LinkTypeRepository.php @@ -347,8 +347,6 @@ class LinkTypeRepository implements LinkTypeRepositoryInterface } $journalLink->link_type_id = $data['link_type_id'] ? $data['link_type_id'] : $journalLink->link_type_id; - - $journalLink->save(); if (array_key_exists('notes', $data) && null !== $data['notes']) { $this->setNoteText($journalLink, $data['notes']); diff --git a/app/Repositories/PiggyBank/ModifiesPiggyBanks.php b/app/Repositories/PiggyBank/ModifiesPiggyBanks.php index 76eba29447..84793d7e5d 100644 --- a/app/Repositories/PiggyBank/ModifiesPiggyBanks.php +++ b/app/Repositories/PiggyBank/ModifiesPiggyBanks.php @@ -23,8 +23,6 @@ declare(strict_types=1); namespace FireflyIII\Repositories\PiggyBank; - - use Carbon\Carbon; use Exception; use FireflyIII\Exceptions\FireflyException; diff --git a/app/Repositories/PiggyBank/PiggyBankRepository.php b/app/Repositories/PiggyBank/PiggyBankRepository.php index 82bb5d5ab6..e2bc94f19d 100644 --- a/app/Repositories/PiggyBank/PiggyBankRepository.php +++ b/app/Repositories/PiggyBank/PiggyBankRepository.php @@ -230,8 +230,6 @@ class PiggyBankRepository implements PiggyBankRepositoryInterface } Log::debug(sprintf('The currency is %s and the amount is %s', $currency->code, $amount)); - - $room = bcsub((string)$piggyBank->targetamount, (string)$repetition->currentamount); $compare = bcmul($repetition->currentamount, '-1'); Log::debug(sprintf('Will add/remove %f to piggy bank #%d ("%s")', $amount, $piggyBank->id, $piggyBank->name)); @@ -309,8 +307,6 @@ class PiggyBankRepository implements PiggyBankRepositoryInterface $currentAmount = $this->getRepetition($piggy)->currentamount ?? '0'; $piggy->name = $piggy->name . ' (' . app('amount')->formatAnything($currency, $currentAmount, false) . ')'; } - - return $set; } diff --git a/app/Repositories/Recurring/RecurringRepository.php b/app/Repositories/Recurring/RecurringRepository.php index 05780c8bbe..9b9072ded5 100644 --- a/app/Repositories/Recurring/RecurringRepository.php +++ b/app/Repositories/Recurring/RecurringRepository.php @@ -55,8 +55,6 @@ class RecurringRepository implements RecurringRepositoryInterface use CalculateRangeOccurrences, CalculateXOccurrences, CalculateXOccurrencesSince, FiltersWeekends; private User $user; - - /** * Destroy a recurring transaction. * @@ -242,8 +240,6 @@ class RecurringRepository implements RecurringRepositoryInterface if ('yearly' === $repetition->repetition_type) { $occurrences = $this->getYearlyInRange($mutator, $end, $skipMod, $repetition->repetition_moment); } - - // filter out all the weekend days: return $this->filterWeekends($repetition, $occurrences); } diff --git a/app/Repositories/Recurring/RecurringRepositoryInterface.php b/app/Repositories/Recurring/RecurringRepositoryInterface.php index ffab9e36e8..511c7c5d96 100644 --- a/app/Repositories/Recurring/RecurringRepositoryInterface.php +++ b/app/Repositories/Recurring/RecurringRepositoryInterface.php @@ -31,8 +31,6 @@ use FireflyIII\Models\RecurrenceTransaction; use FireflyIII\User; use Illuminate\Pagination\LengthAwarePaginator; use Illuminate\Support\Collection; - - /** * Interface RecurringRepositoryInterface * diff --git a/app/Repositories/Tag/OperationsRepository.php b/app/Repositories/Tag/OperationsRepository.php index 38e424a96f..e918d781fb 100644 --- a/app/Repositories/Tag/OperationsRepository.php +++ b/app/Repositories/Tag/OperationsRepository.php @@ -69,8 +69,6 @@ class OperationsRepository implements OperationsRepositoryInterface $journals = $collector->getExtractedJournals(); $array = []; $listedJournals = []; - - foreach ($journals as $journal) { $currencyId = (int)$journal['currency_id']; $array[$currencyId] = $array[$currencyId] ?? [ diff --git a/app/Repositories/Tag/TagRepository.php b/app/Repositories/Tag/TagRepository.php index 80ddfecf57..0acb5964b5 100644 --- a/app/Repositories/Tag/TagRepository.php +++ b/app/Repositories/Tag/TagRepository.php @@ -547,8 +547,6 @@ class TagRepository implements TagRepositoryInterface } $min = -1 === bccomp($amount, $min) ? $amount : $min; } - - if (null === $min) { $min = '0'; } diff --git a/app/Repositories/Telemetry/TelemetryRepositoryInterface.php b/app/Repositories/Telemetry/TelemetryRepositoryInterface.php index 532dd38154..898251fc53 100644 --- a/app/Repositories/Telemetry/TelemetryRepositoryInterface.php +++ b/app/Repositories/Telemetry/TelemetryRepositoryInterface.php @@ -23,8 +23,6 @@ declare(strict_types=1); namespace FireflyIII\Repositories\Telemetry; - - use Illuminate\Pagination\LengthAwarePaginator; /** diff --git a/app/Repositories/TransactionGroup/TransactionGroupRepository.php b/app/Repositories/TransactionGroup/TransactionGroupRepository.php index bc5ea3ff35..99575cdade 100644 --- a/app/Repositories/TransactionGroup/TransactionGroupRepository.php +++ b/app/Repositories/TransactionGroup/TransactionGroupRepository.php @@ -22,8 +22,6 @@ declare(strict_types=1); namespace FireflyIII\Repositories\TransactionGroup; - - use Carbon\Carbon; use DB; use Exception; @@ -366,8 +364,6 @@ class TransactionGroupRepository implements TransactionGroupRepositoryInterface Log::error($e->getTraceAsString()); throw new FireflyException($e->getMessage()); } - - } /** diff --git a/app/Repositories/Webhook/WebhookRepository.php b/app/Repositories/Webhook/WebhookRepository.php index 81d2cff16e..871fc9e8b6 100644 --- a/app/Repositories/Webhook/WebhookRepository.php +++ b/app/Repositories/Webhook/WebhookRepository.php @@ -1,5 +1,4 @@ . - */ namespace FireflyIII\Repositories\Webhook; diff --git a/app/Repositories/Webhook/WebhookRepositoryInterface.php b/app/Repositories/Webhook/WebhookRepositoryInterface.php index 6ea5b3ecc2..3fe28ca2e7 100644 --- a/app/Repositories/Webhook/WebhookRepositoryInterface.php +++ b/app/Repositories/Webhook/WebhookRepositoryInterface.php @@ -1,5 +1,4 @@ . - */ namespace FireflyIII\Repositories\Webhook; diff --git a/app/Rules/IsDuplicateTransaction.php b/app/Rules/IsDuplicateTransaction.php index e47ab72012..44ffafb6b3 100644 --- a/app/Rules/IsDuplicateTransaction.php +++ b/app/Rules/IsDuplicateTransaction.php @@ -1,5 +1,4 @@ . - */ namespace FireflyIII\Rules; - - use Illuminate\Contracts\Validation\Rule; /** diff --git a/app/Rules/IsTransferAccount.php b/app/Rules/IsTransferAccount.php index 8f01c63d75..cca24a5b62 100644 --- a/app/Rules/IsTransferAccount.php +++ b/app/Rules/IsTransferAccount.php @@ -23,8 +23,6 @@ declare(strict_types=1); namespace FireflyIII\Rules; - - use FireflyIII\Models\TransactionType; use FireflyIII\Validation\AccountValidator; use Illuminate\Contracts\Validation\Rule; diff --git a/app/Rules/IsValidAttachmentModel.php b/app/Rules/IsValidAttachmentModel.php index d75ecb9074..fa67b3d0e9 100644 --- a/app/Rules/IsValidAttachmentModel.php +++ b/app/Rules/IsValidAttachmentModel.php @@ -22,8 +22,6 @@ declare(strict_types=1); namespace FireflyIII\Rules; - - use FireflyIII\Models\Account; use FireflyIII\Models\Bill; use FireflyIII\Models\Budget; diff --git a/app/Rules/LessThanPiggyTarget.php b/app/Rules/LessThanPiggyTarget.php index d56fdc3fce..914667a22c 100644 --- a/app/Rules/LessThanPiggyTarget.php +++ b/app/Rules/LessThanPiggyTarget.php @@ -21,8 +21,6 @@ */ declare(strict_types=1); - - namespace FireflyIII\Rules; use Illuminate\Contracts\Validation\Rule; diff --git a/app/Rules/ValidJournals.php b/app/Rules/ValidJournals.php index 4ad6509e5b..3482fc7579 100644 --- a/app/Rules/ValidJournals.php +++ b/app/Rules/ValidJournals.php @@ -21,8 +21,6 @@ */ declare(strict_types=1); - - namespace FireflyIII\Rules; use FireflyIII\Models\TransactionJournal; diff --git a/app/Rules/ValidRecurrenceRepetitionValue.php b/app/Rules/ValidRecurrenceRepetitionValue.php index 06d2e4c0c1..d6d4ac7893 100644 --- a/app/Rules/ValidRecurrenceRepetitionValue.php +++ b/app/Rules/ValidRecurrenceRepetitionValue.php @@ -22,8 +22,6 @@ declare(strict_types=1); namespace FireflyIII\Rules; - - use Carbon\Carbon; use Illuminate\Contracts\Validation\Rule; use InvalidArgumentException; diff --git a/app/Services/Internal/Destroy/AccountDestroyService.php b/app/Services/Internal/Destroy/AccountDestroyService.php index b54bc98ded..a23d4f39f3 100644 --- a/app/Services/Internal/Destroy/AccountDestroyService.php +++ b/app/Services/Internal/Destroy/AccountDestroyService.php @@ -66,8 +66,6 @@ class AccountDestroyService // delete account meta: $account->accountMeta()->delete(); - - // delete account. try { $account->delete(); diff --git a/app/Services/Internal/Support/AccountServiceTrait.php b/app/Services/Internal/Support/AccountServiceTrait.php index 06a75ef635..0f8a7c8343 100644 --- a/app/Services/Internal/Support/AccountServiceTrait.php +++ b/app/Services/Internal/Support/AccountServiceTrait.php @@ -66,8 +66,6 @@ trait AccountServiceTrait return null; } - - return $iban; } diff --git a/app/Services/Internal/Support/BillServiceTrait.php b/app/Services/Internal/Support/BillServiceTrait.php index 652fe9117d..17b0476a3f 100644 --- a/app/Services/Internal/Support/BillServiceTrait.php +++ b/app/Services/Internal/Support/BillServiceTrait.php @@ -61,8 +61,6 @@ trait BillServiceTrait $ruleAction->save(); } } - - /** * @param Bill $bill * @param string $note diff --git a/app/Services/Internal/Support/RecurringTransactionTrait.php b/app/Services/Internal/Support/RecurringTransactionTrait.php index b0787c3e05..b2974b289b 100644 --- a/app/Services/Internal/Support/RecurringTransactionTrait.php +++ b/app/Services/Internal/Support/RecurringTransactionTrait.php @@ -41,8 +41,6 @@ use FireflyIII\Models\RecurrenceTransactionMeta; use FireflyIII\Repositories\Account\AccountRepositoryInterface; use FireflyIII\Validation\AccountValidator; use Log; - - /** * Trait RecurringTransactionTrait * @@ -136,8 +134,6 @@ trait RecurringTransactionTrait $validator = app(AccountValidator::class); $validator->setUser($recurrence->user); $validator->setTransactionType($recurrence->transactionType->type); - - if (!$validator->validateSource($source->id, null, null)) { throw new FireflyException(sprintf('Source invalid: %s', $validator->sourceError)); // @codeCoverageIgnore } diff --git a/app/Services/Internal/Update/BillUpdateService.php b/app/Services/Internal/Update/BillUpdateService.php index 5749cfae57..f15570ba54 100644 --- a/app/Services/Internal/Update/BillUpdateService.php +++ b/app/Services/Internal/Update/BillUpdateService.php @@ -76,8 +76,6 @@ class BillUpdateService 'amount_max' => $bill->amount_max, 'transaction_currency_name' => $bill->transactionCurrency->name, ]; - - // update note: if (array_key_exists('notes', $data)) { $this->updateNote($bill, (string)$data['notes']); diff --git a/app/Services/Internal/Update/CategoryUpdateService.php b/app/Services/Internal/Update/CategoryUpdateService.php index 4d51a254cd..c3e96764f6 100644 --- a/app/Services/Internal/Update/CategoryUpdateService.php +++ b/app/Services/Internal/Update/CategoryUpdateService.php @@ -39,8 +39,6 @@ use Log; class CategoryUpdateService { private $user; - - /** * Constructor. */ @@ -138,8 +136,6 @@ class CategoryUpdateService ->where('rt_meta.value', $oldName) ->update(['rt_meta.value' => $newName]); } - - /** * @param Category $category * @param array $data diff --git a/app/Services/Internal/Update/GroupCloneService.php b/app/Services/Internal/Update/GroupCloneService.php index 81abc35a3f..c08ae5d5e0 100644 --- a/app/Services/Internal/Update/GroupCloneService.php +++ b/app/Services/Internal/Update/GroupCloneService.php @@ -51,8 +51,6 @@ class GroupCloneService foreach ($group->transactionJournals as $journal) { $this->cloneJournal($journal, $newGroup, (int)$group->id); } - - return $newGroup; } @@ -147,6 +145,4 @@ class GroupCloneService $newMeta->save(); } } - - } diff --git a/app/Services/Internal/Update/JournalUpdateService.php b/app/Services/Internal/Update/JournalUpdateService.php index 5394209ba8..3203bd3796 100644 --- a/app/Services/Internal/Update/JournalUpdateService.php +++ b/app/Services/Internal/Update/JournalUpdateService.php @@ -63,23 +63,30 @@ class JournalUpdateService private array $metaString; private ?Account $sourceAccount; private ?Transaction $sourceTransaction; - private TransactionGroup $transactionGroup; - private TransactionJournal $transactionJournal; + private ?TransactionGroup $transactionGroup; + private ?TransactionJournal $transactionJournal; /** * JournalUpdateService constructor. */ public function __construct() { - $this->billRepository = app(BillRepositoryInterface::class); - $this->categoryRepository = app(CategoryRepositoryInterface::class); - $this->budgetRepository = app(BudgetRepositoryInterface::class); - $this->tagFactory = app(TagFactory::class); - $this->accountRepository = app(AccountRepositoryInterface::class); - $this->currencyRepository = app(CurrencyRepositoryInterface::class); - $this->metaString = ['sepa_cc', 'sepa_ct_op', 'sepa_ct_id', 'sepa_db', 'sepa_country', 'sepa_ep', 'sepa_ci', 'sepa_batch_id', 'recurrence_id', - 'internal_reference', 'bunq_payment_id', 'external_id', 'external_uri']; - $this->metaDate = ['interest_date', 'book_date', 'process_date', 'due_date', 'payment_date', 'invoice_date',]; + $this->destinationAccount = null; + $this->destinationTransaction = null; + $this->sourceAccount = null; + $this->sourceTransaction = null; + $this->transactionGroup = null; + $this->transactionJournal = null; + $this->billRepository = app(BillRepositoryInterface::class); + $this->categoryRepository = app(CategoryRepositoryInterface::class); + $this->budgetRepository = app(BudgetRepositoryInterface::class); + $this->tagFactory = app(TagFactory::class); + $this->accountRepository = app(AccountRepositoryInterface::class); + $this->currencyRepository = app(CurrencyRepositoryInterface::class); + $this->metaString = ['sepa_cc', 'sepa_ct_op', 'sepa_ct_id', 'sepa_db', 'sepa_country', 'sepa_ep', 'sepa_ci', 'sepa_batch_id', + 'recurrence_id', + 'internal_reference', 'bunq_payment_id', 'external_id', 'external_uri']; + $this->metaDate = ['interest_date', 'book_date', 'process_date', 'due_date', 'payment_date', 'invoice_date',]; } /** @@ -138,8 +145,6 @@ class JournalUpdateService $this->updateField('description'); $this->updateField('date'); $this->updateField('order'); - - $this->transactionJournal->save(); $this->transactionJournal->refresh(); @@ -287,8 +292,6 @@ class JournalUpdateService $validator->setTransactionType($expectedType); $validator->setUser($this->transactionJournal->user); $validator->source = $this->getValidSourceAccount(); - - $result = $validator->validateDestination($destId, $destName, null); Log::debug(sprintf('hasValidDestinationAccount(%d, "%s") will return %s', $destId, $destName, var_export($result, true))); @@ -386,8 +389,6 @@ class JournalUpdateService // refresh transactions. $this->sourceTransaction->refresh(); $this->destinationTransaction->refresh(); - - Log::debug(sprintf('Will set source to #%d ("%s")', $source->id, $source->name)); Log::debug(sprintf('Will set dest to #%d ("%s")', $destination->id, $destination->name)); } @@ -498,8 +499,6 @@ class JournalUpdateService // do some parsing. Log::debug(sprintf('Create date value from string "%s".', $value)); } - - $this->transactionJournal->$fieldName = $value; Log::debug(sprintf('Updated %s', $fieldName)); } @@ -685,13 +684,9 @@ class JournalUpdateService $origSourceTransaction = $this->getSourceTransaction(); $origSourceTransaction->amount = app('steam')->negative($amount); $origSourceTransaction->save(); - - $destTransaction = $this->getDestinationTransaction(); $destTransaction->amount = app('steam')->positive($amount); $destTransaction->save(); - - // refresh transactions. $this->sourceTransaction->refresh(); $this->destinationTransaction->refresh(); @@ -731,8 +726,6 @@ class JournalUpdateService $source->foreign_currency_id = $foreignCurrency->id; $source->foreign_amount = app('steam')->negative($foreignAmount); $source->save(); - - $dest->foreign_currency_id = $foreignCurrency->id; $dest->foreign_amount = app('steam')->positive($foreignAmount); $dest->save(); diff --git a/app/Services/Internal/Update/RecurrenceUpdateService.php b/app/Services/Internal/Update/RecurrenceUpdateService.php index 503430dcab..b7370de5e2 100644 --- a/app/Services/Internal/Update/RecurrenceUpdateService.php +++ b/app/Services/Internal/Update/RecurrenceUpdateService.php @@ -103,8 +103,6 @@ class RecurrenceUpdateService $this->updateRepetitions($recurrence, $data['repetitions'] ?? []); } // update all transactions: - - // update all transactions (and associated meta-data) if (array_key_exists('transactions', $data)) { $this->updateTransactions($recurrence, $data['transactions'] ?? []); @@ -240,8 +238,6 @@ class RecurrenceUpdateService return; } $currencyFactory = app(TransactionCurrencyFactory::class); - - // loop all and try to match them: if ($originalCount === count($transactions)) { Log::debug('Loop and find'); diff --git a/app/Services/Webhook/StandardWebhookSender.php b/app/Services/Webhook/StandardWebhookSender.php index 22fd2136c9..90035f6b31 100644 --- a/app/Services/Webhook/StandardWebhookSender.php +++ b/app/Services/Webhook/StandardWebhookSender.php @@ -1,5 +1,4 @@ . - */ namespace FireflyIII\Services\Webhook; diff --git a/app/Services/Webhook/WebhookSenderInterface.php b/app/Services/Webhook/WebhookSenderInterface.php index 646a68b865..6b827fa9d0 100644 --- a/app/Services/Webhook/WebhookSenderInterface.php +++ b/app/Services/Webhook/WebhookSenderInterface.php @@ -1,5 +1,4 @@ . - */ namespace FireflyIII\Services\Webhook; diff --git a/app/Support/Authentication/RemoteUserGuard.php b/app/Support/Authentication/RemoteUserGuard.php index fc8e28bbd7..9d24ca6f1a 100644 --- a/app/Support/Authentication/RemoteUserGuard.php +++ b/app/Support/Authentication/RemoteUserGuard.php @@ -31,8 +31,6 @@ use Illuminate\Contracts\Auth\Guard; use Illuminate\Contracts\Auth\UserProvider; use Illuminate\Contracts\Foundation\Application; use Log; - - /** * Class RemoteUserGuard */ diff --git a/app/Support/Authentication/RemoteUserProvider.php b/app/Support/Authentication/RemoteUserProvider.php index 65cfe296c1..a58b120608 100644 --- a/app/Support/Authentication/RemoteUserProvider.php +++ b/app/Support/Authentication/RemoteUserProvider.php @@ -23,8 +23,6 @@ declare(strict_types=1); namespace FireflyIII\Support\Authentication; - - use FireflyIII\Exceptions\FireflyException; use FireflyIII\User; use Illuminate\Contracts\Auth\Authenticatable; diff --git a/app/Support/Binder/DynamicConfigKey.php b/app/Support/Binder/DynamicConfigKey.php index d753f0c166..745a026a38 100644 --- a/app/Support/Binder/DynamicConfigKey.php +++ b/app/Support/Binder/DynamicConfigKey.php @@ -19,6 +19,8 @@ * along with this program. If not, see . */ +declare(strict_types=1); + namespace FireflyIII\Support\Binder; use Illuminate\Routing\Route; @@ -51,4 +53,4 @@ class DynamicConfigKey throw new NotFoundHttpException; } -} \ No newline at end of file +} diff --git a/app/Support/Binder/EitherConfigKey.php b/app/Support/Binder/EitherConfigKey.php index 33c1c9d715..922b0262e8 100644 --- a/app/Support/Binder/EitherConfigKey.php +++ b/app/Support/Binder/EitherConfigKey.php @@ -1,4 +1,6 @@ orderBy('tag', 'ASC') ->get(); } - - $list = array_unique(array_map('\strtolower', explode(',', $value))); Log::debug('List of tags is', $list); // @codeCoverageIgnoreStart diff --git a/app/Support/Chart/Budget/FrontpageChartGenerator.php b/app/Support/Chart/Budget/FrontpageChartGenerator.php index 5496e0305b..3ea24b1cb2 100644 --- a/app/Support/Chart/Budget/FrontpageChartGenerator.php +++ b/app/Support/Chart/Budget/FrontpageChartGenerator.php @@ -30,8 +30,6 @@ use FireflyIII\Repositories\Budget\BudgetRepositoryInterface; use FireflyIII\Repositories\Budget\OperationsRepositoryInterface; use FireflyIII\User; use Illuminate\Support\Collection; - - /** * Class FrontpageChartGenerator */ @@ -237,6 +235,4 @@ class FrontpageChartGenerator $locale = app('steam')->getLocale(); $this->monthAndDayFormat = (string)trans('config.month_and_day', [], $locale); } - - } diff --git a/app/Support/Chart/Category/FrontpageChartGenerator.php b/app/Support/Chart/Category/FrontpageChartGenerator.php index 1969448183..8ff317aefb 100644 --- a/app/Support/Chart/Category/FrontpageChartGenerator.php +++ b/app/Support/Chart/Category/FrontpageChartGenerator.php @@ -184,8 +184,6 @@ class FrontpageChartGenerator return $return; } - - /** * @param array $currencyData * @param array $monetaryData diff --git a/app/Support/Cronjobs/AbstractCronjob.php b/app/Support/Cronjobs/AbstractCronjob.php index 04b22249bb..a43005de6c 100644 --- a/app/Support/Cronjobs/AbstractCronjob.php +++ b/app/Support/Cronjobs/AbstractCronjob.php @@ -50,8 +50,8 @@ abstract class AbstractCronjob */ public function __construct() { - $this->force = false; - $this->date = today(config('app.timezone')); + $this->force = false; + $this->date = today(config('app.timezone')); $this->jobErrored = false; $this->jobSucceeded = false; $this->jobFired = false; @@ -68,7 +68,8 @@ abstract class AbstractCronjob */ public function setDate(Carbon $date): void { - $this->date = $date; + $newDate = clone $date; + $this->date = $newDate; } /** diff --git a/app/Support/Cronjobs/AutoBudgetCronjob.php b/app/Support/Cronjobs/AutoBudgetCronjob.php index aa210a7927..96bf9d5f96 100644 --- a/app/Support/Cronjobs/AutoBudgetCronjob.php +++ b/app/Support/Cronjobs/AutoBudgetCronjob.php @@ -23,8 +23,6 @@ declare(strict_types=1); namespace FireflyIII\Support\Cronjobs; - - use Carbon\Carbon; use FireflyIII\Jobs\CreateAutoBudgetLimits; use FireflyIII\Models\Configuration; diff --git a/app/Support/Cronjobs/RecurringCronjob.php b/app/Support/Cronjobs/RecurringCronjob.php index c27a8366ee..f68f826a0d 100644 --- a/app/Support/Cronjobs/RecurringCronjob.php +++ b/app/Support/Cronjobs/RecurringCronjob.php @@ -24,7 +24,6 @@ declare(strict_types=1); namespace FireflyIII\Support\Cronjobs; use Carbon\Carbon; -use Exception; use FireflyIII\Exceptions\FireflyException; use FireflyIII\Jobs\CreateRecurringTransactions; use FireflyIII\Models\Configuration; @@ -55,7 +54,10 @@ class RecurringCronjob extends AbstractCronjob Log::info(sprintf('It has been %s since the recurring transactions cron-job has fired.', $diffForHumans)); if (false === $this->force) { Log::info('The cron-job will not fire now.'); - $this->message = sprintf('It has been %s since the recurring transactions cron-job has fired. It will not fire now.', $diffForHumans); + $this->message = sprintf('It has been %s since the recurring transactions cron-job has fired. It will not fire now.', $diffForHumans); + $this->jobFired = false; + $this->jobErrored = false; + $this->jobSucceeded = false; return; } @@ -80,7 +82,7 @@ class RecurringCronjob extends AbstractCronjob */ private function fireRecurring(): void { - Log::info(sprintf('Will now fire recurring cron job task for date "%s".', $this->date->format('Y-m-d'))); + Log::info(sprintf('Will now fire recurring cron job task for date "%s".', $this->date->format('Y-m-d H:i:s'))); /** @var CreateRecurringTransactions $job */ $job = app(CreateRecurringTransactions::class); $job->setDate($this->date); diff --git a/app/Support/Cronjobs/TelemetryCronjob.php b/app/Support/Cronjobs/TelemetryCronjob.php index a7b0ad1f64..624f1f523f 100644 --- a/app/Support/Cronjobs/TelemetryCronjob.php +++ b/app/Support/Cronjobs/TelemetryCronjob.php @@ -50,8 +50,6 @@ class TelemetryCronjob extends AbstractCronjob return; } - - /** @var Configuration $config */ $config = app('fireflyconfig')->get('last_tm_job', 0); $lastTime = (int)$config->data; @@ -83,8 +81,6 @@ class TelemetryCronjob extends AbstractCronjob app('preferences')->mark(); } - - /** * @throws FireflyException */ diff --git a/app/Support/Form/AccountForm.php b/app/Support/Form/AccountForm.php index d1bff36c9e..17c1c59f3a 100644 --- a/app/Support/Form/AccountForm.php +++ b/app/Support/Form/AccountForm.php @@ -22,8 +22,6 @@ declare(strict_types=1); namespace FireflyIII\Support\Form; - - use FireflyIII\Models\Account; use FireflyIII\Models\AccountType; use FireflyIII\Repositories\Account\AccountRepositoryInterface; @@ -163,8 +161,6 @@ class AccountForm return $this->select($name, $grouped, $value, $options); } - - /** * Same list but all liabilities as well. * diff --git a/app/Support/Form/CurrencyForm.php b/app/Support/Form/CurrencyForm.php index 907d7b867a..5e7e2e888c 100644 --- a/app/Support/Form/CurrencyForm.php +++ b/app/Support/Form/CurrencyForm.php @@ -22,8 +22,6 @@ declare(strict_types=1); namespace FireflyIII\Support\Form; - - use Amount as Amt; use FireflyIII\Exceptions\FireflyException; use FireflyIII\Models\TransactionCurrency; diff --git a/app/Support/Form/FormSupport.php b/app/Support/Form/FormSupport.php index af8a30ca7d..ccad30a682 100644 --- a/app/Support/Form/FormSupport.php +++ b/app/Support/Form/FormSupport.php @@ -36,8 +36,6 @@ use Throwable; */ trait FormSupport { - - /** * @param string $name * @param array $list diff --git a/app/Support/Form/PiggyBankForm.php b/app/Support/Form/PiggyBankForm.php index 900b15a6b1..21e11d31bc 100644 --- a/app/Support/Form/PiggyBankForm.php +++ b/app/Support/Form/PiggyBankForm.php @@ -22,8 +22,6 @@ declare(strict_types=1); namespace FireflyIII\Support\Form; - - use FireflyIII\Models\PiggyBank; use FireflyIII\Repositories\PiggyBank\PiggyBankRepositoryInterface; diff --git a/app/Support/Form/RuleForm.php b/app/Support/Form/RuleForm.php index b2ca38920e..d1f0748f7b 100644 --- a/app/Support/Form/RuleForm.php +++ b/app/Support/Form/RuleForm.php @@ -22,8 +22,6 @@ declare(strict_types=1); namespace FireflyIII\Support\Form; - - use FireflyIII\Models\RuleGroup; use FireflyIII\Repositories\RuleGroup\RuleGroupRepositoryInterface; use Form; diff --git a/app/Support/Http/Api/TransactionFilter.php b/app/Support/Http/Api/TransactionFilter.php index 5dacf96b94..f0e703860d 100644 --- a/app/Support/Http/Api/TransactionFilter.php +++ b/app/Support/Http/Api/TransactionFilter.php @@ -62,7 +62,5 @@ trait TransactionFilter ]; return $types[$type] ?? $types['default']; - - } } diff --git a/app/Support/Http/Controllers/AugumentData.php b/app/Support/Http/Controllers/AugumentData.php index 00709a4fe6..e3d1a1adfc 100644 --- a/app/Support/Http/Controllers/AugumentData.php +++ b/app/Support/Http/Controllers/AugumentData.php @@ -198,8 +198,6 @@ trait AugumentData /** @var BudgetLimitRepositoryInterface $blRepository */ $blRepository = app(BudgetLimitRepositoryInterface::class); - - // properties for cache $cache = new CacheProperties; $cache->addProperty($start); diff --git a/app/Support/Http/Controllers/BasicDataSupport.php b/app/Support/Http/Controllers/BasicDataSupport.php index f631a41511..1072b79770 100644 --- a/app/Support/Http/Controllers/BasicDataSupport.php +++ b/app/Support/Http/Controllers/BasicDataSupport.php @@ -29,8 +29,6 @@ namespace FireflyIII\Support\Http\Controllers; */ trait BasicDataSupport { - - /** * Find the ID in a given array. Return '0' of not there (amount). * @@ -43,6 +41,4 @@ trait BasicDataSupport { return $array[$entryId] ?? '0'; } - - } diff --git a/app/Support/Http/Controllers/CreateStuff.php b/app/Support/Http/Controllers/CreateStuff.php index e9c0f1bbab..892218c9a0 100644 --- a/app/Support/Http/Controllers/CreateStuff.php +++ b/app/Support/Http/Controllers/CreateStuff.php @@ -30,8 +30,8 @@ use FireflyIII\Repositories\Account\AccountRepositoryInterface; use FireflyIII\User; use Laravel\Passport\Passport; use Log; - - +use phpseclib\Crypt\RSA as LegacyRSA; +use phpseclib3\Crypt\RSA; /** * Trait CreateStuff * @@ -104,15 +104,6 @@ trait CreateStuff */ protected function createOAuthKeys(): void // create stuff { - // switch on PHP version. - if (7 === PHP_MAJOR_VERSION) { - $rsa = new \phpseclib\Crypt\RSA; - $keys = $rsa->createKey(4096); - } - if (8 === PHP_MAJOR_VERSION) { - $keys = \phpseclib3\Crypt\RSA::createKey(4096); - } - [$publicKey, $privateKey] = [ Passport::keyPath('oauth-public.key'), Passport::keyPath('oauth-private.key'), @@ -121,6 +112,22 @@ trait CreateStuff if (file_exists($publicKey) || file_exists($privateKey)) { return; } + + // switch on class existence. + + Log::info(sprintf('PHP version is %s', phpversion())); + if (class_exists(LegacyRSA::class)) { + // PHP 7 + Log::info('Will run PHP7 code.'); + $keys = (new LegacyRSA)->createKey(4096); + } + + if (!class_exists(LegacyRSA::class)) { + // PHP 8 + Log::info('Will run PHP8 code.'); + $keys = RSA::createKey(4096); + } + // @codeCoverageIgnoreStart Log::alert('NO OAuth keys were found. They have been created.'); diff --git a/app/Support/Http/Controllers/DateCalculation.php b/app/Support/Http/Controllers/DateCalculation.php index c699cd6c63..0a70f06081 100644 --- a/app/Support/Http/Controllers/DateCalculation.php +++ b/app/Support/Http/Controllers/DateCalculation.php @@ -99,8 +99,6 @@ trait DateCalculation return $step; } - - /** * Get a list of the periods that will occur after this date. For example, * March 2018, April 2018, etc. @@ -130,8 +128,6 @@ trait DateCalculation 'start' => clone $currentStart, 'end' => clone $current, ]; - - ++$count; $current->addDay(); } diff --git a/app/Support/Http/Controllers/GetConfigurationData.php b/app/Support/Http/Controllers/GetConfigurationData.php index 6aa4cc6888..eb3d3bb1f2 100644 --- a/app/Support/Http/Controllers/GetConfigurationData.php +++ b/app/Support/Http/Controllers/GetConfigurationData.php @@ -22,8 +22,6 @@ declare(strict_types=1); namespace FireflyIII\Support\Http\Controllers; - - use Carbon\Carbon; use Log; diff --git a/app/Support/Http/Controllers/PeriodOverview.php b/app/Support/Http/Controllers/PeriodOverview.php index fecdf36b28..cdf90716b7 100644 --- a/app/Support/Http/Controllers/PeriodOverview.php +++ b/app/Support/Http/Controllers/PeriodOverview.php @@ -308,8 +308,6 @@ trait PeriodOverview $collector->setRange($start, $end); $collector->setTypes([TransactionType::TRANSFER]); $transferSet = $collector->getExtractedJournals(); - - foreach ($dates as $currentDate) { $spent = $this->filterJournalsByDate($spentSet, $currentDate['start'], $currentDate['end']); $earned = $this->filterJournalsByDate($earnedSet, $currentDate['start'], $currentDate['end']); @@ -362,8 +360,6 @@ trait PeriodOverview /** @var array $dates */ $dates = app('navigation')->blockPeriods($start, $end, $range); $entries = []; - - // get all expenses without a budget. /** @var GroupCollectorInterface $collector */ $collector = app(GroupCollectorInterface::class); @@ -590,8 +586,6 @@ trait PeriodOverview if ('transfer' === $transactionType || 'transfers' === $transactionType) { $transferred = $this->filterJournalsByDate($genericSet, $currentDate['start'], $currentDate['end']); } - - $entries[] = [ 'title' => $title, diff --git a/app/Support/Http/Controllers/RenderPartialViews.php b/app/Support/Http/Controllers/RenderPartialViews.php index 66ee8e5dc9..f726a488ab 100644 --- a/app/Support/Http/Controllers/RenderPartialViews.php +++ b/app/Support/Http/Controllers/RenderPartialViews.php @@ -320,8 +320,6 @@ trait RenderPartialViews } } asort($triggers); - - $index = 0; $renderedEntries = []; // todo must be repos diff --git a/app/Support/Http/Controllers/RequestInformation.php b/app/Support/Http/Controllers/RequestInformation.php index 0d465859b3..e9159111f4 100644 --- a/app/Support/Http/Controllers/RequestInformation.php +++ b/app/Support/Http/Controllers/RequestInformation.php @@ -43,8 +43,6 @@ use Route as RouteFacade; */ trait RequestInformation { - - /** * Get the domain of FF system. * @@ -169,8 +167,6 @@ trait RequestInformation { $page = $this->getPageName(); $specificPage = $this->getSpecificPageName(); - - // indicator if user has seen the help for this page ( + special page): $key = sprintf('shown_demo_%s%s', $page, $specificPage); // is there an intro for this route? diff --git a/app/Support/Navigation.php b/app/Support/Navigation.php index f523ce665b..2f81cbcb4e 100644 --- a/app/Support/Navigation.php +++ b/app/Support/Navigation.php @@ -212,8 +212,6 @@ class Navigation return $currentEnd; } - - if (!isset($functionMap[$repeatFreq])) { Log::error(sprintf('Cannot do endOfPeriod for $repeat_freq "%s"', $repeatFreq)); @@ -303,8 +301,6 @@ class Navigation $increment = 'addYear'; $displayFormat = (string)trans('config.year'); } - - $begin = clone $start; $entries = []; while ($begin < $end) { @@ -581,8 +577,6 @@ class Navigation $tEnd = session('end', Carbon::now()->endOfMonth()); $diffInDays = $tStart->diffInDays($tEnd); $date->subDays($diffInDays * $subtract); - - return $date; } @@ -632,8 +626,6 @@ class Navigation return $fiscalHelper->endOfFiscalYear($end); } - - throw new FireflyException(sprintf('updateEndDate cannot handle range "%s"', $range)); } diff --git a/app/Support/NullArrayObject.php b/app/Support/NullArrayObject.php index 177b361eff..6a25fb8608 100644 --- a/app/Support/NullArrayObject.php +++ b/app/Support/NullArrayObject.php @@ -22,8 +22,6 @@ declare(strict_types=1); namespace FireflyIII\Support; - - use ArrayObject; /** diff --git a/app/Support/ParseDateString.php b/app/Support/ParseDateString.php index 10a5f6fcca..9d4b3d80fe 100644 --- a/app/Support/ParseDateString.php +++ b/app/Support/ParseDateString.php @@ -21,8 +21,6 @@ */ declare(strict_types=1); - - namespace FireflyIII\Support; use Carbon\Carbon; @@ -249,8 +247,6 @@ class ParseDateString return false; } - - /** * @param string $date * diff --git a/app/Support/Report/Category/CategoryReportGenerator.php b/app/Support/Report/Category/CategoryReportGenerator.php index 229c765a80..5e4f9e45d1 100644 --- a/app/Support/Report/Category/CategoryReportGenerator.php +++ b/app/Support/Report/Category/CategoryReportGenerator.php @@ -1,5 +1,4 @@ . - */ namespace FireflyIII\Support\Report\Category; - - use Carbon\Carbon; use FireflyIII\Repositories\Category\NoCategoryRepositoryInterface; use FireflyIII\Repositories\Category\OperationsRepositoryInterface; diff --git a/app/Support/Repositories/Recurring/CalculateRangeOccurrences.php b/app/Support/Repositories/Recurring/CalculateRangeOccurrences.php index 655222d6ae..0c5b82647d 100644 --- a/app/Support/Repositories/Recurring/CalculateRangeOccurrences.php +++ b/app/Support/Repositories/Recurring/CalculateRangeOccurrences.php @@ -56,8 +56,6 @@ trait CalculateRangeOccurrences return $return; } - - /** * Get the number of daily occurrences for a recurring transaction until date $end is reached. Will skip every $skipMod-1 occurrences. * @@ -90,8 +88,6 @@ trait CalculateRangeOccurrences return $return; } - - /** * Get the number of daily occurrences for a recurring transaction until date $end is reached. Will skip every $skipMod-1 occurrences. * diff --git a/app/Support/Repositories/Recurring/CalculateXOccurrences.php b/app/Support/Repositories/Recurring/CalculateXOccurrences.php index c5b8f42e46..17e4ed252a 100644 --- a/app/Support/Repositories/Recurring/CalculateXOccurrences.php +++ b/app/Support/Repositories/Recurring/CalculateXOccurrences.php @@ -23,8 +23,6 @@ declare(strict_types=1); namespace FireflyIII\Support\Repositories\Recurring; - - use Carbon\Carbon; /** @@ -60,8 +58,6 @@ trait CalculateXOccurrences return $return; } - - /** * Calculates the number of monthly occurrences for a recurring transaction, starting at the date, until $count is reached. It will skip * over $skipMod -1 recurrences. @@ -98,8 +94,6 @@ trait CalculateXOccurrences return $return; } - - /** * Calculates the number of NDOM occurrences for a recurring transaction, starting at the date, until $count is reached. It will skip * over $skipMod -1 recurrences. @@ -137,8 +131,6 @@ trait CalculateXOccurrences return $return; } - - /** * Calculates the number of weekly occurrences for a recurring transaction, starting at the date, until $count is reached. It will skip * over $skipMod -1 recurrences. @@ -180,8 +172,6 @@ trait CalculateXOccurrences return $return; } - - /** * Calculates the number of yearly occurrences for a recurring transaction, starting at the date, until $count is reached. It will skip * over $skipMod -1 recurrences. diff --git a/app/Support/Repositories/Recurring/CalculateXOccurrencesSince.php b/app/Support/Repositories/Recurring/CalculateXOccurrencesSince.php index 195946bdd9..cdf7f4388c 100644 --- a/app/Support/Repositories/Recurring/CalculateXOccurrencesSince.php +++ b/app/Support/Repositories/Recurring/CalculateXOccurrencesSince.php @@ -23,8 +23,6 @@ declare(strict_types=1); namespace FireflyIII\Support\Repositories\Recurring; - - use Carbon\Carbon; use Log; @@ -63,8 +61,6 @@ trait CalculateXOccurrencesSince return $return; } - - /** * Calculates the number of monthly occurrences for a recurring transaction, starting at the date, until $count is reached. It will skip * over $skipMod -1 recurrences. @@ -107,8 +103,6 @@ trait CalculateXOccurrencesSince return $return; } - - /** * Calculates the number of NDOM occurrences for a recurring transaction, starting at the date, until $count is reached. It will skip * over $skipMod -1 recurrences. @@ -148,8 +142,6 @@ trait CalculateXOccurrencesSince return $return; } - - /** * Calculates the number of weekly occurrences for a recurring transaction, starting at the date, until $count is reached. It will skip * over $skipMod -1 recurrences. @@ -193,8 +185,6 @@ trait CalculateXOccurrencesSince return $return; } - - /** * Calculates the number of yearly occurrences for a recurring transaction, starting at the date, until $count is reached. It will skip * over $skipMod -1 recurrences. diff --git a/app/Support/Request/ChecksLogin.php b/app/Support/Request/ChecksLogin.php index cba9f91fd9..a7cbc718f0 100644 --- a/app/Support/Request/ChecksLogin.php +++ b/app/Support/Request/ChecksLogin.php @@ -1,5 +1,4 @@ . - */ namespace FireflyIII\Support\Request; diff --git a/app/Support/Request/GetRuleConfiguration.php b/app/Support/Request/GetRuleConfiguration.php index 18c11d6688..9826382f8a 100644 --- a/app/Support/Request/GetRuleConfiguration.php +++ b/app/Support/Request/GetRuleConfiguration.php @@ -1,5 +1,4 @@ . - */ namespace FireflyIII\Support\Request; diff --git a/app/Support/Search/AccountSearch.php b/app/Support/Search/AccountSearch.php index 4f22a75030..8050ebabc2 100644 --- a/app/Support/Search/AccountSearch.php +++ b/app/Support/Search/AccountSearch.php @@ -23,8 +23,6 @@ declare(strict_types=1); namespace FireflyIII\Support\Search; - - use FireflyIII\User; use Illuminate\Database\Eloquent\Builder; use Illuminate\Support\Collection; diff --git a/app/Support/Search/GenericSearchInterface.php b/app/Support/Search/GenericSearchInterface.php index 372f83cb75..86273122a1 100644 --- a/app/Support/Search/GenericSearchInterface.php +++ b/app/Support/Search/GenericSearchInterface.php @@ -23,8 +23,6 @@ declare(strict_types=1); namespace FireflyIII\Support\Search; - - use Illuminate\Support\Collection; /** diff --git a/app/Support/Search/OperatorQuerySearch.php b/app/Support/Search/OperatorQuerySearch.php index 9188dba8df..52a41fa83f 100644 --- a/app/Support/Search/OperatorQuerySearch.php +++ b/app/Support/Search/OperatorQuerySearch.php @@ -1,5 +1,4 @@ . - */ namespace FireflyIII\Support\Search; @@ -829,8 +809,6 @@ private Collection $modifiers; $parts = explode(' ', $value); $value = trim($parts[count($parts) - 1], "() \t\n\r\0\x0B"); } - - $result = $this->currencyRepository->findByCodeNull($value); if (null === $result) { $result = $this->currencyRepository->findByNameNull($value); diff --git a/app/Support/Steam.php b/app/Support/Steam.php index 20b18ef04c..f47cdb7f0c 100644 --- a/app/Support/Steam.php +++ b/app/Support/Steam.php @@ -108,8 +108,6 @@ class Steam $repository->setUser($account->user); $currencyId = (int)$repository->getMetaValue($account, 'currency_id'); - - $transactions = $account->transactions() ->leftJoin('transaction_journals', 'transaction_journals.id', '=', 'transactions.transaction_journal_id') ->where('transaction_journals.date', '<=', $date->format('Y-m-d 23:59:59')) diff --git a/app/TransactionRules/Actions/AppendDescription.php b/app/TransactionRules/Actions/AppendDescription.php index 8aa67a4209..c7f275ebf1 100644 --- a/app/TransactionRules/Actions/AppendDescription.php +++ b/app/TransactionRules/Actions/AppendDescription.php @@ -22,8 +22,8 @@ declare(strict_types=1); namespace FireflyIII\TransactionRules\Actions; -use FireflyIII\Models\RuleAction; use DB; +use FireflyIII\Models\RuleAction; /** * Class AppendDescription. @@ -49,6 +49,7 @@ class AppendDescription implements ActionInterface { $description = sprintf('%s%s', $journal['description'], $this->action->action_value); DB::table('transaction_journals')->where('id', $journal['transaction_journal_id'])->limit(1)->update(['description' => $description]); + return true; } } diff --git a/app/TransactionRules/Actions/AppendNotes.php b/app/TransactionRules/Actions/AppendNotes.php index 949ae9721f..608515f777 100644 --- a/app/TransactionRules/Actions/AppendNotes.php +++ b/app/TransactionRules/Actions/AppendNotes.php @@ -52,19 +52,20 @@ class AppendNotes implements ActionInterface { $dbNote = Note :: - where('noteable_id', (int) $journal['transaction_journal_id']) + where('noteable_id', (int)$journal['transaction_journal_id']) ->where('noteable_type', TransactionJournal::class) ->first(['notes.*']); if (null === $dbNote) { $dbNote = new Note; - $dbNote->noteable_id = (int) $journal['transaction_journal_id']; + $dbNote->noteable_id = (int)$journal['transaction_journal_id']; $dbNote->noteable_type = TransactionJournal::class; $dbNote->text = ''; } Log::debug(sprintf('RuleAction AppendNotes appended "%s" to "%s".', $this->action->action_value, $dbNote->text)); - $text = sprintf('%s%s', $dbNote->text, $this->action->action_value); + $text = sprintf('%s%s', $dbNote->text, $this->action->action_value); $dbNote->text = $text; $dbNote->save(); + return true; } } diff --git a/app/TransactionRules/Actions/ClearBudget.php b/app/TransactionRules/Actions/ClearBudget.php index e568558cba..ebf8e89f88 100644 --- a/app/TransactionRules/Actions/ClearBudget.php +++ b/app/TransactionRules/Actions/ClearBudget.php @@ -22,9 +22,10 @@ declare(strict_types=1); namespace FireflyIII\TransactionRules\Actions; +use DB; use FireflyIII\Models\RuleAction; use Log; -use DB; + /** * Class ClearBudget. */ diff --git a/app/TransactionRules/Actions/ClearCategory.php b/app/TransactionRules/Actions/ClearCategory.php index 567d68bc5d..51133e39e4 100644 --- a/app/TransactionRules/Actions/ClearCategory.php +++ b/app/TransactionRules/Actions/ClearCategory.php @@ -21,6 +21,7 @@ declare(strict_types=1); namespace FireflyIII\TransactionRules\Actions; + use DB; use FireflyIII\Models\RuleAction; use Log; diff --git a/app/TransactionRules/Actions/ClearNotes.php b/app/TransactionRules/Actions/ClearNotes.php index 63d916b0e3..54c55546a4 100644 --- a/app/TransactionRules/Actions/ClearNotes.php +++ b/app/TransactionRules/Actions/ClearNotes.php @@ -22,10 +22,11 @@ declare(strict_types=1); namespace FireflyIII\TransactionRules\Actions; +use DB; use FireflyIII\Models\RuleAction; use FireflyIII\Models\TransactionJournal; use Log; -use DB; + /** * Class ClearNotes. */ @@ -46,10 +47,11 @@ class ClearNotes implements ActionInterface public function actOnArray(array $journal): bool { DB::table('notes') - ->where('noteable_id', $journal['transaction_journal_id']) - ->where('noteable_type', TransactionJournal::class) - ->delete(); + ->where('noteable_id', $journal['transaction_journal_id']) + ->where('noteable_type', TransactionJournal::class) + ->delete(); Log::debug(sprintf('RuleAction ClearNotes removed all notes.')); + return true; } } diff --git a/app/TransactionRules/Actions/ConvertToDeposit.php b/app/TransactionRules/Actions/ConvertToDeposit.php index 84d9227dbc..6892c22783 100644 --- a/app/TransactionRules/Actions/ConvertToDeposit.php +++ b/app/TransactionRules/Actions/ConvertToDeposit.php @@ -22,8 +22,6 @@ declare(strict_types=1); namespace FireflyIII\TransactionRules\Actions; - - use DB; use FireflyIII\Exceptions\FireflyException; use FireflyIII\Factory\AccountFactory; @@ -52,46 +50,31 @@ class ConvertToDeposit implements ActionInterface } /** - * Input is a transfer from A to B. - * Output is a deposit from C to B. - * - * @param array $journal - * - * @return bool + * @inheritDoc * @throws FireflyException */ - private function convertTransferArray(array $journal): bool + public function actOnArray(array $journal): bool { - $user = User::find($journal['user_id']); - // find or create revenue account. - /** @var AccountFactory $factory */ - $factory = app(AccountFactory::class); - $factory->setUser($user); + Log::debug(sprintf('Convert journal #%d to deposit.', $journal['transaction_journal_id'])); + $type = $journal['transaction_type_type']; + if (TransactionType::DEPOSIT === $type) { + Log::error(sprintf('Journal #%d is already a deposit (rule #%d).', $journal['transaction_journal_id'], $this->action->rule_id)); - // get the action value, or use the original source name in case the action value is empty: - // this becomes a new or existing revenue account. - $revenueName = '' === $this->action->action_value ? $journal['source_account_name'] : $this->action->action_value; - $revenue = $factory->findOrCreate($revenueName, AccountType::REVENUE); + return false; + } - Log::debug(sprintf('ConvertToDeposit. Action value is "%s", revenue name is "%s"', $this->action->action_value, $journal['source_account_name'])); - unset($source); + if (TransactionType::WITHDRAWAL === $type) { + Log::debug('Going to transform a withdrawal to a deposit.'); - // update source transaction(s) to be revenue account - DB::table('transactions') - ->where('transaction_journal_id', '=', $journal['transaction_journal_id']) - ->where('amount', '<', 0) - ->update(['account_id' => $revenue->id]); + return $this->convertWithdrawalArray($journal); + } + if (TransactionType::TRANSFER === $type) { + Log::debug('Going to transform a transfer to a deposit.'); - // change transaction type of journal: - $newType = TransactionType::whereType(TransactionType::DEPOSIT)->first(); + return $this->convertTransferArray($journal); + } - DB::table('transaction_journals') - ->where('id', '=', $journal['transaction_journal_id']) - ->update(['transaction_type_id' => $newType->id]); - - Log::debug('Converted transfer to deposit.'); - - return true; + return false; } /** @@ -143,29 +126,45 @@ class ConvertToDeposit implements ActionInterface } /** - * @inheritDoc + * Input is a transfer from A to B. + * Output is a deposit from C to B. + * + * @param array $journal + * + * @return bool * @throws FireflyException */ - public function actOnArray(array $journal): bool + private function convertTransferArray(array $journal): bool { - Log::debug(sprintf('Convert journal #%d to deposit.', $journal['transaction_journal_id'])); - $type = $journal['transaction_type_type']; - if (TransactionType::DEPOSIT === $type) { - Log::error(sprintf('Journal #%d is already a deposit (rule #%d).', $journal['transaction_journal_id'], $this->action->rule_id)); + $user = User::find($journal['user_id']); + // find or create revenue account. + /** @var AccountFactory $factory */ + $factory = app(AccountFactory::class); + $factory->setUser($user); - return false; - } + // get the action value, or use the original source name in case the action value is empty: + // this becomes a new or existing revenue account. + $revenueName = '' === $this->action->action_value ? $journal['source_account_name'] : $this->action->action_value; + $revenue = $factory->findOrCreate($revenueName, AccountType::REVENUE); - if (TransactionType::WITHDRAWAL === $type) { - Log::debug('Going to transform a withdrawal to a deposit.'); + Log::debug(sprintf('ConvertToDeposit. Action value is "%s", revenue name is "%s"', $this->action->action_value, $journal['source_account_name'])); + unset($source); - return $this->convertWithdrawalArray($journal); - } - if (TransactionType::TRANSFER === $type) { - Log::debug('Going to transform a transfer to a deposit.'); + // update source transaction(s) to be revenue account + DB::table('transactions') + ->where('transaction_journal_id', '=', $journal['transaction_journal_id']) + ->where('amount', '<', 0) + ->update(['account_id' => $revenue->id]); - return $this->convertTransferArray($journal); - } - return false; + // change transaction type of journal: + $newType = TransactionType::whereType(TransactionType::DEPOSIT)->first(); + + DB::table('transaction_journals') + ->where('id', '=', $journal['transaction_journal_id']) + ->update(['transaction_type_id' => $newType->id]); + + Log::debug('Converted transfer to deposit.'); + + return true; } } diff --git a/app/TransactionRules/Actions/ConvertToTransfer.php b/app/TransactionRules/Actions/ConvertToTransfer.php index d4533c499b..03350c696d 100644 --- a/app/TransactionRules/Actions/ConvertToTransfer.php +++ b/app/TransactionRules/Actions/ConvertToTransfer.php @@ -22,16 +22,15 @@ declare(strict_types=1); namespace FireflyIII\TransactionRules\Actions; - - +use DB; use FireflyIII\Models\Account; use FireflyIII\Models\AccountType; use FireflyIII\Models\RuleAction; +use FireflyIII\Models\TransactionJournal; use FireflyIII\Models\TransactionType; use FireflyIII\Repositories\Account\AccountRepositoryInterface; use FireflyIII\User; use Log; -use DB; /** * @@ -56,10 +55,12 @@ class ConvertToTransfer implements ActionInterface */ public function actOnArray(array $journal): bool { - $type = $journal['transaction_type_type']; - $user = User::find($journal['user_id']); + $type = $journal['transaction_type_type']; + $user = User::find($journal['user_id']); if (TransactionType::TRANSFER === $type) { - Log::error(sprintf('Journal #%d is already a transfer so cannot be converted (rule #%d).', $journal['transaction_journal_id'], $this->action->rule_id)); + Log::error( + sprintf('Journal #%d is already a transfer so cannot be converted (rule #%d).', $journal['transaction_journal_id'], $this->action->rule_id) + ); return false; } @@ -70,7 +71,12 @@ class ConvertToTransfer implements ActionInterface $repository->setUser($user); $asset = $repository->findByName($this->action->action_value, [AccountType::ASSET, AccountType::LOAN, AccountType::DEBT, AccountType::MORTGAGE]); if (null === $asset) { - Log::error(sprintf('Journal #%d cannot be converted because no asset with name "%s" exists (rule #%d).', $journal['transaction_journal_id'], $this->action->action_value, $this->action->rule_id)); + Log::error( + sprintf( + 'Journal #%d cannot be converted because no asset with name "%s" exists (rule #%d).', $journal['transaction_journal_id'], + $this->action->action_value, $this->action->rule_id + ) + ); return false; } @@ -88,49 +94,25 @@ class ConvertToTransfer implements ActionInterface return false; // @codeCoverageIgnore } - /** - * A deposit is from Revenue to Asset. - * We replace the Revenue with another asset. - * @param array $journal - * @param Account $asset - * @return bool - */ - private function convertDepositArray(array $journal, Account $asset): bool - { - if ($journal['destination_account_id'] === $asset->id) { - Log::error(vsprintf('Journal #%d has already has "%s" as a destination asset. ConvertToTransfer failed. (rule #%d).', [$journal['transaction_journal_id'], $asset->name, $this->action->rule_id])); - return false; - } - - // update source transaction: - DB::table('transactions') - ->where('transaction_journal_id', '=', $journal['transaction_journal_id']) - ->where('amount', '<', 0) - ->update(['account_id' => $asset->id]); - - // change transaction type of journal: - $newType = TransactionType::whereType(TransactionType::TRANSFER)->first(); - - DB::table('transaction_journals') - ->where('id', '=', $journal['transaction_journal_id']) - ->update(['transaction_type_id' => $newType->id]); - - Log::debug('Converted deposit to transfer.'); - - return true; - } - /** * A withdrawal is from Asset to Expense. * We replace the Expense with another asset. + * * @param array $journal * @param Account $asset + * * @return bool */ private function convertWithdrawalArray(array $journal, Account $asset): bool { if ($journal['source_account_id'] === $asset->id) { - Log::error(vsprintf('Journal #%d has already has "%s" as a source asset. ConvertToTransfer failed. (rule #%d).', [$journal['transaction_journal_id'], $asset->name, $this->action->rule_id])); + Log::error( + vsprintf( + 'Journal #%d has already has "%s" as a source asset. ConvertToTransfer failed. (rule #%d).', + [$journal['transaction_journal_id'], $asset->name, $this->action->rule_id] + ) + ); + return false; } @@ -141,7 +123,7 @@ class ConvertToTransfer implements ActionInterface ->update(['account_id' => $asset->id]); // change transaction type of journal: - $newType = TransactionType::whereType(TransactionType::TRANSFER)->first(); + $newType = TransactionType::whereType(TransactionType::TRANSFER)->first(); DB::table('transaction_journals') ->where('id', '=', $journal['transaction_journal_id']) @@ -152,4 +134,44 @@ class ConvertToTransfer implements ActionInterface return true; } + /** + * A deposit is from Revenue to Asset. + * We replace the Revenue with another asset. + * + * @param array $journal + * @param Account $asset + * + * @return bool + */ + private function convertDepositArray(array $journal, Account $asset): bool + { + if ($journal['destination_account_id'] === $asset->id) { + Log::error( + vsprintf( + 'Journal #%d has already has "%s" as a destination asset. ConvertToTransfer failed. (rule #%d).', + [$journal['transaction_journal_id'], $asset->name, $this->action->rule_id] + ) + ); + + return false; + } + + // update source transaction: + DB::table('transactions') + ->where('transaction_journal_id', '=', $journal['transaction_journal_id']) + ->where('amount', '<', 0) + ->update(['account_id' => $asset->id]); + + // change transaction type of journal: + $newType = TransactionType::whereType(TransactionType::TRANSFER)->first(); + + DB::table('transaction_journals') + ->where('id', '=', $journal['transaction_journal_id']) + ->update(['transaction_type_id' => $newType->id]); + + Log::debug('Converted deposit to transfer.'); + + return true; + } + } diff --git a/app/TransactionRules/Actions/ConvertToWithdrawal.php b/app/TransactionRules/Actions/ConvertToWithdrawal.php index 6d1d60fcc8..1303ec642c 100644 --- a/app/TransactionRules/Actions/ConvertToWithdrawal.php +++ b/app/TransactionRules/Actions/ConvertToWithdrawal.php @@ -22,8 +22,7 @@ declare(strict_types=1); namespace FireflyIII\TransactionRules\Actions; - - +use DB; use FireflyIII\Exceptions\FireflyException; use FireflyIII\Factory\AccountFactory; use FireflyIII\Models\AccountType; @@ -31,7 +30,6 @@ use FireflyIII\Models\RuleAction; use FireflyIII\Models\TransactionType; use FireflyIII\User; use Log; -use DB; /** * @@ -51,47 +49,6 @@ class ConvertToWithdrawal implements ActionInterface $this->action = $action; } - /** - * Input is a transfer from A to B. - * Output is a withdrawal from A to C. - * - * @param array $journal - * @return bool - * @throws FireflyException - */ - private function convertTransferArray(array $journal): bool - { - - - // find or create expense account. - $user = User::find($journal['user_id']); - /** @var AccountFactory $factory */ - $factory = app(AccountFactory::class); - $factory->setUser($user); - - - $expenseName = '' === $this->action->action_value ? $journal['destination_account_name'] : $this->action->action_value; - $expense = $factory->findOrCreate($expenseName, AccountType::EXPENSE); - - Log::debug(sprintf('ConvertToWithdrawal. Action value is "%s", expense name is "%s"', $this->action->action_value, $expenseName)); - - // update destination transaction(s) to be new expense account. - DB::table('transactions') - ->where('transaction_journal_id', '=', $journal['transaction_journal_id']) - ->where('amount', '>', 0) - ->update(['account_id' => $expense->id]); - - // change transaction type of journal: - $newType = TransactionType::whereType(TransactionType::WITHDRAWAL)->first(); - DB::table('transaction_journals') - ->where('id', '=', $journal['transaction_journal_id']) - ->update(['transaction_type_id' => $newType->id]); - - Log::debug('Converted transfer to withdrawal.'); - - return true; - } - /** * @inheritDoc */ @@ -100,6 +57,7 @@ class ConvertToWithdrawal implements ActionInterface $type = $journal['transaction_type_type']; if (TransactionType::WITHDRAWAL === $type) { Log::error(sprintf('Journal #%d is already a withdrawal (rule #%d).', $journal['transaction_journal_id'], $this->action->rule_id)); + return false; } @@ -124,11 +82,9 @@ class ConvertToWithdrawal implements ActionInterface $factory = app(AccountFactory::class); $factory->setUser($user); - $expenseName = '' === $this->action->action_value ? $journal['source_account_name'] : $this->action->action_value; - $expense = $factory->findOrCreate($expenseName, AccountType::EXPENSE); + $expenseName = '' === $this->action->action_value ? $journal['source_account_name'] : $this->action->action_value; + $expense = $factory->findOrCreate($expenseName, AccountType::EXPENSE); $destinationId = $journal['destination_account_id']; - - Log::debug(sprintf('ConvertToWithdrawal. Action value is "%s", expense name is "%s"', $this->action->action_value, $expenseName)); // update source transaction(s) to be the original destination account @@ -144,7 +100,7 @@ class ConvertToWithdrawal implements ActionInterface ->update(['account_id' => $expense->id]); // change transaction type of journal: - $newType = TransactionType::whereType(TransactionType::WITHDRAWAL)->first(); + $newType = TransactionType::whereType(TransactionType::WITHDRAWAL)->first(); DB::table('transaction_journals') ->where('id', '=', $journal['transaction_journal_id']) ->update(['transaction_type_id' => $newType->id]); @@ -154,4 +110,42 @@ class ConvertToWithdrawal implements ActionInterface return true; } + + /** + * Input is a transfer from A to B. + * Output is a withdrawal from A to C. + * + * @param array $journal + * + * @return bool + * @throws FireflyException + */ + private function convertTransferArray(array $journal): bool + { + // find or create expense account. + $user = User::find($journal['user_id']); + /** @var AccountFactory $factory */ + $factory = app(AccountFactory::class); + $factory->setUser($user); + $expenseName = '' === $this->action->action_value ? $journal['destination_account_name'] : $this->action->action_value; + $expense = $factory->findOrCreate($expenseName, AccountType::EXPENSE); + + Log::debug(sprintf('ConvertToWithdrawal. Action value is "%s", expense name is "%s"', $this->action->action_value, $expenseName)); + + // update destination transaction(s) to be new expense account. + DB::table('transactions') + ->where('transaction_journal_id', '=', $journal['transaction_journal_id']) + ->where('amount', '>', 0) + ->update(['account_id' => $expense->id]); + + // change transaction type of journal: + $newType = TransactionType::whereType(TransactionType::WITHDRAWAL)->first(); + DB::table('transaction_journals') + ->where('id', '=', $journal['transaction_journal_id']) + ->update(['transaction_type_id' => $newType->id]); + + Log::debug('Converted transfer to withdrawal.'); + + return true; + } } diff --git a/app/TransactionRules/Actions/DeleteTransaction.php b/app/TransactionRules/Actions/DeleteTransaction.php index 2cb6982025..c372216f4f 100644 --- a/app/TransactionRules/Actions/DeleteTransaction.php +++ b/app/TransactionRules/Actions/DeleteTransaction.php @@ -64,7 +64,9 @@ class DeleteTransaction implements ActionInterface return true; } - Log::debug(sprintf('RuleAction DeleteTransaction DELETED transaction journal #%d ("%s").', $journal['transaction_journal_id'], $journal['description'])); + Log::debug( + sprintf('RuleAction DeleteTransaction DELETED transaction journal #%d ("%s").', $journal['transaction_journal_id'], $journal['description']) + ); // trigger delete factory: $journal = TransactionJournal::find($journal['transaction_group_id']); diff --git a/app/TransactionRules/Actions/LinkToBill.php b/app/TransactionRules/Actions/LinkToBill.php index f0fee3d104..8e8726b512 100644 --- a/app/TransactionRules/Actions/LinkToBill.php +++ b/app/TransactionRules/Actions/LinkToBill.php @@ -58,21 +58,26 @@ class LinkToBill implements ActionInterface /** @var BillRepositoryInterface $repository */ $repository = app(BillRepositoryInterface::class); $repository->setUser($user); - $billName = (string) $this->action->action_value; + $billName = (string)$this->action->action_value; $bill = $repository->findByName($billName); if (null !== $bill && $journal['transaction_type_type'] === TransactionType::WITHDRAWAL) { DB::table('transaction_journals') ->where('id', '=', $journal['transaction_journal_id']) ->update(['bill_id' => $bill->id]); - Log::debug(sprintf('RuleAction LinkToBill set the bill of journal #%d to bill #%d ("%s").', $journal['transaction_journal_id'], $bill->id, $bill->name)); + Log::debug( + sprintf('RuleAction LinkToBill set the bill of journal #%d to bill #%d ("%s").', $journal['transaction_journal_id'], $bill->id, $bill->name) + ); return true; } - Log::error(sprintf('RuleAction LinkToBill could not set the bill of journal #%d to bill "%s": no such bill found or not a withdrawal.', $journal['transaction_journal_id'], $billName)); - - + Log::error( + sprintf( + 'RuleAction LinkToBill could not set the bill of journal #%d to bill "%s": no such bill found or not a withdrawal.', + $journal['transaction_journal_id'], $billName + ) + ); return false; } } diff --git a/app/TransactionRules/Actions/PrependDescription.php b/app/TransactionRules/Actions/PrependDescription.php index 04f7eb4625..4640d72031 100644 --- a/app/TransactionRules/Actions/PrependDescription.php +++ b/app/TransactionRules/Actions/PrependDescription.php @@ -22,8 +22,8 @@ declare(strict_types=1); namespace FireflyIII\TransactionRules\Actions; -use FireflyIII\Models\RuleAction; use DB; +use FireflyIII\Models\RuleAction; /** * Class PrependDescription. @@ -50,6 +50,7 @@ class PrependDescription implements ActionInterface { $description = sprintf('%s%s', $this->action->action_value, $journal['description']); DB::table('transaction_journals')->where('id', $journal['transaction_journal_id'])->limit(1)->update(['description' => $description]); + return true; } } diff --git a/app/TransactionRules/Actions/PrependNotes.php b/app/TransactionRules/Actions/PrependNotes.php index c7d817c84d..569b332dce 100644 --- a/app/TransactionRules/Actions/PrependNotes.php +++ b/app/TransactionRules/Actions/PrependNotes.php @@ -52,19 +52,20 @@ class PrependNotes implements ActionInterface { $dbNote = Note :: - where('noteable_id', (int) $journal['transaction_journal_id']) + where('noteable_id', (int)$journal['transaction_journal_id']) ->where('noteable_type', TransactionJournal::class) ->first(['notes.*']); if (null === $dbNote) { $dbNote = new Note; - $dbNote->noteable_id = (int) $journal['transaction_journal_id']; + $dbNote->noteable_id = (int)$journal['transaction_journal_id']; $dbNote->noteable_type = TransactionJournal::class; $dbNote->text = ''; } Log::debug(sprintf('RuleAction PrependNotes prepended "%s" to "%s".', $this->action->action_value, $dbNote->text)); - $text = sprintf('%s%s', $this->action->action_value, $dbNote->text); + $text = sprintf('%s%s', $this->action->action_value, $dbNote->text); $dbNote->text = $text; $dbNote->save(); + return true; } } diff --git a/app/TransactionRules/Actions/RemoveAllTags.php b/app/TransactionRules/Actions/RemoveAllTags.php index a9665d500c..f373786eec 100644 --- a/app/TransactionRules/Actions/RemoveAllTags.php +++ b/app/TransactionRules/Actions/RemoveAllTags.php @@ -22,11 +22,9 @@ declare(strict_types=1); namespace FireflyIII\TransactionRules\Actions; +use DB; use FireflyIII\Models\RuleAction; use Log; -use DB; - - /** * Class RemoveAllTags. */ diff --git a/app/TransactionRules/Actions/RemoveTag.php b/app/TransactionRules/Actions/RemoveTag.php index f67a785dd3..f8bd4671e8 100644 --- a/app/TransactionRules/Actions/RemoveTag.php +++ b/app/TransactionRules/Actions/RemoveTag.php @@ -22,10 +22,10 @@ declare(strict_types=1); namespace FireflyIII\TransactionRules\Actions; +use DB; use FireflyIII\Models\RuleAction; use FireflyIII\User; use Log; -use DB; /** * Class RemoveTag. diff --git a/app/TransactionRules/Actions/SetBudget.php b/app/TransactionRules/Actions/SetBudget.php index 7a74ced953..73d032004d 100644 --- a/app/TransactionRules/Actions/SetBudget.php +++ b/app/TransactionRules/Actions/SetBudget.php @@ -22,11 +22,11 @@ declare(strict_types=1); namespace FireflyIII\TransactionRules\Actions; +use DB; use FireflyIII\Models\RuleAction; use FireflyIII\Models\TransactionType; use FireflyIII\User; use Log; -use DB; /** * Class SetBudget. @@ -55,7 +55,12 @@ class SetBudget implements ActionInterface $budget = $user->budgets()->where('name', $search)->first(); if (null === $budget) { - Log::debug(sprintf('RuleAction SetBudget could not set budget of journal #%d to "%s" because no such budget exists.', $journal['transaction_journal_id'], $search)); + Log::debug( + sprintf( + 'RuleAction SetBudget could not set budget of journal #%d to "%s" because no such budget exists.', $journal['transaction_journal_id'], + $search + ) + ); return false; } @@ -73,7 +78,9 @@ class SetBudget implements ActionInterface return true; } - Log::debug(sprintf('RuleAction SetBudget set the budget of journal #%d to budget #%d ("%s").', $journal['transaction_journal_id'], $budget->id, $budget->name)); + Log::debug( + sprintf('RuleAction SetBudget set the budget of journal #%d to budget #%d ("%s").', $journal['transaction_journal_id'], $budget->id, $budget->name) + ); DB::table('budget_transaction_journal')->where('transaction_journal_id', '=', $journal['transaction_journal_id'])->delete(); DB::table('budget_transaction_journal')->insert(['transaction_journal_id' => $journal['transaction_journal_id'], 'budget_id' => $budget->id]); diff --git a/app/TransactionRules/Actions/SetCategory.php b/app/TransactionRules/Actions/SetCategory.php index ce32338321..4b2f5a6d1e 100644 --- a/app/TransactionRules/Actions/SetCategory.php +++ b/app/TransactionRules/Actions/SetCategory.php @@ -22,11 +22,11 @@ declare(strict_types=1); namespace FireflyIII\TransactionRules\Actions; +use DB; use FireflyIII\Factory\CategoryFactory; use FireflyIII\Models\RuleAction; use FireflyIII\User; use Log; -use DB; /** * Class SetCategory. @@ -52,8 +52,9 @@ class SetCategory implements ActionInterface { $user = User::find($journal['user_id']); $search = $this->action->action_value; - if(null === $user) { + if (null === $user) { Log::error(sprintf('Journal has no valid user ID so action SetCategory("%s") cannot be applied', $search), $journal); + return false; } @@ -62,12 +63,22 @@ class SetCategory implements ActionInterface $factory->setUser($user); $category = $factory->findOrCreate(null, $search); if (null === $category) { - Log::debug(sprintf('RuleAction SetCategory could not set category of journal #%d to "%s" because no such category exists.', $journal['transaction_journal_id'], $search)); + Log::debug( + sprintf( + 'RuleAction SetCategory could not set category of journal #%d to "%s" because no such category exists.', $journal['transaction_journal_id'], + $search + ) + ); return false; } - Log::debug(sprintf('RuleAction SetCategory set the category of journal #%d to category #%d ("%s").', $journal['transaction_journal_id'], $category->id, $category->name)); + Log::debug( + sprintf( + 'RuleAction SetCategory set the category of journal #%d to category #%d ("%s").', $journal['transaction_journal_id'], $category->id, + $category->name + ) + ); DB::table('category_transaction_journal')->where('transaction_journal_id', '=', $journal['transaction_journal_id'])->delete(); DB::table('category_transaction_journal')->insert(['transaction_journal_id' => $journal['transaction_journal_id'], 'category_id' => $category->id]); diff --git a/app/TransactionRules/Actions/SetDescription.php b/app/TransactionRules/Actions/SetDescription.php index b474b21d2d..fc28d0725b 100644 --- a/app/TransactionRules/Actions/SetDescription.php +++ b/app/TransactionRules/Actions/SetDescription.php @@ -60,6 +60,7 @@ class SetDescription implements ActionInterface $this->action->action_value ) ); + return true; } } diff --git a/app/TransactionRules/Actions/SetDestinationAccount.php b/app/TransactionRules/Actions/SetDestinationAccount.php index ed68324cdc..931362a0bb 100644 --- a/app/TransactionRules/Actions/SetDestinationAccount.php +++ b/app/TransactionRules/Actions/SetDestinationAccount.php @@ -48,27 +48,6 @@ class SetDestinationAccount implements ActionInterface $this->action = $action; } - /** - * @return Account|null - */ - private function findExpenseAccount(): ?Account - { - $account = $this->repository->findByName($this->action->action_value, [AccountType::EXPENSE]); - if (null === $account) { - $data = [ - 'name' => $this->action->action_value, - 'account_type' => 'expense', - 'account_type_id' => null, - 'virtual_balance' => 0, - 'active' => true, - 'iban' => null, - ]; - $account = $this->repository->store($data); - } - Log::debug(sprintf('Found or created expense account #%d ("%s")', $account->id, $account->name)); - return $account; - } - /** * @inheritDoc */ @@ -82,7 +61,11 @@ class SetDestinationAccount implements ActionInterface // it depends on the type what kind of destination account is expected. $expectedTypes = config(sprintf('firefly.source_dests.%s.%s', $type, $journal['source_account_type'])); if (null === $expectedTypes) { - Log::error(sprintf('Configuration line "%s" is unexpectedly empty. Stopped.', sprintf('firefly.source_dests.%s.%s', $type, $journal['source_account_type']))); + Log::error( + sprintf( + 'Configuration line "%s" is unexpectedly empty. Stopped.', sprintf('firefly.source_dests.%s.%s', $type, $journal['source_account_type']) + ) + ); return false; } @@ -106,6 +89,7 @@ class SetDestinationAccount implements ActionInterface $expense = $this->findExpenseAccount(); if (null === $expense) { Log::error('Could not create expense account.'); + return false; } DB::table('transactions') @@ -122,10 +106,33 @@ class SetDestinationAccount implements ActionInterface /** * @param array $types + * * @return Account|null */ private function findAccount(array $types): ?Account { return $this->repository->findByName($this->action->action_value, $types); } + + /** + * @return Account|null + */ + private function findExpenseAccount(): ?Account + { + $account = $this->repository->findByName($this->action->action_value, [AccountType::EXPENSE]); + if (null === $account) { + $data = [ + 'name' => $this->action->action_value, + 'account_type' => 'expense', + 'account_type_id' => null, + 'virtual_balance' => 0, + 'active' => true, + 'iban' => null, + ]; + $account = $this->repository->store($data); + } + Log::debug(sprintf('Found or created expense account #%d ("%s")', $account->id, $account->name)); + + return $account; + } } diff --git a/app/TransactionRules/Actions/SetSourceAccount.php b/app/TransactionRules/Actions/SetSourceAccount.php index 91579b1935..c8711b4e12 100644 --- a/app/TransactionRules/Actions/SetSourceAccount.php +++ b/app/TransactionRules/Actions/SetSourceAccount.php @@ -25,6 +25,8 @@ namespace FireflyIII\TransactionRules\Actions; use DB; use FireflyIII\Models\Account; use FireflyIII\Models\RuleAction; +use FireflyIII\Models\Transaction; +use FireflyIII\Models\TransactionJournal; use FireflyIII\Models\TransactionType; use FireflyIII\Repositories\Account\AccountRepositoryInterface; use FireflyIII\User; @@ -48,6 +50,72 @@ class SetSourceAccount implements ActionInterface $this->action = $action; } + /** + * @inheritDoc + */ + public function actOnArray(array $journal): bool + { + $user = User::find($journal['user_id']); + $type = $journal['transaction_type_type']; + /** @var TransactionJournal $journal */ + $journal = TransactionJournal::find((int)$journal['transaction_journal_id']); + /** @var AccountRepositoryInterface repository */ + $this->repository = app(AccountRepositoryInterface::class); + $this->repository->setUser($user); + + // if this is a transfer or a withdrawal, the new source account must be an asset account or a default account, and it MUST exist: + $newAccount = $this->findAssetAccount($type); + if ((TransactionType::WITHDRAWAL === $type || TransactionType::TRANSFER === $type) && null === $newAccount) { + Log::error( + sprintf( + 'Cannot change source account of journal #%d because no asset account with name "%s" exists.', $journal['transaction_journal_id'], + $this->action->action_value + ) + ); + + return false; + } + // new source account must be different from the current destination: + $destinationId = (int)$journal['destination_account_id']; + /** @var Transaction $source */ + $source = $journal->transactions()->where('amount', '>', 0)->first(); + if (null !== $source) { + $destinationId = $source->account ? (int)$source->account->id : $destinationId; + } + if (TransactionType::TRANSFER === $type && null !== $newAccount && (int)$newAccount->id === $destinationId) { + Log::error( + sprintf( + 'New source account ID #%d and current destination account ID #%d are the same. Do nothing.', $newAccount->id, + $destinationId + ) + ); + + return false; + } + // if this is a deposit, the new source account must be a revenue account and may be created: + if (TransactionType::DEPOSIT === $type) { + $newAccount = $this->findRevenueAccount(); + } + if (null === $newAccount) { + Log::error('New account is NULL'); + + return false; + } + + Log::debug(sprintf('New source account is #%d ("%s").', $newAccount->id, $newAccount->name)); + + // update source transaction with new source account: + // get source transaction: + DB::table('transactions') + ->where('transaction_journal_id', '=', $journal['transaction_journal_id']) + ->where('amount', '<', 0) + ->update(['account_id' => $newAccount->id]); + + Log::debug(sprintf('Updated journal #%d and gave it new source account ID.', $journal['transaction_journal_id'])); + + return true; + } + /** * @param string $type * @@ -83,47 +151,7 @@ class SetSourceAccount implements ActionInterface $account = $this->repository->store($data); } Log::debug(sprintf('Found or created revenue account #%d ("%s")', $account->id, $account->name)); + return $account; } - - /** - * @inheritDoc - */ - public function actOnArray(array $journal): bool - { - $user = User::find($journal['user_id']); - $type = $journal['transaction_type_type']; - $this->repository = app(AccountRepositoryInterface::class); - $this->repository->setUser($user); - - // if this is a transfer or a withdrawal, the new source account must be an asset account or a default account, and it MUST exist: - $newAccount = $this->findAssetAccount($type); - if ((TransactionType::WITHDRAWAL === $type || TransactionType::TRANSFER === $type) && null === $newAccount) { - Log::error(sprintf('Cannot change source account of journal #%d because no asset account with name "%s" exists.', $journal['transaction_journal_id'], $this->action->action_value)); - - return false; - } - - // if this is a deposit, the new source account must be a revenue account and may be created: - if (TransactionType::DEPOSIT === $type) { - $newAccount = $this->findRevenueAccount(); - } - if (null === $newAccount) { - Log::error('New account is NULL'); - return false; - } - - Log::debug(sprintf('New source account is #%d ("%s").', $newAccount->id, $newAccount->name)); - - // update source transaction with new source account: - // get source transaction: - DB::table('transactions') - ->where('transaction_journal_id', '=', $journal['transaction_journal_id']) - ->where('amount', '<', 0) - ->update(['account_id' => $newAccount->id]); - - Log::debug(sprintf('Updated journal #%d and gave it new source account ID.', $journal['transaction_journal_id'])); - - return true; - } } diff --git a/app/TransactionRules/Actions/UpdatePiggybank.php b/app/TransactionRules/Actions/UpdatePiggybank.php index cf29087d13..84fa7917ea 100644 --- a/app/TransactionRules/Actions/UpdatePiggybank.php +++ b/app/TransactionRules/Actions/UpdatePiggybank.php @@ -21,11 +21,7 @@ */ declare(strict_types=1); - - namespace FireflyIII\TransactionRules\Actions; - - use FireflyIII\Models\PiggyBank; use FireflyIII\Models\RuleAction; use FireflyIII\Models\Transaction; @@ -54,42 +50,49 @@ class UpdatePiggybank implements ActionInterface } /** - * @param array $journalArray - * @param PiggyBank $piggyBank - * @param string $amount + * @inheritDoc */ - private function addAmount(array $journalArray, PiggyBank $piggyBank, string $amount): void + public function actOnArray(array $journal): bool { - $user = User::find($journalArray['user_id']); - $journal = $user->transactionJournals()->find($journalArray['transaction_journal_id']); - $repository = app(PiggyBankRepositoryInterface::class); - $repository->setUser($journal->user); + Log::debug(sprintf('Triggered rule action UpdatePiggybank on journal #%d', $journal['transaction_journal_id'])); + if (TransactionType::TRANSFER !== $journal['transaction_type_type']) { + Log::info(sprintf('Journal #%d is a "%s" so skip this action.', $journal['transaction_journal_id'], $journal['transaction_type_type'])); - // how much can we add to the piggy bank? - $toAdd = bcsub($piggyBank->targetamount, $repository->getCurrentAmount($piggyBank)); - Log::debug(sprintf('Max amount to add to piggy bank is %s, amount is %s', $toAdd, $amount)); + return false; + } + $user = User::find($journal['user_id']); - // update amount to fit: - $amount = -1 === bccomp($amount, $toAdd) ? $amount : $toAdd; - Log::debug(sprintf('Amount is now %s', $amount)); + $piggyBank = $this->findPiggybank($user); + if (null === $piggyBank) { + Log::info( + sprintf('No piggy bank names "%s", cant execute action #%d of rule #%d', $this->action->action_value, $this->action->id, $this->action->rule_id) + ); - // if amount is zero, stop. - if (0 === bccomp('0', $amount)) { - Log::warning('Amount left is zero, stop.'); - - return; + return false; } - // make sure we can add amount: - if (false === $repository->canAddAmount($piggyBank, $amount)) { - Log::warning(sprintf('Cannot add %s to piggy bank.', $amount)); + Log::debug(sprintf('Found piggy bank #%d ("%s")', $piggyBank->id, $piggyBank->name)); - return; + /** @var Transaction $source */ + $source = Transaction::where('transaction_journal_id', $journal['transaction_journal_id'])->where('amount', '<', 0)->first(); + /** @var Transaction $destination */ + $destination = Transaction::where('transaction_journal_id', $journal['transaction_journal_id'])->where('amount', '>', 0)->first(); + + if ((int)$source->account_id === (int)$piggyBank->account_id) { + Log::debug('Piggy bank account is linked to source, so remove amount.'); + $this->removeAmount($journal, $piggyBank, $destination->amount); + + return true; } - Log::debug(sprintf('Will now add %s to piggy bank.', $amount)); + if ((int)$destination->account_id === (int)$piggyBank->account_id) { + Log::debug('Piggy bank account is linked to source, so add amount.'); + $this->addAmount($journal, $piggyBank, $destination->amount); - $repository->addAmount($piggyBank, $amount); - $repository->createEventWithJournal($piggyBank, app('steam')->positive($amount), $journal); + return true; + } + Log::info('Piggy bank is not linked to source or destination, so no action will be taken.'); + + return true; } /** @@ -109,8 +112,8 @@ class UpdatePiggybank implements ActionInterface */ private function removeAmount(array $journalArray, PiggyBank $piggyBank, string $amount): void { - $user = User::find($journalArray['user_id']); - $journal = $user->transactionJournals()->find($journalArray['transaction_journal_id']); + $user = User::find($journalArray['user_id']); + $journal = $user->transactionJournals()->find($journalArray['transaction_journal_id']); $repository = app(PiggyBankRepositoryInterface::class); $repository->setUser($journal->user); @@ -141,46 +144,41 @@ class UpdatePiggybank implements ActionInterface } /** - * @inheritDoc + * @param array $journalArray + * @param PiggyBank $piggyBank + * @param string $amount */ - public function actOnArray(array $journal): bool + private function addAmount(array $journalArray, PiggyBank $piggyBank, string $amount): void { - Log::debug(sprintf('Triggered rule action UpdatePiggybank on journal #%d', $journal['transaction_journal_id'])); - if (TransactionType::TRANSFER !== $journal['transaction_type_type']) { - Log::info(sprintf('Journal #%d is a "%s" so skip this action.', $journal['transaction_journal_id'], $journal['transaction_type_type'])); + $user = User::find($journalArray['user_id']); + $journal = $user->transactionJournals()->find($journalArray['transaction_journal_id']); + $repository = app(PiggyBankRepositoryInterface::class); + $repository->setUser($journal->user); - return false; - } - $user = User::find($journal['user_id']); + // how much can we add to the piggy bank? + $toAdd = bcsub($piggyBank->targetamount, $repository->getCurrentAmount($piggyBank)); + Log::debug(sprintf('Max amount to add to piggy bank is %s, amount is %s', $toAdd, $amount)); - $piggyBank = $this->findPiggybank($user); - if (null === $piggyBank) { - Log::info(sprintf('No piggy bank names "%s", cant execute action #%d of rule #%d', $this->action->action_value, $this->action->id, $this->action->rule_id)); + // update amount to fit: + $amount = -1 === bccomp($amount, $toAdd) ? $amount : $toAdd; + Log::debug(sprintf('Amount is now %s', $amount)); - return false; + // if amount is zero, stop. + if (0 === bccomp('0', $amount)) { + Log::warning('Amount left is zero, stop.'); + + return; } - Log::debug(sprintf('Found piggy bank #%d ("%s")', $piggyBank->id, $piggyBank->name)); + // make sure we can add amount: + if (false === $repository->canAddAmount($piggyBank, $amount)) { + Log::warning(sprintf('Cannot add %s to piggy bank.', $amount)); - /** @var Transaction $source */ - $source = Transaction::where('transaction_journal_id', $journal['transaction_journal_id'])->where('amount', '<', 0)->first(); - /** @var Transaction $destination */ - $destination = Transaction::where('transaction_journal_id', $journal['transaction_journal_id'])->where('amount', '>', 0)->first(); - - if ((int) $source->account_id === (int) $piggyBank->account_id) { - Log::debug('Piggy bank account is linked to source, so remove amount.'); - $this->removeAmount($journal, $piggyBank, $destination->amount); - - return true; + return; } - if ((int) $destination->account_id === (int) $piggyBank->account_id) { - Log::debug('Piggy bank account is linked to source, so add amount.'); - $this->addAmount($journal, $piggyBank, $destination->amount); + Log::debug(sprintf('Will now add %s to piggy bank.', $amount)); - return true; - } - Log::info('Piggy bank is not linked to source or destination, so no action will be taken.'); - - return true; + $repository->addAmount($piggyBank, $amount); + $repository->createEventWithJournal($piggyBank, app('steam')->positive($amount), $journal); } } diff --git a/app/TransactionRules/Engine/RuleEngineInterface.php b/app/TransactionRules/Engine/RuleEngineInterface.php index 6f00d01350..c5cf66c2cd 100644 --- a/app/TransactionRules/Engine/RuleEngineInterface.php +++ b/app/TransactionRules/Engine/RuleEngineInterface.php @@ -1,5 +1,4 @@ . - */ namespace FireflyIII\TransactionRules\Engine; diff --git a/app/TransactionRules/Engine/SearchRuleEngine.php b/app/TransactionRules/Engine/SearchRuleEngine.php index 8474d58ea6..0105e3a48b 100644 --- a/app/TransactionRules/Engine/SearchRuleEngine.php +++ b/app/TransactionRules/Engine/SearchRuleEngine.php @@ -223,7 +223,7 @@ class SearchRuleEngine implements RuleEngineInterface Log::debug(sprintf('Now in findStrictRule(#%d)', $rule->id ?? 0)); $searchArray = []; /** @var RuleTrigger $ruleTrigger */ - foreach ($rule->ruleTriggers as $ruleTrigger) { + foreach ($rule->ruleTriggers()->where('active',1)->get() as $ruleTrigger) { // if needs no context, value is different: $needsContext = config(sprintf('firefly.search.operators.%s.needs_context', $ruleTrigger->trigger_type)) ?? true; if (false === $needsContext) { @@ -245,8 +245,6 @@ class SearchRuleEngine implements RuleEngineInterface if ($this->hasSpecificJournalTrigger($searchArray)) { $date = $this->setDateFromJournalTrigger($searchArray); } - - // build and run the search engine. $searchEngine = app(SearchInterface::class); $searchEngine->setUser($this->user); @@ -370,7 +368,7 @@ class SearchRuleEngine implements RuleEngineInterface { Log::debug(sprintf('SearchRuleEngine:: Will now execute actions on transaction journal #%d', $transaction['transaction_journal_id'])); /** @var RuleAction $ruleAction */ - foreach ($rule->ruleActions as $ruleAction) { + foreach ($rule->ruleActions()->where('active',1)->get() as $ruleAction) { $break = $this->processRuleAction($ruleAction, $transaction); if (true === $break) { break; @@ -407,8 +405,6 @@ class SearchRuleEngine implements RuleEngineInterface } // pick up from the action if it actually acted or not: - - if ($ruleAction->stop_processing) { Log::debug(sprintf('Rule action "%s" asks to break, so break!', $ruleAction->action_type)); @@ -448,7 +444,7 @@ class SearchRuleEngine implements RuleEngineInterface $total = new Collection; $count = 0; /** @var RuleTrigger $ruleTrigger */ - foreach ($rule->ruleTriggers as $ruleTrigger) { + foreach ($rule->ruleTriggers()->where('active',1)->get() as $ruleTrigger) { if ('user_action' === $ruleTrigger->trigger_type) { Log::debug('Skip trigger type.'); continue; diff --git a/app/TransactionRules/Factory/ActionFactory.php b/app/TransactionRules/Factory/ActionFactory.php index 0f353ddc2b..37a8acae7b 100644 --- a/app/TransactionRules/Factory/ActionFactory.php +++ b/app/TransactionRules/Factory/ActionFactory.php @@ -1,25 +1,4 @@ . - */ - /** * ActionFactory.php * Copyright (c) 2019 Robert Horlings diff --git a/app/Transformers/AccountTransformer.php b/app/Transformers/AccountTransformer.php index 79436a89c6..3f2f7f3c77 100644 --- a/app/Transformers/AccountTransformer.php +++ b/app/Transformers/AccountTransformer.php @@ -22,8 +22,6 @@ declare(strict_types=1); namespace FireflyIII\Transformers; - - use Carbon\Carbon; use FireflyIII\Models\Account; use FireflyIII\Repositories\Account\AccountRepositoryInterface; diff --git a/app/Transformers/AttachmentTransformer.php b/app/Transformers/AttachmentTransformer.php index d410c8dd88..d1aef15bfa 100644 --- a/app/Transformers/AttachmentTransformer.php +++ b/app/Transformers/AttachmentTransformer.php @@ -22,8 +22,6 @@ declare(strict_types=1); namespace FireflyIII\Transformers; - - use FireflyIII\Models\Attachment; use FireflyIII\Repositories\Attachment\AttachmentRepositoryInterface; diff --git a/app/Transformers/AvailableBudgetTransformer.php b/app/Transformers/AvailableBudgetTransformer.php index f6f504f9e1..558038b976 100644 --- a/app/Transformers/AvailableBudgetTransformer.php +++ b/app/Transformers/AvailableBudgetTransformer.php @@ -22,8 +22,6 @@ declare(strict_types=1); namespace FireflyIII\Transformers; - - use FireflyIII\Models\AvailableBudget; use FireflyIII\Repositories\Budget\BudgetRepositoryInterface; use FireflyIII\Repositories\Budget\NoBudgetRepositoryInterface; diff --git a/app/Transformers/BudgetLimitTransformer.php b/app/Transformers/BudgetLimitTransformer.php index 7bf3a04280..2c148d0962 100644 --- a/app/Transformers/BudgetLimitTransformer.php +++ b/app/Transformers/BudgetLimitTransformer.php @@ -65,8 +65,6 @@ class BudgetLimitTransformer extends AbstractTransformer $expenses = $repository->sumExpenses( $budgetLimit->start_date, $budgetLimit->end_date, null, new Collection([$budgetLimit->budget]), $budgetLimit->transactionCurrency ); - - $currency = $budgetLimit->transactionCurrency; $amount = $budgetLimit->amount; $currencyDecimalPlaces = 2; diff --git a/app/Transformers/BudgetTransformer.php b/app/Transformers/BudgetTransformer.php index 2be1ba1e36..c6f08544aa 100644 --- a/app/Transformers/BudgetTransformer.php +++ b/app/Transformers/BudgetTransformer.php @@ -22,8 +22,6 @@ declare(strict_types=1); namespace FireflyIII\Transformers; - - use FireflyIII\Models\AutoBudget; use FireflyIII\Models\Budget; use FireflyIII\Repositories\Budget\BudgetRepositoryInterface; diff --git a/app/Transformers/CategoryTransformer.php b/app/Transformers/CategoryTransformer.php index 381101856c..4ece2543ca 100644 --- a/app/Transformers/CategoryTransformer.php +++ b/app/Transformers/CategoryTransformer.php @@ -22,8 +22,6 @@ declare(strict_types=1); namespace FireflyIII\Transformers; - - use FireflyIII\Models\Category; use FireflyIII\Repositories\Category\CategoryRepositoryInterface; use FireflyIII\Repositories\Category\OperationsRepositoryInterface; diff --git a/app/Transformers/CurrencyExchangeRateTransformer.php b/app/Transformers/CurrencyExchangeRateTransformer.php index d7fdbdea63..2f4f72796a 100644 --- a/app/Transformers/CurrencyExchangeRateTransformer.php +++ b/app/Transformers/CurrencyExchangeRateTransformer.php @@ -22,8 +22,6 @@ declare(strict_types=1); namespace FireflyIII\Transformers; - - use FireflyIII\Models\CurrencyExchangeRate; /** diff --git a/app/Transformers/LinkTypeTransformer.php b/app/Transformers/LinkTypeTransformer.php index 4c9847f0aa..9bdf19cb2f 100644 --- a/app/Transformers/LinkTypeTransformer.php +++ b/app/Transformers/LinkTypeTransformer.php @@ -22,8 +22,6 @@ declare(strict_types=1); namespace FireflyIII\Transformers; - - use FireflyIII\Models\LinkType; /** diff --git a/app/Transformers/ObjectGroupTransformer.php b/app/Transformers/ObjectGroupTransformer.php index e71da4d0c1..e6509fcc30 100644 --- a/app/Transformers/ObjectGroupTransformer.php +++ b/app/Transformers/ObjectGroupTransformer.php @@ -22,8 +22,6 @@ declare(strict_types=1); namespace FireflyIII\Transformers; - - use FireflyIII\Models\ObjectGroup; use FireflyIII\Repositories\ObjectGroup\ObjectGroupRepositoryInterface; diff --git a/app/Transformers/PiggyBankEventTransformer.php b/app/Transformers/PiggyBankEventTransformer.php index c5a9e4f48e..ef4e34ed2b 100644 --- a/app/Transformers/PiggyBankEventTransformer.php +++ b/app/Transformers/PiggyBankEventTransformer.php @@ -22,8 +22,6 @@ declare(strict_types=1); namespace FireflyIII\Transformers; - - use FireflyIII\Models\PiggyBankEvent; use FireflyIII\Repositories\Account\AccountRepositoryInterface; use FireflyIII\Repositories\Currency\CurrencyRepositoryInterface; diff --git a/app/Transformers/PiggyBankTransformer.php b/app/Transformers/PiggyBankTransformer.php index 41fac2d3bb..40e8e7cc31 100644 --- a/app/Transformers/PiggyBankTransformer.php +++ b/app/Transformers/PiggyBankTransformer.php @@ -22,8 +22,6 @@ declare(strict_types=1); namespace FireflyIII\Transformers; - - use FireflyIII\Models\Account; use FireflyIII\Models\ObjectGroup; use FireflyIII\Models\PiggyBank; @@ -51,8 +49,6 @@ class PiggyBankTransformer extends AbstractTransformer $this->currencyRepos = app(CurrencyRepositoryInterface::class); $this->piggyRepos = app(PiggyBankRepositoryInterface::class); } - - /** * Transform the piggy bank. * diff --git a/app/Transformers/PreferenceTransformer.php b/app/Transformers/PreferenceTransformer.php index 1455cc0cd8..f48b92f3e8 100644 --- a/app/Transformers/PreferenceTransformer.php +++ b/app/Transformers/PreferenceTransformer.php @@ -22,8 +22,6 @@ declare(strict_types=1); namespace FireflyIII\Transformers; - - use FireflyIII\Models\Preference; /** diff --git a/app/Transformers/RecurrenceTransformer.php b/app/Transformers/RecurrenceTransformer.php index c8e063a96e..1cc028e077 100644 --- a/app/Transformers/RecurrenceTransformer.php +++ b/app/Transformers/RecurrenceTransformer.php @@ -22,8 +22,6 @@ declare(strict_types=1); namespace FireflyIII\Transformers; - - use Carbon\Carbon; use FireflyIII\Exceptions\FireflyException; use FireflyIII\Factory\CategoryFactory; @@ -196,8 +194,6 @@ class RecurrenceTransformer extends AbstractTransformer $destinationType = $destinationAccount->accountType->type; $destinationIban = $destinationAccount->iban; } - - $amount = number_format((float)$transaction->amount, $transaction->transactionCurrency->decimal_places, '.', ''); $foreignAmount = null; if (null !== $transaction->foreign_currency_id && null !== $transaction->foreign_amount) { diff --git a/app/Transformers/RuleGroupTransformer.php b/app/Transformers/RuleGroupTransformer.php index c771d38567..7e608b922c 100644 --- a/app/Transformers/RuleGroupTransformer.php +++ b/app/Transformers/RuleGroupTransformer.php @@ -56,8 +56,4 @@ class RuleGroupTransformer extends AbstractTransformer ], ]; } - - } - - diff --git a/app/Transformers/RuleTransformer.php b/app/Transformers/RuleTransformer.php index 202df6e659..af403daaae 100644 --- a/app/Transformers/RuleTransformer.php +++ b/app/Transformers/RuleTransformer.php @@ -22,8 +22,6 @@ declare(strict_types=1); namespace FireflyIII\Transformers; - - use FireflyIII\Exceptions\FireflyException; use FireflyIII\Models\Rule; use FireflyIII\Models\RuleAction; diff --git a/app/Transformers/TagTransformer.php b/app/Transformers/TagTransformer.php index c63918027e..ed2fd634f0 100644 --- a/app/Transformers/TagTransformer.php +++ b/app/Transformers/TagTransformer.php @@ -22,8 +22,6 @@ declare(strict_types=1); namespace FireflyIII\Transformers; - - use FireflyIII\Models\Location; use FireflyIII\Models\Tag; diff --git a/app/Transformers/TransactionLinkTransformer.php b/app/Transformers/TransactionLinkTransformer.php index 7cdb4dd2ae..e53bf42c72 100644 --- a/app/Transformers/TransactionLinkTransformer.php +++ b/app/Transformers/TransactionLinkTransformer.php @@ -22,8 +22,6 @@ declare(strict_types=1); namespace FireflyIII\Transformers; - - use FireflyIII\Models\TransactionJournalLink; use FireflyIII\Repositories\Journal\JournalRepositoryInterface; diff --git a/app/Transformers/UserTransformer.php b/app/Transformers/UserTransformer.php index 161caa997b..83aee3177a 100644 --- a/app/Transformers/UserTransformer.php +++ b/app/Transformers/UserTransformer.php @@ -22,8 +22,6 @@ declare(strict_types=1); namespace FireflyIII\Transformers; - - use FireflyIII\Repositories\User\UserRepositoryInterface; use FireflyIII\User; diff --git a/app/Transformers/WebhookAttemptTransformer.php b/app/Transformers/WebhookAttemptTransformer.php index dd91501787..4e8c8a3990 100644 --- a/app/Transformers/WebhookAttemptTransformer.php +++ b/app/Transformers/WebhookAttemptTransformer.php @@ -22,8 +22,6 @@ declare(strict_types=1); namespace FireflyIII\Transformers; - - use FireflyIII\Models\WebhookAttempt; /** diff --git a/app/Validation/AutoBudget/ValidatesAutoBudgetRequest.php b/app/Validation/AutoBudget/ValidatesAutoBudgetRequest.php index 1555bf35ed..7d8909de01 100644 --- a/app/Validation/AutoBudget/ValidatesAutoBudgetRequest.php +++ b/app/Validation/AutoBudget/ValidatesAutoBudgetRequest.php @@ -22,8 +22,6 @@ declare(strict_types=1); namespace FireflyIII\Validation\AutoBudget; - - use Illuminate\Validation\Validator; /** diff --git a/app/Validation/CurrencyValidation.php b/app/Validation/CurrencyValidation.php index 1220d103d0..b92d9cb3f6 100644 --- a/app/Validation/CurrencyValidation.php +++ b/app/Validation/CurrencyValidation.php @@ -23,8 +23,6 @@ declare(strict_types=1); namespace FireflyIII\Validation; - - use Illuminate\Validation\Validator; use Log; diff --git a/app/Validation/FireflyValidator.php b/app/Validation/FireflyValidator.php index dffebe32d2..8aef97bcec 100644 --- a/app/Validation/FireflyValidator.php +++ b/app/Validation/FireflyValidator.php @@ -629,8 +629,6 @@ class FireflyValidator extends Validator $response = $responses[$this->data['response']] ?? 0; $delivery = $deliveries[$this->data['delivery']] ?? 0; } - - $url = $this->data['url']; $userId = auth()->user()->id; @@ -672,8 +670,6 @@ class FireflyValidator extends Validator if (!isset($parameters[2]) && isset($data['id']) && (int)$data['id'] > 0) { $exclude = (int)$data['id']; } - - // get entries from table $set = DB::table($table)->where('user_id', auth()->user()->id)->whereNull('deleted_at') ->where('id', '!=', $exclude)->get([$field]); diff --git a/app/Validation/GroupValidation.php b/app/Validation/GroupValidation.php index 2e150db636..2e8043eb55 100644 --- a/app/Validation/GroupValidation.php +++ b/app/Validation/GroupValidation.php @@ -133,6 +133,4 @@ trait GroupValidation $validator->errors()->add(sprintf('transactions.%d.source_name', $index), (string)trans('validation.need_id_in_edit')); } } - - } diff --git a/app/Validation/RecurrenceValidation.php b/app/Validation/RecurrenceValidation.php index 35f10bf622..3fa05d77cd 100644 --- a/app/Validation/RecurrenceValidation.php +++ b/app/Validation/RecurrenceValidation.php @@ -90,8 +90,6 @@ trait RecurrenceValidation ) { continue; } - - // validate source account. $sourceId = isset($transaction['source_id']) ? (int)$transaction['source_id'] : null; $sourceName = $transaction['source_name'] ?? null; diff --git a/app/Validation/TransactionValidation.php b/app/Validation/TransactionValidation.php index 5c04015d40..2ea32dae7b 100644 --- a/app/Validation/TransactionValidation.php +++ b/app/Validation/TransactionValidation.php @@ -201,8 +201,6 @@ trait TransactionValidation $accountValidator->source = $source; } } - - $destinationId = (int)($transaction['destination_id'] ?? 0); $destinationName = $transaction['destination_name'] ?? null; $validDestination = $accountValidator->validateDestination($destinationId, $destinationName, null); diff --git a/changelog.md b/changelog.md index 7bf5e1551b..9801ff3606 100644 --- a/changelog.md +++ b/changelog.md @@ -4,63 +4,68 @@ This project adheres to [Semantic Versioning](http://semver.org/). ## Unreleased -## 5.5.0 (API 1.5.0) 2021-xx-xx +- No unreleased changes. + +## 5.5.0 (API 1.5.0) 2021-03-27 ### Added -- [Issue 3717](https://github.com/firefly-iii/firefly-iii/issues/3717) Also export all optional metadata in the CSV files. -- [Issue 4007](https://github.com/firefly-iii/firefly-iii/issues/4007) Whe updating transactions using a rule, the message will return the number of changed transactions. -- [Issue 4334](https://github.com/firefly-iii/firefly-iii/issues/4334) Added the Portuguese language. -- [Issue 4338](https://github.com/firefly-iii/firefly-iii/issues/4338) The recurring transactions calendar was off by one day. -- [Issue 4339](https://github.com/firefly-iii/firefly-iii/issues/4339) When deleting recurring transactions you would be redirected to the deleted recurring transaction. -- [Issue 4340](https://github.com/firefly-iii/firefly-iii/issues/4340) When running rules, any date related actions and triggers will pick up the correct date. -- [Issue 4406](https://github.com/firefly-iii/firefly-iii/issues/4406) SQL errors when submitting large amounts to the budget overview. -- [Issue 4412](https://github.com/firefly-iii/firefly-iii/issues/4412) During the cron job a NULL pointer could pop up. -- [Issue 4488](https://github.com/firefly-iii/firefly-iii/issues/4488) The Japanese Yen was corrected to zero decimals. -- [Issue 4503](https://github.com/firefly-iii/firefly-iii/issues/4503) When bills skip a moment the amounts would be off. + +- [Issue 3717](https://github.com/firefly-iii/firefly-iii/issues/3717) The CSV export will also export all optional metadata. +- [Issue 4007](https://github.com/firefly-iii/firefly-iii/issues/4007) The message returned when updating transactions using a rull will return the number of changed transactions. +- [Issue 4334](https://github.com/firefly-iii/firefly-iii/issues/4334) Support for Portuguese! 🇵🇹 +- [Issue 4338](https://github.com/firefly-iii/firefly-iii/issues/4338) The recurring transactions calendar was off by one day, this is now fixed. +- [Issue 4339](https://github.com/firefly-iii/firefly-iii/issues/4339) A bad redirect would send you to a 404. +- [Issue 4340](https://github.com/firefly-iii/firefly-iii/issues/4340) Any date related rule actions and triggers will pick up the correct date from the transaction. +- [Issue 4406](https://github.com/firefly-iii/firefly-iii/issues/4406) SQL errors when submitting large amounts to the budget overview are now fixed. +- [Issue 4412](https://github.com/firefly-iii/firefly-iii/issues/4412) The cron job could show you a null pointer. +- [Issue 4488](https://github.com/firefly-iii/firefly-iii/issues/4488) The Japanese Yen has been corrected to zero decimals. +- [Issue 4503](https://github.com/firefly-iii/firefly-iii/issues/4503) When bills skip a moment the amounts in the overview would be off. - Firefly III now supports [webhooks](https://docs.firefly-iii.org/firefly-iii/pages-and-features/webhooks/). - The search now also supports searching for transactions using `id:123`. ### Changed + - OAuth settings are visible for LDAP users. - If you set `FIREFLY_III_LAYOUT=v2`, Firefly III will show you the new layout on pages where it's available. -- New favicon. -- Cron job endpoint has changed. +- A new favicon based on the future logo of Firefly III. +- ⚠️ The URL to call the cron job from the web has changed to `api/v1/cron/[token here]`. ### Deprecated - The current layout will no longer receive fixes and changes. ### Fixed -- [Issue 4045](https://github.com/firefly-iii/firefly-iii/issues/4045) Error message for "Amount Missing" doesn't have a look up value -- [Issue 4055](https://github.com/firefly-iii/firefly-iii/issues/4055) Budget report is crashing -- [Issue 4060](https://github.com/firefly-iii/firefly-iii/issues/4060) Remote user guard: 500 error about type conversion -- [Issue 4070](https://github.com/firefly-iii/firefly-iii/issues/4070) Tagging recurring transactions -- [Issue 4071](https://github.com/firefly-iii/firefly-iii/issues/4071) Update rules -- [Issue 4074](https://github.com/firefly-iii/firefly-iii/issues/4074) Audit logging would brake some Apache servers -- [Issue 4098](https://github.com/firefly-iii/firefly-iii/issues/4098) Search reports "Firefly III found 50 transactions in x.xxx seconds" even when it only finds one -- [Issue 4108](https://github.com/firefly-iii/firefly-iii/issues/4108) Fix category update in bulk update -- [Issue 4112](https://github.com/firefly-iii/firefly-iii/issues/4112) Broken redirect after delete +- [Issue 4045](https://github.com/firefly-iii/firefly-iii/issues/4045) The error message for "amount missing" now has a look up value +- [Issue 4055](https://github.com/firefly-iii/firefly-iii/issues/4055) The budget report crashed when opening. +- [Issue 4060](https://github.com/firefly-iii/firefly-iii/issues/4060) The remote user guard would show a 500 error about type conversion. +- [Issue 4070](https://github.com/firefly-iii/firefly-iii/issues/4070) Tagging recurring transactions would not work. +- [Issue 4071](https://github.com/firefly-iii/firefly-iii/issues/4071) Selecting piggy banks in rules was broken. +- [Issue 4074](https://github.com/firefly-iii/firefly-iii/issues/4074) Audit logging would break some Apache servers +- [Issue 4098](https://github.com/firefly-iii/firefly-iii/issues/4098) Search reports "Firefly III found 50 transactions in x seconds" even when it only finds one. +- [Issue 4108](https://github.com/firefly-iii/firefly-iii/issues/4108) Fix category update in bulk update. +- [Issue 4112](https://github.com/firefly-iii/firefly-iii/issues/4112) Broken redirect after delete. - [Issue 4158](https://github.com/firefly-iii/firefly-iii/issues/4158) `strtolower` breaks some translations. -- [Issue 4162](https://github.com/firefly-iii/firefly-iii/issues/4162) stop processing does not stop other rules in rule group -- [Issue 4169](https://github.com/firefly-iii/firefly-iii/issues/4169) Sorting by Date on Category Report sorts alphabetically -- [Issue 4175](https://github.com/firefly-iii/firefly-iii/issues/4175) Bad math in long periods -- [Issue 4186](https://github.com/firefly-iii/firefly-iii/issues/4186) Could not add translation link -- [Issue 4200](https://github.com/firefly-iii/firefly-iii/issues/4200) Null pointer when running rules. -- [Issue 4207](https://github.com/firefly-iii/firefly-iii/issues/4207) Fix spent per day box -- [Issue 4231](https://github.com/firefly-iii/firefly-iii/issues/4231) Inconsistent hiding of columns -- [Issue 4235](https://github.com/firefly-iii/firefly-iii/issues/4235) Info popup instandard financial report does not apply report's account filter -- [Issue 4241](https://github.com/firefly-iii/firefly-iii/issues/4241) Broken chart -- PHP configs that have "MB" as size indicator would be parsed badly. -- RSA token generation is now PHP7/8 compatible. +- [Issue 4162](https://github.com/firefly-iii/firefly-iii/issues/4162) Stop processing does not stop other rules in rule group +- [Issue 4169](https://github.com/firefly-iii/firefly-iii/issues/4169) Sorting by date on category Report sorts alphabetically instead. +- [Issue 4175](https://github.com/firefly-iii/firefly-iii/issues/4175) Bad math in long periods. +- [Issue 4186](https://github.com/firefly-iii/firefly-iii/issues/4186) Could not add translation link. +- [Issue 4200](https://github.com/firefly-iii/firefly-iii/issues/4200) A rare null pointer exception when running rules. +- [Issue 4207](https://github.com/firefly-iii/firefly-iii/issues/4207) Fix the "spent per day" box. +- [Issue 4231](https://github.com/firefly-iii/firefly-iii/issues/4231) Inconsistent hiding of columns. +- [Issue 4235](https://github.com/firefly-iii/firefly-iii/issues/4235) The info popup in the standard financial report does not apply report's account filter. +- [Issue 4241](https://github.com/firefly-iii/firefly-iii/issues/4241) A broken chart works again. +- [Issue 4520](https://github.com/firefly-iii/firefly-iii/issues/4520) RSA token generation is now PHP7/8 compatible. +- [Issue 4529](https://github.com/firefly-iii/firefly-iii/issues/4529) Convert transaction routine was broken. +- PHP configurations that have "MB" as size indicator would be parsed badly. ### API -*Lots of API changes, make sure you read [the documentation](https://api-docs.firefly-iii.org/).* +⚠️ *Lots of API changes, make sure you read [the documentation](https://api-docs.firefly-iii.org/).* ⚠️ - [Issue 4050](https://github.com/firefly-iii/firefly-iii/issues/4050) Updated Transaction Search API to set limit from user preferences - [Issue 4113](https://github.com/firefly-iii/firefly-iii/issues/4113) Piggy Bank API Deletes Some Piggy Metadata - [Issue 4122](https://github.com/firefly-iii/firefly-iii/issues/4122) Remove reconciliation accounts from autocomplete -- [Issue 4195](https://github.com/firefly-iii/firefly-iii/issues/4195) User endpoint broken -- [Issue 4199](https://github.com/firefly-iii/firefly-iii/issues/4199) Unable to update tags using API +- [Issue 4195](https://github.com/firefly-iii/firefly-iii/issues/4195) User endpoint was broken. +- [Issue 4199](https://github.com/firefly-iii/firefly-iii/issues/4199) Unable to update tags using API. - [Issue 4394](https://github.com/firefly-iii/firefly-iii/issues/4394) Storing budgets works again. - [Issue 4426](https://github.com/firefly-iii/firefly-iii/issues/4426) Storing accounts would lead to bad capitalization in liability type. - [Issue 4435](https://github.com/firefly-iii/firefly-iii/issues/4435) Storing piggy banks with object group information would fail. diff --git a/composer.lock b/composer.lock index 5828ad86e0..60a5f9df53 100644 --- a/composer.lock +++ b/composer.lock @@ -1254,22 +1254,22 @@ }, { "name": "guzzlehttp/guzzle", - "version": "7.2.0", + "version": "7.3.0", "source": { "type": "git", "url": "https://github.com/guzzle/guzzle.git", - "reference": "0aa74dfb41ae110835923ef10a9d803a22d50e79" + "reference": "7008573787b430c1c1f650e3722d9bba59967628" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/0aa74dfb41ae110835923ef10a9d803a22d50e79", - "reference": "0aa74dfb41ae110835923ef10a9d803a22d50e79", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/7008573787b430c1c1f650e3722d9bba59967628", + "reference": "7008573787b430c1c1f650e3722d9bba59967628", "shasum": "" }, "require": { "ext-json": "*", "guzzlehttp/promises": "^1.4", - "guzzlehttp/psr7": "^1.7", + "guzzlehttp/psr7": "^1.7 || ^2.0", "php": "^7.2.5 || ^8.0", "psr/http-client": "^1.0" }, @@ -1277,6 +1277,7 @@ "psr/http-client-implementation": "1.0" }, "require-dev": { + "bamarni/composer-bin-plugin": "^1.4.1", "ext-curl": "*", "php-http/client-integration-tests": "^3.0", "phpunit/phpunit": "^8.5.5 || ^9.3.5", @@ -1290,7 +1291,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "7.1-dev" + "dev-master": "7.3-dev" } }, "autoload": { @@ -1332,7 +1333,7 @@ ], "support": { "issues": "https://github.com/guzzle/guzzle/issues", - "source": "https://github.com/guzzle/guzzle/tree/7.2.0" + "source": "https://github.com/guzzle/guzzle/tree/7.3.0" }, "funding": [ { @@ -1352,7 +1353,7 @@ "type": "github" } ], - "time": "2020-10-10T11:47:56+00:00" + "time": "2021-03-23T11:33:13+00:00" }, { "name": "guzzlehttp/promises", @@ -1411,16 +1412,16 @@ }, { "name": "guzzlehttp/psr7", - "version": "1.7.0", + "version": "1.8.1", "source": { "type": "git", "url": "https://github.com/guzzle/psr7.git", - "reference": "53330f47520498c0ae1f61f7e2c90f55690c06a3" + "reference": "35ea11d335fd638b5882ff1725228b3d35496ab1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/53330f47520498c0ae1f61f7e2c90f55690c06a3", - "reference": "53330f47520498c0ae1f61f7e2c90f55690c06a3", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/35ea11d335fd638b5882ff1725228b3d35496ab1", + "reference": "35ea11d335fd638b5882ff1725228b3d35496ab1", "shasum": "" }, "require": { @@ -1480,9 +1481,9 @@ ], "support": { "issues": "https://github.com/guzzle/psr7/issues", - "source": "https://github.com/guzzle/psr7/tree/1.7.0" + "source": "https://github.com/guzzle/psr7/tree/1.8.1" }, - "time": "2020-09-30T07:37:11+00:00" + "time": "2021-03-21T16:25:00+00:00" }, { "name": "jc5/google2fa-laravel", @@ -1641,16 +1642,16 @@ }, { "name": "laravel/framework", - "version": "v8.33.1", + "version": "v8.34.0", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "354c57b8cb457549114074c500944455a288d6cc" + "reference": "81892ca110795a9c46c7e198cba7763bfd2af0bf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/354c57b8cb457549114074c500944455a288d6cc", - "reference": "354c57b8cb457549114074c500944455a288d6cc", + "url": "https://api.github.com/repos/laravel/framework/zipball/81892ca110795a9c46c7e198cba7763bfd2af0bf", + "reference": "81892ca110795a9c46c7e198cba7763bfd2af0bf", "shasum": "" }, "require": { @@ -1805,7 +1806,7 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2021-03-16T19:42:32+00:00" + "time": "2021-03-23T15:12:51+00:00" }, { "name": "laravel/passport", @@ -2077,16 +2078,16 @@ }, { "name": "lcobucci/jwt", - "version": "4.1.3", + "version": "4.1.4", "source": { "type": "git", "url": "https://github.com/lcobucci/jwt.git", - "reference": "1e66927ea937c199539f8a8a35e284b6667c4f2c" + "reference": "71cf170102c8371ccd933fa4df6252086d144de6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/lcobucci/jwt/zipball/1e66927ea937c199539f8a8a35e284b6667c4f2c", - "reference": "1e66927ea937c199539f8a8a35e284b6667c4f2c", + "url": "https://api.github.com/repos/lcobucci/jwt/zipball/71cf170102c8371ccd933fa4df6252086d144de6", + "reference": "71cf170102c8371ccd933fa4df6252086d144de6", "shasum": "" }, "require": { @@ -2135,7 +2136,7 @@ ], "support": { "issues": "https://github.com/lcobucci/jwt/issues", - "source": "https://github.com/lcobucci/jwt/tree/4.1.3" + "source": "https://github.com/lcobucci/jwt/tree/4.1.4" }, "funding": [ { @@ -2147,7 +2148,7 @@ "type": "patreon" } ], - "time": "2021-03-19T20:58:12+00:00" + "time": "2021-03-23T23:53:08+00:00" }, { "name": "league/commonmark", @@ -2252,22 +2253,22 @@ }, { "name": "league/csv", - "version": "9.6.2", + "version": "9.7.0", "source": { "type": "git", "url": "https://github.com/thephpleague/csv.git", - "reference": "f28da6e483bf979bac10e2add384c90ae9983e4e" + "reference": "4cacd9c72c4aa8bdbef43315b2ca25c46a0f833f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/thephpleague/csv/zipball/f28da6e483bf979bac10e2add384c90ae9983e4e", - "reference": "f28da6e483bf979bac10e2add384c90ae9983e4e", + "url": "https://api.github.com/repos/thephpleague/csv/zipball/4cacd9c72c4aa8bdbef43315b2ca25c46a0f833f", + "reference": "4cacd9c72c4aa8bdbef43315b2ca25c46a0f833f", "shasum": "" }, "require": { "ext-json": "*", "ext-mbstring": "*", - "php": ">=7.2.5" + "php": "^7.3 || ^8.0" }, "require-dev": { "ext-curl": "*", @@ -2276,7 +2277,7 @@ "phpstan/phpstan": "^0.12.0", "phpstan/phpstan-phpunit": "^0.12.0", "phpstan/phpstan-strict-rules": "^0.12.0", - "phpunit/phpunit": "^8.5" + "phpunit/phpunit": "^9.5" }, "suggest": { "ext-dom": "Required to use the XMLConverter and or the HTMLConverter classes", @@ -2332,7 +2333,7 @@ "type": "github" } ], - "time": "2020-12-10T19:40:30+00:00" + "time": "2021-03-26T22:08:10+00:00" }, { "name": "league/event", @@ -7743,16 +7744,16 @@ }, { "name": "composer/xdebug-handler", - "version": "1.4.5", + "version": "1.4.6", "source": { "type": "git", "url": "https://github.com/composer/xdebug-handler.git", - "reference": "f28d44c286812c714741478d968104c5e604a1d4" + "reference": "f27e06cd9675801df441b3656569b328e04aa37c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/f28d44c286812c714741478d968104c5e604a1d4", - "reference": "f28d44c286812c714741478d968104c5e604a1d4", + "url": "https://api.github.com/repos/composer/xdebug-handler/zipball/f27e06cd9675801df441b3656569b328e04aa37c", + "reference": "f27e06cd9675801df441b3656569b328e04aa37c", "shasum": "" }, "require": { @@ -7760,7 +7761,8 @@ "psr/log": "^1.0" }, "require-dev": { - "phpunit/phpunit": "^4.8.35 || ^5.7 || 6.5 - 8" + "phpstan/phpstan": "^0.12.55", + "symfony/phpunit-bridge": "^4.2 || ^5" }, "type": "library", "autoload": { @@ -7786,7 +7788,7 @@ "support": { "irc": "irc://irc.freenode.org/composer", "issues": "https://github.com/composer/xdebug-handler/issues", - "source": "https://github.com/composer/xdebug-handler/tree/1.4.5" + "source": "https://github.com/composer/xdebug-handler/tree/1.4.6" }, "funding": [ { @@ -7802,7 +7804,7 @@ "type": "tidelift" } ], - "time": "2020-11-13T08:04:11+00:00" + "time": "2021-03-25T17:01:18+00:00" }, { "name": "dnoegel/php-xdg-base-dir", @@ -9233,16 +9235,16 @@ }, { "name": "phpunit/php-code-coverage", - "version": "9.2.5", + "version": "9.2.6", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "f3e026641cc91909d421802dd3ac7827ebfd97e1" + "reference": "f6293e1b30a2354e8428e004689671b83871edde" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/f3e026641cc91909d421802dd3ac7827ebfd97e1", - "reference": "f3e026641cc91909d421802dd3ac7827ebfd97e1", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/f6293e1b30a2354e8428e004689671b83871edde", + "reference": "f6293e1b30a2354e8428e004689671b83871edde", "shasum": "" }, "require": { @@ -9298,7 +9300,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.5" + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/9.2.6" }, "funding": [ { @@ -9306,7 +9308,7 @@ "type": "github" } ], - "time": "2020-11-28T06:44:49+00:00" + "time": "2021-03-28T07:26:59+00:00" }, { "name": "phpunit/php-file-iterator", @@ -9551,16 +9553,16 @@ }, { "name": "phpunit/phpunit", - "version": "9.5.3", + "version": "9.5.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "27241ac75fc37ecf862b6e002bf713b6566cbe41" + "reference": "c73c6737305e779771147af66c96ca6a7ed8a741" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/27241ac75fc37ecf862b6e002bf713b6566cbe41", - "reference": "27241ac75fc37ecf862b6e002bf713b6566cbe41", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/c73c6737305e779771147af66c96ca6a7ed8a741", + "reference": "c73c6737305e779771147af66c96ca6a7ed8a741", "shasum": "" }, "require": { @@ -9638,7 +9640,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/phpunit/issues", - "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.3" + "source": "https://github.com/sebastianbergmann/phpunit/tree/9.5.4" }, "funding": [ { @@ -9650,7 +9652,7 @@ "type": "github" } ], - "time": "2021-03-17T07:30:34+00:00" + "time": "2021-03-23T07:16:29+00:00" }, { "name": "react/promise", @@ -9708,12 +9710,12 @@ "source": { "type": "git", "url": "https://github.com/Roave/SecurityAdvisories.git", - "reference": "11b8a607a59818bb21fc9ffb334f03032a6ce5dc" + "reference": "d113d94cd9d8bc7ec35be1179315ed06b21b26c8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/11b8a607a59818bb21fc9ffb334f03032a6ce5dc", - "reference": "11b8a607a59818bb21fc9ffb334f03032a6ce5dc", + "url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/d113d94cd9d8bc7ec35be1179315ed06b21b26c8", + "reference": "d113d94cd9d8bc7ec35be1179315ed06b21b26c8", "shasum": "" }, "conflict": { @@ -9780,7 +9782,7 @@ "ezsystems/platform-ui-assets-bundle": ">=4.2,<4.2.3", "ezsystems/repository-forms": ">=2.3,<2.3.2.1", "ezyang/htmlpurifier": "<4.1.1", - "facade/ignition": "<=2.5.1,>=2.0|<=1.16.13", + "facade/ignition": "<1.16.14|>=2,<2.4.2|>=2.5,<2.5.2", "firebase/php-jwt": "<2", "flarum/sticky": ">=0.1-beta.14,<=0.1-beta.15", "flarum/tags": "<=0.1-beta.13", @@ -9953,7 +9955,9 @@ "truckersmp/phpwhois": "<=4.3.1", "twig/twig": "<1.38|>=2,<2.7", "typo3/cms": ">=6.2,<6.2.30|>=7,<7.6.32|>=8,<8.7.38|>=9,<9.5.25|>=10,<10.4.14|>=11,<11.1.1", - "typo3/cms-core": ">=8,<8.7.38|>=9,<9.5.25|>=10,<10.4.14|>=11,<11.1.1", + "typo3/cms-backend": ">=7,<=7.6.50|>=8,<=8.7.39|>=9,<=9.5.24|>=10,<=10.4.13|>=11,<=11.1", + "typo3/cms-core": ">=6.2,<=6.2.56|>=7,<=7.6.50|>=8,<=8.7.39|>=9,<9.5.25|>=10,<10.4.14|>=11,<11.1.1", + "typo3/cms-form": ">=8,<=8.7.39|>=9,<=9.5.24|>=10,<=10.4.13|>=11,<=11.1", "typo3/flow": ">=1,<1.0.4|>=1.1,<1.1.1|>=2,<2.0.1|>=2.3,<2.3.16|>=3,<3.0.10|>=3.1,<3.1.7|>=3.2,<3.2.7|>=3.3,<3.3.5", "typo3/neos": ">=1.1,<1.1.3|>=1.2,<1.2.13|>=2,<2.0.4", "typo3/phar-stream-wrapper": ">=1,<2.1.1|>=3,<3.1.1", @@ -10032,7 +10036,7 @@ "type": "tidelift" } ], - "time": "2021-03-19T20:02:32+00:00" + "time": "2021-03-26T11:01:20+00:00" }, { "name": "sebastian/cli-parser", diff --git a/config/auth.php b/config/auth.php index 384373dc7a..732c35d54c 100644 --- a/config/auth.php +++ b/config/auth.php @@ -122,8 +122,6 @@ return [ 'expire' => 60, ], ], - - /* |-------------------------------------------------------------------------- | Password Confirmation Timeout diff --git a/config/cache.php b/config/cache.php index 96f9a2ae9b..9510722577 100644 --- a/config/cache.php +++ b/config/cache.php @@ -93,8 +93,6 @@ return [ 'driver' => 'redis', 'connection' => 'default', ], - - 'dynamodb' => [ 'driver' => 'dynamodb', 'key' => env('AWS_ACCESS_KEY_ID'), @@ -117,6 +115,4 @@ return [ */ 'prefix' => env('CACHE_PREFIX', 'firefly'), - - ]; diff --git a/config/debugbar.php b/config/debugbar.php index 0befee210d..7441f1af5d 100644 --- a/config/debugbar.php +++ b/config/debugbar.php @@ -1,6 +1,4 @@ ['address' => envNonEmpty('MAIL_FROM', 'changeme@example.com'), 'name' => 'Firefly III Mailer'], - - - 'markdown' => [ 'theme' => 'default', diff --git a/config/twigbridge.php b/config/twigbridge.php index cb94103aac..4e554bb985 100644 --- a/config/twigbridge.php +++ b/config/twigbridge.php @@ -1,6 +1,4 @@ integer('user_id', false, true); $table->integer('account_type_id', false, true); $table->string('name', 1024); - $table->decimal('virtual_balance', 22, 12)->nullable(); + $table->decimal('virtual_balance', 36, 24)->nullable(); $table->string('iban', 255)->nullable(); $table->boolean('active')->default(1); $table->boolean('encrypted')->default(0); @@ -134,7 +134,7 @@ class CreateMainTables extends Migration $table->softDeletes(); $table->integer('account_id', false, true); $table->string('name', 1024); - $table->decimal('targetamount', 22, 12); + $table->decimal('targetamount', 36, 24); $table->date('startdate')->nullable(); $table->date('targetdate')->nullable(); $table->integer('order', false, true)->default(0); @@ -154,7 +154,7 @@ class CreateMainTables extends Migration $table->integer('piggy_bank_id', false, true); $table->date('startdate')->nullable(); $table->date('targetdate')->nullable(); - $table->decimal('currentamount', 22, 12); + $table->decimal('currentamount', 36, 24); $table->foreign('piggy_bank_id')->references('id')->on('piggy_banks')->onDelete('cascade'); } ); @@ -201,8 +201,8 @@ class CreateMainTables extends Migration $table->integer('user_id', false, true); $table->string('name', 1024); $table->string('match', 1024); - $table->decimal('amount_min', 22, 12); - $table->decimal('amount_max', 22, 12); + $table->decimal('amount_min', 36, 24); + $table->decimal('amount_max', 36, 24); $table->date('date'); $table->string('repeat_freq', 30); $table->smallInteger('skip', false, true)->default(0); @@ -246,7 +246,7 @@ class CreateMainTables extends Migration $table->timestamps(); $table->integer('budget_id', false, true); $table->date('startdate'); - $table->decimal('amount', 22, 12); + $table->decimal('amount', 36, 24); $table->string('repeat_freq', 30); $table->boolean('repeats')->default(0); $table->foreign('budget_id')->references('id')->on('budgets')->onDelete('cascade'); @@ -262,7 +262,7 @@ class CreateMainTables extends Migration $table->integer('budget_limit_id', false, true); $table->date('startdate'); $table->date('enddate'); - $table->decimal('amount', 22, 12); + $table->decimal('amount', 36, 24); $table->foreign('budget_limit_id')->references('id')->on('budget_limits')->onDelete('cascade'); } ); @@ -462,8 +462,8 @@ class CreateMainTables extends Migration $table->string('tagMode', 1024); $table->date('date')->nullable(); $table->text('description')->nullable(); - $table->decimal('latitude', 24, 12)->nullable(); - $table->decimal('longitude', 24, 12)->nullable(); + $table->decimal('latitude', 36, 24)->nullable(); + $table->decimal('longitude', 36, 24)->nullable(); $table->smallInteger('zoomLevel', false, true)->nullable(); // link user id to users table @@ -574,7 +574,7 @@ class CreateMainTables extends Migration $table->integer('piggy_bank_id', false, true); $table->integer('transaction_journal_id', false, true)->nullable(); $table->date('date'); - $table->decimal('amount', 22, 12); + $table->decimal('amount', 36, 24); $table->foreign('piggy_bank_id')->references('id')->on('piggy_banks')->onDelete('cascade'); $table->foreign('transaction_journal_id')->references('id')->on('transaction_journals')->onDelete('set null'); @@ -592,7 +592,7 @@ class CreateMainTables extends Migration $table->integer('account_id', false, true); $table->integer('transaction_journal_id', false, true); $table->string('description', 1024)->nullable(); - $table->decimal('amount', 22, 12); + $table->decimal('amount', 36, 24); $table->foreign('account_id')->references('id')->on('accounts')->onDelete('cascade'); $table->foreign('transaction_journal_id')->references('id')->on('transaction_journals')->onDelete('cascade'); diff --git a/database/migrations/2016_12_22_150431_changes_for_v430.php b/database/migrations/2016_12_22_150431_changes_for_v430.php index 7466b224d7..f8ccc14b84 100644 --- a/database/migrations/2016_12_22_150431_changes_for_v430.php +++ b/database/migrations/2016_12_22_150431_changes_for_v430.php @@ -53,7 +53,7 @@ class ChangesForV430 extends Migration $table->softDeletes(); $table->integer('user_id', false, true); $table->integer('transaction_currency_id', false, true); - $table->decimal('amount', 22, 12); + $table->decimal('amount', 36, 24); $table->date('start_date'); $table->date('end_date'); diff --git a/database/migrations/2017_04_13_163623_changes_for_v440.php b/database/migrations/2017_04_13_163623_changes_for_v440.php index 772ab5b783..e188710bad 100644 --- a/database/migrations/2017_04_13_163623_changes_for_v440.php +++ b/database/migrations/2017_04_13_163623_changes_for_v440.php @@ -71,8 +71,8 @@ class ChangesForV440 extends Migration $table->integer('from_currency_id', false, true); $table->integer('to_currency_id', false, true); $table->date('date'); - $table->decimal('rate', 22, 12); - $table->decimal('user_rate', 22, 12)->nullable(); + $table->decimal('rate', 36, 24); + $table->decimal('user_rate', 36, 24)->nullable(); $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade'); $table->foreign('from_currency_id')->references('id')->on('transaction_currencies')->onDelete('cascade'); diff --git a/database/migrations/2017_06_02_105232_changes_for_v450.php b/database/migrations/2017_06_02_105232_changes_for_v450.php index 351324af06..d94d4ee55f 100644 --- a/database/migrations/2017_06_02_105232_changes_for_v450.php +++ b/database/migrations/2017_06_02_105232_changes_for_v450.php @@ -72,7 +72,7 @@ class ChangesForV450 extends Migration Schema::table( 'transactions', static function (Blueprint $table) { - $table->decimal('foreign_amount', 22, 12)->nullable()->after('amount'); + $table->decimal('foreign_amount', 36, 24)->nullable()->after('amount'); } ); diff --git a/database/migrations/2018_06_08_200526_changes_for_v475.php b/database/migrations/2018_06_08_200526_changes_for_v475.php index 166d6dfbcf..bab7ef6846 100644 --- a/database/migrations/2018_06_08_200526_changes_for_v475.php +++ b/database/migrations/2018_06_08_200526_changes_for_v475.php @@ -90,8 +90,8 @@ class ChangesForV475 extends Migration $table->integer('source_id', false, true); $table->integer('destination_id', false, true); - $table->decimal('amount', 22, 12); - $table->decimal('foreign_amount', 22, 12)->nullable(); + $table->decimal('amount', 36, 24); + $table->decimal('foreign_amount', 36, 24)->nullable(); $table->string('description', 1024); $table->foreign('recurrence_id')->references('id')->on('recurrences')->onDelete('cascade'); diff --git a/database/migrations/2019_12_28_191351_make_locations_table.php b/database/migrations/2019_12_28_191351_make_locations_table.php index 0f92217535..b2435c8430 100644 --- a/database/migrations/2019_12_28_191351_make_locations_table.php +++ b/database/migrations/2019_12_28_191351_make_locations_table.php @@ -59,8 +59,8 @@ class MakeLocationsTable extends Migration $table->integer('locatable_id', false, true); $table->string('locatable_type', 255); - $table->decimal('latitude', 24, 12)->nullable(); - $table->decimal('longitude', 24, 12)->nullable(); + $table->decimal('latitude', 36, 24)->nullable(); + $table->decimal('longitude', 36, 24)->nullable(); $table->smallInteger('zoom_level', false, true)->nullable(); } ); diff --git a/database/migrations/2020_03_13_201950_changes_for_v520.php b/database/migrations/2020_03_13_201950_changes_for_v520.php index 72339f579b..1ee987937a 100644 --- a/database/migrations/2020_03_13_201950_changes_for_v520.php +++ b/database/migrations/2020_03_13_201950_changes_for_v520.php @@ -1,6 +1,4 @@ integer('budget_id', false, true); $table->integer('transaction_currency_id', false, true); $table->tinyInteger('auto_budget_type', false, true)->default(1); - $table->decimal('amount', 22, 12); + $table->decimal('amount', 36, 24); $table->string('period', 50); $table->foreign('transaction_currency_id')->references('id')->on('transaction_currencies')->onDelete('cascade'); diff --git a/database/migrations/2020_06_07_063612_changes_for_v530.php b/database/migrations/2020_06_07_063612_changes_for_v530.php index 9e20abed8b..6f5eb8204a 100644 --- a/database/migrations/2020_06_07_063612_changes_for_v530.php +++ b/database/migrations/2020_06_07_063612_changes_for_v530.php @@ -63,8 +63,6 @@ class ChangesForV530 extends Migration } ); } - - if (!Schema::hasTable('object_groupables')) { Schema::create( 'object_groupables', static function (Blueprint $table) { diff --git a/database/migrations/2020_07_24_162820_changes_for_v540.php b/database/migrations/2020_07_24_162820_changes_for_v540.php index 990ea11eac..3e1f951768 100644 --- a/database/migrations/2020_07_24_162820_changes_for_v540.php +++ b/database/migrations/2020_07_24_162820_changes_for_v540.php @@ -83,8 +83,6 @@ class ChangesForV540 extends Migration $table->date('extension_date')->nullable()->after('end_date'); } ); - - // make column nullable: Schema::table( 'oauth_clients', function (Blueprint $table) { diff --git a/database/migrations/2021_03_12_061213_changes_for_v550b2.php b/database/migrations/2021_03_12_061213_changes_for_v550b2.php index 707b29ebf9..2de58e249b 100644 --- a/database/migrations/2021_03_12_061213_changes_for_v550b2.php +++ b/database/migrations/2021_03_12_061213_changes_for_v550b2.php @@ -1,5 +1,27 @@ . + */ + +declare(strict_types=1); + use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; diff --git a/database/seeders/ConfigSeeder.php b/database/seeders/ConfigSeeder.php index 745dbb5468..7005d71345 100644 --- a/database/seeders/ConfigSeeder.php +++ b/database/seeders/ConfigSeeder.php @@ -1,9 +1,7 @@ . - */ - namespace Database\Seeders; use FireflyIII\Models\Configuration; diff --git a/frontend/package.json b/frontend/package.json index a2b131ed1d..b43c4b45ee 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -21,15 +21,23 @@ "resolve-url-loader": "^3.1.2", "sass": "^1.32.8", "sass-loader": "^10.1.1", + "sortablejs": "^1.13.0", "vue": "^2.6.12", + "vue-chartjs": "^3.5.1", "vue-i18n": "^8.22.2", - "vue-template-compiler": "^2.6.12" + "vue-router": "^3.4.9", + "vue-simple-suggest": "^1.10.3", + "vue-template-compiler": "^2.6.12", + "vue-typeahead-bootstrap": "^2.5.5", + "vue2-leaflet": "^2.6.0", + "vuex": "^3.6.0" }, "dependencies": { "@fortawesome/fontawesome-free": "^5.15.1", "@johmun/vue-tags-input": "^2.1.0", "@popperjs/core": "^2.8.6", - "bootstrap": "^4.5.3", + "bootstrap": "^4.6.0", + "bootstrap-vue": "^2.21.2", "chart.js": "^2.9.4", "icheck-bootstrap": "^3.0.1", "jquery": "^3.5.1", @@ -38,12 +46,6 @@ "overlayscrollbars": "^1.13.1", "popper.js": "^1.16.1", "tempusdominus": "^5.16.0", - "v-calendar": "^2.2.4", - "vue-chartjs": "^3.5.1", - "vue-router": "^3.4.9", - "vue-simple-suggest": "^1.10.3", - "vue-typeahead-bootstrap": "^2.5.5", - "vue2-leaflet": "^2.6.0", - "vuex": "^3.6.0" + "v-calendar": "^2.2.4" } } diff --git a/frontend/src/app.scss b/frontend/src/app.scss index d960013999..0c32344241 100644 --- a/frontend/src/app.scss +++ b/frontend/src/app.scss @@ -40,9 +40,12 @@ @import '~admin-lte/build/scss/bootstrap-variables'; @import '~bootstrap/scss/bootstrap'; +@import '~bootstrap-vue/src/index.scss'; + // Variables and Mixins // --------------------------------------------------- @import '~admin-lte/build/scss/variables'; +@import '~admin-lte/build/scss/variables-alt'; diff --git a/frontend/src/components/accounts/Index.vue b/frontend/src/components/accounts/Index.vue index a2198148ae..50f7920842 100644 --- a/frontend/src/components/accounts/Index.vue +++ b/frontend/src/components/accounts/Index.vue @@ -19,72 +19,110 @@ --> diff --git a/frontend/src/components/accounts/IndexOptions.vue b/frontend/src/components/accounts/IndexOptions.vue new file mode 100644 index 0000000000..a87be873b0 --- /dev/null +++ b/frontend/src/components/accounts/IndexOptions.vue @@ -0,0 +1,93 @@ + + + + + + + \ No newline at end of file diff --git a/frontend/src/components/dashboard/BudgetLimitRow.vue b/frontend/src/components/dashboard/BudgetLimitRow.vue index 904e958b3c..029e0e0c8e 100644 --- a/frontend/src/components/dashboard/BudgetLimitRow.vue +++ b/frontend/src/components/dashboard/BudgetLimitRow.vue @@ -29,10 +29,8 @@
- Spent - {{ Intl.NumberFormat(locale, {style: 'currency', currency: budgetLimit.currency_code}).format(budgetLimit.spent) }} - of - {{ Intl.NumberFormat(locale, {style: 'currency', currency: budgetLimit.currency_code}).format(budgetLimit.amount) }} + {{ $t('firefly.spent_x_of_y', {amount: Intl.NumberFormat(locale, {style: 'currency', currency: budgetLimit.currency_code}).format(budgetLimit.spent), total: Intl.NumberFormat(locale, {style: 'currency', currency: budgetLimit.currency_code}).format(budgetLimit.amount)}) }} + @@ -41,30 +39,20 @@
- Spent - {{ Intl.NumberFormat(locale, {style: 'currency', currency: budgetLimit.currency_code}).format(budgetLimit.spent) }} - of - {{ Intl.NumberFormat(locale, {style: 'currency', currency: budgetLimit.currency_code}).format(budgetLimit.amount) }} + {{ $t('firefly.spent_x_of_y', {amount: Intl.NumberFormat(locale, {style: 'currency', currency: budgetLimit.currency_code}).format(budgetLimit.spent), total: Intl.NumberFormat(locale, {style: 'currency', currency: budgetLimit.currency_code}).format(budgetLimit.amount)}) }}
- Spent - {{ Intl.NumberFormat(locale, {style: 'currency', currency: budgetLimit.currency_code}).format(budgetLimit.spent) }} - of - {{ Intl.NumberFormat(locale, {style: 'currency', currency: budgetLimit.currency_code}).format(budgetLimit.amount) }} + {{ $t('firefly.spent_x_of_y', {amount: Intl.NumberFormat(locale, {style: 'currency', currency: budgetLimit.currency_code}).format(budgetLimit.spent), total: Intl.NumberFormat(locale, {style: 'currency', currency: budgetLimit.currency_code}).format(budgetLimit.amount)}) }}
- -   - Spent - {{ Intl.NumberFormat(locale, {style: 'currency', currency: budgetLimit.currency_code}).format(budgetLimit.spent) }} - of - {{ Intl.NumberFormat(locale, {style: 'currency', currency: budgetLimit.currency_code}).format(budgetLimit.amount) }} + +   {{ $t('firefly.spent_x_of_y', {amount: Intl.NumberFormat(locale, {style: 'currency', currency: budgetLimit.currency_code}).format(budgetLimit.spent), total: Intl.NumberFormat(locale, {style: 'currency', currency: budgetLimit.currency_code}).format(budgetLimit.amount)}) }}
diff --git a/frontend/src/components/dashboard/Calendar.vue b/frontend/src/components/dashboard/Calendar.vue index 044d6759ac..62ab235866 100644 --- a/frontend/src/components/dashboard/Calendar.vue +++ b/frontend/src/components/dashboard/Calendar.vue @@ -76,9 +76,13 @@ \n\n\n","import { render, staticRenderFns } from \"./Index.vue?vue&type=template&id=3bbb2516&scoped=true&\"\nimport script from \"./Index.vue?vue&type=script&lang=js&\"\nexport * from \"./Index.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"3bbb2516\",\n null\n \n)\n\nexport default component.exports","/*\n * index.js\n * Copyright (c) 2020 james@firefly-iii.org\n *\n * This file is part of Firefly III (https://github.com/firefly-iii).\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n */\n\nrequire('../../bootstrap');\n\nimport Index from \"../../components/accounts/Index\";\n\n// i18n\nlet i18n = require('../../i18n');\n\nlet props = {};\nnew Vue({\n i18n,\n render(createElement) {\n return createElement(Index, {props: props});\n }\n }).$mount('#accounts');\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///src/components/accounts/Index.vue","webpack:///./src/components/accounts/Index.vue?6395","webpack:///./src/components/accounts/Index.vue","webpack:///./src/components/accounts/Index.vue?6738","webpack:///./src/components/accounts/IndexOptions.vue?df47","webpack:///src/components/accounts/IndexOptions.vue","webpack:///./src/components/accounts/IndexOptions.vue","webpack:///./src/components/accounts/IndexOptions.vue?e176","webpack:///./src/pages/accounts/index.js"],"names":["name","props","accountTypes","String","data","accounts","allAccounts","type","downloaded","loading","ready","fields","currentPage","perPage","total","sortBy","sortDesc","sortableOptions","disabled","chosenClass","onEnd","sortable","watch","storeReady","this","getAccountList","start","end","orderMode","updateFieldList","reorderAccountList","value","makeTableSortable","activeFilter","filterAccountList","computed","listPageSize","cardTitle","$t","created","parts","length","params","get","parseInt","methods","saveAccountSort","hasOwnProperty","i","test","current","id","identifier","order","newOrder","axios","put","url","option","push","console","log","indexReady","downloadAccountList","page","active","roleTranslate","role","parsePages","pagination","parseAccounts","key","acct","attributes","title","account_role","account_number","current_balance","currency_code","balance_diff","iban","match","join","getAccountBalanceDifference","index","promises","Promise","resolve","toISOString","split","all","then","_vm","_h","$createElement","_c","_self","staticClass","attrs","model","callback","$$v","expression","_v","ref","on","$event","scopedSlots","_u","fn","item","_s","_e","parseFloat","Intl","NumberFormat","style","currency","format","$store","getters","set","commit","directives","rawName","domProps","Array","isArray","_i","$$a","$$el","target","$$c","checked","$$i","concat","slice","_q","require","i18n","Vue","component","BTable","BPagination","store","el","render","createElement","Index","beforeCreate","dispatch","Calendar","IndexOptions"],"mappings":"m2BAwIA,ICxIqM,EDwIrM,CACEA,KAAM,QACNC,MAAO,CACLC,aAAcC,QAEhBC,KALF,WAMI,MAAO,CACLC,SAAU,GACVC,YAAa,GACbC,KAAM,MACNC,YAAY,EACZC,SAAS,EACTC,OAAO,EACPC,OAAQ,GACRC,YAAa,EACbC,QAAS,EACTC,MAAO,EACPC,OAAQ,QACRC,UAAU,EACVC,gBAAiB,CACfC,UAAU,EACVC,YAAa,cACbC,MAAO,MAETC,SAAU,OAGdC,MAAO,CACLC,WAAY,WACVC,KAAKC,kBAEPC,MAAO,WACLF,KAAKC,kBAEPE,IAAK,WACHH,KAAKC,kBAEPG,UAAW,SAAf,GAEMJ,KAAKK,kBAGLL,KAAKM,mBAAmBC,GAGxBP,KAAKQ,kBAAkBD,IAEzBE,aAAc,SAAlB,GACMT,KAAKU,sBAGTC,SAAU,EAAZ,SACA,sCACA,4DACA,gDAHA,IAII,WAAc,WACZ,OAAO,OAASX,KAAKE,OAAS,OAASF,KAAKG,KAAO,OAASH,KAAKY,cAAgBZ,KAAKd,OAExF2B,UAAW,WACT,OAAOb,KAAKc,GAAG,WAAad,KAAKjB,KAAO,gBAG5CgC,QA9DF,WA+DI,IACJ,EADA,yBACA,WACIf,KAAKjB,KAAOiC,EAAMA,EAAMC,OAAS,GAEjC,IAAJ,8CACIjB,KAAKZ,YAAc8B,EAAOC,IAAI,QAAUC,SAASF,EAAOC,IAAI,SAAW,EACvEnB,KAAKK,kBACLL,KAAKd,OAAQ,GAGfmC,QAAS,CACPC,gBAAiB,SAArB,cACA,uBACA,uBACA,4DACM,IAAK,IAAX,mBACQ,GAAItB,KAAKnB,SAAS0C,eAAeC,IAAM,iBAAiBC,KAAKD,IAAMA,GAAK,WAAY,CAClF,IAAV,mBAGU,GAAIE,EAAQC,KAAOC,EAAY,CAC7B,IAAZ,0BACY5B,KAAKnB,SAAS2C,GAAGK,MAAQC,EACzB,IAAZ,4BACYC,MAAMC,IAAIC,EAAK,CAA3B,4BAEc,EAAd,uBAMI3B,mBAAoB,SAAxB,GACUF,IACFJ,KAAKT,OAAS,QACdS,KAAKR,UAAW,IAGpBgB,kBAAmB,SAAvB,GACMR,KAAKP,gBAAgBC,UAAYU,EACjCJ,KAAKP,gBAAgBG,MAAQI,KAAKsB,gBAG9B,OAAStB,KAAKH,WAChBG,KAAKH,SAAW,EAAxB,4EAEMG,KAAKH,SAASqC,OAAO,WAAYlC,KAAKP,gBAAgBC,WAGxDW,gBAAiB,WACfL,KAAKb,OAAS,GAEda,KAAKb,OAAS,CAAC,CAArB,kEACU,UAAYa,KAAKjB,MACnBiB,KAAKb,OAAOgD,KAAK,CAAzB,iEAGMnC,KAAKb,OAAOgD,KAAK,CAAvB,mEACMnC,KAAKb,OAAOgD,KAAK,CAAvB,sFACMnC,KAAKb,OAAOgD,KAAK,CAAvB,oCAEIlC,eAAgB,WAEpB,OADMmC,QAAQC,IAAI,qBACRrC,KAAKsC,YAAetC,KAAKf,SAAYe,KAAKhB,cAC5CoD,QAAQC,IAAI,+DACZrC,KAAKf,SAAU,EACfe,KAAKX,QAAb,8CACQW,KAAKnB,SAAW,GAChBmB,KAAKlB,YAAc,GACnBkB,KAAKuC,oBAAoB,IAEvBvC,KAAKsC,aAAetC,KAAKf,SAAWe,KAAKhB,aAC3CoD,QAAQC,IAAI,gDACZrC,KAAKf,SAAU,EACfe,KAAKU,sBAIT6B,oBAAqB,SAAzB,cACMH,QAAQC,IAAI,uBAAyBG,EAAO,KAC5CT,MAAMZ,IAAI,0BAA4BnB,KAAKjB,KAAO,SAAWyD,GACnE,kBACQ,IAAR,gDACA,+CAGQ,GAFA,EAAR,6CACQ,EAAR,2BACA,KACU,IAAV,MACU,EAAV,uBAEA,OACU,QAAV,kCACU,EAAV,cACU,EAAV,yBAKI9B,kBAAmB,WAGjB,IAAK,IAAX,KAFM0B,QAAQC,IAAI,uBACZrC,KAAKnB,SAAW,GACtB,iBACQ,GAAImB,KAAKlB,YAAYyC,eAAeC,IAAM,iBAAiBC,KAAKD,IAAMA,GAAK,WAAY,CAIrF,GAAI,IAAMxB,KAAKS,eAAgB,IAAUT,KAAKlB,YAAY0C,GAAGiB,OAAQ,CACnEL,QAAQC,IAAI,iBAAmBrC,KAAKlB,YAAY0C,GAAGG,GAAK,wBACxD,SAEF,GAAI,IAAM3B,KAAKS,eAAgB,IAAST,KAAKlB,YAAY0C,GAAGiB,OAAQ,CAClEL,QAAQC,IAAI,iBAAmBrC,KAAKlB,YAAY0C,GAAGG,GAAK,oBACxD,SAEFS,QAAQC,IAAI,oBAAsBrC,KAAKlB,YAAY0C,GAAGG,GAAK,KAE3D3B,KAAKnB,SAASsD,KAAKnC,KAAKlB,YAAY0C,IAGxCxB,KAAKV,MAAQU,KAAKnB,SAASoC,OAC3BjB,KAAKf,SAAU,GAEjByD,cAAe,SAAnB,GACM,OAAI,OAASC,EACJ,GAEF3C,KAAKc,GAAG,wBAA0B6B,IAE3CC,WAAY,SAAhB,GACM5C,KAAKV,MAAQ8B,SAASxC,EAAKiE,WAAWvD,QAGxCwD,cAAe,SAAnB,GAEM,IAAK,IAAX,KADMV,QAAQC,IAAI,sBAClB,EACQ,GAAIzD,EAAK2C,eAAewB,IAAQ,iBAAiBtB,KAAKsB,IAAQA,GAAO,WAAY,CAC/E,IAAV,OACA,KACUC,EAAKrB,GAAKP,SAASM,EAAQC,IAC3BqB,EAAKnB,MAAQH,EAAQuB,WAAWpB,MAChCmB,EAAKE,MAAQxB,EAAQuB,WAAWzE,KAChCwE,EAAKP,OAASf,EAAQuB,WAAWR,OACjCO,EAAKL,KAAO3C,KAAK0C,cAAchB,EAAQuB,WAAWE,cAClDH,EAAKI,eAAiB1B,EAAQuB,WAAWG,eACzCJ,EAAKK,gBAAkB3B,EAAQuB,WAAWI,gBAC1CL,EAAKM,cAAgB5B,EAAQuB,WAAWK,cACxCN,EAAKO,aAAe,UAEhB,OAAS7B,EAAQuB,WAAWO,OAC9BR,EAAKQ,KAAO9B,EAAQuB,WAAWO,KAAKC,MAAM,WAAWC,KAAK,MAG5D1D,KAAKlB,YAAYqD,KAAKa,GAClB,UAAYhD,KAAKjB,MACnBiB,KAAK2D,4BAA4B3D,KAAKlB,YAAYmC,OAAS,EAAGS,KAKtEiC,4BAA6B,SAAjC,gBACMvB,QAAQC,IAAI,+BAAiCuB,EAAQ,KAErD,IAAN,KAGMC,EAAS1B,KAAK,IAAI2B,SAAQ,SAAhC,GACQC,EACR,CACU,QAAV,EACU,MAAV,QAKMF,EAAS1B,KAAKJ,MAAMZ,IAAI,qBAAuB6B,EAAKrB,GAAK,SAAW3B,KAAKE,MAAM8D,cAAcC,MAAM,KAAK,KACxGJ,EAAS1B,KAAKJ,MAAMZ,IAAI,qBAAuB6B,EAAKrB,GAAK,SAAW3B,KAAKG,IAAI6D,cAAcC,MAAM,KAAK,KAEtGH,QAAQI,IAAIL,GAAUM,MAAK,SAAjC,GACQ,IAAR,aACA,wDACA,wDACQ,EAAR,sC,OE1We,EAXC,YACd,GCRW,WAAa,IAAIC,EAAIpE,KAASqE,EAAGD,EAAIE,eAAmBC,EAAGH,EAAII,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,MAAM,CAACE,YAAY,OAAO,CAACF,EAAG,MAAM,CAACE,YAAY,2CAA2C,CAACF,EAAG,eAAe,CAACG,MAAM,CAAC,aAAaN,EAAI9E,MAAM,WAAW8E,EAAI/E,QAAQ,gBAAgB,YAAYsF,MAAM,CAACpE,MAAO6D,EAAe,YAAEQ,SAAS,SAAUC,GAAMT,EAAIhF,YAAYyF,GAAKC,WAAW,kBAAkB,KAAKV,EAAIW,GAAG,KAAKR,EAAG,MAAM,CAACE,YAAY,OAAO,CAACF,EAAG,MAAM,CAACE,YAAY,2CAA2C,CAACF,EAAG,MAAM,CAACE,YAAY,QAAQ,CAACF,EAAG,MAAM,CAACE,YAAY,gBAAgBL,EAAIW,GAAG,KAAKR,EAAG,MAAM,CAACE,YAAY,iBAAiB,CAACF,EAAG,UAAU,CAACS,IAAI,QAAQN,MAAM,CAAC,GAAK,WAAW,QAAU,GAAG,MAAQ,GAAG,cAAc,KAAK,MAAQN,EAAIvF,SAAS,OAASuF,EAAIjF,OAAO,WAAWiF,EAAI/E,QAAQ,iBAAiB,GAAG,eAAe+E,EAAIhF,YAAY,KAAOgF,EAAInF,QAAQ,UAAUmF,EAAI7E,OAAO,YAAY6E,EAAI5E,UAAUyF,GAAG,CAAC,cAAc,SAASC,GAAQd,EAAInF,QAAQiG,GAAQ,gBAAgB,SAASA,GAAQd,EAAI7E,OAAO2F,GAAQ,iBAAiB,SAASA,GAAQd,EAAI7E,OAAO2F,GAAQ,kBAAkB,SAASA,GAAQd,EAAI5E,SAAS0F,GAAQ,mBAAmB,SAASA,GAAQd,EAAI5E,SAAS0F,IAASC,YAAYf,EAAIgB,GAAG,CAAC,CAACrC,IAAI,cAAcsC,GAAG,SAASzG,GAAM,MAAO,CAAC2F,EAAG,IAAI,CAACG,MAAM,CAAC,KAAO,mBAAqB9F,EAAK0G,KAAK3D,GAAG,MAAQ/C,EAAK2B,QAAQ,CAAC6D,EAAIW,GAAGX,EAAImB,GAAG3G,EAAK2B,aAAa,CAACwC,IAAI,eAAesC,GAAG,SAASzG,GAAM,MAAO,CAAE,OAASA,EAAK0G,KAAK9B,MAAQ,OAAS5E,EAAK0G,KAAKlC,eAAgBmB,EAAG,OAAO,CAACH,EAAIW,GAAGX,EAAImB,GAAG3G,EAAK0G,KAAK9B,SAASY,EAAIoB,KAAKpB,EAAIW,GAAG,KAAM,OAASnG,EAAK0G,KAAK9B,MAAQ,OAAS5E,EAAK0G,KAAKlC,eAAgBmB,EAAG,OAAO,CAACH,EAAIW,GAAGX,EAAImB,GAAG3G,EAAK0G,KAAKlC,mBAAmBgB,EAAIoB,KAAKpB,EAAIW,GAAG,KAAM,OAASnG,EAAK0G,KAAK9B,MAAQ,OAAS5E,EAAK0G,KAAKlC,eAAgBmB,EAAG,OAAO,CAACH,EAAIW,GAAGX,EAAImB,GAAG3G,EAAK0G,KAAK9B,MAAM,KAAKY,EAAImB,GAAG3G,EAAK0G,KAAKlC,gBAAgB,OAAOgB,EAAIoB,QAAQ,CAACzC,IAAI,wBAAwBsC,GAAG,SAASzG,GAAM,MAAO,CAAE6G,WAAW7G,EAAK0G,KAAKjC,iBAAmB,EAAGkB,EAAG,OAAO,CAACE,YAAY,gBAAgB,CAACL,EAAIW,GAAG,qBAAqBX,EAAImB,GAAGG,KAAKC,aAAa,QAAS,CACl+DC,MAAO,WAAYC,SACnBjH,EAAK0G,KAAKhC,gBACTwC,OAAOlH,EAAK0G,KAAKjC,kBAAkB,sBAAsBe,EAAIoB,KAAKpB,EAAIW,GAAG,KAAMU,WAAW7G,EAAK0G,KAAKjC,iBAAmB,EAAGkB,EAAG,OAAO,CAACE,YAAY,eAAe,CAACL,EAAIW,GAAG,qBAAqBX,EAAImB,GAAGG,KAAKC,aAAa,QAAS,CAChOC,MAAO,WAAYC,SACnBjH,EAAK0G,KAAKhC,gBACTwC,OAAOlH,EAAK0G,KAAKjC,kBAAkB,sBAAsBe,EAAIoB,KAAKpB,EAAIW,GAAG,KAAM,IAAMU,WAAW7G,EAAK0G,KAAKjC,iBAAkBkB,EAAG,OAAO,CAACE,YAAY,cAAc,CAACL,EAAIW,GAAG,qBAAqBX,EAAImB,GAAGG,KAAKC,aAAa,QAAS,CACjOC,MAAO,WAAYC,SACnBjH,EAAK0G,KAAKhC,gBACTwC,OAAOlH,EAAK0G,KAAKjC,kBAAkB,sBAAsBe,EAAIoB,KAAKpB,EAAIW,GAAG,KAAM,UAAYX,EAAIrF,MAAQ,YAAcH,EAAK0G,KAAK/B,aAAcgB,EAAG,OAAO,CAACA,EAAG,IAAI,CAACE,YAAY,6BAA6BL,EAAIoB,KAAKpB,EAAIW,GAAG,KAAM,UAAYX,EAAIrF,MAAQ,YAAcH,EAAK0G,KAAK/B,aAAcgB,EAAG,OAAO,CAACH,EAAIW,GAAG,wBAAyBU,WAAW7G,EAAK0G,KAAK/B,cAAgB,EAAGgB,EAAG,OAAO,CAACE,YAAY,gBAAgB,CAACL,EAAIW,GAAGX,EAAImB,GAAGG,KAAKC,aAAa,QAAS,CAClcC,MAAO,WAAYC,SACnBjH,EAAK0G,KAAKhC,gBACTwC,OAAOlH,EAAK0G,KAAK/B,kBAAkBa,EAAIoB,KAAM,IAAIC,WAAW7G,EAAK0G,KAAK/B,cAAegB,EAAG,OAAO,CAACE,YAAY,cAAc,CAACL,EAAIW,GAAGX,EAAImB,GAAGG,KAAKC,aAAa,QAAS,CACrKC,MAAO,WAAYC,SACnBjH,EAAK0G,KAAKhC,gBACTwC,OAAOlH,EAAK0G,KAAK/B,kBAAkBa,EAAIoB,KAAMC,WAAW7G,EAAK0G,KAAK/B,cAAgB,EAAGgB,EAAG,OAAO,CAACE,YAAY,eAAe,CAACL,EAAIW,GAAGX,EAAImB,GAAGG,KAAKC,aAAa,QAAS,CACtKC,MAAO,WAAYC,SACnBjH,EAAK0G,KAAKhC,gBACTwC,OAAOlH,EAAK0G,KAAK/B,kBAAkBa,EAAIoB,KAAKpB,EAAIW,GAAG,uBAAuBX,EAAIoB,QAAQ,CAACzC,IAAI,aAAasC,GAAG,SAASzG,GAAM,MAAO,CAAC2F,EAAG,MAAM,CAACE,YAAY,0BAA0B,CAACF,EAAG,MAAM,CAACE,YAAY,YAAY,CAACF,EAAG,SAAS,CAACE,YAAY,uCAAuCC,MAAM,CAAC,KAAO,SAAS,GAAK,qBAAuB9F,EAAK0G,KAAK3D,GAAG,cAAc,WAAW,gBAAgB,OAAO,gBAAgB,UAAU,CAACyC,EAAIW,GAAG,yBAAyBX,EAAImB,GAAGnB,EAAItD,GAAG,oBAAoB,0BAA0BsD,EAAIW,GAAG,KAAKR,EAAG,MAAM,CAACE,YAAY,gBAAgBC,MAAM,CAAC,kBAAkB,qBAAuB9F,EAAK0G,KAAK3D,KAAK,CAAC4C,EAAG,IAAI,CAACE,YAAY,gBAAgBC,MAAM,CAAC,KAAO,mBAAqB9F,EAAK0G,KAAK3D,KAAK,CAAC4C,EAAG,IAAI,CAACE,YAAY,yBAAyBL,EAAIW,GAAG,IAAIX,EAAImB,GAAGnB,EAAItD,GAAG,oBAAoBsD,EAAIW,GAAG,KAAKR,EAAG,IAAI,CAACE,YAAY,gBAAgBC,MAAM,CAAC,KAAO,qBAAuB9F,EAAK0G,KAAK3D,KAAK,CAAC4C,EAAG,IAAI,CAACE,YAAY,oBAAoBL,EAAIW,GAAG,IAAIX,EAAImB,GAAGnB,EAAItD,GAAG,sBAAsBsD,EAAIW,GAAG,KAAM,UAAYX,EAAIrF,KAAMwF,EAAG,IAAI,CAACE,YAAY,gBAAgBC,MAAM,CAAC,KAAO,wBAA0B9F,EAAK0G,KAAK3D,KAAK,CAAC4C,EAAG,IAAI,CAACE,YAAY,iBAAiBL,EAAIW,GAAG,2BAA2BX,EAAImB,GAAGnB,EAAItD,GAAG,sCAAsCsD,EAAIoB,mBAAmB,GAAGpB,EAAIW,GAAG,KAAKR,EAAG,MAAM,CAACE,YAAY,eAAe,CAACF,EAAG,IAAI,CAACE,YAAY,kBAAkBC,MAAM,CAAC,KAAO,qBAAuBN,EAAIrF,KAAK,MAAQqF,EAAItD,GAAG,sBAAwBsD,EAAIrF,QAAQ,CAACqF,EAAIW,GAAGX,EAAImB,GAAGnB,EAAItD,GAAG,sBAAwBsD,EAAIrF,sBAC19C,IDRpB,EACA,KACA,WACA,M,0CEd0M,ECqD5M,CACEP,KAAM,eACNI,KAFF,WAGI,MAAO,CACLG,KAAM,YAIV4B,SAAU,CACRP,UAAW,CACTe,IADN,WAEQ,OAAOnB,KAAK+F,OAAOC,QAAQ,6BAE7BC,IAJN,SAIA,GACQjG,KAAK+F,OAAOG,OAAO,8BAA+B3F,IAC1D,OACUP,KAAK+F,OAAOG,OAAO,iCAAkC,KAI3DzF,aAAc,CACZU,IADN,WAEQ,OAAOnB,KAAK+F,OAAOC,QAAQ,gCAE7BC,IAJN,SAIA,GACQjG,KAAK+F,OAAOG,OAAO,iCAAkC9E,SAASb,OAIpEQ,QA7BF,WA8BI,IACJ,EADA,yBACA,WACIf,KAAKjB,KAAOiC,EAAMA,EAAMC,OAAS,KCnEtB,EAXC,YACd,GCRW,WAAa,IAAImD,EAAIpE,KAASqE,EAAGD,EAAIE,eAAmBC,EAAGH,EAAII,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACA,EAAG,MAAM,CAACE,YAAY,cAAc,CAACF,EAAG,QAAQ,CAAC4B,WAAW,CAAC,CAAC3H,KAAK,QAAQ4H,QAAQ,UAAU7F,MAAO6D,EAAa,UAAEU,WAAW,cAAcL,YAAY,mBAAmBC,MAAM,CAAC,KAAO,WAAW,KAAO,aAAa,GAAK,cAAc2B,SAAS,CAAC,QAAUC,MAAMC,QAAQnC,EAAIhE,WAAWgE,EAAIoC,GAAGpC,EAAIhE,UAAU,OAAO,EAAGgE,EAAa,WAAGa,GAAG,CAAC,OAAS,SAASC,GAAQ,IAAIuB,EAAIrC,EAAIhE,UAAUsG,EAAKxB,EAAOyB,OAAOC,IAAIF,EAAKG,QAAuB,GAAGP,MAAMC,QAAQE,GAAK,CAAC,IAAaK,EAAI1C,EAAIoC,GAAGC,EAAhB,MAA4BC,EAAKG,QAASC,EAAI,IAAI1C,EAAIhE,UAAUqG,EAAIM,OAAO,CAA3E,QAAwFD,GAAK,IAAI1C,EAAIhE,UAAUqG,EAAIO,MAAM,EAAEF,GAAKC,OAAON,EAAIO,MAAMF,EAAI,UAAW1C,EAAIhE,UAAUwG,MAASxC,EAAIW,GAAG,KAAKR,EAAG,QAAQ,CAACE,YAAY,mBAAmBC,MAAM,CAAC,IAAM,eAAe,CAACN,EAAIW,GAAG,uCAAuCX,EAAIW,GAAG,KAAKR,EAAG,MAAM,CAACE,YAAY,cAAc,CAACF,EAAG,QAAQ,CAAC4B,WAAW,CAAC,CAAC3H,KAAK,QAAQ4H,QAAQ,UAAU7F,MAAO6D,EAAgB,aAAEU,WAAW,iBAAiBL,YAAY,mBAAmBC,MAAM,CAAC,SAAWN,EAAIhE,UAAU,KAAO,QAAQ,MAAQ,IAAI,GAAK,mBAAmBiG,SAAS,CAAC,QAAUjC,EAAI6C,GAAG7C,EAAI3D,aAAa,MAAMwE,GAAG,CAAC,OAAS,SAASC,GAAQd,EAAI3D,aAAa,QAAQ2D,EAAIW,GAAG,KAAKR,EAAG,QAAQ,CAACE,YAAY,mBAAmBC,MAAM,CAAC,IAAM,oBAAoB,CAACN,EAAIW,GAAG,0CAA0CX,EAAIW,GAAG,KAAKR,EAAG,MAAM,CAACE,YAAY,cAAc,CAACF,EAAG,QAAQ,CAAC4B,WAAW,CAAC,CAAC3H,KAAK,QAAQ4H,QAAQ,UAAU7F,MAAO6D,EAAgB,aAAEU,WAAW,iBAAiBL,YAAY,mBAAmBC,MAAM,CAAC,SAAWN,EAAIhE,UAAU,KAAO,QAAQ,MAAQ,IAAI,GAAK,mBAAmBiG,SAAS,CAAC,QAAUjC,EAAI6C,GAAG7C,EAAI3D,aAAa,MAAMwE,GAAG,CAAC,OAAS,SAASC,GAAQd,EAAI3D,aAAa,QAAQ2D,EAAIW,GAAG,KAAKR,EAAG,QAAQ,CAACE,YAAY,mBAAmBC,MAAM,CAAC,IAAM,oBAAoB,CAACN,EAAIW,GAAG,4CAA4CX,EAAIW,GAAG,KAAKR,EAAG,MAAM,CAACE,YAAY,cAAc,CAACF,EAAG,QAAQ,CAAC4B,WAAW,CAAC,CAAC3H,KAAK,QAAQ4H,QAAQ,UAAU7F,MAAO6D,EAAgB,aAAEU,WAAW,iBAAiBL,YAAY,mBAAmBC,MAAM,CAAC,SAAWN,EAAIhE,UAAU,KAAO,QAAQ,MAAQ,IAAI,GAAK,mBAAmBiG,SAAS,CAAC,QAAUjC,EAAI6C,GAAG7C,EAAI3D,aAAa,MAAMwE,GAAG,CAAC,OAAS,SAASC,GAAQd,EAAI3D,aAAa,QAAQ2D,EAAIW,GAAG,KAAKR,EAAG,QAAQ,CAACE,YAAY,mBAAmBC,MAAM,CAAC,IAAM,oBAAoB,CAACN,EAAIW,GAAG,mCAC/zE,IDUpB,EACA,KACA,WACA,M,QEKFmC,EAAQ,IAWR,IAAIC,EAAOD,EAAQ,IACfzI,EAAQ,GAEZ2I,IAAIC,UAAU,UAAWC,KACzBF,IAAIC,UAAU,eAAgBE,KAG9B,IAAIH,IAAI,CACID,OACAK,UACAC,GAAI,YACJC,OAAQ,SAACC,GACL,OAAOA,EAAcC,EAAO,CAACnJ,MAAOA,KAExCoJ,aAPJ,WASQ7H,KAAK+F,OAAOG,OAAO,mBACnBlG,KAAK+F,OAAO+B,SAAS,4BAGrB9H,KAAK+F,OAAO+B,SAAS,wBAGrB9H,KAAK+F,OAAO+B,SAAS,sCAIrC,IAAIV,IAAI,CACID,OACAK,UACAC,GAAI,YACJC,OAAQ,SAACC,GACL,OAAOA,EAAcI,IAAU,CAACtJ,MAAOA,OAKvD,IAAI2I,IAAI,CACID,OACAK,UACAC,GAAI,gBACJC,OAAQ,SAACC,GACL,OAAOA,EAAcK,EAAc,CAACvJ,MAAOA,S","file":"/public/js/accounts/index.js","sourcesContent":["\n\n\n\n\n\n\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Index.vue?vue&type=template&id=2a610ab2&scoped=true&\"\nimport script from \"./Index.vue?vue&type=script&lang=js&\"\nexport * from \"./Index.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2a610ab2\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-lg-12 col-md-12 col-sm-12 col-xs-12\"},[_c('b-pagination',{attrs:{\"total-rows\":_vm.total,\"per-page\":_vm.perPage,\"aria-controls\":\"my-table\"},model:{value:(_vm.currentPage),callback:function ($$v) {_vm.currentPage=$$v},expression:\"currentPage\"}})],1)]),_vm._v(\" \"),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-lg-12 col-md-12 col-sm-12 col-xs-12\"},[_c('div',{staticClass:\"card\"},[_c('div',{staticClass:\"card-header\"}),_vm._v(\" \"),_c('div',{staticClass:\"card-body p-0\"},[_c('b-table',{ref:\"table\",attrs:{\"id\":\"my-table\",\"striped\":\"\",\"hover\":\"\",\"primary-key\":\"id\",\"items\":_vm.accounts,\"fields\":_vm.fields,\"per-page\":_vm.perPage,\"sort-icon-left\":\"\",\"current-page\":_vm.currentPage,\"busy\":_vm.loading,\"sort-by\":_vm.sortBy,\"sort-desc\":_vm.sortDesc},on:{\"update:busy\":function($event){_vm.loading=$event},\"update:sortBy\":function($event){_vm.sortBy=$event},\"update:sort-by\":function($event){_vm.sortBy=$event},\"update:sortDesc\":function($event){_vm.sortDesc=$event},\"update:sort-desc\":function($event){_vm.sortDesc=$event}},scopedSlots:_vm._u([{key:\"cell(title)\",fn:function(data){return [_c('a',{attrs:{\"href\":'./accounts/show/' + data.item.id,\"title\":data.value}},[_vm._v(_vm._s(data.value))])]}},{key:\"cell(number)\",fn:function(data){return [(null !== data.item.iban && null === data.item.account_number)?_c('span',[_vm._v(_vm._s(data.item.iban))]):_vm._e(),_vm._v(\" \"),(null === data.item.iban && null !== data.item.account_number)?_c('span',[_vm._v(_vm._s(data.item.account_number))]):_vm._e(),_vm._v(\" \"),(null !== data.item.iban && null !== data.item.account_number)?_c('span',[_vm._v(_vm._s(data.item.iban)+\" (\"+_vm._s(data.item.account_number)+\")\")]):_vm._e()]}},{key:\"cell(current_balance)\",fn:function(data){return [(parseFloat(data.item.current_balance) > 0)?_c('span',{staticClass:\"text-success\"},[_vm._v(\"\\n \"+_vm._s(Intl.NumberFormat('en-US', {\n style: 'currency', currency:\n data.item.currency_code\n }).format(data.item.current_balance))+\"\\n \")]):_vm._e(),_vm._v(\" \"),(parseFloat(data.item.current_balance) < 0)?_c('span',{staticClass:\"text-danger\"},[_vm._v(\"\\n \"+_vm._s(Intl.NumberFormat('en-US', {\n style: 'currency', currency:\n data.item.currency_code\n }).format(data.item.current_balance))+\"\\n \")]):_vm._e(),_vm._v(\" \"),(0 === parseFloat(data.item.current_balance))?_c('span',{staticClass:\"text-muted\"},[_vm._v(\"\\n \"+_vm._s(Intl.NumberFormat('en-US', {\n style: 'currency', currency:\n data.item.currency_code\n }).format(data.item.current_balance))+\"\\n \")]):_vm._e(),_vm._v(\" \"),('asset' === _vm.type && 'loading' === data.item.balance_diff)?_c('span',[_c('i',{staticClass:\"fas fa-spinner fa-spin\"})]):_vm._e(),_vm._v(\" \"),('asset' === _vm.type && 'loading' !== data.item.balance_diff)?_c('span',[_vm._v(\"\\n (\"),(parseFloat(data.item.balance_diff) > 0)?_c('span',{staticClass:\"text-success\"},[_vm._v(_vm._s(Intl.NumberFormat('en-US', {\n style: 'currency', currency:\n data.item.currency_code\n }).format(data.item.balance_diff)))]):_vm._e(),(0===parseFloat(data.item.balance_diff))?_c('span',{staticClass:\"text-muted\"},[_vm._v(_vm._s(Intl.NumberFormat('en-US', {\n style: 'currency', currency:\n data.item.currency_code\n }).format(data.item.balance_diff)))]):_vm._e(),(parseFloat(data.item.balance_diff) < 0)?_c('span',{staticClass:\"text-danger\"},[_vm._v(_vm._s(Intl.NumberFormat('en-US', {\n style: 'currency', currency:\n data.item.currency_code\n }).format(data.item.balance_diff)))]):_vm._e(),_vm._v(\")\\n \")]):_vm._e()]}},{key:\"cell(menu)\",fn:function(data){return [_c('div',{staticClass:\"btn-group btn-group-sm\"},[_c('div',{staticClass:\"dropdown\"},[_c('button',{staticClass:\"btn btn-light btn-sm dropdown-toggle\",attrs:{\"type\":\"button\",\"id\":'dropdownMenuButton' + data.item.id,\"data-toggle\":\"dropdown\",\"aria-haspopup\":\"true\",\"aria-expanded\":\"false\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$t('firefly.actions'))+\"\\n \")]),_vm._v(\" \"),_c('div',{staticClass:\"dropdown-menu\",attrs:{\"aria-labelledby\":'dropdownMenuButton' + data.item.id}},[_c('a',{staticClass:\"dropdown-item\",attrs:{\"href\":'./accounts/edit/' + data.item.id}},[_c('i',{staticClass:\"fa fas fa-pencil-alt\"}),_vm._v(\" \"+_vm._s(_vm.$t('firefly.edit')))]),_vm._v(\" \"),_c('a',{staticClass:\"dropdown-item\",attrs:{\"href\":'./accounts/delete/' + data.item.id}},[_c('i',{staticClass:\"fa far fa-trash\"}),_vm._v(\" \"+_vm._s(_vm.$t('firefly.delete')))]),_vm._v(\" \"),('asset' === _vm.type)?_c('a',{staticClass:\"dropdown-item\",attrs:{\"href\":'./accounts/reconcile/' + data.item.id}},[_c('i',{staticClass:\"fas fa-check\"}),_vm._v(\"\\n \"+_vm._s(_vm.$t('firefly.reconcile_this_account')))]):_vm._e()])])])]}}])})],1),_vm._v(\" \"),_c('div',{staticClass:\"card-footer\"},[_c('a',{staticClass:\"btn btn-success\",attrs:{\"href\":'./accounts/create/' + _vm.type,\"title\":_vm.$t('firefly.create_new_' + _vm.type)}},[_vm._v(_vm._s(_vm.$t('firefly.create_new_' + _vm.type)))])])])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IndexOptions.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./IndexOptions.vue?vue&type=script&lang=js&\"","\n\n\n\n\n\n","import { render, staticRenderFns } from \"./IndexOptions.vue?vue&type=template&id=b354f694&scoped=true&\"\nimport script from \"./IndexOptions.vue?vue&type=script&lang=js&\"\nexport * from \"./IndexOptions.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"b354f694\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"form-check\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.orderMode),expression:\"orderMode\"}],staticClass:\"form-check-input\",attrs:{\"type\":\"checkbox\",\"name\":\"order_mode\",\"id\":\"order_mode\"},domProps:{\"checked\":Array.isArray(_vm.orderMode)?_vm._i(_vm.orderMode,null)>-1:(_vm.orderMode)},on:{\"change\":function($event){var $$a=_vm.orderMode,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.orderMode=$$a.concat([$$v]))}else{$$i>-1&&(_vm.orderMode=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.orderMode=$$c}}}}),_vm._v(\" \"),_c('label',{staticClass:\"form-check-label\",attrs:{\"for\":\"order_mode\"}},[_vm._v(\"\\n Enable order mode\\n \")])]),_vm._v(\" \"),_c('div',{staticClass:\"form-check\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.activeFilter),expression:\"activeFilter\"}],staticClass:\"form-check-input\",attrs:{\"disabled\":_vm.orderMode,\"type\":\"radio\",\"value\":\"1\",\"id\":\"active_filter_1\"},domProps:{\"checked\":_vm._q(_vm.activeFilter,\"1\")},on:{\"change\":function($event){_vm.activeFilter=\"1\"}}}),_vm._v(\" \"),_c('label',{staticClass:\"form-check-label\",attrs:{\"for\":\"active_filter_1\"}},[_vm._v(\"\\n Show active accounts\\n \")])]),_vm._v(\" \"),_c('div',{staticClass:\"form-check\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.activeFilter),expression:\"activeFilter\"}],staticClass:\"form-check-input\",attrs:{\"disabled\":_vm.orderMode,\"type\":\"radio\",\"value\":\"2\",\"id\":\"active_filter_2\"},domProps:{\"checked\":_vm._q(_vm.activeFilter,\"2\")},on:{\"change\":function($event){_vm.activeFilter=\"2\"}}}),_vm._v(\" \"),_c('label',{staticClass:\"form-check-label\",attrs:{\"for\":\"active_filter_2\"}},[_vm._v(\"\\n Show inactive accounts\\n \")])]),_vm._v(\" \"),_c('div',{staticClass:\"form-check\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.activeFilter),expression:\"activeFilter\"}],staticClass:\"form-check-input\",attrs:{\"disabled\":_vm.orderMode,\"type\":\"radio\",\"value\":\"3\",\"id\":\"active_filter_3\"},domProps:{\"checked\":_vm._q(_vm.activeFilter,\"3\")},on:{\"change\":function($event){_vm.activeFilter=\"3\"}}}),_vm._v(\" \"),_c('label',{staticClass:\"form-check-label\",attrs:{\"for\":\"active_filter_3\"}},[_vm._v(\"\\n Show both\\n \")])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/*\n * index.js\n * Copyright (c) 2020 james@firefly-iii.org\n *\n * This file is part of Firefly III (https://github.com/firefly-iii).\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n */\nrequire('../../bootstrap');\n\nimport Vue from \"vue\";\nimport Index from \"../../components/accounts/Index\";\nimport store from \"../../components/store\";\nimport {BPagination, BTable} from 'bootstrap-vue';\nimport Calendar from \"../../components/dashboard/Calendar\";\nimport IndexOptions from \"../../components/accounts/IndexOptions\";\n//import Vuex from \"vuex\";\n\n// i18n\nlet i18n = require('../../i18n');\nlet props = {};\n\nVue.component('b-table', BTable);\nVue.component('b-pagination', BPagination);\n//Vue.use(Vuex);\n\nnew Vue({\n i18n,\n store,\n el: \"#accounts\",\n render: (createElement) => {\n return createElement(Index, {props: props});\n },\n beforeCreate() {\n // init the old root store (TODO remove me)\n this.$store.commit('initialiseStore');\n this.$store.dispatch('updateCurrencyPreference');\n\n // init the new root store (dont care about results)\n this.$store.dispatch('root/initialiseStore');\n\n // also init the dashboard store.\n this.$store.dispatch('dashboard/index/initialiseStore');\n },\n });\n\nnew Vue({\n i18n,\n store,\n el: \"#calendar\",\n render: (createElement) => {\n return createElement(Calendar, {props: props});\n },\n // TODO init store as well?\n });\n\nnew Vue({\n i18n,\n store,\n el: \"#indexOptions\",\n render: (createElement) => {\n return createElement(IndexOptions, {props: props});\n },\n // TODO init store as well?\n });"],"sourceRoot":""} \ No newline at end of file diff --git a/public/v2/js/accounts/show.js b/public/v2/js/accounts/show.js index 0992059ca0..cc94051ba1 100755 --- a/public/v2/js/accounts/show.js +++ b/public/v2/js/accounts/show.js @@ -1,2 +1,2 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[3],{303:function(n,e,t){n.exports=t(429)},429:function(n,e,t){"use strict";t.r(e);var o={name:"Show"},r=t(1),s=Object(r.a)(o,(function(){var n=this.$createElement;return(this._self._c||n)("div",[this._v("\n I am a show\n")])}),[],!1,null,"321a1058",null).exports;t(16);var u=t(19),a={};new Vue({i18n:u,render:function(n){return n(s,{props:a})}}).$mount("#accounts_show")}},[[303,0,1]]]); +(window.webpackJsonp=window.webpackJsonp||[]).push([[3],{334:function(n,e,t){n.exports=t(460)},460:function(n,e,t){"use strict";t.r(e);var o={name:"Show"},r=t(4),s=Object(r.a)(o,(function(){var n=this.$createElement;return(this._self._c||n)("div",[this._v("\n I am a show\n")])}),[],!1,null,"321a1058",null).exports;t(41);var u=t(43),a={};new Vue({i18n:u,render:function(n){return n(s,{props:a})}}).$mount("#accounts_show")}},[[334,0,1]]]); //# sourceMappingURL=show.js.map \ No newline at end of file diff --git a/public/v2/js/dashboard.js b/public/v2/js/dashboard.js index 9d55716133..929218a041 100755 --- a/public/v2/js/dashboard.js +++ b/public/v2/js/dashboard.js @@ -1,2 +1,2 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[4],{196:function(t,e,a){var s=a(250);"string"==typeof s&&(s=[[t.i,s,""]]);var r={hmr:!0,transform:void 0,insertInto:void 0};a(24)(s,r);s.locals&&(t.exports=s.locals)},245:function(t,e,a){a(426),t.exports=a(468)},246:function(t,e,a){var s={"./af":59,"./af.js":59,"./ar":60,"./ar-dz":61,"./ar-dz.js":61,"./ar-kw":62,"./ar-kw.js":62,"./ar-ly":63,"./ar-ly.js":63,"./ar-ma":64,"./ar-ma.js":64,"./ar-sa":65,"./ar-sa.js":65,"./ar-tn":66,"./ar-tn.js":66,"./ar.js":60,"./az":67,"./az.js":67,"./be":68,"./be.js":68,"./bg":69,"./bg.js":69,"./bm":70,"./bm.js":70,"./bn":71,"./bn-bd":72,"./bn-bd.js":72,"./bn.js":71,"./bo":73,"./bo.js":73,"./br":74,"./br.js":74,"./bs":75,"./bs.js":75,"./ca":76,"./ca.js":76,"./cs":77,"./cs.js":77,"./cv":78,"./cv.js":78,"./cy":79,"./cy.js":79,"./da":80,"./da.js":80,"./de":81,"./de-at":82,"./de-at.js":82,"./de-ch":83,"./de-ch.js":83,"./de.js":81,"./dv":84,"./dv.js":84,"./el":85,"./el.js":85,"./en-au":86,"./en-au.js":86,"./en-ca":87,"./en-ca.js":87,"./en-gb":88,"./en-gb.js":88,"./en-ie":89,"./en-ie.js":89,"./en-il":90,"./en-il.js":90,"./en-in":91,"./en-in.js":91,"./en-nz":92,"./en-nz.js":92,"./en-sg":93,"./en-sg.js":93,"./eo":94,"./eo.js":94,"./es":95,"./es-do":96,"./es-do.js":96,"./es-mx":97,"./es-mx.js":97,"./es-us":98,"./es-us.js":98,"./es.js":95,"./et":99,"./et.js":99,"./eu":100,"./eu.js":100,"./fa":101,"./fa.js":101,"./fi":102,"./fi.js":102,"./fil":103,"./fil.js":103,"./fo":104,"./fo.js":104,"./fr":105,"./fr-ca":106,"./fr-ca.js":106,"./fr-ch":107,"./fr-ch.js":107,"./fr.js":105,"./fy":108,"./fy.js":108,"./ga":109,"./ga.js":109,"./gd":110,"./gd.js":110,"./gl":111,"./gl.js":111,"./gom-deva":112,"./gom-deva.js":112,"./gom-latn":113,"./gom-latn.js":113,"./gu":114,"./gu.js":114,"./he":115,"./he.js":115,"./hi":116,"./hi.js":116,"./hr":117,"./hr.js":117,"./hu":118,"./hu.js":118,"./hy-am":119,"./hy-am.js":119,"./id":120,"./id.js":120,"./is":121,"./is.js":121,"./it":122,"./it-ch":123,"./it-ch.js":123,"./it.js":122,"./ja":124,"./ja.js":124,"./jv":125,"./jv.js":125,"./ka":126,"./ka.js":126,"./kk":127,"./kk.js":127,"./km":128,"./km.js":128,"./kn":129,"./kn.js":129,"./ko":130,"./ko.js":130,"./ku":131,"./ku.js":131,"./ky":132,"./ky.js":132,"./lb":133,"./lb.js":133,"./lo":134,"./lo.js":134,"./lt":135,"./lt.js":135,"./lv":136,"./lv.js":136,"./me":137,"./me.js":137,"./mi":138,"./mi.js":138,"./mk":139,"./mk.js":139,"./ml":140,"./ml.js":140,"./mn":141,"./mn.js":141,"./mr":142,"./mr.js":142,"./ms":143,"./ms-my":144,"./ms-my.js":144,"./ms.js":143,"./mt":145,"./mt.js":145,"./my":146,"./my.js":146,"./nb":147,"./nb.js":147,"./ne":148,"./ne.js":148,"./nl":149,"./nl-be":150,"./nl-be.js":150,"./nl.js":149,"./nn":151,"./nn.js":151,"./oc-lnc":152,"./oc-lnc.js":152,"./pa-in":153,"./pa-in.js":153,"./pl":154,"./pl.js":154,"./pt":155,"./pt-br":156,"./pt-br.js":156,"./pt.js":155,"./ro":157,"./ro.js":157,"./ru":158,"./ru.js":158,"./sd":159,"./sd.js":159,"./se":160,"./se.js":160,"./si":161,"./si.js":161,"./sk":162,"./sk.js":162,"./sl":163,"./sl.js":163,"./sq":164,"./sq.js":164,"./sr":165,"./sr-cyrl":166,"./sr-cyrl.js":166,"./sr.js":165,"./ss":167,"./ss.js":167,"./sv":168,"./sv.js":168,"./sw":169,"./sw.js":169,"./ta":170,"./ta.js":170,"./te":171,"./te.js":171,"./tet":172,"./tet.js":172,"./tg":173,"./tg.js":173,"./th":174,"./th.js":174,"./tk":175,"./tk.js":175,"./tl-ph":176,"./tl-ph.js":176,"./tlh":177,"./tlh.js":177,"./tr":178,"./tr.js":178,"./tzl":179,"./tzl.js":179,"./tzm":180,"./tzm-latn":181,"./tzm-latn.js":181,"./tzm.js":180,"./ug-cn":182,"./ug-cn.js":182,"./uk":183,"./uk.js":183,"./ur":184,"./ur.js":184,"./uz":185,"./uz-latn":186,"./uz-latn.js":186,"./uz.js":185,"./vi":187,"./vi.js":187,"./x-pseudo":188,"./x-pseudo.js":188,"./yo":189,"./yo.js":189,"./zh-cn":190,"./zh-cn.js":190,"./zh-hk":191,"./zh-hk.js":191,"./zh-mo":192,"./zh-mo.js":192,"./zh-tw":193,"./zh-tw.js":193};function r(t){var e=n(t);return a(e)}function n(t){if(!a.o(s,t)){var e=new Error("Cannot find module '"+t+"'");throw e.code="MODULE_NOT_FOUND",e}return s[t]}r.keys=function(){return Object.keys(s)},r.resolve=n,t.exports=r,r.id=246},249:function(t,e,a){"use strict";a(196)},250:function(t,e,a){(t.exports=a(23)(!1)).push([t.i,".dropdown-item[data-v-51abf689],.dropdown-item[data-v-51abf689]:hover{color:#212529}",""])},426:function(t,e,a){"use strict";a.r(e);var s={name:"Dashboard"},r=a(1),n=Object(r.a)(s,(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",[a("top-boxes"),t._v(" "),a("div",{staticClass:"row"},[a("div",{staticClass:"col"},[a("main-account")],1)]),t._v(" "),a("main-account-list"),t._v(" "),a("div",{staticClass:"row"},[a("div",{staticClass:"col"},[a("main-budget-list")],1)]),t._v(" "),a("div",{staticClass:"row"},[a("div",{staticClass:"col"},[a("main-category-list")],1)]),t._v(" "),a("div",{staticClass:"row"},[a("div",{staticClass:"col-lg-6 col-md-12 col-sm-12 col-xs-12"},[a("main-debit-list")],1),t._v(" "),a("div",{staticClass:"col-lg-6 col-md-12 col-sm-12 col-xs-12"},[a("main-credit-list")],1)]),t._v(" "),a("div",{staticClass:"row"},[a("div",{staticClass:"col-lg-6 col-md-12 col-sm-12 col-xs-12"},[a("main-piggy-list")],1),t._v(" "),a("div",{staticClass:"col-lg-6 col-md-12 col-sm-12 col-xs-12"},[a("main-bills-list")],1)])],1)}),[],!1,null,null,null).exports,i=a(3);function c(t,e){var a=Object.keys(t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(t);e&&(s=s.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),a.push.apply(a,s)}return a}function o(t){for(var e=1;e0){var i=r+" "+t;if(!(i.length>e))return n===s.length-1?void a.push(i):void(r=i);a.push(r),r=""}n!==s.length-1&&t.length2}},[a("div",{staticClass:"card"},[a("div",{staticClass:"card-header"},[a("h3",{staticClass:"card-title"},[a("a",{attrs:{href:e.url}},[t._v(t._s(e.title))])]),t._v(" "),a("div",{staticClass:"card-tools"},[a("span",{class:parseFloat(e.current_balance)<0?"text-danger":"text-success"},[t._v("\n "+t._s(Intl.NumberFormat(t.locale,{style:"currency",currency:e.currency_code}).format(parseFloat(e.current_balance)))+"\n ")])])]),t._v(" "),a("div",{staticClass:"card-body table-responsive p-0"},[a("div",[1===t.accounts.length?a("transaction-list-large",{attrs:{account_id:e.id,transactions:e.transactions}}):t._e(),t._v(" "),2===t.accounts.length?a("transaction-list-medium",{attrs:{account_id:e.id,transactions:e.transactions}}):t._e(),t._v(" "),t.accounts.length>2?a("transaction-list-small",{attrs:{account_id:e.id,transactions:e.transactions}}):t._e()],1)])])])})),0)])}),[function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"col"},[e("div",{staticClass:"card"},[e("div",{staticClass:"card-body"},[e("div",{staticClass:"text-center"},[e("i",{staticClass:"fas fa-spinner fa-spin"})])])])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"col"},[e("div",{staticClass:"card"},[e("div",{staticClass:"card-body"},[e("div",{staticClass:"text-center"},[e("i",{staticClass:"fas fa-exclamation-triangle text-danger"})])])])])}],!1,null,"5d6bb842",null).exports;function N(t,e){var a=Object.keys(t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(t);e&&(s=s.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),a.push.apply(a,s)}return a}function T(t){for(var e=1;e'+a+""},loadBills:function(t){for(var e in t)if(t.hasOwnProperty(e)&&/^0$|^[1-9]\d*$/.test(e)&&e<=4294967294){var a=t[e],s=a.attributes.active;a.attributes.pay_dates.length>0&&s&&this.bills.push(a)}this.error=!1,this.loading=!1}}}),M=Object(r.a)(z,(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"card"},[a("div",{staticClass:"card-header"},[a("h3",{staticClass:"card-title"},[t._v(t._s(t.$t("firefly.bills")))])]),t._v(" "),t.loading&&!t.error?a("div",{staticClass:"card-body"},[t._m(0)]):t._e(),t._v(" "),t.error?a("div",{staticClass:"card-body"},[t._m(1)]):t._e(),t._v(" "),t.loading||t.error?t._e():a("div",{staticClass:"card-body table-responsive p-0"},[a("table",{staticClass:"table table-striped"},[a("caption",{staticStyle:{display:"none"}},[t._v(t._s(t.$t("firefly.bills")))]),t._v(" "),a("thead",[a("tr",[a("th",{staticStyle:{width:"35%"},attrs:{scope:"col"}},[t._v(t._s(t.$t("list.name")))]),t._v(" "),a("th",{staticStyle:{width:"25%"},attrs:{scope:"col"}},[t._v(t._s(t.$t("list.next_expected_match")))])])]),t._v(" "),a("tbody",t._l(this.bills,(function(e){return a("tr",[a("td",[a("a",{attrs:{href:"./bills/show/"+e.id,title:e.attributes.name}},[t._v(t._s(e.attributes.name))]),t._v("\n (~ "),a("span",{staticClass:"text-danger"},[t._v(t._s(Intl.NumberFormat(t.locale,{style:"currency",currency:e.attributes.currency_code}).format((parseFloat(e.attributes.amount_min)+parseFloat(e.attributes.amount_max))/-2)))]),t._v(")\n "),e.attributes.object_group_title?a("small",{staticClass:"text-muted"},[a("br"),t._v("\n "+t._s(e.attributes.object_group_title)+"\n ")]):t._e()]),t._v(" "),a("td",[t._l(e.attributes.paid_dates,(function(e){return a("span",[a("span",{domProps:{innerHTML:t._s(t.renderPaidDate(e))}}),a("br")])})),t._v(" "),t._l(e.attributes.pay_dates,(function(s){return 0===e.attributes.paid_dates.length?a("span",[t._v("\n "+t._s(new Intl.DateTimeFormat(t.locale,{year:"numeric",month:"long",day:"numeric"}).format(new Date(s)))),a("br")]):t._e()}))],2)])})),0)])]),t._v(" "),a("div",{staticClass:"card-footer"},[a("a",{staticClass:"btn btn-default button-sm",attrs:{href:"./bills"}},[a("i",{staticClass:"far fa-money-bill-alt"}),t._v(" "+t._s(t.$t("firefly.go_to_bills")))])])])}),[function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"text-center"},[e("i",{staticClass:"fas fa-spinner fa-spin"})])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"text-center"},[e("i",{staticClass:"fas fa-exclamation-triangle text-danger"})])}],!1,null,null,null).exports,G={name:"BudgetLimitRow",created:function(){var t;this.locale=null!==(t=localStorage.locale)&&void 0!==t?t:"en-US"},data:function(){return{locale:"en-US"}},props:{budgetLimit:{type:Object,default:function(){return{}}},budget:{type:Object,default:function(){return{}}}}},W=Object(r.a)(G,(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("tr",[a("td",{staticStyle:{width:"25%"}},[a("a",{attrs:{href:"./budgets/show/"+t.budgetLimit.budget_id}},[t._v(t._s(t.budgetLimit.budget_name))])]),t._v(" "),a("td",{staticStyle:{"vertical-align":"middle"}},[a("div",{staticClass:"progress progress active"},[a("div",{staticClass:"progress-bar bg-success progress-bar-striped",style:"width: "+t.budgetLimit.pctGreen+"%;",attrs:{"aria-valuenow":t.budgetLimit.pctGreen,"aria-valuemax":"100","aria-valuemin":"0",role:"progressbar"}},[t.budgetLimit.pctGreen>35?a("span",[t._v("\n Spent\n "+t._s(Intl.NumberFormat(t.locale,{style:"currency",currency:t.budgetLimit.currency_code}).format(t.budgetLimit.spent))+"\n of\n "+t._s(Intl.NumberFormat(t.locale,{style:"currency",currency:t.budgetLimit.currency_code}).format(t.budgetLimit.amount))+"\n ")]):t._e()]),t._v(" "),a("div",{staticClass:"progress-bar bg-warning progress-bar-striped",style:"width: "+t.budgetLimit.pctOrange+"%;",attrs:{"aria-valuenow":t.budgetLimit.pctOrange,"aria-valuemax":"100","aria-valuemin":"0",role:"progressbar"}},[t.budgetLimit.pctRed<=50&&t.budgetLimit.pctOrange>35?a("span",[t._v("\n Spent\n "+t._s(Intl.NumberFormat(t.locale,{style:"currency",currency:t.budgetLimit.currency_code}).format(t.budgetLimit.spent))+"\n of\n "+t._s(Intl.NumberFormat(t.locale,{style:"currency",currency:t.budgetLimit.currency_code}).format(t.budgetLimit.amount))+"\n ")]):t._e()]),t._v(" "),a("div",{staticClass:"progress-bar bg-danger progress-bar-striped",style:"width: "+t.budgetLimit.pctRed+"%;",attrs:{"aria-valuenow":t.budgetLimit.pctRed,"aria-valuemax":"100","aria-valuemin":"0",role:"progressbar"}},[t.budgetLimit.pctOrange<=50&&t.budgetLimit.pctRed>35?a("span",{staticClass:"text-muted"},[t._v("\n Spent\n "+t._s(Intl.NumberFormat(t.locale,{style:"currency",currency:t.budgetLimit.currency_code}).format(t.budgetLimit.spent))+"\n of\n "+t._s(Intl.NumberFormat(t.locale,{style:"currency",currency:t.budgetLimit.currency_code}).format(t.budgetLimit.amount))+"\n ")]):t._e()]),t._v(" "),t.budgetLimit.pctGreen<=35&&0===t.budgetLimit.pctOrange&&0===t.budgetLimit.pctRed&&0!==t.budgetLimit.pctGreen?a("span",[t._v("\n  \n Spent\n "+t._s(Intl.NumberFormat(t.locale,{style:"currency",currency:t.budgetLimit.currency_code}).format(t.budgetLimit.spent))+"\n of\n "+t._s(Intl.NumberFormat(t.locale,{style:"currency",currency:t.budgetLimit.currency_code}).format(t.budgetLimit.amount))+"\n ")]):t._e()]),t._v(" "),a("small",{staticClass:"d-none d-lg-block"},[t._v("\n "+t._s(new Intl.DateTimeFormat(t.locale,{year:"numeric",month:"long",day:"numeric"}).format(t.budgetLimit.start))+"\n →\n "+t._s(new Intl.DateTimeFormat(t.locale,{year:"numeric",month:"long",day:"numeric"}).format(t.budgetLimit.end))+"\n ")])]),t._v(" "),a("td",{staticClass:"align-middle d-none d-lg-table-cell",staticStyle:{width:"10%"}},[parseFloat(t.budgetLimit.amount)+parseFloat(t.budgetLimit.spent)>0?a("span",{staticClass:"text-success"},[t._v("\n "+t._s(Intl.NumberFormat(t.locale,{style:"currency",currency:t.budgetLimit.currency_code}).format(parseFloat(t.budgetLimit.amount)+parseFloat(t.budgetLimit.spent)))+"\n ")]):t._e(),t._v(" "),0===parseFloat(t.budgetLimit.amount)+parseFloat(t.budgetLimit.spent)?a("span",{staticClass:"text-muted"},[t._v("\n "+t._s(Intl.NumberFormat(t.locale,{style:"currency",currency:t.budgetLimit.currency_code}).format(0))+"\n ")]):t._e(),t._v(" "),parseFloat(t.budgetLimit.amount)+parseFloat(t.budgetLimit.spent)<0?a("span",{staticClass:"text-danger"},[t._v("\n "+t._s(Intl.NumberFormat(t.locale,{style:"currency",currency:t.budgetLimit.currency_code}).format(parseFloat(t.budgetLimit.amount)+parseFloat(t.budgetLimit.spent)))+"\n ")]):t._e()])])}),[],!1,null,"6b6de222",null).exports,q={name:"BudgetRow",created:function(){var t;this.locale=null!==(t=localStorage.locale)&&void 0!==t?t:"en-US"},data:function(){return{locale:"en-US"}},props:{budget:{type:Object,default:{}}}},K={name:"BudgetListGroup",components:{BudgetLimitRow:W,BudgetRow:Object(r.a)(q,(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("tr",[a("td",{staticStyle:{width:"25%"}},[a("a",{attrs:{href:"./budgets/show/"+t.budget.id}},[t._v(t._s(t.budget.name))])]),t._v(" "),a("td",{staticClass:"align-middle text-right"},[a("span",{staticClass:"text-danger"},[t._v("\n "+t._s(Intl.NumberFormat(t.locale,{style:"currency",currency:t.budget.currency_code}).format(parseFloat(t.budget.spent)))+"\n ")])])])}),[],!1,null,"2fc8f640",null).exports},props:{title:String,budgetLimits:Array,budgets:Array}},J=Object(r.a)(K,(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"card"},[a("div",{staticClass:"card-header"},[a("h3",{staticClass:"card-title"},[t._v(t._s(t.title))])]),t._v(" "),a("div",{staticClass:"card-body table-responsive p-0"},[a("table",{staticClass:"table table-sm"},[a("tbody",[t._l(t.budgetLimits,(function(t,e){return a("BudgetLimitRow",{key:e,attrs:{budgetLimit:t}})})),t._v(" "),t._l(t.budgets,(function(t,e){return a("BudgetRow",{key:e,attrs:{budget:t}})}))],2)])]),t._v(" "),a("div",{staticClass:"card-footer"},[a("a",{staticClass:"btn btn-default button-sm",attrs:{href:"./budgets"}},[a("i",{staticClass:"far fa-money-bill-alt"}),t._v(" "+t._s(t.$t("firefly.go_to_budgets")))])])])}),[],!1,null,"658dd996",null).exports;function H(t,e){var a=Object.keys(t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(t);e&&(s=s.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),a.push.apply(a,s)}return a}function V(t){for(var e=1;eparseFloat(t.data[a].attributes.amount)&&(i=100-(n=parseFloat(t.data[a].attributes.amount)/parseFloat(t.data[a].attributes.spent)*-1*100));var c={id:t.data[a].id,amount:t.data[a].attributes.amount,budget_id:t.data[a].attributes.budget_id,budget_name:this.budgets[t.data[a].attributes.budget_id].name,currency_id:t.data[a].attributes.currency_id,currency_code:t.data[a].attributes.currency_code,period:t.data[a].attributes.period,start:new Date(t.data[a].attributes.start),end:new Date(t.data[a].attributes.end),spent:t.data[a].attributes.spent,pctGreen:r,pctOrange:n,pctRed:i},o=null!==(s=t.data[a].attributes.period)&&void 0!==s?s:"other";this.budgetLimits[o].push(c)}},filterBudgets:function(t,e){for(var a in this.rawBudgets)this.rawBudgets.hasOwnProperty(a)&&/^0$|^[1-9]\d*$/.test(a)&&a<=4294967294&&this.rawBudgets[a].currency_id===e&&this.rawBudgets[a].id===t&&this.rawBudgets.splice(a,1)}}}),tt=Object(r.a)(Y,(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",[t.loading?t._e():a("div",{staticClass:"row"},[t.budgetLimits.daily.length>0?a("div",{staticClass:"col-xl-6 col-lg-12 col-md-12 col-sm-12 col-xs-12"},[a("BudgetListGroup",{attrs:{budgetLimits:t.budgetLimits.daily,title:t.$t("firefly.daily_budgets")}})],1):t._e(),t._v(" "),t.budgetLimits.weekly.length>0?a("div",{staticClass:"col-xl-6 col-lg-12 col-md-12 col-sm-12 col-xs-12"},[a("BudgetListGroup",{attrs:{budgetLimits:t.budgetLimits.weekly,title:t.$t("firefly.weekly_budgets")}})],1):t._e(),t._v(" "),t.budgetLimits.monthly.length>0?a("div",{staticClass:"col-xl-6 col-lg-12 col-md-12 col-sm-12 col-xs-12"},[a("BudgetListGroup",{attrs:{budgetLimits:t.budgetLimits.monthly,title:t.$t("firefly.monthly_budgets")}})],1):t._e(),t._v(" "),t.budgetLimits.quarterly.length>0?a("div",{staticClass:"col-xl-6 col-lg-12 col-md-12 col-sm-12 col-xs-12"},[a("BudgetListGroup",{attrs:{budgetLimits:t.budgetLimits.quarterly,title:t.$t("firefly.quarterly_budgets")}})],1):t._e(),t._v(" "),t.budgetLimits.half_year.length>0?a("div",{staticClass:"col-xl-6 col-lg-12 col-md-12 col-sm-12 col-xs-12"},[a("BudgetListGroup",{attrs:{budgetLimits:t.budgetLimits.half_year,title:t.$t("firefly.half_year_budgets")}})],1):t._e(),t._v(" "),t.budgetLimits.yearly.length>0?a("div",{staticClass:"col-xl-6 col-lg-12 col-md-12 col-sm-12 col-xs-12"},[a("BudgetListGroup",{attrs:{budgetLimits:t.budgetLimits.yearly,title:t.$t("firefly.yearly_budgets")}})],1):t._e(),t._v(" "),t.budgetLimits.other.length>0||t.rawBudgets.length>0?a("div",{staticClass:"col-xl-6 col-lg-12 col-md-12 col-sm-12 col-xs-12"},[a("BudgetListGroup",{attrs:{budgetLimits:t.budgetLimits.other,budgets:t.rawBudgets,title:t.$t("firefly.other_budgets")}})],1):t._e()]),t._v(" "),t.loading&&!t.error?a("div",{staticClass:"row"},[t._m(0)]):t._e()])}),[function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"col"},[e("div",{staticClass:"card"},[e("div",{staticClass:"card-body"},[e("div",{staticClass:"text-center"},[e("i",{staticClass:"fas fa-spinner fa-spin"})])])])])}],!1,null,"03d11977",null).exports;function et(t,e){var a=Object.keys(t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(t);e&&(s=s.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),a.push.apply(a,s)}return a}function at(t){for(var e=1;e0?a("div",{staticClass:"progress"},[a("div",{staticClass:"progress-bar progress-bar-striped bg-success",style:{width:e.pct+"%"},attrs:{"aria-valuenow":e.pct,"aria-valuemax":"100","aria-valuemin":"0",role:"progressbar"}},[e.pct>20?a("span",[t._v("\n "+t._s(Intl.NumberFormat(t.locale,{style:"currency",currency:e.currency_code}).format(e.difference_float))+"\n ")]):t._e()]),t._v(" "),e.pct<=20?a("span",[t._v(" \n "+t._s(Intl.NumberFormat(t.locale,{style:"currency",currency:e.currency_code}).format(e.difference_float))+"\n ")]):t._e()]):t._e()])])})),0)])]),t._v(" "),a("div",{staticClass:"card-footer"},[a("a",{staticClass:"btn btn-default button-sm",attrs:{href:"./transactions/deposit"}},[a("i",{staticClass:"far fa-money-bill-alt"}),t._v(" "+t._s(t.$t("firefly.go_to_deposits")))])])])}),[function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"text-center"},[e("i",{staticClass:"fas fa-spinner fa-spin"})])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"text-center"},[e("i",{staticClass:"fas fa-exclamation-triangle text-danger"})])}],!1,null,null,null).exports;function ot(t,e){var a=Object.keys(t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(t);e&&(s=s.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),a.push.apply(a,s)}return a}function lt(t){for(var e=1;e0?a("div",{staticClass:"progress"},[a("div",{staticClass:"progress-bar progress-bar-striped bg-danger",style:{width:e.pct+"%"},attrs:{"aria-valuenow":e.pct,"aria-valuemax":"100","aria-valuemin":"0",role:"progressbar"}},[e.pct>20?a("span",[t._v("\n "+t._s(Intl.NumberFormat(t.locale,{style:"currency",currency:e.currency_code}).format(e.difference_float))+"\n ")]):t._e()]),t._v(" "),e.pct<=20?a("span",[t._v(" \n "+t._s(Intl.NumberFormat(t.locale,{style:"currency",currency:e.currency_code}).format(e.difference_float))+"\n ")]):t._e()]):t._e()])])})),0)])]),t._v(" "),a("div",{staticClass:"card-footer"},[a("a",{staticClass:"btn btn-default button-sm",attrs:{href:"./transactions/withdrawal"}},[a("i",{staticClass:"far fa-money-bill-alt"}),t._v(" "+t._s(t.$t("firefly.go_to_withdrawals")))])])])}),[function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"text-center"},[e("i",{staticClass:"fas fa-spinner fa-spin"})])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"text-center"},[e("i",{staticClass:"fas fa-exclamation-triangle text-danger"})])}],!1,null,null,null).exports,bt={name:"MainPiggyList",data:function(){return{piggy_banks:[],loading:!0,error:!1,locale:"en-US"}},created:function(){var t,e=this;this.locale=null!==(t=localStorage.locale)&&void 0!==t?t:"en-US",axios.get("./api/v1/piggy_banks").then((function(t){e.loadPiggyBanks(t.data.data),e.loading=!1})).catch((function(t){e.error=!0}))},methods:{loadPiggyBanks:function(t){for(var e in t)if(t.hasOwnProperty(e)&&/^0$|^[1-9]\d*$/.test(e)&&e<=4294967294){var a=t[e];0!==parseFloat(a.attributes.left_to_save)&&(a.attributes.pct=parseFloat(a.attributes.current_amount)/parseFloat(a.attributes.target_amount)*100,this.piggy_banks.push(a))}this.piggy_banks.sort((function(t,e){return e.attributes.pct-t.attributes.pct}))}}},ht=Object(r.a)(bt,(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"card"},[a("div",{staticClass:"card-header"},[a("h3",{staticClass:"card-title"},[t._v(t._s(t.$t("firefly.piggy_banks")))])]),t._v(" "),t.loading&&!t.error?a("div",{staticClass:"card-body"},[t._m(0)]):t._e(),t._v(" "),t.error?a("div",{staticClass:"card-body"},[t._m(1)]):t._e(),t._v(" "),t.loading||t.error?t._e():a("div",{staticClass:"card-body table-responsive p-0"},[a("table",{staticClass:"table table-striped"},[a("caption",{staticStyle:{display:"none"}},[t._v(t._s(t.$t("firefly.piggy_banks")))]),t._v(" "),a("thead",[a("tr",[a("th",{staticStyle:{width:"35%"},attrs:{scope:"col"}},[t._v(t._s(t.$t("list.piggy_bank")))]),t._v(" "),a("th",{staticStyle:{width:"40%"},attrs:{scope:"col"}},[t._v(t._s(t.$t("list.percentage"))+" "),a("small",[t._v("/ "+t._s(t.$t("list.amount")))])])])]),t._v(" "),a("tbody",t._l(this.piggy_banks,(function(e){return a("tr",[a("td",[a("a",{attrs:{href:"./piggy-banks/show/"+e.id,title:e.attributes.name}},[t._v(t._s(e.attributes.name))]),t._v(" "),e.attributes.object_group_title?a("small",{staticClass:"text-muted"},[a("br"),t._v("\n "+t._s(e.attributes.object_group_title)+"\n ")]):t._e()]),t._v(" "),a("td",[a("div",{staticClass:"progress-group"},[a("div",{staticClass:"progress progress-sm"},[e.attributes.pct<100?a("div",{staticClass:"progress-bar progress-bar-striped primary",style:{width:e.attributes.pct+"%"}}):t._e(),t._v(" "),100===e.attributes.pct?a("div",{staticClass:"progress-bar progress-bar-striped bg-success",style:{width:e.attributes.pct+"%"}}):t._e()])]),t._v(" "),a("span",{staticClass:"text-success"},[t._v("\n "+t._s(Intl.NumberFormat(t.locale,{style:"currency",currency:e.attributes.currency_code}).format(e.attributes.current_amount))+"\n ")]),t._v("\n of\n "),a("span",{staticClass:"text-success"},[t._v(t._s(Intl.NumberFormat(t.locale,{style:"currency",currency:e.attributes.currency_code}).format(e.attributes.target_amount)))])])])})),0)])]),t._v(" "),a("div",{staticClass:"card-footer"},[a("a",{staticClass:"btn btn-default button-sm",attrs:{href:"./piggy-banks"}},[a("i",{staticClass:"far fa-money-bill-alt"}),t._v(" "+t._s(t.$t("firefly.go_to_piggies")))])])])}),[function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"text-center"},[e("i",{staticClass:"fas fa-spinner fa-spin"})])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"text-center"},[e("i",{staticClass:"fas fa-exclamation-triangle text-danger"})])}],!1,null,"c17c9a5a",null).exports,mt={name:"TransactionListLarge",data:function(){return{locale:"en-US"}},created:function(){var t;this.locale=null!==(t=localStorage.locale)&&void 0!==t?t:"en-US"},props:{transactions:{type:Array,default:function(){return[]}},account_id:{type:Number,default:function(){return 0}}}},vt=Object(r.a)(mt,(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("table",{staticClass:"table table-striped table-sm"},[a("caption",{staticStyle:{display:"none"}},[t._v(t._s(t.$t("firefly.transaction_table_description")))]),t._v(" "),a("thead",[a("tr",[a("th",{staticClass:"text-left",attrs:{scope:"col"}},[t._v(t._s(t.$t("firefly.description")))]),t._v(" "),a("th",{attrs:{scope:"col"}},[t._v(t._s(t.$t("firefly.opposing_account")))]),t._v(" "),a("th",{staticClass:"text-right",attrs:{scope:"col"}},[t._v(t._s(t.$t("firefly.amount")))]),t._v(" "),a("th",{attrs:{scope:"col"}},[t._v(t._s(t.$t("firefly.category")))]),t._v(" "),a("th",{attrs:{scope:"col"}},[t._v(t._s(t.$t("firefly.budget")))])])]),t._v(" "),a("tbody",t._l(this.transactions,(function(e){return a("tr",[a("td",[a("a",{attrs:{href:"transactions/show/"+e.id,title:e.date}},[e.attributes.transactions.length>1?a("span",[t._v(t._s(e.attributes.group_title))]):t._e(),t._v(" "),1===e.attributes.transactions.length?a("span",[t._v(t._s(e.attributes.transactions[0].description))]):t._e()])]),t._v(" "),a("td",t._l(e.attributes.transactions,(function(e){return a("span",["withdrawal"===e.type?a("a",{attrs:{href:"accounts/show/"+e.destination_id}},[t._v(t._s(e.destination_name))]):t._e(),t._v(" "),"deposit"===e.type?a("a",{attrs:{href:"accounts/show/"+e.source_id}},[t._v(t._s(e.source_name))]):t._e(),t._v(" "),"transfer"===e.type&&parseInt(e.source_id)===t.account_id?a("a",{attrs:{href:"accounts/show/"+e.destination_id}},[t._v(t._s(e.destination_name))]):t._e(),t._v(" "),"transfer"===e.type&&parseInt(e.destination_id)===t.account_id?a("a",{attrs:{href:"accounts/show/"+e.source_id}},[t._v(t._s(e.source_name))]):t._e(),t._v(" "),a("br")])})),0),t._v(" "),a("td",{staticStyle:{"text-align":"right"}},t._l(e.attributes.transactions,(function(e){return a("span",["withdrawal"===e.type?a("span",{staticClass:"text-danger"},[t._v("\n "+t._s(Intl.NumberFormat(t.locale,{style:"currency",currency:e.currency_code}).format(-1*e.amount))),a("br")]):t._e(),t._v(" "),"deposit"===e.type?a("span",{staticClass:"text-success"},[t._v("\n "+t._s(Intl.NumberFormat(t.locale,{style:"currency",currency:e.currency_code}).format(e.amount))),a("br")]):t._e(),t._v(" "),"transfer"===e.type&&parseInt(e.source_id)===t.account_id?a("span",{staticClass:"text-info"},[t._v("\n "+t._s(Intl.NumberFormat(t.locale,{style:"currency",currency:e.currency_code}).format(-1*e.amount))),a("br")]):t._e(),t._v(" "),"transfer"===e.type&&parseInt(e.destination_id)===t.account_id?a("span",{staticClass:"text-info"},[t._v("\n "+t._s(Intl.NumberFormat(t.locale,{style:"currency",currency:e.currency_code}).format(e.amount))),a("br")]):t._e()])})),0),t._v(" "),a("td",t._l(e.attributes.transactions,(function(e){return a("span",[0!==e.category_id?a("a",{attrs:{href:"categories/show/"+e.category_id}},[t._v(t._s(e.category_name))]):t._e(),a("br")])})),0),t._v(" "),a("td",t._l(e.attributes.transactions,(function(e){return a("span",[0!==e.budget_id?a("a",{attrs:{href:"budgets/show/"+e.budget_id}},[t._v(t._s(e.budget_name))]):t._e(),a("br")])})),0)])})),0)])}),[],!1,null,"6e420753",null).exports,gt={name:"TransactionListMedium",data:function(){return{locale:"en-US"}},created:function(){var t;this.locale=null!==(t=localStorage.locale)&&void 0!==t?t:"en-US"},props:{transactions:{type:Array,default:function(){return[]}},account_id:{type:Number,default:function(){return 0}}}},yt=Object(r.a)(gt,(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("table",{staticClass:"table table-striped table-sm"},[a("caption",{staticStyle:{display:"none"}},[t._v(t._s(t.$t("firefly.transaction_table_description")))]),t._v(" "),a("thead",[a("tr",[a("th",{staticClass:"text-left",attrs:{scope:"col"}},[t._v(t._s(t.$t("firefly.description")))]),t._v(" "),a("th",{attrs:{scope:"col"}},[t._v(t._s(t.$t("firefly.opposing_account")))]),t._v(" "),a("th",{staticClass:"text-right",attrs:{scope:"col"}},[t._v(t._s(t.$t("firefly.amount")))])])]),t._v(" "),a("tbody",t._l(this.transactions,(function(e){return a("tr",[a("td",[a("a",{attrs:{href:"transactions/show/"+e.id,title:e.date}},[e.attributes.transactions.length>1?a("span",[t._v(t._s(e.attributes.group_title))]):t._e(),t._v(" "),1===e.attributes.transactions.length?a("span",[t._v(t._s(e.attributes.transactions[0].description))]):t._e()])]),t._v(" "),a("td",t._l(e.attributes.transactions,(function(e){return a("span",["withdrawal"===e.type?a("a",{attrs:{href:"accounts/show/"+e.destination_id}},[t._v(t._s(e.destination_name))]):t._e(),t._v(" "),"deposit"===e.type?a("a",{attrs:{href:"accounts/show/"+e.source_id}},[t._v(t._s(e.source_name))]):t._e(),t._v(" "),"transfer"===e.type&&parseInt(e.source_id)===t.account_id?a("a",{attrs:{href:"accounts/show/"+e.destination_id}},[t._v(t._s(e.destination_name))]):t._e(),t._v(" "),"transfer"===e.type&&parseInt(e.destination_id)===t.account_id?a("a",{attrs:{href:"accounts/show/"+e.source_id}},[t._v(t._s(e.source_name))]):t._e(),t._v(" "),a("br")])})),0),t._v(" "),a("td",{staticStyle:{"text-align":"right"}},t._l(e.attributes.transactions,(function(e){return a("span",["withdrawal"===e.type?a("span",{staticClass:"text-danger"},[t._v("\n "+t._s(Intl.NumberFormat(t.locale,{style:"currency",currency:e.currency_code}).format(-1*e.amount))),a("br")]):t._e(),t._v(" "),"deposit"===e.type?a("span",{staticClass:"text-success"},[t._v("\n "+t._s(Intl.NumberFormat(t.locale,{style:"currency",currency:e.currency_code}).format(e.amount))),a("br")]):t._e(),t._v(" "),"transfer"===e.type&&parseInt(e.source_id)===t.account_id?a("span",{staticClass:"text-info"},[t._v("\n "+t._s(Intl.NumberFormat(t.locale,{style:"currency",currency:e.currency_code}).format(-1*e.amount))),a("br")]):t._e(),t._v(" "),"transfer"===e.type&&parseInt(e.destination_id)===t.account_id?a("span",{staticClass:"text-info"},[t._v("\n "+t._s(Intl.NumberFormat(t.locale,{style:"currency",currency:e.currency_code}).format(e.amount))),a("br")]):t._e()])})),0)])})),0)])}),[],!1,null,"0d4f7042",null).exports,Ct={name:"TransactionListSmall",data:function(){return{locale:"en-US"}},created:function(){var t;this.locale=null!==(t=localStorage.locale)&&void 0!==t?t:"en-US"},methods:{},props:{transactions:{type:Array,default:function(){return[]}},account_id:{type:Number,default:function(){return 0}}}},jt=Object(r.a)(Ct,(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("table",{staticClass:"table table-striped table-sm"},[a("caption",{staticStyle:{display:"none"}},[t._v(t._s(t.$t("firefly.transaction_table_description")))]),t._v(" "),a("thead",[a("tr",[a("th",{staticClass:"text-left",attrs:{scope:"col"}},[t._v(t._s(t.$t("firefly.description")))]),t._v(" "),a("th",{staticClass:"text-right",attrs:{scope:"col"}},[t._v(t._s(t.$t("firefly.amount")))])])]),t._v(" "),a("tbody",t._l(this.transactions,(function(e){return a("tr",[a("td",[a("a",{attrs:{href:"transactions/show/"+e.id,title:new Intl.DateTimeFormat(t.locale,{year:"numeric",month:"long",day:"numeric"}).format(new Date(e.attributes.transactions[0].date))}},[e.attributes.transactions.length>1?a("span",[t._v(t._s(e.attributes.group_title))]):t._e(),t._v(" "),1===e.attributes.transactions.length?a("span",[t._v(t._s(e.attributes.transactions[0].description))]):t._e()])]),t._v(" "),a("td",{staticStyle:{"text-align":"right"}},t._l(e.attributes.transactions,(function(e){return a("span",["withdrawal"===e.type?a("span",{staticClass:"text-danger"},[t._v("\n "+t._s(Intl.NumberFormat(t.locale,{style:"currency",currency:e.currency_code}).format(-1*e.amount))),a("br")]):t._e(),t._v(" "),"deposit"===e.type?a("span",{staticClass:"text-success"},[t._v("\n "+t._s(Intl.NumberFormat(t.locale,{style:"currency",currency:e.currency_code}).format(e.amount))),a("br")]):t._e(),t._v(" "),"transfer"===e.type&&parseInt(e.source_id)===t.account_id?a("span",{staticClass:"text-info"},[t._v("\n "+t._s(Intl.NumberFormat(t.locale,{style:"currency",currency:e.currency_code}).format(-1*e.amount))),a("br")]):t._e(),t._v(" "),"transfer"===e.type&&parseInt(e.destination_id)===t.account_id?a("span",{staticClass:"text-info"},[t._v("\n "+t._s(Intl.NumberFormat(t.locale,{style:"currency",currency:e.currency_code}).format(e.amount))),a("br")]):t._e()])})),0)])})),0)])}),[],!1,null,"4cd7a656",null).exports,wt=a(237),Ot=a.n(wt);function xt(t,e){var a=Object.keys(t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(t);e&&(s=s.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),a.push.apply(a,s)}return a}function St(t){for(var e=1;ethis.earned?parseFloat(u.sum):this.earned}}this.sortCategories()},sortCategories:function(){var t=[];for(var e in this.categories)this.categories.hasOwnProperty(e)&&t.push(this.categories[e]);for(var a in t.sort((function(t,e){return t.spent+t.earned-(e.spent+e.earned)})),t)if(t.hasOwnProperty(a)){var s=t[a];s.spentPct=s.spent/this.spent*100,s.earnedPct=s.earned/this.earned*100,this.sortedList.push(s)}}}}),Ut=Object(r.a)(Tt,(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"card"},[a("div",{staticClass:"card-header"},[a("h3",{staticClass:"card-title"},[t._v(t._s(t.$t("firefly.categories")))])]),t._v(" "),t.loading&&!t.error?a("div",{staticClass:"card-body"},[t._m(0)]):t._e(),t._v(" "),t.error?a("div",{staticClass:"card-body"},[t._m(1)]):t._e(),t._v(" "),t.loading||t.error?t._e():a("div",{staticClass:"card-body table-responsive p-0"},[a("table",{staticClass:"table table-sm"},[a("tbody",t._l(t.sortedList,(function(e){return a("tr",[a("td",{staticStyle:{width:"20%"}},[a("a",{attrs:{href:"./categories/show/"+e.id}},[t._v(t._s(e.name))])]),t._v(" "),a("td",{staticClass:"align-middle"},[e.spentPct>0?a("div",{staticClass:"progress"},[a("div",{staticClass:"progress-bar progress-bar-striped bg-danger",style:{width:e.spentPct+"%"},attrs:{"aria-valuenow":e.spentPct,"aria-valuemax":"100","aria-valuemin":"0",role:"progressbar"}},[e.spentPct>20?a("span",[t._v("\n "+t._s(Intl.NumberFormat(t.locale,{style:"currency",currency:e.currency_code}).format(e.spent))+"\n ")]):t._e()]),t._v(" "),e.spentPct<=20?a("span",[t._v(" \n "+t._s(Intl.NumberFormat(t.locale,{style:"currency",currency:e.currency_code}).format(e.spent))+"\n ")]):t._e()]):t._e(),t._v(" "),e.earnedPct>0?a("div",{staticClass:"progress justify-content-end",attrs:{title:"hello2"}},[e.earnedPct<=20?a("span",[t._v("\n "+t._s(Intl.NumberFormat(t.locale,{style:"currency",currency:e.currency_code}).format(e.earned))+"\n  ")]):t._e(),t._v(" "),a("div",{staticClass:"progress-bar progress-bar-striped bg-success",style:{width:e.earnedPct+"%"},attrs:{"aria-valuenow":e.earnedPct,"aria-valuemax":"100","aria-valuemin":"0",role:"progressbar",title:"hello"}},[e.earnedPct>20?a("span",[t._v("\n "+t._s(Intl.NumberFormat(t.locale,{style:"currency",currency:e.currency_code}).format(e.earned))+"\n ")]):t._e()])]):t._e()])])})),0)])])])}),[function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"text-center"},[e("i",{staticClass:"fas fa-spinner fa-spin"})])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"text-center"},[e("i",{staticClass:"fas fa-exclamation-triangle text-danger"})])}],!1,null,"2a51418c",null).exports,Rt=a(2),At=a.n(Rt),zt=a(17);a(16),a(55),At.a.component("transaction-list-large",vt),At.a.component("transaction-list-medium",yt),At.a.component("transaction-list-small",jt),At.a.component("date-picker",Ot.a),At.a.component("dashboard",n),At.a.component("top-boxes",f),At.a.component("main-account",L),At.a.component("main-account-list",B),At.a.component("main-bills-list",M),At.a.component("main-budget-list",tt),At.a.component("main-category-list",Ut),At.a.component("main-debit-list",_t),At.a.component("main-credit-list",ct),At.a.component("main-piggy-list",ht),At.a.use(i.c);var Mt=a(19),Gt={};new At.a({i18n:Mt,store:zt.a,el:"#dashboard",render:function(t){return t(n,{props:Gt})},beforeCreate:function(){this.$store.commit("initialiseStore"),this.$store.dispatch("updateCurrencyPreference"),this.$store.dispatch("dashboard/index/initialiseStore")}}),new At.a({i18n:Mt,store:zt.a,el:"#calendar",render:function(t){return t(It,{props:Gt})}})},468:function(t,e){}},[[245,0,1]]]); +(window.webpackJsonp=window.webpackJsonp||[]).push([[4],{276:function(t,e,a){a(457),t.exports=a(725)},277:function(t,e,a){var s={"./af":89,"./af.js":89,"./ar":90,"./ar-dz":91,"./ar-dz.js":91,"./ar-kw":92,"./ar-kw.js":92,"./ar-ly":93,"./ar-ly.js":93,"./ar-ma":94,"./ar-ma.js":94,"./ar-sa":95,"./ar-sa.js":95,"./ar-tn":96,"./ar-tn.js":96,"./ar.js":90,"./az":97,"./az.js":97,"./be":98,"./be.js":98,"./bg":99,"./bg.js":99,"./bm":100,"./bm.js":100,"./bn":101,"./bn-bd":102,"./bn-bd.js":102,"./bn.js":101,"./bo":103,"./bo.js":103,"./br":104,"./br.js":104,"./bs":105,"./bs.js":105,"./ca":106,"./ca.js":106,"./cs":107,"./cs.js":107,"./cv":108,"./cv.js":108,"./cy":109,"./cy.js":109,"./da":110,"./da.js":110,"./de":111,"./de-at":112,"./de-at.js":112,"./de-ch":113,"./de-ch.js":113,"./de.js":111,"./dv":114,"./dv.js":114,"./el":115,"./el.js":115,"./en-au":116,"./en-au.js":116,"./en-ca":117,"./en-ca.js":117,"./en-gb":118,"./en-gb.js":118,"./en-ie":119,"./en-ie.js":119,"./en-il":120,"./en-il.js":120,"./en-in":121,"./en-in.js":121,"./en-nz":122,"./en-nz.js":122,"./en-sg":123,"./en-sg.js":123,"./eo":124,"./eo.js":124,"./es":125,"./es-do":126,"./es-do.js":126,"./es-mx":127,"./es-mx.js":127,"./es-us":128,"./es-us.js":128,"./es.js":125,"./et":129,"./et.js":129,"./eu":130,"./eu.js":130,"./fa":131,"./fa.js":131,"./fi":132,"./fi.js":132,"./fil":133,"./fil.js":133,"./fo":134,"./fo.js":134,"./fr":135,"./fr-ca":136,"./fr-ca.js":136,"./fr-ch":137,"./fr-ch.js":137,"./fr.js":135,"./fy":138,"./fy.js":138,"./ga":139,"./ga.js":139,"./gd":140,"./gd.js":140,"./gl":141,"./gl.js":141,"./gom-deva":142,"./gom-deva.js":142,"./gom-latn":143,"./gom-latn.js":143,"./gu":144,"./gu.js":144,"./he":145,"./he.js":145,"./hi":146,"./hi.js":146,"./hr":147,"./hr.js":147,"./hu":148,"./hu.js":148,"./hy-am":149,"./hy-am.js":149,"./id":150,"./id.js":150,"./is":151,"./is.js":151,"./it":152,"./it-ch":153,"./it-ch.js":153,"./it.js":152,"./ja":154,"./ja.js":154,"./jv":155,"./jv.js":155,"./ka":156,"./ka.js":156,"./kk":157,"./kk.js":157,"./km":158,"./km.js":158,"./kn":159,"./kn.js":159,"./ko":160,"./ko.js":160,"./ku":161,"./ku.js":161,"./ky":162,"./ky.js":162,"./lb":163,"./lb.js":163,"./lo":164,"./lo.js":164,"./lt":165,"./lt.js":165,"./lv":166,"./lv.js":166,"./me":167,"./me.js":167,"./mi":168,"./mi.js":168,"./mk":169,"./mk.js":169,"./ml":170,"./ml.js":170,"./mn":171,"./mn.js":171,"./mr":172,"./mr.js":172,"./ms":173,"./ms-my":174,"./ms-my.js":174,"./ms.js":173,"./mt":175,"./mt.js":175,"./my":176,"./my.js":176,"./nb":177,"./nb.js":177,"./ne":178,"./ne.js":178,"./nl":179,"./nl-be":180,"./nl-be.js":180,"./nl.js":179,"./nn":181,"./nn.js":181,"./oc-lnc":182,"./oc-lnc.js":182,"./pa-in":183,"./pa-in.js":183,"./pl":184,"./pl.js":184,"./pt":185,"./pt-br":186,"./pt-br.js":186,"./pt.js":185,"./ro":187,"./ro.js":187,"./ru":188,"./ru.js":188,"./sd":189,"./sd.js":189,"./se":190,"./se.js":190,"./si":191,"./si.js":191,"./sk":192,"./sk.js":192,"./sl":193,"./sl.js":193,"./sq":194,"./sq.js":194,"./sr":195,"./sr-cyrl":196,"./sr-cyrl.js":196,"./sr.js":195,"./ss":197,"./ss.js":197,"./sv":198,"./sv.js":198,"./sw":199,"./sw.js":199,"./ta":200,"./ta.js":200,"./te":201,"./te.js":201,"./tet":202,"./tet.js":202,"./tg":203,"./tg.js":203,"./th":204,"./th.js":204,"./tk":205,"./tk.js":205,"./tl-ph":206,"./tl-ph.js":206,"./tlh":207,"./tlh.js":207,"./tr":208,"./tr.js":208,"./tzl":209,"./tzl.js":209,"./tzm":210,"./tzm-latn":211,"./tzm-latn.js":211,"./tzm.js":210,"./ug-cn":212,"./ug-cn.js":212,"./uk":213,"./uk.js":213,"./ur":214,"./ur.js":214,"./uz":215,"./uz-latn":216,"./uz-latn.js":216,"./uz.js":215,"./vi":217,"./vi.js":217,"./x-pseudo":218,"./x-pseudo.js":218,"./yo":219,"./yo.js":219,"./zh-cn":220,"./zh-cn.js":220,"./zh-hk":221,"./zh-hk.js":221,"./zh-mo":222,"./zh-mo.js":222,"./zh-tw":223,"./zh-tw.js":223};function r(t){var e=n(t);return a(e)}function n(t){if(!a.o(s,t)){var e=new Error("Cannot find module '"+t+"'");throw e.code="MODULE_NOT_FOUND",e}return s[t]}r.keys=function(){return Object.keys(s)},r.resolve=n,t.exports=r,r.id=277},457:function(t,e,a){"use strict";a.r(e);var s={name:"Dashboard"},r=a(4),n=Object(r.a)(s,(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",[a("top-boxes"),t._v(" "),a("div",{staticClass:"row"},[a("div",{staticClass:"col"},[a("main-account")],1)]),t._v(" "),a("main-account-list"),t._v(" "),a("div",{staticClass:"row"},[a("div",{staticClass:"col"},[a("main-budget-list")],1)]),t._v(" "),a("div",{staticClass:"row"},[a("div",{staticClass:"col"},[a("main-category-list")],1)]),t._v(" "),a("div",{staticClass:"row"},[a("div",{staticClass:"col-lg-6 col-md-12 col-sm-12 col-xs-12"},[a("main-debit-list")],1),t._v(" "),a("div",{staticClass:"col-lg-6 col-md-12 col-sm-12 col-xs-12"},[a("main-credit-list")],1)]),t._v(" "),a("div",{staticClass:"row"},[a("div",{staticClass:"col-lg-6 col-md-12 col-sm-12 col-xs-12"},[a("main-piggy-list")],1),t._v(" "),a("div",{staticClass:"col-lg-6 col-md-12 col-sm-12 col-xs-12"},[a("main-bills-list")],1)])],1)}),[],!1,null,null,null).exports,i=a(14);function c(t,e){var a=Object.keys(t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(t);e&&(s=s.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),a.push.apply(a,s)}return a}function o(t){for(var e=1;e0){var i=r+" "+t;if(!(i.length>e))return n===s.length-1?void a.push(i):void(r=i);a.push(r),r=""}n!==s.length-1&&t.length2}},[a("div",{staticClass:"card"},[a("div",{staticClass:"card-header"},[a("h3",{staticClass:"card-title"},[a("a",{attrs:{href:e.url}},[t._v(t._s(e.title))])]),t._v(" "),a("div",{staticClass:"card-tools"},[a("span",{class:parseFloat(e.current_balance)<0?"text-danger":"text-success"},[t._v("\n "+t._s(Intl.NumberFormat(t.locale,{style:"currency",currency:e.currency_code}).format(parseFloat(e.current_balance)))+"\n ")])])]),t._v(" "),a("div",{staticClass:"card-body table-responsive p-0"},[a("div",[1===t.accounts.length?a("transaction-list-large",{attrs:{account_id:e.id,transactions:e.transactions}}):t._e(),t._v(" "),2===t.accounts.length?a("transaction-list-medium",{attrs:{account_id:e.id,transactions:e.transactions}}):t._e(),t._v(" "),t.accounts.length>2?a("transaction-list-small",{attrs:{account_id:e.id,transactions:e.transactions}}):t._e()],1)])])])})),0)])}),[function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"col"},[e("div",{staticClass:"card"},[e("div",{staticClass:"card-body"},[e("div",{staticClass:"text-center"},[e("i",{staticClass:"fas fa-spinner fa-spin"})])])])])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"col"},[e("div",{staticClass:"card"},[e("div",{staticClass:"card-body"},[e("div",{staticClass:"text-center"},[e("i",{staticClass:"fas fa-exclamation-triangle text-danger"})])])])])}],!1,null,"5d6bb842",null).exports;function N(t,e){var a=Object.keys(t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(t);e&&(s=s.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),a.push.apply(a,s)}return a}function T(t){for(var e=1;e'+a+""},loadBills:function(t){for(var e in t)if(t.hasOwnProperty(e)&&/^0$|^[1-9]\d*$/.test(e)&&e<=4294967294){var a=t[e],s=a.attributes.active;a.attributes.pay_dates.length>0&&s&&this.bills.push(a)}this.error=!1,this.loading=!1}}}),G=Object(r.a)(z,(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"card"},[a("div",{staticClass:"card-header"},[a("h3",{staticClass:"card-title"},[t._v(t._s(t.$t("firefly.bills")))])]),t._v(" "),t.loading&&!t.error?a("div",{staticClass:"card-body"},[t._m(0)]):t._e(),t._v(" "),t.error?a("div",{staticClass:"card-body"},[t._m(1)]):t._e(),t._v(" "),t.loading||t.error?t._e():a("div",{staticClass:"card-body table-responsive p-0"},[a("table",{staticClass:"table table-striped"},[a("caption",{staticStyle:{display:"none"}},[t._v(t._s(t.$t("firefly.bills")))]),t._v(" "),a("thead",[a("tr",[a("th",{staticStyle:{width:"35%"},attrs:{scope:"col"}},[t._v(t._s(t.$t("list.name")))]),t._v(" "),a("th",{staticStyle:{width:"25%"},attrs:{scope:"col"}},[t._v(t._s(t.$t("list.next_expected_match")))])])]),t._v(" "),a("tbody",t._l(this.bills,(function(e){return a("tr",[a("td",[a("a",{attrs:{href:"./bills/show/"+e.id,title:e.attributes.name}},[t._v(t._s(e.attributes.name))]),t._v("\n (~ "),a("span",{staticClass:"text-danger"},[t._v(t._s(Intl.NumberFormat(t.locale,{style:"currency",currency:e.attributes.currency_code}).format((parseFloat(e.attributes.amount_min)+parseFloat(e.attributes.amount_max))/-2)))]),t._v(")\n "),e.attributes.object_group_title?a("small",{staticClass:"text-muted"},[a("br"),t._v("\n "+t._s(e.attributes.object_group_title)+"\n ")]):t._e()]),t._v(" "),a("td",[t._l(e.attributes.paid_dates,(function(e){return a("span",[a("span",{domProps:{innerHTML:t._s(t.renderPaidDate(e))}}),a("br")])})),t._v(" "),t._l(e.attributes.pay_dates,(function(s){return 0===e.attributes.paid_dates.length?a("span",[t._v("\n "+t._s(new Intl.DateTimeFormat(t.locale,{year:"numeric",month:"long",day:"numeric"}).format(new Date(s)))),a("br")]):t._e()}))],2)])})),0)])]),t._v(" "),a("div",{staticClass:"card-footer"},[a("a",{staticClass:"btn btn-default button-sm",attrs:{href:"./bills"}},[a("i",{staticClass:"far fa-money-bill-alt"}),t._v(" "+t._s(t.$t("firefly.go_to_bills")))])])])}),[function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"text-center"},[e("i",{staticClass:"fas fa-spinner fa-spin"})])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"text-center"},[e("i",{staticClass:"fas fa-exclamation-triangle text-danger"})])}],!1,null,null,null).exports,M={name:"BudgetLimitRow",created:function(){var t;this.locale=null!==(t=localStorage.locale)&&void 0!==t?t:"en-US"},data:function(){return{locale:"en-US"}},props:{budgetLimit:{type:Object,default:function(){return{}}},budget:{type:Object,default:function(){return{}}}}},W=Object(r.a)(M,(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("tr",[a("td",{staticStyle:{width:"25%"}},[a("a",{attrs:{href:"./budgets/show/"+t.budgetLimit.budget_id}},[t._v(t._s(t.budgetLimit.budget_name))])]),t._v(" "),a("td",{staticStyle:{"vertical-align":"middle"}},[a("div",{staticClass:"progress progress active"},[a("div",{staticClass:"progress-bar bg-success progress-bar-striped",style:"width: "+t.budgetLimit.pctGreen+"%;",attrs:{"aria-valuenow":t.budgetLimit.pctGreen,"aria-valuemax":"100","aria-valuemin":"0",role:"progressbar"}},[t.budgetLimit.pctGreen>35?a("span",[t._v("\n "+t._s(t.$t("firefly.spent_x_of_y",{amount:Intl.NumberFormat(t.locale,{style:"currency",currency:t.budgetLimit.currency_code}).format(t.budgetLimit.spent),total:Intl.NumberFormat(t.locale,{style:"currency",currency:t.budgetLimit.currency_code}).format(t.budgetLimit.amount)}))+"\n ")]):t._e()]),t._v(" "),a("div",{staticClass:"progress-bar bg-warning progress-bar-striped",style:"width: "+t.budgetLimit.pctOrange+"%;",attrs:{"aria-valuenow":t.budgetLimit.pctOrange,"aria-valuemax":"100","aria-valuemin":"0",role:"progressbar"}},[t.budgetLimit.pctRed<=50&&t.budgetLimit.pctOrange>35?a("span",[t._v("\n "+t._s(t.$t("firefly.spent_x_of_y",{amount:Intl.NumberFormat(t.locale,{style:"currency",currency:t.budgetLimit.currency_code}).format(t.budgetLimit.spent),total:Intl.NumberFormat(t.locale,{style:"currency",currency:t.budgetLimit.currency_code}).format(t.budgetLimit.amount)}))+"\n ")]):t._e()]),t._v(" "),a("div",{staticClass:"progress-bar bg-danger progress-bar-striped",style:"width: "+t.budgetLimit.pctRed+"%;",attrs:{"aria-valuenow":t.budgetLimit.pctRed,"aria-valuemax":"100","aria-valuemin":"0",role:"progressbar"}},[t.budgetLimit.pctOrange<=50&&t.budgetLimit.pctRed>35?a("span",{staticClass:"text-muted"},[t._v("\n "+t._s(t.$t("firefly.spent_x_of_y",{amount:Intl.NumberFormat(t.locale,{style:"currency",currency:t.budgetLimit.currency_code}).format(t.budgetLimit.spent),total:Intl.NumberFormat(t.locale,{style:"currency",currency:t.budgetLimit.currency_code}).format(t.budgetLimit.amount)}))+"\n ")]):t._e()]),t._v(" "),t.budgetLimit.pctGreen<=35&&0===t.budgetLimit.pctOrange&&0===t.budgetLimit.pctRed&&0!==t.budgetLimit.pctGreen?a("span",{staticStyle:{"line-height":"16px"}},[t._v("\n   "+t._s(t.$t("firefly.spent_x_of_y",{amount:Intl.NumberFormat(t.locale,{style:"currency",currency:t.budgetLimit.currency_code}).format(t.budgetLimit.spent),total:Intl.NumberFormat(t.locale,{style:"currency",currency:t.budgetLimit.currency_code}).format(t.budgetLimit.amount)}))+"\n ")]):t._e()]),t._v(" "),a("small",{staticClass:"d-none d-lg-block"},[t._v("\n "+t._s(new Intl.DateTimeFormat(t.locale,{year:"numeric",month:"long",day:"numeric"}).format(t.budgetLimit.start))+"\n →\n "+t._s(new Intl.DateTimeFormat(t.locale,{year:"numeric",month:"long",day:"numeric"}).format(t.budgetLimit.end))+"\n ")])]),t._v(" "),a("td",{staticClass:"align-middle d-none d-lg-table-cell",staticStyle:{width:"10%"}},[parseFloat(t.budgetLimit.amount)+parseFloat(t.budgetLimit.spent)>0?a("span",{staticClass:"text-success"},[t._v("\n "+t._s(Intl.NumberFormat(t.locale,{style:"currency",currency:t.budgetLimit.currency_code}).format(parseFloat(t.budgetLimit.amount)+parseFloat(t.budgetLimit.spent)))+"\n ")]):t._e(),t._v(" "),0===parseFloat(t.budgetLimit.amount)+parseFloat(t.budgetLimit.spent)?a("span",{staticClass:"text-muted"},[t._v("\n "+t._s(Intl.NumberFormat(t.locale,{style:"currency",currency:t.budgetLimit.currency_code}).format(0))+"\n ")]):t._e(),t._v(" "),parseFloat(t.budgetLimit.amount)+parseFloat(t.budgetLimit.spent)<0?a("span",{staticClass:"text-danger"},[t._v("\n "+t._s(Intl.NumberFormat(t.locale,{style:"currency",currency:t.budgetLimit.currency_code}).format(parseFloat(t.budgetLimit.amount)+parseFloat(t.budgetLimit.spent)))+"\n ")]):t._e()])])}),[],!1,null,"7988ecb6",null).exports,q={name:"BudgetRow",created:function(){var t;this.locale=null!==(t=localStorage.locale)&&void 0!==t?t:"en-US"},data:function(){return{locale:"en-US"}},props:{budget:{type:Object,default:{}}}},K={name:"BudgetListGroup",components:{BudgetLimitRow:W,BudgetRow:Object(r.a)(q,(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("tr",[a("td",{staticStyle:{width:"25%"}},[a("a",{attrs:{href:"./budgets/show/"+t.budget.id}},[t._v(t._s(t.budget.name))])]),t._v(" "),a("td",{staticClass:"align-middle text-right"},[a("span",{staticClass:"text-danger"},[t._v("\n "+t._s(Intl.NumberFormat(t.locale,{style:"currency",currency:t.budget.currency_code}).format(parseFloat(t.budget.spent)))+"\n ")])])])}),[],!1,null,"2fc8f640",null).exports},props:{title:String,budgetLimits:Array,budgets:Array}},J=Object(r.a)(K,(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"card"},[a("div",{staticClass:"card-header"},[a("h3",{staticClass:"card-title"},[t._v(t._s(t.title))])]),t._v(" "),a("div",{staticClass:"card-body table-responsive p-0"},[a("table",{staticClass:"table table-sm"},[a("tbody",[t._l(t.budgetLimits,(function(t,e){return a("BudgetLimitRow",{key:e,attrs:{budgetLimit:t}})})),t._v(" "),t._l(t.budgets,(function(t,e){return a("BudgetRow",{key:e,attrs:{budget:t}})}))],2)])]),t._v(" "),a("div",{staticClass:"card-footer"},[a("a",{staticClass:"btn btn-default button-sm",attrs:{href:"./budgets"}},[a("i",{staticClass:"far fa-money-bill-alt"}),t._v(" "+t._s(t.$t("firefly.go_to_budgets")))])])])}),[],!1,null,"658dd996",null).exports;function H(t,e){var a=Object.keys(t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(t);e&&(s=s.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),a.push.apply(a,s)}return a}function Z(t){for(var e=1;eparseFloat(t.data[a].attributes.amount)&&(i=100-(n=parseFloat(t.data[a].attributes.amount)/parseFloat(t.data[a].attributes.spent)*-1*100));var c={id:t.data[a].id,amount:t.data[a].attributes.amount,budget_id:t.data[a].attributes.budget_id,budget_name:this.budgets[t.data[a].attributes.budget_id].name,currency_id:t.data[a].attributes.currency_id,currency_code:t.data[a].attributes.currency_code,period:t.data[a].attributes.period,start:new Date(t.data[a].attributes.start),end:new Date(t.data[a].attributes.end),spent:t.data[a].attributes.spent,pctGreen:r,pctOrange:n,pctRed:i},o=null!==(s=t.data[a].attributes.period)&&void 0!==s?s:"other";this.budgetLimits[o].push(c)}},filterBudgets:function(t,e){for(var a in this.rawBudgets)this.rawBudgets.hasOwnProperty(a)&&/^0$|^[1-9]\d*$/.test(a)&&a<=4294967294&&this.rawBudgets[a].currency_id===e&&this.rawBudgets[a].id===t&&this.rawBudgets.splice(a,1)}}}),tt=Object(r.a)(Y,(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",[t.loading?t._e():a("div",{staticClass:"row"},[t.budgetLimits.daily.length>0?a("div",{staticClass:"col-xl-6 col-lg-12 col-md-12 col-sm-12 col-xs-12"},[a("BudgetListGroup",{attrs:{budgetLimits:t.budgetLimits.daily,title:t.$t("firefly.daily_budgets")}})],1):t._e(),t._v(" "),t.budgetLimits.weekly.length>0?a("div",{staticClass:"col-xl-6 col-lg-12 col-md-12 col-sm-12 col-xs-12"},[a("BudgetListGroup",{attrs:{budgetLimits:t.budgetLimits.weekly,title:t.$t("firefly.weekly_budgets")}})],1):t._e(),t._v(" "),t.budgetLimits.monthly.length>0?a("div",{staticClass:"col-xl-6 col-lg-12 col-md-12 col-sm-12 col-xs-12"},[a("BudgetListGroup",{attrs:{budgetLimits:t.budgetLimits.monthly,title:t.$t("firefly.monthly_budgets")}})],1):t._e(),t._v(" "),t.budgetLimits.quarterly.length>0?a("div",{staticClass:"col-xl-6 col-lg-12 col-md-12 col-sm-12 col-xs-12"},[a("BudgetListGroup",{attrs:{budgetLimits:t.budgetLimits.quarterly,title:t.$t("firefly.quarterly_budgets")}})],1):t._e(),t._v(" "),t.budgetLimits.half_year.length>0?a("div",{staticClass:"col-xl-6 col-lg-12 col-md-12 col-sm-12 col-xs-12"},[a("BudgetListGroup",{attrs:{budgetLimits:t.budgetLimits.half_year,title:t.$t("firefly.half_year_budgets")}})],1):t._e(),t._v(" "),t.budgetLimits.yearly.length>0?a("div",{staticClass:"col-xl-6 col-lg-12 col-md-12 col-sm-12 col-xs-12"},[a("BudgetListGroup",{attrs:{budgetLimits:t.budgetLimits.yearly,title:t.$t("firefly.yearly_budgets")}})],1):t._e(),t._v(" "),t.budgetLimits.other.length>0||t.rawBudgets.length>0?a("div",{staticClass:"col-xl-6 col-lg-12 col-md-12 col-sm-12 col-xs-12"},[a("BudgetListGroup",{attrs:{budgetLimits:t.budgetLimits.other,budgets:t.rawBudgets,title:t.$t("firefly.other_budgets")}})],1):t._e()]),t._v(" "),t.loading&&!t.error?a("div",{staticClass:"row"},[t._m(0)]):t._e()])}),[function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"col"},[e("div",{staticClass:"card"},[e("div",{staticClass:"card-body"},[e("div",{staticClass:"text-center"},[e("i",{staticClass:"fas fa-spinner fa-spin"})])])])])}],!1,null,"03d11977",null).exports;function et(t,e){var a=Object.keys(t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(t);e&&(s=s.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),a.push.apply(a,s)}return a}function at(t){for(var e=1;e0?a("div",{staticClass:"progress"},[a("div",{staticClass:"progress-bar progress-bar-striped bg-success",style:{width:e.pct+"%"},attrs:{"aria-valuenow":e.pct,"aria-valuemax":"100","aria-valuemin":"0",role:"progressbar"}},[e.pct>20?a("span",[t._v("\n "+t._s(Intl.NumberFormat(t.locale,{style:"currency",currency:e.currency_code}).format(e.difference_float))+"\n ")]):t._e()]),t._v(" "),e.pct<=20?a("span",{staticStyle:{"line-height":"16px"}},[t._v(" \n "+t._s(Intl.NumberFormat(t.locale,{style:"currency",currency:e.currency_code}).format(e.difference_float))+"\n ")]):t._e()]):t._e()])])})),0)])]),t._v(" "),a("div",{staticClass:"card-footer"},[a("a",{staticClass:"btn btn-default button-sm",attrs:{href:"./transactions/deposit"}},[a("i",{staticClass:"far fa-money-bill-alt"}),t._v(" "+t._s(t.$t("firefly.go_to_deposits")))])])])}),[function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"text-center"},[e("i",{staticClass:"fas fa-spinner fa-spin"})])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"text-center"},[e("i",{staticClass:"fas fa-exclamation-triangle text-danger"})])}],!1,null,null,null).exports;function ot(t,e){var a=Object.keys(t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(t);e&&(s=s.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),a.push.apply(a,s)}return a}function lt(t){for(var e=1;e0?a("div",{staticClass:"progress"},[a("div",{staticClass:"progress-bar progress-bar-striped bg-danger",style:{width:e.pct+"%"},attrs:{"aria-valuenow":e.pct,"aria-valuemax":"100","aria-valuemin":"0",role:"progressbar"}},[e.pct>20?a("span",[t._v("\n "+t._s(Intl.NumberFormat(t.locale,{style:"currency",currency:e.currency_code}).format(e.difference_float))+"\n ")]):t._e()]),t._v(" "),e.pct<=20?a("span",{staticStyle:{"line-height":"16px"}},[t._v(" \n "+t._s(Intl.NumberFormat(t.locale,{style:"currency",currency:e.currency_code}).format(e.difference_float))+"\n ")]):t._e()]):t._e()])])})),0)])]),t._v(" "),a("div",{staticClass:"card-footer"},[a("a",{staticClass:"btn btn-default button-sm",attrs:{href:"./transactions/withdrawal"}},[a("i",{staticClass:"far fa-money-bill-alt"}),t._v(" "+t._s(t.$t("firefly.go_to_withdrawals")))])])])}),[function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"text-center"},[e("i",{staticClass:"fas fa-spinner fa-spin"})])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"text-center"},[e("i",{staticClass:"fas fa-exclamation-triangle text-danger"})])}],!1,null,null,null).exports,bt={name:"MainPiggyList",data:function(){return{piggy_banks:[],loading:!0,error:!1,locale:"en-US"}},created:function(){var t,e=this;this.locale=null!==(t=localStorage.locale)&&void 0!==t?t:"en-US",axios.get("./api/v1/piggy_banks").then((function(t){e.loadPiggyBanks(t.data.data),e.loading=!1})).catch((function(t){e.error=!0}))},methods:{loadPiggyBanks:function(t){for(var e in t)if(t.hasOwnProperty(e)&&/^0$|^[1-9]\d*$/.test(e)&&e<=4294967294){var a=t[e];0!==parseFloat(a.attributes.left_to_save)&&(a.attributes.pct=parseFloat(a.attributes.current_amount)/parseFloat(a.attributes.target_amount)*100,this.piggy_banks.push(a))}this.piggy_banks.sort((function(t,e){return e.attributes.pct-t.attributes.pct}))}}},ht=Object(r.a)(bt,(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"card"},[a("div",{staticClass:"card-header"},[a("h3",{staticClass:"card-title"},[t._v(t._s(t.$t("firefly.piggy_banks")))])]),t._v(" "),t.loading&&!t.error?a("div",{staticClass:"card-body"},[t._m(0)]):t._e(),t._v(" "),t.error?a("div",{staticClass:"card-body"},[t._m(1)]):t._e(),t._v(" "),t.loading||t.error?t._e():a("div",{staticClass:"card-body table-responsive p-0"},[a("table",{staticClass:"table table-striped"},[a("caption",{staticStyle:{display:"none"}},[t._v(t._s(t.$t("firefly.piggy_banks")))]),t._v(" "),a("thead",[a("tr",[a("th",{staticStyle:{width:"35%"},attrs:{scope:"col"}},[t._v(t._s(t.$t("list.piggy_bank")))]),t._v(" "),a("th",{staticStyle:{width:"40%"},attrs:{scope:"col"}},[t._v(t._s(t.$t("list.percentage"))+" "),a("small",[t._v("/ "+t._s(t.$t("list.amount")))])])])]),t._v(" "),a("tbody",t._l(this.piggy_banks,(function(e){return a("tr",[a("td",[a("a",{attrs:{href:"./piggy-banks/show/"+e.id,title:e.attributes.name}},[t._v(t._s(e.attributes.name))]),t._v(" "),e.attributes.object_group_title?a("small",{staticClass:"text-muted"},[a("br"),t._v("\n "+t._s(e.attributes.object_group_title)+"\n ")]):t._e()]),t._v(" "),a("td",[a("div",{staticClass:"progress-group"},[a("div",{staticClass:"progress progress-sm"},[e.attributes.pct<100?a("div",{staticClass:"progress-bar progress-bar-striped primary",style:{width:e.attributes.pct+"%"}}):t._e(),t._v(" "),100===e.attributes.pct?a("div",{staticClass:"progress-bar progress-bar-striped bg-success",style:{width:e.attributes.pct+"%"}}):t._e()])]),t._v(" "),a("span",{staticClass:"text-success"},[t._v("\n "+t._s(Intl.NumberFormat(t.locale,{style:"currency",currency:e.attributes.currency_code}).format(e.attributes.current_amount))+"\n ")]),t._v("\n of\n "),a("span",{staticClass:"text-success"},[t._v(t._s(Intl.NumberFormat(t.locale,{style:"currency",currency:e.attributes.currency_code}).format(e.attributes.target_amount)))])])])})),0)])]),t._v(" "),a("div",{staticClass:"card-footer"},[a("a",{staticClass:"btn btn-default button-sm",attrs:{href:"./piggy-banks"}},[a("i",{staticClass:"far fa-money-bill-alt"}),t._v(" "+t._s(t.$t("firefly.go_to_piggies")))])])])}),[function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"text-center"},[e("i",{staticClass:"fas fa-spinner fa-spin"})])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"text-center"},[e("i",{staticClass:"fas fa-exclamation-triangle text-danger"})])}],!1,null,"c17c9a5a",null).exports,mt={name:"TransactionListLarge",data:function(){return{locale:"en-US"}},created:function(){var t;this.locale=null!==(t=localStorage.locale)&&void 0!==t?t:"en-US"},props:{transactions:{type:Array,default:function(){return[]}},account_id:{type:Number,default:function(){return 0}}}},gt=Object(r.a)(mt,(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("table",{staticClass:"table table-striped table-sm"},[a("caption",{staticStyle:{display:"none"}},[t._v(t._s(t.$t("firefly.transaction_table_description")))]),t._v(" "),a("thead",[a("tr",[a("th",{staticClass:"text-left",attrs:{scope:"col"}},[t._v(t._s(t.$t("firefly.description")))]),t._v(" "),a("th",{attrs:{scope:"col"}},[t._v(t._s(t.$t("firefly.opposing_account")))]),t._v(" "),a("th",{staticClass:"text-right",attrs:{scope:"col"}},[t._v(t._s(t.$t("firefly.amount")))]),t._v(" "),a("th",{attrs:{scope:"col"}},[t._v(t._s(t.$t("firefly.category")))]),t._v(" "),a("th",{attrs:{scope:"col"}},[t._v(t._s(t.$t("firefly.budget")))])])]),t._v(" "),a("tbody",t._l(this.transactions,(function(e){return a("tr",[a("td",[a("a",{attrs:{href:"transactions/show/"+e.id,title:e.date}},[e.attributes.transactions.length>1?a("span",[t._v(t._s(e.attributes.group_title))]):t._e(),t._v(" "),1===e.attributes.transactions.length?a("span",[t._v(t._s(e.attributes.transactions[0].description))]):t._e()])]),t._v(" "),a("td",t._l(e.attributes.transactions,(function(e){return a("span",["withdrawal"===e.type?a("a",{attrs:{href:"accounts/show/"+e.destination_id}},[t._v(t._s(e.destination_name))]):t._e(),t._v(" "),"deposit"===e.type?a("a",{attrs:{href:"accounts/show/"+e.source_id}},[t._v(t._s(e.source_name))]):t._e(),t._v(" "),"transfer"===e.type&&parseInt(e.source_id)===t.account_id?a("a",{attrs:{href:"accounts/show/"+e.destination_id}},[t._v(t._s(e.destination_name))]):t._e(),t._v(" "),"transfer"===e.type&&parseInt(e.destination_id)===t.account_id?a("a",{attrs:{href:"accounts/show/"+e.source_id}},[t._v(t._s(e.source_name))]):t._e(),t._v(" "),a("br")])})),0),t._v(" "),a("td",{staticStyle:{"text-align":"right"}},t._l(e.attributes.transactions,(function(e){return a("span",["withdrawal"===e.type?a("span",{staticClass:"text-danger"},[t._v("\n "+t._s(Intl.NumberFormat(t.locale,{style:"currency",currency:e.currency_code}).format(-1*e.amount))),a("br")]):t._e(),t._v(" "),"deposit"===e.type?a("span",{staticClass:"text-success"},[t._v("\n "+t._s(Intl.NumberFormat(t.locale,{style:"currency",currency:e.currency_code}).format(e.amount))),a("br")]):t._e(),t._v(" "),"transfer"===e.type&&parseInt(e.source_id)===t.account_id?a("span",{staticClass:"text-info"},[t._v("\n "+t._s(Intl.NumberFormat(t.locale,{style:"currency",currency:e.currency_code}).format(-1*e.amount))),a("br")]):t._e(),t._v(" "),"transfer"===e.type&&parseInt(e.destination_id)===t.account_id?a("span",{staticClass:"text-info"},[t._v("\n "+t._s(Intl.NumberFormat(t.locale,{style:"currency",currency:e.currency_code}).format(e.amount))),a("br")]):t._e()])})),0),t._v(" "),a("td",t._l(e.attributes.transactions,(function(e){return a("span",[0!==e.category_id?a("a",{attrs:{href:"categories/show/"+e.category_id}},[t._v(t._s(e.category_name))]):t._e(),a("br")])})),0),t._v(" "),a("td",t._l(e.attributes.transactions,(function(e){return a("span",[0!==e.budget_id?a("a",{attrs:{href:"budgets/show/"+e.budget_id}},[t._v(t._s(e.budget_name))]):t._e(),a("br")])})),0)])})),0)])}),[],!1,null,"6e420753",null).exports,vt={name:"TransactionListMedium",data:function(){return{locale:"en-US"}},created:function(){var t;this.locale=null!==(t=localStorage.locale)&&void 0!==t?t:"en-US"},props:{transactions:{type:Array,default:function(){return[]}},account_id:{type:Number,default:function(){return 0}}}},yt=Object(r.a)(vt,(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("table",{staticClass:"table table-striped table-sm"},[a("caption",{staticStyle:{display:"none"}},[t._v(t._s(t.$t("firefly.transaction_table_description")))]),t._v(" "),a("thead",[a("tr",[a("th",{staticClass:"text-left",attrs:{scope:"col"}},[t._v(t._s(t.$t("firefly.description")))]),t._v(" "),a("th",{attrs:{scope:"col"}},[t._v(t._s(t.$t("firefly.opposing_account")))]),t._v(" "),a("th",{staticClass:"text-right",attrs:{scope:"col"}},[t._v(t._s(t.$t("firefly.amount")))])])]),t._v(" "),a("tbody",t._l(this.transactions,(function(e){return a("tr",[a("td",[a("a",{attrs:{href:"transactions/show/"+e.id,title:e.date}},[e.attributes.transactions.length>1?a("span",[t._v(t._s(e.attributes.group_title))]):t._e(),t._v(" "),1===e.attributes.transactions.length?a("span",[t._v(t._s(e.attributes.transactions[0].description))]):t._e()])]),t._v(" "),a("td",t._l(e.attributes.transactions,(function(e){return a("span",["withdrawal"===e.type?a("a",{attrs:{href:"accounts/show/"+e.destination_id}},[t._v(t._s(e.destination_name))]):t._e(),t._v(" "),"deposit"===e.type?a("a",{attrs:{href:"accounts/show/"+e.source_id}},[t._v(t._s(e.source_name))]):t._e(),t._v(" "),"transfer"===e.type&&parseInt(e.source_id)===t.account_id?a("a",{attrs:{href:"accounts/show/"+e.destination_id}},[t._v(t._s(e.destination_name))]):t._e(),t._v(" "),"transfer"===e.type&&parseInt(e.destination_id)===t.account_id?a("a",{attrs:{href:"accounts/show/"+e.source_id}},[t._v(t._s(e.source_name))]):t._e(),t._v(" "),a("br")])})),0),t._v(" "),a("td",{staticStyle:{"text-align":"right"}},t._l(e.attributes.transactions,(function(e){return a("span",["withdrawal"===e.type?a("span",{staticClass:"text-danger"},[t._v("\n "+t._s(Intl.NumberFormat(t.locale,{style:"currency",currency:e.currency_code}).format(-1*e.amount))),a("br")]):t._e(),t._v(" "),"deposit"===e.type?a("span",{staticClass:"text-success"},[t._v("\n "+t._s(Intl.NumberFormat(t.locale,{style:"currency",currency:e.currency_code}).format(e.amount))),a("br")]):t._e(),t._v(" "),"transfer"===e.type&&parseInt(e.source_id)===t.account_id?a("span",{staticClass:"text-info"},[t._v("\n "+t._s(Intl.NumberFormat(t.locale,{style:"currency",currency:e.currency_code}).format(-1*e.amount))),a("br")]):t._e(),t._v(" "),"transfer"===e.type&&parseInt(e.destination_id)===t.account_id?a("span",{staticClass:"text-info"},[t._v("\n "+t._s(Intl.NumberFormat(t.locale,{style:"currency",currency:e.currency_code}).format(e.amount))),a("br")]):t._e()])})),0)])})),0)])}),[],!1,null,"0d4f7042",null).exports,Ct={name:"TransactionListSmall",data:function(){return{locale:"en-US"}},created:function(){var t;this.locale=null!==(t=localStorage.locale)&&void 0!==t?t:"en-US"},methods:{},props:{transactions:{type:Array,default:function(){return[]}},account_id:{type:Number,default:function(){return 0}}}},jt=Object(r.a)(Ct,(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("table",{staticClass:"table table-striped table-sm"},[a("caption",{staticStyle:{display:"none"}},[t._v(t._s(t.$t("firefly.transaction_table_description")))]),t._v(" "),a("thead",[a("tr",[a("th",{staticClass:"text-left",attrs:{scope:"col"}},[t._v(t._s(t.$t("firefly.description")))]),t._v(" "),a("th",{staticClass:"text-right",attrs:{scope:"col"}},[t._v(t._s(t.$t("firefly.amount")))])])]),t._v(" "),a("tbody",t._l(this.transactions,(function(e){return a("tr",[a("td",[a("a",{attrs:{href:"transactions/show/"+e.id,title:new Intl.DateTimeFormat(t.locale,{year:"numeric",month:"long",day:"numeric"}).format(new Date(e.attributes.transactions[0].date))}},[e.attributes.transactions.length>1?a("span",[t._v(t._s(e.attributes.group_title))]):t._e(),t._v(" "),1===e.attributes.transactions.length?a("span",[t._v(t._s(e.attributes.transactions[0].description))]):t._e()])]),t._v(" "),a("td",{staticStyle:{"text-align":"right"}},t._l(e.attributes.transactions,(function(e){return a("span",["withdrawal"===e.type?a("span",{staticClass:"text-danger"},[t._v("\n "+t._s(Intl.NumberFormat(t.locale,{style:"currency",currency:e.currency_code}).format(-1*e.amount))),a("br")]):t._e(),t._v(" "),"deposit"===e.type?a("span",{staticClass:"text-success"},[t._v("\n "+t._s(Intl.NumberFormat(t.locale,{style:"currency",currency:e.currency_code}).format(e.amount))),a("br")]):t._e(),t._v(" "),"transfer"===e.type&&parseInt(e.source_id)===t.account_id?a("span",{staticClass:"text-info"},[t._v("\n "+t._s(Intl.NumberFormat(t.locale,{style:"currency",currency:e.currency_code}).format(-1*e.amount))),a("br")]):t._e(),t._v(" "),"transfer"===e.type&&parseInt(e.destination_id)===t.account_id?a("span",{staticClass:"text-info"},[t._v("\n "+t._s(Intl.NumberFormat(t.locale,{style:"currency",currency:e.currency_code}).format(e.amount))),a("br")]):t._e()])})),0)])})),0)])}),[],!1,null,"4cd7a656",null).exports,Ot=a(67);function wt(t,e){var a=Object.keys(t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(t);e&&(s=s.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),a.push.apply(a,s)}return a}function xt(t){for(var e=1;ethis.earned?parseFloat(u.sum):this.earned}}this.sortCategories()},sortCategories:function(){var t=[];for(var e in this.categories)this.categories.hasOwnProperty(e)&&t.push(this.categories[e]);for(var a in t.sort((function(t,e){return t.spent+t.earned-(e.spent+e.earned)})),t)if(t.hasOwnProperty(a)){var s=t[a];s.spentPct=s.spent/this.spent*100,s.earnedPct=s.earned/this.earned*100,this.sortedList.push(s)}}}}),It=Object(r.a)($t,(function(){var t=this,e=t.$createElement,a=t._self._c||e;return a("div",{staticClass:"card"},[a("div",{staticClass:"card-header"},[a("h3",{staticClass:"card-title"},[t._v(t._s(t.$t("firefly.categories")))])]),t._v(" "),t.loading&&!t.error?a("div",{staticClass:"card-body"},[t._m(0)]):t._e(),t._v(" "),t.error?a("div",{staticClass:"card-body"},[t._m(1)]):t._e(),t._v(" "),t.loading||t.error?t._e():a("div",{staticClass:"card-body table-responsive p-0"},[a("table",{staticClass:"table table-sm"},[a("tbody",t._l(t.sortedList,(function(e){return a("tr",[a("td",{staticStyle:{width:"20%"}},[a("a",{attrs:{href:"./categories/show/"+e.id}},[t._v(t._s(e.name))])]),t._v(" "),a("td",{staticClass:"align-middle"},[e.spentPct>0?a("div",{staticClass:"progress"},[a("div",{staticClass:"progress-bar progress-bar-striped bg-danger",style:{width:e.spentPct+"%"},attrs:{"aria-valuenow":e.spentPct,"aria-valuemax":"100","aria-valuemin":"0",role:"progressbar"}},[e.spentPct>20?a("span",[t._v("\n "+t._s(Intl.NumberFormat(t.locale,{style:"currency",currency:e.currency_code}).format(e.spent))+"\n ")]):t._e()]),t._v(" "),e.spentPct<=20?a("span",{staticClass:"progress-label",staticStyle:{"line-height":"16px"}},[t._v(" \n "+t._s(Intl.NumberFormat(t.locale,{style:"currency",currency:e.currency_code}).format(e.spent))+"\n ")]):t._e()]):t._e(),t._v(" "),e.earnedPct>0?a("div",{staticClass:"progress justify-content-end",attrs:{title:"hello2"}},[e.earnedPct<=20?a("span",{staticStyle:{"line-height":"16px"}},[t._v("\n "+t._s(Intl.NumberFormat(t.locale,{style:"currency",currency:e.currency_code}).format(e.earned))+"\n  ")]):t._e(),t._v(" "),a("div",{staticClass:"progress-bar progress-bar-striped bg-success",style:{width:e.earnedPct+"%"},attrs:{"aria-valuenow":e.earnedPct,"aria-valuemax":"100","aria-valuemin":"0",role:"progressbar",title:"hello"}},[e.earnedPct>20?a("span",[t._v("\n "+t._s(Intl.NumberFormat(t.locale,{style:"currency",currency:e.currency_code}).format(e.earned))+"\n ")]):t._e()])]):t._e()])])})),0)])])])}),[function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"text-center"},[e("i",{staticClass:"fas fa-spinner fa-spin"})])},function(){var t=this.$createElement,e=this._self._c||t;return e("div",{staticClass:"text-center"},[e("i",{staticClass:"fas fa-exclamation-triangle text-danger"})])}],!1,null,"6812bb3b",null).exports,Dt=a(8),Ft=a.n(Dt),Et=a(30);a(41),a(85),Ft.a.component("transaction-list-large",gt),Ft.a.component("transaction-list-medium",yt),Ft.a.component("transaction-list-small",jt),Ft.a.component("dashboard",n),Ft.a.component("top-boxes",f),Ft.a.component("main-account",L),Ft.a.component("main-account-list",B),Ft.a.component("main-bills-list",G),Ft.a.component("main-budget-list",tt),Ft.a.component("main-category-list",It),Ft.a.component("main-debit-list",_t),Ft.a.component("main-credit-list",ct),Ft.a.component("main-piggy-list",ht),Ft.a.use(i.c);var kt=a(43),Bt={};new Ft.a({i18n:kt,store:Et.a,el:"#dashboard",render:function(t){return t(n,{props:Bt})},beforeCreate:function(){this.$store.commit("initialiseStore"),this.$store.dispatch("updateCurrencyPreference"),this.$store.dispatch("updateListPageSizePreference"),this.$store.dispatch("dashboard/index/initialiseStore")}}),new Ft.a({i18n:kt,store:Et.a,el:"#calendar",render:function(t){return t(Ot.a,{props:Bt})}})},725:function(t,e){}},[[276,0,1]]]); //# sourceMappingURL=dashboard.js.map \ No newline at end of file diff --git a/public/v2/js/dashboard.js.map b/public/v2/js/dashboard.js.map index ea0929be28..596599985a 100755 --- a/public/v2/js/dashboard.js.map +++ b/public/v2/js/dashboard.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///./src/components/dashboard/Calendar.vue?78f3","webpack:///./node_modules/moment/locale sync ^\\.\\/.*$","webpack:///./src/components/dashboard/Calendar.vue?9bbc","webpack:///./src/components/dashboard/Calendar.vue?b42b","webpack:///./src/components/dashboard/Dashboard.vue?c016","webpack:///./src/components/dashboard/Dashboard.vue?e9df","webpack:///src/components/dashboard/Dashboard.vue","webpack:///./src/components/dashboard/Dashboard.vue","webpack:///src/components/dashboard/TopBoxes.vue","webpack:///./src/components/dashboard/TopBoxes.vue?c977","webpack:///./src/components/dashboard/TopBoxes.vue","webpack:///./src/components/dashboard/TopBoxes.vue?83ff","webpack:///./src/components/charts/DataConverter.vue?d682","webpack:///src/components/charts/DataConverter.vue","webpack:///./src/components/charts/DataConverter.vue","webpack:///./src/components/charts/DefaultLineOptions.vue?36d0","webpack:///src/components/charts/DefaultLineOptions.vue","webpack:///./src/components/charts/DefaultLineOptions.vue","webpack:///./src/components/charts/DefaultLineOptions.vue?6f90","webpack:///src/components/dashboard/MainAccountChart.vue","webpack:///./src/components/dashboard/MainAccountChart.vue?f54b","webpack:///./src/components/dashboard/MainAccountChart.vue","webpack:///src/components/dashboard/MainAccount.vue","webpack:///./src/components/dashboard/MainAccount.vue?1e69","webpack:///./src/components/dashboard/MainAccount.vue","webpack:///./src/components/dashboard/MainAccount.vue?3c35","webpack:///src/components/dashboard/MainAccountList.vue","webpack:///./src/components/dashboard/MainAccountList.vue?889b","webpack:///./src/components/dashboard/MainAccountList.vue","webpack:///./src/components/dashboard/MainAccountList.vue?1697","webpack:///src/components/dashboard/MainBillsList.vue","webpack:///./src/components/dashboard/MainBillsList.vue?536e","webpack:///./src/components/dashboard/MainBillsList.vue","webpack:///./src/components/dashboard/MainBillsList.vue?17cf","webpack:///./src/components/dashboard/BudgetLimitRow.vue?c9a7","webpack:///src/components/dashboard/BudgetLimitRow.vue","webpack:///./src/components/dashboard/BudgetLimitRow.vue","webpack:///./src/components/dashboard/BudgetLimitRow.vue?00b9","webpack:///./src/components/dashboard/BudgetRow.vue?09f9","webpack:///src/components/dashboard/BudgetRow.vue","webpack:///./src/components/dashboard/BudgetListGroup.vue?7954","webpack:///src/components/dashboard/BudgetListGroup.vue","webpack:///./src/components/dashboard/BudgetRow.vue","webpack:///./src/components/dashboard/BudgetRow.vue?d9e9","webpack:///./src/components/dashboard/BudgetListGroup.vue","webpack:///./src/components/dashboard/BudgetListGroup.vue?f3cb","webpack:///src/components/dashboard/MainBudgetList.vue","webpack:///./src/components/dashboard/MainBudgetList.vue?9843","webpack:///./src/components/dashboard/MainBudgetList.vue","webpack:///./src/components/dashboard/MainBudgetList.vue?52c1","webpack:///src/components/dashboard/MainCreditList.vue","webpack:///./src/components/dashboard/MainCreditList.vue?53af","webpack:///./src/components/dashboard/MainCreditList.vue","webpack:///./src/components/dashboard/MainCreditList.vue?c3f7","webpack:///src/components/dashboard/MainDebitList.vue","webpack:///./src/components/dashboard/MainDebitList.vue?587b","webpack:///./src/components/dashboard/MainDebitList.vue","webpack:///./src/components/dashboard/MainDebitList.vue?eda3","webpack:///./src/components/dashboard/MainPiggyList.vue?7bae","webpack:///src/components/dashboard/MainPiggyList.vue","webpack:///./src/components/dashboard/MainPiggyList.vue","webpack:///./src/components/dashboard/MainPiggyList.vue?60b5","webpack:///./src/components/transactions/TransactionListLarge.vue?3500","webpack:///src/components/transactions/TransactionListLarge.vue","webpack:///./src/components/transactions/TransactionListLarge.vue","webpack:///./src/components/transactions/TransactionListLarge.vue?d789","webpack:///./src/components/transactions/TransactionListMedium.vue?d4b8","webpack:///src/components/transactions/TransactionListMedium.vue","webpack:///./src/components/transactions/TransactionListMedium.vue","webpack:///./src/components/transactions/TransactionListMedium.vue?4497","webpack:///./src/components/transactions/TransactionListSmall.vue?5a3e","webpack:///src/components/transactions/TransactionListSmall.vue","webpack:///./src/components/transactions/TransactionListSmall.vue","webpack:///./src/components/transactions/TransactionListSmall.vue?46eb","webpack:///src/components/dashboard/Calendar.vue","webpack:///./src/components/dashboard/Calendar.vue?b9d0","webpack:///./src/components/dashboard/Calendar.vue","webpack:///./src/components/dashboard/Calendar.vue?7987","webpack:///src/components/dashboard/MainCategoryList.vue","webpack:///./src/components/dashboard/MainCategoryList.vue?9f14","webpack:///./src/components/dashboard/MainCategoryList.vue","webpack:///./src/components/dashboard/MainCategoryList.vue?5708","webpack:///./src/pages/dashboard.js"],"names":["content","module","i","options","transform","undefined","locals","exports","map","webpackContext","req","id","webpackContextResolve","__webpack_require__","o","e","Error","code","keys","Object","resolve","push","name","_vm","this","_h","$createElement","_c","_self","_v","staticClass","props","data","summary","balances","billsPaid","billsUnpaid","leftToSpend","netWorth","loading","error","ready","computed","start","end","prefCurrencyBalances","filterOnCurrency","notPrefCurrencyBalances","filterOnNotCurrency","prefBillsUnpaid","notPrefBillsUnpaid","prefLeftToSpend","notPrefLeftToSpend","prefNetWorth","notPrefNetWorth","currencyCode","$store","getters","currencyId","watch","datesReady","value","prepareComponent","created","methods","array","hasOwnProperty","key","currency_id","ret","length","axios","get","startStr","endStr","buildComponent","getBalanceEntries","getBillsEntries","getLeftToSpend","getNetWorth","hasCurrency","getKeyedEntries","expected","substr","result","_m","_e","_s","$t","_l","balance","attrs","sub_title","value_parsed","index","bill","left","nw","staticStyle","dataSet","newDataSet","locale","localStorage","local","convertChart","count","labels","datasets","getLabels","getDataSets","colorizeBarData","fillColors","colourSet","setKey","dataset","fill","backgroundColor","borderColor","colorizeLineData","convertLabelsToDate","labelKey","Intl","DateTimeFormat","format","unixTimeZero","firstSet","entries","entryLabel","oldSet","newSet","label","type","currency_symbol","currency_code","yAxisID","formatLabel","sections","words","str","String","split","temp","forEach","item","concat","maxwidth","getDefaultOptions","self","legend","display","animation","duration","responsive","maintainAspectRatio","elements","line","cubicInterpolationMode","scales","xAxes","yAxes","ticks","callback","NumberFormat","beginAtZero","tooltips","mode","callbacks","tooltipItem","datasetIndex","nrString","extends","mixins","reactiveProp","mounted","renderChart","chartData","components","dataCollection","chartOptions","DefaultLineOptions","initialiseChart","url","accounts","initialiseList","loadAccounts","accountIds","test","loadSingleAccount","accountId","loadTransactions","account","class","title","parseFloat","current_balance","style","currency","transactions","bills","initialiseBills","renderPaidDate","obj","transaction_group_id","loadBills","attributes","pay_dates","active","amount_min","amount_max","object_group_title","paidDate","domProps","payDate","paid_dates","year","month","day","Date","budgetLimit","default","budget","budget_id","budget_name","pctGreen","spent","amount","pctOrange","pctRed","budgetLimits","Array","budgets","budgetList","daily","weekly","monthly","quarterly","half_year","yearly","other","rawBudgets","getBudgets","income","max","getIncome","parseIncome","mainKey","parseInt","difference_float","current","pct","entry","width","expenses","getExpenses","parseExpenses","piggy_banks","loadPiggyBanks","piggy","left_to_save","sort","a","b","current_amount","target_amount","account_id","Number","transaction","date","group_title","description","tr","destination_id","destination_name","source_id","source_name","category_id","category_name","range","defaultRange","periods","resetDate","defaultStart","defaultEnd","setStart","setEnd","customDate","setDate","getDate","scopedSlots","_u","fn","ref","inputValue","inputEvents","isDragging","togglePopover","on","$event","placement","positionFixed","period","_g","model","$$v","expression","categories","sortedList","earned","getCategories","category","spentPct","earnedPct","require","Vue","component","TransactionListLarge","TransactionListMedium","TransactionListSmall","DatePicker","Dashboard","TopBoxes","MainAccount","MainAccountList","MainBillsList","MainBudgetList","MainCategoryList","MainDebitList","MainCreditList","MainPiggyList","use","Vuex","i18n","store","el","render","createElement","beforeCreate","commit","dispatch","Calendar"],"mappings":"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","file":"/public/js/dashboard.js","sourcesContent":["\nvar content = require(\"!!../../../node_modules/css-loader/index.js??ref--6-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-2!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Calendar.vue?vue&type=style&index=0&id=51abf689&scoped=true&lang=css&\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../node_modules/css-loader/index.js??ref--6-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-2!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Calendar.vue?vue&type=style&index=0&id=51abf689&scoped=true&lang=css&\", function() {\n\t\tvar newContent = require(\"!!../../../node_modules/css-loader/index.js??ref--6-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-2!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Calendar.vue?vue&type=style&index=0&id=51abf689&scoped=true&lang=css&\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}","var map = {\n\t\"./af\": 59,\n\t\"./af.js\": 59,\n\t\"./ar\": 60,\n\t\"./ar-dz\": 61,\n\t\"./ar-dz.js\": 61,\n\t\"./ar-kw\": 62,\n\t\"./ar-kw.js\": 62,\n\t\"./ar-ly\": 63,\n\t\"./ar-ly.js\": 63,\n\t\"./ar-ma\": 64,\n\t\"./ar-ma.js\": 64,\n\t\"./ar-sa\": 65,\n\t\"./ar-sa.js\": 65,\n\t\"./ar-tn\": 66,\n\t\"./ar-tn.js\": 66,\n\t\"./ar.js\": 60,\n\t\"./az\": 67,\n\t\"./az.js\": 67,\n\t\"./be\": 68,\n\t\"./be.js\": 68,\n\t\"./bg\": 69,\n\t\"./bg.js\": 69,\n\t\"./bm\": 70,\n\t\"./bm.js\": 70,\n\t\"./bn\": 71,\n\t\"./bn-bd\": 72,\n\t\"./bn-bd.js\": 72,\n\t\"./bn.js\": 71,\n\t\"./bo\": 73,\n\t\"./bo.js\": 73,\n\t\"./br\": 74,\n\t\"./br.js\": 74,\n\t\"./bs\": 75,\n\t\"./bs.js\": 75,\n\t\"./ca\": 76,\n\t\"./ca.js\": 76,\n\t\"./cs\": 77,\n\t\"./cs.js\": 77,\n\t\"./cv\": 78,\n\t\"./cv.js\": 78,\n\t\"./cy\": 79,\n\t\"./cy.js\": 79,\n\t\"./da\": 80,\n\t\"./da.js\": 80,\n\t\"./de\": 81,\n\t\"./de-at\": 82,\n\t\"./de-at.js\": 82,\n\t\"./de-ch\": 83,\n\t\"./de-ch.js\": 83,\n\t\"./de.js\": 81,\n\t\"./dv\": 84,\n\t\"./dv.js\": 84,\n\t\"./el\": 85,\n\t\"./el.js\": 85,\n\t\"./en-au\": 86,\n\t\"./en-au.js\": 86,\n\t\"./en-ca\": 87,\n\t\"./en-ca.js\": 87,\n\t\"./en-gb\": 88,\n\t\"./en-gb.js\": 88,\n\t\"./en-ie\": 89,\n\t\"./en-ie.js\": 89,\n\t\"./en-il\": 90,\n\t\"./en-il.js\": 90,\n\t\"./en-in\": 91,\n\t\"./en-in.js\": 91,\n\t\"./en-nz\": 92,\n\t\"./en-nz.js\": 92,\n\t\"./en-sg\": 93,\n\t\"./en-sg.js\": 93,\n\t\"./eo\": 94,\n\t\"./eo.js\": 94,\n\t\"./es\": 95,\n\t\"./es-do\": 96,\n\t\"./es-do.js\": 96,\n\t\"./es-mx\": 97,\n\t\"./es-mx.js\": 97,\n\t\"./es-us\": 98,\n\t\"./es-us.js\": 98,\n\t\"./es.js\": 95,\n\t\"./et\": 99,\n\t\"./et.js\": 99,\n\t\"./eu\": 100,\n\t\"./eu.js\": 100,\n\t\"./fa\": 101,\n\t\"./fa.js\": 101,\n\t\"./fi\": 102,\n\t\"./fi.js\": 102,\n\t\"./fil\": 103,\n\t\"./fil.js\": 103,\n\t\"./fo\": 104,\n\t\"./fo.js\": 104,\n\t\"./fr\": 105,\n\t\"./fr-ca\": 106,\n\t\"./fr-ca.js\": 106,\n\t\"./fr-ch\": 107,\n\t\"./fr-ch.js\": 107,\n\t\"./fr.js\": 105,\n\t\"./fy\": 108,\n\t\"./fy.js\": 108,\n\t\"./ga\": 109,\n\t\"./ga.js\": 109,\n\t\"./gd\": 110,\n\t\"./gd.js\": 110,\n\t\"./gl\": 111,\n\t\"./gl.js\": 111,\n\t\"./gom-deva\": 112,\n\t\"./gom-deva.js\": 112,\n\t\"./gom-latn\": 113,\n\t\"./gom-latn.js\": 113,\n\t\"./gu\": 114,\n\t\"./gu.js\": 114,\n\t\"./he\": 115,\n\t\"./he.js\": 115,\n\t\"./hi\": 116,\n\t\"./hi.js\": 116,\n\t\"./hr\": 117,\n\t\"./hr.js\": 117,\n\t\"./hu\": 118,\n\t\"./hu.js\": 118,\n\t\"./hy-am\": 119,\n\t\"./hy-am.js\": 119,\n\t\"./id\": 120,\n\t\"./id.js\": 120,\n\t\"./is\": 121,\n\t\"./is.js\": 121,\n\t\"./it\": 122,\n\t\"./it-ch\": 123,\n\t\"./it-ch.js\": 123,\n\t\"./it.js\": 122,\n\t\"./ja\": 124,\n\t\"./ja.js\": 124,\n\t\"./jv\": 125,\n\t\"./jv.js\": 125,\n\t\"./ka\": 126,\n\t\"./ka.js\": 126,\n\t\"./kk\": 127,\n\t\"./kk.js\": 127,\n\t\"./km\": 128,\n\t\"./km.js\": 128,\n\t\"./kn\": 129,\n\t\"./kn.js\": 129,\n\t\"./ko\": 130,\n\t\"./ko.js\": 130,\n\t\"./ku\": 131,\n\t\"./ku.js\": 131,\n\t\"./ky\": 132,\n\t\"./ky.js\": 132,\n\t\"./lb\": 133,\n\t\"./lb.js\": 133,\n\t\"./lo\": 134,\n\t\"./lo.js\": 134,\n\t\"./lt\": 135,\n\t\"./lt.js\": 135,\n\t\"./lv\": 136,\n\t\"./lv.js\": 136,\n\t\"./me\": 137,\n\t\"./me.js\": 137,\n\t\"./mi\": 138,\n\t\"./mi.js\": 138,\n\t\"./mk\": 139,\n\t\"./mk.js\": 139,\n\t\"./ml\": 140,\n\t\"./ml.js\": 140,\n\t\"./mn\": 141,\n\t\"./mn.js\": 141,\n\t\"./mr\": 142,\n\t\"./mr.js\": 142,\n\t\"./ms\": 143,\n\t\"./ms-my\": 144,\n\t\"./ms-my.js\": 144,\n\t\"./ms.js\": 143,\n\t\"./mt\": 145,\n\t\"./mt.js\": 145,\n\t\"./my\": 146,\n\t\"./my.js\": 146,\n\t\"./nb\": 147,\n\t\"./nb.js\": 147,\n\t\"./ne\": 148,\n\t\"./ne.js\": 148,\n\t\"./nl\": 149,\n\t\"./nl-be\": 150,\n\t\"./nl-be.js\": 150,\n\t\"./nl.js\": 149,\n\t\"./nn\": 151,\n\t\"./nn.js\": 151,\n\t\"./oc-lnc\": 152,\n\t\"./oc-lnc.js\": 152,\n\t\"./pa-in\": 153,\n\t\"./pa-in.js\": 153,\n\t\"./pl\": 154,\n\t\"./pl.js\": 154,\n\t\"./pt\": 155,\n\t\"./pt-br\": 156,\n\t\"./pt-br.js\": 156,\n\t\"./pt.js\": 155,\n\t\"./ro\": 157,\n\t\"./ro.js\": 157,\n\t\"./ru\": 158,\n\t\"./ru.js\": 158,\n\t\"./sd\": 159,\n\t\"./sd.js\": 159,\n\t\"./se\": 160,\n\t\"./se.js\": 160,\n\t\"./si\": 161,\n\t\"./si.js\": 161,\n\t\"./sk\": 162,\n\t\"./sk.js\": 162,\n\t\"./sl\": 163,\n\t\"./sl.js\": 163,\n\t\"./sq\": 164,\n\t\"./sq.js\": 164,\n\t\"./sr\": 165,\n\t\"./sr-cyrl\": 166,\n\t\"./sr-cyrl.js\": 166,\n\t\"./sr.js\": 165,\n\t\"./ss\": 167,\n\t\"./ss.js\": 167,\n\t\"./sv\": 168,\n\t\"./sv.js\": 168,\n\t\"./sw\": 169,\n\t\"./sw.js\": 169,\n\t\"./ta\": 170,\n\t\"./ta.js\": 170,\n\t\"./te\": 171,\n\t\"./te.js\": 171,\n\t\"./tet\": 172,\n\t\"./tet.js\": 172,\n\t\"./tg\": 173,\n\t\"./tg.js\": 173,\n\t\"./th\": 174,\n\t\"./th.js\": 174,\n\t\"./tk\": 175,\n\t\"./tk.js\": 175,\n\t\"./tl-ph\": 176,\n\t\"./tl-ph.js\": 176,\n\t\"./tlh\": 177,\n\t\"./tlh.js\": 177,\n\t\"./tr\": 178,\n\t\"./tr.js\": 178,\n\t\"./tzl\": 179,\n\t\"./tzl.js\": 179,\n\t\"./tzm\": 180,\n\t\"./tzm-latn\": 181,\n\t\"./tzm-latn.js\": 181,\n\t\"./tzm.js\": 180,\n\t\"./ug-cn\": 182,\n\t\"./ug-cn.js\": 182,\n\t\"./uk\": 183,\n\t\"./uk.js\": 183,\n\t\"./ur\": 184,\n\t\"./ur.js\": 184,\n\t\"./uz\": 185,\n\t\"./uz-latn\": 186,\n\t\"./uz-latn.js\": 186,\n\t\"./uz.js\": 185,\n\t\"./vi\": 187,\n\t\"./vi.js\": 187,\n\t\"./x-pseudo\": 188,\n\t\"./x-pseudo.js\": 188,\n\t\"./yo\": 189,\n\t\"./yo.js\": 189,\n\t\"./zh-cn\": 190,\n\t\"./zh-cn.js\": 190,\n\t\"./zh-hk\": 191,\n\t\"./zh-hk.js\": 191,\n\t\"./zh-mo\": 192,\n\t\"./zh-mo.js\": 192,\n\t\"./zh-tw\": 193,\n\t\"./zh-tw.js\": 193\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 246;","export * from \"-!../../../node_modules/style-loader/index.js!../../../node_modules/css-loader/index.js??ref--6-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-2!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Calendar.vue?vue&type=style&index=0&id=51abf689&scoped=true&lang=css&\"","exports = module.exports = require(\"../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".dropdown-item[data-v-51abf689],.dropdown-item[data-v-51abf689]:hover{color:#212529}\", \"\"]);\n\n// exports\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('top-boxes'),_vm._v(\" \"),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col\"},[_c('main-account')],1)]),_vm._v(\" \"),_c('main-account-list'),_vm._v(\" \"),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col\"},[_c('main-budget-list')],1)]),_vm._v(\" \"),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col\"},[_c('main-category-list')],1)]),_vm._v(\" \"),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-lg-6 col-md-12 col-sm-12 col-xs-12\"},[_c('main-debit-list')],1),_vm._v(\" \"),_c('div',{staticClass:\"col-lg-6 col-md-12 col-sm-12 col-xs-12\"},[_c('main-credit-list')],1)]),_vm._v(\" \"),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-lg-6 col-md-12 col-sm-12 col-xs-12\"},[_c('main-piggy-list')],1),_vm._v(\" \"),_c('div',{staticClass:\"col-lg-6 col-md-12 col-sm-12 col-xs-12\"},[_c('main-bills-list')],1)])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Dashboard.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Dashboard.vue?vue&type=script&lang=js&\"","\n\n\n\n\n","import { render, staticRenderFns } from \"./Dashboard.vue?vue&type=template&id=9d50d3a2&\"\nimport script from \"./Dashboard.vue?vue&type=script&lang=js&\"\nexport * from \"./Dashboard.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TopBoxes.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TopBoxes.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TopBoxes.vue?vue&type=template&id=5c6cdcc5&\"\nimport script from \"./TopBoxes.vue?vue&type=script&lang=js&\"\nexport * from \"./TopBoxes.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col\"},[_c('div',{staticClass:\"info-box\"},[_vm._m(0),_vm._v(\" \"),_c('div',{staticClass:\"info-box-content\"},[(!_vm.loading && !_vm.error)?_c('span',{staticClass:\"info-box-text\"},[_vm._v(_vm._s(_vm.$t(\"firefly.balance\")))]):_vm._e(),_vm._v(\" \"),(_vm.loading && !_vm.error)?_c('span',{staticClass:\"info-box-text\"},[_c('i',{staticClass:\"fas fa-spinner fa-spin\"})]):_vm._e(),_vm._v(\" \"),(_vm.error)?_c('span',{staticClass:\"info-box-text\"},[_c('i',{staticClass:\"fas fa-exclamation-triangle text-danger\"})]):_vm._e(),_vm._v(\" \"),_vm._l((_vm.prefCurrencyBalances),function(balance){return _c('span',{staticClass:\"info-box-number\",attrs:{\"title\":balance.sub_title}},[_vm._v(_vm._s(balance.value_parsed))])}),_vm._v(\" \"),_vm._m(1),_vm._v(\" \"),_c('span',{staticClass:\"progress-description\"},[_vm._l((_vm.notPrefCurrencyBalances),function(balance,index){return _c('span',{attrs:{\"title\":balance.sub_title}},[_vm._v(\"\\n \"+_vm._s(balance.value_parsed)),(index+1 !== _vm.notPrefCurrencyBalances.length)?_c('span',[_vm._v(\", \")]):_vm._e()])}),_vm._v(\" \"),(0===_vm.notPrefCurrencyBalances.length)?_c('span',[_vm._v(\" \")]):_vm._e()],2)],2)])]),_vm._v(\" \"),_c('div',{staticClass:\"col\"},[_c('div',{staticClass:\"info-box\"},[_vm._m(2),_vm._v(\" \"),_c('div',{staticClass:\"info-box-content\"},[(!_vm.loading && !_vm.error)?_c('span',{staticClass:\"info-box-text\"},[_vm._v(_vm._s(_vm.$t('firefly.bills_to_pay')))]):_vm._e(),_vm._v(\" \"),(_vm.loading && !_vm.error)?_c('span',{staticClass:\"info-box-text\"},[_c('i',{staticClass:\"fas fa-spinner fa-spin\"})]):_vm._e(),_vm._v(\" \"),(_vm.error)?_c('span',{staticClass:\"info-box-text\"},[_c('i',{staticClass:\"fas fa-exclamation-triangle text-danger\"})]):_vm._e(),_vm._v(\" \"),_vm._l((_vm.prefBillsUnpaid),function(balance){return _c('span',{staticClass:\"info-box-number\"},[_vm._v(_vm._s(balance.value_parsed))])}),_vm._v(\" \"),_vm._m(3),_vm._v(\" \"),_c('span',{staticClass:\"progress-description\"},[_vm._l((_vm.notPrefBillsUnpaid),function(bill,index){return _c('span',[_vm._v(\"\\n \"+_vm._s(bill.value_parsed)),(index+1 !== _vm.notPrefBillsUnpaid.length)?_c('span',[_vm._v(\", \")]):_vm._e()])}),_vm._v(\" \"),(0===_vm.notPrefBillsUnpaid.length)?_c('span',[_vm._v(\" \")]):_vm._e()],2)],2)])]),_vm._v(\" \"),_c('div',{staticClass:\"col\"},[_c('div',{staticClass:\"info-box\"},[_vm._m(4),_vm._v(\" \"),_c('div',{staticClass:\"info-box-content\"},[(!_vm.loading && !_vm.error)?_c('span',{staticClass:\"info-box-text\"},[_vm._v(_vm._s(_vm.$t('firefly.left_to_spend')))]):_vm._e(),_vm._v(\" \"),(_vm.loading && !_vm.error)?_c('span',{staticClass:\"info-box-text\"},[_c('i',{staticClass:\"fas fa-spinner fa-spin\"})]):_vm._e(),_vm._v(\" \"),(_vm.error)?_c('span',{staticClass:\"info-box-text\"},[_c('i',{staticClass:\"fas fa-exclamation-triangle text-danger\"})]):_vm._e(),_vm._v(\" \"),_vm._l((_vm.prefLeftToSpend),function(left){return _c('span',{staticClass:\"info-box-number\",attrs:{\"title\":left.sub_title}},[_vm._v(_vm._s(left.value_parsed))])}),_vm._v(\" \"),_vm._m(5),_vm._v(\" \"),_c('span',{staticClass:\"progress-description\"},[_vm._l((_vm.notPrefLeftToSpend),function(left,index){return _c('span',[_vm._v(\"\\n \"+_vm._s(left.value_parsed)),(index+1 !== _vm.notPrefLeftToSpend.length)?_c('span',[_vm._v(\", \")]):_vm._e()])}),_vm._v(\" \"),(0===_vm.notPrefLeftToSpend.length)?_c('span',[_vm._v(\" \")]):_vm._e()],2)],2)])]),_vm._v(\" \"),_c('div',{staticClass:\"col\"},[_c('div',{staticClass:\"info-box\"},[_vm._m(6),_vm._v(\" \"),_c('div',{staticClass:\"info-box-content\"},[(!_vm.loading && !_vm.error)?_c('span',{staticClass:\"info-box-text\"},[_vm._v(_vm._s(_vm.$t('firefly.net_worth')))]):_vm._e(),_vm._v(\" \"),(_vm.loading && !_vm.error)?_c('span',{staticClass:\"info-box-text\"},[_c('i',{staticClass:\"fas fa-spinner fa-spin\"})]):_vm._e(),_vm._v(\" \"),(_vm.error)?_c('span',{staticClass:\"info-box-text\"},[_c('i',{staticClass:\"fas fa-exclamation-triangle text-danger\"})]):_vm._e(),_vm._v(\" \"),_vm._l((_vm.prefNetWorth),function(nw){return _c('span',{staticClass:\"info-box-number\",attrs:{\"title\":nw.sub_title}},[_vm._v(_vm._s(nw.value_parsed))])}),_vm._v(\" \"),_vm._m(7),_vm._v(\" \"),_c('span',{staticClass:\"progress-description\"},[_vm._l((_vm.notPrefNetWorth),function(nw,index){return _c('span',[_vm._v(\"\\n \"+_vm._s(nw.value_parsed)),(index+1 !== _vm.notPrefNetWorth.length)?_c('span',[_vm._v(\", \")]):_vm._e()])}),_vm._v(\" \"),(0===_vm.notPrefNetWorth.length)?_c('span',[_vm._v(\" \")]):_vm._e()],2)],2)])])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',{staticClass:\"info-box-icon\"},[_c('i',{staticClass:\"far fa-bookmark text-info\"})])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"progress bg-info\"},[_c('div',{staticClass:\"progress-bar\",staticStyle:{\"width\":\"0\"}})])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',{staticClass:\"info-box-icon\"},[_c('i',{staticClass:\"far fa-calendar-alt text-teal\"})])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"progress bg-teal\"},[_c('div',{staticClass:\"progress-bar\",staticStyle:{\"width\":\"0\"}})])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',{staticClass:\"info-box-icon\"},[_c('i',{staticClass:\"fas fa-money-bill text-success\"})])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"progress bg-success\"},[_c('div',{staticClass:\"progress-bar\",staticStyle:{\"width\":\"0\"}})])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',{staticClass:\"info-box-icon\"},[_c('i',{staticClass:\"fas fa-money-bill text-success\"})])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"progress bg-success\"},[_c('div',{staticClass:\"progress-bar\",staticStyle:{\"width\":\"0\"}})])}]\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DataConverter.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DataConverter.vue?vue&type=script&lang=js&\"","\n\n\n","var render, staticRenderFns\nimport script from \"./DataConverter.vue?vue&type=script&lang=js&\"\nexport * from \"./DataConverter.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DefaultLineOptions.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DefaultLineOptions.vue?vue&type=script&lang=js&\"","\n\n\n\n\n\n\n\n","import { render, staticRenderFns } from \"./DefaultLineOptions.vue?vue&type=template&id=5f7e90aa&scoped=true&\"\nimport script from \"./DefaultLineOptions.vue?vue&type=script&lang=js&\"\nexport * from \"./DefaultLineOptions.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5f7e90aa\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c(\"div\")}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MainAccountChart.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MainAccountChart.vue?vue&type=script&lang=js&\"","var render, staticRenderFns\nimport script from \"./MainAccountChart.vue?vue&type=script&lang=js&\"\nexport * from \"./MainAccountChart.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MainAccount.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MainAccount.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./MainAccount.vue?vue&type=template&id=42021b7e&\"\nimport script from \"./MainAccount.vue?vue&type=script&lang=js&\"\nexport * from \"./MainAccount.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"card\"},[_c('div',{staticClass:\"card-header\"},[_c('h3',{staticClass:\"card-title\"},[_vm._v(_vm._s(_vm.$t('firefly.yourAccounts')))])]),_vm._v(\" \"),_c('div',{staticClass:\"card-body\"},[(!_vm.loading)?_c('div',[(!_vm.loading && !_vm.error)?_c('MainAccountChart',{attrs:{\"chart-data\":_vm.dataCollection,\"options\":_vm.chartOptions}}):_vm._e()],1):_vm._e(),_vm._v(\" \"),(_vm.loading && !_vm.error)?_c('div',{staticClass:\"text-center\"},[_c('i',{staticClass:\"fas fa-spinner fa-spin\"})]):_vm._e(),_vm._v(\" \"),(_vm.error)?_c('div',{staticClass:\"text-center\"},[_c('i',{staticClass:\"fas fa-exclamation-triangle text-danger\"})]):_vm._e()]),_vm._v(\" \"),_c('div',{staticClass:\"card-footer\"},[_c('a',{staticClass:\"btn btn-default button-sm\",attrs:{\"href\":\"./accounts/asset\"}},[_c('i',{staticClass:\"far fa-money-bill-alt\"}),_vm._v(\" \"+_vm._s(_vm.$t('firefly.go_to_asset_accounts')))])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MainAccountList.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MainAccountList.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./MainAccountList.vue?vue&type=template&id=5d6bb842&scoped=true&\"\nimport script from \"./MainAccountList.vue?vue&type=script&lang=js&\"\nexport * from \"./MainAccountList.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5d6bb842\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.loading && !_vm.error)?_c('div',{staticClass:\"row\"},[_vm._m(0)]):_vm._e(),_vm._v(\" \"),(_vm.error)?_c('div',{staticClass:\"row\"},[_vm._m(1)]):_vm._e(),_vm._v(\" \"),(!_vm.loading && !_vm.error)?_c('div',{staticClass:\"row\"},_vm._l((_vm.accounts),function(account){return _c('div',{class:{ 'col-lg-12': 1 === _vm.accounts.length, 'col-lg-6': 2 === _vm.accounts.length, 'col-lg-4': _vm.accounts.length > 2 }},[_c('div',{staticClass:\"card\"},[_c('div',{staticClass:\"card-header\"},[_c('h3',{staticClass:\"card-title\"},[_c('a',{attrs:{\"href\":account.url}},[_vm._v(_vm._s(account.title))])]),_vm._v(\" \"),_c('div',{staticClass:\"card-tools\"},[_c('span',{class:parseFloat(account.current_balance) < 0 ? 'text-danger' : 'text-success'},[_vm._v(\"\\n \"+_vm._s(Intl.NumberFormat(_vm.locale, {style: 'currency', currency: account.currency_code}).format(parseFloat(account.current_balance)))+\"\\n \")])])]),_vm._v(\" \"),_c('div',{staticClass:\"card-body table-responsive p-0\"},[_c('div',[(1===_vm.accounts.length)?_c('transaction-list-large',{attrs:{\"account_id\":account.id,\"transactions\":account.transactions}}):_vm._e(),_vm._v(\" \"),(2===_vm.accounts.length)?_c('transaction-list-medium',{attrs:{\"account_id\":account.id,\"transactions\":account.transactions}}):_vm._e(),_vm._v(\" \"),(_vm.accounts.length > 2)?_c('transaction-list-small',{attrs:{\"account_id\":account.id,\"transactions\":account.transactions}}):_vm._e()],1)])])])}),0):_vm._e()])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"col\"},[_c('div',{staticClass:\"card\"},[_c('div',{staticClass:\"card-body\"},[_c('div',{staticClass:\"text-center\"},[_c('i',{staticClass:\"fas fa-spinner fa-spin\"})])])])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"col\"},[_c('div',{staticClass:\"card\"},[_c('div',{staticClass:\"card-body\"},[_c('div',{staticClass:\"text-center\"},[_c('i',{staticClass:\"fas fa-exclamation-triangle text-danger\"})])])])])}]\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MainBillsList.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MainBillsList.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./MainBillsList.vue?vue&type=template&id=64c4c037&\"\nimport script from \"./MainBillsList.vue?vue&type=script&lang=js&\"\nexport * from \"./MainBillsList.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"card\"},[_c('div',{staticClass:\"card-header\"},[_c('h3',{staticClass:\"card-title\"},[_vm._v(_vm._s(_vm.$t('firefly.bills')))])]),_vm._v(\" \"),(_vm.loading && !_vm.error)?_c('div',{staticClass:\"card-body\"},[_vm._m(0)]):_vm._e(),_vm._v(\" \"),(_vm.error)?_c('div',{staticClass:\"card-body\"},[_vm._m(1)]):_vm._e(),_vm._v(\" \"),(!_vm.loading && !_vm.error)?_c('div',{staticClass:\"card-body table-responsive p-0\"},[_c('table',{staticClass:\"table table-striped\"},[_c('caption',{staticStyle:{\"display\":\"none\"}},[_vm._v(_vm._s(_vm.$t('firefly.bills')))]),_vm._v(\" \"),_c('thead',[_c('tr',[_c('th',{staticStyle:{\"width\":\"35%\"},attrs:{\"scope\":\"col\"}},[_vm._v(_vm._s(_vm.$t('list.name')))]),_vm._v(\" \"),_c('th',{staticStyle:{\"width\":\"25%\"},attrs:{\"scope\":\"col\"}},[_vm._v(_vm._s(_vm.$t('list.next_expected_match')))])])]),_vm._v(\" \"),_c('tbody',_vm._l((this.bills),function(bill){return _c('tr',[_c('td',[_c('a',{attrs:{\"href\":'./bills/show/' + bill.id,\"title\":bill.attributes.name}},[_vm._v(_vm._s(bill.attributes.name))]),_vm._v(\"\\n (~ \"),_c('span',{staticClass:\"text-danger\"},[_vm._v(_vm._s(Intl.NumberFormat(_vm.locale, {style: 'currency', currency: bill.attributes.currency_code}).format((parseFloat(bill.attributes.amount_min) +\n parseFloat(bill.attributes.amount_max)) / -2)))]),_vm._v(\")\\n \"),(bill.attributes.object_group_title)?_c('small',{staticClass:\"text-muted\"},[_c('br'),_vm._v(\"\\n \"+_vm._s(bill.attributes.object_group_title)+\"\\n \")]):_vm._e()]),_vm._v(\" \"),_c('td',[_vm._l((bill.attributes.paid_dates),function(paidDate){return _c('span',[_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.renderPaidDate(paidDate))}}),_c('br')])}),_vm._v(\" \"),_vm._l((bill.attributes.pay_dates),function(payDate){return (0===bill.attributes.paid_dates.length)?_c('span',[_vm._v(\"\\n \"+_vm._s(new Intl.DateTimeFormat(_vm.locale, {year: 'numeric', month: 'long', day: 'numeric'}).format(new Date(payDate)))),_c('br')]):_vm._e()})],2)])}),0)])]):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"card-footer\"},[_c('a',{staticClass:\"btn btn-default button-sm\",attrs:{\"href\":\"./bills\"}},[_c('i',{staticClass:\"far fa-money-bill-alt\"}),_vm._v(\" \"+_vm._s(_vm.$t('firefly.go_to_bills')))])])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"text-center\"},[_c('i',{staticClass:\"fas fa-spinner fa-spin\"})])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"text-center\"},[_c('i',{staticClass:\"fas fa-exclamation-triangle text-danger\"})])}]\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BudgetLimitRow.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BudgetLimitRow.vue?vue&type=script&lang=js&\"","\n\n\n\n\n\n","import { render, staticRenderFns } from \"./BudgetLimitRow.vue?vue&type=template&id=6b6de222&scoped=true&\"\nimport script from \"./BudgetLimitRow.vue?vue&type=script&lang=js&\"\nexport * from \"./BudgetLimitRow.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6b6de222\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('tr',[_c('td',{staticStyle:{\"width\":\"25%\"}},[_c('a',{attrs:{\"href\":'./budgets/show/' + _vm.budgetLimit.budget_id}},[_vm._v(_vm._s(_vm.budgetLimit.budget_name))])]),_vm._v(\" \"),_c('td',{staticStyle:{\"vertical-align\":\"middle\"}},[_c('div',{staticClass:\"progress progress active\"},[_c('div',{staticClass:\"progress-bar bg-success progress-bar-striped\",style:('width: '+ _vm.budgetLimit.pctGreen + '%;'),attrs:{\"aria-valuenow\":_vm.budgetLimit.pctGreen,\"aria-valuemax\":\"100\",\"aria-valuemin\":\"0\",\"role\":\"progressbar\"}},[(_vm.budgetLimit.pctGreen > 35)?_c('span',[_vm._v(\"\\n Spent\\n \"+_vm._s(Intl.NumberFormat(_vm.locale, {style: 'currency', currency: _vm.budgetLimit.currency_code}).format(_vm.budgetLimit.spent))+\"\\n of\\n \"+_vm._s(Intl.NumberFormat(_vm.locale, {style: 'currency', currency: _vm.budgetLimit.currency_code}).format(_vm.budgetLimit.amount))+\"\\n \")]):_vm._e()]),_vm._v(\" \"),_c('div',{staticClass:\"progress-bar bg-warning progress-bar-striped\",style:('width: '+ _vm.budgetLimit.pctOrange + '%;'),attrs:{\"aria-valuenow\":_vm.budgetLimit.pctOrange,\"aria-valuemax\":\"100\",\"aria-valuemin\":\"0\",\"role\":\"progressbar\"}},[(_vm.budgetLimit.pctRed <= 50 && _vm.budgetLimit.pctOrange > 35)?_c('span',[_vm._v(\"\\n Spent\\n \"+_vm._s(Intl.NumberFormat(_vm.locale, {style: 'currency', currency: _vm.budgetLimit.currency_code}).format(_vm.budgetLimit.spent))+\"\\n of\\n \"+_vm._s(Intl.NumberFormat(_vm.locale, {style: 'currency', currency: _vm.budgetLimit.currency_code}).format(_vm.budgetLimit.amount))+\"\\n \")]):_vm._e()]),_vm._v(\" \"),_c('div',{staticClass:\"progress-bar bg-danger progress-bar-striped\",style:('width: '+ _vm.budgetLimit.pctRed + '%;'),attrs:{\"aria-valuenow\":_vm.budgetLimit.pctRed,\"aria-valuemax\":\"100\",\"aria-valuemin\":\"0\",\"role\":\"progressbar\"}},[(_vm.budgetLimit.pctOrange <= 50 && _vm.budgetLimit.pctRed > 35)?_c('span',{staticClass:\"text-muted\"},[_vm._v(\"\\n Spent\\n \"+_vm._s(Intl.NumberFormat(_vm.locale, {style: 'currency', currency: _vm.budgetLimit.currency_code}).format(_vm.budgetLimit.spent))+\"\\n of\\n \"+_vm._s(Intl.NumberFormat(_vm.locale, {style: 'currency', currency: _vm.budgetLimit.currency_code}).format(_vm.budgetLimit.amount))+\"\\n \")]):_vm._e()]),_vm._v(\" \"),(_vm.budgetLimit.pctGreen <= 35 && 0 === _vm.budgetLimit.pctOrange && 0 === _vm.budgetLimit.pctRed && 0 !== _vm.budgetLimit.pctGreen)?_c('span',[_vm._v(\"\\n  \\n Spent\\n \"+_vm._s(Intl.NumberFormat(_vm.locale, {style: 'currency', currency: _vm.budgetLimit.currency_code}).format(_vm.budgetLimit.spent))+\"\\n of\\n \"+_vm._s(Intl.NumberFormat(_vm.locale, {style: 'currency', currency: _vm.budgetLimit.currency_code}).format(_vm.budgetLimit.amount))+\"\\n \")]):_vm._e()]),_vm._v(\" \"),_c('small',{staticClass:\"d-none d-lg-block\"},[_vm._v(\"\\n \"+_vm._s(new Intl.DateTimeFormat(_vm.locale, {year: 'numeric', month: 'long', day: 'numeric'}).format(_vm.budgetLimit.start))+\"\\n →\\n \"+_vm._s(new Intl.DateTimeFormat(_vm.locale, {year: 'numeric', month: 'long', day: 'numeric'}).format(_vm.budgetLimit.end))+\"\\n \")])]),_vm._v(\" \"),_c('td',{staticClass:\"align-middle d-none d-lg-table-cell\",staticStyle:{\"width\":\"10%\"}},[(parseFloat(_vm.budgetLimit.amount) + parseFloat(_vm.budgetLimit.spent) > 0)?_c('span',{staticClass:\"text-success\"},[_vm._v(\"\\n \"+_vm._s(Intl.NumberFormat(_vm.locale, {\n style: 'currency',\n currency: _vm.budgetLimit.currency_code\n }).format(parseFloat(_vm.budgetLimit.amount) + parseFloat(_vm.budgetLimit.spent)))+\"\\n \")]):_vm._e(),_vm._v(\" \"),(0.0 === parseFloat(_vm.budgetLimit.amount) + parseFloat(_vm.budgetLimit.spent))?_c('span',{staticClass:\"text-muted\"},[_vm._v(\"\\n \"+_vm._s(Intl.NumberFormat(_vm.locale, {style: 'currency', currency: _vm.budgetLimit.currency_code}).format(0))+\"\\n \")]):_vm._e(),_vm._v(\" \"),(parseFloat(_vm.budgetLimit.amount) + parseFloat(_vm.budgetLimit.spent) < 0)?_c('span',{staticClass:\"text-danger\"},[_vm._v(\"\\n \"+_vm._s(Intl.NumberFormat(_vm.locale, {\n style: 'currency',\n currency: _vm.budgetLimit.currency_code\n }).format(parseFloat(_vm.budgetLimit.amount) + parseFloat(_vm.budgetLimit.spent)))+\"\\n \")]):_vm._e()])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BudgetRow.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BudgetRow.vue?vue&type=script&lang=js&\"","\n\n\n\n\n\n\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BudgetListGroup.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BudgetListGroup.vue?vue&type=script&lang=js&\"","\n\n\n\n\n\n","import { render, staticRenderFns } from \"./BudgetRow.vue?vue&type=template&id=2fc8f640&scoped=true&\"\nimport script from \"./BudgetRow.vue?vue&type=script&lang=js&\"\nexport * from \"./BudgetRow.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2fc8f640\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('tr',[_c('td',{staticStyle:{\"width\":\"25%\"}},[_c('a',{attrs:{\"href\":'./budgets/show/' + _vm.budget.id}},[_vm._v(_vm._s(_vm.budget.name))])]),_vm._v(\" \"),_c('td',{staticClass:\"align-middle text-right\"},[_c('span',{staticClass:\"text-danger\"},[_vm._v(\"\\n \"+_vm._s(Intl.NumberFormat(_vm.locale, {style: 'currency', currency: _vm.budget.currency_code}).format(parseFloat(_vm.budget.spent)))+\"\\n \")])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./BudgetListGroup.vue?vue&type=template&id=658dd996&scoped=true&\"\nimport script from \"./BudgetListGroup.vue?vue&type=script&lang=js&\"\nexport * from \"./BudgetListGroup.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"658dd996\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"card\"},[_c('div',{staticClass:\"card-header\"},[_c('h3',{staticClass:\"card-title\"},[_vm._v(_vm._s(_vm.title))])]),_vm._v(\" \"),_c('div',{staticClass:\"card-body table-responsive p-0\"},[_c('table',{staticClass:\"table table-sm\"},[_c('tbody',[_vm._l((_vm.budgetLimits),function(budgetLimit,key){return _c('BudgetLimitRow',{key:key,attrs:{\"budgetLimit\":budgetLimit}})}),_vm._v(\" \"),_vm._l((_vm.budgets),function(budget,key){return _c('BudgetRow',{key:key,attrs:{\"budget\":budget}})})],2)])]),_vm._v(\" \"),_c('div',{staticClass:\"card-footer\"},[_c('a',{staticClass:\"btn btn-default button-sm\",attrs:{\"href\":\"./budgets\"}},[_c('i',{staticClass:\"far fa-money-bill-alt\"}),_vm._v(\" \"+_vm._s(_vm.$t('firefly.go_to_budgets')))])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MainBudgetList.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MainBudgetList.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./MainBudgetList.vue?vue&type=template&id=03d11977&scoped=true&\"\nimport script from \"./MainBudgetList.vue?vue&type=script&lang=js&\"\nexport * from \"./MainBudgetList.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"03d11977\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(!_vm.loading)?_c('div',{staticClass:\"row\"},[(_vm.budgetLimits.daily.length > 0)?_c('div',{staticClass:\"col-xl-6 col-lg-12 col-md-12 col-sm-12 col-xs-12\"},[_c('BudgetListGroup',{attrs:{\"budgetLimits\":_vm.budgetLimits.daily,\"title\":_vm.$t('firefly.daily_budgets')}})],1):_vm._e(),_vm._v(\" \"),(_vm.budgetLimits.weekly.length > 0)?_c('div',{staticClass:\"col-xl-6 col-lg-12 col-md-12 col-sm-12 col-xs-12\"},[_c('BudgetListGroup',{attrs:{\"budgetLimits\":_vm.budgetLimits.weekly,\"title\":_vm.$t('firefly.weekly_budgets')}})],1):_vm._e(),_vm._v(\" \"),(_vm.budgetLimits.monthly.length > 0)?_c('div',{staticClass:\"col-xl-6 col-lg-12 col-md-12 col-sm-12 col-xs-12\"},[_c('BudgetListGroup',{attrs:{\"budgetLimits\":_vm.budgetLimits.monthly,\"title\":_vm.$t('firefly.monthly_budgets')}})],1):_vm._e(),_vm._v(\" \"),(_vm.budgetLimits.quarterly.length > 0)?_c('div',{staticClass:\"col-xl-6 col-lg-12 col-md-12 col-sm-12 col-xs-12\"},[_c('BudgetListGroup',{attrs:{\"budgetLimits\":_vm.budgetLimits.quarterly,\"title\":_vm.$t('firefly.quarterly_budgets')}})],1):_vm._e(),_vm._v(\" \"),(_vm.budgetLimits.half_year.length > 0)?_c('div',{staticClass:\"col-xl-6 col-lg-12 col-md-12 col-sm-12 col-xs-12\"},[_c('BudgetListGroup',{attrs:{\"budgetLimits\":_vm.budgetLimits.half_year,\"title\":_vm.$t('firefly.half_year_budgets')}})],1):_vm._e(),_vm._v(\" \"),(_vm.budgetLimits.yearly.length > 0)?_c('div',{staticClass:\"col-xl-6 col-lg-12 col-md-12 col-sm-12 col-xs-12\"},[_c('BudgetListGroup',{attrs:{\"budgetLimits\":_vm.budgetLimits.yearly,\"title\":_vm.$t('firefly.yearly_budgets')}})],1):_vm._e(),_vm._v(\" \"),(_vm.budgetLimits.other.length > 0 || _vm.rawBudgets.length > 0)?_c('div',{staticClass:\"col-xl-6 col-lg-12 col-md-12 col-sm-12 col-xs-12\"},[_c('BudgetListGroup',{attrs:{\"budgetLimits\":_vm.budgetLimits.other,\"budgets\":_vm.rawBudgets,\"title\":_vm.$t('firefly.other_budgets')}})],1):_vm._e()]):_vm._e(),_vm._v(\" \"),(_vm.loading && !_vm.error)?_c('div',{staticClass:\"row\"},[_vm._m(0)]):_vm._e()])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"col\"},[_c('div',{staticClass:\"card\"},[_c('div',{staticClass:\"card-body\"},[_c('div',{staticClass:\"text-center\"},[_c('i',{staticClass:\"fas fa-spinner fa-spin\"})])])])])}]\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MainCreditList.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MainCreditList.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./MainCreditList.vue?vue&type=template&id=15163f02&\"\nimport script from \"./MainCreditList.vue?vue&type=script&lang=js&\"\nexport * from \"./MainCreditList.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"card\"},[_c('div',{staticClass:\"card-header\"},[_c('h3',{staticClass:\"card-title\"},[_vm._v(_vm._s(_vm.$t('firefly.revenue_accounts')))])]),_vm._v(\" \"),(_vm.loading && !_vm.error)?_c('div',{staticClass:\"card-body\"},[_vm._m(0)]):_vm._e(),_vm._v(\" \"),(_vm.error)?_c('div',{staticClass:\"card-body\"},[_vm._m(1)]):_vm._e(),_vm._v(\" \"),(!_vm.loading && !_vm.error)?_c('div',{staticClass:\"card-body table-responsive p-0\"},[_c('table',{staticClass:\"table table-sm\"},[_c('tbody',_vm._l((_vm.income),function(entry){return _c('tr',[_c('td',{staticStyle:{\"width\":\"20%\"}},[_c('a',{attrs:{\"href\":'./accounts/show/' + entry.id}},[_vm._v(_vm._s(entry.name))])]),_vm._v(\" \"),_c('td',{staticClass:\"align-middle\"},[(entry.pct > 0)?_c('div',{staticClass:\"progress\"},[_c('div',{staticClass:\"progress-bar progress-bar-striped bg-success\",style:({ width: entry.pct + '%'}),attrs:{\"aria-valuenow\":entry.pct,\"aria-valuemax\":\"100\",\"aria-valuemin\":\"0\",\"role\":\"progressbar\"}},[(entry.pct > 20)?_c('span',[_vm._v(\"\\n \"+_vm._s(Intl.NumberFormat(_vm.locale, {style: 'currency', currency: entry.currency_code}).format(entry.difference_float))+\"\\n \")]):_vm._e()]),_vm._v(\" \"),(entry.pct <= 20)?_c('span',[_vm._v(\" \\n \"+_vm._s(Intl.NumberFormat(_vm.locale, {style: 'currency', currency: entry.currency_code}).format(entry.difference_float))+\"\\n \")]):_vm._e()]):_vm._e()])])}),0)])]):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"card-footer\"},[_c('a',{staticClass:\"btn btn-default button-sm\",attrs:{\"href\":\"./transactions/deposit\"}},[_c('i',{staticClass:\"far fa-money-bill-alt\"}),_vm._v(\" \"+_vm._s(_vm.$t('firefly.go_to_deposits')))])])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"text-center\"},[_c('i',{staticClass:\"fas fa-spinner fa-spin\"})])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"text-center\"},[_c('i',{staticClass:\"fas fa-exclamation-triangle text-danger\"})])}]\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MainDebitList.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MainDebitList.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./MainDebitList.vue?vue&type=template&id=0b0b6d16&\"\nimport script from \"./MainDebitList.vue?vue&type=script&lang=js&\"\nexport * from \"./MainDebitList.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"card\"},[_c('div',{staticClass:\"card-header\"},[_c('h3',{staticClass:\"card-title\"},[_vm._v(_vm._s(_vm.$t('firefly.expense_accounts')))])]),_vm._v(\" \"),(_vm.loading && !_vm.error)?_c('div',{staticClass:\"card-body\"},[_vm._m(0)]):_vm._e(),_vm._v(\" \"),(_vm.error)?_c('div',{staticClass:\"card-body\"},[_vm._m(1)]):_vm._e(),_vm._v(\" \"),(!_vm.loading && !_vm.error)?_c('div',{staticClass:\"card-body table-responsive p-0\"},[_c('table',{staticClass:\"table table-sm\"},[_c('tbody',_vm._l((_vm.expenses),function(entry){return _c('tr',[_c('td',{staticStyle:{\"width\":\"20%\"}},[_c('a',{attrs:{\"href\":'./accounts/show/' + entry.id}},[_vm._v(_vm._s(entry.name))])]),_vm._v(\" \"),_c('td',{staticClass:\"align-middle\"},[(entry.pct > 0)?_c('div',{staticClass:\"progress\"},[_c('div',{staticClass:\"progress-bar progress-bar-striped bg-danger\",style:({ width: entry.pct + '%'}),attrs:{\"aria-valuenow\":entry.pct,\"aria-valuemax\":\"100\",\"aria-valuemin\":\"0\",\"role\":\"progressbar\"}},[(entry.pct > 20)?_c('span',[_vm._v(\"\\n \"+_vm._s(Intl.NumberFormat(_vm.locale, {style: 'currency', currency: entry.currency_code}).format(entry.difference_float))+\"\\n \")]):_vm._e()]),_vm._v(\" \"),(entry.pct <= 20)?_c('span',[_vm._v(\" \\n \"+_vm._s(Intl.NumberFormat(_vm.locale, {style: 'currency', currency: entry.currency_code}).format(entry.difference_float))+\"\\n \")]):_vm._e()]):_vm._e()])])}),0)])]):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"card-footer\"},[_c('a',{staticClass:\"btn btn-default button-sm\",attrs:{\"href\":\"./transactions/withdrawal\"}},[_c('i',{staticClass:\"far fa-money-bill-alt\"}),_vm._v(\" \"+_vm._s(_vm.$t('firefly.go_to_withdrawals')))])])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"text-center\"},[_c('i',{staticClass:\"fas fa-spinner fa-spin\"})])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"text-center\"},[_c('i',{staticClass:\"fas fa-exclamation-triangle text-danger\"})])}]\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MainPiggyList.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MainPiggyList.vue?vue&type=script&lang=js&\"","\n\n\n\n\n\n\n","import { render, staticRenderFns } from \"./MainPiggyList.vue?vue&type=template&id=c17c9a5a&scoped=true&\"\nimport script from \"./MainPiggyList.vue?vue&type=script&lang=js&\"\nexport * from \"./MainPiggyList.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"c17c9a5a\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"card\"},[_c('div',{staticClass:\"card-header\"},[_c('h3',{staticClass:\"card-title\"},[_vm._v(_vm._s(_vm.$t('firefly.piggy_banks')))])]),_vm._v(\" \"),(_vm.loading && !_vm.error)?_c('div',{staticClass:\"card-body\"},[_vm._m(0)]):_vm._e(),_vm._v(\" \"),(_vm.error)?_c('div',{staticClass:\"card-body\"},[_vm._m(1)]):_vm._e(),_vm._v(\" \"),(!_vm.loading && !_vm.error)?_c('div',{staticClass:\"card-body table-responsive p-0\"},[_c('table',{staticClass:\"table table-striped\"},[_c('caption',{staticStyle:{\"display\":\"none\"}},[_vm._v(_vm._s(_vm.$t('firefly.piggy_banks')))]),_vm._v(\" \"),_c('thead',[_c('tr',[_c('th',{staticStyle:{\"width\":\"35%\"},attrs:{\"scope\":\"col\"}},[_vm._v(_vm._s(_vm.$t('list.piggy_bank')))]),_vm._v(\" \"),_c('th',{staticStyle:{\"width\":\"40%\"},attrs:{\"scope\":\"col\"}},[_vm._v(_vm._s(_vm.$t('list.percentage'))+\" \"),_c('small',[_vm._v(\"/ \"+_vm._s(_vm.$t('list.amount')))])])])]),_vm._v(\" \"),_c('tbody',_vm._l((this.piggy_banks),function(piggy){return _c('tr',[_c('td',[_c('a',{attrs:{\"href\":'./piggy-banks/show/' + piggy.id,\"title\":piggy.attributes.name}},[_vm._v(_vm._s(piggy.attributes.name))]),_vm._v(\" \"),(piggy.attributes.object_group_title)?_c('small',{staticClass:\"text-muted\"},[_c('br'),_vm._v(\"\\n \"+_vm._s(piggy.attributes.object_group_title)+\"\\n \")]):_vm._e()]),_vm._v(\" \"),_c('td',[_c('div',{staticClass:\"progress-group\"},[_c('div',{staticClass:\"progress progress-sm\"},[(piggy.attributes.pct < 100)?_c('div',{staticClass:\"progress-bar progress-bar-striped primary\",style:({'width': piggy.attributes.pct + '%'})}):_vm._e(),_vm._v(\" \"),(100 === piggy.attributes.pct)?_c('div',{staticClass:\"progress-bar progress-bar-striped bg-success\",style:({'width': piggy.attributes.pct + '%'})}):_vm._e()])]),_vm._v(\" \"),_c('span',{staticClass:\"text-success\"},[_vm._v(\"\\n \"+_vm._s(Intl.NumberFormat(_vm.locale, {style: 'currency', currency: piggy.attributes.currency_code}).format(piggy.attributes.current_amount))+\"\\n \")]),_vm._v(\"\\n of\\n \"),_c('span',{staticClass:\"text-success\"},[_vm._v(_vm._s(Intl.NumberFormat(_vm.locale, {\n style: 'currency',\n currency: piggy.attributes.currency_code\n }).format(piggy.attributes.target_amount)))])])])}),0)])]):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"card-footer\"},[_c('a',{staticClass:\"btn btn-default button-sm\",attrs:{\"href\":\"./piggy-banks\"}},[_c('i',{staticClass:\"far fa-money-bill-alt\"}),_vm._v(\" \"+_vm._s(_vm.$t('firefly.go_to_piggies')))])])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"text-center\"},[_c('i',{staticClass:\"fas fa-spinner fa-spin\"})])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"text-center\"},[_c('i',{staticClass:\"fas fa-exclamation-triangle text-danger\"})])}]\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TransactionListLarge.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TransactionListLarge.vue?vue&type=script&lang=js&\"","\n\n\n\n\n\n\n","import { render, staticRenderFns } from \"./TransactionListLarge.vue?vue&type=template&id=6e420753&scoped=true&\"\nimport script from \"./TransactionListLarge.vue?vue&type=script&lang=js&\"\nexport * from \"./TransactionListLarge.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6e420753\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('table',{staticClass:\"table table-striped table-sm\"},[_c('caption',{staticStyle:{\"display\":\"none\"}},[_vm._v(_vm._s(_vm.$t('firefly.transaction_table_description')))]),_vm._v(\" \"),_c('thead',[_c('tr',[_c('th',{staticClass:\"text-left\",attrs:{\"scope\":\"col\"}},[_vm._v(_vm._s(_vm.$t('firefly.description')))]),_vm._v(\" \"),_c('th',{attrs:{\"scope\":\"col\"}},[_vm._v(_vm._s(_vm.$t('firefly.opposing_account')))]),_vm._v(\" \"),_c('th',{staticClass:\"text-right\",attrs:{\"scope\":\"col\"}},[_vm._v(_vm._s(_vm.$t('firefly.amount')))]),_vm._v(\" \"),_c('th',{attrs:{\"scope\":\"col\"}},[_vm._v(_vm._s(_vm.$t('firefly.category')))]),_vm._v(\" \"),_c('th',{attrs:{\"scope\":\"col\"}},[_vm._v(_vm._s(_vm.$t('firefly.budget')))])])]),_vm._v(\" \"),_c('tbody',_vm._l((this.transactions),function(transaction){return _c('tr',[_c('td',[_c('a',{attrs:{\"href\":'transactions/show/' + transaction.id,\"title\":transaction.date}},[(transaction.attributes.transactions.length > 1)?_c('span',[_vm._v(_vm._s(transaction.attributes.group_title))]):_vm._e(),_vm._v(\" \"),(1===transaction.attributes.transactions.length)?_c('span',[_vm._v(_vm._s(transaction.attributes.transactions[0].description))]):_vm._e()])]),_vm._v(\" \"),_c('td',_vm._l((transaction.attributes.transactions),function(tr){return _c('span',[('withdrawal' === tr.type)?_c('a',{attrs:{\"href\":'accounts/show/' + tr.destination_id}},[_vm._v(_vm._s(tr.destination_name))]):_vm._e(),_vm._v(\" \"),('deposit' === tr.type)?_c('a',{attrs:{\"href\":'accounts/show/' + tr.source_id}},[_vm._v(_vm._s(tr.source_name))]):_vm._e(),_vm._v(\" \"),('transfer' === tr.type && parseInt(tr.source_id) === _vm.account_id)?_c('a',{attrs:{\"href\":'accounts/show/' + tr.destination_id}},[_vm._v(_vm._s(tr.destination_name))]):_vm._e(),_vm._v(\" \"),('transfer' === tr.type && parseInt(tr.destination_id) === _vm.account_id)?_c('a',{attrs:{\"href\":'accounts/show/' + tr.source_id}},[_vm._v(_vm._s(tr.source_name))]):_vm._e(),_vm._v(\" \"),_c('br')])}),0),_vm._v(\" \"),_c('td',{staticStyle:{\"text-align\":\"right\"}},_vm._l((transaction.attributes.transactions),function(tr){return _c('span',[('withdrawal' === tr.type)?_c('span',{staticClass:\"text-danger\"},[_vm._v(\"\\n \"+_vm._s(Intl.NumberFormat(_vm.locale, {style: 'currency', currency: tr.currency_code}).format(tr.amount * -1))),_c('br')]):_vm._e(),_vm._v(\" \"),('deposit' === tr.type)?_c('span',{staticClass:\"text-success\"},[_vm._v(\"\\n \"+_vm._s(Intl.NumberFormat(_vm.locale, {style: 'currency', currency: tr.currency_code}).format(tr.amount))),_c('br')]):_vm._e(),_vm._v(\" \"),('transfer' === tr.type && parseInt(tr.source_id) === _vm.account_id)?_c('span',{staticClass:\"text-info\"},[_vm._v(\"\\n \"+_vm._s(Intl.NumberFormat(_vm.locale, {style: 'currency', currency: tr.currency_code}).format(tr.amount * -1))),_c('br')]):_vm._e(),_vm._v(\" \"),('transfer' === tr.type && parseInt(tr.destination_id) === _vm.account_id)?_c('span',{staticClass:\"text-info\"},[_vm._v(\"\\n \"+_vm._s(Intl.NumberFormat(_vm.locale, {style: 'currency', currency: tr.currency_code}).format(tr.amount))),_c('br')]):_vm._e()])}),0),_vm._v(\" \"),_c('td',_vm._l((transaction.attributes.transactions),function(tr){return _c('span',[(0!==tr.category_id)?_c('a',{attrs:{\"href\":'categories/show/' + tr.category_id}},[_vm._v(_vm._s(tr.category_name))]):_vm._e(),_c('br')])}),0),_vm._v(\" \"),_c('td',_vm._l((transaction.attributes.transactions),function(tr){return _c('span',[(0!==tr.budget_id)?_c('a',{attrs:{\"href\":'budgets/show/' + tr.budget_id}},[_vm._v(_vm._s(tr.budget_name))]):_vm._e(),_c('br')])}),0)])}),0)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TransactionListMedium.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TransactionListMedium.vue?vue&type=script&lang=js&\"","\n\n\n\n\n\n\n","import { render, staticRenderFns } from \"./TransactionListMedium.vue?vue&type=template&id=0d4f7042&scoped=true&\"\nimport script from \"./TransactionListMedium.vue?vue&type=script&lang=js&\"\nexport * from \"./TransactionListMedium.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0d4f7042\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('table',{staticClass:\"table table-striped table-sm\"},[_c('caption',{staticStyle:{\"display\":\"none\"}},[_vm._v(_vm._s(_vm.$t('firefly.transaction_table_description')))]),_vm._v(\" \"),_c('thead',[_c('tr',[_c('th',{staticClass:\"text-left\",attrs:{\"scope\":\"col\"}},[_vm._v(_vm._s(_vm.$t('firefly.description')))]),_vm._v(\" \"),_c('th',{attrs:{\"scope\":\"col\"}},[_vm._v(_vm._s(_vm.$t('firefly.opposing_account')))]),_vm._v(\" \"),_c('th',{staticClass:\"text-right\",attrs:{\"scope\":\"col\"}},[_vm._v(_vm._s(_vm.$t('firefly.amount')))])])]),_vm._v(\" \"),_c('tbody',_vm._l((this.transactions),function(transaction){return _c('tr',[_c('td',[_c('a',{attrs:{\"href\":'transactions/show/' + transaction.id,\"title\":transaction.date}},[(transaction.attributes.transactions.length > 1)?_c('span',[_vm._v(_vm._s(transaction.attributes.group_title))]):_vm._e(),_vm._v(\" \"),(1===transaction.attributes.transactions.length)?_c('span',[_vm._v(_vm._s(transaction.attributes.transactions[0].description))]):_vm._e()])]),_vm._v(\" \"),_c('td',_vm._l((transaction.attributes.transactions),function(tr){return _c('span',[('withdrawal' === tr.type)?_c('a',{attrs:{\"href\":'accounts/show/' + tr.destination_id}},[_vm._v(_vm._s(tr.destination_name))]):_vm._e(),_vm._v(\" \"),('deposit' === tr.type)?_c('a',{attrs:{\"href\":'accounts/show/' + tr.source_id}},[_vm._v(_vm._s(tr.source_name))]):_vm._e(),_vm._v(\" \"),('transfer' === tr.type && parseInt(tr.source_id) === _vm.account_id)?_c('a',{attrs:{\"href\":'accounts/show/' + tr.destination_id}},[_vm._v(_vm._s(tr.destination_name))]):_vm._e(),_vm._v(\" \"),('transfer' === tr.type && parseInt(tr.destination_id) === _vm.account_id)?_c('a',{attrs:{\"href\":'accounts/show/' + tr.source_id}},[_vm._v(_vm._s(tr.source_name))]):_vm._e(),_vm._v(\" \"),_c('br')])}),0),_vm._v(\" \"),_c('td',{staticStyle:{\"text-align\":\"right\"}},_vm._l((transaction.attributes.transactions),function(tr){return _c('span',[('withdrawal' === tr.type)?_c('span',{staticClass:\"text-danger\"},[_vm._v(\"\\n \"+_vm._s(Intl.NumberFormat(_vm.locale, {style: 'currency', currency: tr.currency_code}).format(tr.amount * -1))),_c('br')]):_vm._e(),_vm._v(\" \"),('deposit' === tr.type)?_c('span',{staticClass:\"text-success\"},[_vm._v(\"\\n \"+_vm._s(Intl.NumberFormat(_vm.locale, {style: 'currency', currency: tr.currency_code}).format(tr.amount))),_c('br')]):_vm._e(),_vm._v(\" \"),('transfer' === tr.type && parseInt(tr.source_id) === _vm.account_id)?_c('span',{staticClass:\"text-info\"},[_vm._v(\"\\n \"+_vm._s(Intl.NumberFormat(_vm.locale, {style: 'currency', currency: tr.currency_code}).format(tr.amount * -1))),_c('br')]):_vm._e(),_vm._v(\" \"),('transfer' === tr.type && parseInt(tr.destination_id) === _vm.account_id)?_c('span',{staticClass:\"text-info\"},[_vm._v(\"\\n \"+_vm._s(Intl.NumberFormat(_vm.locale, {style: 'currency', currency: tr.currency_code}).format(tr.amount))),_c('br')]):_vm._e()])}),0)])}),0)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TransactionListSmall.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TransactionListSmall.vue?vue&type=script&lang=js&\"","\n\n\n\n\n\n\n","import { render, staticRenderFns } from \"./TransactionListSmall.vue?vue&type=template&id=4cd7a656&scoped=true&\"\nimport script from \"./TransactionListSmall.vue?vue&type=script&lang=js&\"\nexport * from \"./TransactionListSmall.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4cd7a656\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('table',{staticClass:\"table table-striped table-sm\"},[_c('caption',{staticStyle:{\"display\":\"none\"}},[_vm._v(_vm._s(_vm.$t('firefly.transaction_table_description')))]),_vm._v(\" \"),_c('thead',[_c('tr',[_c('th',{staticClass:\"text-left\",attrs:{\"scope\":\"col\"}},[_vm._v(_vm._s(_vm.$t('firefly.description')))]),_vm._v(\" \"),_c('th',{staticClass:\"text-right\",attrs:{\"scope\":\"col\"}},[_vm._v(_vm._s(_vm.$t('firefly.amount')))])])]),_vm._v(\" \"),_c('tbody',_vm._l((this.transactions),function(transaction){return _c('tr',[_c('td',[_c('a',{attrs:{\"href\":'transactions/show/' + transaction.id,\"title\":new Intl.DateTimeFormat(_vm.locale, { year: 'numeric', month: 'long', day: 'numeric' }).format(new Date(transaction.attributes.transactions[0].date))}},[(transaction.attributes.transactions.length > 1)?_c('span',[_vm._v(_vm._s(transaction.attributes.group_title))]):_vm._e(),_vm._v(\" \"),(1===transaction.attributes.transactions.length)?_c('span',[_vm._v(_vm._s(transaction.attributes.transactions[0].description))]):_vm._e()])]),_vm._v(\" \"),_c('td',{staticStyle:{\"text-align\":\"right\"}},_vm._l((transaction.attributes.transactions),function(tr){return _c('span',[('withdrawal' === tr.type)?_c('span',{staticClass:\"text-danger\"},[_vm._v(\"\\n \"+_vm._s(Intl.NumberFormat(_vm.locale, {style: 'currency', currency: tr.currency_code}).format(tr.amount * -1))),_c('br')]):_vm._e(),_vm._v(\" \"),('deposit' === tr.type)?_c('span',{staticClass:\"text-success\"},[_vm._v(\"\\n \"+_vm._s(Intl.NumberFormat(_vm.locale, {style: 'currency', currency: tr.currency_code}).format(tr.amount))),_c('br')]):_vm._e(),_vm._v(\" \"),('transfer' === tr.type && parseInt(tr.source_id) === _vm.account_id)?_c('span',{staticClass:\"text-info\"},[_vm._v(\"\\n \"+_vm._s(Intl.NumberFormat(_vm.locale, {style: 'currency', currency: tr.currency_code}).format(tr.amount * -1))),_c('br')]):_vm._e(),_vm._v(\" \"),('transfer' === tr.type && parseInt(tr.destination_id) === _vm.account_id)?_c('span',{staticClass:\"text-info\"},[_vm._v(\"\\n \"+_vm._s(Intl.NumberFormat(_vm.locale, {style: 'currency', currency: tr.currency_code}).format(tr.amount))),_c('br')]):_vm._e()])}),0)])}),0)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Calendar.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Calendar.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Calendar.vue?vue&type=template&id=51abf689&scoped=true&\"\nimport script from \"./Calendar.vue?vue&type=script&lang=js&\"\nexport * from \"./Calendar.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Calendar.vue?vue&type=style&index=0&id=51abf689&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"51abf689\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col\"},[_vm._v(\"Start\")]),_vm._v(\" \"),_c('div',{staticClass:\"col-8\"},[_vm._v(_vm._s(new Intl.DateTimeFormat(_vm.locale, {year: 'numeric', month: 'long', day: 'numeric'}).format(_vm.range.start)))])]),_vm._v(\" \"),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col\"},[_vm._v(\"End\")]),_vm._v(\" \"),_c('div',{staticClass:\"col-8\"},[_vm._v(_vm._s(new Intl.DateTimeFormat(_vm.locale, {year: 'numeric', month: 'long', day: 'numeric'}).format(_vm.range.end)))])]),_vm._v(\" \"),_c('date-picker',{attrs:{\"rows\":2,\"is-range\":\"\",\"mode\":\"date\"},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar inputValue = ref.inputValue;\nvar inputEvents = ref.inputEvents;\nvar isDragging = ref.isDragging;\nvar togglePopover = ref.togglePopover;\nreturn [_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col\"},[_c('div',{staticClass:\"btn-group btn-group-sm d-flex\"},[_c('button',{staticClass:\"btn btn-secondary btn-sm\",attrs:{\"title\":_vm.$t('firefly.custom_period')},on:{\"click\":function($event){return togglePopover({ placement: 'auto-start', positionFixed: true })}}},[_c('i',{staticClass:\"fas fa-calendar-alt\"})]),_vm._v(\" \"),_c('button',{staticClass:\"btn btn-secondary\",attrs:{\"title\":_vm.$t('firefly.reset_to_current')},on:{\"click\":_vm.resetDate}},[_c('i',{staticClass:\"fas fa-history\"})]),_vm._v(\" \"),_c('button',{staticClass:\"btn btn-secondary dropdown-toggle\",attrs:{\"id\":\"dropdownMenuButton\",\"title\":_vm.$t('firefly.select_period'),\"aria-expanded\":\"false\",\"aria-haspopup\":\"true\",\"data-toggle\":\"dropdown\",\"type\":\"button\"}},[_c('i',{staticClass:\"fas fa-list\"})]),_vm._v(\" \"),_c('div',{staticClass:\"dropdown-menu\",attrs:{\"aria-labelledby\":\"dropdownMenuButton\"}},_vm._l((_vm.periods),function(period){return _c('a',{staticClass:\"dropdown-item\",attrs:{\"href\":\"#\"},on:{\"click\":function($event){return _vm.customDate(period.start, period.end)}}},[_vm._v(_vm._s(period.title))])}),0)]),_vm._v(\" \"),_c('input',_vm._g({class:isDragging ? 'text-gray-600' : 'text-gray-900',attrs:{\"type\":\"hidden\"},domProps:{\"value\":inputValue.start}},inputEvents.start)),_vm._v(\" \"),_c('input',_vm._g({class:isDragging ? 'text-gray-600' : 'text-gray-900',attrs:{\"type\":\"hidden\"},domProps:{\"value\":inputValue.end}},inputEvents.end))])])]}}]),model:{value:(_vm.range),callback:function ($$v) {_vm.range=$$v},expression:\"range\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MainCategoryList.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MainCategoryList.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./MainCategoryList.vue?vue&type=template&id=2a51418c&scoped=true&\"\nimport script from \"./MainCategoryList.vue?vue&type=script&lang=js&\"\nexport * from \"./MainCategoryList.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2a51418c\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"card\"},[_c('div',{staticClass:\"card-header\"},[_c('h3',{staticClass:\"card-title\"},[_vm._v(_vm._s(_vm.$t('firefly.categories')))])]),_vm._v(\" \"),(_vm.loading && !_vm.error)?_c('div',{staticClass:\"card-body\"},[_vm._m(0)]):_vm._e(),_vm._v(\" \"),(_vm.error)?_c('div',{staticClass:\"card-body\"},[_vm._m(1)]):_vm._e(),_vm._v(\" \"),(!_vm.loading && !_vm.error)?_c('div',{staticClass:\"card-body table-responsive p-0\"},[_c('table',{staticClass:\"table table-sm\"},[_c('tbody',_vm._l((_vm.sortedList),function(category){return _c('tr',[_c('td',{staticStyle:{\"width\":\"20%\"}},[_c('a',{attrs:{\"href\":'./categories/show/' + category.id}},[_vm._v(_vm._s(category.name))])]),_vm._v(\" \"),_c('td',{staticClass:\"align-middle\"},[(category.spentPct > 0)?_c('div',{staticClass:\"progress\"},[_c('div',{staticClass:\"progress-bar progress-bar-striped bg-danger\",style:({ width: category.spentPct + '%'}),attrs:{\"aria-valuenow\":category.spentPct,\"aria-valuemax\":\"100\",\"aria-valuemin\":\"0\",\"role\":\"progressbar\"}},[(category.spentPct > 20)?_c('span',[_vm._v(\"\\n \"+_vm._s(Intl.NumberFormat(_vm.locale, {style: 'currency', currency: category.currency_code}).format(category.spent))+\"\\n \")]):_vm._e()]),_vm._v(\" \"),(category.spentPct <= 20)?_c('span',[_vm._v(\" \\n \"+_vm._s(Intl.NumberFormat(_vm.locale, {style: 'currency', currency: category.currency_code}).format(category.spent))+\"\\n \")]):_vm._e()]):_vm._e(),_vm._v(\" \"),(category.earnedPct > 0)?_c('div',{staticClass:\"progress justify-content-end\",attrs:{\"title\":\"hello2\"}},[(category.earnedPct <= 20)?_c('span',[_vm._v(\"\\n \"+_vm._s(Intl.NumberFormat(_vm.locale, {style: 'currency', currency: category.currency_code}).format(category.earned))+\"\\n  \")]):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"progress-bar progress-bar-striped bg-success\",style:({ width: category.earnedPct + '%'}),attrs:{\"aria-valuenow\":category.earnedPct,\"aria-valuemax\":\"100\",\"aria-valuemin\":\"0\",\"role\":\"progressbar\",\"title\":\"hello\"}},[(category.earnedPct > 20)?_c('span',[_vm._v(\"\\n \"+_vm._s(Intl.NumberFormat(_vm.locale, {style: 'currency', currency: category.currency_code}).format(category.earned))+\"\\n \")]):_vm._e()])]):_vm._e()])])}),0)])]):_vm._e()])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"text-center\"},[_c('i',{staticClass:\"fas fa-spinner fa-spin\"})])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"text-center\"},[_c('i',{staticClass:\"fas fa-exclamation-triangle text-danger\"})])}]\n\nexport { render, staticRenderFns }","/*\n * dashboard.js\n * Copyright (c) 2020 james@firefly-iii.org\n *\n * This file is part of Firefly III (https://github.com/firefly-iii).\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n */\n\nimport Dashboard from \"../components/dashboard/Dashboard\";\nimport TopBoxes from \"../components/dashboard/TopBoxes\";\nimport MainAccount from \"../components/dashboard/MainAccount\";\nimport MainAccountList from \"../components/dashboard/MainAccountList\";\nimport MainBillsList from \"../components/dashboard/MainBillsList\";\nimport MainBudgetList from \"../components/dashboard/MainBudgetList\";\nimport MainCreditList from \"../components/dashboard/MainCreditList\";\nimport MainDebitList from \"../components/dashboard/MainDebitList\";\nimport MainPiggyList from \"../components/dashboard/MainPiggyList\";\nimport TransactionListLarge from \"../components/transactions/TransactionListLarge\";\nimport TransactionListMedium from \"../components/transactions/TransactionListMedium\";\nimport TransactionListSmall from \"../components/transactions/TransactionListSmall\";\nimport DatePicker from 'v-calendar/lib/components/date-picker.umd'\nimport Calendar from \"../components/dashboard/Calendar\";\nimport MainCategoryList from \"../components/dashboard/MainCategoryList\";\nimport Vue from \"vue\";\nimport Vuex from 'vuex'\nimport store from '../components/store';\n\n/**\n * First we will load Axios via bootstrap.js\n * jquery and bootstrap-sass preloaded in app.js\n * vue, uiv and vuei18n are in app_vue.js\n */\n\nrequire('../bootstrap');\nrequire('chart.js');\n\nVue.component('transaction-list-large', TransactionListLarge);\nVue.component('transaction-list-medium', TransactionListMedium);\nVue.component('transaction-list-small', TransactionListSmall);\n\n// components as an example\nVue.component('date-picker', DatePicker)\nVue.component('dashboard', Dashboard);\nVue.component('top-boxes', TopBoxes);\nVue.component('main-account', MainAccount);\nVue.component('main-account-list', MainAccountList);\nVue.component('main-bills-list', MainBillsList);\nVue.component('main-budget-list', MainBudgetList);\nVue.component('main-category-list', MainCategoryList);\nVue.component('main-debit-list', MainDebitList);\nVue.component('main-credit-list', MainCreditList);\nVue.component('main-piggy-list', MainPiggyList);\n\nVue.use(Vuex);\n\nlet i18n = require('../i18n');\nlet props = {};\n\nnew Vue({\n i18n,\n store,\n el: \"#dashboard\",\n render: (createElement) => {\n return createElement(Dashboard, {props: props});\n },\n beforeCreate() {\n this.$store.commit('initialiseStore');\n this.$store.dispatch('updateCurrencyPreference');\n this.$store.dispatch('dashboard/index/initialiseStore');\n },\n });\nnew Vue({\n i18n,\n store,\n el: \"#calendar\",\n render: (createElement) => {\n return createElement(Calendar, {props: props});\n },\n // TODO init store as well?\n });"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///./node_modules/moment/locale sync ^\\.\\/.*$","webpack:///./src/components/dashboard/Dashboard.vue?c016","webpack:///./src/components/dashboard/Dashboard.vue?e9df","webpack:///src/components/dashboard/Dashboard.vue","webpack:///./src/components/dashboard/Dashboard.vue","webpack:///src/components/dashboard/TopBoxes.vue","webpack:///./src/components/dashboard/TopBoxes.vue?c977","webpack:///./src/components/dashboard/TopBoxes.vue","webpack:///./src/components/dashboard/TopBoxes.vue?83ff","webpack:///./src/components/charts/DataConverter.vue?d682","webpack:///src/components/charts/DataConverter.vue","webpack:///./src/components/charts/DataConverter.vue","webpack:///./src/components/charts/DefaultLineOptions.vue?36d0","webpack:///src/components/charts/DefaultLineOptions.vue","webpack:///./src/components/charts/DefaultLineOptions.vue","webpack:///./src/components/charts/DefaultLineOptions.vue?6f90","webpack:///src/components/dashboard/MainAccountChart.vue","webpack:///./src/components/dashboard/MainAccountChart.vue?f54b","webpack:///./src/components/dashboard/MainAccountChart.vue","webpack:///src/components/dashboard/MainAccount.vue","webpack:///./src/components/dashboard/MainAccount.vue?1e69","webpack:///./src/components/dashboard/MainAccount.vue","webpack:///./src/components/dashboard/MainAccount.vue?0800","webpack:///src/components/dashboard/MainAccountList.vue","webpack:///./src/components/dashboard/MainAccountList.vue?889b","webpack:///./src/components/dashboard/MainAccountList.vue","webpack:///./src/components/dashboard/MainAccountList.vue?1697","webpack:///src/components/dashboard/MainBillsList.vue","webpack:///./src/components/dashboard/MainBillsList.vue?536e","webpack:///./src/components/dashboard/MainBillsList.vue","webpack:///./src/components/dashboard/MainBillsList.vue?17cf","webpack:///./src/components/dashboard/BudgetLimitRow.vue?c9a7","webpack:///src/components/dashboard/BudgetLimitRow.vue","webpack:///./src/components/dashboard/BudgetLimitRow.vue","webpack:///./src/components/dashboard/BudgetLimitRow.vue?a956","webpack:///./src/components/dashboard/BudgetRow.vue?09f9","webpack:///src/components/dashboard/BudgetRow.vue","webpack:///./src/components/dashboard/BudgetListGroup.vue?7954","webpack:///src/components/dashboard/BudgetListGroup.vue","webpack:///./src/components/dashboard/BudgetRow.vue","webpack:///./src/components/dashboard/BudgetRow.vue?d9e9","webpack:///./src/components/dashboard/BudgetListGroup.vue","webpack:///./src/components/dashboard/BudgetListGroup.vue?f3cb","webpack:///src/components/dashboard/MainBudgetList.vue","webpack:///./src/components/dashboard/MainBudgetList.vue?9843","webpack:///./src/components/dashboard/MainBudgetList.vue","webpack:///./src/components/dashboard/MainBudgetList.vue?52c1","webpack:///src/components/dashboard/MainCreditList.vue","webpack:///./src/components/dashboard/MainCreditList.vue?53af","webpack:///./src/components/dashboard/MainCreditList.vue","webpack:///./src/components/dashboard/MainCreditList.vue?b00d","webpack:///src/components/dashboard/MainDebitList.vue","webpack:///./src/components/dashboard/MainDebitList.vue?587b","webpack:///./src/components/dashboard/MainDebitList.vue","webpack:///./src/components/dashboard/MainDebitList.vue?f552","webpack:///./src/components/dashboard/MainPiggyList.vue?7bae","webpack:///src/components/dashboard/MainPiggyList.vue","webpack:///./src/components/dashboard/MainPiggyList.vue","webpack:///./src/components/dashboard/MainPiggyList.vue?60b5","webpack:///./src/components/transactions/TransactionListLarge.vue?3500","webpack:///src/components/transactions/TransactionListLarge.vue","webpack:///./src/components/transactions/TransactionListLarge.vue","webpack:///./src/components/transactions/TransactionListLarge.vue?d789","webpack:///./src/components/transactions/TransactionListMedium.vue?d4b8","webpack:///src/components/transactions/TransactionListMedium.vue","webpack:///./src/components/transactions/TransactionListMedium.vue","webpack:///./src/components/transactions/TransactionListMedium.vue?4497","webpack:///./src/components/transactions/TransactionListSmall.vue?5a3e","webpack:///src/components/transactions/TransactionListSmall.vue","webpack:///./src/components/transactions/TransactionListSmall.vue","webpack:///./src/components/transactions/TransactionListSmall.vue?46eb","webpack:///src/components/dashboard/MainCategoryList.vue","webpack:///./src/components/dashboard/MainCategoryList.vue?9f14","webpack:///./src/components/dashboard/MainCategoryList.vue","webpack:///./src/components/dashboard/MainCategoryList.vue?c312","webpack:///./src/pages/dashboard.js"],"names":["map","webpackContext","req","id","webpackContextResolve","__webpack_require__","o","e","Error","code","keys","Object","resolve","module","exports","name","_vm","this","_h","$createElement","_c","_self","_v","staticClass","props","data","summary","balances","billsPaid","billsUnpaid","leftToSpend","netWorth","loading","error","ready","computed","start","end","prefCurrencyBalances","filterOnCurrency","notPrefCurrencyBalances","filterOnNotCurrency","prefBillsUnpaid","notPrefBillsUnpaid","prefLeftToSpend","notPrefLeftToSpend","prefNetWorth","notPrefNetWorth","currencyCode","$store","getters","currencyId","watch","datesReady","value","prepareComponent","created","methods","array","hasOwnProperty","key","currency_id","ret","push","length","axios","get","startStr","endStr","buildComponent","getBalanceEntries","getBillsEntries","getLeftToSpend","getNetWorth","hasCurrency","getKeyedEntries","expected","substr","result","_m","_e","_s","$t","_l","balance","attrs","sub_title","value_parsed","index","bill","left","nw","staticStyle","dataSet","newDataSet","locale","localStorage","local","convertChart","count","labels","datasets","getLabels","getDataSets","colorizeBarData","fillColors","colourSet","i","setKey","dataset","fill","backgroundColor","borderColor","colorizeLineData","convertLabelsToDate","labelKey","Intl","DateTimeFormat","format","unixTimeZero","firstSet","entries","entryLabel","oldSet","newSet","label","type","currency_symbol","currency_code","yAxisID","formatLabel","sections","words","str","String","split","temp","forEach","item","concat","maxwidth","getDefaultOptions","self","legend","display","animation","duration","responsive","maintainAspectRatio","elements","line","cubicInterpolationMode","scales","xAxes","yAxes","ticks","callback","NumberFormat","beginAtZero","tooltips","mode","callbacks","tooltipItem","datasetIndex","nrString","extends","mixins","reactiveProp","mounted","renderChart","chartData","options","components","dataCollection","chartOptions","DefaultLineOptions","initialiseChart","url","accounts","initialiseList","loadAccounts","accountIds","test","loadSingleAccount","accountId","loadTransactions","account","class","title","parseFloat","current_balance","style","currency","transactions","bills","initialiseBills","renderPaidDate","obj","transaction_group_id","loadBills","attributes","pay_dates","active","amount_min","amount_max","object_group_title","paidDate","domProps","payDate","paid_dates","year","month","day","Date","budgetLimit","default","budget","budget_id","budget_name","pctGreen","amount","spent","total","pctOrange","pctRed","budgetLimits","Array","budgets","budgetList","daily","weekly","monthly","quarterly","half_year","yearly","other","rawBudgets","getBudgets","income","max","getIncome","parseIncome","mainKey","parseInt","difference_float","current","pct","entry","width","expenses","getExpenses","parseExpenses","piggy_banks","loadPiggyBanks","piggy","left_to_save","sort","a","b","current_amount","target_amount","account_id","Number","transaction","date","group_title","description","tr","destination_id","destination_name","source_id","source_name","category_id","category_name","categories","sortedList","earned","getCategories","category","spentPct","earnedPct","require","Vue","component","TransactionListLarge","TransactionListMedium","TransactionListSmall","Dashboard","TopBoxes","MainAccount","MainAccountList","MainBillsList","MainBudgetList","MainCategoryList","MainDebitList","MainCreditList","MainPiggyList","use","Vuex","i18n","store","el","render","createElement","beforeCreate","commit","dispatch","Calendar"],"mappings":"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","file":"/public/js/dashboard.js","sourcesContent":["var map = {\n\t\"./af\": 89,\n\t\"./af.js\": 89,\n\t\"./ar\": 90,\n\t\"./ar-dz\": 91,\n\t\"./ar-dz.js\": 91,\n\t\"./ar-kw\": 92,\n\t\"./ar-kw.js\": 92,\n\t\"./ar-ly\": 93,\n\t\"./ar-ly.js\": 93,\n\t\"./ar-ma\": 94,\n\t\"./ar-ma.js\": 94,\n\t\"./ar-sa\": 95,\n\t\"./ar-sa.js\": 95,\n\t\"./ar-tn\": 96,\n\t\"./ar-tn.js\": 96,\n\t\"./ar.js\": 90,\n\t\"./az\": 97,\n\t\"./az.js\": 97,\n\t\"./be\": 98,\n\t\"./be.js\": 98,\n\t\"./bg\": 99,\n\t\"./bg.js\": 99,\n\t\"./bm\": 100,\n\t\"./bm.js\": 100,\n\t\"./bn\": 101,\n\t\"./bn-bd\": 102,\n\t\"./bn-bd.js\": 102,\n\t\"./bn.js\": 101,\n\t\"./bo\": 103,\n\t\"./bo.js\": 103,\n\t\"./br\": 104,\n\t\"./br.js\": 104,\n\t\"./bs\": 105,\n\t\"./bs.js\": 105,\n\t\"./ca\": 106,\n\t\"./ca.js\": 106,\n\t\"./cs\": 107,\n\t\"./cs.js\": 107,\n\t\"./cv\": 108,\n\t\"./cv.js\": 108,\n\t\"./cy\": 109,\n\t\"./cy.js\": 109,\n\t\"./da\": 110,\n\t\"./da.js\": 110,\n\t\"./de\": 111,\n\t\"./de-at\": 112,\n\t\"./de-at.js\": 112,\n\t\"./de-ch\": 113,\n\t\"./de-ch.js\": 113,\n\t\"./de.js\": 111,\n\t\"./dv\": 114,\n\t\"./dv.js\": 114,\n\t\"./el\": 115,\n\t\"./el.js\": 115,\n\t\"./en-au\": 116,\n\t\"./en-au.js\": 116,\n\t\"./en-ca\": 117,\n\t\"./en-ca.js\": 117,\n\t\"./en-gb\": 118,\n\t\"./en-gb.js\": 118,\n\t\"./en-ie\": 119,\n\t\"./en-ie.js\": 119,\n\t\"./en-il\": 120,\n\t\"./en-il.js\": 120,\n\t\"./en-in\": 121,\n\t\"./en-in.js\": 121,\n\t\"./en-nz\": 122,\n\t\"./en-nz.js\": 122,\n\t\"./en-sg\": 123,\n\t\"./en-sg.js\": 123,\n\t\"./eo\": 124,\n\t\"./eo.js\": 124,\n\t\"./es\": 125,\n\t\"./es-do\": 126,\n\t\"./es-do.js\": 126,\n\t\"./es-mx\": 127,\n\t\"./es-mx.js\": 127,\n\t\"./es-us\": 128,\n\t\"./es-us.js\": 128,\n\t\"./es.js\": 125,\n\t\"./et\": 129,\n\t\"./et.js\": 129,\n\t\"./eu\": 130,\n\t\"./eu.js\": 130,\n\t\"./fa\": 131,\n\t\"./fa.js\": 131,\n\t\"./fi\": 132,\n\t\"./fi.js\": 132,\n\t\"./fil\": 133,\n\t\"./fil.js\": 133,\n\t\"./fo\": 134,\n\t\"./fo.js\": 134,\n\t\"./fr\": 135,\n\t\"./fr-ca\": 136,\n\t\"./fr-ca.js\": 136,\n\t\"./fr-ch\": 137,\n\t\"./fr-ch.js\": 137,\n\t\"./fr.js\": 135,\n\t\"./fy\": 138,\n\t\"./fy.js\": 138,\n\t\"./ga\": 139,\n\t\"./ga.js\": 139,\n\t\"./gd\": 140,\n\t\"./gd.js\": 140,\n\t\"./gl\": 141,\n\t\"./gl.js\": 141,\n\t\"./gom-deva\": 142,\n\t\"./gom-deva.js\": 142,\n\t\"./gom-latn\": 143,\n\t\"./gom-latn.js\": 143,\n\t\"./gu\": 144,\n\t\"./gu.js\": 144,\n\t\"./he\": 145,\n\t\"./he.js\": 145,\n\t\"./hi\": 146,\n\t\"./hi.js\": 146,\n\t\"./hr\": 147,\n\t\"./hr.js\": 147,\n\t\"./hu\": 148,\n\t\"./hu.js\": 148,\n\t\"./hy-am\": 149,\n\t\"./hy-am.js\": 149,\n\t\"./id\": 150,\n\t\"./id.js\": 150,\n\t\"./is\": 151,\n\t\"./is.js\": 151,\n\t\"./it\": 152,\n\t\"./it-ch\": 153,\n\t\"./it-ch.js\": 153,\n\t\"./it.js\": 152,\n\t\"./ja\": 154,\n\t\"./ja.js\": 154,\n\t\"./jv\": 155,\n\t\"./jv.js\": 155,\n\t\"./ka\": 156,\n\t\"./ka.js\": 156,\n\t\"./kk\": 157,\n\t\"./kk.js\": 157,\n\t\"./km\": 158,\n\t\"./km.js\": 158,\n\t\"./kn\": 159,\n\t\"./kn.js\": 159,\n\t\"./ko\": 160,\n\t\"./ko.js\": 160,\n\t\"./ku\": 161,\n\t\"./ku.js\": 161,\n\t\"./ky\": 162,\n\t\"./ky.js\": 162,\n\t\"./lb\": 163,\n\t\"./lb.js\": 163,\n\t\"./lo\": 164,\n\t\"./lo.js\": 164,\n\t\"./lt\": 165,\n\t\"./lt.js\": 165,\n\t\"./lv\": 166,\n\t\"./lv.js\": 166,\n\t\"./me\": 167,\n\t\"./me.js\": 167,\n\t\"./mi\": 168,\n\t\"./mi.js\": 168,\n\t\"./mk\": 169,\n\t\"./mk.js\": 169,\n\t\"./ml\": 170,\n\t\"./ml.js\": 170,\n\t\"./mn\": 171,\n\t\"./mn.js\": 171,\n\t\"./mr\": 172,\n\t\"./mr.js\": 172,\n\t\"./ms\": 173,\n\t\"./ms-my\": 174,\n\t\"./ms-my.js\": 174,\n\t\"./ms.js\": 173,\n\t\"./mt\": 175,\n\t\"./mt.js\": 175,\n\t\"./my\": 176,\n\t\"./my.js\": 176,\n\t\"./nb\": 177,\n\t\"./nb.js\": 177,\n\t\"./ne\": 178,\n\t\"./ne.js\": 178,\n\t\"./nl\": 179,\n\t\"./nl-be\": 180,\n\t\"./nl-be.js\": 180,\n\t\"./nl.js\": 179,\n\t\"./nn\": 181,\n\t\"./nn.js\": 181,\n\t\"./oc-lnc\": 182,\n\t\"./oc-lnc.js\": 182,\n\t\"./pa-in\": 183,\n\t\"./pa-in.js\": 183,\n\t\"./pl\": 184,\n\t\"./pl.js\": 184,\n\t\"./pt\": 185,\n\t\"./pt-br\": 186,\n\t\"./pt-br.js\": 186,\n\t\"./pt.js\": 185,\n\t\"./ro\": 187,\n\t\"./ro.js\": 187,\n\t\"./ru\": 188,\n\t\"./ru.js\": 188,\n\t\"./sd\": 189,\n\t\"./sd.js\": 189,\n\t\"./se\": 190,\n\t\"./se.js\": 190,\n\t\"./si\": 191,\n\t\"./si.js\": 191,\n\t\"./sk\": 192,\n\t\"./sk.js\": 192,\n\t\"./sl\": 193,\n\t\"./sl.js\": 193,\n\t\"./sq\": 194,\n\t\"./sq.js\": 194,\n\t\"./sr\": 195,\n\t\"./sr-cyrl\": 196,\n\t\"./sr-cyrl.js\": 196,\n\t\"./sr.js\": 195,\n\t\"./ss\": 197,\n\t\"./ss.js\": 197,\n\t\"./sv\": 198,\n\t\"./sv.js\": 198,\n\t\"./sw\": 199,\n\t\"./sw.js\": 199,\n\t\"./ta\": 200,\n\t\"./ta.js\": 200,\n\t\"./te\": 201,\n\t\"./te.js\": 201,\n\t\"./tet\": 202,\n\t\"./tet.js\": 202,\n\t\"./tg\": 203,\n\t\"./tg.js\": 203,\n\t\"./th\": 204,\n\t\"./th.js\": 204,\n\t\"./tk\": 205,\n\t\"./tk.js\": 205,\n\t\"./tl-ph\": 206,\n\t\"./tl-ph.js\": 206,\n\t\"./tlh\": 207,\n\t\"./tlh.js\": 207,\n\t\"./tr\": 208,\n\t\"./tr.js\": 208,\n\t\"./tzl\": 209,\n\t\"./tzl.js\": 209,\n\t\"./tzm\": 210,\n\t\"./tzm-latn\": 211,\n\t\"./tzm-latn.js\": 211,\n\t\"./tzm.js\": 210,\n\t\"./ug-cn\": 212,\n\t\"./ug-cn.js\": 212,\n\t\"./uk\": 213,\n\t\"./uk.js\": 213,\n\t\"./ur\": 214,\n\t\"./ur.js\": 214,\n\t\"./uz\": 215,\n\t\"./uz-latn\": 216,\n\t\"./uz-latn.js\": 216,\n\t\"./uz.js\": 215,\n\t\"./vi\": 217,\n\t\"./vi.js\": 217,\n\t\"./x-pseudo\": 218,\n\t\"./x-pseudo.js\": 218,\n\t\"./yo\": 219,\n\t\"./yo.js\": 219,\n\t\"./zh-cn\": 220,\n\t\"./zh-cn.js\": 220,\n\t\"./zh-hk\": 221,\n\t\"./zh-hk.js\": 221,\n\t\"./zh-mo\": 222,\n\t\"./zh-mo.js\": 222,\n\t\"./zh-tw\": 223,\n\t\"./zh-tw.js\": 223\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 277;","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('top-boxes'),_vm._v(\" \"),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col\"},[_c('main-account')],1)]),_vm._v(\" \"),_c('main-account-list'),_vm._v(\" \"),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col\"},[_c('main-budget-list')],1)]),_vm._v(\" \"),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col\"},[_c('main-category-list')],1)]),_vm._v(\" \"),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-lg-6 col-md-12 col-sm-12 col-xs-12\"},[_c('main-debit-list')],1),_vm._v(\" \"),_c('div',{staticClass:\"col-lg-6 col-md-12 col-sm-12 col-xs-12\"},[_c('main-credit-list')],1)]),_vm._v(\" \"),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-lg-6 col-md-12 col-sm-12 col-xs-12\"},[_c('main-piggy-list')],1),_vm._v(\" \"),_c('div',{staticClass:\"col-lg-6 col-md-12 col-sm-12 col-xs-12\"},[_c('main-bills-list')],1)])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Dashboard.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Dashboard.vue?vue&type=script&lang=js&\"","\n\n\n\n\n","import { render, staticRenderFns } from \"./Dashboard.vue?vue&type=template&id=9d50d3a2&\"\nimport script from \"./Dashboard.vue?vue&type=script&lang=js&\"\nexport * from \"./Dashboard.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TopBoxes.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TopBoxes.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./TopBoxes.vue?vue&type=template&id=5c6cdcc5&\"\nimport script from \"./TopBoxes.vue?vue&type=script&lang=js&\"\nexport * from \"./TopBoxes.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col\"},[_c('div',{staticClass:\"info-box\"},[_vm._m(0),_vm._v(\" \"),_c('div',{staticClass:\"info-box-content\"},[(!_vm.loading && !_vm.error)?_c('span',{staticClass:\"info-box-text\"},[_vm._v(_vm._s(_vm.$t(\"firefly.balance\")))]):_vm._e(),_vm._v(\" \"),(_vm.loading && !_vm.error)?_c('span',{staticClass:\"info-box-text\"},[_c('i',{staticClass:\"fas fa-spinner fa-spin\"})]):_vm._e(),_vm._v(\" \"),(_vm.error)?_c('span',{staticClass:\"info-box-text\"},[_c('i',{staticClass:\"fas fa-exclamation-triangle text-danger\"})]):_vm._e(),_vm._v(\" \"),_vm._l((_vm.prefCurrencyBalances),function(balance){return _c('span',{staticClass:\"info-box-number\",attrs:{\"title\":balance.sub_title}},[_vm._v(_vm._s(balance.value_parsed))])}),_vm._v(\" \"),_vm._m(1),_vm._v(\" \"),_c('span',{staticClass:\"progress-description\"},[_vm._l((_vm.notPrefCurrencyBalances),function(balance,index){return _c('span',{attrs:{\"title\":balance.sub_title}},[_vm._v(\"\\n \"+_vm._s(balance.value_parsed)),(index+1 !== _vm.notPrefCurrencyBalances.length)?_c('span',[_vm._v(\", \")]):_vm._e()])}),_vm._v(\" \"),(0===_vm.notPrefCurrencyBalances.length)?_c('span',[_vm._v(\" \")]):_vm._e()],2)],2)])]),_vm._v(\" \"),_c('div',{staticClass:\"col\"},[_c('div',{staticClass:\"info-box\"},[_vm._m(2),_vm._v(\" \"),_c('div',{staticClass:\"info-box-content\"},[(!_vm.loading && !_vm.error)?_c('span',{staticClass:\"info-box-text\"},[_vm._v(_vm._s(_vm.$t('firefly.bills_to_pay')))]):_vm._e(),_vm._v(\" \"),(_vm.loading && !_vm.error)?_c('span',{staticClass:\"info-box-text\"},[_c('i',{staticClass:\"fas fa-spinner fa-spin\"})]):_vm._e(),_vm._v(\" \"),(_vm.error)?_c('span',{staticClass:\"info-box-text\"},[_c('i',{staticClass:\"fas fa-exclamation-triangle text-danger\"})]):_vm._e(),_vm._v(\" \"),_vm._l((_vm.prefBillsUnpaid),function(balance){return _c('span',{staticClass:\"info-box-number\"},[_vm._v(_vm._s(balance.value_parsed))])}),_vm._v(\" \"),_vm._m(3),_vm._v(\" \"),_c('span',{staticClass:\"progress-description\"},[_vm._l((_vm.notPrefBillsUnpaid),function(bill,index){return _c('span',[_vm._v(\"\\n \"+_vm._s(bill.value_parsed)),(index+1 !== _vm.notPrefBillsUnpaid.length)?_c('span',[_vm._v(\", \")]):_vm._e()])}),_vm._v(\" \"),(0===_vm.notPrefBillsUnpaid.length)?_c('span',[_vm._v(\" \")]):_vm._e()],2)],2)])]),_vm._v(\" \"),_c('div',{staticClass:\"col\"},[_c('div',{staticClass:\"info-box\"},[_vm._m(4),_vm._v(\" \"),_c('div',{staticClass:\"info-box-content\"},[(!_vm.loading && !_vm.error)?_c('span',{staticClass:\"info-box-text\"},[_vm._v(_vm._s(_vm.$t('firefly.left_to_spend')))]):_vm._e(),_vm._v(\" \"),(_vm.loading && !_vm.error)?_c('span',{staticClass:\"info-box-text\"},[_c('i',{staticClass:\"fas fa-spinner fa-spin\"})]):_vm._e(),_vm._v(\" \"),(_vm.error)?_c('span',{staticClass:\"info-box-text\"},[_c('i',{staticClass:\"fas fa-exclamation-triangle text-danger\"})]):_vm._e(),_vm._v(\" \"),_vm._l((_vm.prefLeftToSpend),function(left){return _c('span',{staticClass:\"info-box-number\",attrs:{\"title\":left.sub_title}},[_vm._v(_vm._s(left.value_parsed))])}),_vm._v(\" \"),_vm._m(5),_vm._v(\" \"),_c('span',{staticClass:\"progress-description\"},[_vm._l((_vm.notPrefLeftToSpend),function(left,index){return _c('span',[_vm._v(\"\\n \"+_vm._s(left.value_parsed)),(index+1 !== _vm.notPrefLeftToSpend.length)?_c('span',[_vm._v(\", \")]):_vm._e()])}),_vm._v(\" \"),(0===_vm.notPrefLeftToSpend.length)?_c('span',[_vm._v(\" \")]):_vm._e()],2)],2)])]),_vm._v(\" \"),_c('div',{staticClass:\"col\"},[_c('div',{staticClass:\"info-box\"},[_vm._m(6),_vm._v(\" \"),_c('div',{staticClass:\"info-box-content\"},[(!_vm.loading && !_vm.error)?_c('span',{staticClass:\"info-box-text\"},[_vm._v(_vm._s(_vm.$t('firefly.net_worth')))]):_vm._e(),_vm._v(\" \"),(_vm.loading && !_vm.error)?_c('span',{staticClass:\"info-box-text\"},[_c('i',{staticClass:\"fas fa-spinner fa-spin\"})]):_vm._e(),_vm._v(\" \"),(_vm.error)?_c('span',{staticClass:\"info-box-text\"},[_c('i',{staticClass:\"fas fa-exclamation-triangle text-danger\"})]):_vm._e(),_vm._v(\" \"),_vm._l((_vm.prefNetWorth),function(nw){return _c('span',{staticClass:\"info-box-number\",attrs:{\"title\":nw.sub_title}},[_vm._v(_vm._s(nw.value_parsed))])}),_vm._v(\" \"),_vm._m(7),_vm._v(\" \"),_c('span',{staticClass:\"progress-description\"},[_vm._l((_vm.notPrefNetWorth),function(nw,index){return _c('span',[_vm._v(\"\\n \"+_vm._s(nw.value_parsed)),(index+1 !== _vm.notPrefNetWorth.length)?_c('span',[_vm._v(\", \")]):_vm._e()])}),_vm._v(\" \"),(0===_vm.notPrefNetWorth.length)?_c('span',[_vm._v(\" \")]):_vm._e()],2)],2)])])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',{staticClass:\"info-box-icon\"},[_c('i',{staticClass:\"far fa-bookmark text-info\"})])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"progress bg-info\"},[_c('div',{staticClass:\"progress-bar\",staticStyle:{\"width\":\"0\"}})])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',{staticClass:\"info-box-icon\"},[_c('i',{staticClass:\"far fa-calendar-alt text-teal\"})])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"progress bg-teal\"},[_c('div',{staticClass:\"progress-bar\",staticStyle:{\"width\":\"0\"}})])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',{staticClass:\"info-box-icon\"},[_c('i',{staticClass:\"fas fa-money-bill text-success\"})])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"progress bg-success\"},[_c('div',{staticClass:\"progress-bar\",staticStyle:{\"width\":\"0\"}})])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',{staticClass:\"info-box-icon\"},[_c('i',{staticClass:\"fas fa-money-bill text-success\"})])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"progress bg-success\"},[_c('div',{staticClass:\"progress-bar\",staticStyle:{\"width\":\"0\"}})])}]\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DataConverter.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DataConverter.vue?vue&type=script&lang=js&\"","\n\n\n","var render, staticRenderFns\nimport script from \"./DataConverter.vue?vue&type=script&lang=js&\"\nexport * from \"./DataConverter.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DefaultLineOptions.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DefaultLineOptions.vue?vue&type=script&lang=js&\"","\n\n\n\n\n\n\n\n","import { render, staticRenderFns } from \"./DefaultLineOptions.vue?vue&type=template&id=5f7e90aa&scoped=true&\"\nimport script from \"./DefaultLineOptions.vue?vue&type=script&lang=js&\"\nexport * from \"./DefaultLineOptions.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5f7e90aa\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c(\"div\")}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MainAccountChart.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MainAccountChart.vue?vue&type=script&lang=js&\"","var render, staticRenderFns\nimport script from \"./MainAccountChart.vue?vue&type=script&lang=js&\"\nexport * from \"./MainAccountChart.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MainAccount.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MainAccount.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./MainAccount.vue?vue&type=template&id=53c6b338&\"\nimport script from \"./MainAccount.vue?vue&type=script&lang=js&\"\nexport * from \"./MainAccount.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"card\"},[_c('div',{staticClass:\"card-header\"},[_c('h3',{staticClass:\"card-title\"},[_vm._v(_vm._s(_vm.$t('firefly.yourAccounts')))])]),_vm._v(\" \"),_c('div',{staticClass:\"card-body\"},[(!_vm.loading)?_c('div',[(!_vm.loading && !_vm.error)?_c('MainAccountChart',{attrs:{\"chart-data\":_vm.dataCollection,\"options\":_vm.chartOptions}}):_vm._e()],1):_vm._e(),_vm._v(\" \"),(_vm.loading && !_vm.error)?_c('div',{staticClass:\"text-center\"},[_c('i',{staticClass:\"fas fa-spinner fa-spin\"})]):_vm._e(),_vm._v(\" \"),(_vm.error)?_c('div',{staticClass:\"text-center\"},[_c('i',{staticClass:\"fas fa-exclamation-triangle text-danger\"})]):_vm._e()]),_vm._v(\" \"),_c('div',{staticClass:\"card-footer\"},[_c('a',{staticClass:\"btn btn-default button-sm\",attrs:{\"href\":\"./accounts/asset\"}},[_c('i',{staticClass:\"far fa-money-bill-alt\"}),_vm._v(\" \"+_vm._s(_vm.$t('firefly.go_to_asset_accounts')))])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MainAccountList.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MainAccountList.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./MainAccountList.vue?vue&type=template&id=5d6bb842&scoped=true&\"\nimport script from \"./MainAccountList.vue?vue&type=script&lang=js&\"\nexport * from \"./MainAccountList.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"5d6bb842\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(_vm.loading && !_vm.error)?_c('div',{staticClass:\"row\"},[_vm._m(0)]):_vm._e(),_vm._v(\" \"),(_vm.error)?_c('div',{staticClass:\"row\"},[_vm._m(1)]):_vm._e(),_vm._v(\" \"),(!_vm.loading && !_vm.error)?_c('div',{staticClass:\"row\"},_vm._l((_vm.accounts),function(account){return _c('div',{class:{ 'col-lg-12': 1 === _vm.accounts.length, 'col-lg-6': 2 === _vm.accounts.length, 'col-lg-4': _vm.accounts.length > 2 }},[_c('div',{staticClass:\"card\"},[_c('div',{staticClass:\"card-header\"},[_c('h3',{staticClass:\"card-title\"},[_c('a',{attrs:{\"href\":account.url}},[_vm._v(_vm._s(account.title))])]),_vm._v(\" \"),_c('div',{staticClass:\"card-tools\"},[_c('span',{class:parseFloat(account.current_balance) < 0 ? 'text-danger' : 'text-success'},[_vm._v(\"\\n \"+_vm._s(Intl.NumberFormat(_vm.locale, {style: 'currency', currency: account.currency_code}).format(parseFloat(account.current_balance)))+\"\\n \")])])]),_vm._v(\" \"),_c('div',{staticClass:\"card-body table-responsive p-0\"},[_c('div',[(1===_vm.accounts.length)?_c('transaction-list-large',{attrs:{\"account_id\":account.id,\"transactions\":account.transactions}}):_vm._e(),_vm._v(\" \"),(2===_vm.accounts.length)?_c('transaction-list-medium',{attrs:{\"account_id\":account.id,\"transactions\":account.transactions}}):_vm._e(),_vm._v(\" \"),(_vm.accounts.length > 2)?_c('transaction-list-small',{attrs:{\"account_id\":account.id,\"transactions\":account.transactions}}):_vm._e()],1)])])])}),0):_vm._e()])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"col\"},[_c('div',{staticClass:\"card\"},[_c('div',{staticClass:\"card-body\"},[_c('div',{staticClass:\"text-center\"},[_c('i',{staticClass:\"fas fa-spinner fa-spin\"})])])])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"col\"},[_c('div',{staticClass:\"card\"},[_c('div',{staticClass:\"card-body\"},[_c('div',{staticClass:\"text-center\"},[_c('i',{staticClass:\"fas fa-exclamation-triangle text-danger\"})])])])])}]\n\nexport { render, staticRenderFns }","\n\n\n\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MainBillsList.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MainBillsList.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./MainBillsList.vue?vue&type=template&id=64c4c037&\"\nimport script from \"./MainBillsList.vue?vue&type=script&lang=js&\"\nexport * from \"./MainBillsList.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"card\"},[_c('div',{staticClass:\"card-header\"},[_c('h3',{staticClass:\"card-title\"},[_vm._v(_vm._s(_vm.$t('firefly.bills')))])]),_vm._v(\" \"),(_vm.loading && !_vm.error)?_c('div',{staticClass:\"card-body\"},[_vm._m(0)]):_vm._e(),_vm._v(\" \"),(_vm.error)?_c('div',{staticClass:\"card-body\"},[_vm._m(1)]):_vm._e(),_vm._v(\" \"),(!_vm.loading && !_vm.error)?_c('div',{staticClass:\"card-body table-responsive p-0\"},[_c('table',{staticClass:\"table table-striped\"},[_c('caption',{staticStyle:{\"display\":\"none\"}},[_vm._v(_vm._s(_vm.$t('firefly.bills')))]),_vm._v(\" \"),_c('thead',[_c('tr',[_c('th',{staticStyle:{\"width\":\"35%\"},attrs:{\"scope\":\"col\"}},[_vm._v(_vm._s(_vm.$t('list.name')))]),_vm._v(\" \"),_c('th',{staticStyle:{\"width\":\"25%\"},attrs:{\"scope\":\"col\"}},[_vm._v(_vm._s(_vm.$t('list.next_expected_match')))])])]),_vm._v(\" \"),_c('tbody',_vm._l((this.bills),function(bill){return _c('tr',[_c('td',[_c('a',{attrs:{\"href\":'./bills/show/' + bill.id,\"title\":bill.attributes.name}},[_vm._v(_vm._s(bill.attributes.name))]),_vm._v(\"\\n (~ \"),_c('span',{staticClass:\"text-danger\"},[_vm._v(_vm._s(Intl.NumberFormat(_vm.locale, {style: 'currency', currency: bill.attributes.currency_code}).format((parseFloat(bill.attributes.amount_min) +\n parseFloat(bill.attributes.amount_max)) / -2)))]),_vm._v(\")\\n \"),(bill.attributes.object_group_title)?_c('small',{staticClass:\"text-muted\"},[_c('br'),_vm._v(\"\\n \"+_vm._s(bill.attributes.object_group_title)+\"\\n \")]):_vm._e()]),_vm._v(\" \"),_c('td',[_vm._l((bill.attributes.paid_dates),function(paidDate){return _c('span',[_c('span',{domProps:{\"innerHTML\":_vm._s(_vm.renderPaidDate(paidDate))}}),_c('br')])}),_vm._v(\" \"),_vm._l((bill.attributes.pay_dates),function(payDate){return (0===bill.attributes.paid_dates.length)?_c('span',[_vm._v(\"\\n \"+_vm._s(new Intl.DateTimeFormat(_vm.locale, {year: 'numeric', month: 'long', day: 'numeric'}).format(new Date(payDate)))),_c('br')]):_vm._e()})],2)])}),0)])]):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"card-footer\"},[_c('a',{staticClass:\"btn btn-default button-sm\",attrs:{\"href\":\"./bills\"}},[_c('i',{staticClass:\"far fa-money-bill-alt\"}),_vm._v(\" \"+_vm._s(_vm.$t('firefly.go_to_bills')))])])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"text-center\"},[_c('i',{staticClass:\"fas fa-spinner fa-spin\"})])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"text-center\"},[_c('i',{staticClass:\"fas fa-exclamation-triangle text-danger\"})])}]\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BudgetLimitRow.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BudgetLimitRow.vue?vue&type=script&lang=js&\"","\n\n\n\n\n\n","import { render, staticRenderFns } from \"./BudgetLimitRow.vue?vue&type=template&id=7988ecb6&scoped=true&\"\nimport script from \"./BudgetLimitRow.vue?vue&type=script&lang=js&\"\nexport * from \"./BudgetLimitRow.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7988ecb6\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('tr',[_c('td',{staticStyle:{\"width\":\"25%\"}},[_c('a',{attrs:{\"href\":'./budgets/show/' + _vm.budgetLimit.budget_id}},[_vm._v(_vm._s(_vm.budgetLimit.budget_name))])]),_vm._v(\" \"),_c('td',{staticStyle:{\"vertical-align\":\"middle\"}},[_c('div',{staticClass:\"progress progress active\"},[_c('div',{staticClass:\"progress-bar bg-success progress-bar-striped\",style:('width: '+ _vm.budgetLimit.pctGreen + '%;'),attrs:{\"aria-valuenow\":_vm.budgetLimit.pctGreen,\"aria-valuemax\":\"100\",\"aria-valuemin\":\"0\",\"role\":\"progressbar\"}},[(_vm.budgetLimit.pctGreen > 35)?_c('span',[_vm._v(\"\\n \"+_vm._s(_vm.$t('firefly.spent_x_of_y', {amount: Intl.NumberFormat(_vm.locale, {style: 'currency', currency: _vm.budgetLimit.currency_code}).format(_vm.budgetLimit.spent), total: Intl.NumberFormat(_vm.locale, {style: 'currency', currency: _vm.budgetLimit.currency_code}).format(_vm.budgetLimit.amount)}))+\"\\n \")]):_vm._e()]),_vm._v(\" \"),_c('div',{staticClass:\"progress-bar bg-warning progress-bar-striped\",style:('width: '+ _vm.budgetLimit.pctOrange + '%;'),attrs:{\"aria-valuenow\":_vm.budgetLimit.pctOrange,\"aria-valuemax\":\"100\",\"aria-valuemin\":\"0\",\"role\":\"progressbar\"}},[(_vm.budgetLimit.pctRed <= 50 && _vm.budgetLimit.pctOrange > 35)?_c('span',[_vm._v(\"\\n \"+_vm._s(_vm.$t('firefly.spent_x_of_y', {amount: Intl.NumberFormat(_vm.locale, {style: 'currency', currency: _vm.budgetLimit.currency_code}).format(_vm.budgetLimit.spent), total: Intl.NumberFormat(_vm.locale, {style: 'currency', currency: _vm.budgetLimit.currency_code}).format(_vm.budgetLimit.amount)}))+\"\\n \")]):_vm._e()]),_vm._v(\" \"),_c('div',{staticClass:\"progress-bar bg-danger progress-bar-striped\",style:('width: '+ _vm.budgetLimit.pctRed + '%;'),attrs:{\"aria-valuenow\":_vm.budgetLimit.pctRed,\"aria-valuemax\":\"100\",\"aria-valuemin\":\"0\",\"role\":\"progressbar\"}},[(_vm.budgetLimit.pctOrange <= 50 && _vm.budgetLimit.pctRed > 35)?_c('span',{staticClass:\"text-muted\"},[_vm._v(\"\\n \"+_vm._s(_vm.$t('firefly.spent_x_of_y', {amount: Intl.NumberFormat(_vm.locale, {style: 'currency', currency: _vm.budgetLimit.currency_code}).format(_vm.budgetLimit.spent), total: Intl.NumberFormat(_vm.locale, {style: 'currency', currency: _vm.budgetLimit.currency_code}).format(_vm.budgetLimit.amount)}))+\"\\n \")]):_vm._e()]),_vm._v(\" \"),(_vm.budgetLimit.pctGreen <= 35 && 0 === _vm.budgetLimit.pctOrange && 0 === _vm.budgetLimit.pctRed && 0 !== _vm.budgetLimit.pctGreen)?_c('span',{staticStyle:{\"line-height\":\"16px\"}},[_vm._v(\"\\n   \"+_vm._s(_vm.$t('firefly.spent_x_of_y', {amount: Intl.NumberFormat(_vm.locale, {style: 'currency', currency: _vm.budgetLimit.currency_code}).format(_vm.budgetLimit.spent), total: Intl.NumberFormat(_vm.locale, {style: 'currency', currency: _vm.budgetLimit.currency_code}).format(_vm.budgetLimit.amount)}))+\"\\n \")]):_vm._e()]),_vm._v(\" \"),_c('small',{staticClass:\"d-none d-lg-block\"},[_vm._v(\"\\n \"+_vm._s(new Intl.DateTimeFormat(_vm.locale, {year: 'numeric', month: 'long', day: 'numeric'}).format(_vm.budgetLimit.start))+\"\\n →\\n \"+_vm._s(new Intl.DateTimeFormat(_vm.locale, {year: 'numeric', month: 'long', day: 'numeric'}).format(_vm.budgetLimit.end))+\"\\n \")])]),_vm._v(\" \"),_c('td',{staticClass:\"align-middle d-none d-lg-table-cell\",staticStyle:{\"width\":\"10%\"}},[(parseFloat(_vm.budgetLimit.amount) + parseFloat(_vm.budgetLimit.spent) > 0)?_c('span',{staticClass:\"text-success\"},[_vm._v(\"\\n \"+_vm._s(Intl.NumberFormat(_vm.locale, {\n style: 'currency',\n currency: _vm.budgetLimit.currency_code\n }).format(parseFloat(_vm.budgetLimit.amount) + parseFloat(_vm.budgetLimit.spent)))+\"\\n \")]):_vm._e(),_vm._v(\" \"),(0.0 === parseFloat(_vm.budgetLimit.amount) + parseFloat(_vm.budgetLimit.spent))?_c('span',{staticClass:\"text-muted\"},[_vm._v(\"\\n \"+_vm._s(Intl.NumberFormat(_vm.locale, {style: 'currency', currency: _vm.budgetLimit.currency_code}).format(0))+\"\\n \")]):_vm._e(),_vm._v(\" \"),(parseFloat(_vm.budgetLimit.amount) + parseFloat(_vm.budgetLimit.spent) < 0)?_c('span',{staticClass:\"text-danger\"},[_vm._v(\"\\n \"+_vm._s(Intl.NumberFormat(_vm.locale, {\n style: 'currency',\n currency: _vm.budgetLimit.currency_code\n }).format(parseFloat(_vm.budgetLimit.amount) + parseFloat(_vm.budgetLimit.spent)))+\"\\n \")]):_vm._e()])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BudgetRow.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BudgetRow.vue?vue&type=script&lang=js&\"","\n\n\n\n\n\n\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BudgetListGroup.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BudgetListGroup.vue?vue&type=script&lang=js&\"","\n\n\n\n\n\n","import { render, staticRenderFns } from \"./BudgetRow.vue?vue&type=template&id=2fc8f640&scoped=true&\"\nimport script from \"./BudgetRow.vue?vue&type=script&lang=js&\"\nexport * from \"./BudgetRow.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"2fc8f640\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('tr',[_c('td',{staticStyle:{\"width\":\"25%\"}},[_c('a',{attrs:{\"href\":'./budgets/show/' + _vm.budget.id}},[_vm._v(_vm._s(_vm.budget.name))])]),_vm._v(\" \"),_c('td',{staticClass:\"align-middle text-right\"},[_c('span',{staticClass:\"text-danger\"},[_vm._v(\"\\n \"+_vm._s(Intl.NumberFormat(_vm.locale, {style: 'currency', currency: _vm.budget.currency_code}).format(parseFloat(_vm.budget.spent)))+\"\\n \")])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./BudgetListGroup.vue?vue&type=template&id=658dd996&scoped=true&\"\nimport script from \"./BudgetListGroup.vue?vue&type=script&lang=js&\"\nexport * from \"./BudgetListGroup.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"658dd996\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"card\"},[_c('div',{staticClass:\"card-header\"},[_c('h3',{staticClass:\"card-title\"},[_vm._v(_vm._s(_vm.title))])]),_vm._v(\" \"),_c('div',{staticClass:\"card-body table-responsive p-0\"},[_c('table',{staticClass:\"table table-sm\"},[_c('tbody',[_vm._l((_vm.budgetLimits),function(budgetLimit,key){return _c('BudgetLimitRow',{key:key,attrs:{\"budgetLimit\":budgetLimit}})}),_vm._v(\" \"),_vm._l((_vm.budgets),function(budget,key){return _c('BudgetRow',{key:key,attrs:{\"budget\":budget}})})],2)])]),_vm._v(\" \"),_c('div',{staticClass:\"card-footer\"},[_c('a',{staticClass:\"btn btn-default button-sm\",attrs:{\"href\":\"./budgets\"}},[_c('i',{staticClass:\"far fa-money-bill-alt\"}),_vm._v(\" \"+_vm._s(_vm.$t('firefly.go_to_budgets')))])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MainBudgetList.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MainBudgetList.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./MainBudgetList.vue?vue&type=template&id=03d11977&scoped=true&\"\nimport script from \"./MainBudgetList.vue?vue&type=script&lang=js&\"\nexport * from \"./MainBudgetList.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"03d11977\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(!_vm.loading)?_c('div',{staticClass:\"row\"},[(_vm.budgetLimits.daily.length > 0)?_c('div',{staticClass:\"col-xl-6 col-lg-12 col-md-12 col-sm-12 col-xs-12\"},[_c('BudgetListGroup',{attrs:{\"budgetLimits\":_vm.budgetLimits.daily,\"title\":_vm.$t('firefly.daily_budgets')}})],1):_vm._e(),_vm._v(\" \"),(_vm.budgetLimits.weekly.length > 0)?_c('div',{staticClass:\"col-xl-6 col-lg-12 col-md-12 col-sm-12 col-xs-12\"},[_c('BudgetListGroup',{attrs:{\"budgetLimits\":_vm.budgetLimits.weekly,\"title\":_vm.$t('firefly.weekly_budgets')}})],1):_vm._e(),_vm._v(\" \"),(_vm.budgetLimits.monthly.length > 0)?_c('div',{staticClass:\"col-xl-6 col-lg-12 col-md-12 col-sm-12 col-xs-12\"},[_c('BudgetListGroup',{attrs:{\"budgetLimits\":_vm.budgetLimits.monthly,\"title\":_vm.$t('firefly.monthly_budgets')}})],1):_vm._e(),_vm._v(\" \"),(_vm.budgetLimits.quarterly.length > 0)?_c('div',{staticClass:\"col-xl-6 col-lg-12 col-md-12 col-sm-12 col-xs-12\"},[_c('BudgetListGroup',{attrs:{\"budgetLimits\":_vm.budgetLimits.quarterly,\"title\":_vm.$t('firefly.quarterly_budgets')}})],1):_vm._e(),_vm._v(\" \"),(_vm.budgetLimits.half_year.length > 0)?_c('div',{staticClass:\"col-xl-6 col-lg-12 col-md-12 col-sm-12 col-xs-12\"},[_c('BudgetListGroup',{attrs:{\"budgetLimits\":_vm.budgetLimits.half_year,\"title\":_vm.$t('firefly.half_year_budgets')}})],1):_vm._e(),_vm._v(\" \"),(_vm.budgetLimits.yearly.length > 0)?_c('div',{staticClass:\"col-xl-6 col-lg-12 col-md-12 col-sm-12 col-xs-12\"},[_c('BudgetListGroup',{attrs:{\"budgetLimits\":_vm.budgetLimits.yearly,\"title\":_vm.$t('firefly.yearly_budgets')}})],1):_vm._e(),_vm._v(\" \"),(_vm.budgetLimits.other.length > 0 || _vm.rawBudgets.length > 0)?_c('div',{staticClass:\"col-xl-6 col-lg-12 col-md-12 col-sm-12 col-xs-12\"},[_c('BudgetListGroup',{attrs:{\"budgetLimits\":_vm.budgetLimits.other,\"budgets\":_vm.rawBudgets,\"title\":_vm.$t('firefly.other_budgets')}})],1):_vm._e()]):_vm._e(),_vm._v(\" \"),(_vm.loading && !_vm.error)?_c('div',{staticClass:\"row\"},[_vm._m(0)]):_vm._e()])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"col\"},[_c('div',{staticClass:\"card\"},[_c('div',{staticClass:\"card-body\"},[_c('div',{staticClass:\"text-center\"},[_c('i',{staticClass:\"fas fa-spinner fa-spin\"})])])])])}]\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MainCreditList.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MainCreditList.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./MainCreditList.vue?vue&type=template&id=32662f04&\"\nimport script from \"./MainCreditList.vue?vue&type=script&lang=js&\"\nexport * from \"./MainCreditList.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"card\"},[_c('div',{staticClass:\"card-header\"},[_c('h3',{staticClass:\"card-title\"},[_vm._v(_vm._s(_vm.$t('firefly.revenue_accounts')))])]),_vm._v(\" \"),(_vm.loading && !_vm.error)?_c('div',{staticClass:\"card-body\"},[_vm._m(0)]):_vm._e(),_vm._v(\" \"),(_vm.error)?_c('div',{staticClass:\"card-body\"},[_vm._m(1)]):_vm._e(),_vm._v(\" \"),(!_vm.loading && !_vm.error)?_c('div',{staticClass:\"card-body table-responsive p-0\"},[_c('table',{staticClass:\"table table-sm\"},[_c('tbody',_vm._l((_vm.income),function(entry){return _c('tr',[_c('td',{staticStyle:{\"width\":\"20%\"}},[_c('a',{attrs:{\"href\":'./accounts/show/' + entry.id}},[_vm._v(_vm._s(entry.name))])]),_vm._v(\" \"),_c('td',{staticClass:\"align-middle\"},[(entry.pct > 0)?_c('div',{staticClass:\"progress\"},[_c('div',{staticClass:\"progress-bar progress-bar-striped bg-success\",style:({ width: entry.pct + '%'}),attrs:{\"aria-valuenow\":entry.pct,\"aria-valuemax\":\"100\",\"aria-valuemin\":\"0\",\"role\":\"progressbar\"}},[(entry.pct > 20)?_c('span',[_vm._v(\"\\n \"+_vm._s(Intl.NumberFormat(_vm.locale, {style: 'currency', currency: entry.currency_code}).format(entry.difference_float))+\"\\n \")]):_vm._e()]),_vm._v(\" \"),(entry.pct <= 20)?_c('span',{staticStyle:{\"line-height\":\"16px\"}},[_vm._v(\" \\n \"+_vm._s(Intl.NumberFormat(_vm.locale, {style: 'currency', currency: entry.currency_code}).format(entry.difference_float))+\"\\n \")]):_vm._e()]):_vm._e()])])}),0)])]):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"card-footer\"},[_c('a',{staticClass:\"btn btn-default button-sm\",attrs:{\"href\":\"./transactions/deposit\"}},[_c('i',{staticClass:\"far fa-money-bill-alt\"}),_vm._v(\" \"+_vm._s(_vm.$t('firefly.go_to_deposits')))])])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"text-center\"},[_c('i',{staticClass:\"fas fa-spinner fa-spin\"})])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"text-center\"},[_c('i',{staticClass:\"fas fa-exclamation-triangle text-danger\"})])}]\n\nexport { render, staticRenderFns }","\n\n\n\n\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MainDebitList.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MainDebitList.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./MainDebitList.vue?vue&type=template&id=7aa5bf85&\"\nimport script from \"./MainDebitList.vue?vue&type=script&lang=js&\"\nexport * from \"./MainDebitList.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"card\"},[_c('div',{staticClass:\"card-header\"},[_c('h3',{staticClass:\"card-title\"},[_vm._v(_vm._s(_vm.$t('firefly.expense_accounts')))])]),_vm._v(\" \"),(_vm.loading && !_vm.error)?_c('div',{staticClass:\"card-body\"},[_vm._m(0)]):_vm._e(),_vm._v(\" \"),(_vm.error)?_c('div',{staticClass:\"card-body\"},[_vm._m(1)]):_vm._e(),_vm._v(\" \"),(!_vm.loading && !_vm.error)?_c('div',{staticClass:\"card-body table-responsive p-0\"},[_c('table',{staticClass:\"table table-sm\"},[_c('tbody',_vm._l((_vm.expenses),function(entry){return _c('tr',[_c('td',{staticStyle:{\"width\":\"20%\"}},[_c('a',{attrs:{\"href\":'./accounts/show/' + entry.id}},[_vm._v(_vm._s(entry.name))])]),_vm._v(\" \"),_c('td',{staticClass:\"align-middle\"},[(entry.pct > 0)?_c('div',{staticClass:\"progress\"},[_c('div',{staticClass:\"progress-bar progress-bar-striped bg-danger\",style:({ width: entry.pct + '%'}),attrs:{\"aria-valuenow\":entry.pct,\"aria-valuemax\":\"100\",\"aria-valuemin\":\"0\",\"role\":\"progressbar\"}},[(entry.pct > 20)?_c('span',[_vm._v(\"\\n \"+_vm._s(Intl.NumberFormat(_vm.locale, {style: 'currency', currency: entry.currency_code}).format(entry.difference_float))+\"\\n \")]):_vm._e()]),_vm._v(\" \"),(entry.pct <= 20)?_c('span',{staticStyle:{\"line-height\":\"16px\"}},[_vm._v(\" \\n \"+_vm._s(Intl.NumberFormat(_vm.locale, {style: 'currency', currency: entry.currency_code}).format(entry.difference_float))+\"\\n \")]):_vm._e()]):_vm._e()])])}),0)])]):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"card-footer\"},[_c('a',{staticClass:\"btn btn-default button-sm\",attrs:{\"href\":\"./transactions/withdrawal\"}},[_c('i',{staticClass:\"far fa-money-bill-alt\"}),_vm._v(\" \"+_vm._s(_vm.$t('firefly.go_to_withdrawals')))])])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"text-center\"},[_c('i',{staticClass:\"fas fa-spinner fa-spin\"})])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"text-center\"},[_c('i',{staticClass:\"fas fa-exclamation-triangle text-danger\"})])}]\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MainPiggyList.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MainPiggyList.vue?vue&type=script&lang=js&\"","\n\n\n\n\n\n\n","import { render, staticRenderFns } from \"./MainPiggyList.vue?vue&type=template&id=c17c9a5a&scoped=true&\"\nimport script from \"./MainPiggyList.vue?vue&type=script&lang=js&\"\nexport * from \"./MainPiggyList.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"c17c9a5a\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"card\"},[_c('div',{staticClass:\"card-header\"},[_c('h3',{staticClass:\"card-title\"},[_vm._v(_vm._s(_vm.$t('firefly.piggy_banks')))])]),_vm._v(\" \"),(_vm.loading && !_vm.error)?_c('div',{staticClass:\"card-body\"},[_vm._m(0)]):_vm._e(),_vm._v(\" \"),(_vm.error)?_c('div',{staticClass:\"card-body\"},[_vm._m(1)]):_vm._e(),_vm._v(\" \"),(!_vm.loading && !_vm.error)?_c('div',{staticClass:\"card-body table-responsive p-0\"},[_c('table',{staticClass:\"table table-striped\"},[_c('caption',{staticStyle:{\"display\":\"none\"}},[_vm._v(_vm._s(_vm.$t('firefly.piggy_banks')))]),_vm._v(\" \"),_c('thead',[_c('tr',[_c('th',{staticStyle:{\"width\":\"35%\"},attrs:{\"scope\":\"col\"}},[_vm._v(_vm._s(_vm.$t('list.piggy_bank')))]),_vm._v(\" \"),_c('th',{staticStyle:{\"width\":\"40%\"},attrs:{\"scope\":\"col\"}},[_vm._v(_vm._s(_vm.$t('list.percentage'))+\" \"),_c('small',[_vm._v(\"/ \"+_vm._s(_vm.$t('list.amount')))])])])]),_vm._v(\" \"),_c('tbody',_vm._l((this.piggy_banks),function(piggy){return _c('tr',[_c('td',[_c('a',{attrs:{\"href\":'./piggy-banks/show/' + piggy.id,\"title\":piggy.attributes.name}},[_vm._v(_vm._s(piggy.attributes.name))]),_vm._v(\" \"),(piggy.attributes.object_group_title)?_c('small',{staticClass:\"text-muted\"},[_c('br'),_vm._v(\"\\n \"+_vm._s(piggy.attributes.object_group_title)+\"\\n \")]):_vm._e()]),_vm._v(\" \"),_c('td',[_c('div',{staticClass:\"progress-group\"},[_c('div',{staticClass:\"progress progress-sm\"},[(piggy.attributes.pct < 100)?_c('div',{staticClass:\"progress-bar progress-bar-striped primary\",style:({'width': piggy.attributes.pct + '%'})}):_vm._e(),_vm._v(\" \"),(100 === piggy.attributes.pct)?_c('div',{staticClass:\"progress-bar progress-bar-striped bg-success\",style:({'width': piggy.attributes.pct + '%'})}):_vm._e()])]),_vm._v(\" \"),_c('span',{staticClass:\"text-success\"},[_vm._v(\"\\n \"+_vm._s(Intl.NumberFormat(_vm.locale, {style: 'currency', currency: piggy.attributes.currency_code}).format(piggy.attributes.current_amount))+\"\\n \")]),_vm._v(\"\\n of\\n \"),_c('span',{staticClass:\"text-success\"},[_vm._v(_vm._s(Intl.NumberFormat(_vm.locale, {\n style: 'currency',\n currency: piggy.attributes.currency_code\n }).format(piggy.attributes.target_amount)))])])])}),0)])]):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"card-footer\"},[_c('a',{staticClass:\"btn btn-default button-sm\",attrs:{\"href\":\"./piggy-banks\"}},[_c('i',{staticClass:\"far fa-money-bill-alt\"}),_vm._v(\" \"+_vm._s(_vm.$t('firefly.go_to_piggies')))])])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"text-center\"},[_c('i',{staticClass:\"fas fa-spinner fa-spin\"})])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"text-center\"},[_c('i',{staticClass:\"fas fa-exclamation-triangle text-danger\"})])}]\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TransactionListLarge.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TransactionListLarge.vue?vue&type=script&lang=js&\"","\n\n\n\n\n\n\n","import { render, staticRenderFns } from \"./TransactionListLarge.vue?vue&type=template&id=6e420753&scoped=true&\"\nimport script from \"./TransactionListLarge.vue?vue&type=script&lang=js&\"\nexport * from \"./TransactionListLarge.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6e420753\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('table',{staticClass:\"table table-striped table-sm\"},[_c('caption',{staticStyle:{\"display\":\"none\"}},[_vm._v(_vm._s(_vm.$t('firefly.transaction_table_description')))]),_vm._v(\" \"),_c('thead',[_c('tr',[_c('th',{staticClass:\"text-left\",attrs:{\"scope\":\"col\"}},[_vm._v(_vm._s(_vm.$t('firefly.description')))]),_vm._v(\" \"),_c('th',{attrs:{\"scope\":\"col\"}},[_vm._v(_vm._s(_vm.$t('firefly.opposing_account')))]),_vm._v(\" \"),_c('th',{staticClass:\"text-right\",attrs:{\"scope\":\"col\"}},[_vm._v(_vm._s(_vm.$t('firefly.amount')))]),_vm._v(\" \"),_c('th',{attrs:{\"scope\":\"col\"}},[_vm._v(_vm._s(_vm.$t('firefly.category')))]),_vm._v(\" \"),_c('th',{attrs:{\"scope\":\"col\"}},[_vm._v(_vm._s(_vm.$t('firefly.budget')))])])]),_vm._v(\" \"),_c('tbody',_vm._l((this.transactions),function(transaction){return _c('tr',[_c('td',[_c('a',{attrs:{\"href\":'transactions/show/' + transaction.id,\"title\":transaction.date}},[(transaction.attributes.transactions.length > 1)?_c('span',[_vm._v(_vm._s(transaction.attributes.group_title))]):_vm._e(),_vm._v(\" \"),(1===transaction.attributes.transactions.length)?_c('span',[_vm._v(_vm._s(transaction.attributes.transactions[0].description))]):_vm._e()])]),_vm._v(\" \"),_c('td',_vm._l((transaction.attributes.transactions),function(tr){return _c('span',[('withdrawal' === tr.type)?_c('a',{attrs:{\"href\":'accounts/show/' + tr.destination_id}},[_vm._v(_vm._s(tr.destination_name))]):_vm._e(),_vm._v(\" \"),('deposit' === tr.type)?_c('a',{attrs:{\"href\":'accounts/show/' + tr.source_id}},[_vm._v(_vm._s(tr.source_name))]):_vm._e(),_vm._v(\" \"),('transfer' === tr.type && parseInt(tr.source_id) === _vm.account_id)?_c('a',{attrs:{\"href\":'accounts/show/' + tr.destination_id}},[_vm._v(_vm._s(tr.destination_name))]):_vm._e(),_vm._v(\" \"),('transfer' === tr.type && parseInt(tr.destination_id) === _vm.account_id)?_c('a',{attrs:{\"href\":'accounts/show/' + tr.source_id}},[_vm._v(_vm._s(tr.source_name))]):_vm._e(),_vm._v(\" \"),_c('br')])}),0),_vm._v(\" \"),_c('td',{staticStyle:{\"text-align\":\"right\"}},_vm._l((transaction.attributes.transactions),function(tr){return _c('span',[('withdrawal' === tr.type)?_c('span',{staticClass:\"text-danger\"},[_vm._v(\"\\n \"+_vm._s(Intl.NumberFormat(_vm.locale, {style: 'currency', currency: tr.currency_code}).format(tr.amount * -1))),_c('br')]):_vm._e(),_vm._v(\" \"),('deposit' === tr.type)?_c('span',{staticClass:\"text-success\"},[_vm._v(\"\\n \"+_vm._s(Intl.NumberFormat(_vm.locale, {style: 'currency', currency: tr.currency_code}).format(tr.amount))),_c('br')]):_vm._e(),_vm._v(\" \"),('transfer' === tr.type && parseInt(tr.source_id) === _vm.account_id)?_c('span',{staticClass:\"text-info\"},[_vm._v(\"\\n \"+_vm._s(Intl.NumberFormat(_vm.locale, {style: 'currency', currency: tr.currency_code}).format(tr.amount * -1))),_c('br')]):_vm._e(),_vm._v(\" \"),('transfer' === tr.type && parseInt(tr.destination_id) === _vm.account_id)?_c('span',{staticClass:\"text-info\"},[_vm._v(\"\\n \"+_vm._s(Intl.NumberFormat(_vm.locale, {style: 'currency', currency: tr.currency_code}).format(tr.amount))),_c('br')]):_vm._e()])}),0),_vm._v(\" \"),_c('td',_vm._l((transaction.attributes.transactions),function(tr){return _c('span',[(0!==tr.category_id)?_c('a',{attrs:{\"href\":'categories/show/' + tr.category_id}},[_vm._v(_vm._s(tr.category_name))]):_vm._e(),_c('br')])}),0),_vm._v(\" \"),_c('td',_vm._l((transaction.attributes.transactions),function(tr){return _c('span',[(0!==tr.budget_id)?_c('a',{attrs:{\"href\":'budgets/show/' + tr.budget_id}},[_vm._v(_vm._s(tr.budget_name))]):_vm._e(),_c('br')])}),0)])}),0)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TransactionListMedium.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TransactionListMedium.vue?vue&type=script&lang=js&\"","\n\n\n\n\n\n\n","import { render, staticRenderFns } from \"./TransactionListMedium.vue?vue&type=template&id=0d4f7042&scoped=true&\"\nimport script from \"./TransactionListMedium.vue?vue&type=script&lang=js&\"\nexport * from \"./TransactionListMedium.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"0d4f7042\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('table',{staticClass:\"table table-striped table-sm\"},[_c('caption',{staticStyle:{\"display\":\"none\"}},[_vm._v(_vm._s(_vm.$t('firefly.transaction_table_description')))]),_vm._v(\" \"),_c('thead',[_c('tr',[_c('th',{staticClass:\"text-left\",attrs:{\"scope\":\"col\"}},[_vm._v(_vm._s(_vm.$t('firefly.description')))]),_vm._v(\" \"),_c('th',{attrs:{\"scope\":\"col\"}},[_vm._v(_vm._s(_vm.$t('firefly.opposing_account')))]),_vm._v(\" \"),_c('th',{staticClass:\"text-right\",attrs:{\"scope\":\"col\"}},[_vm._v(_vm._s(_vm.$t('firefly.amount')))])])]),_vm._v(\" \"),_c('tbody',_vm._l((this.transactions),function(transaction){return _c('tr',[_c('td',[_c('a',{attrs:{\"href\":'transactions/show/' + transaction.id,\"title\":transaction.date}},[(transaction.attributes.transactions.length > 1)?_c('span',[_vm._v(_vm._s(transaction.attributes.group_title))]):_vm._e(),_vm._v(\" \"),(1===transaction.attributes.transactions.length)?_c('span',[_vm._v(_vm._s(transaction.attributes.transactions[0].description))]):_vm._e()])]),_vm._v(\" \"),_c('td',_vm._l((transaction.attributes.transactions),function(tr){return _c('span',[('withdrawal' === tr.type)?_c('a',{attrs:{\"href\":'accounts/show/' + tr.destination_id}},[_vm._v(_vm._s(tr.destination_name))]):_vm._e(),_vm._v(\" \"),('deposit' === tr.type)?_c('a',{attrs:{\"href\":'accounts/show/' + tr.source_id}},[_vm._v(_vm._s(tr.source_name))]):_vm._e(),_vm._v(\" \"),('transfer' === tr.type && parseInt(tr.source_id) === _vm.account_id)?_c('a',{attrs:{\"href\":'accounts/show/' + tr.destination_id}},[_vm._v(_vm._s(tr.destination_name))]):_vm._e(),_vm._v(\" \"),('transfer' === tr.type && parseInt(tr.destination_id) === _vm.account_id)?_c('a',{attrs:{\"href\":'accounts/show/' + tr.source_id}},[_vm._v(_vm._s(tr.source_name))]):_vm._e(),_vm._v(\" \"),_c('br')])}),0),_vm._v(\" \"),_c('td',{staticStyle:{\"text-align\":\"right\"}},_vm._l((transaction.attributes.transactions),function(tr){return _c('span',[('withdrawal' === tr.type)?_c('span',{staticClass:\"text-danger\"},[_vm._v(\"\\n \"+_vm._s(Intl.NumberFormat(_vm.locale, {style: 'currency', currency: tr.currency_code}).format(tr.amount * -1))),_c('br')]):_vm._e(),_vm._v(\" \"),('deposit' === tr.type)?_c('span',{staticClass:\"text-success\"},[_vm._v(\"\\n \"+_vm._s(Intl.NumberFormat(_vm.locale, {style: 'currency', currency: tr.currency_code}).format(tr.amount))),_c('br')]):_vm._e(),_vm._v(\" \"),('transfer' === tr.type && parseInt(tr.source_id) === _vm.account_id)?_c('span',{staticClass:\"text-info\"},[_vm._v(\"\\n \"+_vm._s(Intl.NumberFormat(_vm.locale, {style: 'currency', currency: tr.currency_code}).format(tr.amount * -1))),_c('br')]):_vm._e(),_vm._v(\" \"),('transfer' === tr.type && parseInt(tr.destination_id) === _vm.account_id)?_c('span',{staticClass:\"text-info\"},[_vm._v(\"\\n \"+_vm._s(Intl.NumberFormat(_vm.locale, {style: 'currency', currency: tr.currency_code}).format(tr.amount))),_c('br')]):_vm._e()])}),0)])}),0)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TransactionListSmall.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TransactionListSmall.vue?vue&type=script&lang=js&\"","\n\n\n\n\n\n\n","import { render, staticRenderFns } from \"./TransactionListSmall.vue?vue&type=template&id=4cd7a656&scoped=true&\"\nimport script from \"./TransactionListSmall.vue?vue&type=script&lang=js&\"\nexport * from \"./TransactionListSmall.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4cd7a656\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('table',{staticClass:\"table table-striped table-sm\"},[_c('caption',{staticStyle:{\"display\":\"none\"}},[_vm._v(_vm._s(_vm.$t('firefly.transaction_table_description')))]),_vm._v(\" \"),_c('thead',[_c('tr',[_c('th',{staticClass:\"text-left\",attrs:{\"scope\":\"col\"}},[_vm._v(_vm._s(_vm.$t('firefly.description')))]),_vm._v(\" \"),_c('th',{staticClass:\"text-right\",attrs:{\"scope\":\"col\"}},[_vm._v(_vm._s(_vm.$t('firefly.amount')))])])]),_vm._v(\" \"),_c('tbody',_vm._l((this.transactions),function(transaction){return _c('tr',[_c('td',[_c('a',{attrs:{\"href\":'transactions/show/' + transaction.id,\"title\":new Intl.DateTimeFormat(_vm.locale, { year: 'numeric', month: 'long', day: 'numeric' }).format(new Date(transaction.attributes.transactions[0].date))}},[(transaction.attributes.transactions.length > 1)?_c('span',[_vm._v(_vm._s(transaction.attributes.group_title))]):_vm._e(),_vm._v(\" \"),(1===transaction.attributes.transactions.length)?_c('span',[_vm._v(_vm._s(transaction.attributes.transactions[0].description))]):_vm._e()])]),_vm._v(\" \"),_c('td',{staticStyle:{\"text-align\":\"right\"}},_vm._l((transaction.attributes.transactions),function(tr){return _c('span',[('withdrawal' === tr.type)?_c('span',{staticClass:\"text-danger\"},[_vm._v(\"\\n \"+_vm._s(Intl.NumberFormat(_vm.locale, {style: 'currency', currency: tr.currency_code}).format(tr.amount * -1))),_c('br')]):_vm._e(),_vm._v(\" \"),('deposit' === tr.type)?_c('span',{staticClass:\"text-success\"},[_vm._v(\"\\n \"+_vm._s(Intl.NumberFormat(_vm.locale, {style: 'currency', currency: tr.currency_code}).format(tr.amount))),_c('br')]):_vm._e(),_vm._v(\" \"),('transfer' === tr.type && parseInt(tr.source_id) === _vm.account_id)?_c('span',{staticClass:\"text-info\"},[_vm._v(\"\\n \"+_vm._s(Intl.NumberFormat(_vm.locale, {style: 'currency', currency: tr.currency_code}).format(tr.amount * -1))),_c('br')]):_vm._e(),_vm._v(\" \"),('transfer' === tr.type && parseInt(tr.destination_id) === _vm.account_id)?_c('span',{staticClass:\"text-info\"},[_vm._v(\"\\n \"+_vm._s(Intl.NumberFormat(_vm.locale, {style: 'currency', currency: tr.currency_code}).format(tr.amount))),_c('br')]):_vm._e()])}),0)])}),0)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MainCategoryList.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MainCategoryList.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./MainCategoryList.vue?vue&type=template&id=6812bb3b&scoped=true&\"\nimport script from \"./MainCategoryList.vue?vue&type=script&lang=js&\"\nexport * from \"./MainCategoryList.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"6812bb3b\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"card\"},[_c('div',{staticClass:\"card-header\"},[_c('h3',{staticClass:\"card-title\"},[_vm._v(_vm._s(_vm.$t('firefly.categories')))])]),_vm._v(\" \"),(_vm.loading && !_vm.error)?_c('div',{staticClass:\"card-body\"},[_vm._m(0)]):_vm._e(),_vm._v(\" \"),(_vm.error)?_c('div',{staticClass:\"card-body\"},[_vm._m(1)]):_vm._e(),_vm._v(\" \"),(!_vm.loading && !_vm.error)?_c('div',{staticClass:\"card-body table-responsive p-0\"},[_c('table',{staticClass:\"table table-sm\"},[_c('tbody',_vm._l((_vm.sortedList),function(category){return _c('tr',[_c('td',{staticStyle:{\"width\":\"20%\"}},[_c('a',{attrs:{\"href\":'./categories/show/' + category.id}},[_vm._v(_vm._s(category.name))])]),_vm._v(\" \"),_c('td',{staticClass:\"align-middle\"},[(category.spentPct > 0)?_c('div',{staticClass:\"progress\"},[_c('div',{staticClass:\"progress-bar progress-bar-striped bg-danger\",style:({ width: category.spentPct + '%'}),attrs:{\"aria-valuenow\":category.spentPct,\"aria-valuemax\":\"100\",\"aria-valuemin\":\"0\",\"role\":\"progressbar\"}},[(category.spentPct > 20)?_c('span',[_vm._v(\"\\n \"+_vm._s(Intl.NumberFormat(_vm.locale, {style: 'currency', currency: category.currency_code}).format(category.spent))+\"\\n \")]):_vm._e()]),_vm._v(\" \"),(category.spentPct <= 20)?_c('span',{staticClass:\"progress-label\",staticStyle:{\"line-height\":\"16px\"}},[_vm._v(\" \\n \"+_vm._s(Intl.NumberFormat(_vm.locale, {style: 'currency', currency: category.currency_code}).format(category.spent))+\"\\n \")]):_vm._e()]):_vm._e(),_vm._v(\" \"),(category.earnedPct > 0)?_c('div',{staticClass:\"progress justify-content-end\",attrs:{\"title\":\"hello2\"}},[(category.earnedPct <= 20)?_c('span',{staticStyle:{\"line-height\":\"16px\"}},[_vm._v(\"\\n \"+_vm._s(Intl.NumberFormat(_vm.locale, {style: 'currency', currency: category.currency_code}).format(category.earned))+\"\\n  \")]):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"progress-bar progress-bar-striped bg-success\",style:({ width: category.earnedPct + '%'}),attrs:{\"aria-valuenow\":category.earnedPct,\"aria-valuemax\":\"100\",\"aria-valuemin\":\"0\",\"role\":\"progressbar\",\"title\":\"hello\"}},[(category.earnedPct > 20)?_c('span',[_vm._v(\"\\n \"+_vm._s(Intl.NumberFormat(_vm.locale, {style: 'currency', currency: category.currency_code}).format(category.earned))+\"\\n \")]):_vm._e()])]):_vm._e()])])}),0)])]):_vm._e()])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"text-center\"},[_c('i',{staticClass:\"fas fa-spinner fa-spin\"})])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"text-center\"},[_c('i',{staticClass:\"fas fa-exclamation-triangle text-danger\"})])}]\n\nexport { render, staticRenderFns }","/*\n * dashboard.js\n * Copyright (c) 2020 james@firefly-iii.org\n *\n * This file is part of Firefly III (https://github.com/firefly-iii).\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n */\n\nimport Dashboard from \"../components/dashboard/Dashboard\";\nimport TopBoxes from \"../components/dashboard/TopBoxes\";\nimport MainAccount from \"../components/dashboard/MainAccount\";\nimport MainAccountList from \"../components/dashboard/MainAccountList\";\nimport MainBillsList from \"../components/dashboard/MainBillsList\";\nimport MainBudgetList from \"../components/dashboard/MainBudgetList\";\nimport MainCreditList from \"../components/dashboard/MainCreditList\";\nimport MainDebitList from \"../components/dashboard/MainDebitList\";\nimport MainPiggyList from \"../components/dashboard/MainPiggyList\";\nimport TransactionListLarge from \"../components/transactions/TransactionListLarge\";\nimport TransactionListMedium from \"../components/transactions/TransactionListMedium\";\nimport TransactionListSmall from \"../components/transactions/TransactionListSmall\";\nimport Calendar from \"../components/dashboard/Calendar\";\nimport MainCategoryList from \"../components/dashboard/MainCategoryList\";\nimport Vue from \"vue\";\nimport Vuex from 'vuex'\nimport store from '../components/store';\n\n/**\n * First we will load Axios via bootstrap.js\n * jquery and bootstrap-sass preloaded in app.js\n * vue, uiv and vuei18n are in app_vue.js\n */\n\nrequire('../bootstrap');\nrequire('chart.js');\n\nVue.component('transaction-list-large', TransactionListLarge);\nVue.component('transaction-list-medium', TransactionListMedium);\nVue.component('transaction-list-small', TransactionListSmall);\n\n// components as an example\n\nVue.component('dashboard', Dashboard);\nVue.component('top-boxes', TopBoxes);\nVue.component('main-account', MainAccount);\nVue.component('main-account-list', MainAccountList);\nVue.component('main-bills-list', MainBillsList);\nVue.component('main-budget-list', MainBudgetList);\nVue.component('main-category-list', MainCategoryList);\nVue.component('main-debit-list', MainDebitList);\nVue.component('main-credit-list', MainCreditList);\nVue.component('main-piggy-list', MainPiggyList);\n\nVue.use(Vuex);\n\nlet i18n = require('../i18n');\nlet props = {};\n\nnew Vue({\n i18n,\n store,\n el: \"#dashboard\",\n render: (createElement) => {\n return createElement(Dashboard, {props: props});\n },\n beforeCreate() {\n this.$store.commit('initialiseStore');\n this.$store.dispatch('updateCurrencyPreference');\n this.$store.dispatch('updateListPageSizePreference');\n this.$store.dispatch('dashboard/index/initialiseStore');\n },\n });\nnew Vue({\n i18n,\n store,\n el: \"#calendar\",\n render: (createElement) => {\n return createElement(Calendar, {props: props});\n },\n // TODO init store as well?\n });"],"sourceRoot":""} \ No newline at end of file diff --git a/public/v2/js/empty.js b/public/v2/js/empty.js index 0540d5da4c..04e4b3982b 100755 --- a/public/v2/js/empty.js +++ b/public/v2/js/empty.js @@ -1,2 +1,2 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[5],{299:function(n,o,p){n.exports=p(300)},300:function(n,o,p){p(16)}},[[299,0,1]]]); +(window.webpackJsonp=window.webpackJsonp||[]).push([[5],{330:function(n,o,p){n.exports=p(331)},331:function(n,o,p){p(41)}},[[330,0,1]]]); //# sourceMappingURL=empty.js.map \ No newline at end of file diff --git a/public/v2/js/new-user/index.js b/public/v2/js/new-user/index.js index 4140de5fb8..cbf8fa1a31 100755 --- a/public/v2/js/new-user/index.js +++ b/public/v2/js/new-user/index.js @@ -1,2 +1,2 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[6],{301:function(a,e,t){a.exports=t(427)},427:function(a,e,t){"use strict";t.r(e);var s={name:"Index"},n=t(1),i=Object(n.a)(s,(function(){var a=this.$createElement;this._self._c;return this._m(0)}),[function(){var a=this,e=a.$createElement,t=a._self._c||e;return t("div",{staticClass:"row"},[t("div",{staticClass:"col"},[t("div",{attrs:{id:"accordion"}},[t("div",{staticClass:"card card-primary"},[t("div",{staticClass:"card-header"},[t("h4",{staticClass:"card-title"},[t("a",{attrs:{"data-parent":"#accordion","data-toggle":"collapse",href:"#collapseOne"}},[a._v("\n Create new accounts\n ")])])]),a._v(" "),t("div",{staticClass:"panel-collapse collapse show",attrs:{id:"collapseOne"}},[t("div",{staticClass:"card-body"},[t("div",{staticClass:"row"},[t("div",{staticClass:"col"},[t("p",[a._v("Explain")])])]),a._v(" "),t("div",{staticClass:"row"},[t("div",{staticClass:"col-lg-4"},[a._v("\n A\n ")]),a._v(" "),t("div",{staticClass:"col-lg-8"},[a._v("\n B\n ")])])])])]),a._v(" "),t("div",{staticClass:"card card-secondary"},[t("div",{staticClass:"card-header"},[t("h4",{staticClass:"card-title"},[t("a",{attrs:{"data-parent":"#accordion","data-toggle":"collapse",href:"#collapseTwo"}},[a._v("\n Collapsible Group Danger\n ")])])]),a._v(" "),t("div",{staticClass:"panel-collapse collapse",attrs:{id:"collapseTwo"}},[t("div",{staticClass:"card-body"},[a._v("\n Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid.\n 3\n wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt\n laborum\n eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird on it squid single-origin coffee\n nulla\n assumenda shoreditch et. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred\n nesciunt sapiente ea proident. Ad vegan excepteur butcher vice lomo. Leggings occaecat craft\n beer\n farm-to-table, raw denim aesthetic synth nesciunt you probably haven't heard of them accusamus\n labore sustainable VHS.\n ")])])]),a._v(" "),t("div",{staticClass:"card card-secondary"},[t("div",{staticClass:"card-header"},[t("h4",{staticClass:"card-title"},[t("a",{attrs:{"data-parent":"#accordion","data-toggle":"collapse",href:"#collapseThree"}},[a._v("\n Collapsible Group Success\n ")])])]),a._v(" "),t("div",{staticClass:"panel-collapse collapse",attrs:{id:"collapseThree"}},[t("div",{staticClass:"card-body"},[a._v("\n Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid.\n 3\n wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt\n laborum\n eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird on it squid single-origin coffee\n nulla\n assumenda shoreditch et. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred\n nesciunt sapiente ea proident. Ad vegan excepteur butcher vice lomo. Leggings occaecat craft\n beer\n farm-to-table, raw denim aesthetic synth nesciunt you probably haven't heard of them accusamus\n labore sustainable VHS.\n ")])])])])])])}],!1,null,"2d2bc9db",null).exports;t(16);var c=t(19),r={};new Vue({i18n:c,render:function(a){return a(i,{props:r})}}).$mount("#newuser")}},[[301,0,1]]]); +(window.webpackJsonp=window.webpackJsonp||[]).push([[6],{332:function(a,e,t){a.exports=t(459)},459:function(a,e,t){"use strict";t.r(e);var s={name:"Index"},n=t(4),i=Object(n.a)(s,(function(){var a=this.$createElement;this._self._c;return this._m(0)}),[function(){var a=this,e=a.$createElement,t=a._self._c||e;return t("div",{staticClass:"row"},[t("div",{staticClass:"col"},[t("div",{attrs:{id:"accordion"}},[t("div",{staticClass:"card card-primary"},[t("div",{staticClass:"card-header"},[t("h4",{staticClass:"card-title"},[t("a",{attrs:{"data-parent":"#accordion","data-toggle":"collapse",href:"#collapseOne"}},[a._v("\n Create new accounts\n ")])])]),a._v(" "),t("div",{staticClass:"panel-collapse collapse show",attrs:{id:"collapseOne"}},[t("div",{staticClass:"card-body"},[t("div",{staticClass:"row"},[t("div",{staticClass:"col"},[t("p",[a._v("Explain")])])]),a._v(" "),t("div",{staticClass:"row"},[t("div",{staticClass:"col-lg-4"},[a._v("\n A\n ")]),a._v(" "),t("div",{staticClass:"col-lg-8"},[a._v("\n B\n ")])])])])]),a._v(" "),t("div",{staticClass:"card card-secondary"},[t("div",{staticClass:"card-header"},[t("h4",{staticClass:"card-title"},[t("a",{attrs:{"data-parent":"#accordion","data-toggle":"collapse",href:"#collapseTwo"}},[a._v("\n Collapsible Group Danger\n ")])])]),a._v(" "),t("div",{staticClass:"panel-collapse collapse",attrs:{id:"collapseTwo"}},[t("div",{staticClass:"card-body"},[a._v("\n Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid.\n 3\n wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt\n laborum\n eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird on it squid single-origin coffee\n nulla\n assumenda shoreditch et. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred\n nesciunt sapiente ea proident. Ad vegan excepteur butcher vice lomo. Leggings occaecat craft\n beer\n farm-to-table, raw denim aesthetic synth nesciunt you probably haven't heard of them accusamus\n labore sustainable VHS.\n ")])])]),a._v(" "),t("div",{staticClass:"card card-secondary"},[t("div",{staticClass:"card-header"},[t("h4",{staticClass:"card-title"},[t("a",{attrs:{"data-parent":"#accordion","data-toggle":"collapse",href:"#collapseThree"}},[a._v("\n Collapsible Group Success\n ")])])]),a._v(" "),t("div",{staticClass:"panel-collapse collapse",attrs:{id:"collapseThree"}},[t("div",{staticClass:"card-body"},[a._v("\n Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid.\n 3\n wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt\n laborum\n eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird on it squid single-origin coffee\n nulla\n assumenda shoreditch et. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred\n nesciunt sapiente ea proident. Ad vegan excepteur butcher vice lomo. Leggings occaecat craft\n beer\n farm-to-table, raw denim aesthetic synth nesciunt you probably haven't heard of them accusamus\n labore sustainable VHS.\n ")])])])])])])}],!1,null,"2d2bc9db",null).exports;t(41);var c=t(43),r={};new Vue({i18n:c,render:function(a){return a(i,{props:r})}}).$mount("#newuser")}},[[332,0,1]]]); //# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/public/v2/js/register.js b/public/v2/js/register.js index a71ebc7ab6..4f6dfabd10 100755 --- a/public/v2/js/register.js +++ b/public/v2/js/register.js @@ -1,2 +1,2 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[7],{423:function(n,o,w){n.exports=w(424)},424:function(n,o,w){w(425)},425:function(n,o,w){window.$=window.jQuery=w(25)}},[[423,0,1]]]); +(window.webpackJsonp=window.webpackJsonp||[]).push([[7],{454:function(n,o,w){n.exports=w(455)},455:function(n,o,w){w(456)},456:function(n,o,w){window.$=window.jQuery=w(49)}},[[454,0,1]]]); //# sourceMappingURL=register.js.map \ No newline at end of file diff --git a/public/v2/js/transactions/create.js b/public/v2/js/transactions/create.js index fd9ad89b1a..129d8dae70 100755 --- a/public/v2/js/transactions/create.js +++ b/public/v2/js/transactions/create.js @@ -1,2 +1,2 @@ -(window.webpackJsonp=window.webpackJsonp||[]).push([[8],{304:function(t,e,i){t.exports=i(430)},430:function(t,e,i){"use strict";i.r(e);var n=i(17),s=i(3),a=i(39),r=i(22),o=i(40),c=i(38),d=i(7);function u(t,e){var i=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),i.push.apply(i,n)}return i}function l(t){for(var e=1;e0&&(t.group_title=this.groupTitle),this.transactions)this.transactions.hasOwnProperty(e)&&/^0$|^[1-9]\d*$/.test(e)&&e<=4294967294&&t.transactions.push(this.convertSplit(e,this.transactions[e]));return t.transactions.length>1&&""!==t.transactions[0].description&&(t.group_title=t.transactions[0].description),t.transactions.length>1&&(t=this.synchronizeAccounts(t)),t},synchronizeAccounts:function(t){for(var e in t.transactions)t.transactions.hasOwnProperty(e)&&/^0$|^[1-9]\d*$/.test(e)&&e<=4294967294&&("Transfer"===this.transactionType&&(t.transactions[e].source_name=null,t.transactions[e].destination_name=null,e>0&&(t.transactions[e].source_id=t.transactions[0].source_id,t.transactions[e].destination_id=t.transactions[0].destination_id)),"Deposit"===this.transactionType&&(t.transactions[e].destination_name=null,e>0&&(t.transactions[e].destination_id=t.transactions[0].destination_id)),"Withdrawal"===this.transactionType&&(t.transactions[e].source_name=null,e>0&&(t.transactions[e].source_id=t.transactions[0].source_id)));return t},switchAccounts:function(t){var e=this.transactions[t].source_account_id,i=this.transactions[t].source_account_name,n=this.transactions[t].source_account_type,s=this.transactions[t].destination_account_id,a=this.transactions[t].destination_account_name,r=this.transactions[t].destination_account_type;this.updateField({index:0,field:"source_account_id",value:s}),this.updateField({index:0,field:"source_account_name",value:a}),this.updateField({index:0,field:"source_account_type",value:r}),this.updateField({index:0,field:"destination_account_id",value:e}),this.updateField({index:0,field:"destination_account_name",value:i}),this.updateField({index:0,field:"destination_account_type",value:n}),this.calculateTransactionType(0)},convertSplit:function(t,e){var i,n,s,a,r="invalid";if(this.time instanceof Date&&!isNaN(this.time)&&this.date instanceof Date&&!isNaN(this.date)){var o=new Date(this.date);o.setHours(this.time.getHours()),o.setMinutes(this.time.getMinutes()),o.setSeconds(this.time.getSeconds()),r=Object(d.c)(o)}var c,u,l,p={description:e.description,date:r,type:this.transactionType,source_id:null!==(i=e.source_account_id)&&void 0!==i?i:null,source_name:null!==(n=e.source_account_name)&&void 0!==n?n:null,destination_id:null!==(s=e.destination_account_id)&&void 0!==s?s:null,destination_name:null!==(a=e.destination_account_name)&&void 0!==a?a:null,currency_id:e.currency_id,amount:e.amount,budget_id:e.budget_id,category_name:e.category,tags:e.tags,interest_date:e.interest_date,book_date:e.book_date,process_date:e.process_date,due_date:e.due_date,payment_date:e.payment_date,invoice_date:e.invoice_date,internal_reference:e.internal_reference,external_url:e.external_url,notes:e.notes,external_id:e.external_id,zoom_level:e.zoom_level,longitude:e.longitude,latitude:e.latitude,order:0,reconciled:!1};0!==e.piggy_bank_id&&(p.piggy_bank_id=e.piggy_bank_id),0!==e.bill_id&&(p.bill_id=e.bill_id),0!==e.foreign_currency_id&&""!==e.foreign_amount&&(p.foreign_currency_id=e.foreign_currency_id),""!==e.foreign_amount&&(p.foreign_amount=e.foreign_amount),c=this.transactionType?this.transactionType.toLowerCase():"any",u=this.transactions[0].source_account_type,l=this.transactions[0].destination_account_type,p.currency_id=e.source_account_currency_id,"any"===c&&["asset","Asset account","Loan","Debt","Mortgage"].includes(u)&&(c="withdrawal"),"any"===c&&["asset","Asset account","Loan","Debt","Mortgage"].includes(l)&&(c="deposit",p.currency_id=e.destination_account_currency_id),p.type=c;var h=[];for(var _ in e.links)if(e.links.hasOwnProperty(_)&&/^0$|^[1-9]\d*$/.test(_)&&_<=4294967294){var f=e.links[_],m=f.link_type_id.split("-"),v="outward"===m[1]?0:parseInt(f.transaction_journal_id),y="inward"===m[1]?0:parseInt(f.transaction_journal_id),b={link_type_id:parseInt(m[0]),inward_id:v,outward_id:y};h.push(b)}return p.links=h,p},getAllowedOpposingTypes:function(){var t=this;axios.get("./api/v1/configuration/firefly.allowed_opposing_types").then((function(e){t.allowedOpposingTypes=e.data.data.value}))},getAccountToTransaction:function(){var t=this;axios.get("./api/v1/configuration/firefly.account_to_transaction").then((function(e){t.accountToTransaction=e.data.data.value}))},getCustomFields:function(){var t=this;axios.get("./api/v1/preferences/transaction_journal_optional_fields").then((function(e){t.customFields=e.data.data.attributes.data}))},setDestinationAllowedTypes:function(t){0!==t.length?this.destinationAllowedTypes=t:this.destinationAllowedTypes=this.defaultDestinationAllowedTypes},setSourceAllowedTypes:function(t){0!==t.length?this.sourceAllowedTypes=t:this.sourceAllowedTypes=this.defaultSourceAllowedTypes}})},v=i(1),y=Object(v.a)(m,(function(){var t=this,e=t.$createElement,i=t._self._c||e;return i("div",[i("alert",{attrs:{message:t.errorMessage,type:"danger"}}),t._v(" "),i("alert",{attrs:{message:t.successMessage,type:"success"}}),t._v(" "),i("SplitPills",{attrs:{transactions:t.transactions}}),t._v(" "),i("div",{staticClass:"tab-content"},t._l(this.transactions,(function(e,n){return i("SplitForm",{key:n,attrs:{"allowed-opposing-types":t.allowedOpposingTypes,count:t.transactions.length,"custom-fields":t.customFields,date:t.date,"destination-allowed-types":t.destinationAllowedTypes,index:n,"source-allowed-types":t.sourceAllowedTypes,"submitted-transaction":t.submittedTransaction,time:t.time,transaction:e,"transaction-type":t.transactionType},on:{"uploaded-attachments":function(e){return t.uploadedAttachment(e)},"set-marker-location":function(e){return t.storeLocation(e)},"set-account":function(e){return t.storeAccountValue(e)},"switch-accounts":function(e){return t.switchAccounts(e)},"set-date":function(e){return t.storeDate(e)},"set-time":function(e){return t.storeTime(e)},"set-field":function(e){return t.storeField(e)},"remove-transaction":function(e){return t.removeTransaction(e)},"set-dest-types":function(e){return t.setDestinationAllowedTypes(e)},"set-src-types":function(e){return t.setSourceAllowedTypes(e)}}})})),1),t._v(" "),i("div",{staticClass:"row"},[i("div",{staticClass:"col-xl-6 col-lg-6 col-md-12 col-sm-12 col-xs-12"},[t.transactions.length>1?i("div",{staticClass:"card"},[i("div",{staticClass:"card-body"},[i("div",{staticClass:"row"},[i("div",{staticClass:"col"},[i("TransactionGroupTitle",{attrs:{errors:this.groupTitleErrors},on:{"set-group-title":function(e){return t.storeGroupTitle(e)}},model:{value:this.groupTitle,callback:function(e){t.$set(this,"groupTitle",e)},expression:"this.groupTitle"}})],1)])])]):t._e()]),t._v(" "),i("div",{staticClass:"col-xl-6 col-lg-6 col-md-12 col-sm-12 col-xs-12"},[i("div",{staticClass:"card card-primary"},[i("div",{staticClass:"card-body"},[i("div",{staticClass:"row"},[i("div",{staticClass:"col"},[i("div",{staticClass:"text-xs d-none d-lg-block d-xl-block"},[t._v("\n  \n ")]),t._v(" "),i("button",{staticClass:"btn btn-outline-primary btn-block",on:{click:t.addTransaction}},[i("i",{staticClass:"far fa-clone"}),t._v(" "+t._s(t.$t("firefly.add_another_split"))+"\n ")])]),t._v(" "),i("div",{staticClass:"col"},[i("div",{staticClass:"text-xs d-none d-lg-block d-xl-block"},[t._v("\n  \n ")]),t._v(" "),i("button",{staticClass:"btn btn-success btn-block",attrs:{disabled:!t.enableSubmit},on:{click:t.submitTransaction}},[t.enableSubmit?i("span",[i("i",{staticClass:"far fa-save"}),t._v(" "+t._s(t.$t("firefly.store_transaction")))]):t._e(),t._v(" "),t.enableSubmit?t._e():i("span",[i("i",{staticClass:"fas fa-spinner fa-spin"})])])])]),t._v(" "),i("div",{staticClass:"row"},[i("div",{staticClass:"col"},[t._v("\n  \n ")]),t._v(" "),i("div",{staticClass:"col"},[i("div",{staticClass:"form-check"},[i("input",{directives:[{name:"model",rawName:"v-model",value:t.createAnother,expression:"createAnother"}],staticClass:"form-check-input",attrs:{id:"createAnother",type:"checkbox"},domProps:{checked:Array.isArray(t.createAnother)?t._i(t.createAnother,null)>-1:t.createAnother},on:{change:function(e){var i=t.createAnother,n=e.target,s=!!n.checked;if(Array.isArray(i)){var a=t._i(i,null);n.checked?a<0&&(t.createAnother=i.concat([null])):a>-1&&(t.createAnother=i.slice(0,a).concat(i.slice(a+1)))}else t.createAnother=s}}}),t._v(" "),i("label",{staticClass:"form-check-label",attrs:{for:"createAnother"}},[i("span",{staticClass:"small"},[t._v(t._s(t.$t("firefly.create_another")))])])]),t._v(" "),i("div",{staticClass:"form-check"},[i("input",{directives:[{name:"model",rawName:"v-model",value:t.resetFormAfter,expression:"resetFormAfter"}],staticClass:"form-check-input",attrs:{id:"resetFormAfter",disabled:!t.createAnother,type:"checkbox"},domProps:{checked:Array.isArray(t.resetFormAfter)?t._i(t.resetFormAfter,null)>-1:t.resetFormAfter},on:{change:function(e){var i=t.resetFormAfter,n=e.target,s=!!n.checked;if(Array.isArray(i)){var a=t._i(i,null);n.checked?a<0&&(t.resetFormAfter=i.concat([null])):a>-1&&(t.resetFormAfter=i.slice(0,a).concat(i.slice(a+1)))}else t.resetFormAfter=s}}}),t._v(" "),i("label",{staticClass:"form-check-label",attrs:{for:"resetFormAfter"}},[i("span",{staticClass:"small"},[t._v(t._s(t.$t("firefly.reset_after")))])])])])])])])])])],1)}),[],!1,null,"1b78c213",null).exports,b=i(2),g=i.n(b);i(16),g.a.config.productionTip=!1;var T=i(19),A={};new g.a({i18n:T,store:n.a,render:function(t){return t(y,{props:A})},beforeCreate:function(){this.$store.commit("initialiseStore"),this.$store.dispatch("updateCurrencyPreference")}}).$mount("#transactions_create")}},[[304,0,1]]]); +(window.webpackJsonp=window.webpackJsonp||[]).push([[8],{335:function(t,e,i){t.exports=i(461)},461:function(t,e,i){"use strict";i.r(e);var n=i(30),s=i(14),a=i(68),r=i(46),o=i(69),c=i(66),d=i(29);function u(t,e){var i=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),i.push.apply(i,n)}return i}function l(t){for(var e=1;e0&&(t.group_title=this.groupTitle),this.transactions)this.transactions.hasOwnProperty(e)&&/^0$|^[1-9]\d*$/.test(e)&&e<=4294967294&&t.transactions.push(this.convertSplit(e,this.transactions[e]));return t.transactions.length>1&&""!==t.transactions[0].description&&(t.group_title=t.transactions[0].description),t.transactions.length>1&&(t=this.synchronizeAccounts(t)),t},synchronizeAccounts:function(t){for(var e in t.transactions)t.transactions.hasOwnProperty(e)&&/^0$|^[1-9]\d*$/.test(e)&&e<=4294967294&&("Transfer"===this.transactionType&&(t.transactions[e].source_name=null,t.transactions[e].destination_name=null,e>0&&(t.transactions[e].source_id=t.transactions[0].source_id,t.transactions[e].destination_id=t.transactions[0].destination_id)),"Deposit"===this.transactionType&&(t.transactions[e].destination_name=null,e>0&&(t.transactions[e].destination_id=t.transactions[0].destination_id)),"Withdrawal"===this.transactionType&&(t.transactions[e].source_name=null,e>0&&(t.transactions[e].source_id=t.transactions[0].source_id)));return t},switchAccounts:function(t){var e=this.transactions[t].source_account_id,i=this.transactions[t].source_account_name,n=this.transactions[t].source_account_type,s=this.transactions[t].destination_account_id,a=this.transactions[t].destination_account_name,r=this.transactions[t].destination_account_type;this.updateField({index:0,field:"source_account_id",value:s}),this.updateField({index:0,field:"source_account_name",value:a}),this.updateField({index:0,field:"source_account_type",value:r}),this.updateField({index:0,field:"destination_account_id",value:e}),this.updateField({index:0,field:"destination_account_name",value:i}),this.updateField({index:0,field:"destination_account_type",value:n}),this.calculateTransactionType(0)},convertSplit:function(t,e){var i,n,s,a,r="invalid";if(this.time instanceof Date&&!isNaN(this.time)&&this.date instanceof Date&&!isNaN(this.date)){var o=new Date(this.date);o.setHours(this.time.getHours()),o.setMinutes(this.time.getMinutes()),o.setSeconds(this.time.getSeconds()),r=Object(d.c)(o)}var c,u,l,p={description:e.description,date:r,type:this.transactionType,source_id:null!==(i=e.source_account_id)&&void 0!==i?i:null,source_name:null!==(n=e.source_account_name)&&void 0!==n?n:null,destination_id:null!==(s=e.destination_account_id)&&void 0!==s?s:null,destination_name:null!==(a=e.destination_account_name)&&void 0!==a?a:null,currency_id:e.currency_id,amount:e.amount,budget_id:e.budget_id,category_name:e.category,tags:e.tags,interest_date:e.interest_date,book_date:e.book_date,process_date:e.process_date,due_date:e.due_date,payment_date:e.payment_date,invoice_date:e.invoice_date,internal_reference:e.internal_reference,external_url:e.external_url,notes:e.notes,external_id:e.external_id,zoom_level:e.zoom_level,longitude:e.longitude,latitude:e.latitude,order:0,reconciled:!1};0!==e.piggy_bank_id&&(p.piggy_bank_id=e.piggy_bank_id),0!==e.bill_id&&(p.bill_id=e.bill_id),0!==e.foreign_currency_id&&""!==e.foreign_amount&&(p.foreign_currency_id=e.foreign_currency_id),""!==e.foreign_amount&&(p.foreign_amount=e.foreign_amount),c=this.transactionType?this.transactionType.toLowerCase():"any",u=this.transactions[0].source_account_type,l=this.transactions[0].destination_account_type,p.currency_id=e.source_account_currency_id,"any"===c&&["asset","Asset account","Loan","Debt","Mortgage"].includes(u)&&(c="withdrawal"),"any"===c&&["asset","Asset account","Loan","Debt","Mortgage"].includes(l)&&(c="deposit",p.currency_id=e.destination_account_currency_id),p.type=c;var h=[];for(var _ in e.links)if(e.links.hasOwnProperty(_)&&/^0$|^[1-9]\d*$/.test(_)&&_<=4294967294){var f=e.links[_],m=f.link_type_id.split("-"),v="outward"===m[1]?0:parseInt(f.transaction_journal_id),y="inward"===m[1]?0:parseInt(f.transaction_journal_id),b={link_type_id:parseInt(m[0]),inward_id:v,outward_id:y};h.push(b)}return p.links=h,p},getAllowedOpposingTypes:function(){var t=this;axios.get("./api/v1/configuration/firefly.allowed_opposing_types").then((function(e){t.allowedOpposingTypes=e.data.data.value}))},getAccountToTransaction:function(){var t=this;axios.get("./api/v1/configuration/firefly.account_to_transaction").then((function(e){t.accountToTransaction=e.data.data.value}))},getCustomFields:function(){var t=this;axios.get("./api/v1/preferences/transaction_journal_optional_fields").then((function(e){t.customFields=e.data.data.attributes.data}))},setDestinationAllowedTypes:function(t){0!==t.length?this.destinationAllowedTypes=t:this.destinationAllowedTypes=this.defaultDestinationAllowedTypes},setSourceAllowedTypes:function(t){0!==t.length?this.sourceAllowedTypes=t:this.sourceAllowedTypes=this.defaultSourceAllowedTypes}})},v=i(4),y=Object(v.a)(m,(function(){var t=this,e=t.$createElement,i=t._self._c||e;return i("div",[i("alert",{attrs:{message:t.errorMessage,type:"danger"}}),t._v(" "),i("alert",{attrs:{message:t.successMessage,type:"success"}}),t._v(" "),i("SplitPills",{attrs:{transactions:t.transactions}}),t._v(" "),i("div",{staticClass:"tab-content"},t._l(this.transactions,(function(e,n){return i("SplitForm",{key:n,attrs:{"allowed-opposing-types":t.allowedOpposingTypes,count:t.transactions.length,"custom-fields":t.customFields,date:t.date,"destination-allowed-types":t.destinationAllowedTypes,index:n,"source-allowed-types":t.sourceAllowedTypes,"submitted-transaction":t.submittedTransaction,time:t.time,transaction:e,"transaction-type":t.transactionType},on:{"uploaded-attachments":function(e){return t.uploadedAttachment(e)},"set-marker-location":function(e){return t.storeLocation(e)},"set-account":function(e){return t.storeAccountValue(e)},"switch-accounts":function(e){return t.switchAccounts(e)},"set-date":function(e){return t.storeDate(e)},"set-time":function(e){return t.storeTime(e)},"set-field":function(e){return t.storeField(e)},"remove-transaction":function(e){return t.removeTransaction(e)},"set-dest-types":function(e){return t.setDestinationAllowedTypes(e)},"set-src-types":function(e){return t.setSourceAllowedTypes(e)}}})})),1),t._v(" "),i("div",{staticClass:"row"},[i("div",{staticClass:"col-xl-6 col-lg-6 col-md-12 col-sm-12 col-xs-12"},[t.transactions.length>1?i("div",{staticClass:"card"},[i("div",{staticClass:"card-body"},[i("div",{staticClass:"row"},[i("div",{staticClass:"col"},[i("TransactionGroupTitle",{attrs:{errors:this.groupTitleErrors},on:{"set-group-title":function(e){return t.storeGroupTitle(e)}},model:{value:this.groupTitle,callback:function(e){t.$set(this,"groupTitle",e)},expression:"this.groupTitle"}})],1)])])]):t._e()]),t._v(" "),i("div",{staticClass:"col-xl-6 col-lg-6 col-md-12 col-sm-12 col-xs-12"},[i("div",{staticClass:"card card-primary"},[i("div",{staticClass:"card-body"},[i("div",{staticClass:"row"},[i("div",{staticClass:"col"},[i("div",{staticClass:"text-xs d-none d-lg-block d-xl-block"},[t._v("\n  \n ")]),t._v(" "),i("button",{staticClass:"btn btn-outline-primary btn-block",on:{click:t.addTransaction}},[i("i",{staticClass:"far fa-clone"}),t._v(" "+t._s(t.$t("firefly.add_another_split"))+"\n ")])]),t._v(" "),i("div",{staticClass:"col"},[i("div",{staticClass:"text-xs d-none d-lg-block d-xl-block"},[t._v("\n  \n ")]),t._v(" "),i("button",{staticClass:"btn btn-success btn-block",attrs:{disabled:!t.enableSubmit},on:{click:t.submitTransaction}},[t.enableSubmit?i("span",[i("i",{staticClass:"far fa-save"}),t._v(" "+t._s(t.$t("firefly.store_transaction")))]):t._e(),t._v(" "),t.enableSubmit?t._e():i("span",[i("i",{staticClass:"fas fa-spinner fa-spin"})])])])]),t._v(" "),i("div",{staticClass:"row"},[i("div",{staticClass:"col"},[t._v("\n  \n ")]),t._v(" "),i("div",{staticClass:"col"},[i("div",{staticClass:"form-check"},[i("input",{directives:[{name:"model",rawName:"v-model",value:t.createAnother,expression:"createAnother"}],staticClass:"form-check-input",attrs:{id:"createAnother",type:"checkbox"},domProps:{checked:Array.isArray(t.createAnother)?t._i(t.createAnother,null)>-1:t.createAnother},on:{change:function(e){var i=t.createAnother,n=e.target,s=!!n.checked;if(Array.isArray(i)){var a=t._i(i,null);n.checked?a<0&&(t.createAnother=i.concat([null])):a>-1&&(t.createAnother=i.slice(0,a).concat(i.slice(a+1)))}else t.createAnother=s}}}),t._v(" "),i("label",{staticClass:"form-check-label",attrs:{for:"createAnother"}},[i("span",{staticClass:"small"},[t._v(t._s(t.$t("firefly.create_another")))])])]),t._v(" "),i("div",{staticClass:"form-check"},[i("input",{directives:[{name:"model",rawName:"v-model",value:t.resetFormAfter,expression:"resetFormAfter"}],staticClass:"form-check-input",attrs:{id:"resetFormAfter",disabled:!t.createAnother,type:"checkbox"},domProps:{checked:Array.isArray(t.resetFormAfter)?t._i(t.resetFormAfter,null)>-1:t.resetFormAfter},on:{change:function(e){var i=t.resetFormAfter,n=e.target,s=!!n.checked;if(Array.isArray(i)){var a=t._i(i,null);n.checked?a<0&&(t.resetFormAfter=i.concat([null])):a>-1&&(t.resetFormAfter=i.slice(0,a).concat(i.slice(a+1)))}else t.resetFormAfter=s}}}),t._v(" "),i("label",{staticClass:"form-check-label",attrs:{for:"resetFormAfter"}},[i("span",{staticClass:"small"},[t._v(t._s(t.$t("firefly.reset_after")))])])])])])])])])])],1)}),[],!1,null,"1b78c213",null).exports,b=i(8),g=i.n(b);i(41),g.a.config.productionTip=!1;var T=i(43),A={};new g.a({i18n:T,store:n.a,render:function(t){return t(y,{props:A})},beforeCreate:function(){this.$store.commit("initialiseStore"),this.$store.dispatch("updateCurrencyPreference")}}).$mount("#transactions_create")}},[[335,0,1]]]); //# sourceMappingURL=create.js.map \ No newline at end of file diff --git a/public/v2/js/transactions/create.js.map b/public/v2/js/transactions/create.js.map index cc8fdfe019..b7bded5963 100755 --- a/public/v2/js/transactions/create.js.map +++ b/public/v2/js/transactions/create.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///src/components/transactions/Create.vue","webpack:///./src/components/transactions/Create.vue?0a62","webpack:///./src/components/transactions/Create.vue","webpack:///./src/components/transactions/Create.vue?8d0e","webpack:///./src/pages/transactions/create.js"],"names":["name","components","SplitForm","Alert","SplitPills","TransactionGroupTitle","created","this","getAllowedOpposingTypes","getAccountToTransaction","getCustomFields","addTransaction","data","errorMessage","successMessage","customFields","enableSubmit","createAnother","resetFormAfter","submittedTransaction","submittedLinks","submittedAttachments","inError","submittedAttCount","groupTitleErrors","returnedGroupId","returnedGroupTitle","accountToTransaction","allowedOpposingTypes","defaultSourceAllowedTypes","defaultDestinationAllowedTypes","sourceAllowedTypes","destinationAllowedTypes","date","Date","time","computed","watch","finalizeSubmit","methods","removeTransaction","$store","commit","payload","window","location","href","$t","transactions","hasOwnProperty","i","test","updateField","resetTransactions","setTimeout","submitTransaction","axios","post","submitAttachments","result","uploadedAttachment","key","length","storeLocation","storeAccountValue","calculateTransactionType","index","storeField","storeDate","storeTime","storeGroupTitle","setGroupTitle","source","dest","setTransactionType","expectedDestinationTypes","transactionType","submitTransactionLinks","submitted","links","ii","total","currentLink","outward_id","received","transaction_journal_id","inward_id","promises","push","then","Promise","all","parseErrors","resetErrors","errors","message","transactionIndex","parseInt","split","fieldName","setTransactionError","convertData","groupTitle","group_title","convertSplit","description","synchronizeAccounts","source_name","destination_name","source_id","destination_id","switchAccounts","theDate","setHours","getHours","setMinutes","getMinutes","setSeconds","getSeconds","dateStr","array","type","currency_id","amount","budget_id","category_name","category","tags","interest_date","book_date","process_date","due_date","payment_date","invoice_date","internal_reference","external_url","notes","external_id","zoom_level","longitude","latitude","order","reconciled","piggy_bank_id","currentSplit","bill_id","foreign_currency_id","foreign_amount","toLowerCase","firstSource","source_account_type","firstDestination","destination_account_type","source_account_currency_id","includes","destination_account_currency_id","link_type_id","linkTypeParts","inwardId","outwardId","newLink","get","setDestinationAllowedTypes","value","setSourceAllowedTypes","_vm","_h","$createElement","_c","_self","attrs","_v","staticClass","_l","transaction","on","$event","model","callback","$$v","$set","expression","_e","_s","directives","rawName","domProps","Array","isArray","_i","$$a","$$el","target","$$c","checked","$$i","concat","slice","require","Vue","config","productionTip","i18n","props","store","render","createElement","Create","beforeCreate","dispatch","$mount"],"mappings":"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","file":"/public/js/transactions/create.js","sourcesContent":["\n\n\n\n\n\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Create.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Create.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Create.vue?vue&type=template&id=1b78c213&scoped=true&\"\nimport script from \"./Create.vue?vue&type=script&lang=js&\"\nexport * from \"./Create.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1b78c213\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('alert',{attrs:{\"message\":_vm.errorMessage,\"type\":\"danger\"}}),_vm._v(\" \"),_c('alert',{attrs:{\"message\":_vm.successMessage,\"type\":\"success\"}}),_vm._v(\" \"),_c('SplitPills',{attrs:{\"transactions\":_vm.transactions}}),_vm._v(\" \"),_c('div',{staticClass:\"tab-content\"},_vm._l((this.transactions),function(transaction,index){return _c('SplitForm',{key:index,attrs:{\"allowed-opposing-types\":_vm.allowedOpposingTypes,\"count\":_vm.transactions.length,\"custom-fields\":_vm.customFields,\"date\":_vm.date,\"destination-allowed-types\":_vm.destinationAllowedTypes,\"index\":index,\"source-allowed-types\":_vm.sourceAllowedTypes,\"submitted-transaction\":_vm.submittedTransaction,\"time\":_vm.time,\"transaction\":transaction,\"transaction-type\":_vm.transactionType},on:{\"uploaded-attachments\":function($event){return _vm.uploadedAttachment($event)},\"set-marker-location\":function($event){return _vm.storeLocation($event)},\"set-account\":function($event){return _vm.storeAccountValue($event)},\"switch-accounts\":function($event){return _vm.switchAccounts($event)},\"set-date\":function($event){return _vm.storeDate($event)},\"set-time\":function($event){return _vm.storeTime($event)},\"set-field\":function($event){return _vm.storeField($event)},\"remove-transaction\":function($event){return _vm.removeTransaction($event)},\"set-dest-types\":function($event){return _vm.setDestinationAllowedTypes($event)},\"set-src-types\":function($event){return _vm.setSourceAllowedTypes($event)}}})}),1),_vm._v(\" \"),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-xl-6 col-lg-6 col-md-12 col-sm-12 col-xs-12\"},[(_vm.transactions.length > 1)?_c('div',{staticClass:\"card\"},[_c('div',{staticClass:\"card-body\"},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col\"},[_c('TransactionGroupTitle',{attrs:{\"errors\":this.groupTitleErrors},on:{\"set-group-title\":function($event){return _vm.storeGroupTitle($event)}},model:{value:(this.groupTitle),callback:function ($$v) {_vm.$set(this, \"groupTitle\", $$v)},expression:\"this.groupTitle\"}})],1)])])]):_vm._e()]),_vm._v(\" \"),_c('div',{staticClass:\"col-xl-6 col-lg-6 col-md-12 col-sm-12 col-xs-12\"},[_c('div',{staticClass:\"card card-primary\"},[_c('div',{staticClass:\"card-body\"},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col\"},[_c('div',{staticClass:\"text-xs d-none d-lg-block d-xl-block\"},[_vm._v(\"\\n  \\n \")]),_vm._v(\" \"),_c('button',{staticClass:\"btn btn-outline-primary btn-block\",on:{\"click\":_vm.addTransaction}},[_c('i',{staticClass:\"far fa-clone\"}),_vm._v(\" \"+_vm._s(_vm.$t('firefly.add_another_split'))+\"\\n \")])]),_vm._v(\" \"),_c('div',{staticClass:\"col\"},[_c('div',{staticClass:\"text-xs d-none d-lg-block d-xl-block\"},[_vm._v(\"\\n  \\n \")]),_vm._v(\" \"),_c('button',{staticClass:\"btn btn-success btn-block\",attrs:{\"disabled\":!_vm.enableSubmit},on:{\"click\":_vm.submitTransaction}},[(_vm.enableSubmit)?_c('span',[_c('i',{staticClass:\"far fa-save\"}),_vm._v(\" \"+_vm._s(_vm.$t('firefly.store_transaction')))]):_vm._e(),_vm._v(\" \"),(!_vm.enableSubmit)?_c('span',[_c('i',{staticClass:\"fas fa-spinner fa-spin\"})]):_vm._e()])])]),_vm._v(\" \"),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col\"},[_vm._v(\"\\n  \\n \")]),_vm._v(\" \"),_c('div',{staticClass:\"col\"},[_c('div',{staticClass:\"form-check\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.createAnother),expression:\"createAnother\"}],staticClass:\"form-check-input\",attrs:{\"id\":\"createAnother\",\"type\":\"checkbox\"},domProps:{\"checked\":Array.isArray(_vm.createAnother)?_vm._i(_vm.createAnother,null)>-1:(_vm.createAnother)},on:{\"change\":function($event){var $$a=_vm.createAnother,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.createAnother=$$a.concat([$$v]))}else{$$i>-1&&(_vm.createAnother=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.createAnother=$$c}}}}),_vm._v(\" \"),_c('label',{staticClass:\"form-check-label\",attrs:{\"for\":\"createAnother\"}},[_c('span',{staticClass:\"small\"},[_vm._v(_vm._s(_vm.$t('firefly.create_another')))])])]),_vm._v(\" \"),_c('div',{staticClass:\"form-check\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.resetFormAfter),expression:\"resetFormAfter\"}],staticClass:\"form-check-input\",attrs:{\"id\":\"resetFormAfter\",\"disabled\":!_vm.createAnother,\"type\":\"checkbox\"},domProps:{\"checked\":Array.isArray(_vm.resetFormAfter)?_vm._i(_vm.resetFormAfter,null)>-1:(_vm.resetFormAfter)},on:{\"change\":function($event){var $$a=_vm.resetFormAfter,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.resetFormAfter=$$a.concat([$$v]))}else{$$i>-1&&(_vm.resetFormAfter=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.resetFormAfter=$$c}}}}),_vm._v(\" \"),_c('label',{staticClass:\"form-check-label\",attrs:{\"for\":\"resetFormAfter\"}},[_c('span',{staticClass:\"small\"},[_vm._v(_vm._s(_vm.$t('firefly.reset_after')))])])])])])])])])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/*\n * create.js\n * Copyright (c) 2020 james@firefly-iii.org\n *\n * This file is part of Firefly III (https://github.com/firefly-iii).\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n */\n\nimport store from \"../../components/store\";\nimport Create from \"../../components/transactions/Create\";\nimport Vue from \"vue\";\n\nrequire('../../bootstrap');\n\nVue.config.productionTip = false;\n// i18n\nlet i18n = require('../../i18n');\n\nlet props = {};\nnew Vue({\n i18n,\n store,\n render(createElement) {\n return createElement(Create, {props: props});\n },\n beforeCreate() {\n this.$store.commit('initialiseStore');\n this.$store.dispatch('updateCurrencyPreference');\n },\n }).$mount('#transactions_create');\n"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///src/components/transactions/Create.vue","webpack:///./src/components/transactions/Create.vue?0a62","webpack:///./src/components/transactions/Create.vue","webpack:///./src/components/transactions/Create.vue?8d0e","webpack:///./src/pages/transactions/create.js"],"names":["name","components","SplitForm","Alert","SplitPills","TransactionGroupTitle","created","this","getAllowedOpposingTypes","getAccountToTransaction","getCustomFields","addTransaction","data","errorMessage","successMessage","customFields","enableSubmit","createAnother","resetFormAfter","submittedTransaction","submittedLinks","submittedAttachments","inError","submittedAttCount","groupTitleErrors","returnedGroupId","returnedGroupTitle","accountToTransaction","allowedOpposingTypes","defaultSourceAllowedTypes","defaultDestinationAllowedTypes","sourceAllowedTypes","destinationAllowedTypes","date","Date","time","computed","watch","finalizeSubmit","methods","removeTransaction","$store","commit","payload","window","location","href","$t","transactions","hasOwnProperty","i","test","updateField","resetTransactions","setTimeout","submitTransaction","axios","post","submitAttachments","result","uploadedAttachment","key","length","storeLocation","storeAccountValue","calculateTransactionType","index","storeField","storeDate","storeTime","storeGroupTitle","setGroupTitle","source","dest","setTransactionType","expectedDestinationTypes","transactionType","submitTransactionLinks","submitted","links","ii","total","currentLink","outward_id","received","transaction_journal_id","inward_id","promises","push","then","Promise","all","parseErrors","resetErrors","errors","message","transactionIndex","parseInt","split","fieldName","setTransactionError","convertData","groupTitle","group_title","convertSplit","description","synchronizeAccounts","source_name","destination_name","source_id","destination_id","switchAccounts","theDate","setHours","getHours","setMinutes","getMinutes","setSeconds","getSeconds","dateStr","array","type","currency_id","amount","budget_id","category_name","category","tags","interest_date","book_date","process_date","due_date","payment_date","invoice_date","internal_reference","external_url","notes","external_id","zoom_level","longitude","latitude","order","reconciled","piggy_bank_id","currentSplit","bill_id","foreign_currency_id","foreign_amount","toLowerCase","firstSource","source_account_type","firstDestination","destination_account_type","source_account_currency_id","includes","destination_account_currency_id","link_type_id","linkTypeParts","inwardId","outwardId","newLink","get","setDestinationAllowedTypes","value","setSourceAllowedTypes","_vm","_h","$createElement","_c","_self","attrs","_v","staticClass","_l","transaction","on","$event","model","callback","$$v","$set","expression","_e","_s","directives","rawName","domProps","Array","isArray","_i","$$a","$$el","target","$$c","checked","$$i","concat","slice","require","Vue","config","productionTip","i18n","props","store","render","createElement","Create","beforeCreate","dispatch","$mount"],"mappings":"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","file":"/public/js/transactions/create.js","sourcesContent":["\n\n\n\n\n\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Create.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js??ref--4-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Create.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Create.vue?vue&type=template&id=1b78c213&scoped=true&\"\nimport script from \"./Create.vue?vue&type=script&lang=js&\"\nexport * from \"./Create.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1b78c213\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('alert',{attrs:{\"message\":_vm.errorMessage,\"type\":\"danger\"}}),_vm._v(\" \"),_c('alert',{attrs:{\"message\":_vm.successMessage,\"type\":\"success\"}}),_vm._v(\" \"),_c('SplitPills',{attrs:{\"transactions\":_vm.transactions}}),_vm._v(\" \"),_c('div',{staticClass:\"tab-content\"},_vm._l((this.transactions),function(transaction,index){return _c('SplitForm',{key:index,attrs:{\"allowed-opposing-types\":_vm.allowedOpposingTypes,\"count\":_vm.transactions.length,\"custom-fields\":_vm.customFields,\"date\":_vm.date,\"destination-allowed-types\":_vm.destinationAllowedTypes,\"index\":index,\"source-allowed-types\":_vm.sourceAllowedTypes,\"submitted-transaction\":_vm.submittedTransaction,\"time\":_vm.time,\"transaction\":transaction,\"transaction-type\":_vm.transactionType},on:{\"uploaded-attachments\":function($event){return _vm.uploadedAttachment($event)},\"set-marker-location\":function($event){return _vm.storeLocation($event)},\"set-account\":function($event){return _vm.storeAccountValue($event)},\"switch-accounts\":function($event){return _vm.switchAccounts($event)},\"set-date\":function($event){return _vm.storeDate($event)},\"set-time\":function($event){return _vm.storeTime($event)},\"set-field\":function($event){return _vm.storeField($event)},\"remove-transaction\":function($event){return _vm.removeTransaction($event)},\"set-dest-types\":function($event){return _vm.setDestinationAllowedTypes($event)},\"set-src-types\":function($event){return _vm.setSourceAllowedTypes($event)}}})}),1),_vm._v(\" \"),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-xl-6 col-lg-6 col-md-12 col-sm-12 col-xs-12\"},[(_vm.transactions.length > 1)?_c('div',{staticClass:\"card\"},[_c('div',{staticClass:\"card-body\"},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col\"},[_c('TransactionGroupTitle',{attrs:{\"errors\":this.groupTitleErrors},on:{\"set-group-title\":function($event){return _vm.storeGroupTitle($event)}},model:{value:(this.groupTitle),callback:function ($$v) {_vm.$set(this, \"groupTitle\", $$v)},expression:\"this.groupTitle\"}})],1)])])]):_vm._e()]),_vm._v(\" \"),_c('div',{staticClass:\"col-xl-6 col-lg-6 col-md-12 col-sm-12 col-xs-12\"},[_c('div',{staticClass:\"card card-primary\"},[_c('div',{staticClass:\"card-body\"},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col\"},[_c('div',{staticClass:\"text-xs d-none d-lg-block d-xl-block\"},[_vm._v(\"\\n  \\n \")]),_vm._v(\" \"),_c('button',{staticClass:\"btn btn-outline-primary btn-block\",on:{\"click\":_vm.addTransaction}},[_c('i',{staticClass:\"far fa-clone\"}),_vm._v(\" \"+_vm._s(_vm.$t('firefly.add_another_split'))+\"\\n \")])]),_vm._v(\" \"),_c('div',{staticClass:\"col\"},[_c('div',{staticClass:\"text-xs d-none d-lg-block d-xl-block\"},[_vm._v(\"\\n  \\n \")]),_vm._v(\" \"),_c('button',{staticClass:\"btn btn-success btn-block\",attrs:{\"disabled\":!_vm.enableSubmit},on:{\"click\":_vm.submitTransaction}},[(_vm.enableSubmit)?_c('span',[_c('i',{staticClass:\"far fa-save\"}),_vm._v(\" \"+_vm._s(_vm.$t('firefly.store_transaction')))]):_vm._e(),_vm._v(\" \"),(!_vm.enableSubmit)?_c('span',[_c('i',{staticClass:\"fas fa-spinner fa-spin\"})]):_vm._e()])])]),_vm._v(\" \"),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col\"},[_vm._v(\"\\n  \\n \")]),_vm._v(\" \"),_c('div',{staticClass:\"col\"},[_c('div',{staticClass:\"form-check\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.createAnother),expression:\"createAnother\"}],staticClass:\"form-check-input\",attrs:{\"id\":\"createAnother\",\"type\":\"checkbox\"},domProps:{\"checked\":Array.isArray(_vm.createAnother)?_vm._i(_vm.createAnother,null)>-1:(_vm.createAnother)},on:{\"change\":function($event){var $$a=_vm.createAnother,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.createAnother=$$a.concat([$$v]))}else{$$i>-1&&(_vm.createAnother=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.createAnother=$$c}}}}),_vm._v(\" \"),_c('label',{staticClass:\"form-check-label\",attrs:{\"for\":\"createAnother\"}},[_c('span',{staticClass:\"small\"},[_vm._v(_vm._s(_vm.$t('firefly.create_another')))])])]),_vm._v(\" \"),_c('div',{staticClass:\"form-check\"},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.resetFormAfter),expression:\"resetFormAfter\"}],staticClass:\"form-check-input\",attrs:{\"id\":\"resetFormAfter\",\"disabled\":!_vm.createAnother,\"type\":\"checkbox\"},domProps:{\"checked\":Array.isArray(_vm.resetFormAfter)?_vm._i(_vm.resetFormAfter,null)>-1:(_vm.resetFormAfter)},on:{\"change\":function($event){var $$a=_vm.resetFormAfter,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.resetFormAfter=$$a.concat([$$v]))}else{$$i>-1&&(_vm.resetFormAfter=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.resetFormAfter=$$c}}}}),_vm._v(\" \"),_c('label',{staticClass:\"form-check-label\",attrs:{\"for\":\"resetFormAfter\"}},[_c('span',{staticClass:\"small\"},[_vm._v(_vm._s(_vm.$t('firefly.reset_after')))])])])])])])])])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/*\n * create.js\n * Copyright (c) 2020 james@firefly-iii.org\n *\n * This file is part of Firefly III (https://github.com/firefly-iii).\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see .\n */\n\nimport store from \"../../components/store\";\nimport Create from \"../../components/transactions/Create\";\nimport Vue from \"vue\";\n\nrequire('../../bootstrap');\n\nVue.config.productionTip = false;\n// i18n\nlet i18n = require('../../i18n');\n\nlet props = {};\nnew Vue({\n i18n,\n store,\n render(createElement) {\n return createElement(Create, {props: props});\n },\n beforeCreate() {\n this.$store.commit('initialiseStore');\n this.$store.dispatch('updateCurrencyPreference');\n },\n }).$mount('#transactions_create');\n"],"sourceRoot":""} \ No newline at end of file diff --git a/public/v2/js/vendor.js.LICENSE.txt b/public/v2/js/vendor.js.LICENSE.txt index 9a51ab80a3..ee13c3a733 100755 --- a/public/v2/js/vendor.js.LICENSE.txt +++ b/public/v2/js/vendor.js.LICENSE.txt @@ -115,6 +115,13 @@ * SOFTWARE. */ +/**! + * Sortable 1.13.0 + * @author RubaXa + * @author owenm + * @license MIT + */ + //! moment.js //! moment.js locale configuration diff --git a/readme.md b/readme.md index 14a6321fa3..c14bac35aa 100644 --- a/readme.md +++ b/readme.md @@ -15,24 +15,24 @@

A free and open source personal finance manager
- Explore the docs » + Explore the documentation

- View Demo + View the demo · - Report Bug + Report a bug · - Request Feature + Request a feature + . + Ask questions

-[![Travis Build Status][build-shield]][build-url] - - [About Firefly III](#about-firefly-iii) - [Purpose](#purpose) - [Features](#features) - - [Who's it for?](#-whos-it-for) + - [Who's it for?](#whos-it-for) - [The Firefly III eco-system](#the-firefly-iii-eco-system) - [Getting Started](#getting-started) - [Contributing](#contributing) @@ -76,26 +76,26 @@ Firefly III is pretty feature packed. Some important stuff first: The most exciting features are: -* Create [recurring transactions to manage your money](https://docs.firefly-iii.org/advanced-concepts/recurring) -* [Rule based transaction handling](https://docs.firefly-iii.org/advanced-concepts/rules) with the ability to create your own rules +* Create [recurring transactions to manage your money](https://docs.firefly-iii.org/advanced-concepts/recurring). +* [Rule based transaction handling](https://docs.firefly-iii.org/advanced-concepts/rules) with the ability to create your own rules. Then the things that make you go "yeah OK, makes sense". -* A [double-entry](https://en.wikipedia.org/wiki/Double-entry_bookkeeping_system) bookkeeping system -* Save towards a goal using [piggy banks](https://docs.firefly-iii.org/advanced-concepts/piggies) -* View [income and expense reports](https://docs.firefly-iii.org/advanced-concepts/reports) +* A [double-entry](https://en.wikipedia.org/wiki/Double-entry_bookkeeping_system) bookkeeping system. +* Save towards a goal using [piggy banks](https://docs.firefly-iii.org/advanced-concepts/piggies). +* View [income and expense reports](https://docs.firefly-iii.org/advanced-concepts/reports). And the things you would hope for but not expect: -* 2 factor authentication for extra security 🔒 -* Supports [any currency you want](https://docs.firefly-iii.org/concepts/currencies), including crypto currencies such as ₿itcoin and Ξthereum +* 2 factor authentication for extra security 🔒. +* Supports [any currency you want](https://docs.firefly-iii.org/concepts/currencies), including crypto currencies such as ₿itcoin and Ξthereum. * There is a [Docker image](https://docs.firefly-iii.org/installation/docker) and an [Heroku script](https://docs.firefly-iii.org/installation/third_parties). And to organise everything: -* Clear views that should show you how you're doing -* Easy navigation through your records -* Lots of charts because we all love them +* Clear views that should show you how you're doing. +* Easy navigation through your records. +* Lots of charts because we all love them. Many more features are listed in the [documentation](https://docs.firefly-iii.org/about-firefly-iii/introduction). diff --git a/releases.md b/releases.md index 70aa276552..5d53be15ff 100644 --- a/releases.md +++ b/releases.md @@ -16,11 +16,11 @@ The different alpha and beta builds will be compiled from their corresponding ta ### Minor Release Support Matrix | Version | Supported | | ------- | ------------------ | -| Firefly III v5.4.x | :white_check_mark: | +| Firefly III v5.5.x | :white_check_mark: | +| Firefly III v5.4.x | :x: | | Firefly III v5.3.x | :x: | | Firefly III v5.2.x | :x: | -| Firefly III v5.1.x | :x: | -| Firefly III v5.0.x (and earlier) | :x: | +| Firefly III v5.1.x (and earlier) | :x: | ### Upgrade path and support policy The upgrade path for Firefly III is: diff --git a/resources/assets/js/app.js b/resources/assets/js/app.js index 8f3108fa4d..7a39d988a3 100644 --- a/resources/assets/js/app.js +++ b/resources/assets/js/app.js @@ -30,6 +30,3 @@ try { } catch (e) { } - - - diff --git a/resources/assets/js/locales/bg.json b/resources/assets/js/locales/bg.json index 2a72de9bdf..7bf9e99e49 100644 --- a/resources/assets/js/locales/bg.json +++ b/resources/assets/js/locales/bg.json @@ -9,7 +9,7 @@ "split": "\u0420\u0430\u0437\u0434\u0435\u043b\u0438", "single_split": "\u0420\u0430\u0437\u0434\u0435\u043b", "transaction_stored_link": "\u0422\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044f #{ID}(\"{title}\")<\/a> \u0431\u0435\u0448\u0435 \u0437\u0430\u043f\u0438\u0441\u0430\u043d\u0430.", - "transaction_updated_link": "\u0422\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044f #{ID}<\/a> \u0431\u0435\u0448\u0435 \u043e\u0431\u043d\u043e\u0432\u0435\u043d\u0430.", + "transaction_updated_link": "Transaction #{ID}<\/a> (\"{title}\") has been updated.", "transaction_new_stored_link": "\u0422\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044f #{ID}<\/a> \u0431\u0435\u0448\u0435 \u0437\u0430\u043f\u0438\u0441\u0430\u043d\u0430.", "transaction_journal_information": "\u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u0437\u0430 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044f", "no_budget_pointer": "\u0418\u0437\u0433\u043b\u0435\u0436\u0434\u0430 \u0432\u0441\u0435 \u043e\u0449\u0435 \u043d\u044f\u043c\u0430\u0442\u0435 \u0431\u044e\u0434\u0436\u0435\u0442\u0438. \u0422\u0440\u044f\u0431\u0432\u0430 \u0434\u0430 \u0441\u044a\u0437\u0434\u0430\u0434\u0435\u0442\u0435 \u043d\u044f\u043a\u043e\u0438 \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430\u0442\u0430 \u0411\u044e\u0434\u0436\u0435\u0442\u0438 <\/a>. \u0411\u044e\u0434\u0436\u0435\u0442\u0438\u0442\u0435 \u043c\u043e\u0433\u0430\u0442 \u0434\u0430 \u0432\u0438 \u043f\u043e\u043c\u043e\u0433\u043d\u0430\u0442 \u0434\u0430 \u0441\u043b\u0435\u0434\u0438\u0442\u0435 \u0440\u0430\u0437\u0445\u043e\u0434\u0438\u0442\u0435 \u0441\u0438.", diff --git a/resources/assets/js/locales/cs.json b/resources/assets/js/locales/cs.json index 77dc2d6580..9cea9f22d9 100644 --- a/resources/assets/js/locales/cs.json +++ b/resources/assets/js/locales/cs.json @@ -9,7 +9,7 @@ "split": "Rozd\u011blit", "single_split": "Split", "transaction_stored_link": "Transaction #{ID} (\"{title}\")<\/a> has been stored.", - "transaction_updated_link": "Transaction #{ID}<\/a> has been updated.", + "transaction_updated_link": "Transaction #{ID}<\/a> (\"{title}\") has been updated.", "transaction_new_stored_link": "Transaction #{ID}<\/a> has been stored.", "transaction_journal_information": "Informace o transakci", "no_budget_pointer": "You seem to have no budgets yet. You should create some on the budgets<\/a>-page. Budgets can help you keep track of expenses.", diff --git a/resources/assets/js/locales/de.json b/resources/assets/js/locales/de.json index 624cb5c02d..6a14ff2abe 100644 --- a/resources/assets/js/locales/de.json +++ b/resources/assets/js/locales/de.json @@ -9,7 +9,7 @@ "split": "Teilen", "single_split": "Teil", "transaction_stored_link": "Buchung #{ID} (\"{title}\")<\/a> wurde gespeichert.", - "transaction_updated_link": "Buchung#{ID}<\/a> wurde aktualisiert.", + "transaction_updated_link": "Die Buchung #{ID}<\/a> (\"{title}\") wurde aktualisiert.", "transaction_new_stored_link": "Buchung #{ID}<\/a> wurde gespeichert.", "transaction_journal_information": "Transaktionsinformationen", "no_budget_pointer": "Sie scheinen noch keine Kostenrahmen festgelegt zu haben. Sie sollten einige davon auf der Seite Kostenrahmen<\/a>- anlegen. Kostenrahmen k\u00f6nnen Ihnen dabei helfen, den \u00dcberblick \u00fcber die Ausgaben zu behalten.", diff --git a/resources/assets/js/locales/el.json b/resources/assets/js/locales/el.json index d14a4f807d..a59a9e34b4 100644 --- a/resources/assets/js/locales/el.json +++ b/resources/assets/js/locales/el.json @@ -9,7 +9,7 @@ "split": "\u0394\u03b9\u03b1\u03c7\u03c9\u03c1\u03b9\u03c3\u03bc\u03cc\u03c2", "single_split": "\u0394\u03b9\u03b1\u03c7\u03c9\u03c1\u03b9\u03c3\u03bc\u03cc\u03c2", "transaction_stored_link": "\u0397 \u03c3\u03c5\u03bd\u03b1\u03bb\u03bb\u03b1\u03b3\u03ae #{ID} (\"{title}\")<\/a> \u03ad\u03c7\u03b5\u03b9 \u03b1\u03c0\u03bf\u03b8\u03b7\u03ba\u03b5\u03c5\u03c4\u03b5\u03af.", - "transaction_updated_link": "\u0397 \u03c3\u03c5\u03bd\u03b1\u03bb\u03bb\u03b1\u03b3\u03ae #{ID}<\/a> \u03ad\u03c7\u03b5\u03b9 \u03b5\u03bd\u03b7\u03bc\u03b5\u03c1\u03c9\u03b8\u03b5\u03af.", + "transaction_updated_link": "\u0397 \u03c3\u03c5\u03bd\u03b1\u03bb\u03bb\u03b1\u03b3\u03ae #{ID}<\/a> (\"{title}\") \u03ad\u03c7\u03b5\u03b9 \u03b5\u03bd\u03b7\u03bc\u03b5\u03c1\u03c9\u03b8\u03b5\u03af.", "transaction_new_stored_link": "\u0397 \u03c3\u03c5\u03bd\u03b1\u03bb\u03bb\u03b1\u03b3\u03ae #{ID}<\/a> \u03ad\u03c7\u03b5\u03b9 \u03b1\u03c0\u03bf\u03b8\u03b7\u03ba\u03b5\u03c5\u03c4\u03b5\u03af.", "transaction_journal_information": "\u03a0\u03bb\u03b7\u03c1\u03bf\u03c6\u03bf\u03c1\u03af\u03b5\u03c2 \u03c3\u03c5\u03bd\u03b1\u03bb\u03bb\u03b1\u03b3\u03ae\u03c2", "no_budget_pointer": "\u03a6\u03b1\u03af\u03bd\u03b5\u03c4\u03b1\u03b9 \u03c0\u03c9\u03c2 \u03b4\u03b5\u03bd \u03ad\u03c7\u03b5\u03c4\u03b5 \u03bf\u03c1\u03af\u03c3\u03b5\u03b9 \u03c0\u03c1\u03bf\u03cb\u03c0\u03bf\u03bb\u03bf\u03b3\u03b9\u03c3\u03bc\u03bf\u03cd\u03c2 \u03b1\u03ba\u03cc\u03bc\u03b7. \u03a0\u03c1\u03ad\u03c0\u03b5\u03b9 \u03bd\u03b1 \u03b4\u03b7\u03bc\u03b9\u03bf\u03c5\u03c1\u03b3\u03ae\u03c3\u03b5\u03c4\u03b5 \u03ba\u03ac\u03c0\u03bf\u03b9\u03bf\u03bd \u03c3\u03c4\u03b7 \u03c3\u03b5\u03bb\u03af\u03b4\u03b1 \u03c0\u03c1\u03bf\u03cb\u03c0\u03bf\u03bb\u03bf\u03b3\u03b9\u03c3\u03bc\u03ce\u03bd<\/a>. \u039f\u03b9 \u03c0\u03c1\u03bf\u03cb\u03c0\u03bf\u03bb\u03bf\u03b3\u03b9\u03c3\u03bc\u03bf\u03af \u03c3\u03b1\u03c2 \u03b2\u03bf\u03b7\u03b8\u03bf\u03cd\u03bd \u03bd\u03b1 \u03b5\u03c0\u03b9\u03b2\u03bb\u03ad\u03c0\u03b5\u03c4\u03b5 \u03c4\u03b9\u03c2 \u03b4\u03b1\u03c0\u03ac\u03bd\u03b5\u03c2 \u03c3\u03b1\u03c2.", @@ -30,7 +30,7 @@ "category": "\u039a\u03b1\u03c4\u03b7\u03b3\u03bf\u03c1\u03af\u03b1", "attachments": "\u03a3\u03c5\u03bd\u03b7\u03bc\u03bc\u03ad\u03bd\u03b1", "notes": "\u03a3\u03b7\u03bc\u03b5\u03b9\u03ce\u03c3\u03b5\u03b9\u03c2", - "external_uri": "External URL", + "external_uri": "\u0395\u03be\u03c9\u03c4\u03b5\u03c1\u03b9\u03ba\u03cc URL", "update_transaction": "\u0395\u03bd\u03b7\u03bc\u03ad\u03c1\u03c9\u03c3\u03b7 \u03c3\u03c5\u03bd\u03b1\u03bb\u03bb\u03b1\u03b3\u03ae\u03c2", "after_update_create_another": "\u039c\u03b5\u03c4\u03ac \u03c4\u03b7\u03bd \u03b5\u03bd\u03b7\u03bc\u03ad\u03c1\u03c9\u03c3\u03b7, \u03b5\u03c0\u03b9\u03c3\u03c4\u03c1\u03ad\u03c8\u03c4\u03b5 \u03b5\u03b4\u03ce \u03b3\u03b9\u03b1 \u03bd\u03b1 \u03c3\u03c5\u03bd\u03b5\u03c7\u03af\u03c3\u03b5\u03c4\u03b5 \u03c4\u03b7\u03bd \u03b5\u03c0\u03b5\u03be\u03b5\u03c1\u03b3\u03b1\u03c3\u03af\u03b1.", "store_as_new": "\u0391\u03c0\u03bf\u03b8\u03ae\u03ba\u03b5\u03c5\u03c3\u03b7 \u03c9\u03c2 \u03bd\u03ad\u03b1 \u03c3\u03c5\u03bd\u03b1\u03bb\u03bb\u03b1\u03b3\u03ae \u03b1\u03bd\u03c4\u03af \u03b3\u03b9\u03b1 \u03b5\u03bd\u03b7\u03bc\u03ad\u03c1\u03c9\u03c3\u03b7.", diff --git a/resources/assets/js/locales/en-gb.json b/resources/assets/js/locales/en-gb.json index 98feacaf20..6f9614e8d0 100644 --- a/resources/assets/js/locales/en-gb.json +++ b/resources/assets/js/locales/en-gb.json @@ -9,7 +9,7 @@ "split": "Split", "single_split": "Split", "transaction_stored_link": "Transaction #{ID} (\"{title}\")<\/a> has been stored.", - "transaction_updated_link": "Transaction #{ID}<\/a> has been updated.", + "transaction_updated_link": "Transaction #{ID}<\/a> (\"{title}\") has been updated.", "transaction_new_stored_link": "Transaction #{ID}<\/a> has been stored.", "transaction_journal_information": "Transaction information", "no_budget_pointer": "You seem to have no budgets yet. You should create some on the budgets<\/a>-page. Budgets can help you keep track of expenses.", diff --git a/resources/assets/js/locales/es.json b/resources/assets/js/locales/es.json index 265093e35f..2349e10637 100644 --- a/resources/assets/js/locales/es.json +++ b/resources/assets/js/locales/es.json @@ -9,7 +9,7 @@ "split": "Separar", "single_split": "Divisi\u00f3n", "transaction_stored_link": "La transacci\u00f3n #{ID} (\"{title}\")<\/a> ha sido almacenada.", - "transaction_updated_link": "La transacci\u00f3n #{ID}<\/a> ha sido actualizada.", + "transaction_updated_link": "La transacci\u00f3n #{ID}<\/a> (\"{title}\") ha sido actualizada.", "transaction_new_stored_link": "La transacci\u00f3n #{ID}<\/a> ha sido guardada.", "transaction_journal_information": "Informaci\u00f3n de transacci\u00f3n", "no_budget_pointer": "Parece que a\u00fan no tienes presupuestos. Debes crear algunos en la p\u00e1gina presupuestos<\/a>. Los presupuestos pueden ayudarle a realizar un seguimiento de los gastos.", @@ -30,7 +30,7 @@ "category": "Categoria", "attachments": "Archivos adjuntos", "notes": "Notas", - "external_uri": "External URL", + "external_uri": "URL externa", "update_transaction": "Actualizar transacci\u00f3n", "after_update_create_another": "Despu\u00e9s de actualizar, vuelve aqu\u00ed para continuar editando.", "store_as_new": "Almacenar como una nueva transacci\u00f3n en lugar de actualizar.", diff --git a/resources/assets/js/locales/fi.json b/resources/assets/js/locales/fi.json index 4aa5fe581f..1e408fe888 100644 --- a/resources/assets/js/locales/fi.json +++ b/resources/assets/js/locales/fi.json @@ -9,7 +9,7 @@ "split": "Jaa", "single_split": "Split", "transaction_stored_link": "Transaction #{ID} (\"{title}\")<\/a> has been stored.", - "transaction_updated_link": "Transaction #{ID}<\/a> has been updated.", + "transaction_updated_link": "Transaction #{ID}<\/a> (\"{title}\") has been updated.", "transaction_new_stored_link": "Transaction #{ID}<\/a> has been stored.", "transaction_journal_information": "Tapahtumatiedot", "no_budget_pointer": "You seem to have no budgets yet. You should create some on the budgets<\/a>-page. Budgets can help you keep track of expenses.", diff --git a/resources/assets/js/locales/fr.json b/resources/assets/js/locales/fr.json index 5d802dd6b9..98362b81c6 100644 --- a/resources/assets/js/locales/fr.json +++ b/resources/assets/js/locales/fr.json @@ -9,7 +9,7 @@ "split": "Ventiler", "single_split": "Ventilation", "transaction_stored_link": "L'op\u00e9ration n\u00b0{ID} (\"{title}\")<\/a> a \u00e9t\u00e9 enregistr\u00e9e.", - "transaction_updated_link": "L'op\u00e9ration n\u00b0{ID}<\/a> a \u00e9t\u00e9 mise \u00e0 jour.", + "transaction_updated_link": "L'op\u00e9ration n\u00b0{ID}<\/a> (\"{title}\") a \u00e9t\u00e9 mise \u00e0 jour.", "transaction_new_stored_link": "L'op\u00e9ration n\u00b0{ID}<\/a> a \u00e9t\u00e9 enregistr\u00e9e.", "transaction_journal_information": "Informations sur l'op\u00e9ration", "no_budget_pointer": "Vous semblez n\u2019avoir encore aucun budget. Vous devriez en cr\u00e9er un sur la page des budgets<\/a>. Les budgets peuvent vous aider \u00e0 garder une trace des d\u00e9penses.", diff --git a/resources/assets/js/locales/hu.json b/resources/assets/js/locales/hu.json index 597f40947a..107b5dcdec 100644 --- a/resources/assets/js/locales/hu.json +++ b/resources/assets/js/locales/hu.json @@ -9,7 +9,7 @@ "split": "Feloszt\u00e1s", "single_split": "Feloszt\u00e1s", "transaction_stored_link": "Transaction #{ID} (\"{title}\")<\/a> mentve.", - "transaction_updated_link": "Transaction #{ID}<\/a> has been updated.", + "transaction_updated_link": "Transaction #{ID}<\/a> (\"{title}\") has been updated.", "transaction_new_stored_link": "Transaction #{ID}<\/a> mentve.", "transaction_journal_information": "Tranzakci\u00f3s inform\u00e1ci\u00f3k", "no_budget_pointer": "\u00dagy t\u0171nik, m\u00e9g nincsenek k\u00f6lts\u00e9gkeretek. K\u00f6lts\u00e9gkereteket a k\u00f6lts\u00e9gkeretek<\/a> oldalon lehet l\u00e9trehozni. A k\u00f6lts\u00e9gkeretek seg\u00edtenek nyomon k\u00f6vetni a k\u00f6lts\u00e9geket.", diff --git a/resources/assets/js/locales/it.json b/resources/assets/js/locales/it.json index 372185c884..b0aca1d673 100644 --- a/resources/assets/js/locales/it.json +++ b/resources/assets/js/locales/it.json @@ -9,7 +9,7 @@ "split": "Dividi", "single_split": "Divisione", "transaction_stored_link": "La transazione #{ID} (\"{title}\")<\/a> \u00e8 stata salvata.", - "transaction_updated_link": "La transazione #{ID}<\/a> \u00e8 stata aggiornata.", + "transaction_updated_link": "La transazione #{ID}<\/a> (\"{title}\") \u00e8 stata aggiornata.", "transaction_new_stored_link": "La transazione #{ID}<\/a> \u00e8 stata salvata.", "transaction_journal_information": "Informazioni transazione", "no_budget_pointer": "Sembra che tu non abbia ancora dei budget. Dovresti crearne alcuni nella pagina dei budget<\/a>. I budget possono aiutarti a tenere traccia delle spese.", diff --git a/resources/assets/js/locales/nb.json b/resources/assets/js/locales/nb.json index dcec3d29e6..36ea1f2d0e 100644 --- a/resources/assets/js/locales/nb.json +++ b/resources/assets/js/locales/nb.json @@ -9,7 +9,7 @@ "split": "Del opp", "single_split": "Split", "transaction_stored_link": "Transaction #{ID} (\"{title}\")<\/a> has been stored.", - "transaction_updated_link": "Transaction #{ID}<\/a> has been updated.", + "transaction_updated_link": "Transaction #{ID}<\/a> (\"{title}\") has been updated.", "transaction_new_stored_link": "Transaction #{ID}<\/a> has been stored.", "transaction_journal_information": "Transaksjonsinformasjon", "no_budget_pointer": "You seem to have no budgets yet. You should create some on the budgets<\/a>-page. Budgets can help you keep track of expenses.", diff --git a/resources/assets/js/locales/nl.json b/resources/assets/js/locales/nl.json index 7b234efb97..070c2560b0 100644 --- a/resources/assets/js/locales/nl.json +++ b/resources/assets/js/locales/nl.json @@ -9,7 +9,7 @@ "split": "Splitsen", "single_split": "Split", "transaction_stored_link": "Transactie #{ID} (\"{title}\")<\/a> is opgeslagen.", - "transaction_updated_link": "Transactie #{ID}<\/a> is ge\u00fcpdatet.", + "transaction_updated_link": "Transactie #{ID}<\/a> (\"{title}\") is ge\u00fcpdatet.", "transaction_new_stored_link": "Transactie #{ID}<\/a> is opgeslagen.", "transaction_journal_information": "Transactieinformatie", "no_budget_pointer": "Je hebt nog geen budgetten. Maak er een aantal op de budgetten<\/a>-pagina. Met budgetten kan je je uitgaven beter bijhouden.", diff --git a/resources/assets/js/locales/pl.json b/resources/assets/js/locales/pl.json index 974fb5a272..0c9631f2a9 100644 --- a/resources/assets/js/locales/pl.json +++ b/resources/assets/js/locales/pl.json @@ -9,7 +9,7 @@ "split": "Podziel", "single_split": "Podzia\u0142", "transaction_stored_link": "Transakcja #{ID} (\"{title}\")<\/a> zosta\u0142a zapisana.", - "transaction_updated_link": "Transakcja #{ID}<\/a> zosta\u0142a zaktualizowana.", + "transaction_updated_link": "Transakcja #{ID}<\/a> (\"{title}\") zosta\u0142a zaktualizowana.", "transaction_new_stored_link": "Transakcja #{ID}<\/a> zosta\u0142a zapisana.", "transaction_journal_information": "Informacje o transakcji", "no_budget_pointer": "Wygl\u0105da na to, \u017ce nie masz jeszcze bud\u017cet\u00f3w. Powiniene\u015b utworzy\u0107 kilka na stronie bud\u017cet\u00f3w<\/a>. Bud\u017cety mog\u0105 Ci pom\u00f3c \u015bledzi\u0107 wydatki.", diff --git a/resources/assets/js/locales/pt-br.json b/resources/assets/js/locales/pt-br.json index 86fedefd1c..c35731aaac 100644 --- a/resources/assets/js/locales/pt-br.json +++ b/resources/assets/js/locales/pt-br.json @@ -9,7 +9,7 @@ "split": "Dividir", "single_split": "Divis\u00e3o", "transaction_stored_link": "Transa\u00e7\u00e3o #{ID} (\"{title}\")<\/a> foi salva.", - "transaction_updated_link": "Transa\u00e7\u00e3o #{ID}<\/a> foi atualizada.", + "transaction_updated_link": "A Transa\u00e7\u00e3o #{ID}<\/a> (\"{title}\") foi atualizada.", "transaction_new_stored_link": "Transa\u00e7\u00e3o #{ID}<\/a> foi salva.", "transaction_journal_information": "Informa\u00e7\u00e3o da transa\u00e7\u00e3o", "no_budget_pointer": "Parece que voc\u00ea ainda n\u00e3o tem or\u00e7amentos. Voc\u00ea deve criar alguns na p\u00e1gina de or\u00e7amentos<\/a>. Or\u00e7amentos podem ajud\u00e1-lo a manter o controle das despesas.", diff --git a/resources/assets/js/locales/pt.json b/resources/assets/js/locales/pt.json index 7246920fe2..8cdbe272ba 100644 --- a/resources/assets/js/locales/pt.json +++ b/resources/assets/js/locales/pt.json @@ -9,7 +9,7 @@ "split": "Dividir", "single_split": "Dividir", "transaction_stored_link": "Transa\u00e7\u00e3o #{ID} (\"{title}\")<\/a> foi guardada.", - "transaction_updated_link": "Transa\u00e7\u00e3o#{ID}<\/a> foi atualizada.", + "transaction_updated_link": "Transa\u00e7\u00e3o #{ID}<\/a> (\"{title}\") foi atualizada.", "transaction_new_stored_link": "Transa\u00e7\u00e3o#{ID}<\/a> foi guardada.", "transaction_journal_information": "Informacao da transaccao", "no_budget_pointer": "Parece que ainda n\u00e3o tem or\u00e7amentos. Pode criar-los na p\u00e1gina de or\u00e7amentos<\/a>. Or\u00e7amentos podem ajud\u00e1-lo a controlar as despesas.", diff --git a/resources/assets/js/locales/ro.json b/resources/assets/js/locales/ro.json index 3592843ce8..80b9a3e993 100644 --- a/resources/assets/js/locales/ro.json +++ b/resources/assets/js/locales/ro.json @@ -9,7 +9,7 @@ "split": "\u00cemparte", "single_split": "\u00cemparte", "transaction_stored_link": "Tranzac\u021bia #{ID} (\"{title}\")<\/a> a fost stocat\u0103.", - "transaction_updated_link": "Tranzac\u021bia #{ID}<\/a> a fost actualizat\u0103.", + "transaction_updated_link": "Transaction #{ID}<\/a> (\"{title}\") has been updated.", "transaction_new_stored_link": "Tranzac\u021bia #{ID}<\/a> a fost stocat\u0103.", "transaction_journal_information": "Informa\u021bii despre tranzac\u021bii", "no_budget_pointer": "Se pare c\u0103 nu ave\u021bi \u00eenc\u0103 bugete. Ar trebui s\u0103 crea\u021bi c\u00e2teva pe pagina bugete<\/a>. Bugetele v\u0103 pot ajuta s\u0103 \u021bine\u021bi eviden\u021ba cheltuielilor.", diff --git a/resources/assets/js/locales/ru.json b/resources/assets/js/locales/ru.json index a4f970ce33..9c33cb1dfa 100644 --- a/resources/assets/js/locales/ru.json +++ b/resources/assets/js/locales/ru.json @@ -9,7 +9,7 @@ "split": "\u0420\u0430\u0437\u0434\u0435\u043b\u0438\u0442\u044c", "single_split": "\u0420\u0430\u0437\u0434\u0435\u043b\u0451\u043d\u043d\u0430\u044f \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044f", "transaction_stored_link": "\u0422\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044f #{ID} (\"{title}\")<\/a> \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0430.", - "transaction_updated_link": "\u0422\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044f #{ID}<\/a> \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0430.", + "transaction_updated_link": "Transaction #{ID}<\/a> (\"{title}\") has been updated.", "transaction_new_stored_link": "\u0422\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044f #{ID}<\/a> \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0430.", "transaction_journal_information": "\u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438", "no_budget_pointer": "\u041f\u043e\u0445\u043e\u0436\u0435, \u0443 \u0432\u0430\u0441 \u043f\u043e\u043a\u0430 \u043d\u0435\u0442 \u0431\u044e\u0434\u0436\u0435\u0442\u043e\u0432. \u0412\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u0438\u0445 \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435 \u0411\u044e\u0434\u0436\u0435\u0442\u044b<\/a>. \u0411\u044e\u0434\u0436\u0435\u0442\u044b \u043c\u043e\u0433\u0443\u0442 \u043f\u043e\u043c\u043e\u0447\u044c \u0432\u0430\u043c \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u0442\u044c \u0440\u0430\u0441\u0445\u043e\u0434\u044b.", diff --git a/resources/assets/js/locales/sk.json b/resources/assets/js/locales/sk.json index 97b4836457..e70f54caa9 100644 --- a/resources/assets/js/locales/sk.json +++ b/resources/assets/js/locales/sk.json @@ -9,7 +9,7 @@ "split": "Roz\u00fa\u010dtova\u0165", "single_split": "Roz\u00fa\u010dtova\u0165", "transaction_stored_link": "Transakcia #{ID} (\"{title}\")<\/a> bola ulo\u017een\u00e1.", - "transaction_updated_link": "Transakcia #{ID}<\/a> bola aktualizovan\u00e1.", + "transaction_updated_link": "Transaction #{ID}<\/a> (\"{title}\") has been updated.", "transaction_new_stored_link": "Transakcia #{ID}<\/a> bola ulo\u017een\u00e1.", "transaction_journal_information": "Inform\u00e1cie o transakcii", "no_budget_pointer": "Zd\u00e1 sa, \u017ee zatia\u013e nem\u00e1te \u017eiadne rozpo\u010dty. Na str\u00e1nke rozpo\u010dty<\/a> by ste si nejak\u00e9 mali vytvori\u0165. Rozpo\u010dty m\u00f4\u017eu pom\u00f4c\u0165 udr\u017ea\u0165 preh\u013ead vo v\u00fddavkoch.", diff --git a/resources/assets/js/locales/sv.json b/resources/assets/js/locales/sv.json index ccd2dd3550..066a1fb6de 100644 --- a/resources/assets/js/locales/sv.json +++ b/resources/assets/js/locales/sv.json @@ -9,7 +9,7 @@ "split": "Dela", "single_split": "Dela", "transaction_stored_link": "Transaktion #{ID} (\"{title}\")<\/a> sparades.", - "transaction_updated_link": "Transaktion #{ID}<\/a> uppdaterades.", + "transaction_updated_link": "Transaction #{ID}<\/a> (\"{title}\") has been updated.", "transaction_new_stored_link": "Transaktion #{ID}<\/a> sparades.", "transaction_journal_information": "Transaktionsinformation", "no_budget_pointer": "Du verkar inte ha n\u00e5gra budgetar \u00e4n. Du b\u00f6r skapa n\u00e5gra p\u00e5 budgetar<\/a>-sidan. Budgetar kan hj\u00e4lpa dig att h\u00e5lla reda p\u00e5 utgifter.", diff --git a/resources/assets/js/locales/vi.json b/resources/assets/js/locales/vi.json index 550704ed89..4e46b387a1 100644 --- a/resources/assets/js/locales/vi.json +++ b/resources/assets/js/locales/vi.json @@ -7,9 +7,9 @@ "split_transaction_title": "M\u00f4 t\u1ea3 giao d\u1ecbch t\u00e1ch", "errors_submission": "There was something wrong with your submission. Please check out the errors.", "split": "Chia ra", - "single_split": "Split", + "single_split": "Chia ra", "transaction_stored_link": "Giao d\u1ecbch #{ID} (\"{title}\")<\/a> \u0111\u00e3 \u0111\u01b0\u1ee3c l\u01b0u tr\u1eef.", - "transaction_updated_link": "Giao d\u1ecbch#{ID}<\/a> \u0111\u00e3 \u0111\u01b0\u1ee3c c\u1eadp nh\u1eadt.", + "transaction_updated_link": "Transaction #{ID}<\/a> (\"{title}\") has been updated.", "transaction_new_stored_link": " Giao d\u1ecbch #{ID}<\/a> \u0111\u00e3 \u0111\u01b0\u1ee3c l\u01b0u tr\u1eef.", "transaction_journal_information": "Th\u00f4ng tin giao d\u1ecbch", "no_budget_pointer": "You seem to have no budgets yet. You should create some on the budgets<\/a>-page. Budgets can help you keep track of expenses.", @@ -30,7 +30,7 @@ "category": "Danh m\u1ee5c", "attachments": "T\u1ec7p \u0111\u00ednh k\u00e8m", "notes": "Ghi ch\u00fa", - "external_uri": "External URL", + "external_uri": "URL b\u00ean ngo\u00e0i", "update_transaction": "C\u1eadp nh\u1eadt giao d\u1ecbch", "after_update_create_another": "Sau khi c\u1eadp nh\u1eadt, quay l\u1ea1i \u0111\u00e2y \u0111\u1ec3 ti\u1ebfp t\u1ee5c ch\u1ec9nh s\u1eeda.", "store_as_new": "L\u01b0u tr\u1eef nh\u01b0 m\u1ed9t giao d\u1ecbch m\u1edbi thay v\u00ec c\u1eadp nh\u1eadt.", diff --git a/resources/assets/js/locales/zh-cn.json b/resources/assets/js/locales/zh-cn.json index 3fd9233efb..88e60e8680 100644 --- a/resources/assets/js/locales/zh-cn.json +++ b/resources/assets/js/locales/zh-cn.json @@ -9,7 +9,7 @@ "split": "\u62c6\u5206", "single_split": "\u62c6\u5206", "transaction_stored_link": "\u4ea4\u6613 #{ID} (\u201c{title}\u201d)<\/a> \u5df2\u4fdd\u5b58\u3002", - "transaction_updated_link": "\u4ea4\u6613 #{ID}<\/a> \u5df2\u66f4\u65b0\u3002", + "transaction_updated_link": "Transaction #{ID}<\/a> (\"{title}\") has been updated.", "transaction_new_stored_link": "\u4ea4\u6613 #{ID}<\/a> \u5df2\u4fdd\u5b58\u3002", "transaction_journal_information": "\u4ea4\u6613\u4fe1\u606f", "no_budget_pointer": "\u60a8\u8fd8\u6ca1\u6709\u9884\u7b97\uff0c\u60a8\u5e94\u8be5\u5728\u9884\u7b97\u9875\u9762<\/a>\u8fdb\u884c\u521b\u5efa\u3002\u9884\u7b97\u53ef\u4ee5\u5e2e\u52a9\u60a8\u8ffd\u8e2a\u652f\u51fa\u3002", diff --git a/resources/assets/js/locales/zh-tw.json b/resources/assets/js/locales/zh-tw.json index 4b61a24571..301411523e 100644 --- a/resources/assets/js/locales/zh-tw.json +++ b/resources/assets/js/locales/zh-tw.json @@ -9,7 +9,7 @@ "split": "\u5206\u5272", "single_split": "Split", "transaction_stored_link": "Transaction #{ID} (\"{title}\")<\/a> has been stored.", - "transaction_updated_link": "Transaction #{ID}<\/a> has been updated.", + "transaction_updated_link": "Transaction #{ID}<\/a> (\"{title}\") has been updated.", "transaction_new_stored_link": "Transaction #{ID}<\/a> has been stored.", "transaction_journal_information": "\u4ea4\u6613\u8cc7\u8a0a", "no_budget_pointer": "You seem to have no budgets yet. You should create some on the budgets<\/a>-page. Budgets can help you keep track of expenses.", diff --git a/resources/lang/bg_BG/firefly.php b/resources/lang/bg_BG/firefly.php index c0733efa91..50f6ffa2bb 100644 --- a/resources/lang/bg_BG/firefly.php +++ b/resources/lang/bg_BG/firefly.php @@ -886,6 +886,7 @@ return [ 'create_new_deposit' => 'Създай нов депозит', 'create_new_transfer' => 'Създай ново прехвърляне', 'create_new_asset' => 'Създай нова сметка за активи', + 'create_new_liabilities' => 'Create new liability', 'create_new_expense' => 'Създай нова сметка за разходи', 'create_new_revenue' => 'Създай нова сметка за приходи', 'create_new_piggy_bank' => 'Създай нова касичка', @@ -1130,6 +1131,7 @@ return [ 'interest_calc_monthly' => 'На месец', 'interest_calc_yearly' => 'Годишно', 'initial_balance_account' => 'Първоначално салдо на сметка ":account"', + 'list_options' => 'List options', // categories: 'new_category' => 'Нова категория', @@ -1243,6 +1245,7 @@ return [ 'first_split_decides' => 'The first split determines the value of this field', 'first_split_overrules_source' => 'The first split may overrule the source account', 'first_split_overrules_destination' => 'The first split may overrule the destination account', + 'spent_x_of_y' => 'Spent {amount} of {total}', // new user: 'welcome' => 'Добре дошли в Firefly III!', diff --git a/resources/lang/cs_CZ/firefly.php b/resources/lang/cs_CZ/firefly.php index 45a364aeaa..b58c509fcb 100644 --- a/resources/lang/cs_CZ/firefly.php +++ b/resources/lang/cs_CZ/firefly.php @@ -886,6 +886,7 @@ return [ 'create_new_deposit' => 'Vytvořit nový vklad', 'create_new_transfer' => 'Vytvořit nový převod', 'create_new_asset' => 'Vytvořit nový účet aktiv', + 'create_new_liabilities' => 'Create new liability', 'create_new_expense' => 'Vytvořit výdajový účet', 'create_new_revenue' => 'Vytvořit nový příjmový účet', 'create_new_piggy_bank' => 'Vytvořit novou pokladničku', @@ -1130,6 +1131,7 @@ return [ 'interest_calc_monthly' => 'Za měsíc', 'interest_calc_yearly' => 'Za rok', 'initial_balance_account' => 'Initial balance account of :account', + 'list_options' => 'List options', // categories: 'new_category' => 'Nová kategorie', @@ -1243,6 +1245,7 @@ return [ 'first_split_decides' => 'The first split determines the value of this field', 'first_split_overrules_source' => 'The first split may overrule the source account', 'first_split_overrules_destination' => 'The first split may overrule the destination account', + 'spent_x_of_y' => 'Spent {amount} of {total}', // new user: 'welcome' => 'Vítejte ve Firefly III!', diff --git a/resources/lang/de_DE/firefly.php b/resources/lang/de_DE/firefly.php index c6f56ce4ce..7fb35030e2 100644 --- a/resources/lang/de_DE/firefly.php +++ b/resources/lang/de_DE/firefly.php @@ -886,6 +886,7 @@ return [ 'create_new_deposit' => 'Erstelle eine neue Einnahme', 'create_new_transfer' => 'Eine neue Umbuchung erstellen', 'create_new_asset' => 'Neues Bestandskonto erstellen', + 'create_new_liabilities' => 'Neue Verbindlichkeit anlegen', 'create_new_expense' => 'Neues Ausgabenkonto erstellen', 'create_new_revenue' => 'Neues Einnahmenkonto erstellen', 'create_new_piggy_bank' => 'Ein neues Sparschwein erstellen', @@ -1130,6 +1131,7 @@ return [ 'interest_calc_monthly' => 'Monatlich', 'interest_calc_yearly' => 'Jährlich', 'initial_balance_account' => 'Anfangsguthaben von „:account”', + 'list_options' => 'Listenoptionen', // categories: 'new_category' => 'Neue Kategorie', @@ -1243,6 +1245,7 @@ return [ 'first_split_decides' => 'Die erste Aufteilung bestimmt den Wert dieses Feldes', 'first_split_overrules_source' => 'Die erste Aufteilung könnte das Quellkonto überschreiben', 'first_split_overrules_destination' => 'Die erste Aufteilung könnte das Zielkonto überschreiben', + 'spent_x_of_y' => '{amount} von {total} ausgegeben', // new user: 'welcome' => 'Willkommen bei Firefly III!', diff --git a/resources/lang/de_DE/validation.php b/resources/lang/de_DE/validation.php index af9a545817..4f58aa7ab4 100644 --- a/resources/lang/de_DE/validation.php +++ b/resources/lang/de_DE/validation.php @@ -60,7 +60,7 @@ return [ 'less' => ':attribute muss kleiner als 10.000.000 sein', 'active_url' => ':attribute ist keine gültige URL.', 'after' => ':attribute muss ein Datum nach :date sein.', - 'date_after' => 'The start date must be before the end date.', + 'date_after' => 'Das Startdatum muss vor dem Enddatum liegen.', 'alpha' => ':attribute darf nur Buchstaben enthalten.', 'alpha_dash' => ':attribute darf nur Buchstaben, Zahlen und Bindestrichen enthalten.', 'alpha_num' => ':attribute darf nur Buchstaben und Zahlen enthalten.', diff --git a/resources/lang/el_GR/breadcrumbs.php b/resources/lang/el_GR/breadcrumbs.php index 7c308c6aaa..ace353c375 100644 --- a/resources/lang/el_GR/breadcrumbs.php +++ b/resources/lang/el_GR/breadcrumbs.php @@ -30,7 +30,7 @@ return [ 'edit_piggyBank' => 'Επεξεργασία κουμπαρά ":name"', 'preferences' => 'Προτιμήσεις', 'profile' => 'Προφίλ', - 'accounts' => 'Accounts', + 'accounts' => 'Λογαριασμοί', 'changePassword' => 'Αλλάξτε τον κωδικό σας', 'change_email' => 'Αλλάξτε τη διεύθυνση του email σας', 'bills' => 'Πάγια έξοδα', diff --git a/resources/lang/el_GR/email.php b/resources/lang/el_GR/email.php index d0ef7508b5..3b0c2c2e72 100644 --- a/resources/lang/el_GR/email.php +++ b/resources/lang/el_GR/email.php @@ -25,9 +25,9 @@ declare(strict_types=1); return [ // common items 'greeting' => 'Γεια σου,', - 'closing' => 'Beep boop,', + 'closing' => 'Μπιπ μπιπ,', 'signature' => 'Το Ρομπότ Αλληλογραφίας του Firefly III', - 'footer_ps' => 'PS: This message was sent because a request from IP :ipAddress triggered it.', + 'footer_ps' => 'ΥΓ: Αυτό το μήνυμα στάλθηκε επειδή μια αίτηση από την IP :ipAddress το ενεργοποίησε.', // admin test 'admin_test_subject' => 'Ένα δοκιμαστικό μήνυμα από την εγκατάσταση του Firefly III', @@ -36,24 +36,24 @@ return [ // new IP 'login_from_new_ip' => 'Νέα σύνδεση χρήστη στο Firefly III', 'new_ip_body' => 'Το Firefly III εντόπισε μια νέα σύνδεση στο λογαριασμό σας από μια άγνωστη διεύθυνση IP. Αν δεν συνδεθήκατε ποτέ από την παρακάτω διεύθυνση IP ή έγινε πριν από περισσότερο από έξι μήνες, το Firefly III θα σας προειδοποιήσει.', - 'new_ip_warning' => 'If you recognize this IP address or the login, you can ignore this message. If you didn\'t login, of if you have no idea what this is about, verify your password security, change it, and log out all other sessions. To do this, go to your profile page. Of course you have 2FA enabled already, right? Stay safe!', + 'new_ip_warning' => 'Αν αναγνωρίζετε αυτή τη διεύθυνση IP ή τη σύνδεση χρήστη, μπορείτε να αγνοήσετε αυτό το μήνυμα. Αν δεν συνδεθήκατε, αν δεν έχετε ιδέα για το τι είναι αυτό, επαληθεύστε ένα ασφαλή κωδικό πρόσβασης, αλλάξτε τον και αποσυνδεθείτε από όλες τις άλλες συνεδρίες. Για να το κάνετε αυτό, πηγαίνετε στη σελίδα του προφίλ σας. Φυσικά έχετε ήδη ενεργοποιημένο το 2FactorAuthentication, έτσι? Μείνετε ασφαλείς!', 'ip_address' => 'Διεύθυνση IP', 'host_name' => 'Διακομιστής', 'date_time' => 'Ημερομηνία και ώρα', // access token created 'access_token_created_subject' => 'Δημιουργήθηκε ένα νέο διακριτικό πρόσβασης', - 'access_token_created_body' => 'Somebody (hopefully you) just created a new Firefly III API Access Token for your user account.', - 'access_token_created_explanation' => 'With this token, they can access all of your financial records through the Firefly III API.', - 'access_token_created_revoke' => 'If this wasn\'t you, please revoke this token as soon as possible at :url.', + 'access_token_created_body' => 'Κάποιος (ελπίζω εσείς) μόλις δημιούργησε ένα νέο Διακριτικό Πρόσβασης Firefly III API για το δικό σας λογαριασμό χρήστη.', + 'access_token_created_explanation' => 'Με αυτό το διακριτικό μπορούν να έχουν πρόσβαση σε όλες τις οικονομικές σας εγγραφές μέσω του Firefly III API.', + 'access_token_created_revoke' => 'Εάν δεν είστασταν εσείς, παρακαλώ να ανακαλέσετε αυτό το διακριτικό το συντομότερο δυνατό στο :url.', // registered 'registered_subject' => 'Καλωσήρθατε στο Firefly III!', - 'registered_welcome' => 'Welcome to Firefly III. Your registration has made it, and this email is here to confirm it. Yay!', - 'registered_pw' => 'If you have forgotten your password already, please reset it using the password reset tool.', - 'registered_help' => 'There is a help-icon in the top right corner of each page. If you need help, click it!', - 'registered_doc_html' => 'If you haven\'t already, please read the grand theory.', - 'registered_doc_text' => 'If you haven\'t already, please read the first use guide and the full description.', + 'registered_welcome' => 'Καλώς ήρθατε στο Firefly III. Η εγγραφή σας έχει ολοκληρωθεί και αυτό το email είναι εδώ για επιβεβαίωση. Ναι!', + 'registered_pw' => 'Εάν έχετε ήδη ξεχάσει τον κωδικό πρόσβασής σας, παρακαλούμε να τον επαναφέρετε χρησιμοποιώντας το εργαλείο επαναφοράς κωδικού πρόσβασης.', + 'registered_help' => 'Υπάρχει ένα εικονίδιο βοήθειας στην επάνω δεξιά γωνία κάθε σελίδας. Αν χρειάζεστε βοήθεια, κάντε κλικ σε αυτό!', + 'registered_doc_html' => 'Αν δεν το έχετε ήδη κάνει, παρακαλώ διαβάστε το θεωρητικό πλάνο.', + 'registered_doc_text' => 'Αν δεν το έχετε ήδη κάνει, διαβάστε τον οδηγό πρώτης χρήσης και την πλήρη περιγραφή.', 'registered_closing' => 'Καλή Διασκέδαση!', 'registered_firefly_iii_link' => 'Firefly III:', 'registered_pw_reset_link' => 'Επαναφορά κωδικού πρόσβασης:', @@ -61,21 +61,21 @@ return [ // email change 'email_change_subject' => 'Η διεύθυνση email σας στο Firefly III έχει αλλάξει', - 'email_change_body_to_new' => 'You or somebody with access to your Firefly III account has changed your email address. If you did not expect this message, please ignore and delete it.', - 'email_change_body_to_old' => 'You or somebody with access to your Firefly III account has changed your email address. If you did not expect this to happen, you must follow the "undo"-link below to protect your account!', - 'email_change_ignore' => 'If you initiated this change, you may safely ignore this message.', + 'email_change_body_to_new' => 'Εσείς ή κάποιος με πρόσβαση στο λογαριασμό σας στο Firefly III έχει αλλάξει τη διεύθυνση ηλεκτρονικού ταχυδρομείου σας. Αν δεν περιμένατε αυτό το μήνυμα, παρακαλώ αγνοήστε και διαγράψτε το.', + 'email_change_body_to_old' => 'Εσείς ή κάποιος με πρόσβαση στο λογαριασμό σας στο Firefly III έχει αλλάξει τη διεύθυνση ηλεκτρονικού ταχυδρομείου σας. Αν δεν το περιμένατε αυτό, πρέπει να ακολουθήσετε τον παρακάτω "σύνδεσμο αναίρεσης" για να προστατεύσετε τον λογαριασμό σας!', + 'email_change_ignore' => 'Αν ξεκινήσατε αυτήν την αλλαγή, μπορείτε να αγνοήσετε με ασφάλεια αυτό το μήνυμα.', 'email_change_old' => 'Η παλιά διεύθυνση ηλεκτρονικού ταχυδρομείου ήταν: :email', 'email_change_old_strong' => 'Η παλιά διεύθυνση ηλεκτρονικού ταχυδρομείου ήταν: :email', 'email_change_new' => 'Η νέα διεύθυνση ηλεκτρονικού ταχυδρομείου είναι: :email', 'email_change_new_strong' => 'Η νέα διεύθυνση ηλεκτρονικού ταχυδρομείου είναι: :email', - 'email_change_instructions' => 'You cannot use Firefly III until you confirm this change. Please follow the link below to do so.', + 'email_change_instructions' => 'Δεν μπορείτε να χρησιμοποιήσετε το Firefly III μέχρι να επιβεβαιώσετε αυτήν την αλλαγή. Ακολουθήστε τον παρακάτω σύνδεσμο για να το κάνετε.', 'email_change_undo_link' => 'Για να αναιρέσετε την αλλαγή, ακολουθήστε αυτόν τον σύνδεσμο:', // OAuth token created 'oauth_created_subject' => 'Δημιουργήθηκε ένας νέος πελάτης OAuth', - 'oauth_created_body' => 'Somebody (hopefully you) just created a new Firefly III API OAuth Client for your user account. It\'s labeled ":name" and has callback URL :url.', - 'oauth_created_explanation' => 'With this client, they can access all of your financial records through the Firefly III API.', - 'oauth_created_undo' => 'If this wasn\'t you, please revoke this client as soon as possible at :url.', + 'oauth_created_body' => 'Κάποιος (ελπίζω εσείς) μόλις δημιούργησε ένα νέο πελάτη API Firefly III OAuth για το λογαριασμό χρήστη σας. Έχει την ένδειξη ":name" και έχει URL επιστροφής κλήσης :url.', + 'oauth_created_explanation' => 'Με αυτόν τον πελάτη, μπορούν να έχουν πρόσβαση σε όλες τις οικονομικες σας εγγραφές μέσω του Firefly III API.', + 'oauth_created_undo' => 'Αν δεν ήσασταν εσείς, παρακαλώ να ανακαλέσετε αυτόν τον πελάτη το συντομότερο δυνατό στο :url.', // reset password 'reset_pw_subject' => 'Αίτημα επαναφοράς κωδικού πρόσβασης', @@ -93,12 +93,12 @@ return [ 'error_ip' => 'Η διεύθυνση IP που σχετίζεται με αυτό το σφάλμα είναι: :ip', 'error_url' => 'Το URL είναι: :url', 'error_user_agent' => 'User agent: :userAgent', - 'error_stacktrace' => 'The full stacktrace is below. If you think this is a bug in Firefly III, you can forward this message to james@firefly-iii.org. This can help fix the bug you just encountered.', - 'error_github_html' => 'If you prefer, you can also open a new issue on GitHub.', - 'error_github_text' => 'If you prefer, you can also open a new issue on https://github.com/firefly-iii/firefly-iii/issues.', - 'error_stacktrace_below' => 'The full stacktrace is below:', + 'error_stacktrace' => 'Το πλήρες stacktrace είναι παρακάτω. Αν νομίζετε ότι αυτό είναι ένα σφάλμα στο Firefly III, μπορείτε να προωθήσετε αυτό το μήνυμα στο james@firefly-iii.org. Αυτό μπορεί να βοηθήσει στη διόρθωση του σφάλματος που μόλις αντιμετωπίσατε.', + 'error_github_html' => 'Αν προτιμάτε, μπορείτε επίσης να ανοίξετε ένα νέο ζήτημα στο GitHub.', + 'error_github_text' => 'Αν προτιμάτε, μπορείτε επίσης να ανοίξετε ένα νέο ζήτημα στο https://github.com/firefly-iii/firefly-iii/issues.', + 'error_stacktrace_below' => 'Το πλήρες stacktrace είναι παρακάτω:', // report new journals - 'new_journals_subject' => 'Firefly III has created a new transaction|Firefly III has created :count new transactions', - 'new_journals_header' => 'Firefly III has created a transaction for you. You can find it in your Firefly III installation:|Firefly III has created :count transactions for you. You can find them in your Firefly III installation:', + 'new_journals_subject' => 'Το Firefly III έχει δημιουργήσει μια νέα συναλλαγή|Το Firefly III έχει δημιουργήσει :count νέες συναλλαγές', + 'new_journals_header' => 'Το Firefly III έχει δημιουργήσει μια συναλλαγή για εσάς. Μπορείτε να τη βρείτε στην εγκατάσταση Firefly ΙΙΙ:|Το Firefly III έχει δημιουργήσει :count συναλλαγές για εσάς. Μπορείτε να τις βρείτε στην εγκατάσταση Firefly III:', ]; diff --git a/resources/lang/el_GR/firefly.php b/resources/lang/el_GR/firefly.php index fb967db142..fd2cdfe177 100644 --- a/resources/lang/el_GR/firefly.php +++ b/resources/lang/el_GR/firefly.php @@ -244,8 +244,8 @@ return [ 'all_source_accounts' => 'Λογαριασμοί προέλευσης', 'back_to_index' => 'Επιστροφή στο ευρετήριο', 'cant_logout_guard' => 'Το Firefly III δε μπορεί να σας αποσυνδέσει.', - 'external_url' => 'External URL', - 'internal_reference' => 'Internal reference', + 'external_url' => 'Εξωτερικό URL', + 'internal_reference' => 'Εσωτερική αναφορά', // check for updates: 'update_check_title' => 'Έλεγχος ενημερώσεων', @@ -280,7 +280,7 @@ return [ 'search_found_more_transactions' => 'Το Firefly III βρήκε περισσότερες από :count συναλλαγές σε :time δευτερόλεπτα.', 'search_for_query' => 'Το Firefly III αναζητεί για συναλλαγές που περιέχουν όλες αυτές τις λέξεις: :query', 'search_modifier_date_is' => 'Η ημερομηνία συναλλαγής είναι ":value"', - 'search_modifier_id' => 'Transaction ID is ":value"', + 'search_modifier_id' => 'Το ID συναλλαγής είναι ":value"', 'search_modifier_date_before' => 'Η ημερομηνία συναλλαγής είναι πριν ή στις ":value"', 'search_modifier_date_after' => 'Η ημερομηνία συναλλαγής είναι μετά ή στις ":value"', 'search_modifier_created_on' => 'Η συναλλαγή δημιουργήθηκε στις ":value"', @@ -423,7 +423,7 @@ return [ 'apply_rule_selection' => 'Εφαρμογή του κανόνα ":title" σε μία επιλογή των συναλλαγών σας', 'apply_rule_selection_intro' => 'Κανόνες όπως ":title" εφαρμόζονται συνήθως σε νέες ή ενημερωμένες συναλλαγές, αλλά μπορείτε να πείτε στο Firefly ΙΙΙ να τους εκτελέσει σε μια επιλογή υπαρχόντων συναλλαγών. Αυτό μπορεί να είναι χρήσιμο όταν έχετε ενημερώσει έναν κανόνα και χρειάζεστε οι αλλαγές να εφαρμοστούν σε όλες τις άλλες συναλλαγές σας.', 'include_transactions_from_accounts' => 'Συμπερίληψη συναλλαγών από αυτούς τους λογαριασμούς', - 'applied_rule_selection' => '{0} No transactions in your selection were changed by rule ":title".|[1] One transaction in your selection was changed by rule ":title".|[2,*] :count transactions in your selection were changed by rule ":title".', + 'applied_rule_selection' => '{0} Καμία συναλλαγή στην επιλογή σας δεν άλλαξε από τον κανόνα ":title".|[1] Μία συναλλαγή στην επιλογή σας άλλαξε από τον κανόνα ":title".|[2,*]:count συναλλαγές στην επιλογή σας άλλαξαν από τον κανόνα ":title".', 'execute' => 'Εκτέλεση', 'apply_rule_group_selection' => 'Εφαρμογή ομάδας κανόνων ":title" σε μία επιλογή των συναλλαγών σας', 'apply_rule_group_selection_intro' => 'Ομάδες κανόνων όπως ":title" συνήθως εφαρμόζονται σε νέες ή ενημερωμένες συναλλαγές, αλλά μπορείτε να πείτε στο Firefly III να εκτελέσει όλους τους κανόνες σε αυτή την ομάδα σε μία επιλογή των υπαρχόντων συναλλαγών σας. Αυτό μπορεί να είναι χρήσιμο εάν ενημερώσατε μια ομάδα κανόνων και θέλετε οι αλλαγές να εφαρμοστούν σε όλες τις άλλες συναλλαγές σας.', @@ -678,7 +678,7 @@ return [ 'pref_optional_fields_transaction' => 'Προαιρετικά πεδία για συναλλαγές', 'pref_optional_fields_transaction_help' => 'Από προεπιλογή δεν μπορούν να ενεργοποιηθούν όλα τα πεδία όταν δημιουργείται μία νέα συναλλαγή (εξαιτίας της σύγχυσης). Παρακάτω, μπορείτε να ενεργοποιήσετε αυτά τα πεδία εάν νομίζετε ότι θα σας φανούν χρήσιμα. Φυσικά, όποιο πεδίο απενεργοποιείται, αλλά είναι ήδη συμπληρωμένο, θα συνεχίζει να εμφανίζεται ασχέτως της ρύθμισης.', 'optional_tj_date_fields' => 'Πεδία ημερομηνίας', - 'optional_tj_other_fields' => 'Other fields', + 'optional_tj_other_fields' => 'Άλλα πεδία', 'optional_tj_attachment_fields' => 'Πεδία συνημμένου', 'pref_optional_tj_interest_date' => 'Ημερομηνία τοκισμού', 'pref_optional_tj_book_date' => 'Ημερομηνία εγγραφής', @@ -689,14 +689,14 @@ return [ 'pref_optional_tj_internal_reference' => 'Εσωτερική αναφορά', 'pref_optional_tj_notes' => 'Σημειώσεις', 'pref_optional_tj_attachments' => 'Συνημμένα', - 'pref_optional_tj_external_uri' => 'External URL', - 'pref_optional_tj_location' => 'Location', - 'pref_optional_tj_links' => 'Transaction links', + 'pref_optional_tj_external_uri' => 'Εξωτερικό URL', + 'pref_optional_tj_location' => 'Τοποθεσία', + 'pref_optional_tj_links' => 'Συνδέσεις συναλλαγής', 'optional_field_meta_dates' => 'Ημερομηνίες', 'optional_field_meta_business' => 'Επιχείρηση', 'optional_field_attachments' => 'Συνημμένα', 'optional_field_meta_data' => 'Προαιρετικά μετα-δεδομένα', - 'external_uri' => 'External URL', + 'external_uri' => 'Εξωτερικό URL', // profile: 'delete_stuff_header' => 'Διαγραφή δεδομένων', @@ -886,6 +886,7 @@ return [ 'create_new_deposit' => 'Δημιουργία νέας κατάθεσης', 'create_new_transfer' => 'Δημιουργία νέας μεταφοράς', 'create_new_asset' => 'Δημιουργία νέου λογαριασμού κεφαλαίου', + 'create_new_liabilities' => 'Create new liability', 'create_new_expense' => 'Δημιουργία νέου λογαριασμού δαπανών', 'create_new_revenue' => 'Δημιουργία νέου λογαριασμού εσόδων', 'create_new_piggy_bank' => 'Δημιουργία ενός νέου κουμπαρά', @@ -1023,7 +1024,7 @@ return [ 'list_inactive_rule' => 'ανενεργός κανόνας', 'bill_edit_rules' => 'Το Firefly III θα προσπαθήσει επίσης να επεξεργαστεί τον κανόνα που σχετίζεται με αυτόν τον λογαριασμό. Εάν όμως έχετε επεξεργαστεί ο ίδιος αυτόν τον κανόνα, το Firefly III δεν θα αλλάξει τίποτα.|Το Firefly III θα προσπαθήσει επίσης να επεξεργαστεί τους :count κανόνες που σχετίζονται με αυτόν τον λογαριασμό. Ωστόσο, εάν έχετε επεξεργαστεί αυτούς τους κανόνες μόνοι σας, το Firefly III δεν θα αλλάξει τίποτα.', 'bill_expected_date' => 'Αναμένεται :date', - 'bill_paid_on' => 'Paid on {date}', + 'bill_paid_on' => 'Πληρώθηκε στις {date}', // accounts: 'inactive_account_link' => 'Έχετε :count ανενεργό λογαριασμό (σε αρχειοθέτηση), τον οποίο μπορείτε να δείτε σε αυτή τη ξεχωριστή σελίδα.|Έχετε :count ανενεργούς λογαριασμούς (σε αρχειοθέτηση), τους οποίους μπορείτε να δείτε σε αυτή τη ξεχωριστή σελίδα.', @@ -1130,6 +1131,7 @@ return [ 'interest_calc_monthly' => 'Ανά μήνα', 'interest_calc_yearly' => 'Ανά έτος', 'initial_balance_account' => 'Αρχικό υπόλοιπο του λογαριασμού :account', + 'list_options' => 'List options', // categories: 'new_category' => 'Νέα κατηγορία', @@ -1155,9 +1157,9 @@ return [ 'updated_withdrawal' => 'Ενημερώθηκε η ανάληψη ":description"', 'updated_deposit' => 'Ενημερώθηκε η κατάθεση ":description"', 'updated_transfer' => 'Ενημερώθηκε η μεταφορά ":description"', - 'no_changes_withdrawal' => 'Withdrawal ":description" was not changed.', - 'no_changes_deposit' => 'Deposit ":description" was not changed.', - 'no_changes_transfer' => 'Transfer ":description" was not changed.', + 'no_changes_withdrawal' => 'Η ανάληψη ":description" δεν άλλαξε.', + 'no_changes_deposit' => 'Η κατάθεση ":description" δεν άλλαξε.', + 'no_changes_transfer' => 'Η μεταφορά ":description" δεν άλλαξε.', 'delete_withdrawal' => 'Διαγραφή ανάληψης ":description"', 'delete_deposit' => 'Διαγραφή κατάθεσης ":description"', 'delete_transfer' => 'Διαγραφή μεταφοράς ":description"', @@ -1238,11 +1240,12 @@ return [ 'journal_link_bill' => 'Αυτή η συναλλαγή συνδέεται με το πάγιο έξοδο :name. Για να καταργήσετε τη σύνδεση, καταργήστε την επιλογή στο κουτάκι. Χρησιμοποιήστε κανόνες για να το συνδέσετε με ένα άλλο πάγιο έξοδο.', 'transaction_stored_link' => 'Η συναλλαγή #{ID} ("{title}") έχει αποθηκευτεί.', 'transaction_new_stored_link' => 'Η συναλλαγή #{ID} έχει αποθηκευτεί.', - 'transaction_updated_link' => 'Transaction #{ID} ("{title}") has been updated.', - 'transaction_updated_no_changes' => 'Transaction #{ID} ("{title}") did not receive any changes.', - 'first_split_decides' => 'The first split determines the value of this field', - 'first_split_overrules_source' => 'The first split may overrule the source account', - 'first_split_overrules_destination' => 'The first split may overrule the destination account', + 'transaction_updated_link' => 'Η συναλλαγή #{ID} ("{title}") έχει ενημερωθεί.', + 'transaction_updated_no_changes' => 'Η συναλλαγή #{ID} ("{title}") παρέμεινε χωρίς καμία αλλαγή.', + 'first_split_decides' => 'Ο πρώτος διαχωρισμός καθορίζει την τιμή αυτού του πεδίου', + 'first_split_overrules_source' => 'Ο πρώτος διαχωρισμός ενδέχεται να παρακάμψει τον λογαριασμό προέλευσης', + 'first_split_overrules_destination' => 'Ο πρώτος διαχωρισμός ενδέχεται να παρακάμψει τον λογαριασμό προορισμού', + 'spent_x_of_y' => 'Spent {amount} of {total}', // new user: 'welcome' => 'Καλωσήρθατε στο Firefly III!', @@ -1281,9 +1284,9 @@ return [ 'per_day' => 'Ανά ημέρα', 'left_to_spend_per_day' => 'Διαθέσιμα προϋπολογισμών ανά ημέρα', 'bills_paid' => 'Πληρωμένα πάγια έξοδα', - 'custom_period' => 'Custom period', - 'reset_to_current' => 'Reset to current period', - 'select_period' => 'Select a period', + 'custom_period' => 'Προσαρμοσμένη περίοδος', + 'reset_to_current' => 'Επαναφορά στην τρέχουσα περίοδο', + 'select_period' => 'Επιλέξτε περίοδο', // menu and titles, should be recycled as often as possible: 'currency' => 'Νόμισμα', @@ -1352,7 +1355,7 @@ return [ 'automation' => 'Αυτοματοποίηση', 'others' => 'Λοιπά', 'classification' => 'Ταξινόμηση', - 'store_transaction' => 'Store transaction', + 'store_transaction' => 'Αποθήκευση συναλλαγής', // reports: 'report_default' => 'Προεπιλεγμένη οικονομική αναφορά μεταξύ :start και :end', diff --git a/resources/lang/el_GR/validation.php b/resources/lang/el_GR/validation.php index 6b79fd2c47..33725d661e 100644 --- a/resources/lang/el_GR/validation.php +++ b/resources/lang/el_GR/validation.php @@ -60,7 +60,7 @@ return [ 'less' => 'Το :attribute πρέπει να είναι μικρότερο από 10,000,000', 'active_url' => 'Το :attribute δεν είναι έγκυρο URL.', 'after' => 'Το :attribute πρέπει να είναι ημερομηνία μετά από :date.', - 'date_after' => 'The start date must be before the end date.', + 'date_after' => 'Η ημερομηνία έναρξης πρέπει να είναι πριν την ημερομηνία λήξης.', 'alpha' => 'Το :attribute μπορεί να περιέχει μόνο γράμματα.', 'alpha_dash' => 'Το :attribute μπορεί να περιέχει γράμματα, αριθμοί, και παύλες.', 'alpha_num' => 'Το :attribute μπορεί να περιέχει γράμματα και αριθμούς.', @@ -179,27 +179,27 @@ return [ // validation of accounts: 'withdrawal_source_need_data' => 'Πρέπει να λάβετε ένα έγκυρο αναγνωριστικό λογαριασμού προέλευσης και/ή ένα έγκυρο όνομα λογαριασμού προέλευσης για να συνεχίσετε.', - 'withdrawal_source_bad_data' => 'Δεν μπορεί να βρεθεί έγκυρος λογαριασμός προέλευσης κατά την αναζήτηση του αναγνωριστικού ID ":id" ή του ονόματος ":name".', + 'withdrawal_source_bad_data' => 'Δεν ήταν δυνατή η εύρεση ενός έγκυρου λογαριασμού προέλευσης κατά την αναζήτηση του αναγνωριστικού ID ":id" ή του ονόματος ":name".', 'withdrawal_dest_need_data' => 'Πρέπει να λάβετε ένα έγκυρο αναγνωριστικό ID λογαριασμού προέλευσης και/ή ένα έγκυρο όνομα λογαριασμού προορισμού για να συνεχίσετε.', - 'withdrawal_dest_bad_data' => 'Δεν μπορεσε να βρεθεί έγκυρος λογαριασμός προορισμού κατά την αναζήτηση του αναγνωριστικού ID ":id" ή του ονόματος ":name".', + 'withdrawal_dest_bad_data' => 'Δεν ήταν δυνατή η εύρεση ενός έγκυρου λογαριασμού προορισμού κατά την αναζήτηση του αναγνωριστικού ID ":id" ή του ονόματος ":name".', - 'generic_source_bad_data' => 'Could not find a valid source account when searching for ID ":id" or name ":name".', + 'generic_source_bad_data' => 'Δεν ήταν δυνατή η εύρεση ενός έγκυρου λογαριασμού προέλευσης κατά την αναζήτηση του αναγνωριστικού ID ":id" ή του ονόματος ":name".', 'deposit_source_need_data' => 'Πρέπει να λάβετε ένα έγκυρο αναγνωριστικό ID λογαριασμού προέλευσης και/ή ένα έγκυρο όνομα λογαριασμού προέλευσης για να συνεχίσετε.', - 'deposit_source_bad_data' => 'Δεν μπόρεσε να βρεθεί ένας έγκυρος λογαριασμός προέλευσης κατά την αναζήτηση του αναγνωριστικού ID ":id" ή του ονόματος ":name".', + 'deposit_source_bad_data' => 'Δεν ήταν δυνατή η εύρεση ενός έγκυρου λογαριασμού προέλευσης κατά την αναζήτηση του αναγνωριστικού ID ":id" ή του ονόματος ":name".', 'deposit_dest_need_data' => 'Πρέπει να λάβετε ένα έγκυρο αναγνωριστικό ID λογαριασμού προορισμού και/ή ένα έγκυρο όνομα λογαριασμού προορισμού για να συνεχίσετε.', - 'deposit_dest_bad_data' => 'Δεν μπόρεσε να βρεθεί έγκυρος λογαριασμός προορισμού κατά την αναζήτηση του αναγνωριστικού ID ":id" ή του ονόματος ":name".', + 'deposit_dest_bad_data' => 'Δεν ήταν δυνατή η εύρεση ενός έγκυρου λογαριασμού προορισμού κατά την αναζήτηση του αναγνωριστικού ID ":id" ή του ονόματος ":name".', 'deposit_dest_wrong_type' => 'O υποβεβλημένος λογαριασμός προέλευσης δεν είναι σωστού τύπου.', 'transfer_source_need_data' => 'Πρέπει να λάβετε ένα έγκυρο αναγνωριστικό λογαριασμού προέλευσης και/ή ένα έγκυρο όνομα λογαριασμού προέλευσης για να συνεχίσετε.', - 'transfer_source_bad_data' => 'Δεν μπορεσε να βρεθεί ένας έγκυρος λογαριασμός προέλευσης κατά την αναζήτηση του αναγνωριστικού ID ":id" ή του ονόματος ":name".', + 'transfer_source_bad_data' => 'Δεν ήταν δυνατή η εύρεση ενός έγκυρου λογαριασμού προέλευσης κατά την αναζήτηση του αναγνωριστικού ID ":id" ή του ονόματος ":name".', 'transfer_dest_need_data' => 'Πρέπει να λάβετε ένα έγκυρο αναγνωριστικό ID λογαριασμού προορισμού και/ή ένα έγκυρο όνομα λογαριασμού προορισμού για να συνεχίσετε.', - 'transfer_dest_bad_data' => 'Δεν μπορεσε να βρεθεί έγκυρος λογαριασμός προορισμού κατά την αναζήτηση του αναγνωριστικού ID ":id" ή του ονόματος ":name".', + 'transfer_dest_bad_data' => 'Δεν ήταν δυνατή η εύρεση ενός έγκυρου λογαριασμού προορισμού κατά την αναζήτηση του αναγνωριστικού ID ":id" ή του ονόματος ":name".', 'need_id_in_edit' => 'Κάθε διαχωρισμός πρέπει να έχει transaction_journal_id (είτε έγκυρο αναγνωριστικό ID ή 0).', 'ob_source_need_data' => 'Πρέπει να λάβετε ένα έγκυρο αναγνωριστικό λογαριασμού προέλευσης και/ή ένα έγκυρο όνομα λογαριασμού προέλευσης για να συνεχίσετε.', 'ob_dest_need_data' => 'Πρέπει να λάβετε ένα έγκυρο αναγνωριστικό ID λογαριασμού προορισμού και/ή ένα έγκυρο όνομα λογαριασμού προορισμού για να συνεχίσετε.', - 'ob_dest_bad_data' => 'Δεν μπορεσε να βρεθεί έγκυρος λογαριασμός προορισμού κατά την αναζήτηση του αναγνωριστικού ID ":id" ή του ονόματος ":name".', + 'ob_dest_bad_data' => 'Δεν ήταν δυνατή η εύρεση ενός έγκυρου λογαριασμού προορισμού κατά την αναζήτηση του αναγνωριστικού ID ":id" ή του ονόματος ":name".', 'generic_invalid_source' => 'Δεν μπορείτε να χρησιμοποιήσετε αυτό το λογαριασμό ως λογαριασμό προέλευσης.', 'generic_invalid_destination' => 'Δεν μπορείτε να χρησιμοποιήσετε αυτό το λογαριασμό ως λογαριασμό προορισμού.', diff --git a/resources/lang/en_GB/firefly.php b/resources/lang/en_GB/firefly.php index 8f0cb7b527..55953ee638 100644 --- a/resources/lang/en_GB/firefly.php +++ b/resources/lang/en_GB/firefly.php @@ -886,6 +886,7 @@ return [ 'create_new_deposit' => 'Create new deposit', 'create_new_transfer' => 'Create new transfer', 'create_new_asset' => 'Create new asset account', + 'create_new_liabilities' => 'Create new liability', 'create_new_expense' => 'Create new expense account', 'create_new_revenue' => 'Create new revenue account', 'create_new_piggy_bank' => 'Create new piggy bank', @@ -1130,6 +1131,7 @@ return [ 'interest_calc_monthly' => 'Per month', 'interest_calc_yearly' => 'Per year', 'initial_balance_account' => 'Initial balance account of :account', + 'list_options' => 'List options', // categories: 'new_category' => 'New category', @@ -1243,6 +1245,7 @@ return [ 'first_split_decides' => 'The first split determines the value of this field', 'first_split_overrules_source' => 'The first split may overrule the source account', 'first_split_overrules_destination' => 'The first split may overrule the destination account', + 'spent_x_of_y' => 'Spent {amount} of {total}', // new user: 'welcome' => 'Welcome to Firefly III!', diff --git a/resources/lang/en_US/firefly.php b/resources/lang/en_US/firefly.php index 248c83fb3f..60c96f7f78 100644 --- a/resources/lang/en_US/firefly.php +++ b/resources/lang/en_US/firefly.php @@ -886,6 +886,7 @@ return [ 'create_new_deposit' => 'Create new deposit', 'create_new_transfer' => 'Create new transfer', 'create_new_asset' => 'Create new asset account', + 'create_new_liabilities' => 'Create new liability', 'create_new_expense' => 'Create new expense account', 'create_new_revenue' => 'Create new revenue account', 'create_new_piggy_bank' => 'Create new piggy bank', @@ -1130,6 +1131,7 @@ return [ 'interest_calc_monthly' => 'Per month', 'interest_calc_yearly' => 'Per year', 'initial_balance_account' => 'Initial balance account of :account', + 'list_options' => 'List options', // categories: 'new_category' => 'New category', @@ -1243,6 +1245,7 @@ return [ 'first_split_decides' => 'The first split determines the value of this field', 'first_split_overrules_source' => 'The first split may overrule the source account', 'first_split_overrules_destination' => 'The first split may overrule the destination account', + 'spent_x_of_y' => 'Spent {amount} of {total}', // new user: 'welcome' => 'Welcome to Firefly III!', diff --git a/resources/lang/es_ES/firefly.php b/resources/lang/es_ES/firefly.php index acb524fc84..3501ec3621 100644 --- a/resources/lang/es_ES/firefly.php +++ b/resources/lang/es_ES/firefly.php @@ -678,7 +678,7 @@ return [ 'pref_optional_fields_transaction' => 'Campos opcionales para transacciones', 'pref_optional_fields_transaction_help' => 'Por defecto no todos los campos se habilitan al crear una nueva transacción (debido al desorden). abajo usted puede habilitar estos campos si usted piensa que pueden ser útiles. por supuesto, cualquier campo que este desactivado, pero ya completado, sera visible a pesar de la configuración.', 'optional_tj_date_fields' => 'Campos de fecha', - 'optional_tj_other_fields' => 'Other fields', + 'optional_tj_other_fields' => 'Otros campos', 'optional_tj_attachment_fields' => 'Campos de datos adjuntos', 'pref_optional_tj_interest_date' => 'Fecha de intereses', 'pref_optional_tj_book_date' => 'Fecha del libro de registro', @@ -689,14 +689,14 @@ return [ 'pref_optional_tj_internal_reference' => 'Referencia interna', 'pref_optional_tj_notes' => 'Notas', 'pref_optional_tj_attachments' => 'Adjuntos', - 'pref_optional_tj_external_uri' => 'External URL', - 'pref_optional_tj_location' => 'Location', - 'pref_optional_tj_links' => 'Transaction links', + 'pref_optional_tj_external_uri' => 'URL externa', + 'pref_optional_tj_location' => 'Ubicación', + 'pref_optional_tj_links' => 'Enlaces de transacciones', 'optional_field_meta_dates' => 'Fechas', 'optional_field_meta_business' => 'Negocios', 'optional_field_attachments' => 'Adjuntos', 'optional_field_meta_data' => 'Opcional meta datos', - 'external_uri' => 'External URL', + 'external_uri' => 'URL externa', // profile: 'delete_stuff_header' => 'Borrar datos', @@ -886,6 +886,7 @@ return [ 'create_new_deposit' => 'Crear nuevo deposito', 'create_new_transfer' => 'Crear nueva transferencia', 'create_new_asset' => 'Crear nueva cuenta de activos', + 'create_new_liabilities' => 'Crear nuevo pasivo', 'create_new_expense' => 'Crear nueva cuenta de gastos', 'create_new_revenue' => 'Crear nueva cuenta de ingresos', 'create_new_piggy_bank' => 'Crear nueva hucha', @@ -1130,6 +1131,7 @@ return [ 'interest_calc_monthly' => 'Por mes', 'interest_calc_yearly' => 'Por año', 'initial_balance_account' => 'Balance inicial de la cuenta :account', + 'list_options' => 'Opciones de lista', // categories: 'new_category' => 'Nueva categoría', @@ -1155,9 +1157,9 @@ return [ 'updated_withdrawal' => 'Retiro actualizado', 'updated_deposit' => 'Actualización de deposito ":description"', 'updated_transfer' => 'Transferencia actualizada ":description"', - 'no_changes_withdrawal' => 'Withdrawal ":description" was not changed.', - 'no_changes_deposit' => 'Deposit ":description" was not changed.', - 'no_changes_transfer' => 'Transfer ":description" was not changed.', + 'no_changes_withdrawal' => 'Retiro ":description" no se cambió.', + 'no_changes_deposit' => 'Depósito ":description" no se cambió.', + 'no_changes_transfer' => 'Transferencia ":description" no se cambió.', 'delete_withdrawal' => 'Eliminar ":description"', 'delete_deposit' => 'Eliminar deposito ":description"', 'delete_transfer' => 'Eliminar transferencia ":description"', @@ -1238,11 +1240,12 @@ return [ 'journal_link_bill' => 'Esta transacción está vinculada a la factura :name. Para eliminar la conexión, desmarca la casilla de verificación. Usa reglas para conectarla a otra factura.', 'transaction_stored_link' => 'La transacción #{ID} ("{title}") ha sido almacenada.', 'transaction_new_stored_link' => 'La transacción #{ID} ha sido guardada.', - 'transaction_updated_link' => 'Transaction #{ID} ("{title}") has been updated.', - 'transaction_updated_no_changes' => 'Transaction #{ID} ("{title}") did not receive any changes.', - 'first_split_decides' => 'The first split determines the value of this field', - 'first_split_overrules_source' => 'The first split may overrule the source account', - 'first_split_overrules_destination' => 'The first split may overrule the destination account', + 'transaction_updated_link' => 'La transacción #{ID} ("{title}") ha sido actualizada.', + 'transaction_updated_no_changes' => 'La transacción #{ID} ("{title}") no recibió ningún cambio.', + 'first_split_decides' => 'La primera división determina el valor de este campo', + 'first_split_overrules_source' => 'La primera división puede anular la cuenta de origen', + 'first_split_overrules_destination' => 'La primera división puede anular la cuenta de destino', + 'spent_x_of_y' => '{amount} gastado de {total}', // new user: 'welcome' => 'Bienvenido a Firefly III!', @@ -1281,9 +1284,9 @@ return [ 'per_day' => 'Por dia', 'left_to_spend_per_day' => 'Disponible para gasto diario', 'bills_paid' => 'Facturas pagadas', - 'custom_period' => 'Custom period', - 'reset_to_current' => 'Reset to current period', - 'select_period' => 'Select a period', + 'custom_period' => 'Período personalizado', + 'reset_to_current' => 'Restablecer al período actual', + 'select_period' => 'Seleccione un período', // menu and titles, should be recycled as often as possible: 'currency' => 'Moneda', diff --git a/resources/lang/es_ES/validation.php b/resources/lang/es_ES/validation.php index 810c87c199..2c4dc6493d 100644 --- a/resources/lang/es_ES/validation.php +++ b/resources/lang/es_ES/validation.php @@ -60,7 +60,7 @@ return [ 'less' => ':attribute debe ser menor que 10.000.000', 'active_url' => 'El campo :attribute no es una URL válida.', 'after' => 'El campo :attribute debe ser una fecha posterior a :date.', - 'date_after' => 'The start date must be before the end date.', + 'date_after' => 'La fecha de inicio debe ser anterior a la fecha de finalización.', 'alpha' => 'El campo :attribute sólo puede contener letras.', 'alpha_dash' => 'El campo :attribute sólo puede contener letras, números y guiones.', 'alpha_num' => 'El campo :attribute sólo puede contener letras y números.', @@ -183,7 +183,7 @@ return [ 'withdrawal_dest_need_data' => 'Necesita obtener un ID de cuenta de destino válido y/o nombre de cuenta de destino válido para continuar.', 'withdrawal_dest_bad_data' => 'No se pudo encontrar una cuenta de destino válida buscando ID ":id" o nombre ":name".', - 'generic_source_bad_data' => 'Could not find a valid source account when searching for ID ":id" or name ":name".', + 'generic_source_bad_data' => 'No se pudo encontrar una cuenta de origen válida al buscar el ID ":id" o nombre ":name".', 'deposit_source_need_data' => 'Necesita obtener un ID de cuenta de origen válido y/o nombre de cuenta de origen válido para continuar.', 'deposit_source_bad_data' => 'No se pudo encontrar una cuenta de origen válida para ID ":id" o nombre ":name".', diff --git a/resources/lang/fi_FI/firefly.php b/resources/lang/fi_FI/firefly.php index 5531fb6912..27bdf59c6b 100644 --- a/resources/lang/fi_FI/firefly.php +++ b/resources/lang/fi_FI/firefly.php @@ -886,6 +886,7 @@ return [ 'create_new_deposit' => 'Luo uusi talletus', 'create_new_transfer' => 'Luo uusi siirto', 'create_new_asset' => 'Luo uusi omaisuustili', + 'create_new_liabilities' => 'Create new liability', 'create_new_expense' => 'Luo uusi maksutili', 'create_new_revenue' => 'Luo uusi tuottotili', 'create_new_piggy_bank' => 'Luo uusi säästöpossu', @@ -1130,6 +1131,7 @@ return [ 'interest_calc_monthly' => 'Kuukaudessa', 'interest_calc_yearly' => 'Vuodessa', 'initial_balance_account' => 'Alkutasetili :account', + 'list_options' => 'List options', // categories: 'new_category' => 'Uusi kategoria', @@ -1243,6 +1245,7 @@ return [ 'first_split_decides' => 'The first split determines the value of this field', 'first_split_overrules_source' => 'The first split may overrule the source account', 'first_split_overrules_destination' => 'The first split may overrule the destination account', + 'spent_x_of_y' => 'Spent {amount} of {total}', // new user: 'welcome' => 'Tervetuloa Firefly III:een!', diff --git a/resources/lang/fr_FR/firefly.php b/resources/lang/fr_FR/firefly.php index 834624588a..718f872c8f 100644 --- a/resources/lang/fr_FR/firefly.php +++ b/resources/lang/fr_FR/firefly.php @@ -886,6 +886,7 @@ return [ 'create_new_deposit' => 'Créer un nouveau dépôt', 'create_new_transfer' => 'Créer un nouveau transfert', 'create_new_asset' => 'Créer un nouveau compte d’actif', + 'create_new_liabilities' => 'Créer un nouveau passif', 'create_new_expense' => 'Créer nouveau compte de dépenses', 'create_new_revenue' => 'Créer nouveau compte de recettes', 'create_new_piggy_bank' => 'Créer une nouvelle tirelire', @@ -1130,6 +1131,7 @@ return [ 'interest_calc_monthly' => 'Par mois', 'interest_calc_yearly' => 'Par an', 'initial_balance_account' => 'Solde initial du compte :account', + 'list_options' => 'Lister les options', // categories: 'new_category' => 'Nouvelle catégorie', @@ -1155,9 +1157,9 @@ return [ 'updated_withdrawal' => 'Dépense ":description" mise à jour', 'updated_deposit' => 'Dépôt ":description" mis à jour', 'updated_transfer' => 'Transfert ":description" mis à jour', - 'no_changes_withdrawal' => 'Withdrawal ":description" was not changed.', - 'no_changes_deposit' => 'Deposit ":description" was not changed.', - 'no_changes_transfer' => 'Transfer ":description" was not changed.', + 'no_changes_withdrawal' => 'Le retrait ":description" n\'a pas été modifié.', + 'no_changes_deposit' => 'Le dépôt ":description" n\'a pas été modifié.', + 'no_changes_transfer' => 'Le transfert ":description" n\'a pas été changé.', 'delete_withdrawal' => 'Supprimer la dépense ":description"', 'delete_deposit' => 'Supprimer le dépôt ":description"', 'delete_transfer' => 'Supprimer le transfert ":description"', @@ -1238,11 +1240,12 @@ return [ 'journal_link_bill' => 'Cette opération est liée à la facture :name. Pour supprimer l\'association, décocher la case. Utilisez les règles pour la connecter à une autre facture.', 'transaction_stored_link' => 'L\'opération n°{ID} ("{title}") a été enregistrée.', 'transaction_new_stored_link' => 'L\'opération n°{ID} a été enregistrée.', - 'transaction_updated_link' => 'Transaction #{ID} ("{title}") has been updated.', + 'transaction_updated_link' => 'L\'opération n°{ID} ("{title}") a été mise à jour.', 'transaction_updated_no_changes' => 'Transaction #{ID} ("{title}") did not receive any changes.', 'first_split_decides' => 'La première ventilation détermine la valeur de ce champ', 'first_split_overrules_source' => 'La première ventilation peut remplacer le compte source', 'first_split_overrules_destination' => 'La première ventilation peut remplacer le compte de destination', + 'spent_x_of_y' => 'Dépensé {amount} sur {total}', // new user: 'welcome' => 'Bienvenue sur Firefly III !', diff --git a/resources/lang/fr_FR/validation.php b/resources/lang/fr_FR/validation.php index 10ef628893..9b414c3c3d 100644 --- a/resources/lang/fr_FR/validation.php +++ b/resources/lang/fr_FR/validation.php @@ -60,7 +60,7 @@ return [ 'less' => ':attribute doit être inférieur à 10 000 000', 'active_url' => 'Le champ :attribute n\'est pas une URL valide.', 'after' => 'Le champ :attribute doit être une date postérieure à :date.', - 'date_after' => 'The start date must be before the end date.', + 'date_after' => 'La date de début doit être antérieure à la date de fin.', 'alpha' => 'Le champ :attribute doit seulement contenir des lettres.', 'alpha_dash' => 'Le champ :attribute peut seulement contenir des lettres, des chiffres et des tirets.', 'alpha_num' => 'Le champ :attribute peut seulement contenir des chiffres et des lettres.', diff --git a/resources/lang/hu_HU/firefly.php b/resources/lang/hu_HU/firefly.php index ad802163f7..06df0eaede 100644 --- a/resources/lang/hu_HU/firefly.php +++ b/resources/lang/hu_HU/firefly.php @@ -886,6 +886,7 @@ return [ 'create_new_deposit' => 'Új bevétel létrehozása', 'create_new_transfer' => 'Új átvezetés létrehozása', 'create_new_asset' => 'Új eszközszámla létrehozása', + 'create_new_liabilities' => 'Create new liability', 'create_new_expense' => 'Új költségszámla létrehozása', 'create_new_revenue' => 'Új jövedelemszámla létrehozása', 'create_new_piggy_bank' => 'Új malacpersely létrehozása', @@ -1130,6 +1131,7 @@ return [ 'interest_calc_monthly' => 'Havonta', 'interest_calc_yearly' => 'Évente', 'initial_balance_account' => ':account kezdeti egyenlegfiókja', + 'list_options' => 'List options', // categories: 'new_category' => 'Új kategória', @@ -1243,6 +1245,7 @@ return [ 'first_split_decides' => 'The first split determines the value of this field', 'first_split_overrules_source' => 'The first split may overrule the source account', 'first_split_overrules_destination' => 'The first split may overrule the destination account', + 'spent_x_of_y' => 'Spent {amount} of {total}', // new user: 'welcome' => 'Üdvözöli a Firefly III!', diff --git a/resources/lang/id_ID/breadcrumbs.php b/resources/lang/id_ID/breadcrumbs.php index 2318a19f14..1795aed7eb 100644 --- a/resources/lang/id_ID/breadcrumbs.php +++ b/resources/lang/id_ID/breadcrumbs.php @@ -30,7 +30,7 @@ return [ 'edit_piggyBank' => 'Edit celengan ":name"', 'preferences' => 'Preferensi', 'profile' => 'Profil', - 'accounts' => 'Accounts', + 'accounts' => 'Rekening', 'changePassword' => 'Ubah kata sandi Anda', 'change_email' => 'Ubah alamat email anda', 'bills' => 'Tagihan', @@ -50,7 +50,7 @@ return [ 'create_transfer' => 'Buat transfer baru', 'create_new_transaction' => 'Buat transaksi baru', 'edit_journal' => 'Edit transaksi ":description"', - 'edit_reconciliation' => 'Edit ":description"', + 'edit_reconciliation' => 'Ubah ":description"', 'delete_journal' => 'Hapus transaksi ":description"', 'delete_group' => 'Hapus transaksi ":description"', 'tags' => 'Label', @@ -60,7 +60,7 @@ return [ 'delete_journal_link' => 'Hapus tautan antar transaksi', 'telemetry_index' => 'Pengukur jarak', 'telemetry_view' => 'Melihat data', - 'edit_object_group' => 'Edit group ":title"', - 'delete_object_group' => 'Delete group ":title"', + 'edit_object_group' => 'Ubah grup ":title"', + 'delete_object_group' => 'Hapus grup ":title"', 'logout_others' => 'Keluar dari semua sesi' ]; diff --git a/resources/lang/id_ID/email.php b/resources/lang/id_ID/email.php index 9933aa9884..3160953243 100644 --- a/resources/lang/id_ID/email.php +++ b/resources/lang/id_ID/email.php @@ -24,81 +24,81 @@ declare(strict_types=1); return [ // common items - 'greeting' => 'Hi there,', - 'closing' => 'Beep boop,', - 'signature' => 'The Firefly III Mail Robot', - 'footer_ps' => 'PS: This message was sent because a request from IP :ipAddress triggered it.', + 'greeting' => 'Halo', + 'closing' => 'Bip bip,', + 'signature' => 'Robot pesan Firefly III', + 'footer_ps' => 'NB: Pesan ini dikirim karena ada permintaan dari IP :ipAddress: yang memicunya.', // admin test - 'admin_test_subject' => 'A test message from your Firefly III installation', - 'admin_test_body' => 'This is a test message from your Firefly III instance. It was sent to :email.', + 'admin_test_subject' => 'Sebuah pesan tes dari instalasi Firefly III Anda', + 'admin_test_body' => 'Ini adalah sebuah pesan tes dari instans Firefly III Anda. Pesan ini dikirim ke :email.', // new IP - 'login_from_new_ip' => 'New login on Firefly III', - 'new_ip_body' => 'Firefly III detected a new login on your account from an unknown IP address. If you never logged in from the IP address below, or it has been more than six months ago, Firefly III will warn you.', - 'new_ip_warning' => 'If you recognize this IP address or the login, you can ignore this message. If you didn\'t login, of if you have no idea what this is about, verify your password security, change it, and log out all other sessions. To do this, go to your profile page. Of course you have 2FA enabled already, right? Stay safe!', - 'ip_address' => 'IP address', - 'host_name' => 'Host', - 'date_time' => 'Date + time', + 'login_from_new_ip' => 'Masuk baru pada Firefly III', + 'new_ip_body' => 'Firefly III mendeteksi adanya percobaan masuk baru pada akun Anda dari alamat IP yang tidak diketahui. Jika Anda tidak pernah masuk dari alamat IP di bawah, atau jika sudah lebih dari enam bulan lalu, Firefly III akan memperingatkan Anda.', + 'new_ip_warning' => 'Jika Anda mengenali alamat IP atau percobaan masuk ini, Anda dapat mengabaikan pesan ini. Jika Anda tidak masuk ke akun Anda, atau Anda tidak tahu arti pesan ini, ubah keamanan kata sandi Anda, dan keluar dari semua sesi lain. Untuk melakukan ini, masuk ke halaman profil Anda. Tentu saja Anda sudah memiliki otentikasi dua faktor, bukan? Tetaplah aman!', + 'ip_address' => 'Alamat IP', + 'host_name' => 'Tuan rumah', + 'date_time' => 'Tanggal + waktu', // access token created - 'access_token_created_subject' => 'A new access token was created', - 'access_token_created_body' => 'Somebody (hopefully you) just created a new Firefly III API Access Token for your user account.', - 'access_token_created_explanation' => 'With this token, they can access all of your financial records through the Firefly III API.', - 'access_token_created_revoke' => 'If this wasn\'t you, please revoke this token as soon as possible at :url.', + 'access_token_created_subject' => 'Token akses telah dibuat', + 'access_token_created_body' => 'Seseorang (semoga Anda) baru saja membuat sebuah token akses API Firefly III pada akun pengguna Anda.', + 'access_token_created_explanation' => 'Dengan token ini, mereka dapat mengakses semua rekaman finansial Anda menggunakan API Firefly III.', + 'access_token_created_revoke' => 'Jika ini bukan Anda, mohon cabut token ini sesegera mungkin di :url.', // registered - 'registered_subject' => 'Welcome to Firefly III!', - 'registered_welcome' => 'Welcome to Firefly III. Your registration has made it, and this email is here to confirm it. Yay!', - 'registered_pw' => 'If you have forgotten your password already, please reset it using the password reset tool.', - 'registered_help' => 'There is a help-icon in the top right corner of each page. If you need help, click it!', - 'registered_doc_html' => 'If you haven\'t already, please read the grand theory.', - 'registered_doc_text' => 'If you haven\'t already, please read the first use guide and the full description.', - 'registered_closing' => 'Enjoy!', + 'registered_subject' => 'Selamat Datang di Firefly III!', + 'registered_welcome' => 'Selamat datang di Firefly III. Pendaftaran Anda sudah diterima, dan surel ini membuktikannya. Hore!', + 'registered_pw' => 'Jika Anda sudah lupa dengan kata sandi Anda, mohon atur ulang menggunakan atur ulang kata sandi.', + 'registered_help' => 'Ada ikon bantuan di pojok kanan atas di setiap halaman. Jika Anda membutuhkannya, klik ikonnya!', + 'registered_doc_html' => 'Jika Anda belum melakukannya, mohon baca gambaran besarnya.', + 'registered_doc_text' => 'Jika Anda belum melakukannya, mohon baca panduan penggunaan pertama dan deskripsi lengkap.', + 'registered_closing' => 'Selamat menikmati!', 'registered_firefly_iii_link' => 'Firefly III:', - 'registered_pw_reset_link' => 'Password reset:', - 'registered_doc_link' => 'Documentation:', + 'registered_pw_reset_link' => 'Atur ulang kata sandi:', + 'registered_doc_link' => 'Dokumentasi:', // email change - 'email_change_subject' => 'Your Firefly III email address has changed', - 'email_change_body_to_new' => 'You or somebody with access to your Firefly III account has changed your email address. If you did not expect this message, please ignore and delete it.', - 'email_change_body_to_old' => 'You or somebody with access to your Firefly III account has changed your email address. If you did not expect this to happen, you must follow the "undo"-link below to protect your account!', - 'email_change_ignore' => 'If you initiated this change, you may safely ignore this message.', - 'email_change_old' => 'The old email address was: :email', - 'email_change_old_strong' => 'The old email address was: :email', - 'email_change_new' => 'The new email address is: :email', - 'email_change_new_strong' => 'The new email address is: :email', - 'email_change_instructions' => 'You cannot use Firefly III until you confirm this change. Please follow the link below to do so.', - 'email_change_undo_link' => 'To undo the change, follow this link:', + 'email_change_subject' => 'Alamat surel Firefly III Anda telah diubah', + 'email_change_body_to_new' => 'Anda atau seseorang dengan akses ke akun Firefly III Anda telah mengubah alamat surel Anda. Jika Anda tidak merasa Anda membutuhkan pesan ini, mohon abaikan dan hapus.', + 'email_change_body_to_old' => 'Anda atau seseorang dengan akses ke akun Firefly III Anda telah mengubah alamat surel Anda. Jika Anda tidak merasa melakukannya, Anda harus membuka tautan di bawah untuk melindungi akun Anda!', + 'email_change_ignore' => 'Jika Anda yang melakukan perubahan, Anda dapat mengabaikan pesan ini.', + 'email_change_old' => 'Alamat surel yang lama adalah :email', + 'email_change_old_strong' => 'Alamat surel yang lama adalah: :email', + 'email_change_new' => 'Alamat surel yang baru adalah :email', + 'email_change_new_strong' => 'Alamat surel yang baru adalah :email', + 'email_change_instructions' => 'Anda tidak dapat menggunakan Firefly III hingga Anda mengonfirmasi perubahan ini. Mohon ikuti tautan di bawah untuk melakukannya.', + 'email_change_undo_link' => 'Untuk membatalkan perubahan, ikuti tautan ini:', // OAuth token created - 'oauth_created_subject' => 'A new OAuth client has been created', - 'oauth_created_body' => 'Somebody (hopefully you) just created a new Firefly III API OAuth Client for your user account. It\'s labeled ":name" and has callback URL :url.', - 'oauth_created_explanation' => 'With this client, they can access all of your financial records through the Firefly III API.', - 'oauth_created_undo' => 'If this wasn\'t you, please revoke this client as soon as possible at :url.', + 'oauth_created_subject' => 'Klien OAuth telah dibuat', + 'oauth_created_body' => 'Seseorang (semoga Anda) telah membuat klien API OAuth Firefly III baru untuk akun pengguna Anda yang berlabel ":name" dan memiliki URL :url.', + 'oauth_created_explanation' => 'Dengan klien ini, mereka dapat mengakses semua rekaman finansial Anda menggunakan API Firefly III.', + 'oauth_created_undo' => 'Jika ini bukan Anda, mohon cabut token ini sesegera mungkin di :url.', // reset password - 'reset_pw_subject' => 'Your password reset request', - 'reset_pw_instructions' => 'Somebody tried to reset your password. If it was you, please follow the link below to do so.', - 'reset_pw_warning' => 'PLEASE verify that the link actually goes to the Firefly III you expect it to go!', + 'reset_pw_subject' => 'Permintaan atur ulang kata sandi Anda', + 'reset_pw_instructions' => 'Seseorang mencoba mengatur ulang kata sandi Anda. Jika itu adalah Anda, mohon ikuti tautan di bawah untuk melakukannya.', + 'reset_pw_warning' => 'MOHON verifikasi bahwa tautan benar-benar menuju ke Firefly III yang Anda harapkan!', // error - 'error_subject' => 'Caught an error in Firefly III', - 'error_intro' => 'Firefly III v:version ran into an error: :errorMessage.', - 'error_type' => 'The error was of type ":class".', - 'error_timestamp' => 'The error occurred on/at: :time.', - 'error_location' => 'This error occurred in file ":file" on line :line with code :code.', - 'error_user' => 'The error was encountered by user #:id, :email.', - 'error_no_user' => 'There was no user logged in for this error or no user was detected.', - 'error_ip' => 'The IP address related to this error is: :ip', - 'error_url' => 'URL is: :url', + 'error_subject' => 'Mendapati kesalahan pada Firefly III', + 'error_intro' => 'Firefly III v:version mendapati kesalahan: :errorMessage.', + 'error_type' => 'Kesalahan bertipe ":class".', + 'error_timestamp' => 'Kesalahan terjadi pada: :time.', + 'error_location' => 'Kesalahan ini terjadi pada file ":file" pada baris :line dengan kode :code.', + 'error_user' => 'Kesalahan terjadi pada pengguna #:id, :email.', + 'error_no_user' => 'Tidak ada pengguna masuk untuk kesalahan ini atau tidak ada pengguna terdeteksi.', + 'error_ip' => 'Alamat IP yang berhubungan dengan kesalahan ini adalah: :ip', + 'error_url' => 'URL adalah: :url', 'error_user_agent' => 'User agent: :userAgent', - 'error_stacktrace' => 'The full stacktrace is below. If you think this is a bug in Firefly III, you can forward this message to james@firefly-iii.org. This can help fix the bug you just encountered.', - 'error_github_html' => 'If you prefer, you can also open a new issue on GitHub.', - 'error_github_text' => 'If you prefer, you can also open a new issue on https://github.com/firefly-iii/firefly-iii/issues.', - 'error_stacktrace_below' => 'The full stacktrace is below:', + 'error_stacktrace' => 'Jejak tumpukan lengkap ada di bawah. Jika Anda merasa ada kutu di Firefly III, Anda dapat meneruskan pesan ini ke james@firefly-iii.org. Hal ini dapat membantu memperbaiki kutu yang baru saja Anda alami.', + 'error_github_html' => 'Jika Anda mau, Anda juga dapat membuka isu baru di GitHub.', + 'error_github_text' => 'Jika Anda mau, Anda juga dapat membuka isu baru di https://github.com/firefly-iii/firefly-iii/issues.', + 'error_stacktrace_below' => 'Jejak tumpukan lengkap ada di bawah:', // report new journals - 'new_journals_subject' => 'Firefly III has created a new transaction|Firefly III has created :count new transactions', - 'new_journals_header' => 'Firefly III has created a transaction for you. You can find it in your Firefly III installation:|Firefly III has created :count transactions for you. You can find them in your Firefly III installation:', + 'new_journals_subject' => 'Firefly III telah membuat transaksi baru|Firefly III telah membuat :count transaksi baru', + 'new_journals_header' => 'Firefly III telah membuat transaksi untuk Anda. Anda dapat menemukannya di instalasi Firefly III Anda:|Firefly telah membuat :count transaksi untuk Anda. Anda dapat menemukannya di instalasi Firefly III Anda:', ]; diff --git a/resources/lang/id_ID/firefly.php b/resources/lang/id_ID/firefly.php index 39342989d7..471fdf4c22 100644 --- a/resources/lang/id_ID/firefly.php +++ b/resources/lang/id_ID/firefly.php @@ -29,24 +29,24 @@ return [ 'edit' => 'Edit', 'delete' => 'Menghapus', 'split' => 'Pisah', - 'single_split' => 'Split', + 'single_split' => 'Pisah', 'clone' => 'Duplikasi', 'last_seven_days' => '7 hari terakhir', 'last_thirty_days' => '30 hari terakhir', - 'last_180_days' => 'Last 180 days', + 'last_180_days' => '180 hari terakhir', 'YTD' => 'YTD', - 'welcome_back' => 'What\'s playing?', + 'welcome_back' => 'Apa yang sedang dimainkan?', 'everything' => 'Segala sesuatu', 'today' => 'hari ini', 'customRange' => 'Rentang khusus', - 'date_range' => 'Date range', + 'date_range' => 'Rentang tanggal', 'apply' => 'Menerapkan', 'select_date' => 'Pilih tanggal..', 'cancel' => 'Membatalkan', 'from' => 'Dari', 'to' => 'Untuk', - 'structure' => 'Structure', - 'help_translating' => 'This help text is not yet available in your language. Will you help translate?', + 'structure' => 'Struktur', + 'help_translating' => 'Bantuan ini belum tersedia di bahasa Anda. Maukah Anda membantu menerjemahkan?', 'showEverything' => 'Tunjukkan semuanya', 'never' => 'Tak pernah', 'no_results_for_empty_search' => 'Pencarian Anda kosong, jadi tidak ada yang ditemukan.', @@ -56,22 +56,22 @@ return [ 'Opening balance' => 'Saldo awal', 'create_new_stuff' => 'Buat barang baru', 'new_withdrawal' => 'Pengambilan baru', - 'create_new_transaction' => 'Create a new transaction', - 'sidebar_frontpage_create' => 'Create', + 'create_new_transaction' => 'Buat transaksi baru', + 'sidebar_frontpage_create' => 'Buat', 'new_transaction' => 'Transaksi baru', 'no_rules_for_bill' => 'Bill ini tidak terkait dengan aturan yang telah ada.', 'go_to_asset_accounts' => 'Menampilkan rekening aset', 'go_to_budgets' => 'Pergi ke anggaran mu', - 'go_to_withdrawals' => 'Go to your withdrawals', + 'go_to_withdrawals' => 'Pergi ke penarikan', 'clones_journal_x' => 'Transaksi ini adalah salinan dari ":description" (#:id)', 'go_to_categories' => 'Menuju ke kategori yang anda miliki', 'go_to_bills' => 'Menuju ke bill yang anda miliki', 'go_to_expense_accounts' => 'Melihat akun pengeluaran anda', - 'go_to_revenue_accounts' => 'See your revenue accounts', - 'go_to_piggies' => 'Go to your piggy banks', + 'go_to_revenue_accounts' => 'Lihat rekening pendapatan Anda', + 'go_to_piggies' => 'Pergi ke celengan', 'new_deposit' => 'Deposit baru', 'new_transfer' => 'Transfer baru', - 'new_transfers' => 'New transfer', + 'new_transfers' => 'Transfer baru', 'new_asset_account' => 'Akun aset baru', 'new_expense_account' => 'Akun pengeluaran baru', 'new_revenue_account' => 'Akun pendapatan baru', @@ -195,14 +195,14 @@ return [ 'register_new_account' => 'Register a new account', 'forgot_my_password' => 'I forgot my password', 'problems_with_input' => 'There were some problems with your input.', - 'reset_password' => 'Reset your password', - 'button_reset_password' => 'Reset password', - 'reset_button' => 'Reset', - 'want_to_login' => 'I want to login', - 'login_page_title' => 'Login to Firefly III', - 'register_page_title' => 'Register at Firefly III', - 'forgot_pw_page_title' => 'Forgot your password for Firefly III', - 'reset_pw_page_title' => 'Reset your password for Firefly III', + 'reset_password' => 'Atur ulang kata sandi Anda', + 'button_reset_password' => 'Atur ulang kata sandi', + 'reset_button' => 'Atur ulang', + 'want_to_login' => 'Saya ingin masuk', + 'login_page_title' => 'Masuk ke Firefly III', + 'register_page_title' => 'Daftar di Firefly III', + 'forgot_pw_page_title' => 'Lupa kata sandi Anda untuk Firefly III', + 'reset_pw_page_title' => 'Atur ulang kata sandi Anda untuk Firefly III', 'cannot_reset_demo_user' => 'You cannot reset the password of the demo user.', 'no_att_demo_user' => 'The demo user can\'t upload attachments.', 'button_register' => 'Register', @@ -219,37 +219,37 @@ return [ 'per_period_sum_1Y' => 'Expected yearly costs', 'average_per_bill' => 'average per bill', 'expected_total' => 'expected total', - 'reconciliation_account_name' => ':name reconciliation (:currency)', - 'saved' => 'Saved', - 'advanced_options' => 'Advanced options', - 'advanced_options_explain' => 'Some pages in Firefly III have advanced options hidden behind this button. This page doesn\'t have anything fancy here, but do check out the others!', + 'reconciliation_account_name' => ':name rekonsiliasi (:currency)', + 'saved' => 'Tersimpan', + 'advanced_options' => 'Pilihan lanjutan', + 'advanced_options_explain' => 'Beberapa halaman di Firefly III memiliki pilihan lanjutan tersembunyi di belakang tombol ini. Halaman ini tidak memiliki hal yang menarik, tetapi cobalah cek yang lain!', 'here_be_dragons' => 'Hic sunt dracones', // Webhooks 'webhooks' => 'Webhooks', // API access - 'authorization_request' => 'Firefly III v:version Authorization Request', - 'authorization_request_intro' => ':client is requesting permission to access your financial administration. Would you like to authorize :client to access these records?', - 'scopes_will_be_able' => 'This application will be able to:', - 'button_authorize' => 'Authorize', - 'none_in_select_list' => '(none)', - 'no_piggy_bank' => '(no piggy bank)', - 'name_in_currency' => ':name in :currency', - 'paid_in_currency' => 'Paid in :currency', - 'unpaid_in_currency' => 'Unpaid in :currency', - 'is_alpha_warning' => 'You are running an ALPHA version. Be wary of bugs and issues.', - 'is_beta_warning' => 'You are running an BETA version. Be wary of bugs and issues.', - 'all_destination_accounts' => 'Destination accounts', - 'all_source_accounts' => 'Source accounts', - 'back_to_index' => 'Back to the index', - 'cant_logout_guard' => 'Firefly III can\'t log you out.', - 'external_url' => 'External URL', - 'internal_reference' => 'Internal reference', + 'authorization_request' => 'Firefly III v:version Permintaan Otorisasi', + 'authorization_request_intro' => ':client meminta izin untuk mengakses administrasi finansial. Apakah Anda ingin memberikan izin kepada :client untuk mengakses rekaman itu?', + 'scopes_will_be_able' => 'Aplikasi ini akan mampu untuk:', + 'button_authorize' => 'Izinkan', + 'none_in_select_list' => '(tidak ada)', + 'no_piggy_bank' => '(tidak ada celengan)', + 'name_in_currency' => ':name di :currency', + 'paid_in_currency' => 'Dibayarkan dengan :currency', + 'unpaid_in_currency' => 'Belum dibayarkan dengan :currency', + 'is_alpha_warning' => 'Anda menggunakan versi ALPHA. Hati-hati dengan kutu dan isu.', + 'is_beta_warning' => 'Anda menggunakan versi BETA. Hati-hati dengan kutu dan isu.', + 'all_destination_accounts' => 'Rekening tujuan', + 'all_source_accounts' => 'Rekening asal', + 'back_to_index' => 'Kembali ke indeks', + 'cant_logout_guard' => 'Firefly III tidak dapat mengeluarkan Anda.', + 'external_url' => 'URL luar', + 'internal_reference' => 'Referensi internal', // check for updates: - 'update_check_title' => 'Check for updates', - 'admin_update_check_title' => 'Automatically check for update', + 'update_check_title' => 'Periksa pembaruan', + 'admin_update_check_title' => 'Secara otomatis memeriksa pembaruan', 'admin_update_check_explain' => 'Firefly III can check for updates automatically. When you enable this setting, it will contact the Firefly III update server to see if a new version of Firefly III is available. When it is, you will get a notification. You can test this notification using the button on the right. Please indicate below if you want Firefly III to check for updates.', 'check_for_updates_permission' => 'Firefly III can check for updates, but it needs your permission to do so. Please go to the administration to indicate if you would like this feature to be enabled.', 'updates_ask_me_later' => 'Ask me later', @@ -886,6 +886,7 @@ return [ 'create_new_deposit' => 'Buat deposit baru', 'create_new_transfer' => 'Buat transfer baru', 'create_new_asset' => 'Buat akun aset baru', + 'create_new_liabilities' => 'Buat tagihan baru', 'create_new_expense' => 'Buat akun biaya baru', 'create_new_revenue' => 'Buat akun pendapatan baru', 'create_new_piggy_bank' => 'Buat celengan baru', @@ -1130,6 +1131,7 @@ return [ 'interest_calc_monthly' => 'Per month', 'interest_calc_yearly' => 'Per year', 'initial_balance_account' => 'Initial balance account of :account', + 'list_options' => 'Pilihan daftar', // categories: 'new_category' => 'Kategori baru', @@ -1243,6 +1245,7 @@ return [ 'first_split_decides' => 'The first split determines the value of this field', 'first_split_overrules_source' => 'The first split may overrule the source account', 'first_split_overrules_destination' => 'The first split may overrule the destination account', + 'spent_x_of_y' => 'Spent {amount} of {total}', // new user: 'welcome' => 'Welcome to Firefly III!', diff --git a/resources/lang/id_ID/intro.php b/resources/lang/id_ID/intro.php index 1622832837..67aff95e8b 100644 --- a/resources/lang/id_ID/intro.php +++ b/resources/lang/id_ID/intro.php @@ -30,11 +30,11 @@ return [ 'index_help' => 'Jika anda memerlukan bantuan dengan halaman atau formulir, tekan tombol ini.', 'index_outro' => 'Sebagian besar halaman Firefly III akan dimulai dengan petunjuk kecil seperti ini. Silahkan hubungi saya bila ada pertanyaan atau komentar. Selamat mencoba!', 'index_sidebar-toggle' => 'Untuk membuat transakisi baru, akun atau hal lainnya, gunakan menu di bawah gambar ini.', - 'index_cash_account' => 'These are the accounts created so far. You can use the cash account to track cash expenses but it\'s not mandatory of course.', + 'index_cash_account' => 'Ini adalah akun yang telah dibuat sejauh ini. Anda dapat menggunakan rekening kas untuk mengetahui pengeluaran kas tetapi tentu saja itu tidak diwajibkan.', // transactions 'transactions_create_basic_info' => 'Masukkan informasi dasar mengenai transaksi anda. Sumber, tujuan, tanggal dan deskripsi.', - 'transactions_create_amount_info' => 'Enter the amount of the transaction. If necessary the fields will auto-update for foreign amount info.', + 'transactions_create_amount_info' => 'Masukkan jumlah transaksi. Jika diperlukan kolom akan memperbarui secar otomatis untuk informasi transaksi uang asing.', 'transactions_create_optional_info' => 'Semua kolom ini adalah opsional. Menambahkan metadata akan membuat transaksi anda lebih rapi.', 'transactions_create_split' => 'Jika anda ingin membagi sebuah transaksi, anda dapat melakukannya dengan tombol ini', @@ -133,7 +133,7 @@ return [ 'rules_create_actions' => 'Tentukan sebanyak mungkin tindakan yang anda inginkan.', // preferences - 'preferences_index_tabs' => 'Pilihan lainnya tersedia dibalik tab ini.', + 'preferences_index_tabs' => 'Pilihan lainnya tersedia di balik tab ini.', // currencies 'currencies_index_intro' => 'Firefly III mendukung banyak mata uang, yang dapat anda ubah di halaman ini.', diff --git a/resources/lang/it_IT/firefly.php b/resources/lang/it_IT/firefly.php index 07dbbd9549..43e098e34c 100644 --- a/resources/lang/it_IT/firefly.php +++ b/resources/lang/it_IT/firefly.php @@ -886,6 +886,7 @@ return [ 'create_new_deposit' => 'Crea una nuova entrata', 'create_new_transfer' => 'Crea un nuovo trasferimento', 'create_new_asset' => 'Crea un nuovo conto attività', + 'create_new_liabilities' => 'Crea nuova passività', 'create_new_expense' => 'Crea un nuovo conto di spesa', 'create_new_revenue' => 'Crea un nuovo conto entrate', 'create_new_piggy_bank' => 'Crea un nuovo salvadanaio', @@ -1130,6 +1131,7 @@ return [ 'interest_calc_monthly' => 'Al mese', 'interest_calc_yearly' => 'All\'anno', 'initial_balance_account' => 'Saldo iniziale del conto :account', + 'list_options' => 'Lista opzioni', // categories: 'new_category' => 'Nuova categoria', @@ -1243,6 +1245,7 @@ return [ 'first_split_decides' => 'La prima suddivisione determina il valore di questo campo', 'first_split_overrules_source' => 'La prima suddivisione potrebbe sovrascrivere l\'account di origine', 'first_split_overrules_destination' => 'La prima suddivisione potrebbe sovrascrivere l\'account di destinazione', + 'spent_x_of_y' => 'Spesi {amount} di {total}', // new user: 'welcome' => 'Benvenuto in Firefly III!', diff --git a/resources/lang/it_IT/validation.php b/resources/lang/it_IT/validation.php index 7440be194c..5b3e6f5e01 100644 --- a/resources/lang/it_IT/validation.php +++ b/resources/lang/it_IT/validation.php @@ -60,7 +60,7 @@ return [ 'less' => ':attribute deve essere minore di 10.000.000', 'active_url' => ':attribute non è un URL valido.', 'after' => ':attribute deve essere una data dopo :date.', - 'date_after' => 'The start date must be before the end date.', + 'date_after' => 'La data iniziale deve essere precedente a quella finale.', 'alpha' => ':attribute può contenere solo lettere.', 'alpha_dash' => ':attribute può contenere solo lettere, numeri e trattini.', 'alpha_num' => ':attribute può contenere solo lettere e numeri.', diff --git a/resources/lang/nb_NO/firefly.php b/resources/lang/nb_NO/firefly.php index d10ddc0641..c2347cbfbb 100644 --- a/resources/lang/nb_NO/firefly.php +++ b/resources/lang/nb_NO/firefly.php @@ -886,6 +886,7 @@ return [ 'create_new_deposit' => 'Opprett nytt innskudd', 'create_new_transfer' => 'Opprett ny overføring', 'create_new_asset' => 'Opprett ny aktivakonto', + 'create_new_liabilities' => 'Create new liability', 'create_new_expense' => 'Opprett ny utgiftskonto', 'create_new_revenue' => 'Opprett ny inntektskonto', 'create_new_piggy_bank' => 'Opprett ny sparegris', @@ -1130,6 +1131,7 @@ return [ 'interest_calc_monthly' => 'Per måned', 'interest_calc_yearly' => 'Per år', 'initial_balance_account' => 'Initial balance account of :account', + 'list_options' => 'List options', // categories: 'new_category' => 'Ny kategori', @@ -1243,6 +1245,7 @@ return [ 'first_split_decides' => 'The first split determines the value of this field', 'first_split_overrules_source' => 'The first split may overrule the source account', 'first_split_overrules_destination' => 'The first split may overrule the destination account', + 'spent_x_of_y' => 'Spent {amount} of {total}', // new user: 'welcome' => 'Velkommen til Firefly III!', diff --git a/resources/lang/nl_NL/firefly.php b/resources/lang/nl_NL/firefly.php index ef8a27cd36..b4180200dc 100644 --- a/resources/lang/nl_NL/firefly.php +++ b/resources/lang/nl_NL/firefly.php @@ -886,6 +886,7 @@ return [ 'create_new_deposit' => 'Nieuwe inkomsten', 'create_new_transfer' => 'Nieuwe overschrijving', 'create_new_asset' => 'Nieuwe betaalrekening', + 'create_new_liabilities' => 'Maak nieuwe passiva', 'create_new_expense' => 'Nieuwe crediteur', 'create_new_revenue' => 'Nieuwe debiteur', 'create_new_piggy_bank' => 'Nieuw spaarpotje', @@ -1130,6 +1131,7 @@ return [ 'interest_calc_monthly' => 'Per maand', 'interest_calc_yearly' => 'Per jaar', 'initial_balance_account' => 'Startsaldorekening voor :account', + 'list_options' => 'Lijstopties', // categories: 'new_category' => 'Nieuwe categorie', @@ -1243,6 +1245,7 @@ return [ 'first_split_decides' => 'De eerste split bepaalt wat hier staat', 'first_split_overrules_source' => 'De eerste split kan de bronrekening overschrijven', 'first_split_overrules_destination' => 'De eerste split kan de doelrekening overschrijven', + 'spent_x_of_y' => '{amount} van {total} uitgegeven', // new user: 'welcome' => 'Welkom bij Firefly III!', diff --git a/resources/lang/pl_PL/firefly.php b/resources/lang/pl_PL/firefly.php index 51c3388474..3e1ff814d6 100644 --- a/resources/lang/pl_PL/firefly.php +++ b/resources/lang/pl_PL/firefly.php @@ -501,8 +501,8 @@ return [ 'rule_trigger_date_after' => 'Data transakcji jest po ":trigger_value"', 'rule_trigger_created_on_choice' => 'Transaction was made on..', 'rule_trigger_created_on' => 'Transaction was made on ":trigger_value"', - 'rule_trigger_updated_on_choice' => 'Transaction was last edited on..', - 'rule_trigger_updated_on' => 'Transaction was last edited on ":trigger_value"', + 'rule_trigger_updated_on_choice' => 'Transakcja edytowana..', + 'rule_trigger_updated_on' => 'Transakcja edytowana ":trigger_value"', 'rule_trigger_budget_is_choice' => 'Budżet to..', 'rule_trigger_budget_is' => 'Budżet to ":trigger_value"', 'rule_trigger_tag_is_choice' => 'Tag to..', @@ -539,14 +539,14 @@ return [ 'rule_trigger_notes_start' => 'Notatki zaczynają się od ":trigger_value"', 'rule_trigger_notes_end_choice' => 'Notatki kończą się na..', 'rule_trigger_notes_end' => 'Notatki kończą się na ":trigger_value"', - 'rule_trigger_bill_is_choice' => 'Bill is..', - 'rule_trigger_bill_is' => 'Bill is ":trigger_value"', - 'rule_trigger_external_id_choice' => 'External ID is..', - 'rule_trigger_external_id' => 'External ID is ":trigger_value"', - 'rule_trigger_internal_reference_choice' => 'Internal reference is..', - 'rule_trigger_internal_reference' => 'Internal reference is ":trigger_value"', - 'rule_trigger_journal_id_choice' => 'Transaction journal ID is..', - 'rule_trigger_journal_id' => 'Transaction journal ID is ":trigger_value"', + 'rule_trigger_bill_is_choice' => 'Rachunek to..', + 'rule_trigger_bill_is' => 'Rachunek to ":trigger_value"', + 'rule_trigger_external_id_choice' => 'Zewnętrzne ID to..', + 'rule_trigger_external_id' => 'Zewnętrzne ID to ":trigger_value"', + 'rule_trigger_internal_reference_choice' => 'Wewnętrzne odwołanie to..', + 'rule_trigger_internal_reference' => 'Wewnętrzne odwołanie to ":trigger_value"', + 'rule_trigger_journal_id_choice' => 'ID dziennika transakcji to..', + 'rule_trigger_journal_id' => 'ID dziennika transakcji to ":trigger_value"', // actions 'rule_action_delete_transaction_choice' => 'USUŃ transakcję (!)', @@ -866,7 +866,7 @@ return [ 'convert_please_set_asset_source' => 'Proszę wybierz konto aktywów, z którego będą przychodzić pieniądze.', 'convert_expl_w_d' => 'Podczas konwersji z wypłaty na wpłatę pieniądze zostaną wpłacone na wyświetlane konto docelowe, a nie wycofane z niego.|Podczas konwersji z wypłaty na wpłatę pieniądze zostaną wpłacone na wyświetlane konta docelowe, a nie wycofane z nich.', 'convert_expl_w_t' => 'Podczas konwersji wypłaty na przelew, środki zostaną przeniesione z rachunku źródłowego na inny rachunek aktywów lub zobowiązań zamiast być wydane na oryginalnym koncie wydatków.|Podczas konwersji wypłaty na przelew, środki zostaną przeniesione z rachunków źródłowych na inne rachunki aktywów lub zobowiązań zamiast być wydane na oryginalnych kontach wydatków.', - 'convert_expl_d_w' => 'When converting a deposit into a withdrawal, the money will be withdrawn from the displayed source account, instead of being deposited into it.|When converting a deposit into a withdrawal, the money will be withdrawn from the displayed source accounts, instead of being deposited into them.', + 'convert_expl_d_w' => 'Podczas konwersji z wpłaty na wypłatę pieniądze zostaną wypłacone z wyświetlanego konta źródłowego, a nie wpłacone na nie.|Podczas konwersji z wpłaty na wypłatę pieniądze zostaną wypłacone z wyświetlanych kont źródłowych, a nie wpłacone na nie.', 'convert_expl_d_t' => 'When you convert a deposit into a transfer, the money will be deposited into the listed destination account from any of your asset or liability account.|When you convert a deposit into a transfer, the money will be deposited into the listed destination accounts from any of your asset or liability accounts.', 'convert_expl_t_w' => 'When you convert a transfer into a withdrawal, the money will be spent on the destination account you set here, instead of being transferred away.|When you convert a transfer into a withdrawal, the money will be spent on the destination accounts you set here, instead of being transferred away.', 'convert_expl_t_d' => 'When you convert a transfer into a deposit, the money will be deposited into the destination account you see here, instead of being transferred into it.|When you convert a transfer into a deposit, the money will be deposited into the destination accounts you see here, instead of being transferred into them.', @@ -886,6 +886,7 @@ return [ 'create_new_deposit' => 'Utwórz nową wpłatę', 'create_new_transfer' => 'Utwórz nowy transfer', 'create_new_asset' => 'Utwórz nowe konto aktywów', + 'create_new_liabilities' => 'Create new liability', 'create_new_expense' => 'Utwórz nowe konto wydatków', 'create_new_revenue' => 'Utwórz nowe konto przychodów', 'create_new_piggy_bank' => 'Utwórz nową skarbonkę', @@ -1130,6 +1131,7 @@ return [ 'interest_calc_monthly' => 'Co miesiąc', 'interest_calc_yearly' => 'Co rok', 'initial_balance_account' => 'Początkowe saldo konta :account', + 'list_options' => 'List options', // categories: 'new_category' => 'Nowa kategoria', @@ -1155,9 +1157,9 @@ return [ 'updated_withdrawal' => 'Zaktualizowano wypłatę ":description"', 'updated_deposit' => 'Zaktualizowano wpłatę ":description"', 'updated_transfer' => 'Zaktualizowano transfer ":description"', - 'no_changes_withdrawal' => 'Withdrawal ":description" was not changed.', - 'no_changes_deposit' => 'Deposit ":description" was not changed.', - 'no_changes_transfer' => 'Transfer ":description" was not changed.', + 'no_changes_withdrawal' => 'Wydatek ":description" nie został zmieniony.', + 'no_changes_deposit' => 'Wpłata ":description" nie została zmieniona.', + 'no_changes_transfer' => 'Przelew ":description" nie został zmieniony.', 'delete_withdrawal' => 'Usunięto wypłatę ":description"', 'delete_deposit' => 'Usuń wpłatę ":description"', 'delete_transfer' => 'Usuń transfer ":description"', @@ -1238,11 +1240,12 @@ return [ 'journal_link_bill' => 'Ta transakcja jest powiązana z rachunkiem :name. Aby usunąć to powiązanie odznacz pole wyboru. Użyj reguł aby połączyć ją z innym rachunkiem.', 'transaction_stored_link' => 'Transakcja #{ID} ("{title}") została zapisana.', 'transaction_new_stored_link' => 'Transakcja #{ID} została zapisana.', - 'transaction_updated_link' => 'Transaction #{ID} ("{title}") has been updated.', - 'transaction_updated_no_changes' => 'Transaction #{ID} ("{title}") did not receive any changes.', + 'transaction_updated_link' => 'Transakcja #{ID} ("{title}") została zaktualizowana.', + 'transaction_updated_no_changes' => 'Transakcja #{ID} ("{title}") nie została zmieniona.', 'first_split_decides' => 'Pierwszy podział określa wartość tego pola', 'first_split_overrules_source' => 'Pierwszy podział może nadpisać konto źródłowe', 'first_split_overrules_destination' => 'Pierwszy podział może nadpisać konto docelowe', + 'spent_x_of_y' => 'Wydano {amount} z {total}', // new user: 'welcome' => 'Witaj w Firefly III!', diff --git a/resources/lang/pl_PL/validation.php b/resources/lang/pl_PL/validation.php index 137e989ecd..dbf7e4a318 100644 --- a/resources/lang/pl_PL/validation.php +++ b/resources/lang/pl_PL/validation.php @@ -60,7 +60,7 @@ return [ 'less' => ':attribute musi być mniejszy od 10 000 000', 'active_url' => ':attribute nie jest prawidłowym adresem URL.', 'after' => ':attribute musi być datą późniejszą od :date.', - 'date_after' => 'The start date must be before the end date.', + 'date_after' => 'Data rozpoczęcia musi być wcześniejsza niż data zakończenia.', 'alpha' => ':attribute może zawierać tylko litery.', 'alpha_dash' => ':attribute może zawierać litery, cyfry oraz myślniki.', 'alpha_num' => ':attribute może zawierać jedynie litery oraz cyfry.', diff --git a/resources/lang/pt_BR/firefly.php b/resources/lang/pt_BR/firefly.php index cac4ca6ffc..cc601fde9f 100644 --- a/resources/lang/pt_BR/firefly.php +++ b/resources/lang/pt_BR/firefly.php @@ -886,6 +886,7 @@ return [ 'create_new_deposit' => 'Criar um novo depósito', 'create_new_transfer' => 'Criar nova transferência', 'create_new_asset' => 'Criar nova conta de ativo', + 'create_new_liabilities' => 'Criar novo passivo', 'create_new_expense' => 'Criar nova conta de despesa', 'create_new_revenue' => 'Criar nova conta de receita', 'create_new_piggy_bank' => 'Criar novo cofrinho', @@ -1130,6 +1131,7 @@ return [ 'interest_calc_monthly' => 'Por mês', 'interest_calc_yearly' => 'Por ano', 'initial_balance_account' => 'Saldo inicial da conta :account', + 'list_options' => 'Opções de lista', // categories: 'new_category' => 'Nova categoria', @@ -1243,6 +1245,7 @@ return [ 'first_split_decides' => 'A primeira divisão determina o valor deste campo', 'first_split_overrules_source' => 'A primeira divisão pode anular a conta de origem', 'first_split_overrules_destination' => 'A primeira divisão pode anular a conta de destino', + 'spent_x_of_y' => 'Gasto {amount} de {total}', // new user: 'welcome' => 'Bem Vindo ao Firefly III!', diff --git a/resources/lang/pt_BR/validation.php b/resources/lang/pt_BR/validation.php index 25e8412a4b..0773013f40 100644 --- a/resources/lang/pt_BR/validation.php +++ b/resources/lang/pt_BR/validation.php @@ -60,7 +60,7 @@ return [ 'less' => ':attribute deve ser menor do que 10.000.000', 'active_url' => 'O campo :attribute não contém um URL válido.', 'after' => 'O campo :attribute deverá conter uma data posterior a :date.', - 'date_after' => 'The start date must be before the end date.', + 'date_after' => 'A data de início deve ser anterior à data de término.', 'alpha' => 'O campo :attribute deverá conter apenas letras.', 'alpha_dash' => 'O campo :attribute deverá conter apenas letras, números e traços.', 'alpha_num' => 'O campo :attribute deverá conter apenas letras e números .', diff --git a/resources/lang/pt_PT/firefly.php b/resources/lang/pt_PT/firefly.php index 2b18c5b432..4c1cb58b25 100644 --- a/resources/lang/pt_PT/firefly.php +++ b/resources/lang/pt_PT/firefly.php @@ -886,6 +886,7 @@ return [ 'create_new_deposit' => 'Criar novo deposito', 'create_new_transfer' => 'Criar nova transferências', 'create_new_asset' => 'Criar nova conta de activos', + 'create_new_liabilities' => 'Criar novo passivo', 'create_new_expense' => 'Criar nova conta de despesas', 'create_new_revenue' => 'Criar nova conta de receitas', 'create_new_piggy_bank' => 'Criar mealheiro', @@ -1130,6 +1131,7 @@ return [ 'interest_calc_monthly' => 'Mensal', 'interest_calc_yearly' => 'Anual', 'initial_balance_account' => 'Saldo inicial da conta :account', + 'list_options' => 'Lista de opções', // categories: 'new_category' => 'Nova categoria', @@ -1243,6 +1245,7 @@ return [ 'first_split_decides' => 'A primeira divisão determina o valor deste campo', 'first_split_overrules_source' => 'A primeira divisão pode anular a conta de origem', 'first_split_overrules_destination' => 'A primeira divisão pode anular a conta de destino', + 'spent_x_of_y' => 'Gasto {amount} de {total}', // new user: 'welcome' => 'Bem vindo ao Firefly III!', diff --git a/resources/lang/pt_PT/validation.php b/resources/lang/pt_PT/validation.php index 57e3c6b4f0..e8009ff31b 100644 --- a/resources/lang/pt_PT/validation.php +++ b/resources/lang/pt_PT/validation.php @@ -60,7 +60,7 @@ return [ 'less' => ':attribute tem de ser menor que 10,000,000', 'active_url' => 'O :attribute nao e um URL valido.', 'after' => 'I :attribute tem de ser uma data depois de :date.', - 'date_after' => 'The start date must be before the end date.', + 'date_after' => 'A data de início deve ser anterior à data de fim.', 'alpha' => 'O :attribute apenas pode conter letras.', 'alpha_dash' => 'O :attribute apenas pode conter letras, numero e tracos.', 'alpha_num' => 'O :attribute apenas pode conter letras e numeros.', diff --git a/resources/lang/ro_RO/firefly.php b/resources/lang/ro_RO/firefly.php index 0bcc25926b..e0ebcff9b2 100644 --- a/resources/lang/ro_RO/firefly.php +++ b/resources/lang/ro_RO/firefly.php @@ -886,6 +886,7 @@ return [ 'create_new_deposit' => 'Creați un nou depozit', 'create_new_transfer' => 'Creați un nou transfer', 'create_new_asset' => 'Creați un nou cont de active', + 'create_new_liabilities' => 'Create new liability', 'create_new_expense' => 'Creați un nou cont de cheltuieli', 'create_new_revenue' => 'Creați un nou cont de venituri', 'create_new_piggy_bank' => 'Creați o nouă pușculiță', @@ -1130,6 +1131,7 @@ return [ 'interest_calc_monthly' => 'Pe lună', 'interest_calc_yearly' => 'Pe an', 'initial_balance_account' => 'Bilanțul inițial al contului :account', + 'list_options' => 'List options', // categories: 'new_category' => 'Categorie nouă', @@ -1243,6 +1245,7 @@ return [ 'first_split_decides' => 'The first split determines the value of this field', 'first_split_overrules_source' => 'The first split may overrule the source account', 'first_split_overrules_destination' => 'The first split may overrule the destination account', + 'spent_x_of_y' => 'Spent {amount} of {total}', // new user: 'welcome' => 'Bine ați venit!', diff --git a/resources/lang/ru_RU/firefly.php b/resources/lang/ru_RU/firefly.php index 4b4713a414..a55478cc65 100644 --- a/resources/lang/ru_RU/firefly.php +++ b/resources/lang/ru_RU/firefly.php @@ -886,6 +886,7 @@ return [ 'create_new_deposit' => 'Создать новый доход', 'create_new_transfer' => 'Создать новый перевод', 'create_new_asset' => 'Создать новый активный счёт', + 'create_new_liabilities' => 'Create new liability', 'create_new_expense' => 'Создать новый счёт расхода', 'create_new_revenue' => 'Создать новый счёт дохода', 'create_new_piggy_bank' => 'Создать новую копилку', @@ -1130,6 +1131,7 @@ return [ 'interest_calc_monthly' => 'В месяц', 'interest_calc_yearly' => 'В год', 'initial_balance_account' => 'Начальный баланс для счёта :account', + 'list_options' => 'List options', // categories: 'new_category' => 'Новая категория', @@ -1243,6 +1245,7 @@ return [ 'first_split_decides' => 'В данном поле используется значение из первой части разделенной транзакции', 'first_split_overrules_source' => 'Значение из первой части транзакции может изменить счет источника', 'first_split_overrules_destination' => 'Значение из первой части транзакции может изменить счет назначения', + 'spent_x_of_y' => 'Spent {amount} of {total}', // new user: 'welcome' => 'Добро пожаловать в Firefly III!', diff --git a/resources/lang/sk_SK/firefly.php b/resources/lang/sk_SK/firefly.php index 2d64ec6df1..7ade62ff48 100644 --- a/resources/lang/sk_SK/firefly.php +++ b/resources/lang/sk_SK/firefly.php @@ -886,6 +886,7 @@ return [ 'create_new_deposit' => 'Vytvoriť nový vklad', 'create_new_transfer' => 'Vytvoriť nový prevod', 'create_new_asset' => 'Vytvoriť nový účet aktív', + 'create_new_liabilities' => 'Create new liability', 'create_new_expense' => 'Vytvoriť výdavkoý účet', 'create_new_revenue' => 'Vytvoriť nový príjmový účet', 'create_new_piggy_bank' => 'Vytvoriť novú pokladničku', @@ -1130,6 +1131,7 @@ return [ 'interest_calc_monthly' => 'Za mesiac', 'interest_calc_yearly' => 'Za rok', 'initial_balance_account' => 'Počiatočný zostatok pre :account', + 'list_options' => 'List options', // categories: 'new_category' => 'Nová kategória', @@ -1243,6 +1245,7 @@ return [ 'first_split_decides' => 'The first split determines the value of this field', 'first_split_overrules_source' => 'The first split may overrule the source account', 'first_split_overrules_destination' => 'The first split may overrule the destination account', + 'spent_x_of_y' => 'Spent {amount} of {total}', // new user: 'welcome' => 'Vitajte ve Firefly III!', diff --git a/resources/lang/sk_SK/validation.php b/resources/lang/sk_SK/validation.php index be7810e7f8..cd37a1e796 100644 --- a/resources/lang/sk_SK/validation.php +++ b/resources/lang/sk_SK/validation.php @@ -60,7 +60,7 @@ return [ 'less' => ':attribute musí byť menej než 10.000.000', 'active_url' => ':attribute nie je platná adresa URL.', 'after' => ':attribute musí byť neskôr, než :date.', - 'date_after' => 'The start date must be before the end date.', + 'date_after' => 'Počiatočný dátum musí byť starší, než konečný dátum.', 'alpha' => ':attribute môže obsahovať len písmená.', 'alpha_dash' => ':attribute môže obsahovať len písmená, čísla a pomlčky.', 'alpha_num' => ':attribute môže obsahovať len písmená a čísla.', diff --git a/resources/lang/sv_SE/firefly.php b/resources/lang/sv_SE/firefly.php index 41d359b11b..5fdfa6dd53 100644 --- a/resources/lang/sv_SE/firefly.php +++ b/resources/lang/sv_SE/firefly.php @@ -886,6 +886,7 @@ return [ 'create_new_deposit' => 'Skapa en ny insättning', 'create_new_transfer' => 'Skapa en ny överföring', 'create_new_asset' => 'Skapa ett nytt tillgångskonto', + 'create_new_liabilities' => 'Create new liability', 'create_new_expense' => 'Skapa ett nytt utgiftskonto', 'create_new_revenue' => 'Skapa ett nytt intäktskonto', 'create_new_piggy_bank' => 'Skapa en ny spargris', @@ -1130,6 +1131,7 @@ return [ 'interest_calc_monthly' => 'Per månad', 'interest_calc_yearly' => 'Per år', 'initial_balance_account' => 'Startbalans för konto :account', + 'list_options' => 'List options', // categories: 'new_category' => 'Ny kategori', @@ -1243,6 +1245,7 @@ return [ 'first_split_decides' => 'The first split determines the value of this field', 'first_split_overrules_source' => 'The first split may overrule the source account', 'first_split_overrules_destination' => 'The first split may overrule the destination account', + 'spent_x_of_y' => 'Spent {amount} of {total}', // new user: 'welcome' => 'Välkommen till Firefly III!', diff --git a/resources/lang/tr_TR/firefly.php b/resources/lang/tr_TR/firefly.php index dba991251c..93d821d868 100644 --- a/resources/lang/tr_TR/firefly.php +++ b/resources/lang/tr_TR/firefly.php @@ -887,6 +887,7 @@ return [ 'create_new_deposit' => 'Yeni mevduat oluştur', 'create_new_transfer' => 'Yeni transfer oluştur', 'create_new_asset' => 'Yeni varlık hesabı oluştur', + 'create_new_liabilities' => 'Create new liability', 'create_new_expense' => 'Yeni gider hesabı oluştur', 'create_new_revenue' => 'Yeni gelir hesabı oluştur', 'create_new_piggy_bank' => 'Yeni bir kumbara oluştur', @@ -1131,6 +1132,7 @@ return [ 'interest_calc_monthly' => 'Per month', 'interest_calc_yearly' => 'Per year', 'initial_balance_account' => 'Initial balance account of :account', + 'list_options' => 'List options', // categories: 'new_category' => 'Yeni Kategori', @@ -1244,6 +1246,7 @@ return [ 'first_split_decides' => 'The first split determines the value of this field', 'first_split_overrules_source' => 'The first split may overrule the source account', 'first_split_overrules_destination' => 'The first split may overrule the destination account', + 'spent_x_of_y' => 'Spent {amount} of {total}', // new user: 'welcome' => 'Firefly III\'e hoşgeldiniz!', diff --git a/resources/lang/vi_VN/breadcrumbs.php b/resources/lang/vi_VN/breadcrumbs.php index 0aafdf879e..3f5bf67a35 100644 --- a/resources/lang/vi_VN/breadcrumbs.php +++ b/resources/lang/vi_VN/breadcrumbs.php @@ -30,7 +30,7 @@ return [ 'edit_piggyBank' => 'Sửa heo đất ":name"', 'preferences' => 'Quyền ưu tiên', 'profile' => 'Hồ sơ', - 'accounts' => 'Accounts', + 'accounts' => 'Tài khoản', 'changePassword' => 'Đổi mật khẩu', 'change_email' => 'Đổi địa chỉ email', 'bills' => 'Hóa đơn', @@ -62,5 +62,5 @@ return [ 'telemetry_view' => 'Xem dữ liệu thu thập', 'edit_object_group' => 'Chỉnh sửa nhóm ":title"', 'delete_object_group' => 'Xóa nhóm ":title"', - 'logout_others' => 'Logout other sessions' + 'logout_others' => 'Đăng xuất tất cả phiên đăng nhập' ]; diff --git a/resources/lang/vi_VN/email.php b/resources/lang/vi_VN/email.php index 7dc603ca16..88a983900f 100644 --- a/resources/lang/vi_VN/email.php +++ b/resources/lang/vi_VN/email.php @@ -34,12 +34,12 @@ return [ 'admin_test_body' => 'Đây là một thông báo thử nghiệm từ Firefly III của bạn. Nó đã được gửi đến :email.', // new IP - 'login_from_new_ip' => 'New login on Firefly III', - 'new_ip_body' => 'Firefly III detected a new login on your account from an unknown IP address. If you never logged in from the IP address below, or it has been more than six months ago, Firefly III will warn you.', - 'new_ip_warning' => 'If you recognize this IP address or the login, you can ignore this message. If you didn\'t login, of if you have no idea what this is about, verify your password security, change it, and log out all other sessions. To do this, go to your profile page. Of course you have 2FA enabled already, right? Stay safe!', - 'ip_address' => 'IP address', - 'host_name' => 'Host', - 'date_time' => 'Date + time', + 'login_from_new_ip' => 'Đăng nhập mới trên Firefly III', + 'new_ip_body' => 'Firefly III đã phát hiện một thông tin đăng nhập mới vào tài khoản của bạn từ một địa chỉ IP không xác định. Nếu bạn chưa bao giờ đăng nhập từ địa chỉ IP bên dưới hoặc đã hơn sáu tháng trước, Firefly III sẽ cảnh báo bạn.', + 'new_ip_warning' => 'Nếu bạn nhận ra địa chỉ IP này hoặc thông tin đăng nhập, bạn có thể bỏ qua thông báo này. Nếu bạn không đăng nhập, nếu bạn không biết điều này là gì, hãy xác minh bảo mật mật khẩu của bạn, thay đổi mật khẩu và đăng xuất tất cả các phiên khác. Để làm điều này, hãy truy cập trang hồ sơ của bạn.', + 'ip_address' => 'Địa chỉ IP', + 'host_name' => 'Máy chủ', + 'date_time' => 'Ngày & Giờ', // access token created 'access_token_created_subject' => 'Mã truy cập mới đã được tạo', @@ -52,7 +52,7 @@ return [ 'registered_welcome' => 'Chào mừng đến Firefly III. Đăng ký của bạn đã được thực hiện và email này để xác nhận nó!', 'registered_pw' => 'Nếu bạn đã quên mật khẩu của mình, vui lòng đặt lại bằng cách sử dụng công cụ đặt lại mật khẩu .', 'registered_help' => 'Có một biểu tượng trợ giúp ở góc trên bên phải của mỗi trang. Nếu bạn cần giúp đỡ, bấm vào nó!', - 'registered_doc_html' => 'If you haven\'t already, please read the grand theory.', + 'registered_doc_html' => 'Nếu bạn chưa có, vui lòng đọc lý thuyết .', 'registered_doc_text' => 'Nếu bạn chưa có, xin vui lòng đọc hướng dẫn sử dụng đầu tiên và mô tả.', 'registered_closing' => 'Hãy tận hưởng!', 'registered_firefly_iii_link' => 'Firefly III:', diff --git a/resources/lang/vi_VN/firefly.php b/resources/lang/vi_VN/firefly.php index 96ab2f9156..fea571d282 100644 --- a/resources/lang/vi_VN/firefly.php +++ b/resources/lang/vi_VN/firefly.php @@ -29,17 +29,17 @@ return [ 'edit' => 'Sửa', 'delete' => 'Xóa', 'split' => 'Chia ra', - 'single_split' => 'Split', + 'single_split' => 'Chia ra', 'clone' => 'Nhân ra', 'last_seven_days' => 'Bảy ngày gần đây', 'last_thirty_days' => 'Ba mươi ngày gần đây', - 'last_180_days' => 'Last 180 days', + 'last_180_days' => '180 ngày qua', 'YTD' => 'YTD', 'welcome_back' => 'Chào mừng trở lại?', 'everything' => 'Tất cả mọi thứ', 'today' => 'hôm nay', 'customRange' => 'Chọn trong khoảng', - 'date_range' => 'Date range', + 'date_range' => 'Khoảng thời gian', 'apply' => 'Áp dụng', 'select_date' => 'Chọn ngày..', 'cancel' => 'Hủy', @@ -56,13 +56,13 @@ return [ 'Opening balance' => 'Số dư đầu kỳ', 'create_new_stuff' => 'Tạo công cụ mới', 'new_withdrawal' => 'Rút tiền mới', - 'create_new_transaction' => 'Create a new transaction', + 'create_new_transaction' => 'Tạo giao dịch mới', 'sidebar_frontpage_create' => 'Tạo', 'new_transaction' => 'Giao dịch mới', 'no_rules_for_bill' => 'Hóa đơn này không có quy tắc nào liên quan đến nó.', 'go_to_asset_accounts' => 'Xem tài khoản của bạn', 'go_to_budgets' => 'Chuyển đến ngân sách của bạn', - 'go_to_withdrawals' => 'Go to your withdrawals', + 'go_to_withdrawals' => 'Chuyển đến mục rút tiền của bạn', 'clones_journal_x' => 'Giao dịch này là một bản sao của ":description" (#:id)', 'go_to_categories' => 'Đi đến danh mục của bạn', 'go_to_bills' => 'Đi đến hóa đơn của bạn', @@ -208,21 +208,21 @@ return [ 'button_register' => 'Đăng ký', 'authorization' => 'Ủy quyền', 'active_bills_only' => 'Chỉ hóa đơn hoạt động', - 'active_bills_only_total' => 'all active bills', + 'active_bills_only_total' => 'tất cả hóa đơn đang hoạt động', 'active_exp_bills_only' => 'hóa đơn hoạt động và dự kiến', - 'active_exp_bills_only_total' => 'all active expected bills only', - 'per_period_sum_1D' => 'Expected daily costs', - 'per_period_sum_1W' => 'Expected weekly costs', - 'per_period_sum_1M' => 'Expected monthly costs', - 'per_period_sum_3M' => 'Expected quarterly costs', - 'per_period_sum_6M' => 'Expected half-yearly costs', - 'per_period_sum_1Y' => 'Expected yearly costs', + 'active_exp_bills_only_total' => 'chỉ tất cả các hóa đơn dự kiến đang hoạt động', + 'per_period_sum_1D' => 'Chi phí hàng ngày dự kiến', + 'per_period_sum_1W' => 'Chi phí hàng tuần dự kiến', + 'per_period_sum_1M' => 'Chi phí hàng tháng dự kiến', + 'per_period_sum_3M' => 'Chi phí hàng quý dự kiến', + 'per_period_sum_6M' => 'Chi phí nửa năm dự kiến', + 'per_period_sum_1Y' => 'Chi phí hàng năm dự kiến', 'average_per_bill' => 'trung bình mỗi hóa đơn', 'expected_total' => 'tổng dự kiến', 'reconciliation_account_name' => ':name reconciliation (:currency)', - 'saved' => 'Saved', - 'advanced_options' => 'Advanced options', - 'advanced_options_explain' => 'Some pages in Firefly III have advanced options hidden behind this button. This page doesn\'t have anything fancy here, but do check out the others!', + 'saved' => 'Đã lưu', + 'advanced_options' => 'Tùy chọn nâng cao', + 'advanced_options_explain' => 'Một số trang trong Firefly III có các tùy chọn nâng cao ẩn sau nút này. Trang này không có gì lạ mắt ở đây, nhưng hãy kiểm tra các trang khác!', 'here_be_dragons' => 'Hic sunt dracones', // Webhooks @@ -244,8 +244,8 @@ return [ 'all_source_accounts' => 'Tài khoản gửi', 'back_to_index' => 'Quay lại chỉ mục', 'cant_logout_guard' => 'Firefly III can\'t log you out.', - 'external_url' => 'External URL', - 'internal_reference' => 'Internal reference', + 'external_url' => 'URL bên ngoài', + 'internal_reference' => 'Tài liệu tham khảo nội bộ', // check for updates: 'update_check_title' => 'Kiểm tra cập nhật', @@ -279,36 +279,36 @@ return [ 'search_found_transactions' => 'Tìm thấy Firefly III :count giao dịch trong :time giây. | Firefly III được tìm thấy :count giao dịch trong :time giây.', 'search_found_more_transactions' => 'Firefly III đã tìm thấy hơn :count giao dịch trong :time giây.', 'search_for_query' => 'Firefly III đang tìm kiếm các giao dịch với tất cả những từ này trong đó: :query', - 'search_modifier_date_is' => 'Transaction date is ":value"', - 'search_modifier_id' => 'Transaction ID is ":value"', - 'search_modifier_date_before' => 'Transaction date is before or on ":value"', - 'search_modifier_date_after' => 'Transaction date is after or on ":value"', - 'search_modifier_created_on' => 'Transaction was created on ":value"', - 'search_modifier_updated_on' => 'Transaction was last updated on ":value"', - 'search_modifier_external_id' => 'External ID is ":value"', - 'search_modifier_internal_reference' => 'Internal reference is ":value"', - 'search_modifier_description_starts' => 'Description is ":value"', - 'search_modifier_description_ends' => 'Description ends with ":value"', - 'search_modifier_description_contains' => 'Description contains ":value"', - 'search_modifier_description_is' => 'Description is exactly ":value"', - 'search_modifier_currency_is' => 'Transaction (foreign) currency is ":value"', - 'search_modifier_foreign_currency_is' => 'Transaction foreign currency is ":value"', - 'search_modifier_has_attachments' => 'The transaction must have an attachment', - 'search_modifier_has_no_category' => 'The transaction must have no category', - 'search_modifier_has_any_category' => 'The transaction must have a (any) category', - 'search_modifier_has_no_budget' => 'The transaction must have no budget', - 'search_modifier_has_any_budget' => 'The transaction must have a (any) budget', - 'search_modifier_has_no_tag' => 'The transaction must have no tags', - 'search_modifier_has_any_tag' => 'The transaction must have a (any) tag', - 'search_modifier_notes_contain' => 'The transaction notes contain ":value"', - 'search_modifier_notes_start' => 'The transaction notes start with ":value"', - 'search_modifier_notes_end' => 'The transaction notes end with ":value"', - 'search_modifier_notes_are' => 'The transaction notes are exactly ":value"', - 'search_modifier_no_notes' => 'The transaction has no notes', - 'search_modifier_any_notes' => 'The transaction must have notes', - 'search_modifier_amount_exactly' => 'Amount is exactly :value', - 'search_modifier_amount_less' => 'Amount is less than or equal to :value', - 'search_modifier_amount_more' => 'Amount is more than or equal to :value', + 'search_modifier_date_is' => 'Ngày giao dịch là ":value"', + 'search_modifier_id' => 'ID giao dịch là ":value"', + 'search_modifier_date_before' => 'Ngày giao dịch phải trước hoặc ngay ":value"', + 'search_modifier_date_after' => 'Ngày giao dịch phải sau hoặc ngay ":value"', + 'search_modifier_created_on' => 'Giao dịch được tạo vào ":value"', + 'search_modifier_updated_on' => 'Giao dịch được cập nhật lần cuối vào ":value"', + 'search_modifier_external_id' => 'ID bên ngoài là ":value"', + 'search_modifier_internal_reference' => 'Tham chiếu nội bộ là ":value"', + 'search_modifier_description_starts' => 'Mô tả là ":value"', + 'search_modifier_description_ends' => 'Mô tả kết thúc bằng ":value"', + 'search_modifier_description_contains' => 'Mô tả có chứa ":value"', + 'search_modifier_description_is' => 'Mô tả chính xác ":value"', + 'search_modifier_currency_is' => 'Đơn vị tiền tệ của giao dịch (nước ngoài) là ":value"', + 'search_modifier_foreign_currency_is' => 'Ngoại tệ giao dịch là ":value"', + 'search_modifier_has_attachments' => 'Giao dịch phải có tệp đính kèm', + 'search_modifier_has_no_category' => 'Giao dịch phải không có danh mục', + 'search_modifier_has_any_category' => 'Giao dịch phải có danh mục', + 'search_modifier_has_no_budget' => 'Giao dịch phải không có ngân sách', + 'search_modifier_has_any_budget' => 'Giao dịch có ngân sách (bất kỳ)', + 'search_modifier_has_no_tag' => 'Giao dịch phải không có thẻ', + 'search_modifier_has_any_tag' => 'Giao dịch phải có thẻ', + 'search_modifier_notes_contain' => 'Các ghi chú giao dịch chứa ":value"', + 'search_modifier_notes_start' => 'Các ghi chú giao dịch bắt đầu bằng ":value"', + 'search_modifier_notes_end' => 'Các ghi chú giao dịch kết thúc bằng ":value"', + 'search_modifier_notes_are' => 'Các ghi chú giao dịch chính xác ":value"', + 'search_modifier_no_notes' => 'Giao dịch không có ghi chú', + 'search_modifier_any_notes' => 'Giao dịch phải có ghi chú', + 'search_modifier_amount_exactly' => 'Số tiền chính xác là :value', + 'search_modifier_amount_less' => 'Số tiền phải nhỏ hơn hoặc bằng :value', + 'search_modifier_amount_more' => 'Số tiền phải lớn hơn hoặc bằng :value', 'search_modifier_source_account_is' => 'Source account name is exactly ":value"', 'search_modifier_source_account_contains' => 'Source account name contains ":value"', 'search_modifier_source_account_starts' => 'Source account name starts with ":value"', @@ -323,7 +323,7 @@ return [ 'search_modifier_destination_account_starts' => 'Destination account name starts with ":value"', 'search_modifier_destination_account_ends' => 'Destination account name ends with ":value"', 'search_modifier_destination_account_id' => 'Destination account ID is :value', - 'search_modifier_destination_is_cash' => 'Destination account is (cash) account', + 'search_modifier_destination_is_cash' => 'Tài khoản đích là tài khoản (tiền mặt)', 'search_modifier_source_is_cash' => 'Source account is (cash) account', 'search_modifier_destination_account_nr_is' => 'Destination account number (IBAN) is ":value"', 'search_modifier_destination_account_nr_contains' => 'Destination account number (IBAN) contains ":value"', @@ -455,16 +455,16 @@ return [ 'rule_trigger_source_account_nr_starts' => 'Source account number / IBAN starts with ":trigger_value"', 'rule_trigger_source_account_nr_ends_choice' => 'Source account number / IBAN ends with..', 'rule_trigger_source_account_nr_ends' => 'Source account number / IBAN ends with ":trigger_value"', - 'rule_trigger_source_account_nr_is_choice' => 'Source account number / IBAN is..', - 'rule_trigger_source_account_nr_is' => 'Source account number / IBAN is ":trigger_value"', - 'rule_trigger_source_account_nr_contains_choice' => 'Source account number / IBAN contains..', - 'rule_trigger_source_account_nr_contains' => 'Source account number / IBAN contains ":trigger_value"', - 'rule_trigger_destination_account_starts_choice' => 'Destination account name starts with..', - 'rule_trigger_destination_account_starts' => 'Destination account name starts with ":trigger_value"', - 'rule_trigger_destination_account_ends_choice' => 'Destination account name ends with..', - 'rule_trigger_destination_account_ends' => 'Destination account name ends with ":trigger_value"', - 'rule_trigger_destination_account_is_choice' => 'Destination account name is..', - 'rule_trigger_destination_account_is' => 'Destination account name is ":trigger_value"', + 'rule_trigger_source_account_nr_is_choice' => 'Số tài khoản nguồn / IBAN là..', + 'rule_trigger_source_account_nr_is' => 'Số tài khoản nguồn / IBAN là ":trigger_value"', + 'rule_trigger_source_account_nr_contains_choice' => 'Số tài khoản nguồn / IBAN chứa..', + 'rule_trigger_source_account_nr_contains' => 'Số tài khoản nguồn / IBAN chứa ":trigger_value"', + 'rule_trigger_destination_account_starts_choice' => 'Tên tài khoản đích bắt đầu bằng..', + 'rule_trigger_destination_account_starts' => 'Tên tài khoản đích bắt đầu bằng ":trigger_value"', + 'rule_trigger_destination_account_ends_choice' => 'Tên tài khoản đích kết thúc bằng..', + 'rule_trigger_destination_account_ends' => 'Tên tài khoản đích kết thúc bằng ":trigger_value"', + 'rule_trigger_destination_account_is_choice' => 'Tên tài khoản đích là..', + 'rule_trigger_destination_account_is' => 'Tên tài khoản đích là ":trigger_value"', 'rule_trigger_destination_account_contains_choice' => 'Destination account name contains..', 'rule_trigger_destination_account_contains' => 'Destination account name contains ":trigger_value"', 'rule_trigger_destination_account_nr_starts_choice' => 'Destination account number / IBAN starts with..', @@ -499,10 +499,10 @@ return [ 'rule_trigger_date_before' => 'Ngày giao dịch là trước: ":trigger_value"', 'rule_trigger_date_after_choice' => 'Ngày giao dịch sau..', 'rule_trigger_date_after' => 'Ngày giao dịch sau: ":trigger_value"', - 'rule_trigger_created_on_choice' => 'Transaction was made on..', - 'rule_trigger_created_on' => 'Transaction was made on ":trigger_value"', - 'rule_trigger_updated_on_choice' => 'Transaction was last edited on..', - 'rule_trigger_updated_on' => 'Transaction was last edited on ":trigger_value"', + 'rule_trigger_created_on_choice' => 'Giao dịch bị từ chối..', + 'rule_trigger_created_on' => 'Giao dịch được tạo: ":trigger_value"', + 'rule_trigger_updated_on_choice' => 'Giao dịch được cập nhật lần cuối vào..', + 'rule_trigger_updated_on' => 'Giao dịch được cập nhật lần cuối vào ":trigger_value"', 'rule_trigger_budget_is_choice' => 'Ngân sách là..', 'rule_trigger_budget_is' => 'Ngân sách là ":trigger_value"', 'rule_trigger_tag_is_choice' => 'Nhãn là..', @@ -541,8 +541,8 @@ return [ 'rule_trigger_notes_end' => 'Ghi chú kết thúc bằng ":trigger_value"', 'rule_trigger_bill_is_choice' => 'Bill is..', 'rule_trigger_bill_is' => 'Bill is ":trigger_value"', - 'rule_trigger_external_id_choice' => 'External ID is..', - 'rule_trigger_external_id' => 'External ID is ":trigger_value"', + 'rule_trigger_external_id_choice' => 'ID bên ngoài là..', + 'rule_trigger_external_id' => 'ID bên ngoài là ":trigger_value"', 'rule_trigger_internal_reference_choice' => 'Internal reference is..', 'rule_trigger_internal_reference' => 'Internal reference is ":trigger_value"', 'rule_trigger_journal_id_choice' => 'Transaction journal ID is..', @@ -678,7 +678,7 @@ return [ 'pref_optional_fields_transaction' => 'Các trường tùy chọn cho giao dịch', 'pref_optional_fields_transaction_help' => 'Theo mặc định, không phải tất cả các trường đều được bật khi tạo giao dịch mới (vì sự lộn xộn). Dưới đây, bạn có thể kích hoạt các trường này nếu bạn nghĩ rằng chúng có thể hữu ích cho bạn. Tất nhiên, bất kỳ trường nào bị vô hiệu hóa, nhưng đã được điền vào, sẽ hiển thị bất kể cài đặt.', 'optional_tj_date_fields' => 'Trường ngày', - 'optional_tj_other_fields' => 'Other fields', + 'optional_tj_other_fields' => 'Các dữ liệu khác', 'optional_tj_attachment_fields' => 'Trường đính kèm', 'pref_optional_tj_interest_date' => 'Ngày lãi', 'pref_optional_tj_book_date' => 'Ngày đặt sách', @@ -689,28 +689,28 @@ return [ 'pref_optional_tj_internal_reference' => 'Tài liệu tham khảo nội bộ', 'pref_optional_tj_notes' => 'Ghi chú', 'pref_optional_tj_attachments' => 'Tài liệu đính kèm', - 'pref_optional_tj_external_uri' => 'External URL', - 'pref_optional_tj_location' => 'Location', - 'pref_optional_tj_links' => 'Transaction links', + 'pref_optional_tj_external_uri' => 'URL bên ngoài', + 'pref_optional_tj_location' => 'Vị trí', + 'pref_optional_tj_links' => 'Liên kết giao dịch', 'optional_field_meta_dates' => 'Ngày', 'optional_field_meta_business' => 'Kinh doanh', 'optional_field_attachments' => 'Tài liệu đính kèm', 'optional_field_meta_data' => 'Dữ liệu meta tùy chọn', - 'external_uri' => 'External URL', + 'external_uri' => 'URL bên ngoài', // profile: - 'delete_stuff_header' => 'Delete data', + 'delete_stuff_header' => 'Xóa dữ liệu', 'permanent_delete_stuff' => 'Hãy cẩn thận với các nút này. Xóa nội dung là vĩnh viễn.', 'other_sessions_logged_out' => 'All your other sessions have been logged out.', 'delete_all_budgets' => 'Xóa TẤT CẢ ngân sách của bạn', 'delete_all_categories' => 'Xóa TẤT CẢ danh mục của bạn', 'delete_all_tags' => 'Xóa TẤT CẢ các nhãn của bạn', - 'delete_all_bills' => 'Delete ALL your bills', - 'delete_all_piggy_banks' => 'Delete ALL your piggy banks', - 'delete_all_rules' => 'Delete ALL your rules', - 'delete_all_recurring' => 'Delete ALL your recurring transactions', - 'delete_all_object_groups' => 'Delete ALL your object groups', - 'delete_all_accounts' => 'Delete ALL your accounts', + 'delete_all_bills' => 'Xóa TẤT CẢ các hóa đơn của bạn', + 'delete_all_piggy_banks' => 'Xóa TẤT CẢ các ống heo của bạn', + 'delete_all_rules' => 'Xóa TẤT CẢ các luật của bạn', + 'delete_all_recurring' => 'Xóa TẤT CẢ các giao dịch định kỳ của bạn', + 'delete_all_object_groups' => 'Xóa TẤT CẢ các nhóm đối tượng của bạn', + 'delete_all_accounts' => 'Xóa TẤT CẢ các tài khoản của bạn', 'delete_all_asset_accounts' => 'Delete ALL your asset accounts', 'delete_all_expense_accounts' => 'Delete ALL your expense accounts', 'delete_all_revenue_accounts' => 'Delete ALL your revenue accounts', @@ -886,6 +886,7 @@ return [ 'create_new_deposit' => 'Tạo tiền gửi mới', 'create_new_transfer' => 'Tạo chuyển khoản mới', 'create_new_asset' => 'Tạo tài khoản mới', + 'create_new_liabilities' => 'Create new liability', 'create_new_expense' => 'Tạo tài khoản chi phí mới', 'create_new_revenue' => 'Tạo tài khoản doanh thu mới', 'create_new_piggy_bank' => 'Tạo heo đất mới', @@ -1130,6 +1131,7 @@ return [ 'interest_calc_monthly' => 'Mỗi tháng', 'interest_calc_yearly' => 'Mỗi năm', 'initial_balance_account' => 'Tài khoản số dư ban đầu của: tài khoản', + 'list_options' => 'List options', // categories: 'new_category' => 'Danh muc mới', @@ -1243,6 +1245,7 @@ return [ 'first_split_decides' => 'The first split determines the value of this field', 'first_split_overrules_source' => 'The first split may overrule the source account', 'first_split_overrules_destination' => 'The first split may overrule the destination account', + 'spent_x_of_y' => 'Spent {amount} of {total}', // new user: 'welcome' => 'Chào mừng đến với Firefly III!', diff --git a/resources/lang/vi_VN/form.php b/resources/lang/vi_VN/form.php index d274352883..605c7a07c2 100644 --- a/resources/lang/vi_VN/form.php +++ b/resources/lang/vi_VN/form.php @@ -120,8 +120,8 @@ return [ 'stop_processing' => 'Dừng xử lý', 'start_date' => 'Bắt đầu', 'end_date' => 'Kết thúc', - 'start' => 'Start of range', - 'end' => 'End of range', + 'start' => 'Bắt đầu phạm vi', + 'end' => 'Kết thúc phạm vi', 'delete_account' => 'Xóa tài khoản ":name"', 'delete_bill' => 'Xóa hóa đơn ":name"', 'delete_budget' => 'Xóa ngân sách ":name"', diff --git a/resources/lang/vi_VN/intro.php b/resources/lang/vi_VN/intro.php index bfbcfb0157..2ed6c6d969 100644 --- a/resources/lang/vi_VN/intro.php +++ b/resources/lang/vi_VN/intro.php @@ -33,10 +33,10 @@ return [ 'index_cash_account' => 'Đây là những tài khoản được tạo ra cho đến nay. Bạn có thể sử dụng tài khoản tiền mặt để theo dõi chi phí tiền mặt nhưng tất nhiên đó không phải là bắt buộc.', // transactions - 'transactions_create_basic_info' => 'Enter the basic information of your transaction. Source, destination, date and description.', - 'transactions_create_amount_info' => 'Enter the amount of the transaction. If necessary the fields will auto-update for foreign amount info.', - 'transactions_create_optional_info' => 'All of these fields are optional. Adding meta-data here will make your transactions better organised.', - 'transactions_create_split' => 'If you want to split a transaction, add more splits with this button', + 'transactions_create_basic_info' => 'Nhập thông tin cơ bản của giao dịch. Nguồn, đích, ngày tháng và mô tả.', + 'transactions_create_amount_info' => 'Nhập số tiền của giao dịch. Nếu cần, các trường sẽ tự động cập nhật thông tin về ngoại tệ.', + 'transactions_create_optional_info' => 'Tất cả các trường là tùy chọn. Thêm siêu dữ liệu ở đây sẽ làm cho các giao dịch của bạn được tổ chức tốt hơn.', + 'transactions_create_split' => 'Nếu bạn muốn phân tách một giao dịch, hãy thêm nhiều lần chia tách bằng nút này', // create account: 'accounts_create_iban' => 'Cung cấp cho tài khoản của bạn một IBAN hợp lệ. Điều này có thể làm cho việc nhập dữ liệu rất dễ dàng trong tương lai.', diff --git a/resources/lang/vi_VN/list.php b/resources/lang/vi_VN/list.php index 1def1e0bc7..c9cbe5bbb1 100644 --- a/resources/lang/vi_VN/list.php +++ b/resources/lang/vi_VN/list.php @@ -37,7 +37,7 @@ return [ 'linked_to_rules' => 'Quy tắc liên quan', 'active' => 'Đang hoạt động?', 'percentage' => 'phần trăm.', - 'recurring_transaction' => 'Recurring transaction', + 'recurring_transaction' => 'Giao dịch định kỳ', 'next_due' => 'Kỳ hạn tiếp theo', 'transaction_type' => 'Loại giao dịch', 'lastActivity' => 'Hoạt động cuối cùng', @@ -46,7 +46,7 @@ return [ 'account_type' => 'Loại tài khoản', 'created_at' => 'Được tạo tại', 'account' => 'Tài khoản', - 'external_uri' => 'External URI', + 'external_uri' => 'URL bên ngoài', 'matchingAmount' => 'Số tiền', 'destination' => 'Nơi đến', 'source' => 'Nơi gửi', diff --git a/resources/lang/vi_VN/validation.php b/resources/lang/vi_VN/validation.php index ce645db706..11a709cbf3 100644 --- a/resources/lang/vi_VN/validation.php +++ b/resources/lang/vi_VN/validation.php @@ -60,7 +60,7 @@ return [ 'less' => ':thuộc tính phải nhỏ hơn 10,000,000', 'active_url' => 'Thuộc tính: không phải là một URL hợp lệ.', 'after' => 'Thuộc tính: phải là một ngày sau: ngày.', - 'date_after' => 'The start date must be before the end date.', + 'date_after' => '"Ngày bắt đầu" phải trước "Ngày kết thúc".', 'alpha' => 'Thuộc tính: chỉ có thể chứa các chữ cái.', 'alpha_dash' => 'Thuộc tính: chỉ có thể chứa chữ cái, số và dấu gạch ngang.', 'alpha_num' => 'Thuộc tính: chỉ có thể chứa các chữ cái và số.', @@ -131,7 +131,7 @@ return [ 'current_target_amount' => 'Số tiền hiện tại phải nhỏ hơn số tiền mục tiêu.', 'unique_piggy_bank_for_user' => 'Tên của con heo đất phải là duy nhất.', 'unique_object_group' => 'Tên nhóm phải không bị trùng', - 'starts_with' => 'The value must start with :values.', + 'starts_with' => 'Giá trị phải bắt đầu bằng :values.', 'unique_webhook' => 'You already have a webhook with these values.', 'unique_existing_webhook' => 'You already have another webhook with these values.', @@ -143,7 +143,7 @@ return [ 'email' => 'địa chỉ email', 'description' => 'mô tả', 'amount' => 'số tiền', - 'transactions.*.amount' => 'transaction amount', + 'transactions.*.amount' => 'số tiền giao dịch', 'name' => 'tên', 'piggy_bank_id' => 'ID heo đất', 'targetamount' => 'lượng mục tiêu', @@ -183,7 +183,7 @@ return [ 'withdrawal_dest_need_data' => 'Cần lấy ID tài khoản đích hợp lệ và / hoặc tên tài khoản đích hợp lệ để tiếp tục.', 'withdrawal_dest_bad_data' => 'Không thể tìm thấy tài khoản đích hợp lệ khi tìm kiếm ID ":id" hoặc tên ":name".', - 'generic_source_bad_data' => 'Could not find a valid source account when searching for ID ":id" or name ":name".', + 'generic_source_bad_data' => 'Không thể tìm thấy tài khoản nguồn hợp lệ khi tìm kiếm ID ":id" hoặc tên ":name".', 'deposit_source_need_data' => 'Cần lấy ID tài khoản nguồn hợp lệ và / hoặc tên tài khoản nguồn hợp lệ để tiếp tục.', 'deposit_source_bad_data' => 'Cần lấy ID tài khoản nguồn hợp lệ và / hoặc tên tài khoản nguồn hợp lệ để continuaCould không tìm thấy tài khoản nguồn hợp lệ khi tìm kiếm IDe ":id" hoặc tên ":name".', @@ -205,7 +205,7 @@ return [ 'generic_invalid_destination' => 'Bạn không thể sử dụng tài khoản này làm tài khoản đích.', 'gte.numeric' => ':attribute phải lớn hơn hoặc bằng :value.', - 'gt.numeric' => 'The :attribute must be greater than :value.', + 'gt.numeric' => ':attribute phải lớn hơn :value.', 'gte.file' => ':attribute phải lớn hơn hoặc bằng :value kilobyte.', 'gte.string' => ':attribute phải lớn hơn hoặc bằng :value ký tự.', 'gte.array' => ':attribute phải có :value mục trở lên.', diff --git a/resources/lang/zh_CN/firefly.php b/resources/lang/zh_CN/firefly.php index a7512fd7ef..2b193edf77 100644 --- a/resources/lang/zh_CN/firefly.php +++ b/resources/lang/zh_CN/firefly.php @@ -886,6 +886,7 @@ return [ 'create_new_deposit' => '创建新收入', 'create_new_transfer' => '创建新转账', 'create_new_asset' => '创建新资产账户', + 'create_new_liabilities' => 'Create new liability', 'create_new_expense' => '创建新支出账户', 'create_new_revenue' => '创建新收入账户', 'create_new_piggy_bank' => '创建新存钱罐', @@ -1130,6 +1131,7 @@ return [ 'interest_calc_monthly' => '每月', 'interest_calc_yearly' => '每年', 'initial_balance_account' => '初始余额账户“:account”', + 'list_options' => 'List options', // categories: 'new_category' => '新分类', @@ -1243,6 +1245,7 @@ return [ 'first_split_decides' => '首笔拆分决定此字段的值', 'first_split_overrules_source' => '首笔拆分可能覆盖来源账户', 'first_split_overrules_destination' => '首笔拆分可能覆盖目标账户', + 'spent_x_of_y' => 'Spent {amount} of {total}', // new user: 'welcome' => '欢迎使用 Firefly III!', diff --git a/resources/lang/zh_TW/firefly.php b/resources/lang/zh_TW/firefly.php index 5be16744b0..2aa0984bb8 100644 --- a/resources/lang/zh_TW/firefly.php +++ b/resources/lang/zh_TW/firefly.php @@ -886,6 +886,7 @@ return [ 'create_new_deposit' => '建立新存款', 'create_new_transfer' => '建立新轉帳', 'create_new_asset' => '建立新資產帳戶', + 'create_new_liabilities' => 'Create new liability', 'create_new_expense' => '建立新支出帳戶', 'create_new_revenue' => '建立新收入帳戶', 'create_new_piggy_bank' => '建立新小豬撲滿', @@ -1130,6 +1131,7 @@ return [ 'interest_calc_monthly' => '每月', 'interest_calc_yearly' => '每年', 'initial_balance_account' => ':account 初始餘額帳戶', + 'list_options' => 'List options', // categories: 'new_category' => '新分類', @@ -1243,6 +1245,7 @@ return [ 'first_split_decides' => 'The first split determines the value of this field', 'first_split_overrules_source' => 'The first split may overrule the source account', 'first_split_overrules_destination' => 'The first split may overrule the destination account', + 'spent_x_of_y' => 'Spent {amount} of {total}', // new user: 'welcome' => '歡迎使用 Firefly III!', diff --git a/resources/views/v1/accounts/reconcile/index.twig b/resources/views/v1/accounts/reconcile/index.twig index fd0d0ace45..d7865e0164 100644 --- a/resources/views/v1/accounts/reconcile/index.twig +++ b/resources/views/v1/accounts/reconcile/index.twig @@ -120,9 +120,6 @@ - - - {% endblock %} {% block scripts %} diff --git a/resources/views/v1/accounts/show.twig b/resources/views/v1/accounts/show.twig index 991cfcecd3..d63545169f 100644 --- a/resources/views/v1/accounts/show.twig +++ b/resources/views/v1/accounts/show.twig @@ -164,9 +164,6 @@ {% endif %} - - - {% endblock %} {% block scripts %} @@ -188,9 +185,6 @@ var chartUri = '{{ chartUri }}'; {% if not showAll %} showAll = false; - - - // uri's for charts: var incomeCategoryUri = '{{ route('chart.account.income-category', [account.id, start.format('Ymd'), end.format('Ymd')]) }}'; diff --git a/resources/views/v1/auth/mfa.twig b/resources/views/v1/auth/mfa.twig index 8f21b6b4f9..94c929bd79 100644 --- a/resources/views/v1/auth/mfa.twig +++ b/resources/views/v1/auth/mfa.twig @@ -27,14 +27,6 @@ - - - - {{ 'two_factor_forgot'|_ }} - - - - {% endblock %} diff --git a/resources/views/v1/auth/passwords/email.twig b/resources/views/v1/auth/passwords/email.twig index 18cc844432..90eebad93c 100644 --- a/resources/views/v1/auth/passwords/email.twig +++ b/resources/views/v1/auth/passwords/email.twig @@ -19,9 +19,6 @@ {% endif %} - - - {% endif %} - - -
diff --git a/resources/views/v1/partials/layout/breadcrumbs.twig b/resources/views/v1/partials/layout/breadcrumbs.twig index 8aa74ca38c..67679dde97 100644 --- a/resources/views/v1/partials/layout/breadcrumbs.twig +++ b/resources/views/v1/partials/layout/breadcrumbs.twig @@ -11,6 +11,3 @@ {% endfor %} {% endif %} - - - diff --git a/resources/views/v1/recurring/create.twig b/resources/views/v1/recurring/create.twig index 152e825ad0..c9429e5e52 100644 --- a/resources/views/v1/recurring/create.twig +++ b/resources/views/v1/recurring/create.twig @@ -191,10 +191,6 @@
- - - - {% endblock %} {% block scripts %} diff --git a/resources/views/v1/recurring/edit.twig b/resources/views/v1/recurring/edit.twig index d89aa9b501..bc9940640c 100644 --- a/resources/views/v1/recurring/edit.twig +++ b/resources/views/v1/recurring/edit.twig @@ -188,10 +188,6 @@ - - - - {% endblock %} {% block scripts %} diff --git a/resources/views/v1/recurring/index.twig b/resources/views/v1/recurring/index.twig index abb791e9db..08054a73ce 100644 --- a/resources/views/v1/recurring/index.twig +++ b/resources/views/v1/recurring/index.twig @@ -152,10 +152,6 @@ {% endif %} - - - - {% if total == 0 and page == 1 %} {% include 'v1.partials.empty' with {objectType: 'default', type: 'recurring',route: route('recurring.create')} %} {% endif %} diff --git a/resources/views/v1/reports/partials/budgets.twig b/resources/views/v1/reports/partials/budgets.twig index 90fdcc3ee6..ef442ae46d 100644 --- a/resources/views/v1/reports/partials/budgets.twig +++ b/resources/views/v1/reports/partials/budgets.twig @@ -72,9 +72,6 @@ {{ formatAmountBySymbol(budget_limit.left, budget_limit.currency_symbol, budget_limit.currency_decimal_places) }} {% endif %} - - - {% if null != budget_limit.overspent %} diff --git a/resources/views/v1/transactions/show.twig b/resources/views/v1/transactions/show.twig index 5eb5002909..47450983e0 100644 --- a/resources/views/v1/transactions/show.twig +++ b/resources/views/v1/transactions/show.twig @@ -410,15 +410,9 @@ {% endfor %} - - - {# modal for linking journals. Will be filled by AJAX #} - - - {% endblock %} {% block scripts %} +{% endblock %} diff --git a/resources/views/v2/accounts/indexx.twig b/resources/views/v2/accounts/indexx.twig deleted file mode 100644 index d8d49e8cf6..0000000000 --- a/resources/views/v2/accounts/indexx.twig +++ /dev/null @@ -1,15 +0,0 @@ -{% extends './v2/layout/default' %} -{% block breadcrumbs %} - {{ Breadcrumbs.render }} -{% endblock %} -{% block content %} -
-{% endblock %} - -{% block styles %} - -{% endblock %} - -{% block scripts %} - -{% endblock %} diff --git a/resources/views/v2/auth/passwords/reset.twig b/resources/views/v2/auth/passwords/reset.twig index 505e516baa..68adabdb8e 100644 --- a/resources/views/v2/auth/passwords/reset.twig +++ b/resources/views/v2/auth/passwords/reset.twig @@ -17,25 +17,15 @@ - - - {% endif %} - - - - {# default header #} - - - - - - -
diff --git a/resources/views/v2/auth/register.twig b/resources/views/v2/auth/register.twig index 25d5f46c26..f4fc047b58 100644 --- a/resources/views/v2/auth/register.twig +++ b/resources/views/v2/auth/register.twig @@ -18,10 +18,6 @@
{% endif %} - - - - {# default header #}
-{% endif %} \ No newline at end of file +{% endif %} diff --git a/routes/api-noauth.php b/routes/api-noauth.php index 44e99eb4d1..b3012655c8 100644 --- a/routes/api-noauth.php +++ b/routes/api-noauth.php @@ -1,4 +1,23 @@ . + */ declare(strict_types=1); @@ -10,4 +29,4 @@ Route::group( static function () { Route::get('{cliToken}', ['uses' => 'CronController@cron', 'as' => 'index']); } -); \ No newline at end of file +); diff --git a/routes/api.php b/routes/api.php index 7be605edc2..ebea292f15 100644 --- a/routes/api.php +++ b/routes/api.php @@ -21,8 +21,6 @@ */ declare(strict_types=1); - - use FireflyIII\Http\Middleware\IsAdmin; /** @@ -158,8 +156,6 @@ Route::group( // TODO Transfers for piggies } ); - - /** * SUMMARY CONTROLLER */ @@ -262,8 +258,6 @@ Route::group( Route::put('{budget}/limits/{budgetLimit}', ['uses' => 'BudgetLimit\UpdateController@update', 'as' => 'limits.update']); Route::delete('{budget}/limits/{budgetLimit}', ['uses' => 'BudgetLimit\DestroyController@destroy', 'as' => 'limits.delete']); Route::get('{budget}/limits/{budgetLimit}/transactions', ['uses' => 'BudgetLimit\ListController@transactions', 'as' => 'limits.transactions']); - - } ); @@ -509,9 +503,6 @@ Route::group( Route::get('user', ['uses' => 'AboutController@user', 'as' => 'user']); } ); - - - // Configuration API routes Route::group( ['namespace' => 'FireflyIII\Api\V1\Controllers\System', 'prefix' => 'configuration', @@ -522,8 +513,6 @@ Route::group( Route::put('{dynamicConfigKey}', ['uses' => 'ConfigurationController@update', 'as' => 'update']); } ); - - // Users API routes: Route::group( ['middleware' => ['auth:api', 'bindings', IsAdmin::class], 'namespace' => 'FireflyIII\Api\V1\Controllers\System', 'prefix' => 'users', diff --git a/routes/web.php b/routes/web.php index 9a41c3999c..c0fe573993 100644 --- a/routes/web.php +++ b/routes/web.php @@ -541,8 +541,6 @@ Route::group( Route::get('export', ['uses' => 'Export\IndexController@export', 'as' => 'export']); } ); - - /** * Object group controller. */ @@ -608,8 +606,6 @@ Route::group( 'budget/total-budgeted/{currency}/{start_date}/{end_date}', ['uses' => 'Json\BudgetController@getBudgetInformation', 'as' => 'budget.total-budgeted'] ); - - // boxes Route::get('box/balance', ['uses' => 'Json\BoxController@balance', 'as' => 'box.balance']); Route::get('box/available', ['uses' => 'Json\BoxController@available', 'as' => 'box.available']); @@ -867,8 +863,6 @@ Route::group( Route::group( ['middleware' => 'user-full-auth', 'namespace' => 'FireflyIII\Http\Controllers\Report', 'prefix' => 'report-data/budget', 'as' => 'report-data.budget.'], static function () { - - Route::get('general/{accountList}/{start_date}/{end_date}/', ['uses' => 'BudgetController@general', 'as' => 'general']); // TODO is route still used? Route::get('period/{accountList}/{start_date}/{end_date}', ['uses' => 'BudgetController@period', 'as' => 'period']); @@ -906,8 +900,6 @@ Route::group( Route::get('', ['uses' => 'Rule\IndexController@index', 'as' => 'index']); Route::post('move-rule/{rule}/{ruleGroup}', ['uses' => 'Rule\IndexController@moveRule', 'as' => 'move-rule']); - - // select controller Route::get('test', ['uses' => 'Rule\SelectController@testTriggers', 'as' => 'test-triggers']); Route::get('test-rule/{rule}', ['uses' => 'Rule\SelectController@testTriggersByRule', 'as' => 'test-triggers-rule']); diff --git a/tests/Api/Autocomplete/AccountControllerTest.php b/tests/Api/Autocomplete/AccountControllerTest.php index 202d7087bb..d0e35c2775 100644 --- a/tests/Api/Autocomplete/AccountControllerTest.php +++ b/tests/Api/Autocomplete/AccountControllerTest.php @@ -19,9 +19,9 @@ * along with this program. If not, see . */ +declare(strict_types=1); + namespace Tests\Api\Autocomplete; - - use Laravel\Passport\Passport; use Log; use Tests\TestCase; @@ -60,4 +60,4 @@ class AccountControllerTest extends TestCase $this->assertTrue(true); } -} \ No newline at end of file +} diff --git a/tests/Api/Models/Account/StoreControllerTest.php b/tests/Api/Models/Account/StoreControllerTest.php index b753752319..cd68fa6868 100644 --- a/tests/Api/Models/Account/StoreControllerTest.php +++ b/tests/Api/Models/Account/StoreControllerTest.php @@ -19,9 +19,9 @@ * along with this program. If not, see . */ +declare(strict_types=1); + namespace Tests\Api\Models\Account; - - use Laravel\Passport\Passport; use Log; use Tests\Objects\Field; @@ -200,4 +200,4 @@ class StoreControllerTest extends TestCase $this->assertPOST($address, $submission); } -} \ No newline at end of file +} diff --git a/tests/Api/Models/Account/UpdateControllerTest.php b/tests/Api/Models/Account/UpdateControllerTest.php index 79cd9ab150..71c8f3107c 100644 --- a/tests/Api/Models/Account/UpdateControllerTest.php +++ b/tests/Api/Models/Account/UpdateControllerTest.php @@ -19,9 +19,9 @@ * along with this program. If not, see . */ +declare(strict_types=1); + namespace Tests\Api\Models\Account; - - use Laravel\Passport\Passport; use Log; use Tests\Objects\Field; @@ -30,8 +30,6 @@ use Tests\Objects\TestConfiguration; use Tests\TestCase; use Tests\Traits\CollectsValues; use Tests\Traits\TestHelpers; - - /** * Class UpdateControllerTest */ @@ -204,4 +202,4 @@ class UpdateControllerTest extends TestCase $route = route('api.v1.accounts.update', $submission['parameters']); $this->assertPUT($route, $submission); } -} \ No newline at end of file +} diff --git a/tests/Api/Models/Attachment/StoreControllerTest.php b/tests/Api/Models/Attachment/StoreControllerTest.php index 1d5f499a2e..b57da46fe5 100644 --- a/tests/Api/Models/Attachment/StoreControllerTest.php +++ b/tests/Api/Models/Attachment/StoreControllerTest.php @@ -19,9 +19,9 @@ * along with this program. If not, see . */ +declare(strict_types=1); + namespace Tests\Api\Models\Attachment; - - use Laravel\Passport\Passport; use Log; use Tests\Objects\Field; @@ -105,4 +105,4 @@ class StoreControllerTest extends TestCase $address = route('api.v1.attachments.store'); $this->assertPOST($address, $submission); } -} \ No newline at end of file +} diff --git a/tests/Api/Models/Attachment/UpdateControllerTest.php b/tests/Api/Models/Attachment/UpdateControllerTest.php index 33c900a5f7..1cd23005a0 100644 --- a/tests/Api/Models/Attachment/UpdateControllerTest.php +++ b/tests/Api/Models/Attachment/UpdateControllerTest.php @@ -19,9 +19,9 @@ * along with this program. If not, see . */ +declare(strict_types=1); + namespace Tests\Api\Models\Attachment; - - use Laravel\Passport\Passport; use Log; use Tests\Objects\Field; @@ -47,8 +47,6 @@ class UpdateControllerTest extends TestCase Passport::actingAs($this->user()); Log::info(sprintf('Now in %s.', get_class($this))); } - - /** * @dataProvider updateDataProvider */ @@ -66,8 +64,6 @@ class UpdateControllerTest extends TestCase $route = route('api.v1.attachments.update', $submission['parameters']); $this->assertPUT($route, $submission); } - - /** * @return array */ @@ -99,4 +95,4 @@ class UpdateControllerTest extends TestCase return $configuration->generateAll(); } -} \ No newline at end of file +} diff --git a/tests/Api/Models/AvailableBudget/StoreControllerTest.php b/tests/Api/Models/AvailableBudget/StoreControllerTest.php index bbf45b47c8..f0b173ecfc 100644 --- a/tests/Api/Models/AvailableBudget/StoreControllerTest.php +++ b/tests/Api/Models/AvailableBudget/StoreControllerTest.php @@ -19,9 +19,9 @@ * along with this program. If not, see . */ +declare(strict_types=1); + namespace Tests\Api\Models\AvailableBudget; - - use Laravel\Passport\Passport; use Log; use Tests\Objects\Field; @@ -94,8 +94,6 @@ class StoreControllerTest extends TestCase return $configuration->generateAll(); } - - /** * @param array $submission * @@ -116,4 +114,4 @@ class StoreControllerTest extends TestCase $address = route('api.v1.available_budgets.store'); $this->assertPOST($address, $submission); } -} \ No newline at end of file +} diff --git a/tests/Api/Models/AvailableBudget/UpdateControllerTest.php b/tests/Api/Models/AvailableBudget/UpdateControllerTest.php index 19ae06ce36..52aca6d6ee 100644 --- a/tests/Api/Models/AvailableBudget/UpdateControllerTest.php +++ b/tests/Api/Models/AvailableBudget/UpdateControllerTest.php @@ -19,9 +19,9 @@ * along with this program. If not, see . */ +declare(strict_types=1); + namespace Tests\Api\Models\AvailableBudget; - - use Faker\Factory; use Laravel\Passport\Passport; use Log; @@ -48,8 +48,6 @@ class UpdateControllerTest extends TestCase Passport::actingAs($this->user()); Log::info(sprintf('Now in %s.', get_class($this))); } - - /** * @param array $submission * @@ -69,8 +67,6 @@ class UpdateControllerTest extends TestCase $route = route('api.v1.available_budgets.update', $submission['parameters']); $this->assertPUT($route, $submission); } - - /** * @return array */ @@ -122,64 +118,4 @@ class UpdateControllerTest extends TestCase return $configuration->generateAll(); } - - - /** - * @return array - */ - public function updateDataSet(): array - { - $faker = Factory::create(); - $currencies = ['EUR', 'GBP', 'USD', 'HUF']; - $currencyCode = $currencies[rand(0, count($currencies) - 1)]; - $set = [ - 'currency_id' => [ - 'id' => 1, - 'fields' => [ - 'currency_id' => ['test_value' => (string)$faker->numberBetween(1, 10)], - ], - 'extra_ignore' => ['currency_code', 'currency_symbol'], - ], - 'currency_code' => [ - 'id' => 1, - 'fields' => [ - 'currency_code' => ['test_value' => $currencyCode], - ], - 'extra_ignore' => ['currency_id', 'currency_symbol'], - ], - 'amount' => [ - 'id' => 1, - 'fields' => [ - 'amount' => ['test_value' => number_format($faker->randomFloat(2, 10, 100), 2)], - ], - 'extra_ignore' => [], - ], - 'start' => [ - 'id' => 1, - 'fields' => [ - 'start' => ['test_value' => $faker->dateTimeBetween('-2 year', '-1 year')->format('Y-m-d')], - ], - 'extra_ignore' => [], - ], - 'end' => [ - 'id' => 1, - 'fields' => [ - 'end' => ['test_value' => $faker->dateTimeBetween('-1 year', 'now')->format('Y-m-d')], - ], - 'extra_ignore' => [], - ], - 'both' => [ - 'id' => 1, - 'fields' => [ - 'start' => ['test_value' => $faker->dateTimeBetween('-2 year', '-1 year')->format('Y-m-d')], - 'end' => ['test_value' => $faker->dateTimeBetween('-1 year', 'now')->format('Y-m-d')], - ], - 'extra_ignore' => [], - ], - ]; - - return $set; - } - - -} \ No newline at end of file +} diff --git a/tests/Api/Models/Bill/StoreControllerTest.php b/tests/Api/Models/Bill/StoreControllerTest.php index b24262b2af..14570ad99d 100644 --- a/tests/Api/Models/Bill/StoreControllerTest.php +++ b/tests/Api/Models/Bill/StoreControllerTest.php @@ -19,9 +19,9 @@ * along with this program. If not, see . */ +declare(strict_types=1); + namespace Tests\Api\Models\Bill; - - use Laravel\Passport\Passport; use Log; use Tests\Objects\Field; @@ -128,8 +128,6 @@ class StoreControllerTest extends TestCase $fieldSet->parameters = [1]; $fieldSet->addField(Field::createBasic('active', 'boolean')); $configuration->addOptionalFieldSet('active', $fieldSet); - - $fieldSet = new FieldSet; $fieldSet->parameters = [1]; $fieldSet->addField(Field::createBasic('notes', 'uuid')); @@ -157,8 +155,6 @@ class StoreControllerTest extends TestCase return $configuration->generateAll(); } - - /** * @param array $submission * @@ -180,4 +176,4 @@ class StoreControllerTest extends TestCase $this->assertPOST($address, $submission); } -} \ No newline at end of file +} diff --git a/tests/Api/Models/Bill/UpdateControllerTest.php b/tests/Api/Models/Bill/UpdateControllerTest.php index bf8ed766fb..189035c9a9 100644 --- a/tests/Api/Models/Bill/UpdateControllerTest.php +++ b/tests/Api/Models/Bill/UpdateControllerTest.php @@ -19,9 +19,9 @@ * along with this program. If not, see . */ +declare(strict_types=1); + namespace Tests\Api\Models\Bill; - - use Laravel\Passport\Passport; use Log; use Tests\Objects\Field; @@ -47,8 +47,6 @@ class UpdateControllerTest extends TestCase Passport::actingAs($this->user()); Log::info(sprintf('Now in %s.', get_class($this))); } - - /** * @dataProvider updateDataProvider */ @@ -66,8 +64,6 @@ class UpdateControllerTest extends TestCase $route = route('api.v1.bills.update', $submission['parameters']); $this->assertPUT($route, $submission); } - - /** * @return array */ @@ -163,4 +159,4 @@ class UpdateControllerTest extends TestCase return $configuration->generateAll(); } -} \ No newline at end of file +} diff --git a/tests/Api/Models/Budget/StoreControllerTest.php b/tests/Api/Models/Budget/StoreControllerTest.php index c386f2b554..cd508b7e26 100644 --- a/tests/Api/Models/Budget/StoreControllerTest.php +++ b/tests/Api/Models/Budget/StoreControllerTest.php @@ -19,9 +19,9 @@ * along with this program. If not, see . */ +declare(strict_types=1); + namespace Tests\Api\Models\Budget; - - use Laravel\Passport\Passport; use Log; use Tests\Objects\Field; @@ -105,12 +105,8 @@ class StoreControllerTest extends TestCase $fieldSet->addField(Field::createBasic('auto_budget_amount', 'random-amount')); $fieldSet->addField(Field::createBasic('auto_budget_period', 'random-auto-period')); $configuration->addOptionalFieldSet('auto-code', $fieldSet); - - return $configuration->generateAll(); } - - /** * @param array $submission * @@ -132,4 +128,4 @@ class StoreControllerTest extends TestCase $this->assertPOST($address, $submission); } -} \ No newline at end of file +} diff --git a/tests/Api/Models/Budget/UpdateControllerTest.php b/tests/Api/Models/Budget/UpdateControllerTest.php index c27b067de1..a086476f49 100644 --- a/tests/Api/Models/Budget/UpdateControllerTest.php +++ b/tests/Api/Models/Budget/UpdateControllerTest.php @@ -19,9 +19,9 @@ * along with this program. If not, see . */ +declare(strict_types=1); + namespace Tests\Api\Models\Budget; - - use Laravel\Passport\Passport; use Log; use Tests\Objects\Field; @@ -47,8 +47,6 @@ class UpdateControllerTest extends TestCase Passport::actingAs($this->user()); Log::info(sprintf('Now in %s.', get_class($this))); } - - /** * @dataProvider updateDataProvider */ @@ -67,8 +65,6 @@ class UpdateControllerTest extends TestCase $this->assertPUT($route, $submission); } - - /** * @return array */ @@ -129,10 +125,6 @@ class UpdateControllerTest extends TestCase $field->title = 'auto_budget_type'; $fieldSet->addField($field); $configuration->addOptionalFieldSet('none', $fieldSet); - - return $configuration->generateAll(); } - - -} \ No newline at end of file +} diff --git a/tests/Api/Models/BudgetLimit/StoreControllerTest.php b/tests/Api/Models/BudgetLimit/StoreControllerTest.php index 17c051f987..854c1ba0fb 100644 --- a/tests/Api/Models/BudgetLimit/StoreControllerTest.php +++ b/tests/Api/Models/BudgetLimit/StoreControllerTest.php @@ -19,9 +19,9 @@ * along with this program. If not, see . */ +declare(strict_types=1); + namespace Tests\Api\Models\BudgetLimit; - - use Laravel\Passport\Passport; use Log; use Tests\Objects\Field; @@ -113,8 +113,6 @@ class StoreControllerTest extends TestCase return $configuration->generateAll(); } - - /** * @param array $submission * @@ -136,4 +134,4 @@ class StoreControllerTest extends TestCase $this->assertPOST($address, $submission); } -} \ No newline at end of file +} diff --git a/tests/Api/Models/BudgetLimit/UpdateControllerTest.php b/tests/Api/Models/BudgetLimit/UpdateControllerTest.php index e9b89dfe2e..3257cd17d2 100644 --- a/tests/Api/Models/BudgetLimit/UpdateControllerTest.php +++ b/tests/Api/Models/BudgetLimit/UpdateControllerTest.php @@ -19,9 +19,9 @@ * along with this program. If not, see . */ +declare(strict_types=1); + namespace Tests\Api\Models\BudgetLimit; - - use Laravel\Passport\Passport; use Log; use Tests\Objects\Field; @@ -47,8 +47,6 @@ class UpdateControllerTest extends TestCase Passport::actingAs($this->user()); Log::info(sprintf('Now in %s.', get_class($this))); } - - /** * @dataProvider updateDataProvider */ @@ -66,8 +64,6 @@ class UpdateControllerTest extends TestCase $route = route('api.v1.budgets.limits.update', $submission['parameters']); $this->assertPUT($route, $submission); } - - /** * @return array */ @@ -113,4 +109,4 @@ class UpdateControllerTest extends TestCase return $configuration->generateAll(); } -} \ No newline at end of file +} diff --git a/tests/Api/Models/Category/StoreControllerTest.php b/tests/Api/Models/Category/StoreControllerTest.php index 11954bd49c..b5bd9542e2 100644 --- a/tests/Api/Models/Category/StoreControllerTest.php +++ b/tests/Api/Models/Category/StoreControllerTest.php @@ -19,9 +19,9 @@ * along with this program. If not, see . */ +declare(strict_types=1); + namespace Tests\Api\Models\Category; - - use Laravel\Passport\Passport; use Log; use Tests\Objects\Field; @@ -79,8 +79,6 @@ class StoreControllerTest extends TestCase return $configuration->generateAll(); } - - /** * @param array $submission * @@ -102,4 +100,4 @@ class StoreControllerTest extends TestCase $this->assertPOST($address, $submission); } -} \ No newline at end of file +} diff --git a/tests/Api/Models/Category/UpdateControllerTest.php b/tests/Api/Models/Category/UpdateControllerTest.php index 17a6a01988..ef5f605c7d 100644 --- a/tests/Api/Models/Category/UpdateControllerTest.php +++ b/tests/Api/Models/Category/UpdateControllerTest.php @@ -19,9 +19,9 @@ * along with this program. If not, see . */ +declare(strict_types=1); + namespace Tests\Api\Models\Category; - - use Laravel\Passport\Passport; use Log; use Tests\Objects\Field; @@ -47,8 +47,6 @@ class UpdateControllerTest extends TestCase Passport::actingAs($this->user()); Log::info(sprintf('Now in %s.', get_class($this))); } - - /** * @dataProvider updateDataProvider */ @@ -65,11 +63,7 @@ class UpdateControllerTest extends TestCase $route = route('api.v1.categories.update', $submission['parameters']); $this->assertPUT($route, $submission); - - } - - /** * @return array */ @@ -90,6 +84,4 @@ class UpdateControllerTest extends TestCase return $configuration->generateAll(); } - - -} \ No newline at end of file +} diff --git a/tests/Api/Models/ObjectGroup/UpdateControllerTest.php b/tests/Api/Models/ObjectGroup/UpdateControllerTest.php index 61aaa45640..497fb72ab4 100644 --- a/tests/Api/Models/ObjectGroup/UpdateControllerTest.php +++ b/tests/Api/Models/ObjectGroup/UpdateControllerTest.php @@ -19,9 +19,9 @@ * along with this program. If not, see . */ +declare(strict_types=1); + namespace Tests\Api\Models\ObjectGroup; - - use Laravel\Passport\Passport; use Log; use Tests\Objects\Field; @@ -47,8 +47,6 @@ class UpdateControllerTest extends TestCase Passport::actingAs($this->user()); Log::info(sprintf('Now in %s.', get_class($this))); } - - /** * @dataProvider updateDataProvider */ @@ -66,8 +64,6 @@ class UpdateControllerTest extends TestCase $route = route('api.v1.object-groups.update', $submission['parameters']); $this->assertPUT($route, $submission); } - - /** * @return array */ @@ -88,4 +84,4 @@ class UpdateControllerTest extends TestCase return $configuration->generateAll(); } -} \ No newline at end of file +} diff --git a/tests/Api/Models/PiggyBank/StoreControllerTest.php b/tests/Api/Models/PiggyBank/StoreControllerTest.php index 9711d5d244..292dd52c4b 100644 --- a/tests/Api/Models/PiggyBank/StoreControllerTest.php +++ b/tests/Api/Models/PiggyBank/StoreControllerTest.php @@ -19,9 +19,9 @@ * along with this program. If not, see . */ +declare(strict_types=1); + namespace Tests\Api\Models\PiggyBank; - - use Laravel\Passport\Passport; use Log; use Tests\Objects\Field; @@ -143,4 +143,4 @@ class StoreControllerTest extends TestCase $this->assertPOST($address, $submission); } -} \ No newline at end of file +} diff --git a/tests/Api/Models/PiggyBank/UpdateControllerTest.php b/tests/Api/Models/PiggyBank/UpdateControllerTest.php index bbde2ecf85..c4a231b7cb 100644 --- a/tests/Api/Models/PiggyBank/UpdateControllerTest.php +++ b/tests/Api/Models/PiggyBank/UpdateControllerTest.php @@ -19,9 +19,9 @@ * along with this program. If not, see . */ +declare(strict_types=1); + namespace Tests\Api\Models\PiggyBank; - - use Laravel\Passport\Passport; use Log; use Tests\Objects\Field; @@ -47,8 +47,6 @@ class UpdateControllerTest extends TestCase Passport::actingAs($this->user()); Log::info(sprintf('Now in %s.', get_class($this))); } - - /** * @dataProvider updateDataProvider */ @@ -66,8 +64,6 @@ class UpdateControllerTest extends TestCase $route = route('api.v1.piggy_banks.update', $submission['parameters']); $this->assertPUT($route, $submission); } - - /** * @return array */ @@ -145,4 +141,4 @@ class UpdateControllerTest extends TestCase return $configuration->generateAll(); } -} \ No newline at end of file +} diff --git a/tests/Api/Models/Recurrence/StoreControllerTest.php b/tests/Api/Models/Recurrence/StoreControllerTest.php index 000d0c24ca..129cbbaf23 100644 --- a/tests/Api/Models/Recurrence/StoreControllerTest.php +++ b/tests/Api/Models/Recurrence/StoreControllerTest.php @@ -19,9 +19,9 @@ * along with this program. If not, see . */ +declare(strict_types=1); + namespace Tests\Api\Models\Recurrence; - - use Laravel\Passport\Passport; use Log; use Tests\Objects\Field; @@ -93,8 +93,6 @@ class StoreControllerTest extends TestCase $defaultSet->addField(Field::createBasic('transactions/0/source_id', 'random-asset-id')); $defaultSet->addField(Field::createBasic('transactions/0/destination_id', 'random-expense-id')); $configuration->addMandatoryFieldSet($defaultSet); - - $defaultSet = new FieldSet(); $defaultSet->title = 'default_deposit'; $defaultSet->addField(Field::createBasic('type', 'static-deposit')); @@ -190,4 +188,4 @@ class StoreControllerTest extends TestCase } -} \ No newline at end of file +} diff --git a/tests/Api/Models/Recurrence/UpdateControllerTest.php b/tests/Api/Models/Recurrence/UpdateControllerTest.php index db880f80c8..475ef3fa57 100644 --- a/tests/Api/Models/Recurrence/UpdateControllerTest.php +++ b/tests/Api/Models/Recurrence/UpdateControllerTest.php @@ -19,9 +19,9 @@ * along with this program. If not, see . */ +declare(strict_types=1); + namespace Tests\Api\Models\Recurrence; - - use Laravel\Passport\Passport; use Log; use Tests\Objects\Field; @@ -47,8 +47,6 @@ class UpdateControllerTest extends TestCase Passport::actingAs($this->user()); Log::info(sprintf('Now in %s.', get_class($this))); } - - /** * @dataProvider updateDataProvider */ @@ -67,8 +65,6 @@ class UpdateControllerTest extends TestCase $this->assertPUT($route, $submission); } - - /** * @return array */ @@ -106,8 +102,6 @@ class UpdateControllerTest extends TestCase $field = Field::createBasic('active', 'boolean'); $fieldSet->addField($field); $configuration->addOptionalFieldSet('active', $fieldSet); - - $fieldSet = new FieldSet; $fieldSet->parameters = [1]; $field = Field::createBasic('repetitions/0/type', 'static-ndom'); @@ -115,8 +109,6 @@ class UpdateControllerTest extends TestCase $fieldSet->addField($field); $fieldSet->addField(Field::createBasic('repetitions/0/moment', 'moment-ndom')); $configuration->addOptionalFieldSet('ndom', $fieldSet); - - $fieldSet = new FieldSet; $fieldSet->parameters = [1]; $field = Field::createBasic('repetitions/0/type', 'static-monthly'); @@ -124,8 +116,6 @@ class UpdateControllerTest extends TestCase $fieldSet->addField($field); $fieldSet->addField(Field::createBasic('repetitions/0/moment', 'moment-monthly')); $configuration->addOptionalFieldSet('monthly', $fieldSet); - - $fieldSet = new FieldSet; $fieldSet->parameters = [1]; $field = Field::createBasic('repetitions/0/type', 'static-yearly'); @@ -133,8 +123,6 @@ class UpdateControllerTest extends TestCase $fieldSet->addField($field); $fieldSet->addField(Field::createBasic('repetitions/0/moment', 'random-past-date')); $configuration->addOptionalFieldSet('yearly', $fieldSet); - - $fieldSet = new FieldSet; $fieldSet->parameters = [1]; $field = Field::createBasic('repetitions/0/skip', 'random-skip'); @@ -156,8 +144,6 @@ class UpdateControllerTest extends TestCase $field->ignorableFields = ['transactions/0/foreign_currency_code', 'transactions/0/foreign_currency_symbol']; $fieldSet->addField($field); $configuration->addOptionalFieldSet('foreign1', $fieldSet); - - $fieldSet = new FieldSet; $fieldSet->parameters = [1]; $field = Field::createBasic('transactions/0/budget_id', 'random-budget-id'); @@ -186,4 +172,4 @@ class UpdateControllerTest extends TestCase return $configuration->generateAll(); } -} \ No newline at end of file +} diff --git a/tests/Api/Models/Rule/StoreControllerTest.php b/tests/Api/Models/Rule/StoreControllerTest.php index 7d78b2ba6f..65c374c02a 100644 --- a/tests/Api/Models/Rule/StoreControllerTest.php +++ b/tests/Api/Models/Rule/StoreControllerTest.php @@ -19,9 +19,9 @@ * along with this program. If not, see . */ +declare(strict_types=1); + namespace Tests\Api\Models\Rule; - - use Laravel\Passport\Passport; use Log; use Tests\Objects\Field; @@ -116,11 +116,7 @@ class StoreControllerTest extends TestCase $fieldSet = new FieldSet; $fieldSet->addField(Field::createBasic('actions/0/active', 'boolean')); $configuration->addOptionalFieldSet('activeXX', $fieldSet); - - return $configuration->generateAll(); - - } /** @@ -144,4 +140,4 @@ class StoreControllerTest extends TestCase $this->assertPOST($address, $submission); } -} \ No newline at end of file +} diff --git a/tests/Api/Models/Rule/UpdateControllerTest.php b/tests/Api/Models/Rule/UpdateControllerTest.php index df8a76a885..af8b2af25b 100644 --- a/tests/Api/Models/Rule/UpdateControllerTest.php +++ b/tests/Api/Models/Rule/UpdateControllerTest.php @@ -1,4 +1,6 @@ user()); Log::info(sprintf('Now in %s.', get_class($this))); } - - /** * @dataProvider updateDataProvider */ @@ -66,8 +66,6 @@ class UpdateControllerTest extends TestCase $this->assertPUT($route, $submission); } - - /** * @return array */ @@ -165,4 +163,4 @@ class UpdateControllerTest extends TestCase return $configuration->generateAll(); } -} \ No newline at end of file +} diff --git a/tests/Api/Models/RuleGroup/StoreControllerTest.php b/tests/Api/Models/RuleGroup/StoreControllerTest.php index b7cdd263dc..39d140199d 100644 --- a/tests/Api/Models/RuleGroup/StoreControllerTest.php +++ b/tests/Api/Models/RuleGroup/StoreControllerTest.php @@ -19,9 +19,9 @@ * along with this program. If not, see . */ +declare(strict_types=1); + namespace Tests\Api\Models\RuleGroup; - - use Laravel\Passport\Passport; use Log; use Tests\Objects\Field; @@ -112,4 +112,4 @@ class StoreControllerTest extends TestCase $this->assertPOST($address, $submission); } -} \ No newline at end of file +} diff --git a/tests/Api/Models/RuleGroup/UpdateControllerTest.php b/tests/Api/Models/RuleGroup/UpdateControllerTest.php index 341c59cbf6..3cbafb3df2 100644 --- a/tests/Api/Models/RuleGroup/UpdateControllerTest.php +++ b/tests/Api/Models/RuleGroup/UpdateControllerTest.php @@ -19,9 +19,9 @@ * along with this program. If not, see . */ +declare(strict_types=1); + namespace Tests\Api\Models\RuleGroup; - - use Laravel\Passport\Passport; use Log; use Tests\Objects\Field; @@ -47,8 +47,6 @@ class UpdateControllerTest extends TestCase Passport::actingAs($this->user()); Log::info(sprintf('Now in %s.', get_class($this))); } - - /** * @dataProvider updateDataProvider */ @@ -66,8 +64,6 @@ class UpdateControllerTest extends TestCase $route = route('api.v1.rule_groups.update', $submission['parameters']); $this->assertPUT($route, $submission); } - - /** * @return array */ @@ -101,4 +97,4 @@ class UpdateControllerTest extends TestCase return $configuration->generateAll(); } -} \ No newline at end of file +} diff --git a/tests/Api/Models/Tag/StoreControllerTest.php b/tests/Api/Models/Tag/StoreControllerTest.php index ae2bd100e5..f15e632f1b 100644 --- a/tests/Api/Models/Tag/StoreControllerTest.php +++ b/tests/Api/Models/Tag/StoreControllerTest.php @@ -19,9 +19,9 @@ * along with this program. If not, see . */ +declare(strict_types=1); + namespace Tests\Api\Models\Tag; - - use Laravel\Passport\Passport; use Log; use Tests\Objects\Field; @@ -113,4 +113,4 @@ class StoreControllerTest extends TestCase } -} \ No newline at end of file +} diff --git a/tests/Api/Models/Tag/UpdateControllerTest.php b/tests/Api/Models/Tag/UpdateControllerTest.php index b78cfb4439..1db7d84adb 100644 --- a/tests/Api/Models/Tag/UpdateControllerTest.php +++ b/tests/Api/Models/Tag/UpdateControllerTest.php @@ -19,9 +19,9 @@ * along with this program. If not, see . */ +declare(strict_types=1); + namespace Tests\Api\Models\Tag; - - use Laravel\Passport\Passport; use Log; use Tests\Objects\Field; @@ -47,8 +47,6 @@ class UpdateControllerTest extends TestCase Passport::actingAs($this->user()); Log::info(sprintf('Now in %s.', get_class($this))); } - - /** * @dataProvider updateDataProvider */ @@ -66,8 +64,6 @@ class UpdateControllerTest extends TestCase $route = route('api.v1.tags.update', $submission['parameters']); $this->assertPUT($route, $submission); } - - /** * @return array */ @@ -99,4 +95,4 @@ class UpdateControllerTest extends TestCase return $configuration->generateAll(); } -} \ No newline at end of file +} diff --git a/tests/Api/Models/Transaction/StoreControllerTest.php b/tests/Api/Models/Transaction/StoreControllerTest.php index c6b6755727..bc31b52ad0 100644 --- a/tests/Api/Models/Transaction/StoreControllerTest.php +++ b/tests/Api/Models/Transaction/StoreControllerTest.php @@ -19,9 +19,9 @@ * along with this program. If not, see . */ +declare(strict_types=1); + namespace Tests\Api\Models\Transaction; - - use Carbon\Carbon; use Laravel\Passport\Passport; use Log; @@ -104,8 +104,6 @@ class StoreControllerTest extends TestCase $fieldSet = new FieldSet; $fieldSet->addField(Field::createBasic('transactions/0/tags', 'random-tags')); $configuration->addOptionalFieldSet('tags', $fieldSet); - - $array = ['notes', 'internal_reference', 'bunq_payment_id', 'sepa_cc', 'sepa_ct_op', 'sepa_ct_id', 'sepa_db', 'sepa_country', 'sepa_ep', 'sepa_ci', 'sepa_batch_id']; @@ -117,8 +115,6 @@ class StoreControllerTest extends TestCase return $configuration->generateAll(); } - - /** * @param array $submission * @@ -141,4 +137,4 @@ class StoreControllerTest extends TestCase } -} \ No newline at end of file +} diff --git a/tests/Api/Models/Transaction/UpdateControllerTest.php b/tests/Api/Models/Transaction/UpdateControllerTest.php index 58269ee762..924e00a2b2 100644 --- a/tests/Api/Models/Transaction/UpdateControllerTest.php +++ b/tests/Api/Models/Transaction/UpdateControllerTest.php @@ -19,9 +19,9 @@ * along with this program. If not, see . */ +declare(strict_types=1); + namespace Tests\Api\Models\Transaction; - - use Carbon\Carbon; use Laravel\Passport\Passport; use Log; @@ -48,8 +48,6 @@ class UpdateControllerTest extends TestCase Passport::actingAs($this->user()); Log::info(sprintf('Now in %s.', get_class($this))); } - - /** * @dataProvider updateDataProvider * @@ -69,8 +67,6 @@ class UpdateControllerTest extends TestCase $route = route('api.v1.transactions.update', $submission['parameters']); $this->assertPUT($route, $submission); } - - /** * @return array */ @@ -133,8 +129,6 @@ class UpdateControllerTest extends TestCase $field->ignorableFields = ['transactions/0/destination_name', 'transactions/0/destination_iban']; $fieldSet->addField($field); $configuration->addOptionalFieldSet('dest', $fieldSet); - - // optional fields $fieldSet = new FieldSet; $fieldSet->parameters = [1]; @@ -162,8 +156,6 @@ class UpdateControllerTest extends TestCase }; $fieldSet->addField($field); $configuration->addOptionalFieldSet('tags', $fieldSet); - - $array = ['notes', 'internal_reference', 'bunq_payment_id', 'sepa_cc', 'sepa_ct_op', 'sepa_ct_id', 'sepa_db', 'sepa_country', 'sepa_ep', 'sepa_ci', 'sepa_batch_id']; @@ -173,12 +165,8 @@ class UpdateControllerTest extends TestCase $fieldSet->addField(Field::createBasic('transactions/0/' . $value, 'uuid')); $configuration->addOptionalFieldSet($value, $fieldSet); } - - $result = $configuration->generateAll(); return $result; } - - -} \ No newline at end of file +} diff --git a/tests/Api/Models/TransactionCurrency/StoreControllerTest.php b/tests/Api/Models/TransactionCurrency/StoreControllerTest.php index 0920fe8d94..5c2c43a3c9 100644 --- a/tests/Api/Models/TransactionCurrency/StoreControllerTest.php +++ b/tests/Api/Models/TransactionCurrency/StoreControllerTest.php @@ -19,9 +19,9 @@ * along with this program. If not, see . */ +declare(strict_types=1); + namespace Tests\Api\Models\TransactionCurrency; - - use Faker\Factory; use Laravel\Passport\Passport; use Log; @@ -95,8 +95,6 @@ class StoreControllerTest extends TestCase $field = Field::createBasic('decimal_places', 'currency-dp'); $fieldSet->addField($field); $configuration->addOptionalFieldSet('decimal_places', $fieldSet); - - return $configuration->generateAll(); } @@ -122,4 +120,4 @@ class StoreControllerTest extends TestCase $this->assertPOST($address, $submission); } -} \ No newline at end of file +} diff --git a/tests/Api/Models/TransactionCurrency/UpdateControllerTest.php b/tests/Api/Models/TransactionCurrency/UpdateControllerTest.php index 8a36f8bb56..b3f38838c7 100644 --- a/tests/Api/Models/TransactionCurrency/UpdateControllerTest.php +++ b/tests/Api/Models/TransactionCurrency/UpdateControllerTest.php @@ -19,9 +19,9 @@ * along with this program. If not, see . */ +declare(strict_types=1); + namespace Tests\Api\Models\TransactionCurrency; - - use Faker\Factory; use Laravel\Passport\Passport; use Log; @@ -49,8 +49,6 @@ class UpdateControllerTest extends TestCase Passport::actingAs($this->user()); Log::info(sprintf('Now in %s.', get_class($this))); } - - /** * @dataProvider updateDataProvider */ @@ -68,8 +66,6 @@ class UpdateControllerTest extends TestCase $route = route('api.v1.currencies.update', $submission['parameters']); $this->assertPUT($route, $submission); } - - /** * @return array */ @@ -109,12 +105,8 @@ class UpdateControllerTest extends TestCase $fieldSet->parameters = ['RMB']; $fieldSet->addField(Field::createBasic('symbol', 'random-new-currency-code')); $configuration->addOptionalFieldSet('code', $fieldSet); - - return $configuration->generateAll(); } - - /** * @return array */ @@ -168,6 +160,4 @@ class UpdateControllerTest extends TestCase return $set; } - - -} \ No newline at end of file +} diff --git a/tests/Api/Models/TransactionLink/StoreControllerTest.php b/tests/Api/Models/TransactionLink/StoreControllerTest.php index df69c20a8f..cbd9caea40 100644 --- a/tests/Api/Models/TransactionLink/StoreControllerTest.php +++ b/tests/Api/Models/TransactionLink/StoreControllerTest.php @@ -19,9 +19,9 @@ * along with this program. If not, see . */ +declare(strict_types=1); + namespace Tests\Api\Models\TransactionLink; - - use Laravel\Passport\Passport; use Log; use Tests\Objects\Field; @@ -88,8 +88,6 @@ class StoreControllerTest extends TestCase return $configuration->generateAll(); } - - /** * @param array $submission * @@ -109,8 +107,6 @@ class StoreControllerTest extends TestCase // run account store with a minimal data set: $address = route('api.v1.transaction_links.store'); $this->assertPOST($address, $submission); - - } -} \ No newline at end of file +} diff --git a/tests/Api/Models/TransactionLink/UpdateControllerTest.php b/tests/Api/Models/TransactionLink/UpdateControllerTest.php index 4fe4a03d4a..ad69a0664e 100644 --- a/tests/Api/Models/TransactionLink/UpdateControllerTest.php +++ b/tests/Api/Models/TransactionLink/UpdateControllerTest.php @@ -19,9 +19,9 @@ * along with this program. If not, see . */ +declare(strict_types=1); + namespace Tests\Api\Models\TransactionLink; - - use Laravel\Passport\Passport; use Log; use Tests\Objects\Field; @@ -47,8 +47,6 @@ class UpdateControllerTest extends TestCase Passport::actingAs($this->user()); Log::info(sprintf('Now in %s.', get_class($this))); } - - /** * @dataProvider updateDataProvider */ @@ -66,8 +64,6 @@ class UpdateControllerTest extends TestCase $route = route('api.v1.transaction_links.update', $submission['parameters']); $this->assertPUT($route, $submission); } - - /** * @return array */ @@ -107,11 +103,7 @@ class UpdateControllerTest extends TestCase $fieldSet->parameters = [1]; $fieldSet->addField(Field::createBasic('notes', 'uuid')); $configuration->addOptionalFieldSet('notes', $fieldSet); - - return $configuration->generateAll(); } - - -} \ No newline at end of file +} diff --git a/tests/Api/Models/TransactionLinkType/StoreControllerTest.php b/tests/Api/Models/TransactionLinkType/StoreControllerTest.php index 5625d3a23d..723563aaa4 100644 --- a/tests/Api/Models/TransactionLinkType/StoreControllerTest.php +++ b/tests/Api/Models/TransactionLinkType/StoreControllerTest.php @@ -19,9 +19,9 @@ * along with this program. If not, see . */ +declare(strict_types=1); + namespace Tests\Api\Models\TransactionLinkType; - - use Laravel\Passport\Passport; use Log; use Tests\Objects\Field; @@ -72,8 +72,6 @@ class StoreControllerTest extends TestCase $defaultSet->addField(Field::createBasic('inward', 'uuid')); $defaultSet->addField(Field::createBasic('outward', 'uuid')); $configuration->addMandatoryFieldSet($defaultSet); - - return $configuration->generateAll(); } @@ -99,4 +97,4 @@ class StoreControllerTest extends TestCase $this->assertPOST($address, $submission); } -} \ No newline at end of file +} diff --git a/tests/Api/Models/TransactionLinkType/UpdateControllerTest.php b/tests/Api/Models/TransactionLinkType/UpdateControllerTest.php index db05c7e4f6..ef70ce3568 100644 --- a/tests/Api/Models/TransactionLinkType/UpdateControllerTest.php +++ b/tests/Api/Models/TransactionLinkType/UpdateControllerTest.php @@ -19,9 +19,9 @@ * along with this program. If not, see . */ +declare(strict_types=1); + namespace Tests\Api\Models\TransactionLinkType; - - use Laravel\Passport\Passport; use Log; use Tests\Objects\Field; @@ -47,8 +47,6 @@ class UpdateControllerTest extends TestCase Passport::actingAs($this->user()); Log::info(sprintf('Now in %s.', get_class($this))); } - - /** * @dataProvider updateDataProvider */ @@ -66,8 +64,6 @@ class UpdateControllerTest extends TestCase $route = route('api.v1.link_types.update', $submission['parameters']); $this->assertPUT($route, $submission); } - - /** * @return array */ @@ -93,4 +89,4 @@ class UpdateControllerTest extends TestCase return $configuration->generateAll(); } -} \ No newline at end of file +} diff --git a/tests/Api/Webhook/StoreControllerTest.php b/tests/Api/Webhook/StoreControllerTest.php index cfbdf53b22..15af7df56f 100644 --- a/tests/Api/Webhook/StoreControllerTest.php +++ b/tests/Api/Webhook/StoreControllerTest.php @@ -19,9 +19,9 @@ * along with this program. If not, see . */ +declare(strict_types=1); + namespace Tests\Api\Webhook; - - use Laravel\Passport\Passport; use Log; use Tests\Objects\Field; @@ -79,8 +79,6 @@ class StoreControllerTest extends TestCase $field = Field::createBasic('active', 'boolean'); $fieldSet->addField($field); $configuration->addOptionalFieldSet('active', $fieldSet); - - return $configuration->generateAll(); } @@ -105,4 +103,4 @@ class StoreControllerTest extends TestCase $this->assertPOST($address, $submission); } -} \ No newline at end of file +} diff --git a/tests/Api/Webhook/UpdateControllerTest.php b/tests/Api/Webhook/UpdateControllerTest.php index 94a423fb70..8d6ba0325c 100644 --- a/tests/Api/Webhook/UpdateControllerTest.php +++ b/tests/Api/Webhook/UpdateControllerTest.php @@ -19,9 +19,9 @@ * along with this program. If not, see . */ +declare(strict_types=1); + namespace Tests\Api\Webhook; - - use Laravel\Passport\Passport; use Log; use Tests\Objects\Field; @@ -47,8 +47,6 @@ class UpdateControllerTest extends TestCase Passport::actingAs($this->user()); Log::info(sprintf('Now in %s.', get_class($this))); } - - /** * @dataProvider updateDataProvider */ @@ -66,8 +64,6 @@ class UpdateControllerTest extends TestCase $route = route('api.v1.webhooks.update', $submission['parameters']); $this->assertPUT($route, $submission); } - - /** * @return array */ @@ -113,6 +109,4 @@ class UpdateControllerTest extends TestCase return $configuration->generateAll(); } - - -} \ No newline at end of file +} diff --git a/tests/Objects/Field.php b/tests/Objects/Field.php index fd50eb2598..87cf250e73 100644 --- a/tests/Objects/Field.php +++ b/tests/Objects/Field.php @@ -1,6 +1,26 @@ . + */ +declare(strict_types=1); namespace Tests\Objects; use Closure; @@ -44,4 +64,4 @@ class Field return $field; } -} \ No newline at end of file +} diff --git a/tests/Objects/FieldSet.php b/tests/Objects/FieldSet.php index 79fc82aef8..45961cb2e2 100644 --- a/tests/Objects/FieldSet.php +++ b/tests/Objects/FieldSet.php @@ -1,6 +1,26 @@ . + */ +declare(strict_types=1); namespace Tests\Objects; /** @@ -35,4 +55,4 @@ class FieldSet $this->fields[$key] = $field; } -} \ No newline at end of file +} diff --git a/tests/Objects/TestConfiguration.php b/tests/Objects/TestConfiguration.php index 740486edbb..3b8feb4188 100644 --- a/tests/Objects/TestConfiguration.php +++ b/tests/Objects/TestConfiguration.php @@ -1,6 +1,26 @@ . + */ +declare(strict_types=1); namespace Tests\Objects; use Faker\Factory; @@ -670,4 +690,4 @@ class TestConfiguration $this->optionalFieldSet = $optionalFieldSet; } -} \ No newline at end of file +} diff --git a/tests/Traits/CollectsValues.php b/tests/Traits/CollectsValues.php index 5403888156..b8a9a14442 100644 --- a/tests/Traits/CollectsValues.php +++ b/tests/Traits/CollectsValues.php @@ -22,8 +22,6 @@ declare(strict_types=1); namespace Tests\Traits; - - use FireflyIII\User; /** diff --git a/tests/Traits/TestHelpers.php b/tests/Traits/TestHelpers.php index a9bf64952e..7f9c43755b 100644 --- a/tests/Traits/TestHelpers.php +++ b/tests/Traits/TestHelpers.php @@ -20,8 +20,6 @@ */ declare(strict_types=1); - - namespace Tests\Traits; use Illuminate\Support\Facades\Log; @@ -31,8 +29,6 @@ use Illuminate\Support\Facades\Log; */ trait TestHelpers { - - /** * @param string $route * @param array $content @@ -100,8 +96,6 @@ trait TestHelpers } } - - /** * @param string $route * @param array $content diff --git a/yarn.lock b/yarn.lock index a8e8424b00..2ea79f9123 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9,25 +9,25 @@ dependencies: "@babel/highlight" "^7.12.13" -"@babel/compat-data@^7.13.0", "@babel/compat-data@^7.13.8": - version "7.13.11" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.13.11.tgz#9c8fe523c206979c9a81b1e12fe50c1254f1aa35" - integrity sha512-BwKEkO+2a67DcFeS3RLl0Z3Gs2OvdXewuWjc1Hfokhb5eQWP9YRYH1/+VrVZvql2CfjOiNGqSAFOYt4lsqTHzg== +"@babel/compat-data@^7.13.0", "@babel/compat-data@^7.13.12", "@babel/compat-data@^7.13.8": + version "7.13.12" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.13.12.tgz#a8a5ccac19c200f9dd49624cac6e19d7be1236a1" + integrity sha512-3eJJ841uKxeV8dcN/2yGEUy+RfgQspPEgQat85umsE1rotuquQ2AbIub4S6j7c50a2d+4myc+zSlnXeIHrOnhQ== "@babel/core@^7.12.3": - version "7.13.10" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.13.10.tgz#07de050bbd8193fcd8a3c27918c0890613a94559" - integrity sha512-bfIYcT0BdKeAZrovpMqX2Mx5NrgAckGbwT982AkdS5GNfn3KMGiprlBAtmBcFZRUmpaufS6WZFP8trvx8ptFDw== + version "7.13.13" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.13.13.tgz#bc44c4a2be2288ec4ddf56b66fc718019c76ac29" + integrity sha512-1xEs9jZAyKIouOoCmpsgk/I26PoKyvzQ2ixdRpRzfbcp1fL+ozw7TUgdDgwonbTovqRaTfRh50IXuw4QrWO0GA== dependencies: "@babel/code-frame" "^7.12.13" "@babel/generator" "^7.13.9" - "@babel/helper-compilation-targets" "^7.13.10" - "@babel/helper-module-transforms" "^7.13.0" + "@babel/helper-compilation-targets" "^7.13.13" + "@babel/helper-module-transforms" "^7.13.12" "@babel/helpers" "^7.13.10" - "@babel/parser" "^7.13.10" + "@babel/parser" "^7.13.13" "@babel/template" "^7.12.13" - "@babel/traverse" "^7.13.0" - "@babel/types" "^7.13.0" + "@babel/traverse" "^7.13.13" + "@babel/types" "^7.13.13" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.2" @@ -36,7 +36,7 @@ semver "^6.3.0" source-map "^0.5.0" -"@babel/generator@^7.13.0", "@babel/generator@^7.13.9": +"@babel/generator@^7.13.9": version "7.13.9" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.13.9.tgz#3a7aa96f9efb8e2be42d38d80e2ceb4c64d8de39" integrity sha512-mHOOmY0Axl/JCTkxTU6Lf5sWOg/v8nUa+Xkt4zMTftX0wqmb6Sh7J8gvcehBw7q0AhrhAR+FDacKjCZ2X8K+Sw== @@ -60,12 +60,12 @@ "@babel/helper-explode-assignable-expression" "^7.12.13" "@babel/types" "^7.12.13" -"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.13.10", "@babel/helper-compilation-targets@^7.13.8": - version "7.13.10" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.10.tgz#1310a1678cb8427c07a753750da4f8ce442bdd0c" - integrity sha512-/Xju7Qg1GQO4mHZ/Kcs6Au7gfafgZnwm+a7sy/ow/tV1sHeraRUHbjdat8/UvDor4Tez+siGKDk6zIKtCPKVJA== +"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.13.10", "@babel/helper-compilation-targets@^7.13.13", "@babel/helper-compilation-targets@^7.13.8": + version "7.13.13" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.13.tgz#2b2972a0926474853f41e4adbc69338f520600e5" + integrity sha512-q1kcdHNZehBwD9jYPh3WyXcsFERi39X4I59I3NadciWtNDyZ6x+GboOxncFK0kXlKIv6BJm5acncehXWUjWQMQ== dependencies: - "@babel/compat-data" "^7.13.8" + "@babel/compat-data" "^7.13.12" "@babel/helper-validator-option" "^7.12.17" browserslist "^4.14.5" semver "^6.3.0" @@ -134,34 +134,33 @@ "@babel/traverse" "^7.13.0" "@babel/types" "^7.13.0" -"@babel/helper-member-expression-to-functions@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.13.0.tgz#6aa4bb678e0f8c22f58cdb79451d30494461b091" - integrity sha512-yvRf8Ivk62JwisqV1rFRMxiSMDGnN6KH1/mDMmIrij4jztpQNRoHqqMG3U6apYbGRPJpgPalhva9Yd06HlUxJQ== +"@babel/helper-member-expression-to-functions@^7.13.0", "@babel/helper-member-expression-to-functions@^7.13.12": + version "7.13.12" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.13.12.tgz#dfe368f26d426a07299d8d6513821768216e6d72" + integrity sha512-48ql1CLL59aKbU94Y88Xgb2VFy7a95ykGRbJJaaVv+LX5U8wFpLfiGXJJGUozsmA1oEh/o5Bp60Voq7ACyA/Sw== dependencies: - "@babel/types" "^7.13.0" + "@babel/types" "^7.13.12" -"@babel/helper-module-imports@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.12.13.tgz#ec67e4404f41750463e455cc3203f6a32e93fcb0" - integrity sha512-NGmfvRp9Rqxy0uHSSVP+SRIW1q31a7Ji10cLBcqSDUngGentY4FRiHOFZFE1CLU5eiL0oE8reH7Tg1y99TDM/g== +"@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.13.12": + version "7.13.12" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.13.12.tgz#c6a369a6f3621cb25da014078684da9196b61977" + integrity sha512-4cVvR2/1B693IuOvSI20xqqa/+bl7lqAMR59R4iu39R9aOX8/JoYY1sFaNvUMyMBGnHdwvJgUrzNLoUZxXypxA== dependencies: - "@babel/types" "^7.12.13" + "@babel/types" "^7.13.12" -"@babel/helper-module-transforms@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.13.0.tgz#42eb4bd8eea68bab46751212c357bfed8b40f6f1" - integrity sha512-Ls8/VBwH577+pw7Ku1QkUWIyRRNHpYlts7+qSqBBFCW3I8QteB9DxfcZ5YJpOwH6Ihe/wn8ch7fMGOP1OhEIvw== +"@babel/helper-module-transforms@^7.13.0", "@babel/helper-module-transforms@^7.13.12": + version "7.13.12" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.13.12.tgz#600e58350490828d82282631a1422268e982ba96" + integrity sha512-7zVQqMO3V+K4JOOj40kxiCrMf6xlQAkewBB0eu2b03OO/Q21ZutOzjpfD79A5gtE/2OWi1nv625MrDlGlkbknQ== dependencies: - "@babel/helper-module-imports" "^7.12.13" - "@babel/helper-replace-supers" "^7.13.0" - "@babel/helper-simple-access" "^7.12.13" + "@babel/helper-module-imports" "^7.13.12" + "@babel/helper-replace-supers" "^7.13.12" + "@babel/helper-simple-access" "^7.13.12" "@babel/helper-split-export-declaration" "^7.12.13" "@babel/helper-validator-identifier" "^7.12.11" "@babel/template" "^7.12.13" "@babel/traverse" "^7.13.0" - "@babel/types" "^7.13.0" - lodash "^4.17.19" + "@babel/types" "^7.13.12" "@babel/helper-optimise-call-expression@^7.12.13": version "7.12.13" @@ -184,22 +183,22 @@ "@babel/helper-wrap-function" "^7.13.0" "@babel/types" "^7.13.0" -"@babel/helper-replace-supers@^7.12.13", "@babel/helper-replace-supers@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.13.0.tgz#6034b7b51943094cb41627848cb219cb02be1d24" - integrity sha512-Segd5me1+Pz+rmN/NFBOplMbZG3SqRJOBlY+mA0SxAv6rjj7zJqr1AVr3SfzUVTLCv7ZLU5FycOM/SBGuLPbZw== +"@babel/helper-replace-supers@^7.12.13", "@babel/helper-replace-supers@^7.13.0", "@babel/helper-replace-supers@^7.13.12": + version "7.13.12" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.13.12.tgz#6442f4c1ad912502481a564a7386de0c77ff3804" + integrity sha512-Gz1eiX+4yDO8mT+heB94aLVNCL+rbuT2xy4YfyNqu8F+OI6vMvJK891qGBTqL9Uc8wxEvRW92Id6G7sDen3fFw== dependencies: - "@babel/helper-member-expression-to-functions" "^7.13.0" + "@babel/helper-member-expression-to-functions" "^7.13.12" "@babel/helper-optimise-call-expression" "^7.12.13" "@babel/traverse" "^7.13.0" - "@babel/types" "^7.13.0" + "@babel/types" "^7.13.12" -"@babel/helper-simple-access@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.12.13.tgz#8478bcc5cacf6aa1672b251c1d2dde5ccd61a6c4" - integrity sha512-0ski5dyYIHEfwpWGx5GPWhH35j342JaflmCeQmsPWcrOQDtCN6C1zKAVRFVbK53lPW2c9TsuLLSUDf0tIGJ5hA== +"@babel/helper-simple-access@^7.12.13", "@babel/helper-simple-access@^7.13.12": + version "7.13.12" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.13.12.tgz#dd6c538afb61819d205a012c31792a39c7a5eaf6" + integrity sha512-7FEjbrx5SL9cWvXioDbnlYTppcZGuCY6ow3/D5vMggb2Ywgu4dMrpTJX0JdQAIcRRUElOIxF3yEooa9gUb9ZbA== dependencies: - "@babel/types" "^7.12.13" + "@babel/types" "^7.13.12" "@babel/helper-skip-transparent-expression-wrappers@^7.12.1": version "7.12.1" @@ -253,10 +252,19 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.12.13", "@babel/parser@^7.13.0", "@babel/parser@^7.13.10": - version "7.13.11" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.13.11.tgz#f93ebfc99d21c1772afbbaa153f47e7ce2f50b88" - integrity sha512-PhuoqeHoO9fc4ffMEVk4qb/w/s2iOSWohvbHxLtxui0eBg3Lg5gN1U8wp1V1u61hOWkPQJJyJzGH6Y+grwkq8Q== +"@babel/parser@^7.12.13", "@babel/parser@^7.13.13": + version "7.13.13" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.13.13.tgz#42f03862f4aed50461e543270916b47dd501f0df" + integrity sha512-OhsyMrqygfk5v8HmWwOzlYjJrtLaFhF34MrfG/Z73DgYCI6ojNUTUp2TYbtnjo8PegeJp12eamsNettCQjKjVw== + +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.13.12": + version "7.13.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.13.12.tgz#a3484d84d0b549f3fc916b99ee4783f26fabad2a" + integrity sha512-d0u3zWKcoZf379fOeJdr1a5WPDny4aOFZ6hlfKivgK0LY7ZxNfoaHL2fWwdGtHyVvra38FC+HVYkO+byfSA8AQ== + dependencies: + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1" + "@babel/plugin-proposal-optional-chaining" "^7.13.12" "@babel/plugin-proposal-async-generator-functions@^7.13.8": version "7.13.8" @@ -342,10 +350,10 @@ "@babel/helper-plugin-utils" "^7.13.0" "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" -"@babel/plugin-proposal-optional-chaining@^7.13.8": - version "7.13.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.13.8.tgz#e39df93efe7e7e621841babc197982e140e90756" - integrity sha512-hpbBwbTgd7Cz1QryvwJZRo1U0k1q8uyBmeXOSQUjdg/A2TASkhR/rz7AyqZ/kS8kbpsNA80rOYbxySBJAqmhhQ== +"@babel/plugin-proposal-optional-chaining@^7.13.12": + version "7.13.12" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.13.12.tgz#ba9feb601d422e0adea6760c2bd6bbb7bfec4866" + integrity sha512-fcEdKOkIB7Tf4IxrgEVeFC4zeJSTr78no9wTdBuZZbqF64kzllU0ybo2zrzm7gUQfxGhBgq4E39oRs8Zx/RMYQ== dependencies: "@babel/helper-plugin-utils" "^7.13.0" "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1" @@ -712,14 +720,15 @@ "@babel/helper-plugin-utils" "^7.12.13" "@babel/preset-env@^7.12.1": - version "7.13.10" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.13.10.tgz#b5cde31d5fe77ab2a6ab3d453b59041a1b3a5252" - integrity sha512-nOsTScuoRghRtUsRr/c69d042ysfPHcu+KOB4A9aAO9eJYqrkat+LF8G1yp1HD18QiwixT2CisZTr/0b3YZPXQ== + version "7.13.12" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.13.12.tgz#6dff470478290582ac282fb77780eadf32480237" + integrity sha512-JzElc6jk3Ko6zuZgBtjOd01pf9yYDEIH8BcqVuYIuOkzOwDesoa/Nz4gIo4lBG6K861KTV9TvIgmFuT6ytOaAA== dependencies: - "@babel/compat-data" "^7.13.8" + "@babel/compat-data" "^7.13.12" "@babel/helper-compilation-targets" "^7.13.10" "@babel/helper-plugin-utils" "^7.13.0" "@babel/helper-validator-option" "^7.12.17" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.13.12" "@babel/plugin-proposal-async-generator-functions" "^7.13.8" "@babel/plugin-proposal-class-properties" "^7.13.0" "@babel/plugin-proposal-dynamic-import" "^7.13.8" @@ -730,7 +739,7 @@ "@babel/plugin-proposal-numeric-separator" "^7.12.13" "@babel/plugin-proposal-object-rest-spread" "^7.13.8" "@babel/plugin-proposal-optional-catch-binding" "^7.13.8" - "@babel/plugin-proposal-optional-chaining" "^7.13.8" + "@babel/plugin-proposal-optional-chaining" "^7.13.12" "@babel/plugin-proposal-private-methods" "^7.13.0" "@babel/plugin-proposal-unicode-property-regex" "^7.12.13" "@babel/plugin-syntax-async-generators" "^7.8.4" @@ -778,7 +787,7 @@ "@babel/plugin-transform-unicode-escapes" "^7.12.13" "@babel/plugin-transform-unicode-regex" "^7.12.13" "@babel/preset-modules" "^0.1.4" - "@babel/types" "^7.13.0" + "@babel/types" "^7.13.12" babel-plugin-polyfill-corejs2 "^0.1.4" babel-plugin-polyfill-corejs3 "^0.1.3" babel-plugin-polyfill-regenerator "^0.1.2" @@ -812,25 +821,24 @@ "@babel/parser" "^7.12.13" "@babel/types" "^7.12.13" -"@babel/traverse@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.13.0.tgz#6d95752475f86ee7ded06536de309a65fc8966cc" - integrity sha512-xys5xi5JEhzC3RzEmSGrs/b3pJW/o87SypZ+G/PhaE7uqVQNv/jlmVIBXuoh5atqQ434LfXV+sf23Oxj0bchJQ== +"@babel/traverse@^7.13.0", "@babel/traverse@^7.13.13": + version "7.13.13" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.13.13.tgz#39aa9c21aab69f74d948a486dd28a2dbdbf5114d" + integrity sha512-CblEcwmXKR6eP43oQGG++0QMTtCjAsa3frUuzHoiIJWpaIIi8dwMyEFUJoXRLxagGqCK+jALRwIO+o3R9p/uUg== dependencies: "@babel/code-frame" "^7.12.13" - "@babel/generator" "^7.13.0" + "@babel/generator" "^7.13.9" "@babel/helper-function-name" "^7.12.13" "@babel/helper-split-export-declaration" "^7.12.13" - "@babel/parser" "^7.13.0" - "@babel/types" "^7.13.0" + "@babel/parser" "^7.13.13" + "@babel/types" "^7.13.13" debug "^4.1.0" globals "^11.1.0" - lodash "^4.17.19" -"@babel/types@^7.12.1", "@babel/types@^7.12.13", "@babel/types@^7.13.0", "@babel/types@^7.4.4": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.13.0.tgz#74424d2816f0171b4100f0ab34e9a374efdf7f80" - integrity sha512-hE+HE8rnG1Z6Wzo+MhaKE5lM5eMx71T4EHJgku2E3xIfaULhDcxiiRxUYgwX8qwP1BBSlag+TdGOt6JAidIZTA== +"@babel/types@^7.12.1", "@babel/types@^7.12.13", "@babel/types@^7.13.0", "@babel/types@^7.13.12", "@babel/types@^7.13.13", "@babel/types@^7.4.4": + version "7.13.13" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.13.13.tgz#dcd8b815b38f537a3697ce84c8e3cc62197df96f" + integrity sha512-kt+EpC6qDfIaqlP+DIbIJOclYy/A1YXs9dAf/ljbi+39Bcbc073H6jKVpXEr/EoIh5anGn5xq/yRVzKl+uIc9w== dependencies: "@babel/helper-validator-identifier" "^7.12.11" lodash "^4.17.19" @@ -955,7 +963,12 @@ "@types/estree" "*" "@types/json-schema" "*" -"@types/estree@*", "@types/estree@^0.0.46": +"@types/estree@*": + version "0.0.47" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.47.tgz#d7a51db20f0650efec24cd04994f523d93172ed4" + integrity sha512-c5ciR06jK8u9BstrmJyO97m+klJrrhCf9u3rLu3DEAJBirxRqSCvDQoYKmxuYwQI5SZChAWu+tq9oVlGRuzPAg== + +"@types/estree@^0.0.46": version "0.0.46" resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.46.tgz#0fb6bfbbeabd7a30880504993369c4bf1deab1fe" integrity sha512-laIjwTQaD+5DukBZaygQ79K1Z0jb1bPEMRrkXSLjtCcZm+abyp5YbrqpSLzD42FwWW6gK/aS4NYpJ804nG2brg== @@ -1029,14 +1042,14 @@ integrity sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw== "@types/minimatch@*": - version "3.0.3" - resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" - integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== + version "3.0.4" + resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.4.tgz#f0ec25dbf2f0e4b18647313ac031134ca5b24b21" + integrity sha512-1z8k4wzFnNjVK/tlxvrWuK5WMt6mydWWP7+zvH5eFep4oj+UkrfiJTRtjCeBXNpwaA/FYqqtb4/QS4ianFpIRA== "@types/node@*": - version "14.14.35" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.35.tgz#42c953a4e2b18ab931f72477e7012172f4ffa313" - integrity sha512-Lt+wj8NVPx0zUmUwumiVXapmaLUcAk3yPuHCFVXras9k5VT9TdhJqKqGVUQCD60OTMCl0qxJ57OiTL0Mic3Iag== + version "14.14.37" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.37.tgz#a3dd8da4eb84a996c36e331df98d82abd76b516e" + integrity sha512-XYmBiy+ohOR4Lh5jE379fV2IU+6Jn4g5qASinhitfyO71b/sCo6MKsMLF5tc7Zf2CE8hViVQyYSobJNke8OvUw== "@types/parse-glob@*": version "3.0.29" @@ -1208,22 +1221,22 @@ "@webassemblyjs/ast" "1.11.0" "@xtuc/long" "4.2.2" -"@webpack-cli/configtest@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@webpack-cli/configtest/-/configtest-1.0.1.tgz#241aecfbdc715eee96bed447ed402e12ec171935" - integrity sha512-B+4uBUYhpzDXmwuo3V9yBH6cISwxEI4J+NO5ggDaGEEHb0osY/R7MzeKc0bHURXQuZjMM4qD+bSJCKIuI3eNBQ== +"@webpack-cli/configtest@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@webpack-cli/configtest/-/configtest-1.0.2.tgz#2a20812bfb3a2ebb0b27ee26a52eeb3e3f000836" + integrity sha512-3OBzV2fBGZ5TBfdW50cha1lHDVf9vlvRXnjpVbJBa20pSZQaSkMJZiwA8V2vD9ogyeXn8nU5s5A6mHyf5jhMzA== -"@webpack-cli/info@^1.2.2": - version "1.2.2" - resolved "https://registry.yarnpkg.com/@webpack-cli/info/-/info-1.2.2.tgz#ef3c0cd947a1fa083e174a59cb74e0b6195c236c" - integrity sha512-5U9kUJHnwU+FhKH4PWGZuBC1hTEPYyxGSL5jjoBI96Gx8qcYJGOikpiIpFoTq8mmgX3im2zAo2wanv/alD74KQ== +"@webpack-cli/info@^1.2.3": + version "1.2.3" + resolved "https://registry.yarnpkg.com/@webpack-cli/info/-/info-1.2.3.tgz#ef819d10ace2976b6d134c7c823a3e79ee31a92c" + integrity sha512-lLek3/T7u40lTqzCGpC6CAbY6+vXhdhmwFRxZLMnRm6/sIF/7qMpT8MocXCRQfz0JAh63wpbXLMnsQ5162WS7Q== dependencies: envinfo "^7.7.3" -"@webpack-cli/serve@^1.3.0": - version "1.3.0" - resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-1.3.0.tgz#2730c770f5f1f132767c63dcaaa4ec28f8c56a6c" - integrity sha512-k2p2VrONcYVX1wRRrf0f3X2VGltLWcv+JzXRBDmvCxGlCeESx4OXw91TsWeKOkp784uNoVQo313vxJFHXPPwfw== +"@webpack-cli/serve@^1.3.1": + version "1.3.1" + resolved "https://registry.yarnpkg.com/@webpack-cli/serve/-/serve-1.3.1.tgz#911d1b3ff4a843304b9c3bacf67bb34672418441" + integrity sha512-0qXvpeYO6vaNoRBI52/UsbcaBydJCggoBBnIo/ovQQdn6fug0BgwsjorV1hVS7fMqGVTZGcVxv8334gjmbj5hw== "@xtuc/ieee754@^1.2.0": version "1.2.0" @@ -1282,13 +1295,13 @@ ansi-colors@^4.1.1: integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== ansi-escapes@^4.3.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.1.tgz#a5c47cc43181f1f38ffd7076837700d395522a61" - integrity sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA== + version "4.3.2" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" + integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== dependencies: - type-fest "^0.11.0" + type-fest "^0.21.3" -ansi-html@0.0.7: +ansi-html@^0.0.7: version "0.0.7" resolved "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e" integrity sha1-gTWEAhliqenm/QOflA0S9WynhZ4= @@ -1816,9 +1829,9 @@ caniuse-api@^3.0.0: lodash.uniq "^4.5.0" caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001181, caniuse-lite@^1.0.30001196: - version "1.0.30001203" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001203.tgz#a7a34df21a387d9deffcd56c000b8cf5ab540580" - integrity sha512-/I9tvnzU/PHMH7wBPrfDMSuecDeUKerjCPX7D0xBbaJZPxoT9m+yYxt0zCTkcijCkjTdim3H56Zm0i5Adxch4w== + version "1.0.30001204" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001204.tgz#256c85709a348ec4d175e847a3b515c66e79f2aa" + integrity sha512-JUdjWpcxfJ9IPamy2f5JaRDCaqJOxDzOSKtbdx4rH9VivMd1vIzoPumsJa9LoMIi4Fx2BV2KZOxWhNkBjaYivQ== chalk@^2.0.0, chalk@^2.4.1, chalk@^2.4.2: version "2.4.2" @@ -1861,7 +1874,7 @@ chokidar@^2.1.2: optionalDependencies: fsevents "^1.2.7" -chokidar@^3.4.3: +chokidar@^3.4.3, chokidar@^3.5.1: version "3.5.1" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.1.tgz#ee9ce7bbebd2b79f49f304799d5468e31e14e68a" integrity sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw== @@ -2034,9 +2047,9 @@ commander@^6.1.0: integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA== commander@^7.0.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-7.1.0.tgz#f2eaecf131f10e36e07d894698226e36ae0eb5ff" - integrity sha512-pRxBna3MJe6HKnBGsDyMv8ETbptw3axEdYHoqNh7gu5oDcew8fs0xnivZGm06Ogk8zGAJ9VX+OPEr2GXEQK4dg== + version "7.2.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" + integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== commondir@^1.0.1: version "1.0.1" @@ -2258,9 +2271,9 @@ css-declaration-sorter@^4.0.1: timsort "^0.3.0" css-loader@^5.0.0: - version "5.1.3" - resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-5.1.3.tgz#87f6fc96816b20debe3cf682f85c7e56a963d0d1" - integrity sha512-CoPZvyh8sLiGARK3gqczpfdedbM74klGWurF2CsNZ2lhNaXdLIUks+3Mfax3WBeRuHoglU+m7KG/+7gY6G4aag== + version "5.2.0" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-5.2.0.tgz#a9ecda190500863673ce4434033710404efbff00" + integrity sha512-MfRo2MjEeLXMlUkeUwN71Vx5oc6EJnx5UQ4Yi9iUtYQvrPtwLUucYptz0hc6n++kdNcyF5olYBS4vPjJDAcLkw== dependencies: camelcase "^6.2.0" cssesc "^3.0.0" @@ -2642,9 +2655,9 @@ ee-first@1.1.1: integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= electron-to-chromium@^1.3.649: - version "1.3.693" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.693.tgz#5089c506a925c31f93fcb173a003a22e341115dd" - integrity sha512-vUdsE8yyeu30RecppQtI+XTz2++LWLVEIYmzeCaCRLSdtKZ2eXqdJcrs85KwLiPOPVc6PELgWyXBsfqIvzGZag== + version "1.3.701" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.701.tgz#5e796ed7ce88cd77bc7bf831cf311ef6b067c389" + integrity sha512-Zd9ofdIMYHYhG1gvnejQDvC/kqSeXQvtXF0yRURGxgwGqDZm9F9Fm3dYFnm5gyuA7xpXfBlzVLN1sz0FjxpKfw== elliptic@^6.5.3: version "6.5.4" @@ -3189,9 +3202,9 @@ globby@^10.0.0: slash "^3.0.0" globby@^11.0.1: - version "11.0.2" - resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.2.tgz#1af538b766a3b540ebfb58a32b2e2d5897321d83" - integrity sha512-2ZThXDvvV8fYFRVIxnrMQBipZQDr7MxKAmQK1vujaj9/7eF0efG7BPUKJ7jP7G5SLF37xKDXvO4S/KKLj/Z0og== + version "11.0.3" + resolved "https://registry.yarnpkg.com/globby/-/globby-11.0.3.tgz#9b1f0cb523e171dd1ad8c7b2a9fb4b644b9593cb" + integrity sha512-ffdmosjA807y7+lA1NM0jELARVmYul/715xiILEjo3hBLPTcirgQNnXECn5g3mtR8TOLCVbkfua1Hpen25/Xcg== dependencies: array-union "^2.1.0" dir-glob "^3.0.1" @@ -3200,7 +3213,7 @@ globby@^11.0.1: merge2 "^1.3.0" slash "^3.0.0" -graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.2, graceful-fs@^4.2.4: +graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.2, graceful-fs@^4.2.4, graceful-fs@^4.2.6: version "4.2.6" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee" integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ== @@ -3215,7 +3228,7 @@ handle-thing@^2.0.0: resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e" integrity sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg== -has-bigints@^1.0.0: +has-bigints@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113" integrity sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA== @@ -3230,7 +3243,7 @@ has-flag@^4.0.0: resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== -has-symbols@^1.0.0, has-symbols@^1.0.1, has-symbols@^1.0.2: +has-symbols@^1.0.1, has-symbols@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423" integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw== @@ -3339,10 +3352,10 @@ html-comment-regex@^1.1.0: resolved "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.2.tgz#97d4688aeb5c81886a364faa0cad1dda14d433a7" integrity sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ== -html-entities@^1.3.1: - version "1.4.0" - resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.4.0.tgz#cfbd1b01d2afaf9adca1b10ae7dffab98c71d2dc" - integrity sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA== +html-entities@^2.1.1: + version "2.3.0" + resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-2.3.0.tgz#83474887115f12d33a7b85f6573c95223c2940a4" + integrity sha512-/XzLX7A79umjBdw7yYw99bk20uj+L1hQINB029One2OCIqtHj0o5F+XMRam1pveHF4pEYZyr8RSLYWdhguHrwg== html-loader@^1.3.2: version "1.3.2" @@ -3582,7 +3595,7 @@ ip-regex@^4.0.0: resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-4.3.0.tgz#687275ab0f57fa76978ff8f4dddc8a23d5990db5" integrity sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q== -ip@^1.1.0, ip@^1.1.5: +ip@^1.1.0: version "1.1.5" resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo= @@ -4326,9 +4339,9 @@ mimic-fn@^3.1.0: integrity sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ== mini-css-extract-plugin@^1.1.0: - version "1.3.9" - resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-1.3.9.tgz#47a32132b0fd97a119acd530e8421e8f6ab16d5e" - integrity sha512-Ac4s+xhVbqlyhXS5J/Vh/QXUz3ycXlCqoCPpg0vdfhsIBH9eg/It/9L1r1XhSCH737M1lqcWnMuWL13zcygn5A== + version "1.4.0" + resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-1.4.0.tgz#c8e571c4b6d63afa56c47260343adf623349c473" + integrity sha512-DyQr5DhXXARKZoc4kwvCvD95kh69dUupfuKOmBUqZ4kBTmRaRZcU32lYu3cLd6nEGXhQ1l7LzZ3F/CjItaY6VQ== dependencies: loader-utils "^2.0.0" schema-utils "^3.0.0" @@ -4649,7 +4662,7 @@ onetime@^5.1.2: dependencies: mimic-fn "^2.1.0" -open@^7.3.0: +open@^7.4.2: version "7.4.2" resolved "https://registry.yarnpkg.com/open/-/open-7.4.2.tgz#b8147e26dcf3e426316c730089fd71edd29c2321" integrity sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q== @@ -4719,7 +4732,7 @@ p-pipe@^3.0.0: resolved "https://registry.yarnpkg.com/p-pipe/-/p-pipe-3.1.0.tgz#48b57c922aa2e1af6a6404cb7c6bf0eb9cc8e60e" integrity sha512-08pj8ATpzMR0Y80x50yJHn37NF6vjrqHutASaX5LiH5npS9XPvrUmscd9MF5R4fuYRHOxQR1FfMIlF7AzwoPqw== -p-retry@^4.2.0: +p-retry@^4.4.0: version "4.4.0" resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-4.4.0.tgz#fefc2abe883ca7c91ca0dd25060180438b61ebd4" integrity sha512-gVB/tBsG+3AHI1SyDHRrX6n9ZL0Bcbifps9W9/Bgu3Oyu4/OrAh8SvDzDsvpP0oxfCt3oWNT+0fQ9LyUGwBTLg== @@ -5315,9 +5328,9 @@ querystringify@^2.1.1: integrity sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ== queue-microtask@^1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.2.tgz#abf64491e6ecf0f38a6502403d4cda04f372dfd3" - integrity sha512-dB15eXv3p2jDlbOiNLyMabYg1/sXvppd8DP2J3EOCQ0AkuSXCW2tP7mnVouVLJKgUMY6yP0kcQDVpLCN13h4Xg== + version "1.2.3" + resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" + integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.1.0: version "2.1.0" @@ -5452,9 +5465,9 @@ regjsgen@^0.5.1: integrity sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A== regjsparser@^0.6.4: - version "0.6.7" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.7.tgz#c00164e1e6713c2e3ee641f1701c4b7aa0a7f86c" - integrity sha512-ib77G0uxsA2ovgiYbCVGx4Pv3PSttAx2vIwidqQzbL2U5S4Q+j00HdSAneSBuyVcMvEnTXMjiGgB+DlXozVhpQ== + version "0.6.9" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.9.tgz#b489eef7c9a2ce43727627011429cf833a7183e6" + integrity sha512-ZqbNRz1SNjLAiYuwY0zoXW8Ne675IX5q+YHioAGbCw4X96Mjl2+dcX9B2ciaeyYjViDAfvIjFpQjJgLttTEERQ== dependencies: jsesc "~0.5.0" @@ -5648,9 +5661,9 @@ semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0: integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== semver@^7.3.2, semver@^7.3.4: - version "7.3.4" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.4.tgz#27aaa7d2e4ca76452f98d3add093a72c943edc97" - integrity sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw== + version "7.3.5" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" + integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== dependencies: lru-cache "^6.0.0" @@ -5807,19 +5820,19 @@ snapdragon@^0.8.1: source-map-resolve "^0.5.0" use "^3.1.0" -sockjs-client@1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.5.0.tgz#2f8ff5d4b659e0d092f7aba0b7c386bd2aa20add" - integrity sha512-8Dt3BDi4FYNrCFGTL/HtwVzkARrENdwOUf1ZoW/9p3M8lZdFT35jVdrHza+qgxuG9H3/shR4cuX/X9umUrjP8Q== +sockjs-client@^1.5.0: + version "1.5.1" + resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.5.1.tgz#256908f6d5adfb94dabbdbd02c66362cca0f9ea6" + integrity sha512-VnVAb663fosipI/m6pqRXakEOw7nvd7TUgdr3PlR/8V2I95QIdwT8L4nMxhyU8SmDBHYXU1TOElaKOmKLfYzeQ== dependencies: debug "^3.2.6" eventsource "^1.0.7" faye-websocket "^0.11.3" inherits "^2.0.4" json3 "^3.3.3" - url-parse "^1.4.7" + url-parse "^1.5.1" -sockjs@0.3.21: +sockjs@^0.3.21: version "0.3.21" resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.21.tgz#b34ffb98e796930b60a0cfa11904d6a339a7d417" integrity sha512-DhbPFGpxjc6Z3I+uX07Id5ZO2XwYsWOrYjaSeieES78cq+JaJvVe5q/m1uvjIQhXinhIeCFRH6JgXe+mvVMyXw== @@ -6178,10 +6191,10 @@ tty-browserify@0.0.0: resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" integrity sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY= -type-fest@^0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.11.0.tgz#97abf0872310fed88a5c466b25681576145e33f1" - integrity sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ== +type-fest@^0.21.3: + version "0.21.3" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" + integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== type-is@~1.6.17, type-is@~1.6.18: version "1.6.18" @@ -6200,14 +6213,14 @@ uiv@^1.2: vue-functional-data-merge "^3.0.0" unbox-primitive@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.0.tgz#eeacbc4affa28e9b3d36b5eaeccc50b3251b1d3f" - integrity sha512-P/51NX+JXyxK/aigg1/ZgyccdAxm5K1+n8+tvqSntjOivPt19gvm1VC49RWYetsiub8WViUchdxl/KWHHB0kzA== + version "1.0.1" + resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.1.tgz#085e215625ec3162574dc8859abee78a59b14471" + integrity sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw== dependencies: function-bind "^1.1.1" - has-bigints "^1.0.0" - has-symbols "^1.0.0" - which-boxed-primitive "^1.0.1" + has-bigints "^1.0.1" + has-symbols "^1.0.2" + which-boxed-primitive "^1.0.2" unicode-canonical-property-names-ecmascript@^1.0.4: version "1.0.4" @@ -6292,7 +6305,7 @@ urix@^0.1.0: resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= -url-parse@^1.4.3, url-parse@^1.4.7: +url-parse@^1.4.3, url-parse@^1.5.1: version "1.5.1" resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.1.tgz#d5fa9890af8a5e1f274a2c98376510f6425f6e3b" integrity sha512-HOfCOUJt7iSYzEx/UqgtwKRMC6EU91NFhsCHMv9oM03VJcVo2Qrp8T8kI9D7amFf1cu+/3CEhgb3rF9zL7k85Q== @@ -6400,9 +6413,9 @@ vue-hot-reload-api@^2.3.0: integrity sha512-BXq3jwIagosjgNVae6tkHzzIk6a8MHFtzAdwhnV5VlvPTFxDCvIttgSiHWjdGoTJvXtmRu5HacExfdarRcFhog== vue-i18n@^8.23: - version "8.24.1" - resolved "https://registry.yarnpkg.com/vue-i18n/-/vue-i18n-8.24.1.tgz#c3582bd61bb3a978f00c75e1ac850efc89b3916f" - integrity sha512-iqM+npjvI9SGOAYkw1Od/y4O74gpvn5WOHeb3K125TmDJssvR62tDMMLIasPmKNbePZ1BMZ6d5jOBsrB/cK8Lw== + version "8.24.2" + resolved "https://registry.yarnpkg.com/vue-i18n/-/vue-i18n-8.24.2.tgz#4bfba15a89c0697220b55f787bbcb05a461d5482" + integrity sha512-+TkAPBQw4Cp2bQrSPtPNkhET7XcWYjjDt1UjWYQs+xbT41q5OAl1I3IZyhg0drjn1nlC1K0f8sLVB/nshUcF1Q== vue-loader@^15.9.5: version "15.9.6" @@ -6457,14 +6470,14 @@ wbuf@^1.1.0, wbuf@^1.7.3: minimalistic-assert "^1.0.0" webpack-cli@^4.1.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-4.5.0.tgz#b5213b84adf6e1f5de6391334c9fa53a48850466" - integrity sha512-wXg/ef6Ibstl2f50mnkcHblRPN/P9J4Nlod5Hg9HGFgSeF8rsqDGHJeVe4aR26q9l62TUJi6vmvC2Qz96YJw1Q== + version "4.6.0" + resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-4.6.0.tgz#27ae86bfaec0cf393fcfd58abdc5a229ad32fd16" + integrity sha512-9YV+qTcGMjQFiY7Nb1kmnupvb1x40lfpj8pwdO/bom+sQiP4OBMKjHq29YQrlDWDPZO9r/qWaRRywKaRDKqBTA== dependencies: "@discoveryjs/json-ext" "^0.5.0" - "@webpack-cli/configtest" "^1.0.1" - "@webpack-cli/info" "^1.2.2" - "@webpack-cli/serve" "^1.3.0" + "@webpack-cli/configtest" "^1.0.2" + "@webpack-cli/info" "^1.2.3" + "@webpack-cli/serve" "^1.3.1" colorette "^1.2.1" commander "^7.0.0" enquirer "^2.3.6" @@ -6476,7 +6489,7 @@ webpack-cli@^4.1.0: v8-compile-cache "^2.2.0" webpack-merge "^5.7.3" -webpack-dev-middleware@^4.0.2: +webpack-dev-middleware@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-4.1.0.tgz#f0c1f12ff4cd855b3b5eec89ee0f69bcc5336364" integrity sha512-mpa/FY+DiBu5+r5JUIyTCYWRfkWgyA3/OOE9lwfzV9S70A4vJYLsVRKj5rMFEsezBroy2FmPyQ8oBRVW8QmK1A== @@ -6489,39 +6502,39 @@ webpack-dev-middleware@^4.0.2: schema-utils "^3.0.0" webpack-dev-server@^4.0.0-beta.0: - version "4.0.0-beta.0" - resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-4.0.0-beta.0.tgz#39065e19b0df793314c02cd72474bb54312ebc06" - integrity sha512-mVD4Hn3bsMdcq6qE0y8xvH6KAu9NwS6F0NNgFe+n6gbsTQ7YgffUDydvy2iieyyKjAcBJDT5PZexv9tKv8kTNQ== + version "4.0.0-beta.1" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-4.0.0-beta.1.tgz#6feb4ff7a3bbc6a60f624f74b15065c60a6e864f" + integrity sha512-rPSAfz1VKQDQ2kmRbOamc0mX+T7kfqi9acvHic1YYctHWfKKvtovwLm9sA48GdLiYb8Ynop79zdT3CUoFiT7YQ== dependencies: - ansi-html "0.0.7" + ansi-html "^0.0.7" bonjour "^3.5.0" - chokidar "^3.4.3" + chokidar "^3.5.1" compression "^1.7.4" connect-history-api-fallback "^1.6.0" del "^6.0.0" express "^4.17.1" find-cache-dir "^3.3.1" - graceful-fs "^4.2.4" - html-entities "^1.3.1" + graceful-fs "^4.2.6" + html-entities "^2.1.1" http-proxy-middleware "^1.0.6" internal-ip "^6.2.0" - ip "^1.1.5" + ipaddr.js "^1.9.1" is-absolute-url "^3.0.3" killable "^1.0.1" - open "^7.3.0" - p-retry "^4.2.0" + open "^7.4.2" + p-retry "^4.4.0" portfinder "^1.0.28" schema-utils "^3.0.0" selfsigned "^1.10.8" serve-index "^1.9.1" - sockjs "0.3.21" - sockjs-client "1.5.0" + sockjs "^0.3.21" + sockjs-client "^1.5.0" spdy "^4.0.2" strip-ansi "^6.0.0" url "^0.11.0" util "^0.12.3" - webpack-dev-middleware "^4.0.2" - ws "^7.4.0" + webpack-dev-middleware "^4.1.0" + ws "^7.4.4" webpack-merge@^5.2.0, webpack-merge@^5.7.3: version "5.7.3" @@ -6556,9 +6569,9 @@ webpack-sources@^2.1.1: source-map "^0.6.1" webpack@^5.1.3: - version "5.27.1" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.27.1.tgz#6808fb6e45e35290cdb8ae43c7a10884839a3079" - integrity sha512-rxIDsPZ3Apl3JcqiemiLmWH+hAq04YeOXqvCxNZOnTp8ZgM9NEPtbu4CaMfMEf9KShnx/Ym8uLGmM6P4XnwCoA== + version "5.28.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.28.0.tgz#0de8bcd706186b26da09d4d1e8cbd3e4025a7c2f" + integrity sha512-1xllYVmA4dIvRjHzwELgW4KjIU1fW4PEuEnjsylz7k7H5HgPOctIq7W1jrt3sKH9yG5d72//XWzsHhfoWvsQVg== dependencies: "@types/eslint-scope" "^3.7.0" "@types/estree" "^0.0.46" @@ -6612,7 +6625,7 @@ websocket-extensions@>=0.1.1: resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42" integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg== -which-boxed-primitive@^1.0.1: +which-boxed-primitive@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== @@ -6662,7 +6675,7 @@ wrappy@1: resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= -ws@^7.4.0: +ws@^7.4.4: version "7.4.4" resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.4.tgz#383bc9742cb202292c9077ceab6f6047b17f2d59" integrity sha512-Qm8k8ojNQIMx7S+Zp8u/uHOx7Qazv3Yv4q68MiWWWOJhiwG5W3x7iqmRtJo8xxrciZUY4vRxUTJCKuRnF28ZZw==