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