mirror of
https://github.com/firefly-iii/firefly-iii.git
synced 2025-10-12 15:35:15 +00:00
Auto commit for release 'develop' on 2024-04-02
This commit is contained in:
@@ -54,9 +54,11 @@ class UpdateController extends Controller
|
||||
);
|
||||
}
|
||||
|
||||
public function useUserGroup(UserGroup $userGroup): JsonResponse {
|
||||
public function useUserGroup(UserGroup $userGroup): JsonResponse
|
||||
{
|
||||
// group validation is already in place, so can just update the user.
|
||||
$this->repository->useUserGroup($userGroup);
|
||||
|
||||
return response()->json([], 204);
|
||||
}
|
||||
|
||||
|
@@ -73,7 +73,7 @@ class CorrectDatabase extends Command
|
||||
// new!
|
||||
'firefly-iii:unify-group-accounts',
|
||||
'firefly-iii:trigger-credit-recalculation',
|
||||
'firefly-iii:migrate-preferences'
|
||||
'firefly-iii:migrate-preferences',
|
||||
];
|
||||
foreach ($commands as $command) {
|
||||
$this->friendlyLine(sprintf('Now executing command "%s"', $command));
|
||||
|
@@ -1,4 +1,6 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
/*
|
||||
* MigratePreferences.php
|
||||
* Copyright (c) 2024 james@firefly-iii.org.
|
||||
@@ -33,7 +35,7 @@ class MigratePreferences extends Command
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $signature = 'firefly-iii:migrate-preferences';
|
||||
protected $signature = 'firefly-iii:migrate-preferences';
|
||||
|
||||
/**
|
||||
* The console command description.
|
||||
@@ -49,26 +51,26 @@ class MigratePreferences extends Command
|
||||
{
|
||||
$items = config('firefly.admin_specific_prefs');
|
||||
$users = User::get();
|
||||
|
||||
/** @var User $user */
|
||||
foreach($users as $user) {
|
||||
foreach ($users as $user) {
|
||||
$count = 0;
|
||||
foreach($items as $item) {
|
||||
foreach ($items as $item) {
|
||||
$preference = Preference::where('name', $item)->where('user_id', $user->id)->first();
|
||||
if(null === $preference) {
|
||||
if (null === $preference) {
|
||||
continue;
|
||||
}
|
||||
if(null !== $preference->user_group_id) {
|
||||
if (null !== $preference->user_group_id) {
|
||||
$preference->user_group_id = $user->user_group_id;
|
||||
$preference->save();
|
||||
$count++;
|
||||
++$count;
|
||||
}
|
||||
}
|
||||
if($count > 0) {
|
||||
if ($count > 0) {
|
||||
$this->info(sprintf('Migrated %d preference(s) for user #%d ("%s").', $count, $user->id, $user->email));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return CommandAlias::SUCCESS;
|
||||
}
|
||||
}
|
||||
|
@@ -41,8 +41,8 @@ class CreateGroupMemberships extends Command
|
||||
use ShowsFriendlyMessages;
|
||||
|
||||
public const string CONFIG_NAME = '560_create_group_memberships';
|
||||
protected $description = 'Update group memberships';
|
||||
protected $signature = 'firefly-iii:create-group-memberships';
|
||||
protected $description = 'Update group memberships';
|
||||
protected $signature = 'firefly-iii:create-group-memberships';
|
||||
|
||||
/**
|
||||
* Execute the console command.
|
||||
@@ -78,19 +78,20 @@ class CreateGroupMemberships extends Command
|
||||
public static function createGroupMembership(User $user): void
|
||||
{
|
||||
// check if membership exists
|
||||
$userGroup = UserGroup::where('title', $user->email)->first();
|
||||
$userGroup = UserGroup::where('title', $user->email)->first();
|
||||
if (null === $userGroup) {
|
||||
$userGroup = UserGroup::create(['title' => $user->email, 'default_administration' => true]);
|
||||
}
|
||||
|
||||
$userRole = UserRole::where('title', UserRoleEnum::OWNER->value)->first();
|
||||
$userRole = UserRole::where('title', UserRoleEnum::OWNER->value)->first();
|
||||
|
||||
if (null === $userRole) {
|
||||
throw new FireflyException('Firefly III could not find a user role. Please make sure all migrations have run.');
|
||||
}
|
||||
$membership = GroupMembership::where('user_id', $user->id)
|
||||
->where('user_group_id', $userGroup->id)
|
||||
->where('user_role_id', $userRole->id)->first();
|
||||
->where('user_group_id', $userGroup->id)
|
||||
->where('user_role_id', $userRole->id)->first()
|
||||
;
|
||||
if (null === $membership) {
|
||||
GroupMembership::create(
|
||||
[
|
||||
@@ -105,5 +106,4 @@ class CreateGroupMemberships extends Command
|
||||
$user->save();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -66,14 +66,14 @@ class PreferencesController extends Controller
|
||||
*/
|
||||
public function index(AccountRepositoryInterface $repository)
|
||||
{
|
||||
$accounts = $repository->getAccountsByType([AccountType::DEFAULT, AccountType::ASSET, AccountType::LOAN, AccountType::DEBT, AccountType::MORTGAGE]);
|
||||
$isDocker = env('IS_DOCKER', false);
|
||||
$groupedAccounts = [];
|
||||
$accounts = $repository->getAccountsByType([AccountType::DEFAULT, AccountType::ASSET, AccountType::LOAN, AccountType::DEBT, AccountType::MORTGAGE]);
|
||||
$isDocker = env('IS_DOCKER', false);
|
||||
$groupedAccounts = [];
|
||||
|
||||
/** @var Account $account */
|
||||
foreach ($accounts as $account) {
|
||||
$type = $account->accountType->type;
|
||||
$role = sprintf('opt_group_%s', $repository->getMetaValue($account, 'account_role'));
|
||||
$type = $account->accountType->type;
|
||||
$role = sprintf('opt_group_%s', $repository->getMetaValue($account, 'account_role'));
|
||||
|
||||
if (in_array($type, [AccountType::MORTGAGE, AccountType::DEBT, AccountType::LOAN], true)) {
|
||||
$role = sprintf('opt_group_l_%s', $type);
|
||||
@@ -94,23 +94,23 @@ class PreferencesController extends Controller
|
||||
if (!is_array($frontpageAccounts)) {
|
||||
$frontpageAccounts = $accountIds;
|
||||
}
|
||||
$language = app('steam')->getLanguage();
|
||||
$languages = config('firefly.languages');
|
||||
$locale = app('preferences')->get('locale', config('firefly.default_locale', 'equal'))->data;
|
||||
$listPageSize = app('preferences')->get('listPageSize', 50)->data;
|
||||
$darkMode = app('preferences')->get('darkMode', 'browser')->data;
|
||||
$slackUrl = app('preferences')->get('slack_webhook_url', '')->data;
|
||||
$customFiscalYear = app('preferences')->get('customFiscalYear', 0)->data;
|
||||
$fiscalYearStartStr = app('preferences')->get('fiscalYearStart', '01-01')->data;
|
||||
$language = app('steam')->getLanguage();
|
||||
$languages = config('firefly.languages');
|
||||
$locale = app('preferences')->get('locale', config('firefly.default_locale', 'equal'))->data;
|
||||
$listPageSize = app('preferences')->get('listPageSize', 50)->data;
|
||||
$darkMode = app('preferences')->get('darkMode', 'browser')->data;
|
||||
$slackUrl = app('preferences')->get('slack_webhook_url', '')->data;
|
||||
$customFiscalYear = app('preferences')->get('customFiscalYear', 0)->data;
|
||||
$fiscalYearStartStr = app('preferences')->get('fiscalYearStart', '01-01')->data;
|
||||
if (is_array($fiscalYearStartStr)) {
|
||||
$fiscalYearStartStr = '01-01';
|
||||
}
|
||||
$fiscalYearStart = sprintf('%s-%s', date('Y'), (string)$fiscalYearStartStr);
|
||||
$tjOptionalFields = app('preferences')->get('transaction_journal_optional_fields', [])->data;
|
||||
$availableDarkModes = config('firefly.available_dark_modes');
|
||||
$fiscalYearStart = sprintf('%s-%s', date('Y'), (string)$fiscalYearStartStr);
|
||||
$tjOptionalFields = app('preferences')->get('transaction_journal_optional_fields', [])->data;
|
||||
$availableDarkModes = config('firefly.available_dark_modes');
|
||||
|
||||
// notification preferences (single value for each):
|
||||
$notifications = [];
|
||||
$notifications = [];
|
||||
foreach (config('firefly.available_notifications') as $notification) {
|
||||
$notifications[$notification] = app('preferences')->get(sprintf('notification_%s', $notification), true)->data;
|
||||
}
|
||||
@@ -125,7 +125,7 @@ class PreferencesController extends Controller
|
||||
app('log')->error($e->getMessage());
|
||||
$locales = [];
|
||||
}
|
||||
$locales = ['equal' => (string)trans('firefly.equal_to_language')] + $locales;
|
||||
$locales = ['equal' => (string)trans('firefly.equal_to_language')] + $locales;
|
||||
// an important fallback is that the frontPageAccount array gets refilled automatically
|
||||
// when it turns up empty.
|
||||
if (0 === count($frontpageAccounts)) {
|
||||
@@ -164,7 +164,7 @@ class PreferencesController extends Controller
|
||||
}
|
||||
|
||||
// extract notifications:
|
||||
$all = $request->all();
|
||||
$all = $request->all();
|
||||
foreach (config('firefly.available_notifications') as $option) {
|
||||
$key = sprintf('notification_%s', $option);
|
||||
if (array_key_exists($key, $all)) {
|
||||
@@ -194,8 +194,8 @@ class PreferencesController extends Controller
|
||||
}
|
||||
|
||||
// custom fiscal year
|
||||
$customFiscalYear = 1 === (int)$request->get('customFiscalYear');
|
||||
$string = strtotime((string)$request->get('fiscalYearStart'));
|
||||
$customFiscalYear = 1 === (int)$request->get('customFiscalYear');
|
||||
$string = strtotime((string)$request->get('fiscalYearStart'));
|
||||
if (false !== $string) {
|
||||
$fiscalYearStart = date('m-d', $string);
|
||||
app('preferences')->set('customFiscalYear', $customFiscalYear);
|
||||
@@ -204,15 +204,15 @@ class PreferencesController extends Controller
|
||||
|
||||
// save page size:
|
||||
app('preferences')->set('listPageSize', 50);
|
||||
$listPageSize = (int)$request->get('listPageSize');
|
||||
$listPageSize = (int)$request->get('listPageSize');
|
||||
if ($listPageSize > 0 && $listPageSize < 1337) {
|
||||
app('preferences')->set('listPageSize', $listPageSize);
|
||||
}
|
||||
|
||||
// language:
|
||||
/** @var Preference $currentLang */
|
||||
$currentLang = app('preferences')->get('language', 'en_US');
|
||||
$lang = $request->get('language');
|
||||
$currentLang = app('preferences')->get('language', 'en_US');
|
||||
$lang = $request->get('language');
|
||||
if (array_key_exists($lang, config('firefly.languages'))) {
|
||||
app('preferences')->set('language', $lang);
|
||||
}
|
||||
@@ -229,8 +229,8 @@ class PreferencesController extends Controller
|
||||
}
|
||||
|
||||
// optional fields for transactions:
|
||||
$setOptions = $request->get('tj') ?? [];
|
||||
$optionalTj = [
|
||||
$setOptions = $request->get('tj') ?? [];
|
||||
$optionalTj = [
|
||||
'interest_date' => array_key_exists('interest_date', $setOptions),
|
||||
'book_date' => array_key_exists('book_date', $setOptions),
|
||||
'process_date' => array_key_exists('process_date', $setOptions),
|
||||
@@ -247,7 +247,7 @@ class PreferencesController extends Controller
|
||||
app('preferences')->set('transaction_journal_optional_fields', $optionalTj);
|
||||
|
||||
// dark mode
|
||||
$darkMode = $request->get('darkMode') ?? 'browser';
|
||||
$darkMode = $request->get('darkMode') ?? 'browser';
|
||||
if (in_array($darkMode, config('firefly.available_dark_modes'), true)) {
|
||||
app('preferences')->set('darkMode', $darkMode);
|
||||
}
|
||||
|
@@ -54,7 +54,7 @@ use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
|
||||
* @method static Builder|Preference whereUpdatedAt($value)
|
||||
* @method static Builder|Preference whereUserId($value)
|
||||
*
|
||||
* @property mixed $user_group_id
|
||||
* @property mixed $user_group_id
|
||||
*
|
||||
* @mixin Eloquent
|
||||
*/
|
||||
@@ -64,7 +64,7 @@ class Preference extends Model
|
||||
use ReturnsIntegerUserIdTrait;
|
||||
|
||||
protected $casts
|
||||
= [
|
||||
= [
|
||||
'created_at' => 'datetime',
|
||||
'updated_at' => 'datetime',
|
||||
'data' => 'array',
|
||||
@@ -81,15 +81,16 @@ class Preference extends Model
|
||||
{
|
||||
if (auth()->check()) {
|
||||
/** @var User $user */
|
||||
$user = auth()->user();
|
||||
$user = auth()->user();
|
||||
|
||||
// some preferences do not have an administration ID.
|
||||
// some need it, to make sure the correct one is selected.
|
||||
$userGroupId = (int)$user->user_group_id;
|
||||
$userGroupId = $userGroupId === 0 ? null : $userGroupId;
|
||||
/** @var Preference|null $preference */
|
||||
$preference = null;
|
||||
$items = config('firefly.admin_specific_prefs');
|
||||
$userGroupId = 0 === $userGroupId ? null : $userGroupId;
|
||||
|
||||
/** @var null|Preference $preference */
|
||||
$preference = null;
|
||||
$items = config('firefly.admin_specific_prefs');
|
||||
if (null !== $userGroupId && in_array($value, $items, true)) {
|
||||
// find a preference with a specific user_group_id
|
||||
$preference = $user->preferences()->where('user_group_id', $userGroupId)->where('name', $value)->first();
|
||||
@@ -106,7 +107,7 @@ class Preference extends Model
|
||||
if (null !== $preference) {
|
||||
return $preference;
|
||||
}
|
||||
$default = config('firefly.default_preferences');
|
||||
$default = config('firefly.default_preferences');
|
||||
if (array_key_exists($value, $default)) {
|
||||
$preference = new self();
|
||||
$preference->name = $value;
|
||||
|
@@ -289,7 +289,8 @@ class UserGroupRepository implements UserGroupRepositoryInterface
|
||||
return $roles;
|
||||
}
|
||||
|
||||
#[\Override] public function useUserGroup(UserGroup $userGroup): void
|
||||
#[\Override]
|
||||
public function useUserGroup(UserGroup $userGroup): void
|
||||
{
|
||||
$this->user->user_group_id = $userGroup->id;
|
||||
$this->user->save();
|
||||
|
@@ -24,12 +24,9 @@ declare(strict_types=1);
|
||||
|
||||
namespace FireflyIII\Rules;
|
||||
|
||||
use FireflyIII\Models\TransactionType;
|
||||
use FireflyIII\Models\UserGroup;
|
||||
use FireflyIII\Repositories\User\UserRepositoryInterface;
|
||||
use FireflyIII\Repositories\UserGroup\UserGroupRepositoryInterface;
|
||||
use FireflyIII\User;
|
||||
use FireflyIII\Validation\AccountValidator;
|
||||
use Illuminate\Contracts\Validation\ValidationRule;
|
||||
|
||||
/**
|
||||
@@ -38,8 +35,10 @@ use Illuminate\Contracts\Validation\ValidationRule;
|
||||
class IsDefaultUserGroupName implements ValidationRule
|
||||
{
|
||||
private UserGroup $userGroup;
|
||||
public function __construct(UserGroup $userGroup) {
|
||||
$this->userGroup =$userGroup;
|
||||
|
||||
public function __construct(UserGroup $userGroup)
|
||||
{
|
||||
$this->userGroup = $userGroup;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -51,12 +50,13 @@ class IsDefaultUserGroupName implements ValidationRule
|
||||
|
||||
// are you owner of this group and the name is the same? fail.
|
||||
/** @var User $user */
|
||||
$user = auth()->user();
|
||||
$user = auth()->user();
|
||||
|
||||
/** @var UserRepositoryInterface $userRepos */
|
||||
$userRepos = app(UserRepositoryInterface::class);
|
||||
|
||||
$roles = $userRepos->getRolesInGroup($user, $this->userGroup->id);
|
||||
if($this->userGroup->title === $user->email && in_array('owner', $roles, true)) {
|
||||
$roles = $userRepos->getRolesInGroup($user, $this->userGroup->id);
|
||||
if ($this->userGroup->title === $user->email && in_array('owner', $roles, true)) {
|
||||
$fail('validation.administration_owner_rename')->translate();
|
||||
}
|
||||
}
|
||||
|
@@ -44,14 +44,15 @@ class Preferences
|
||||
}
|
||||
|
||||
return Preference::where('user_id', $user->id)
|
||||
->where(function (Builder $q) use ($user) {
|
||||
$q->whereNull('user_group_id');
|
||||
$q->orWhere('user_group_id', $user->user_group_id);
|
||||
})
|
||||
->get();
|
||||
->where(function (Builder $q) use ($user): void {
|
||||
$q->whereNull('user_group_id');
|
||||
$q->orWhere('user_group_id', $user->user_group_id);
|
||||
})
|
||||
->get()
|
||||
;
|
||||
}
|
||||
|
||||
public function get(string $name, null | array | bool | int | string $default = null): ?Preference
|
||||
public function get(string $name, null|array|bool|int|string $default = null): ?Preference
|
||||
{
|
||||
/** @var null|User $user */
|
||||
$user = auth()->user();
|
||||
@@ -65,11 +66,11 @@ class Preferences
|
||||
return $this->getForUser($user, $name, $default);
|
||||
}
|
||||
|
||||
public function getForUser(User $user, string $name, null | array | bool | int | string $default = null): ?Preference
|
||||
public function getForUser(User $user, string $name, null|array|bool|int|string $default = null): ?Preference
|
||||
{
|
||||
// don't care about user group ID, except for some specific preferences.
|
||||
$userGroupId = $this->getUserGroupId($user, $name);
|
||||
$preference = Preference::where('user_group_id', $userGroupId)->where('user_id', $user->id)->where('name', $name)->first(['id', 'user_id', 'name', 'data', 'updated_at', 'created_at']);
|
||||
$preference = Preference::where('user_group_id', $userGroupId)->where('user_id', $user->id)->where('name', $name)->first(['id', 'user_id', 'name', 'data', 'updated_at', 'created_at']);
|
||||
|
||||
if (null !== $preference && null === $preference->data) {
|
||||
$preference->delete();
|
||||
@@ -106,14 +107,14 @@ class Preferences
|
||||
Cache::put($key, '', 5);
|
||||
}
|
||||
|
||||
public function setForUser(User $user, string $name, null | array | bool | int | string $value): Preference
|
||||
public function setForUser(User $user, string $name, null|array|bool|int|string $value): Preference
|
||||
{
|
||||
$fullName = sprintf('preference%s%s', $user->id, $name);
|
||||
$groupId = $this->getUserGroupId($user, $name);
|
||||
$fullName = sprintf('preference%s%s', $user->id, $name);
|
||||
$groupId = $this->getUserGroupId($user, $name);
|
||||
Cache::forget($fullName);
|
||||
|
||||
/** @var null|Preference $pref */
|
||||
$pref = Preference::where('user_group_id', $groupId)->where('user_id', $user->id)->where('name', $name)->first(['id', 'name', 'data', 'updated_at', 'created_at']);
|
||||
$pref = Preference::where('user_group_id', $groupId)->where('user_id', $user->id)->where('name', $name)->first(['id', 'name', 'data', 'updated_at', 'created_at']);
|
||||
|
||||
if (null !== $pref && null === $value) {
|
||||
$pref->delete();
|
||||
@@ -138,7 +139,7 @@ class Preferences
|
||||
|
||||
public function beginsWith(User $user, string $search): Collection
|
||||
{
|
||||
return Preference::where('user_id', $user->id)->where('name', 'LIKE', $search . '%')->get();
|
||||
return Preference::where('user_id', $user->id)->where('name', 'LIKE', $search.'%')->get();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -152,14 +153,14 @@ class Preferences
|
||||
public function getArrayForUser(User $user, array $list): array
|
||||
{
|
||||
$result = [];
|
||||
$preferences = Preference
|
||||
::where('user_id', $user->id)
|
||||
->where(function (Builder $q) use ($user) {
|
||||
$preferences = Preference::where('user_id', $user->id)
|
||||
->where(function (Builder $q) use ($user): void {
|
||||
$q->whereNull('user_group_id');
|
||||
$q->orWhere('user_group_id', $user->user_group_id);
|
||||
})
|
||||
->whereIn('name', $list)
|
||||
->get(['id', 'name', 'data']);
|
||||
->get(['id', 'name', 'data'])
|
||||
;
|
||||
|
||||
/** @var Preference $preference */
|
||||
foreach ($preferences as $preference) {
|
||||
@@ -174,7 +175,7 @@ class Preferences
|
||||
return $result;
|
||||
}
|
||||
|
||||
public function getFresh(string $name, null | array | bool | int | string $default = null): ?Preference
|
||||
public function getFresh(string $name, null|array|bool|int|string $default = null): ?Preference
|
||||
{
|
||||
/** @var null|User $user */
|
||||
$user = auth()->user();
|
||||
@@ -212,7 +213,7 @@ class Preferences
|
||||
Session::forget('first');
|
||||
}
|
||||
|
||||
public function set(string $name, null | array | bool | int | string $value): Preference
|
||||
public function set(string $name, null|array|bool|int|string $value): Preference
|
||||
{
|
||||
/** @var User $user */
|
||||
$user = auth()->user();
|
||||
@@ -235,6 +236,7 @@ class Preferences
|
||||
if (in_array($preferenceName, $items, true)) {
|
||||
$groupId = (int)$user->user_group_id;
|
||||
}
|
||||
|
||||
return $groupId;
|
||||
}
|
||||
}
|
||||
|
@@ -35,7 +35,8 @@ class PreferenceTransformer extends AbstractTransformer
|
||||
*/
|
||||
public function transform(Preference $preference): array
|
||||
{
|
||||
$userGroupId = $preference->user_group_id === 0 ? null : $preference->user_group_id;
|
||||
$userGroupId = 0 === $preference->user_group_id ? null : $preference->user_group_id;
|
||||
|
||||
return [
|
||||
'id' => $preference->id,
|
||||
'created_at' => $preference->created_at->toAtomString(),
|
||||
|
36
composer.lock
generated
36
composer.lock
generated
@@ -8897,23 +8897,23 @@
|
||||
"packages-dev": [
|
||||
{
|
||||
"name": "barryvdh/laravel-debugbar",
|
||||
"version": "v3.12.4",
|
||||
"version": "v3.13.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/barryvdh/laravel-debugbar.git",
|
||||
"reference": "e7a9a217512d8f1d07448fd241ce2ac0922ddc2c"
|
||||
"reference": "354a42f3e0b083cdd6f9da5a9d1c0c63b074547a"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/barryvdh/laravel-debugbar/zipball/e7a9a217512d8f1d07448fd241ce2ac0922ddc2c",
|
||||
"reference": "e7a9a217512d8f1d07448fd241ce2ac0922ddc2c",
|
||||
"url": "https://api.github.com/repos/barryvdh/laravel-debugbar/zipball/354a42f3e0b083cdd6f9da5a9d1c0c63b074547a",
|
||||
"reference": "354a42f3e0b083cdd6f9da5a9d1c0c63b074547a",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"illuminate/routing": "^9|^10|^11",
|
||||
"illuminate/session": "^9|^10|^11",
|
||||
"illuminate/support": "^9|^10|^11",
|
||||
"maximebf/debugbar": "~1.21.0",
|
||||
"maximebf/debugbar": "~1.22.0",
|
||||
"php": "^8.0",
|
||||
"symfony/finder": "^6|^7"
|
||||
},
|
||||
@@ -8926,7 +8926,7 @@
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "3.10-dev"
|
||||
"dev-master": "3.13-dev"
|
||||
},
|
||||
"laravel": {
|
||||
"providers": [
|
||||
@@ -8965,7 +8965,7 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/barryvdh/laravel-debugbar/issues",
|
||||
"source": "https://github.com/barryvdh/laravel-debugbar/tree/v3.12.4"
|
||||
"source": "https://github.com/barryvdh/laravel-debugbar/tree/v3.13.0"
|
||||
},
|
||||
"funding": [
|
||||
{
|
||||
@@ -8977,7 +8977,7 @@
|
||||
"type": "github"
|
||||
}
|
||||
],
|
||||
"time": "2024-04-01T09:14:15+00:00"
|
||||
"time": "2024-04-01T16:39:30+00:00"
|
||||
},
|
||||
{
|
||||
"name": "barryvdh/laravel-ide-helper",
|
||||
@@ -9606,25 +9606,27 @@
|
||||
},
|
||||
{
|
||||
"name": "maximebf/debugbar",
|
||||
"version": "v1.21.3",
|
||||
"version": "v1.22.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/maximebf/php-debugbar.git",
|
||||
"reference": "0b407703b08ea0cf6ebc61e267cc96ff7000911b"
|
||||
"reference": "d7b6e1dc2dc85c01ed63ab158b00a7f46abdebcc"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/maximebf/php-debugbar/zipball/0b407703b08ea0cf6ebc61e267cc96ff7000911b",
|
||||
"reference": "0b407703b08ea0cf6ebc61e267cc96ff7000911b",
|
||||
"url": "https://api.github.com/repos/maximebf/php-debugbar/zipball/d7b6e1dc2dc85c01ed63ab158b00a7f46abdebcc",
|
||||
"reference": "d7b6e1dc2dc85c01ed63ab158b00a7f46abdebcc",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^7.1|^8",
|
||||
"php": "^7.2|^8",
|
||||
"psr/log": "^1|^2|^3",
|
||||
"symfony/var-dumper": "^4|^5|^6|^7"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": ">=7.5.20 <10.0",
|
||||
"dbrekelmans/bdi": "^1",
|
||||
"phpunit/phpunit": "^8|^9",
|
||||
"symfony/panther": "^1|^2.1",
|
||||
"twig/twig": "^1.38|^2.7|^3.0"
|
||||
},
|
||||
"suggest": {
|
||||
@@ -9635,7 +9637,7 @@
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.21-dev"
|
||||
"dev-master": "1.22-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
@@ -9666,9 +9668,9 @@
|
||||
],
|
||||
"support": {
|
||||
"issues": "https://github.com/maximebf/php-debugbar/issues",
|
||||
"source": "https://github.com/maximebf/php-debugbar/tree/v1.21.3"
|
||||
"source": "https://github.com/maximebf/php-debugbar/tree/v1.22.1"
|
||||
},
|
||||
"time": "2024-03-12T14:23:07+00:00"
|
||||
"time": "2024-04-01T10:44:20+00:00"
|
||||
},
|
||||
{
|
||||
"name": "mockery/mockery",
|
||||
|
@@ -117,7 +117,7 @@ return [
|
||||
'expression_engine' => false,
|
||||
// see cer.php for exchange rates feature flag.
|
||||
],
|
||||
'version' => '6.1.13',
|
||||
'version' => 'develop/2024-04-02',
|
||||
'api_version' => '2.0.13',
|
||||
'db_version' => 24,
|
||||
|
||||
@@ -437,7 +437,7 @@ return [
|
||||
'transfers' => 'fa-exchange',
|
||||
],
|
||||
|
||||
'bindables' => [
|
||||
'bindables' => [
|
||||
// models
|
||||
'account' => Account::class,
|
||||
'attachment' => Attachment::class,
|
||||
@@ -495,7 +495,7 @@ return [
|
||||
'userGroupBill' => UserGroupBill::class,
|
||||
'userGroup' => UserGroup::class,
|
||||
],
|
||||
'rule-actions' => [
|
||||
'rule-actions' => [
|
||||
'set_category' => SetCategory::class,
|
||||
'clear_category' => ClearCategory::class,
|
||||
'set_budget' => SetBudget::class,
|
||||
@@ -529,7 +529,7 @@ return [
|
||||
// 'set_foreign_amount' => SetForeignAmount::class,
|
||||
// 'set_foreign_currency' => SetForeignCurrency::class,
|
||||
],
|
||||
'context-rule-actions' => [
|
||||
'context-rule-actions' => [
|
||||
'set_category',
|
||||
'set_budget',
|
||||
'add_tag',
|
||||
@@ -548,13 +548,13 @@ return [
|
||||
'convert_transfer',
|
||||
],
|
||||
|
||||
'test-triggers' => [
|
||||
'test-triggers' => [
|
||||
'limit' => 10,
|
||||
'range' => 200,
|
||||
],
|
||||
|
||||
// expected source types for each transaction type, in order of preference.
|
||||
'expected_source_types' => [
|
||||
'expected_source_types' => [
|
||||
'source' => [
|
||||
TransactionTypeModel::WITHDRAWAL => [AccountType::ASSET, AccountType::LOAN, AccountType::DEBT, AccountType::MORTGAGE],
|
||||
TransactionTypeEnum::DEPOSIT->value => [AccountType::LOAN, AccountType::DEBT, AccountType::MORTGAGE, AccountType::REVENUE, AccountType::CASH],
|
||||
@@ -599,7 +599,7 @@ return [
|
||||
TransactionTypeModel::LIABILITY_CREDIT => [AccountType::LIABILITY_CREDIT, AccountType::LOAN, AccountType::DEBT, AccountType::MORTGAGE],
|
||||
],
|
||||
],
|
||||
'allowed_opposing_types' => [
|
||||
'allowed_opposing_types' => [
|
||||
'source' => [
|
||||
AccountType::ASSET => [
|
||||
AccountType::ASSET,
|
||||
@@ -689,7 +689,7 @@ return [
|
||||
],
|
||||
],
|
||||
// depending on the account type, return the allowed transaction types:
|
||||
'allowed_transaction_types' => [
|
||||
'allowed_transaction_types' => [
|
||||
'source' => [
|
||||
AccountType::ASSET => [
|
||||
TransactionTypeModel::WITHDRAWAL,
|
||||
@@ -758,7 +758,7 @@ return [
|
||||
],
|
||||
|
||||
// having the source + dest will tell you the transaction type.
|
||||
'account_to_transaction' => [
|
||||
'account_to_transaction' => [
|
||||
AccountType::ASSET => [
|
||||
AccountType::ASSET => TransactionTypeModel::TRANSFER,
|
||||
AccountType::CASH => TransactionTypeModel::WITHDRAWAL,
|
||||
@@ -823,7 +823,7 @@ return [
|
||||
],
|
||||
|
||||
// allowed source -> destination accounts.
|
||||
'source_dests' => [
|
||||
'source_dests' => [
|
||||
TransactionTypeModel::WITHDRAWAL => [
|
||||
AccountType::ASSET => [AccountType::EXPENSE, AccountType::LOAN, AccountType::DEBT, AccountType::MORTGAGE, AccountType::CASH],
|
||||
AccountType::LOAN => [AccountType::EXPENSE, AccountType::CASH],
|
||||
@@ -862,7 +862,7 @@ return [
|
||||
],
|
||||
],
|
||||
// if you add fields to this array, don't forget to update the export routine (ExportDataGenerator).
|
||||
'journal_meta_fields' => [
|
||||
'journal_meta_fields' => [
|
||||
// sepa
|
||||
'sepa_cc',
|
||||
'sepa_ct_op',
|
||||
@@ -896,33 +896,33 @@ return [
|
||||
'recurrence_count',
|
||||
'recurrence_date',
|
||||
],
|
||||
'webhooks' => [
|
||||
'webhooks' => [
|
||||
'max_attempts' => env('WEBHOOK_MAX_ATTEMPTS', 3),
|
||||
],
|
||||
'can_have_virtual_amounts' => [AccountType::ASSET],
|
||||
'can_have_opening_balance' => [AccountType::ASSET, AccountType::LOAN, AccountType::DEBT, AccountType::MORTGAGE],
|
||||
'dynamic_creation_allowed' => [
|
||||
'can_have_virtual_amounts' => [AccountType::ASSET],
|
||||
'can_have_opening_balance' => [AccountType::ASSET, AccountType::LOAN, AccountType::DEBT, AccountType::MORTGAGE],
|
||||
'dynamic_creation_allowed' => [
|
||||
AccountType::EXPENSE,
|
||||
AccountType::REVENUE,
|
||||
AccountType::INITIAL_BALANCE,
|
||||
AccountType::RECONCILIATION,
|
||||
AccountType::LIABILITY_CREDIT,
|
||||
],
|
||||
'valid_asset_fields' => ['account_role', 'account_number', 'currency_id', 'BIC', 'include_net_worth'],
|
||||
'valid_cc_fields' => ['account_role', 'cc_monthly_payment_date', 'cc_type', 'account_number', 'currency_id', 'BIC', 'include_net_worth'],
|
||||
'valid_account_fields' => ['account_number', 'currency_id', 'BIC', 'interest', 'interest_period', 'include_net_worth', 'liability_direction'],
|
||||
'valid_asset_fields' => ['account_role', 'account_number', 'currency_id', 'BIC', 'include_net_worth'],
|
||||
'valid_cc_fields' => ['account_role', 'cc_monthly_payment_date', 'cc_type', 'account_number', 'currency_id', 'BIC', 'include_net_worth'],
|
||||
'valid_account_fields' => ['account_number', 'currency_id', 'BIC', 'interest', 'interest_period', 'include_net_worth', 'liability_direction'],
|
||||
|
||||
// dynamic date ranges are as follows:
|
||||
'dynamic_date_ranges' => ['last7', 'last30', 'last90', 'last365', 'MTD', 'QTD', 'YTD'],
|
||||
'dynamic_date_ranges' => ['last7', 'last30', 'last90', 'last365', 'MTD', 'QTD', 'YTD'],
|
||||
|
||||
// only used in v1
|
||||
'allowed_sort_parameters' => ['order', 'name', 'iban'],
|
||||
'allowed_sort_parameters' => ['order', 'name', 'iban'],
|
||||
|
||||
// preselected account lists possibilities:
|
||||
'preselected_accounts' => ['all', 'assets', 'liabilities'],
|
||||
'preselected_accounts' => ['all', 'assets', 'liabilities'],
|
||||
|
||||
// allowed sort columns for API's
|
||||
'sorting' => [
|
||||
'sorting' => [
|
||||
'allowed' => [
|
||||
'transactions' => ['description', 'amount'],
|
||||
'accounts' => ['name', 'active', 'iban', 'balance', 'last_activity'],
|
||||
|
@@ -1,12 +1,13 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\QueryException;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
return new class () extends Migration {
|
||||
/**
|
||||
* Run the migrations.
|
||||
*/
|
||||
@@ -31,8 +32,5 @@ return new class extends Migration
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*/
|
||||
public function down(): void
|
||||
{
|
||||
//
|
||||
}
|
||||
public function down(): void {}
|
||||
};
|
||||
|
@@ -3,7 +3,7 @@
|
||||
"html_language": "nl",
|
||||
"date_time_fns": "d MMMM yyyy @ HH:mm:ss",
|
||||
"month_and_day_fns": "d MMMM y",
|
||||
"date_time_fns_short": "MMMM do, yyyy @ HH:mm"
|
||||
"date_time_fns_short": "d MMMM yyyy @ HH:mm"
|
||||
},
|
||||
"validation": {
|
||||
"bad_type_source": "Firefly III kan het transactietype niet bepalen op basis van deze bronrekening.",
|
||||
|
@@ -3,7 +3,7 @@
|
||||
"html_language": "nl",
|
||||
"date_time_fns": "d MMMM yyyy @ HH:mm:ss",
|
||||
"month_and_day_fns": "d MMMM y",
|
||||
"date_time_fns_short": "MMMM do, yyyy @ HH:mm"
|
||||
"date_time_fns_short": "d MMMM yyyy @ HH:mm"
|
||||
},
|
||||
"validation": {
|
||||
"bad_type_source": "Firefly III kan het transactietype niet bepalen op basis van deze bronrekening.",
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -300,6 +300,7 @@ return [
|
||||
|
||||
// no access to administration:
|
||||
'no_access_user_group' => 'You do not have the correct access rights for this administration.',
|
||||
'administration_owner_rename' => 'You can\'t rename your standard administration.',
|
||||
];
|
||||
|
||||
/*
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -300,6 +300,7 @@ return [
|
||||
|
||||
// no access to administration:
|
||||
'no_access_user_group' => 'No tens accés a aquesta administració.',
|
||||
'administration_owner_rename' => 'You can\'t rename your standard administration.',
|
||||
];
|
||||
|
||||
/*
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -300,6 +300,7 @@ return [
|
||||
|
||||
// no access to administration:
|
||||
'no_access_user_group' => 'You do not have the correct access rights for this administration.',
|
||||
'administration_owner_rename' => 'You can\'t rename your standard administration.',
|
||||
];
|
||||
|
||||
/*
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -300,6 +300,7 @@ return [
|
||||
|
||||
// no access to administration:
|
||||
'no_access_user_group' => 'Du har ikke de korrekte adgangsrettigheder for denne administration.',
|
||||
'administration_owner_rename' => 'You can\'t rename your standard administration.',
|
||||
];
|
||||
|
||||
/*
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -300,6 +300,7 @@ return [
|
||||
|
||||
// no access to administration:
|
||||
'no_access_user_group' => 'Für diese Verwaltung haben Sie nicht die erforderlichen Zugriffsrechte.',
|
||||
'administration_owner_rename' => 'You can\'t rename your standard administration.',
|
||||
];
|
||||
|
||||
/*
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -300,6 +300,7 @@ return [
|
||||
|
||||
// no access to administration:
|
||||
'no_access_user_group' => 'Δεν έχετε τα σωστά δικαιώματα πρόσβασης για αυτή τη διαχείριση.',
|
||||
'administration_owner_rename' => 'You can\'t rename your standard administration.',
|
||||
];
|
||||
|
||||
/*
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -300,6 +300,7 @@ return [
|
||||
|
||||
// no access to administration:
|
||||
'no_access_user_group' => 'You do not have the correct access rights for this administration.',
|
||||
'administration_owner_rename' => 'You can\'t rename your standard administration.',
|
||||
];
|
||||
|
||||
/*
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -264,7 +264,7 @@ return [
|
||||
|
||||
// no access to administration:
|
||||
'no_access_user_group' => 'You do not have the correct access rights for this administration.',
|
||||
'administration_owner_rename' => 'You can\'t rename your standard administration.',
|
||||
'administration_owner_rename' => 'You can\'t rename your standard administration.',
|
||||
];
|
||||
|
||||
// Ignore this comment
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -300,6 +300,7 @@ return [
|
||||
|
||||
// no access to administration:
|
||||
'no_access_user_group' => 'No tiene permisos para esta administración.',
|
||||
'administration_owner_rename' => 'You can\'t rename your standard administration.',
|
||||
];
|
||||
|
||||
/*
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -300,6 +300,7 @@ return [
|
||||
|
||||
// no access to administration:
|
||||
'no_access_user_group' => 'You do not have the correct access rights for this administration.',
|
||||
'administration_owner_rename' => 'You can\'t rename your standard administration.',
|
||||
];
|
||||
|
||||
/*
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -300,6 +300,7 @@ return [
|
||||
|
||||
// no access to administration:
|
||||
'no_access_user_group' => 'Vous n\'avez pas les droits d\'accès corrects pour cette administration.',
|
||||
'administration_owner_rename' => 'You can\'t rename your standard administration.',
|
||||
];
|
||||
|
||||
/*
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -300,6 +300,7 @@ return [
|
||||
|
||||
// no access to administration:
|
||||
'no_access_user_group' => 'You do not have the correct access rights for this administration.',
|
||||
'administration_owner_rename' => 'You can\'t rename your standard administration.',
|
||||
];
|
||||
|
||||
/*
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -300,6 +300,7 @@ return [
|
||||
|
||||
// no access to administration:
|
||||
'no_access_user_group' => 'You do not have the correct access rights for this administration.',
|
||||
'administration_owner_rename' => 'You can\'t rename your standard administration.',
|
||||
];
|
||||
|
||||
/*
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -300,6 +300,7 @@ return [
|
||||
|
||||
// no access to administration:
|
||||
'no_access_user_group' => 'Non hai i diritti di accesso corretti per questa amministrazione.',
|
||||
'administration_owner_rename' => 'You can\'t rename your standard administration.',
|
||||
];
|
||||
|
||||
/*
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -300,6 +300,7 @@ return [
|
||||
|
||||
// no access to administration:
|
||||
'no_access_user_group' => 'この管理のための適切なアクセス権がありません。',
|
||||
'administration_owner_rename' => 'You can\'t rename your standard administration.',
|
||||
];
|
||||
|
||||
/*
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -300,6 +300,7 @@ return [
|
||||
|
||||
// no access to administration:
|
||||
'no_access_user_group' => '이 관리에 대한 올바른 액세스 권한이 없습니다.',
|
||||
'administration_owner_rename' => 'You can\'t rename your standard administration.',
|
||||
];
|
||||
|
||||
/*
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -300,6 +300,7 @@ return [
|
||||
|
||||
// no access to administration:
|
||||
'no_access_user_group' => 'Du har ikke rettigheter til denne handlingen.',
|
||||
'administration_owner_rename' => 'You can\'t rename your standard administration.',
|
||||
];
|
||||
|
||||
/*
|
||||
|
@@ -64,7 +64,7 @@ return [
|
||||
// 'date_time' => '%B %e, %Y, @ %T',
|
||||
'date_time_js' => 'D MMMM YYYY @ HH:mm:ss',
|
||||
'date_time_fns' => 'd MMMM yyyy @ HH:mm:ss',
|
||||
'date_time_fns_short' => 'MMMM do, yyyy @ HH:mm',
|
||||
'date_time_fns_short' => 'd MMMM yyyy @ HH:mm',
|
||||
|
||||
// 'specific_day' => '%e %B %Y',
|
||||
'specific_day_js' => 'D MMMM YYYY',
|
||||
|
@@ -42,7 +42,7 @@ return [
|
||||
'fatal_error' => 'Er is een fatale fout opgetreden. Controleer de logbestanden in "storage/logs" of gebruik "docker logs -f [container]" om te zien wat er gebeurde.',
|
||||
'maintenance_mode' => 'Firefly III is in onderhoudsmodus.',
|
||||
'be_right_back' => 'Zo terug!',
|
||||
'check_back' => 'Firefly III is down for some necessary maintenance. Please check back in a second. If you happen to see this message on the demo site, just wait a few minutes. The database is reset every few hours.',
|
||||
'check_back' => 'Firefly III is offline voor hoognodig onderhoud. Kom later terug. Als je dit bericht op de demo site ziet, wacht dan een paar minuten. De database wordt elke paar uur gereset.',
|
||||
'error_occurred' => 'Oeps! Er is een fout opgetreden.',
|
||||
'db_error_occurred' => 'Oeps! Er is een database-fout opgetreden.',
|
||||
'error_not_recoverable' => 'Helaas was deze fout niet te herstellen :(. Firefly III is stuk. De fout is:',
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -70,5 +70,5 @@ return [
|
||||
'cannot_find_budget' => 'Firefly III kan budget ":name" niet vinden',
|
||||
'cannot_find_category' => 'Firefly III kan categorie ":name" niet vinden',
|
||||
'cannot_set_budget' => 'Firefly III kan budget ":name" niet instellen op een transactie van het type ":type"',
|
||||
'journal_invalid_amount' => 'Firefly III can\'t set amount ":amount" because it is not a valid number.',
|
||||
'journal_invalid_amount' => 'Firefly III kan bedrag ":amount" niet instellen omdat dit geen geldig getal is.',
|
||||
];
|
||||
|
@@ -55,11 +55,11 @@ return [
|
||||
'reconciled_forbidden_field' => 'Deze transactie is al afgestemd, dus je kan ":field" niet wijzigen',
|
||||
'deleted_user' => 'Je kan je niet registreren met dit e-mailadres.',
|
||||
'rule_trigger_value' => 'Deze waarde is niet geldig voor de geselecteerde trigger.',
|
||||
'rule_action_expression' => 'Invalid expression. :error',
|
||||
'rule_action_expression' => 'Ongeldige expressie (foutmelding in het Engels): :error',
|
||||
'rule_action_value' => 'Deze waarde is niet geldig voor de geselecteerde actie.',
|
||||
'file_already_attached' => 'Het geuploade bestand ":name" is al gelinkt aan deze transactie.',
|
||||
'file_attached' => 'Bestand ":name" is succesvol geüpload.',
|
||||
'file_zero' => 'The file is zero bytes in size.',
|
||||
'file_zero' => 'Het bestand is nul bytes.',
|
||||
'must_exist' => 'Het ID in veld :attribute bestaat niet.',
|
||||
'all_accounts_equal' => 'Alle rekeningen in dit veld moeten gelijk zijn.',
|
||||
'group_title_mandatory' => 'Een groepstitel is verplicht wanneer er meer dan één transactie is.',
|
||||
@@ -197,7 +197,7 @@ return [
|
||||
*
|
||||
*/
|
||||
|
||||
'secure_password' => 'This is not a secure password. Please try again. For more information, visit https://bit.ly/FF3-password',
|
||||
'secure_password' => 'Dit is geen veilig wachtwoord. Probeer het nog een keer. Zie ook: https://bit.ly/FF3-password',
|
||||
'valid_recurrence_rep_type' => 'Dit is geen geldige herhaling voor periodieke transacties.',
|
||||
'valid_recurrence_rep_moment' => 'Ongeldig herhaalmoment voor dit type herhaling.',
|
||||
'invalid_account_info' => 'Ongeldige rekeninginformatie.',
|
||||
@@ -300,6 +300,7 @@ return [
|
||||
|
||||
// no access to administration:
|
||||
'no_access_user_group' => 'Je hebt niet de juiste toegangsrechten voor deze administratie.',
|
||||
'administration_owner_rename' => 'Je kan je standaardgrootboek niet hernoemen.',
|
||||
];
|
||||
|
||||
/*
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -300,6 +300,7 @@ return [
|
||||
|
||||
// no access to administration:
|
||||
'no_access_user_group' => 'Du har ikkje rettigheter til denne handlinga.',
|
||||
'administration_owner_rename' => 'You can\'t rename your standard administration.',
|
||||
];
|
||||
|
||||
/*
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -300,6 +300,7 @@ return [
|
||||
|
||||
// no access to administration:
|
||||
'no_access_user_group' => 'Nie masz odpowiednich praw dostępu dla tej administracji.',
|
||||
'administration_owner_rename' => 'You can\'t rename your standard administration.',
|
||||
];
|
||||
|
||||
/*
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -300,6 +300,7 @@ return [
|
||||
|
||||
// no access to administration:
|
||||
'no_access_user_group' => 'Você não direitos de acesso suficientes para esta administração.',
|
||||
'administration_owner_rename' => 'You can\'t rename your standard administration.',
|
||||
];
|
||||
|
||||
/*
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -300,6 +300,7 @@ return [
|
||||
|
||||
// no access to administration:
|
||||
'no_access_user_group' => 'Não tem as permissões de acesso necessárias para esta administração.',
|
||||
'administration_owner_rename' => 'You can\'t rename your standard administration.',
|
||||
];
|
||||
|
||||
/*
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -300,6 +300,7 @@ return [
|
||||
|
||||
// no access to administration:
|
||||
'no_access_user_group' => 'Nu aveți drepturile de acces corecte pentru această administrare.',
|
||||
'administration_owner_rename' => 'You can\'t rename your standard administration.',
|
||||
];
|
||||
|
||||
/*
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -300,6 +300,7 @@ return [
|
||||
|
||||
// no access to administration:
|
||||
'no_access_user_group' => 'У вас нет необходимых прав доступа для данного административного действия.',
|
||||
'administration_owner_rename' => 'You can\'t rename your standard administration.',
|
||||
];
|
||||
|
||||
/*
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -300,6 +300,7 @@ return [
|
||||
|
||||
// no access to administration:
|
||||
'no_access_user_group' => 'You do not have the correct access rights for this administration.',
|
||||
'administration_owner_rename' => 'You can\'t rename your standard administration.',
|
||||
];
|
||||
|
||||
/*
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -300,6 +300,7 @@ return [
|
||||
|
||||
// no access to administration:
|
||||
'no_access_user_group' => 'Nimate ustreznih pravic dostopa do te administracije.',
|
||||
'administration_owner_rename' => 'You can\'t rename your standard administration.',
|
||||
];
|
||||
|
||||
/*
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -300,6 +300,7 @@ return [
|
||||
|
||||
// no access to administration:
|
||||
'no_access_user_group' => 'You do not have the correct access rights for this administration.',
|
||||
'administration_owner_rename' => 'You can\'t rename your standard administration.',
|
||||
];
|
||||
|
||||
/*
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -300,6 +300,7 @@ return [
|
||||
|
||||
// no access to administration:
|
||||
'no_access_user_group' => 'You do not have the correct access rights for this administration.',
|
||||
'administration_owner_rename' => 'You can\'t rename your standard administration.',
|
||||
];
|
||||
|
||||
/*
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -300,6 +300,7 @@ return [
|
||||
|
||||
// no access to administration:
|
||||
'no_access_user_group' => 'You do not have the correct access rights for this administration.',
|
||||
'administration_owner_rename' => 'You can\'t rename your standard administration.',
|
||||
];
|
||||
|
||||
/*
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -300,6 +300,7 @@ return [
|
||||
|
||||
// no access to administration:
|
||||
'no_access_user_group' => 'У Вас немає необхідних прав доступу для цих налаштувань.',
|
||||
'administration_owner_rename' => 'You can\'t rename your standard administration.',
|
||||
];
|
||||
|
||||
/*
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -300,6 +300,7 @@ return [
|
||||
|
||||
// no access to administration:
|
||||
'no_access_user_group' => 'You do not have the correct access rights for this administration.',
|
||||
'administration_owner_rename' => 'You can\'t rename your standard administration.',
|
||||
];
|
||||
|
||||
/*
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -300,6 +300,7 @@ return [
|
||||
|
||||
// no access to administration:
|
||||
'no_access_user_group' => '您没有管理员访问权限',
|
||||
'administration_owner_rename' => 'You can\'t rename your standard administration.',
|
||||
];
|
||||
|
||||
/*
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -300,6 +300,7 @@ return [
|
||||
|
||||
// no access to administration:
|
||||
'no_access_user_group' => 'You do not have the correct access rights for this administration.',
|
||||
'administration_owner_rename' => 'You can\'t rename your standard administration.',
|
||||
];
|
||||
|
||||
/*
|
||||
|
@@ -1308,7 +1308,7 @@ Breadcrumbs::for(
|
||||
Breadcrumbs::for(
|
||||
'administrations.edit',
|
||||
static function (Generator $breadcrumbs, UserGroup $userGroup): void {
|
||||
$breadcrumbs->parent('administrations.show',$userGroup);
|
||||
$breadcrumbs->parent('administrations.show', $userGroup);
|
||||
$breadcrumbs->push(trans('firefly.edit_administration_breadcrumb', ['title' => limitStringLength($userGroup->title)]), route('administrations.edit', [$userGroup->id]));
|
||||
}
|
||||
);
|
||||
|
316
routes/web.php
316
routes/web.php
@@ -47,7 +47,7 @@ Route::group(
|
||||
Route::group(
|
||||
['middleware' => 'binders-only', 'namespace' => 'FireflyIII\Http\Controllers\System'],
|
||||
static function (): void {
|
||||
Route::get('offline', static fn() => view('errors.offline'));
|
||||
Route::get('offline', static fn () => view('errors.offline'));
|
||||
Route::get('health', ['uses' => 'HealthcheckController@check', 'as' => 'healthcheck']);
|
||||
}
|
||||
);
|
||||
@@ -150,27 +150,32 @@ Route::group(
|
||||
// show
|
||||
Route::get('show/{account}/all', ['uses' => 'Account\ShowController@showAll', 'as' => 'show.all']);
|
||||
Route::get('show/{account}/{start_date?}/{end_date?}', ['uses' => 'Account\ShowController@show', 'as' => 'show'])
|
||||
->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
|
||||
// reconcile routes:
|
||||
Route::get('reconcile/{account}/index/{start_date?}/{end_date?}', ['uses' => 'Account\ReconcileController@reconcile', 'as' => 'reconcile'])
|
||||
->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
Route::post('reconcile/{account}/submit/{start_date?}/{end_date?}', ['uses' => 'Account\ReconcileController@submit', 'as' => 'reconcile.submit'])
|
||||
->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
|
||||
// reconcile JSON routes
|
||||
Route::get('reconcile/{account}/overview/{start_date?}/{end_date?}', ['uses' => 'Json\ReconcileController@overview', 'as' => 'reconcile.overview'])
|
||||
->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
Route::get(
|
||||
'reconcile/{account}/transactions/{start_date?}/{end_date?}',
|
||||
['uses' => 'Json\ReconcileController@transactions', 'as' => 'reconcile.transactions']
|
||||
)
|
||||
->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
}
|
||||
);
|
||||
|
||||
@@ -247,16 +252,18 @@ Route::group(
|
||||
Route::get('show/{budget}/{budgetLimit}', ['uses' => 'Budget\ShowController@showByBudgetLimit', 'as' => 'show.limit']);
|
||||
Route::get('list/no-budget/all', ['uses' => 'Budget\ShowController@noBudgetAll', 'as' => 'no-budget-all']);
|
||||
Route::get('list/no-budget/{start_date?}/{end_date?}', ['uses' => 'Budget\ShowController@noBudget', 'as' => 'no-budget'])
|
||||
->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
|
||||
// reorder budgets
|
||||
Route::post('reorder', ['uses' => 'Budget\IndexController@reorder', 'as' => 'reorder']);
|
||||
|
||||
// index
|
||||
Route::get('{start_date?}/{end_date?}', ['uses' => 'Budget\IndexController@index', 'as' => 'index'])
|
||||
->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
}
|
||||
);
|
||||
|
||||
@@ -265,8 +272,9 @@ Route::group(
|
||||
['middleware' => 'user-full-auth', 'namespace' => 'FireflyIII\Http\Controllers', 'prefix' => 'budget-limits', 'as' => 'budget-limits.'],
|
||||
static function (): void {
|
||||
Route::get('create/{budget}/{start_date}/{end_date}', ['uses' => 'Budget\BudgetLimitController@create', 'as' => 'create'])
|
||||
->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
Route::post('store', ['uses' => 'Budget\BudgetLimitController@store', 'as' => 'store']);
|
||||
|
||||
Route::post('delete/{budgetLimit}', ['uses' => 'Budget\BudgetLimitController@delete', 'as' => 'delete']);
|
||||
@@ -297,14 +305,16 @@ Route::group(
|
||||
// show category:
|
||||
Route::get('show/{category}/all', ['uses' => 'Category\ShowController@showAll', 'as' => 'show.all']);
|
||||
Route::get('show/{category}/{start_date?}/{end_date?}', ['uses' => 'Category\ShowController@show', 'as' => 'show'])
|
||||
->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
|
||||
// no category controller:
|
||||
Route::get('list/no-category/all', ['uses' => 'Category\NoCategoryController@showAll', 'as' => 'no-category.all']);
|
||||
Route::get('list/no-category/{start_date?}/{end_date?}', ['uses' => 'Category\NoCategoryController@show', 'as' => 'no-category'])
|
||||
->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
}
|
||||
);
|
||||
|
||||
@@ -331,25 +341,30 @@ Route::group(
|
||||
Route::get('expense', ['uses' => 'AccountController@expenseAccounts', 'as' => 'expense']);
|
||||
Route::get('revenue', ['uses' => 'AccountController@revenueAccounts', 'as' => 'revenue']);
|
||||
Route::get('report/{accountList}/{start_date}/{end_date}', ['uses' => 'AccountController@report', 'as' => 'report'])
|
||||
->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
Route::get('period/{account}/{start_date}/{end_date}', ['uses' => 'AccountController@period', 'as' => 'period'])
|
||||
->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
|
||||
Route::get('income-category/{account}/all/all', ['uses' => 'AccountController@incomeCategoryAll', 'as' => 'income-category-all']);
|
||||
Route::get('expense-category/{account}/all/all', ['uses' => 'AccountController@expenseCategoryAll', 'as' => 'expense-category-all']);
|
||||
Route::get('expense-budget/{account}/all/all', ['uses' => 'AccountController@expenseBudgetAll', 'as' => 'expense-budget-all']);
|
||||
|
||||
Route::get('income-category/{account}/{start_date}/{end_date}', ['uses' => 'AccountController@incomeCategory', 'as' => 'income-category'])
|
||||
->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
Route::get('expense-category/{account}/{start_date}/{end_date}', ['uses' => 'AccountController@expenseCategory', 'as' => 'expense-category'])
|
||||
->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
Route::get('expense-budget/{account}/{start_date}/{end_date}', ['uses' => 'AccountController@expenseBudget', 'as' => 'expense-budget'])
|
||||
->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
}
|
||||
);
|
||||
|
||||
@@ -368,11 +383,13 @@ Route::group(
|
||||
static function (): void {
|
||||
Route::get('frontpage', ['uses' => 'BudgetController@frontpage', 'as' => 'frontpage']);
|
||||
Route::get('period/0/{currency}/{accountList}/{start_date}/{end_date}', ['uses' => 'BudgetController@periodNoBudget', 'as' => 'period.no-budget'])
|
||||
->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
Route::get('period/{budget}/{currency}/{accountList}/{start_date}/{end_date}', ['uses' => 'BudgetController@period', 'as' => 'period'])
|
||||
->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
Route::get('budget/{budget}/{budgetLimit}', ['uses' => 'BudgetController@budgetLimit', 'as' => 'budget-limit']);
|
||||
Route::get('budget/{budget}', ['uses' => 'BudgetController@budget', 'as' => 'budget']);
|
||||
|
||||
@@ -386,23 +403,27 @@ Route::group(
|
||||
'category/expense/{accountList}/{budgetList}/{start_date}/{end_date}',
|
||||
['uses' => 'BudgetReportController@categoryExpense', 'as' => 'category-expense']
|
||||
)
|
||||
->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
Route::get(
|
||||
'budget/expense/{accountList}/{budgetList}/{start_date}/{end_date}',
|
||||
['uses' => 'BudgetReportController@budgetExpense', 'as' => 'budget-expense']
|
||||
)->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
Route::get(
|
||||
'source-account/expense/{accountList}/{budgetList}/{start_date}/{end_date}',
|
||||
['uses' => 'BudgetReportController@sourceAccountExpense', 'as' => 'source-account-expense']
|
||||
)->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
Route::get(
|
||||
'destination-account/expense/{accountList}/{budgetList}/{start_date}/{end_date}',
|
||||
['uses' => 'BudgetReportController@destinationAccountExpense', 'as' => 'destination-account-expense']
|
||||
)->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
Route::get('operations/{accountList}/{budget}/{start_date}/{end_date}', ['uses' => 'BudgetReportController@mainChart', 'as' => 'main']);
|
||||
}
|
||||
);
|
||||
@@ -419,51 +440,61 @@ Route::group(
|
||||
'report-period/0/{accountList}/{start_date}/{end_date}',
|
||||
['uses' => 'CategoryController@reportPeriodNoCategory', 'as' => 'period.no-category']
|
||||
)->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
Route::get('report-period/{category}/{accountList}/{start_date}/{end_date}', ['uses' => 'CategoryController@reportPeriod', 'as' => 'period'])->where(
|
||||
['start_date' => DATEFORMAT]
|
||||
)
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
|
||||
Route::get(
|
||||
'category/expense/{accountList}/{categoryList}/{start_date}/{end_date}',
|
||||
['uses' => 'CategoryReportController@categoryExpense', 'as' => 'category-expense']
|
||||
)->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
Route::get(
|
||||
'category/income/{accountList}/{categoryList}/{start_date}/{end_date}',
|
||||
['uses' => 'CategoryReportController@categoryIncome', 'as' => 'category-income']
|
||||
)->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
Route::get(
|
||||
'budget/expense/{accountList}/{categoryList}/{start_date}/{end_date}',
|
||||
['uses' => 'CategoryReportController@budgetExpense', 'as' => 'budget-expense']
|
||||
)->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
Route::get(
|
||||
'source/expense/{accountList}/{categoryList}/{start_date}/{end_date}',
|
||||
['uses' => 'CategoryReportController@sourceExpense', 'as' => 'source-expense']
|
||||
)->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
Route::get(
|
||||
'source/income/{accountList}/{categoryList}/{start_date}/{end_date}',
|
||||
['uses' => 'CategoryReportController@sourceIncome', 'as' => 'source-income']
|
||||
)->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
Route::get(
|
||||
'dest/expense/{accountList}/{categoryList}/{start_date}/{end_date}',
|
||||
['uses' => 'CategoryReportController@destinationExpense', 'as' => 'dest-expense']
|
||||
)->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
Route::get(
|
||||
'dest/income/{accountList}/{categoryList}/{start_date}/{end_date}',
|
||||
['uses' => 'CategoryReportController@destinationIncome', 'as' => 'dest-income']
|
||||
)->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
Route::get('operations/{accountList}/{category}/{start_date}/{end_date}', ['uses' => 'CategoryReportController@mainChart', 'as' => 'main'])->where(
|
||||
['start_date' => DATEFORMAT]
|
||||
)
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
}
|
||||
);
|
||||
|
||||
@@ -472,52 +503,62 @@ Route::group(
|
||||
['middleware' => 'user-full-auth', 'namespace' => 'FireflyIII\Http\Controllers\Chart', 'prefix' => 'chart/tag', 'as' => 'chart.tag.'],
|
||||
static function (): void {
|
||||
Route::get('tag/expense/{accountList}/{tagList}/{start_date}/{end_date}', ['uses' => 'TagReportController@tagExpense', 'as' => 'tag-expense'])
|
||||
->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
Route::get('tag/income/{accountList}/{tagList}/{start_date}/{end_date}', ['uses' => 'TagReportController@tagIncome', 'as' => 'tag-income'])->where(
|
||||
['start_date' => DATEFORMAT]
|
||||
)
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
Route::get(
|
||||
'category/expense/{accountList}/{tagList}/{start_date}/{end_date}',
|
||||
['uses' => 'TagReportController@categoryExpense', 'as' => 'category-expense']
|
||||
)->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
Route::get(
|
||||
'category/income/{accountList}/{tagList}/{start_date}/{end_date}',
|
||||
['uses' => 'TagReportController@categoryIncome', 'as' => 'category-income']
|
||||
)->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
Route::get(
|
||||
'budget/expense/{accountList}/{tagList}/{start_date}/{end_date}',
|
||||
['uses' => 'TagReportController@budgetExpense', 'as' => 'budget-expense']
|
||||
)->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
Route::get(
|
||||
'source/expense/{accountList}/{tagList}/{start_date}/{end_date}',
|
||||
['uses' => 'TagReportController@sourceExpense', 'as' => 'source-expense']
|
||||
)->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
Route::get(
|
||||
'source/income/{accountList}/{tagList}/{start_date}/{end_date}',
|
||||
['uses' => 'TagReportController@sourceIncome', 'as' => 'source-income']
|
||||
)->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
Route::get(
|
||||
'dest/expense/{accountList}/{tagList}/{start_date}/{end_date}',
|
||||
['uses' => 'TagReportController@destinationExpense', 'as' => 'dest-expense']
|
||||
)->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
Route::get(
|
||||
'dest/income/{accountList}/{tagList}/{start_date}/{end_date}',
|
||||
['uses' => 'TagReportController@destinationIncome', 'as' => 'dest-income']
|
||||
)->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
|
||||
Route::get('operations/{accountList}/{tag}/{start_date}/{end_date}', ['uses' => 'TagReportController@mainChart', 'as' => 'main'])->where(
|
||||
['start_date' => DATEFORMAT]
|
||||
)
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
}
|
||||
);
|
||||
|
||||
@@ -528,34 +569,40 @@ Route::group(
|
||||
Route::get('main/{accountList}/{account}/{start_date}/{end_date}', ['uses' => 'DoubleReportController@mainChart', 'as' => 'main'])->where(
|
||||
['start_date' => DATEFORMAT]
|
||||
)
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
|
||||
Route::get(
|
||||
'category/expense/{accountList}/{doubleList}/{start_date}/{end_date}',
|
||||
['uses' => 'DoubleReportController@categoryExpense', 'as' => 'category-expense']
|
||||
)->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
Route::get(
|
||||
'category/income/{accountList}/{doubleList}/{start_date}/{end_date}',
|
||||
['uses' => 'DoubleReportController@categoryIncome', 'as' => 'category-income']
|
||||
)->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
Route::get(
|
||||
'budget/expense/{accountList}/{doubleList}/{start_date}/{end_date}',
|
||||
['uses' => 'DoubleReportController@budgetExpense', 'as' => 'budget-expense']
|
||||
)->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
|
||||
Route::get(
|
||||
'tag/expense/{accountList}/{doubleList}/{start_date}/{end_date}',
|
||||
['uses' => 'DoubleReportController@tagExpense', 'as' => 'tag-expense']
|
||||
)->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
Route::get(
|
||||
'tag/income/{accountList}/{doubleList}/{start_date}/{end_date}',
|
||||
['uses' => 'DoubleReportController@tagIncome', 'as' => 'tag-income']
|
||||
)->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
}
|
||||
);
|
||||
|
||||
@@ -574,11 +621,13 @@ Route::group(
|
||||
Route::get('operations/{accountList}/{start_date}/{end_date}', ['uses' => 'ReportController@operations', 'as' => 'operations'])->where(
|
||||
['start_date' => DATEFORMAT]
|
||||
)
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
Route::get('net-worth/{accountList}/{start_date}/{end_date}/', ['uses' => 'ReportController@netWorth', 'as' => 'net-worth'])->where(
|
||||
['start_date' => DATEFORMAT]
|
||||
)
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
}
|
||||
);
|
||||
|
||||
@@ -589,18 +638,22 @@ Route::group(
|
||||
Route::get('categories/{objectType}/{start_date}/{end_date}', ['uses' => 'TransactionController@categories', 'as' => 'categories'])->where(
|
||||
['start_date' => DATEFORMAT]
|
||||
)
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
Route::get('budgets/{start_date}/{end_date}', ['uses' => 'TransactionController@budgets', 'as' => 'budgets'])->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
Route::get(
|
||||
'destinationAccounts/{objectType}/{start_date}/{end_date}',
|
||||
['uses' => 'TransactionController@destinationAccounts', 'as' => 'destinationAccounts']
|
||||
)->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
Route::get('sourceAccounts/{objectType}/{start_date}/{end_date}', ['uses' => 'TransactionController@sourceAccounts', 'as' => 'sourceAccounts'])->where(
|
||||
['start_date' => DATEFORMAT]
|
||||
)
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
}
|
||||
);
|
||||
|
||||
@@ -658,7 +711,8 @@ Route::group(
|
||||
'budget/total-budgeted/{currency}/{start_date}/{end_date}',
|
||||
['uses' => 'Json\BudgetController@getBudgetInformation', 'as' => 'budget.total-budgeted']
|
||||
)->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
// boxes
|
||||
Route::get('box/balance', ['uses' => 'Json\BoxController@balance', 'as' => 'box.balance']);
|
||||
Route::get('box/available', ['uses' => 'Json\BoxController@available', 'as' => 'box.available']);
|
||||
@@ -798,7 +852,8 @@ Route::group(
|
||||
Route::get('general/{accountList}/{start_date}/{end_date}', ['uses' => 'AccountController@general', 'as' => 'general'])->where(
|
||||
['start_date' => DATEFORMAT]
|
||||
)
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
}
|
||||
);
|
||||
|
||||
@@ -809,7 +864,8 @@ Route::group(
|
||||
Route::get('overview/{accountList}/{start_date}/{end_date}', ['uses' => 'BillController@overview', 'as' => 'overview'])->where(
|
||||
['start_date' => DATEFORMAT]
|
||||
)
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
}
|
||||
);
|
||||
|
||||
@@ -821,32 +877,38 @@ Route::group(
|
||||
Route::get('operations/{accountList}/{doubleList}/{start_date}/{end_date}', ['uses' => 'DoubleController@operations', 'as' => 'operations'])->where(
|
||||
['start_date' => DATEFORMAT]
|
||||
)
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
Route::get(
|
||||
'ops-asset/{accountList}/{doubleList}/{start_date}/{end_date}',
|
||||
['uses' => 'DoubleController@operationsPerAsset', 'as' => 'ops-asset']
|
||||
)->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
|
||||
Route::get(
|
||||
'top-expenses/{accountList}/{doubleList}/{start_date}/{end_date}',
|
||||
['uses' => 'DoubleController@topExpenses', 'as' => 'top-expenses']
|
||||
)->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
Route::get(
|
||||
'avg-expenses/{accountList}/{doubleList}/{start_date}/{end_date}',
|
||||
['uses' => 'DoubleController@avgExpenses', 'as' => 'avg-expenses']
|
||||
)->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
|
||||
Route::get('top-income/{accountList}/{doubleList}/{start_date}/{end_date}', ['uses' => 'DoubleController@topIncome', 'as' => 'top-income'])->where(
|
||||
['start_date' => DATEFORMAT]
|
||||
)
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
Route::get('avg-income/{accountList}/{doubleList}/{start_date}/{end_date}', ['uses' => 'DoubleController@avgIncome', 'as' => 'avg-income'])->where(
|
||||
['start_date' => DATEFORMAT]
|
||||
)
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
}
|
||||
);
|
||||
|
||||
@@ -862,15 +924,18 @@ Route::group(
|
||||
Route::get('operations/{accountList}/{start_date}/{end_date}', ['uses' => 'OperationsController@operations', 'as' => 'operations'])->where(
|
||||
['start_date' => DATEFORMAT]
|
||||
)
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
Route::get('income/{accountList}/{start_date}/{end_date}', ['uses' => 'OperationsController@income', 'as' => 'income'])->where(
|
||||
['start_date' => DATEFORMAT]
|
||||
)
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
Route::get('expenses/{accountList}/{start_date}/{end_date}', ['uses' => 'OperationsController@expenses', 'as' => 'expenses'])->where(
|
||||
['start_date' => DATEFORMAT]
|
||||
)
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
}
|
||||
);
|
||||
|
||||
@@ -887,49 +952,59 @@ Route::group(
|
||||
Route::get('operations/{accountList}/{start_date}/{end_date}', ['uses' => 'CategoryController@operations', 'as' => 'operations'])->where(
|
||||
['start_date' => DATEFORMAT]
|
||||
)
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
Route::get('income/{accountList}/{start_date}/{end_date}', ['uses' => 'CategoryController@income', 'as' => 'income'])->where(
|
||||
['start_date' => DATEFORMAT]
|
||||
)
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
Route::get('expenses/{accountList}/{start_date}/{end_date}', ['uses' => 'CategoryController@expenses', 'as' => 'expenses'])->where(
|
||||
['start_date' => DATEFORMAT]
|
||||
)
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
|
||||
Route::get('accounts/{accountList}/{categoryList}/{start_date}/{end_date}', ['uses' => 'CategoryController@accounts', 'as' => 'accounts'])->where(
|
||||
['start_date' => DATEFORMAT]
|
||||
)
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
Route::get('categories/{accountList}/{categoryList}/{start_date}/{end_date}', ['uses' => 'CategoryController@categories', 'as' => 'categories'])->where(
|
||||
['start_date' => DATEFORMAT]
|
||||
)
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
Route::get(
|
||||
'account-per-category/{accountList}/{categoryList}/{start_date}/{end_date}',
|
||||
['uses' => 'CategoryController@accountPerCategory', 'as' => 'account-per-category']
|
||||
)->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
|
||||
Route::get(
|
||||
'top-expenses/{accountList}/{categoryList}/{start_date}/{end_date}',
|
||||
['uses' => 'CategoryController@topExpenses', 'as' => 'top-expenses']
|
||||
)->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
Route::get(
|
||||
'avg-expenses/{accountList}/{categoryList}/{start_date}/{end_date}',
|
||||
['uses' => 'CategoryController@avgExpenses', 'as' => 'avg-expenses']
|
||||
)->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
|
||||
Route::get('top-income/{accountList}/{categoryList}/{start_date}/{end_date}', ['uses' => 'CategoryController@topIncome', 'as' => 'top-income'])->where(
|
||||
['start_date' => DATEFORMAT]
|
||||
)
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
Route::get('avg-income/{accountList}/{categoryList}/{start_date}/{end_date}', ['uses' => 'CategoryController@avgIncome', 'as' => 'avg-income'])->where(
|
||||
['start_date' => DATEFORMAT]
|
||||
)
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
}
|
||||
);
|
||||
|
||||
@@ -945,34 +1020,41 @@ Route::group(
|
||||
Route::get('accounts/{accountList}/{tagList}/{start_date}/{end_date}', ['uses' => 'TagController@accounts', 'as' => 'accounts'])->where(
|
||||
['start_date' => DATEFORMAT]
|
||||
)
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
Route::get('tags/{accountList}/{tagList}/{start_date}/{end_date}', ['uses' => 'TagController@tags', 'as' => 'tags'])->where(
|
||||
['start_date' => DATEFORMAT]
|
||||
)
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
Route::get(
|
||||
'account-per-tag/{accountList}/{tagList}/{start_date}/{end_date}',
|
||||
['uses' => 'TagController@accountPerTag', 'as' => 'account-per-tag']
|
||||
)->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
|
||||
Route::get('top-expenses/{accountList}/{tagList}/{start_date}/{end_date}', ['uses' => 'TagController@topExpenses', 'as' => 'top-expenses'])->where(
|
||||
['start_date' => DATEFORMAT]
|
||||
)
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
Route::get('avg-expenses/{accountList}/{tagList}/{start_date}/{end_date}', ['uses' => 'TagController@avgExpenses', 'as' => 'avg-expenses'])->where(
|
||||
['start_date' => DATEFORMAT]
|
||||
)
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
|
||||
Route::get('top-income/{accountList}/{tagList}/{start_date}/{end_date}', ['uses' => 'TagController@topIncome', 'as' => 'top-income'])->where(
|
||||
['start_date' => DATEFORMAT]
|
||||
)
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
Route::get('avg-income/{accountList}/{tagList}/{start_date}/{end_date}', ['uses' => 'TagController@avgIncome', 'as' => 'avg-income'])->where(
|
||||
['start_date' => DATEFORMAT]
|
||||
)
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
}
|
||||
);
|
||||
|
||||
@@ -983,7 +1065,8 @@ Route::group(
|
||||
Route::get('general/{accountList}/{start_date}/{end_date}', ['uses' => 'BalanceController@general', 'as' => 'general'])->where(
|
||||
['start_date' => DATEFORMAT]
|
||||
)
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
}
|
||||
);
|
||||
|
||||
@@ -994,34 +1077,41 @@ Route::group(
|
||||
Route::get('general/{accountList}/{start_date}/{end_date}/', ['uses' => 'BudgetController@general', 'as' => 'general'])->where(
|
||||
['start_date' => DATEFORMAT]
|
||||
)
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
// TODO is route still used?
|
||||
Route::get('period/{accountList}/{start_date}/{end_date}', ['uses' => 'BudgetController@period', 'as' => 'period'])->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
|
||||
Route::get('accounts/{accountList}/{budgetList}/{start_date}/{end_date}', ['uses' => 'BudgetController@accounts', 'as' => 'accounts'])->where(
|
||||
['start_date' => DATEFORMAT]
|
||||
)
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
Route::get('budgets/{accountList}/{budgetList}/{start_date}/{end_date}', ['uses' => 'BudgetController@budgets', 'as' => 'budgets'])->where(
|
||||
['start_date' => DATEFORMAT]
|
||||
)
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
Route::get(
|
||||
'account-per-budget/{accountList}/{budgetList}/{start_date}/{end_date}',
|
||||
['uses' => 'BudgetController@accountPerBudget', 'as' => 'account-per-budget']
|
||||
)->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
Route::get(
|
||||
'top-expenses/{accountList}/{budgetList}/{start_date}/{end_date}',
|
||||
['uses' => 'BudgetController@topExpenses', 'as' => 'top-expenses']
|
||||
)->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
Route::get(
|
||||
'avg-expenses/{accountList}/{budgetList}/{start_date}/{end_date}',
|
||||
['uses' => 'BudgetController@avgExpenses', 'as' => 'avg-expenses']
|
||||
)->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
}
|
||||
);
|
||||
|
||||
@@ -1094,7 +1184,8 @@ Route::group(
|
||||
|
||||
Route::get('show/{tagOrId}/all', ['uses' => 'TagController@showAll', 'as' => 'show.all']);
|
||||
Route::get('show/{tagOrId}/{start_date?}/{end_date?}', ['uses' => 'TagController@show', 'as' => 'show'])->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
|
||||
Route::get('edit/{tag}', ['uses' => 'TagController@edit', 'as' => 'edit']);
|
||||
Route::get('delete/{tag}', ['uses' => 'TagController@delete', 'as' => 'delete']);
|
||||
@@ -1119,7 +1210,8 @@ Route::group(
|
||||
Route::get('{objectType}/{start_date?}/{end_date?}', ['uses' => 'Transaction\IndexController@index', 'as' => 'index'])->where(
|
||||
['objectType' => 'withdrawal|deposit|transfers|transfer|all']
|
||||
)->where(['start_date' => DATEFORMAT])
|
||||
->where(['end_date' => DATEFORMAT]);
|
||||
->where(['end_date' => DATEFORMAT])
|
||||
;
|
||||
|
||||
// create group:
|
||||
Route::get('create/{objectType}', ['uses' => 'Transaction\CreateController@create', 'as' => 'create']);
|
||||
|
Reference in New Issue
Block a user