mirror of
https://github.com/firefly-iii/firefly-iii.git
synced 2025-12-16 08:11:20 +00:00
Compare commits
81 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b1ea36ae5b | ||
|
|
2f75437ac1 | ||
|
|
6c945bfd60 | ||
|
|
82f993f0ff | ||
|
|
08f3f2aeb9 | ||
|
|
099fc49c4b | ||
|
|
6f2c46cb36 | ||
|
|
135424f8b8 | ||
|
|
9534fa59d6 | ||
|
|
51ae15a650 | ||
|
|
29776fa98c | ||
|
|
7ddffb9251 | ||
|
|
069770b39e | ||
|
|
626119d774 | ||
|
|
993d18d508 | ||
|
|
7b84c7c2dc | ||
|
|
76429c923e | ||
|
|
ca1b048758 | ||
|
|
fb11971b84 | ||
|
|
465542b0f5 | ||
|
|
5185a3ed5a | ||
|
|
4d1615197d | ||
|
|
83c6887ed0 | ||
|
|
9d1e20192d | ||
|
|
ad17837593 | ||
|
|
40ec63ddb9 | ||
|
|
bc3c019d03 | ||
|
|
35f8ecf9bf | ||
|
|
4c649a7099 | ||
|
|
1abf214141 | ||
|
|
8cb748745b | ||
|
|
f3df783ed3 | ||
|
|
50d6234089 | ||
|
|
baa1da3e8e | ||
|
|
89af363ba1 | ||
|
|
df5aff279e | ||
|
|
249b2c63d8 | ||
|
|
6d8f5b88fe | ||
|
|
2579750ba3 | ||
|
|
5e7ee8c5bf | ||
|
|
610bc9f4bc | ||
|
|
3d1233314a | ||
|
|
a258b35236 | ||
|
|
51e23dae21 | ||
|
|
13f2e6537e | ||
|
|
cba3590dec | ||
|
|
613a02fa52 | ||
|
|
2b615cf757 | ||
|
|
52a593e2e0 | ||
|
|
cf89d93cec | ||
|
|
295724c4e9 | ||
|
|
39fbd545ad | ||
|
|
3373961143 | ||
|
|
7f5b50d1f6 | ||
|
|
04267f1388 | ||
|
|
cddba20499 | ||
|
|
791833ab61 | ||
|
|
0ad9a75274 | ||
|
|
172d78f810 | ||
|
|
d2018ad3ec | ||
|
|
97124bcbce | ||
|
|
27dd30785f | ||
|
|
093794f7a5 | ||
|
|
a67bad11b2 | ||
|
|
91a53032b9 | ||
|
|
a87ce030d8 | ||
|
|
799da3597f | ||
|
|
663bf22a2a | ||
|
|
5d3abb315c | ||
|
|
a6ce34b67e | ||
|
|
75f5b5b51d | ||
|
|
555b358b80 | ||
|
|
7772190d45 | ||
|
|
311effb518 | ||
|
|
d2ccb33c54 | ||
|
|
5b312708f9 | ||
|
|
f4ae1e6c79 | ||
|
|
a91298d045 | ||
|
|
0fea3a5a85 | ||
|
|
7b830a69d9 | ||
|
|
22af0b373e |
7
.github/dependabot.yml
vendored
7
.github/dependabot.yml
vendored
@@ -19,3 +19,10 @@ updates:
|
||||
schedule:
|
||||
interval: "weekly"
|
||||
|
||||
- package-ecosystem: "github-actions"
|
||||
directory: "/"
|
||||
target-branch: develop
|
||||
labels: ["bug"]
|
||||
versioning-strategy: increase
|
||||
schedule:
|
||||
interval: "weekly"
|
||||
|
||||
14
.github/workflows/depsreview.yaml
vendored
Normal file
14
.github/workflows/depsreview.yaml
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
name: 'Dependency Review'
|
||||
on: [pull_request]
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
dependency-review:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: 'Checkout Repository'
|
||||
uses: actions/checkout@v3
|
||||
- name: 'Dependency Review'
|
||||
uses: actions/dependency-review-action@v1
|
||||
@@ -125,7 +125,7 @@ class StoreController extends Controller
|
||||
|
||||
$selectedGroup = $collector->getGroups()->first();
|
||||
if (null === $selectedGroup) {
|
||||
throw new FireflyException('Cannot find transaction. Possibly, a rule deleted this transaction after its creation.');
|
||||
throw new FireflyException('200032: Cannot find transaction. Possibly, a rule deleted this transaction after its creation.');
|
||||
}
|
||||
/** @var TransactionGroupTransformer $transformer */
|
||||
$transformer = app(TransactionGroupTransformer::class);
|
||||
|
||||
@@ -40,7 +40,7 @@ class AutocompleteRequest extends FormRequest
|
||||
*/
|
||||
public function getData(): array
|
||||
{
|
||||
$types = $this->string('types');
|
||||
$types = $this->convertString('types');
|
||||
$array = [];
|
||||
if ('' !== $types) {
|
||||
$array = explode(',', $types);
|
||||
@@ -53,7 +53,7 @@ class AutocompleteRequest extends FormRequest
|
||||
|
||||
return [
|
||||
'types' => $array,
|
||||
'query' => $this->string('query'),
|
||||
'query' => $this->convertString('query'),
|
||||
'date' => $this->getCarbonDate('date'),
|
||||
'limit' => $limit,
|
||||
];
|
||||
|
||||
@@ -43,9 +43,9 @@ class ExportRequest extends FormRequest
|
||||
$result = [
|
||||
'start' => $this->getCarbonDate('start') ?? Carbon::now()->subYear(),
|
||||
'end' => $this->getCarbonDate('end') ?? Carbon::now(),
|
||||
'type' => $this->string('type'),
|
||||
'type' => $this->convertString('type'),
|
||||
];
|
||||
$parts = explode(',', $this->string('accounts'));
|
||||
$parts = explode(',', $this->convertString('accounts'));
|
||||
$repository = app(AccountRepositoryInterface::class);
|
||||
$repository->setUser(auth()->user());
|
||||
|
||||
|
||||
@@ -56,35 +56,35 @@ class StoreRequest extends FormRequest
|
||||
$includeNetWorth = $this->boolean('include_net_worth');
|
||||
}
|
||||
$data = [
|
||||
'name' => $this->string('name'),
|
||||
'name' => $this->convertString('name'),
|
||||
'active' => $active,
|
||||
'include_net_worth' => $includeNetWorth,
|
||||
'account_type_name' => $this->string('type'),
|
||||
'account_type_name' => $this->convertString('type'),
|
||||
'account_type_id' => null,
|
||||
'currency_id' => $this->integer('currency_id'),
|
||||
'order' => $this->integer('order'),
|
||||
'currency_code' => $this->string('currency_code'),
|
||||
'virtual_balance' => $this->string('virtual_balance'),
|
||||
'iban' => $this->string('iban'),
|
||||
'BIC' => $this->string('bic'),
|
||||
'account_number' => $this->string('account_number'),
|
||||
'account_role' => $this->string('account_role'),
|
||||
'opening_balance' => $this->string('opening_balance'),
|
||||
'currency_code' => $this->convertString('currency_code'),
|
||||
'virtual_balance' => $this->convertString('virtual_balance'),
|
||||
'iban' => $this->convertString('iban'),
|
||||
'BIC' => $this->convertString('bic'),
|
||||
'account_number' => $this->convertString('account_number'),
|
||||
'account_role' => $this->convertString('account_role'),
|
||||
'opening_balance' => $this->convertString('opening_balance'),
|
||||
'opening_balance_date' => $this->getCarbonDate('opening_balance_date'),
|
||||
'cc_type' => $this->string('credit_card_type'),
|
||||
'cc_monthly_payment_date' => $this->string('monthly_payment_date'),
|
||||
'cc_type' => $this->convertString('credit_card_type'),
|
||||
'cc_monthly_payment_date' => $this->convertString('monthly_payment_date'),
|
||||
'notes' => $this->stringWithNewlines('notes'),
|
||||
'interest' => $this->string('interest'),
|
||||
'interest_period' => $this->string('interest_period'),
|
||||
'interest' => $this->convertString('interest'),
|
||||
'interest_period' => $this->convertString('interest_period'),
|
||||
];
|
||||
// append location information.
|
||||
$data = $this->appendLocationData($data, null);
|
||||
|
||||
if ('liability' === $data['account_type_name'] || 'liabilities' === $data['account_type_name']) {
|
||||
$data['opening_balance'] = app('steam')->negative($this->string('liability_amount'));
|
||||
$data['opening_balance'] = app('steam')->negative($this->convertString('liability_amount'));
|
||||
$data['opening_balance_date'] = $this->getCarbonDate('liability_start_date');
|
||||
$data['account_type_name'] = $this->string('liability_type');
|
||||
$data['liability_direction'] = $this->string('liability_direction');
|
||||
$data['account_type_name'] = $this->convertString('liability_type');
|
||||
$data['liability_direction'] = $this->convertString('liability_direction');
|
||||
$data['account_type_id'] = null;
|
||||
}
|
||||
|
||||
@@ -101,7 +101,7 @@ class StoreRequest extends FormRequest
|
||||
$accountRoles = implode(',', config('firefly.accountRoles'));
|
||||
$types = implode(',', array_keys(config('firefly.subTitlesByIdentifier')));
|
||||
$ccPaymentTypes = implode(',', array_keys(config('firefly.ccTypes')));
|
||||
$type = $this->string('type');
|
||||
$type = $this->convertString('type');
|
||||
$rules = [
|
||||
'name' => 'required|min:1|uniqueAccountForUser',
|
||||
'type' => 'required|' . sprintf('in:%s', $types),
|
||||
|
||||
@@ -50,28 +50,28 @@ class UpdateRequest extends FormRequest
|
||||
public function getUpdateData(): array
|
||||
{
|
||||
$fields = [
|
||||
'name' => ['name', 'string'],
|
||||
'name' => ['name', 'convertString'],
|
||||
'active' => ['active', 'boolean'],
|
||||
'include_net_worth' => ['include_net_worth', 'boolean'],
|
||||
'account_type_name' => ['type', 'string'],
|
||||
'virtual_balance' => ['virtual_balance', 'string'],
|
||||
'iban' => ['iban', 'string'],
|
||||
'BIC' => ['bic', 'string'],
|
||||
'account_number' => ['account_number', 'string'],
|
||||
'account_role' => ['account_role', 'string'],
|
||||
'liability_type' => ['liability_type', 'string'],
|
||||
'opening_balance' => ['opening_balance', 'string'],
|
||||
'account_type_name' => ['type', 'convertString'],
|
||||
'virtual_balance' => ['virtual_balance', 'convertString'],
|
||||
'iban' => ['iban', 'convertString'],
|
||||
'BIC' => ['bic', 'convertString'],
|
||||
'account_number' => ['account_number', 'convertString'],
|
||||
'account_role' => ['account_role', 'convertString'],
|
||||
'liability_type' => ['liability_type', 'convertString'],
|
||||
'opening_balance' => ['opening_balance', 'convertString'],
|
||||
'opening_balance_date' => ['opening_balance_date', 'date'],
|
||||
'cc_type' => ['credit_card_type', 'string'],
|
||||
'cc_monthly_payment_date' => ['monthly_payment_date', 'string'],
|
||||
'cc_type' => ['credit_card_type', 'convertString'],
|
||||
'cc_monthly_payment_date' => ['monthly_payment_date', 'convertString'],
|
||||
'notes' => ['notes', 'stringWithNewlines'],
|
||||
'interest' => ['interest', 'string'],
|
||||
'interest_period' => ['interest_period', 'string'],
|
||||
'interest' => ['interest', 'convertString'],
|
||||
'interest_period' => ['interest_period', 'convertString'],
|
||||
'order' => ['order', 'integer'],
|
||||
'currency_id' => ['currency_id', 'integer'],
|
||||
'currency_code' => ['currency_code', 'string'],
|
||||
'liability_direction' => ['liability_direction', 'string'],
|
||||
'liability_amount' => ['liability_amount', 'string'],
|
||||
'currency_code' => ['currency_code', 'convertString'],
|
||||
'liability_direction' => ['liability_direction', 'convertString'],
|
||||
'liability_amount' => ['liability_amount', 'convertString'],
|
||||
'liability_start_date' => ['liability_start_date', 'date'],
|
||||
];
|
||||
/** @var Account $account */
|
||||
@@ -107,9 +107,9 @@ class UpdateRequest extends FormRequest
|
||||
$rules = [
|
||||
'name' => sprintf('min:1|uniqueAccountForUser:%d', $account->id),
|
||||
'type' => sprintf('in:%s', $types),
|
||||
'iban' => ['iban', 'nullable', new UniqueIban($account, $this->string('type'))],
|
||||
'iban' => ['iban', 'nullable', new UniqueIban($account, $this->convertString('type'))],
|
||||
'bic' => 'bic|nullable',
|
||||
'account_number' => ['between:1,255', 'nullable', new UniqueAccountNumber($account, $this->string('type'))],
|
||||
'account_number' => ['between:1,255', 'nullable', new UniqueAccountNumber($account, $this->convertString('type'))],
|
||||
'opening_balance' => 'numeric|required_with:opening_balance_date|nullable',
|
||||
'opening_balance_date' => 'date|required_with:opening_balance|nullable',
|
||||
'virtual_balance' => 'numeric|nullable',
|
||||
|
||||
@@ -45,10 +45,10 @@ class StoreRequest extends FormRequest
|
||||
public function getAll(): array
|
||||
{
|
||||
return [
|
||||
'filename' => $this->string('filename'),
|
||||
'title' => $this->string('title'),
|
||||
'filename' => $this->convertString('filename'),
|
||||
'title' => $this->convertString('title'),
|
||||
'notes' => $this->stringWithNewlines('notes'),
|
||||
'attachable_type' => $this->string('attachable_type'),
|
||||
'attachable_type' => $this->convertString('attachable_type'),
|
||||
'attachable_id' => $this->integer('attachable_id'),
|
||||
];
|
||||
}
|
||||
@@ -68,7 +68,7 @@ class StoreRequest extends FormRequest
|
||||
}, $models
|
||||
);
|
||||
$models = implode(',', $models);
|
||||
$model = $this->string('attachable_type');
|
||||
$model = $this->convertString('attachable_type');
|
||||
|
||||
return [
|
||||
'filename' => 'required|between:1,255',
|
||||
|
||||
@@ -45,10 +45,10 @@ class UpdateRequest extends FormRequest
|
||||
public function getAll(): array
|
||||
{
|
||||
$fields = [
|
||||
'filename' => ['filename', 'string'],
|
||||
'title' => ['title', 'string'],
|
||||
'filename' => ['filename', 'convertString'],
|
||||
'title' => ['title', 'convertString'],
|
||||
'notes' => ['notes', 'stringWithNewlines'],
|
||||
'attachable_type' => ['attachable_type', 'string'],
|
||||
'attachable_type' => ['attachable_type', 'convertString'],
|
||||
'attachable_id' => ['attachable_id', 'integer'],
|
||||
];
|
||||
|
||||
@@ -70,7 +70,7 @@ class UpdateRequest extends FormRequest
|
||||
}, $models
|
||||
);
|
||||
$models = implode(',', $models);
|
||||
$model = $this->string('attachable_type');
|
||||
$model = $this->convertString('attachable_type');
|
||||
|
||||
return [
|
||||
'filename' => 'between:1,255',
|
||||
|
||||
@@ -48,8 +48,8 @@ class Request extends FormRequest
|
||||
// this is the way:
|
||||
$fields = [
|
||||
'currency_id' => ['currency_id', 'integer'],
|
||||
'currency_code' => ['currency_code', 'string'],
|
||||
'amount' => ['amount', 'string'],
|
||||
'currency_code' => ['currency_code', 'convertString'],
|
||||
'amount' => ['amount', 'convertString'],
|
||||
'start' => ['start', 'date'],
|
||||
'end' => ['end', 'date'],
|
||||
];
|
||||
|
||||
@@ -49,21 +49,21 @@ class StoreRequest extends FormRequest
|
||||
{
|
||||
Log::debug('Raw fields in Bill StoreRequest', $this->all());
|
||||
$fields = [
|
||||
'name' => ['name', 'string'],
|
||||
'amount_min' => ['amount_min', 'string'],
|
||||
'amount_max' => ['amount_max', 'string'],
|
||||
'name' => ['name', 'convertString'],
|
||||
'amount_min' => ['amount_min', 'convertString'],
|
||||
'amount_max' => ['amount_max', 'convertString'],
|
||||
'currency_id' => ['currency_id', 'integer'],
|
||||
'currency_code' => ['currency_code', 'string'],
|
||||
'currency_code' => ['currency_code', 'convertString'],
|
||||
'date' => ['date', 'date'],
|
||||
'end_date' => ['end_date', 'date'],
|
||||
'extension_date' => ['extension_date', 'date'],
|
||||
'repeat_freq' => ['repeat_freq', 'string'],
|
||||
'repeat_freq' => ['repeat_freq', 'convertString'],
|
||||
'skip' => ['skip', 'integer'],
|
||||
'active' => ['active', 'boolean'],
|
||||
'order' => ['order', 'integer'],
|
||||
'notes' => ['notes', 'stringWithNewlines'],
|
||||
'object_group_id' => ['object_group_id', 'integer'],
|
||||
'object_group_title' => ['object_group_title', 'string'],
|
||||
'object_group_title' => ['object_group_title', 'convertString'],
|
||||
];
|
||||
|
||||
return $this->getAllData($fields);
|
||||
|
||||
@@ -47,21 +47,21 @@ class UpdateRequest extends FormRequest
|
||||
public function getAll(): array
|
||||
{
|
||||
$fields = [
|
||||
'name' => ['name', 'string'],
|
||||
'amount_min' => ['amount_min', 'string'],
|
||||
'amount_max' => ['amount_max', 'string'],
|
||||
'name' => ['name', 'convertString'],
|
||||
'amount_min' => ['amount_min', 'convertString'],
|
||||
'amount_max' => ['amount_max', 'convertString'],
|
||||
'currency_id' => ['currency_id', 'integer'],
|
||||
'currency_code' => ['currency_code', 'string'],
|
||||
'currency_code' => ['currency_code', 'convertString'],
|
||||
'date' => ['date', 'date'],
|
||||
'end_date' => ['end_date', 'date'],
|
||||
'extension_date' => ['extension_date', 'date'],
|
||||
'repeat_freq' => ['repeat_freq', 'string'],
|
||||
'repeat_freq' => ['repeat_freq', 'convertString'],
|
||||
'skip' => ['skip', 'integer'],
|
||||
'active' => ['active', 'boolean'],
|
||||
'order' => ['order', 'integer'],
|
||||
'notes' => ['notes', 'stringWithNewlines'],
|
||||
'object_group_id' => ['object_group_id', 'integer'],
|
||||
'object_group_title' => ['object_group_title', 'string'],
|
||||
'object_group_title' => ['object_group_title', 'convertString'],
|
||||
];
|
||||
|
||||
return $this->getAllData($fields);
|
||||
|
||||
@@ -47,17 +47,17 @@ class StoreRequest extends FormRequest
|
||||
public function getAll(): array
|
||||
{
|
||||
$fields = [
|
||||
'name' => ['name', 'string'],
|
||||
'name' => ['name', 'convertString'],
|
||||
'active' => ['active', 'boolean'],
|
||||
'order' => ['active', 'integer'],
|
||||
'notes' => ['notes', 'string'],
|
||||
'notes' => ['notes', 'convertString'],
|
||||
|
||||
// auto budget currency:
|
||||
'currency_id' => ['auto_budget_currency_id', 'integer'],
|
||||
'currency_code' => ['auto_budget_currency_code', 'string'],
|
||||
'auto_budget_type' => ['auto_budget_type', 'string'],
|
||||
'auto_budget_amount' => ['auto_budget_amount', 'string'],
|
||||
'auto_budget_period' => ['auto_budget_period', 'string'],
|
||||
'currency_code' => ['auto_budget_currency_code', 'convertString'],
|
||||
'auto_budget_type' => ['auto_budget_type', 'convertString'],
|
||||
'auto_budget_amount' => ['auto_budget_amount', 'convertString'],
|
||||
'auto_budget_period' => ['auto_budget_period', 'convertString'],
|
||||
];
|
||||
|
||||
return $this->getAllData($fields);
|
||||
|
||||
@@ -48,15 +48,15 @@ class UpdateRequest extends FormRequest
|
||||
{
|
||||
// this is the way:
|
||||
$fields = [
|
||||
'name' => ['name', 'string'],
|
||||
'name' => ['name', 'convertString'],
|
||||
'active' => ['active', 'boolean'],
|
||||
'order' => ['order', 'integer'],
|
||||
'notes' => ['notes', 'string'],
|
||||
'notes' => ['notes', 'convertString'],
|
||||
'currency_id' => ['auto_budget_currency_id', 'integer'],
|
||||
'currency_code' => ['auto_budget_currency_code', 'string'],
|
||||
'auto_budget_type' => ['auto_budget_type', 'string'],
|
||||
'auto_budget_amount' => ['auto_budget_amount', 'string'],
|
||||
'auto_budget_period' => ['auto_budget_period', 'string'],
|
||||
'currency_code' => ['auto_budget_currency_code', 'convertString'],
|
||||
'auto_budget_type' => ['auto_budget_type', 'convertString'],
|
||||
'auto_budget_amount' => ['auto_budget_amount', 'convertString'],
|
||||
'auto_budget_period' => ['auto_budget_period', 'convertString'],
|
||||
];
|
||||
$allData = $this->getAllData($fields);
|
||||
if (array_key_exists('auto_budget_type', $allData)) {
|
||||
|
||||
@@ -46,9 +46,9 @@ class StoreRequest extends FormRequest
|
||||
return [
|
||||
'start' => $this->getCarbonDate('start'),
|
||||
'end' => $this->getCarbonDate('end'),
|
||||
'amount' => $this->string('amount'),
|
||||
'amount' => $this->convertString('amount'),
|
||||
'currency_id' => $this->integer('currency_id'),
|
||||
'currency_code' => $this->string('currency_code'),
|
||||
'currency_code' => $this->convertString('currency_code'),
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
@@ -48,9 +48,9 @@ class UpdateRequest extends FormRequest
|
||||
$fields = [
|
||||
'start' => ['start', 'date'],
|
||||
'end' => ['end', 'date'],
|
||||
'amount' => ['amount', 'string'],
|
||||
'amount' => ['amount', 'convertString'],
|
||||
'currency_id' => ['currency_id', 'integer'],
|
||||
'currency_code' => ['currency_code', 'string'],
|
||||
'currency_code' => ['currency_code', 'convertString'],
|
||||
];
|
||||
|
||||
return $this->getAllData($fields);
|
||||
|
||||
@@ -45,7 +45,7 @@ class StoreRequest extends FormRequest
|
||||
public function getAll(): array
|
||||
{
|
||||
return [
|
||||
'name' => $this->string('name'),
|
||||
'name' => $this->convertString('name'),
|
||||
'notes' => $this->stringWithNewlines('notes'),
|
||||
];
|
||||
}
|
||||
|
||||
@@ -44,7 +44,7 @@ class UpdateRequest extends FormRequest
|
||||
public function getAll(): array
|
||||
{
|
||||
$fields = [
|
||||
'name' => ['name', 'string'],
|
||||
'name' => ['name', 'convertString'],
|
||||
'notes' => ['notes', 'stringWithNewlines'],
|
||||
];
|
||||
|
||||
|
||||
@@ -43,7 +43,7 @@ class UpdateRequest extends FormRequest
|
||||
public function getUpdateData(): array
|
||||
{
|
||||
$fields = [
|
||||
'title' => ['title', 'string'],
|
||||
'title' => ['title', 'convertString'],
|
||||
'order' => ['order', 'integer'],
|
||||
];
|
||||
|
||||
|
||||
@@ -47,15 +47,15 @@ class StoreRequest extends FormRequest
|
||||
'order' => ['order', 'integer'],
|
||||
];
|
||||
$data = $this->getAllData($fields);
|
||||
$data['name'] = $this->string('name');
|
||||
$data['name'] = $this->convertString('name');
|
||||
$data['account_id'] = $this->integer('account_id');
|
||||
$data['targetamount'] = $this->string('target_amount');
|
||||
$data['current_amount'] = $this->string('current_amount');
|
||||
$data['targetamount'] = $this->convertString('target_amount');
|
||||
$data['current_amount'] = $this->convertString('current_amount');
|
||||
$data['startdate'] = $this->getCarbonDate('start_date');
|
||||
$data['targetdate'] = $this->getCarbonDate('target_date');
|
||||
$data['notes'] = $this->stringWithNewlines('notes');
|
||||
$data['object_group_id'] = $this->integer('object_group_id');
|
||||
$data['object_group_title'] = $this->string('object_group_title');
|
||||
$data['object_group_title'] = $this->convertString('object_group_title');
|
||||
|
||||
return $data;
|
||||
|
||||
|
||||
@@ -46,15 +46,15 @@ class UpdateRequest extends FormRequest
|
||||
public function getAll(): array
|
||||
{
|
||||
$fields = [
|
||||
'name' => ['name', 'string'],
|
||||
'name' => ['name', 'convertString'],
|
||||
'account_id' => ['account_id', 'integer'],
|
||||
'targetamount' => ['target_amount', 'string'],
|
||||
'current_amount' => ['current_amount', 'string'],
|
||||
'targetamount' => ['target_amount', 'convertString'],
|
||||
'current_amount' => ['current_amount', 'convertString'],
|
||||
'startdate' => ['start_date', 'date'],
|
||||
'targetdate' => ['target_date', 'string'],
|
||||
'targetdate' => ['target_date', 'convertString'],
|
||||
'notes' => ['notes', 'stringWithNewlines'],
|
||||
'order' => ['order', 'integer'],
|
||||
'object_group_title' => ['object_group_title', 'string'],
|
||||
'object_group_title' => ['object_group_title', 'convertString'],
|
||||
'object_group_id' => ['object_group_id', 'integer'],
|
||||
];
|
||||
|
||||
|
||||
@@ -49,9 +49,9 @@ class StoreRequest extends FormRequest
|
||||
public function getAll(): array
|
||||
{
|
||||
$fields = [
|
||||
'type' => ['type', 'string'],
|
||||
'title' => ['title', 'string'],
|
||||
'description' => ['description', 'string'],
|
||||
'type' => ['type', 'convertString'],
|
||||
'title' => ['title', 'convertString'],
|
||||
'description' => ['description', 'convertString'],
|
||||
'first_date' => ['first_date', 'date'],
|
||||
'repeat_until' => ['repeat_until', 'date'],
|
||||
'nr_of_repetitions' => ['nr_of_repetitions', 'integer'],
|
||||
|
||||
@@ -51,14 +51,14 @@ class UpdateRequest extends FormRequest
|
||||
{
|
||||
// this is the way:
|
||||
$fields = [
|
||||
'title' => ['title', 'string'],
|
||||
'description' => ['description', 'string'],
|
||||
'title' => ['title', 'convertString'],
|
||||
'description' => ['description', 'convertString'],
|
||||
'first_date' => ['first_date', 'date'],
|
||||
'repeat_until' => ['repeat_until', 'date'],
|
||||
'nr_of_repetitions' => ['nr_of_repetitions', 'integer'],
|
||||
'apply_rules' => ['apply_rules', 'boolean'],
|
||||
'active' => ['active', 'boolean'],
|
||||
'notes' => ['notes', 'string'],
|
||||
'notes' => ['notes', 'convertString'],
|
||||
];
|
||||
$reps = $this->getRepetitionData();
|
||||
$transactions = $this->getTransactionData();
|
||||
|
||||
@@ -46,12 +46,12 @@ class StoreRequest extends FormRequest
|
||||
public function getAll(): array
|
||||
{
|
||||
$fields = [
|
||||
'title' => ['title', 'string'],
|
||||
'description' => ['description', 'string'],
|
||||
'title' => ['title', 'convertString'],
|
||||
'description' => ['description', 'convertString'],
|
||||
'rule_group_id' => ['rule_group_id', 'integer'],
|
||||
'order' => ['order', 'integer'],
|
||||
'rule_group_title' => ['rule_group_title', 'string'],
|
||||
'trigger' => ['trigger', 'string'],
|
||||
'rule_group_title' => ['rule_group_title', 'convertString'],
|
||||
'trigger' => ['trigger', 'convertString'],
|
||||
'strict' => ['strict', 'boolean'],
|
||||
'stop_processing' => ['stop_processing', 'boolean'],
|
||||
'active' => ['active', 'boolean'],
|
||||
|
||||
@@ -46,10 +46,10 @@ class UpdateRequest extends FormRequest
|
||||
public function getAll(): array
|
||||
{
|
||||
$fields = [
|
||||
'title' => ['title', 'string'],
|
||||
'title' => ['title', 'convertString'],
|
||||
'description' => ['description', 'stringWithNewlines'],
|
||||
'rule_group_id' => ['rule_group_id', 'integer'],
|
||||
'trigger' => ['trigger', 'string'],
|
||||
'trigger' => ['trigger', 'convertString'],
|
||||
'strict' => ['strict', 'boolean'],
|
||||
'stop_processing' => ['stop_processing', 'boolean'],
|
||||
'active' => ['active', 'boolean'],
|
||||
|
||||
@@ -53,8 +53,8 @@ class StoreRequest extends FormRequest
|
||||
}
|
||||
|
||||
return [
|
||||
'title' => $this->string('title'),
|
||||
'description' => $this->string('description'),
|
||||
'title' => $this->convertString('title'),
|
||||
'description' => $this->convertString('description'),
|
||||
'active' => $active,
|
||||
'order' => $order,
|
||||
];
|
||||
|
||||
@@ -45,7 +45,7 @@ class UpdateRequest extends FormRequest
|
||||
{
|
||||
// This is the way.
|
||||
$fields = [
|
||||
'title' => ['title', 'string'],
|
||||
'title' => ['title', 'convertString'],
|
||||
'description' => ['description', 'stringWithNewlines'],
|
||||
'active' => ['active', 'boolean'],
|
||||
'order' => ['order', 'integer'],
|
||||
|
||||
@@ -46,9 +46,9 @@ class StoreRequest extends FormRequest
|
||||
public function getAll(): array
|
||||
{
|
||||
$data = [
|
||||
'tag' => $this->string('tag'),
|
||||
'tag' => $this->convertString('tag'),
|
||||
'date' => $this->getCarbonDate('date'),
|
||||
'description' => $this->string('description'),
|
||||
'description' => $this->convertString('description'),
|
||||
'has_location' => true,
|
||||
];
|
||||
|
||||
|
||||
@@ -48,9 +48,9 @@ class UpdateRequest extends FormRequest
|
||||
{
|
||||
// This is the way.
|
||||
$fields = [
|
||||
'tag' => ['tag', 'string'],
|
||||
'tag' => ['tag', 'convertString'],
|
||||
'date' => ['date', 'date'],
|
||||
'description' => ['description', 'string'],
|
||||
'description' => ['description', 'convertString'],
|
||||
];
|
||||
$data = $this->getAllData($fields);
|
||||
|
||||
|
||||
@@ -55,7 +55,7 @@ class StoreRequest extends FormRequest
|
||||
Log::debug('get all data in TransactionStoreRequest');
|
||||
|
||||
return [
|
||||
'group_title' => $this->string('group_title'),
|
||||
'group_title' => $this->convertString('group_title'),
|
||||
'error_if_duplicate_hash' => $this->boolean('error_if_duplicate_hash'),
|
||||
'apply_rules' => $this->boolean('apply_rules', true),
|
||||
'fire_webhooks' => $this->boolean('fire_webhooks', true),
|
||||
|
||||
@@ -84,7 +84,7 @@ class UpdateRequest extends FormRequest
|
||||
'notes',
|
||||
];
|
||||
|
||||
$this->stringFields = [
|
||||
$this->convertStringFields = [
|
||||
'type',
|
||||
'currency_code',
|
||||
'foreign_currency_code',
|
||||
@@ -133,7 +133,7 @@ class UpdateRequest extends FormRequest
|
||||
$data['fire_webhooks'] = $this->boolean('fire_webhooks', true);
|
||||
}
|
||||
if ($this->has('group_title')) {
|
||||
$data['group_title'] = $this->string('group_title');
|
||||
$data['group_title'] = $this->convertString('group_title');
|
||||
}
|
||||
|
||||
return $data;
|
||||
@@ -196,7 +196,7 @@ class UpdateRequest extends FormRequest
|
||||
*/
|
||||
private function getStringData(array $current, array $transaction): array
|
||||
{
|
||||
foreach ($this->stringFields as $fieldName) {
|
||||
foreach ($this->convertStringFields as $fieldName) {
|
||||
if (array_key_exists($fieldName, $transaction)) {
|
||||
$current[$fieldName] = $this->clearString((string) $transaction[$fieldName], false);
|
||||
}
|
||||
|
||||
@@ -54,9 +54,9 @@ class StoreRequest extends FormRequest
|
||||
}
|
||||
|
||||
return [
|
||||
'name' => $this->string('name'),
|
||||
'code' => $this->string('code'),
|
||||
'symbol' => $this->string('symbol'),
|
||||
'name' => $this->convertString('name'),
|
||||
'code' => $this->convertString('code'),
|
||||
'symbol' => $this->convertString('symbol'),
|
||||
'decimal_places' => $this->integer('decimal_places'),
|
||||
'default' => $default,
|
||||
'enabled' => $enabled,
|
||||
|
||||
@@ -46,9 +46,9 @@ class UpdateRequest extends FormRequest
|
||||
{
|
||||
// return nothing that isn't explicitely in the array:
|
||||
$fields = [
|
||||
'name' => ['name', 'string'],
|
||||
'code' => ['code', 'string'],
|
||||
'symbol' => ['symbol', 'string'],
|
||||
'name' => ['name', 'convertString'],
|
||||
'code' => ['code', 'convertString'],
|
||||
'symbol' => ['symbol', 'convertString'],
|
||||
'decimal_places' => ['decimal_places', 'integer'],
|
||||
'default' => ['default', 'boolean'],
|
||||
'enabled' => ['enabled', 'boolean'],
|
||||
|
||||
@@ -47,7 +47,7 @@ class StoreRequest extends FormRequest
|
||||
{
|
||||
return [
|
||||
'link_type_id' => $this->integer('link_type_id'),
|
||||
'link_type_name' => $this->string('link_type_name'),
|
||||
'link_type_name' => $this->convertString('link_type_name'),
|
||||
'inward_id' => $this->integer('inward_id'),
|
||||
'outward_id' => $this->integer('outward_id'),
|
||||
'notes' => $this->stringWithNewlines('notes'),
|
||||
|
||||
@@ -47,7 +47,7 @@ class UpdateRequest extends FormRequest
|
||||
{
|
||||
return [
|
||||
'link_type_id' => $this->integer('link_type_id'),
|
||||
'link_type_name' => $this->string('link_type_name'),
|
||||
'link_type_name' => $this->convertString('link_type_name'),
|
||||
'inward_id' => $this->integer('inward_id'),
|
||||
'outward_id' => $this->integer('outward_id'),
|
||||
'notes' => $this->stringWithNewlines('notes'),
|
||||
|
||||
@@ -44,9 +44,9 @@ class StoreRequest extends FormRequest
|
||||
public function getAll(): array
|
||||
{
|
||||
return [
|
||||
'name' => $this->string('name'),
|
||||
'outward' => $this->string('outward'),
|
||||
'inward' => $this->string('inward'),
|
||||
'name' => $this->convertString('name'),
|
||||
'outward' => $this->convertString('outward'),
|
||||
'inward' => $this->convertString('inward'),
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
@@ -45,9 +45,9 @@ class UpdateRequest extends FormRequest
|
||||
public function getAll(): array
|
||||
{
|
||||
return [
|
||||
'name' => $this->string('name'),
|
||||
'outward' => $this->string('outward'),
|
||||
'inward' => $this->string('inward'),
|
||||
'name' => $this->convertString('name'),
|
||||
'outward' => $this->convertString('outward'),
|
||||
'inward' => $this->convertString('inward'),
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
@@ -45,12 +45,12 @@ class CreateRequest extends FormRequest
|
||||
$deliveries = array_flip(config('firefly.webhooks.deliveries'));
|
||||
|
||||
$fields = [
|
||||
'title' => ['title', 'string'],
|
||||
'title' => ['title', 'convertString'],
|
||||
'active' => ['active', 'boolean'],
|
||||
'trigger' => ['trigger', 'string'],
|
||||
'response' => ['response', 'string'],
|
||||
'delivery' => ['delivery', 'string'],
|
||||
'url' => ['url', 'string'],
|
||||
'trigger' => ['trigger', 'convertString'],
|
||||
'response' => ['response', 'convertString'],
|
||||
'delivery' => ['delivery', 'convertString'],
|
||||
'url' => ['url', 'convertString'],
|
||||
];
|
||||
|
||||
// this is the way.
|
||||
|
||||
@@ -45,12 +45,12 @@ class UpdateRequest extends FormRequest
|
||||
$deliveries = array_flip(config('firefly.webhooks.deliveries'));
|
||||
|
||||
$fields = [
|
||||
'title' => ['title', 'string'],
|
||||
'title' => ['title', 'convertString'],
|
||||
'active' => ['active', 'boolean'],
|
||||
'trigger' => ['trigger', 'string'],
|
||||
'response' => ['response', 'string'],
|
||||
'delivery' => ['delivery', 'string'],
|
||||
'url' => ['url', 'string'],
|
||||
'trigger' => ['trigger', 'convertString'],
|
||||
'response' => ['response', 'convertString'],
|
||||
'delivery' => ['delivery', 'convertString'],
|
||||
'url' => ['url', 'convertString'],
|
||||
];
|
||||
|
||||
// this is the way.
|
||||
@@ -66,7 +66,7 @@ class UpdateRequest extends FormRequest
|
||||
}
|
||||
$return['secret'] = null !== $this->get('secret');
|
||||
if (null !== $this->get('title')) {
|
||||
$return['title'] = $this->string('title');
|
||||
$return['title'] = $this->convertString('title');
|
||||
}
|
||||
|
||||
return $return;
|
||||
|
||||
@@ -57,7 +57,7 @@ class UpdateRequest extends FormRequest
|
||||
return ['value' => $this->integer('value')];
|
||||
}
|
||||
|
||||
return ['value' => $this->string('value')];
|
||||
return ['value' => $this->convertString('value')];
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -59,10 +59,10 @@ class UserStoreRequest extends FormRequest
|
||||
}
|
||||
|
||||
return [
|
||||
'email' => $this->string('email'),
|
||||
'email' => $this->convertString('email'),
|
||||
'blocked' => $blocked,
|
||||
'blocked_code' => $this->string('blocked_code'),
|
||||
'role' => $this->string('role'),
|
||||
'blocked_code' => $this->convertString('blocked_code'),
|
||||
'role' => $this->convertString('role'),
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
@@ -60,10 +60,10 @@ class UserUpdateRequest extends FormRequest
|
||||
}
|
||||
|
||||
return [
|
||||
'email' => $this->string('email'),
|
||||
'email' => $this->convertString('email'),
|
||||
'blocked' => $blocked,
|
||||
'blocked_code' => $this->string('blocked_code'),
|
||||
'role' => $this->string('role'),
|
||||
'blocked_code' => $this->convertString('blocked_code'),
|
||||
'role' => $this->convertString('role'),
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
@@ -37,7 +37,7 @@ class PreferenceStoreRequest extends FormRequest
|
||||
public function getAll(): array
|
||||
{
|
||||
$array = [
|
||||
'name' => $this->string('name'),
|
||||
'name' => $this->convertString('name'),
|
||||
'data' => $this->get('data'),
|
||||
];
|
||||
if ('true' === $array['data']) {
|
||||
|
||||
@@ -38,7 +38,7 @@ class PreferenceUpdateRequest extends FormRequest
|
||||
public function getAll(): array
|
||||
{
|
||||
$array = [
|
||||
'name' => $this->string('name'),
|
||||
'name' => $this->convertString('name'),
|
||||
'data' => $this->get('data'),
|
||||
];
|
||||
if ('true' === $array['data']) {
|
||||
|
||||
@@ -108,7 +108,11 @@ class FixTransactionTypes extends Command
|
||||
}
|
||||
$expectedType = (string) config(sprintf('firefly.account_to_transaction.%s.%s', $source->accountType->type, $destination->accountType->type));
|
||||
if ($expectedType !== $type) {
|
||||
$this->line(sprintf('Transaction journal #%d was of type "%s" but is corrected to "%s"', $journal->id, $type, $expectedType));
|
||||
$this->line(
|
||||
sprintf('Transaction journal #%d was of type "%s" but is corrected to "%s" (%s -> %s)',
|
||||
$journal->id, $type, $expectedType,
|
||||
$source->accountType->type, $destination->accountType->type,
|
||||
));
|
||||
$this->changeJournal($journal, $expectedType);
|
||||
|
||||
return true;
|
||||
|
||||
@@ -36,10 +36,8 @@ use Log;
|
||||
*/
|
||||
class TransactionGroupFactory
|
||||
{
|
||||
/** @var TransactionJournalFactory */
|
||||
private $journalFactory;
|
||||
/** @var User The user */
|
||||
private $user;
|
||||
private TransactionJournalFactory $journalFactory;
|
||||
private User $user;
|
||||
|
||||
/**
|
||||
* TransactionGroupFactory constructor.
|
||||
|
||||
@@ -338,6 +338,12 @@ class UserEventHandler
|
||||
Log::debug('Now in storeUserIPAddress');
|
||||
$user = $event->user;
|
||||
/** @var array $preference */
|
||||
|
||||
if($user->hasRole('demo')) {
|
||||
Log::debug('Do not log demo user logins');
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
$preference = app('preferences')->getForUser($user, 'login_ip_history', [])->data;
|
||||
} catch (FireflyException $e) {
|
||||
|
||||
@@ -27,6 +27,7 @@ namespace FireflyIII\Helpers\Collector\Extensions;
|
||||
use FireflyIII\Helpers\Collector\GroupCollectorInterface;
|
||||
use FireflyIII\Models\Attachment;
|
||||
use FireflyIII\Models\TransactionJournal;
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
use Illuminate\Database\Eloquent\Builder as EloquentBuilder;
|
||||
use Log;
|
||||
|
||||
@@ -299,7 +300,19 @@ trait AttachmentCollection
|
||||
{
|
||||
Log::debug('Add filter on no attachments.');
|
||||
$this->joinAttachmentTables();
|
||||
$this->query->whereNull('attachments.attachable_id');
|
||||
|
||||
$this->query->where(function (Builder $q1) {
|
||||
$q1
|
||||
->whereNull('attachments.attachable_id')
|
||||
->orWhere(function (Builder $q2) {
|
||||
$q2
|
||||
->whereNotNull('attachments.attachable_id')
|
||||
->whereNotNull('attachments.deleted_at');
|
||||
// id is not null
|
||||
// deleted at is not null.
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
@@ -555,7 +555,9 @@ trait TimeCollection
|
||||
*/
|
||||
public function setObjectBefore(Carbon $date, string $field): GroupCollectorInterface
|
||||
{
|
||||
die('a');
|
||||
$afterStr = $date->format('Y-m-d 00:00:00');
|
||||
$this->query->where(sprintf('transaction_journals.%s', $field), '<=', $afterStr);
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -506,7 +506,7 @@ class GroupCollector implements GroupCollectorInterface
|
||||
$groups[$groudId]['sums'][$currencyId]['currency_decimal_places'] = $transaction['currency_decimal_places'];
|
||||
$groups[$groudId]['sums'][$currencyId]['amount'] = '0';
|
||||
}
|
||||
$groups[$groudId]['sums'][$currencyId]['amount'] = bcadd($groups[$groudId]['sums'][$currencyId]['amount'], $transaction['amount'] ?? '0');
|
||||
$groups[$groudId]['sums'][$currencyId]['amount'] = bcadd($groups[$groudId]['sums'][$currencyId]['amount'], (string)($transaction['amount'] ?? '0'));
|
||||
|
||||
if (null !== $transaction['foreign_amount'] && null !== $transaction['foreign_currency_id']) {
|
||||
$currencyId = (int) $transaction['foreign_currency_id'];
|
||||
|
||||
@@ -217,9 +217,9 @@ class LinkController extends Controller
|
||||
public function store(LinkTypeFormRequest $request)
|
||||
{
|
||||
$data = [
|
||||
'name' => $request->string('name'),
|
||||
'inward' => $request->string('inward'),
|
||||
'outward' => $request->string('outward'),
|
||||
'name' => $request->convertString('name'),
|
||||
'inward' => $request->convertString('inward'),
|
||||
'outward' => $request->convertString('outward'),
|
||||
];
|
||||
$linkType = $this->repository->store($data);
|
||||
|
||||
@@ -255,9 +255,9 @@ class LinkController extends Controller
|
||||
}
|
||||
|
||||
$data = [
|
||||
'name' => $request->string('name'),
|
||||
'inward' => $request->string('inward'),
|
||||
'outward' => $request->string('outward'),
|
||||
'name' => $request->convertString('name'),
|
||||
'inward' => $request->convertString('inward'),
|
||||
'outward' => $request->convertString('outward'),
|
||||
];
|
||||
$this->repository->update($linkType, $data);
|
||||
|
||||
|
||||
@@ -92,7 +92,7 @@ class NewUserController extends Controller
|
||||
*/
|
||||
public function submit(NewUserFormRequest $request, CurrencyRepositoryInterface $currencyRepository)
|
||||
{
|
||||
$language = $request->string('language');
|
||||
$language = $request->convertString('language');
|
||||
if (!array_key_exists($language, config('firefly.languages'))) {
|
||||
$language = 'en_US';
|
||||
|
||||
|
||||
@@ -410,7 +410,7 @@ class ProfileController extends Controller
|
||||
|
||||
/** @var User $user */
|
||||
$user = auth()->user();
|
||||
$newEmail = $request->string('email');
|
||||
$newEmail = $request->convertString('email');
|
||||
$oldEmail = $user->email;
|
||||
if ($newEmail === $user->email) {
|
||||
session()->flash('error', (string) trans('firefly.email_not_changed'));
|
||||
|
||||
@@ -132,6 +132,7 @@ class CreateController extends Controller
|
||||
public function createFromJournal(Request $request, TransactionJournal $journal)
|
||||
{
|
||||
$budgets = app('expandedform')->makeSelectListWithEmpty($this->budgetRepos->getActiveBudgets());
|
||||
$bills = app('expandedform')->makeSelectListWithEmpty($this->billRepository->getActiveBills());
|
||||
$defaultCurrency = app('amount')->getDefaultCurrency();
|
||||
$tomorrow = today(config('app.timezone'));
|
||||
$oldRepetitionType = $request->old('repetition_type');
|
||||
@@ -213,7 +214,7 @@ class CreateController extends Controller
|
||||
|
||||
return view(
|
||||
'recurring.create',
|
||||
compact('tomorrow', 'oldRepetitionType', 'weekendResponses', 'preFilled', 'repetitionEnds', 'defaultCurrency', 'budgets')
|
||||
compact('tomorrow', 'oldRepetitionType', 'bills', 'weekendResponses', 'preFilled', 'repetitionEnds', 'defaultCurrency', 'budgets')
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -131,7 +131,7 @@ class EditController extends Controller
|
||||
public function update(RuleGroupFormRequest $request, RuleGroup $ruleGroup)
|
||||
{
|
||||
$data = [
|
||||
'title' => $request->string('title'),
|
||||
'title' => $request->convertString('title'),
|
||||
'description' => $request->stringWithNewlines('description'),
|
||||
'active' => 1 === (int) $request->input('active'),
|
||||
];
|
||||
|
||||
@@ -110,8 +110,8 @@ class BulkController extends Controller
|
||||
$journal = $this->repository->find($journalId);
|
||||
if (null !== $journal) {
|
||||
$resultA = $this->updateJournalBudget($journal, $ignoreBudget, $request->integer('budget_id'));
|
||||
$resultB = $this->updateJournalTags($journal, $tagsAction, explode(',', $request->string('tags')));
|
||||
$resultC = $this->updateJournalCategory($journal, $ignoreCategory, $request->string('category'));
|
||||
$resultB = $this->updateJournalTags($journal, $tagsAction, explode(',', $request->convertString('tags')));
|
||||
$resultC = $this->updateJournalCategory($journal, $ignoreCategory, $request->convertString('category'));
|
||||
if ($resultA || $resultB || $resultC) {
|
||||
$count++;
|
||||
}
|
||||
|
||||
@@ -45,24 +45,24 @@ class AccountFormRequest extends FormRequest
|
||||
public function getAccountData(): array
|
||||
{
|
||||
$data = [
|
||||
'name' => $this->string('name'),
|
||||
'name' => $this->convertString('name'),
|
||||
'active' => $this->boolean('active'),
|
||||
'account_type_name' => $this->string('objectType'),
|
||||
'account_type_name' => $this->convertString('objectType'),
|
||||
'currency_id' => $this->integer('currency_id'),
|
||||
'virtual_balance' => $this->string('virtual_balance'),
|
||||
'iban' => $this->string('iban'),
|
||||
'BIC' => $this->string('BIC'),
|
||||
'account_number' => $this->string('account_number'),
|
||||
'account_role' => $this->string('account_role'),
|
||||
'opening_balance' => $this->string('opening_balance'),
|
||||
'virtual_balance' => $this->convertString('virtual_balance'),
|
||||
'iban' => $this->convertString('iban'),
|
||||
'BIC' => $this->convertString('BIC'),
|
||||
'account_number' => $this->convertString('account_number'),
|
||||
'account_role' => $this->convertString('account_role'),
|
||||
'opening_balance' => $this->convertString('opening_balance'),
|
||||
'opening_balance_date' => $this->getCarbonDate('opening_balance_date'),
|
||||
'cc_type' => $this->string('cc_type'),
|
||||
'cc_monthly_payment_date' => $this->string('cc_monthly_payment_date'),
|
||||
'cc_type' => $this->convertString('cc_type'),
|
||||
'cc_monthly_payment_date' => $this->convertString('cc_monthly_payment_date'),
|
||||
'notes' => $this->stringWithNewlines('notes'),
|
||||
'interest' => $this->string('interest'),
|
||||
'interest_period' => $this->string('interest_period'),
|
||||
'interest' => $this->convertString('interest'),
|
||||
'interest_period' => $this->convertString('interest_period'),
|
||||
'include_net_worth' => '1',
|
||||
'liability_direction' => $this->string('liability_direction'),
|
||||
'liability_direction' => $this->convertString('liability_direction'),
|
||||
];
|
||||
|
||||
$data = $this->appendLocationData($data, 'location');
|
||||
@@ -100,7 +100,7 @@ class AccountFormRequest extends FormRequest
|
||||
'name' => 'required|min:1|uniqueAccountForUser',
|
||||
'opening_balance' => 'numeric|nullable|max:1000000000',
|
||||
'opening_balance_date' => 'date|required_with:opening_balance|nullable',
|
||||
'iban' => ['iban', 'nullable', new UniqueIban(null, $this->string('objectType'))],
|
||||
'iban' => ['iban', 'nullable', new UniqueIban(null, $this->convertString('objectType'))],
|
||||
'BIC' => 'bic|nullable',
|
||||
'virtual_balance' => 'numeric|nullable|max:1000000000',
|
||||
'currency_id' => 'exists:transaction_currencies,id',
|
||||
|
||||
@@ -43,8 +43,8 @@ class AttachmentFormRequest extends FormRequest
|
||||
public function getAttachmentData(): array
|
||||
{
|
||||
return [
|
||||
'title' => $this->string('title'),
|
||||
'notes' => $this->string('notes'),
|
||||
'title' => $this->convertString('title'),
|
||||
'notes' => $this->convertString('notes'),
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
@@ -41,19 +41,19 @@ class BillStoreRequest extends FormRequest
|
||||
public function getBillData(): array
|
||||
{
|
||||
return [
|
||||
'name' => $this->string('name'),
|
||||
'amount_min' => $this->string('amount_min'),
|
||||
'name' => $this->convertString('name'),
|
||||
'amount_min' => $this->convertString('amount_min'),
|
||||
'currency_id' => $this->integer('transaction_currency_id'),
|
||||
'currency_code' => '',
|
||||
'amount_max' => $this->string('amount_max'),
|
||||
'amount_max' => $this->convertString('amount_max'),
|
||||
'date' => $this->getCarbonDate('date'),
|
||||
'end_date' => $this->getCarbonDate('bill_end_date'),
|
||||
'extension_date' => $this->getCarbonDate('extension_date'),
|
||||
'repeat_freq' => $this->string('repeat_freq'),
|
||||
'repeat_freq' => $this->convertString('repeat_freq'),
|
||||
'skip' => $this->integer('skip'),
|
||||
'notes' => $this->stringWithNewlines('notes'),
|
||||
'active' => $this->boolean('active'),
|
||||
'object_group_title' => $this->string('object_group'),
|
||||
'object_group_title' => $this->convertString('object_group'),
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
@@ -42,19 +42,19 @@ class BillUpdateRequest extends FormRequest
|
||||
public function getBillData(): array
|
||||
{
|
||||
return [
|
||||
'name' => $this->string('name'),
|
||||
'amount_min' => $this->string('amount_min'),
|
||||
'name' => $this->convertString('name'),
|
||||
'amount_min' => $this->convertString('amount_min'),
|
||||
'currency_id' => $this->integer('transaction_currency_id'),
|
||||
'currency_code' => '',
|
||||
'amount_max' => $this->string('amount_max'),
|
||||
'amount_max' => $this->convertString('amount_max'),
|
||||
'date' => $this->getCarbonDate('date'),
|
||||
'end_date' => $this->getCarbonDate('bill_end_date'),
|
||||
'extension_date' => $this->getCarbonDate('extension_date'),
|
||||
'repeat_freq' => $this->string('repeat_freq'),
|
||||
'repeat_freq' => $this->convertString('repeat_freq'),
|
||||
'skip' => $this->integer('skip'),
|
||||
'notes' => $this->stringWithNewlines('notes'),
|
||||
'active' => $this->boolean('active'),
|
||||
'object_group_title' => $this->string('object_group'),
|
||||
'object_group_title' => $this->convertString('object_group'),
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
@@ -44,12 +44,12 @@ class BudgetFormStoreRequest extends FormRequest
|
||||
public function getBudgetData(): array
|
||||
{
|
||||
return [
|
||||
'name' => $this->string('name'),
|
||||
'name' => $this->convertString('name'),
|
||||
'active' => $this->boolean('active'),
|
||||
'auto_budget_type' => $this->integer('auto_budget_type'),
|
||||
'currency_id' => $this->integer('auto_budget_currency_id'),
|
||||
'auto_budget_amount' => $this->string('auto_budget_amount'),
|
||||
'auto_budget_period' => $this->string('auto_budget_period'),
|
||||
'auto_budget_amount' => $this->convertString('auto_budget_amount'),
|
||||
'auto_budget_period' => $this->convertString('auto_budget_period'),
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
@@ -45,12 +45,12 @@ class BudgetFormUpdateRequest extends FormRequest
|
||||
public function getBudgetData(): array
|
||||
{
|
||||
return [
|
||||
'name' => $this->string('name'),
|
||||
'name' => $this->convertString('name'),
|
||||
'active' => $this->boolean('active'),
|
||||
'auto_budget_type' => $this->integer('auto_budget_type'),
|
||||
'currency_id' => $this->integer('auto_budget_currency_id'),
|
||||
'auto_budget_amount' => $this->string('auto_budget_amount'),
|
||||
'auto_budget_period' => $this->string('auto_budget_period'),
|
||||
'auto_budget_amount' => $this->convertString('auto_budget_amount'),
|
||||
'auto_budget_period' => $this->convertString('auto_budget_period'),
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
@@ -42,7 +42,7 @@ class CategoryFormRequest extends FormRequest
|
||||
public function getCategoryData(): array
|
||||
{
|
||||
return [
|
||||
'name' => $this->string('name'),
|
||||
'name' => $this->convertString('name'),
|
||||
'notes' => $this->stringWithNewlines('notes'),
|
||||
];
|
||||
}
|
||||
|
||||
@@ -42,9 +42,9 @@ class CurrencyFormRequest extends FormRequest
|
||||
public function getCurrencyData(): array
|
||||
{
|
||||
return [
|
||||
'name' => $this->string('name'),
|
||||
'code' => $this->string('code'),
|
||||
'symbol' => $this->string('symbol'),
|
||||
'name' => $this->convertString('name'),
|
||||
'code' => $this->convertString('code'),
|
||||
'symbol' => $this->convertString('symbol'),
|
||||
'decimal_places' => $this->integer('decimal_places'),
|
||||
'enabled' => $this->boolean('enabled'),
|
||||
];
|
||||
|
||||
@@ -46,7 +46,7 @@ class JournalLinkRequest extends FormRequest
|
||||
$parts = explode('_', $linkType);
|
||||
$return['link_type_id'] = (int) $parts[0];
|
||||
$return['transaction_journal_id'] = $this->integer('opposing');
|
||||
$return['notes'] = $this->string('notes');
|
||||
$return['notes'] = $this->convertString('notes');
|
||||
$return['direction'] = $parts[1];
|
||||
|
||||
return $return;
|
||||
|
||||
@@ -42,7 +42,7 @@ class ObjectGroupFormRequest extends FormRequest
|
||||
public function getObjectGroupData(): array
|
||||
{
|
||||
return [
|
||||
'title' => $this->string('title'),
|
||||
'title' => $this->convertString('title'),
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
@@ -41,13 +41,13 @@ class PiggyBankStoreRequest extends FormRequest
|
||||
public function getPiggyBankData(): array
|
||||
{
|
||||
return [
|
||||
'name' => $this->string('name'),
|
||||
'name' => $this->convertString('name'),
|
||||
'startdate' => $this->getCarbonDate('startdate'),
|
||||
'account_id' => $this->integer('account_id'),
|
||||
'targetamount' => $this->string('targetamount'),
|
||||
'targetamount' => $this->convertString('targetamount'),
|
||||
'targetdate' => $this->getCarbonDate('targetdate'),
|
||||
'notes' => $this->stringWithNewlines('notes'),
|
||||
'object_group_title' => $this->string('object_group'),
|
||||
'object_group_title' => $this->convertString('object_group'),
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
@@ -42,13 +42,13 @@ class PiggyBankUpdateRequest extends FormRequest
|
||||
public function getPiggyBankData(): array
|
||||
{
|
||||
return [
|
||||
'name' => $this->string('name'),
|
||||
'name' => $this->convertString('name'),
|
||||
'startdate' => $this->getCarbonDate('startdate'),
|
||||
'account_id' => $this->integer('account_id'),
|
||||
'targetamount' => $this->string('targetamount'),
|
||||
'targetamount' => $this->convertString('targetamount'),
|
||||
'targetdate' => $this->getCarbonDate('targetdate'),
|
||||
'notes' => $this->stringWithNewlines('notes'),
|
||||
'object_group_title' => $this->string('object_group'),
|
||||
'object_group_title' => $this->convertString('object_group'),
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
@@ -50,11 +50,11 @@ class ReconciliationStoreRequest extends FormRequest
|
||||
$data = [
|
||||
'start' => $this->getCarbonDate('start'),
|
||||
'end' => $this->getCarbonDate('end'),
|
||||
'start_balance' => $this->string('startBalance'),
|
||||
'end_balance' => $this->string('endBalance'),
|
||||
'difference' => $this->string('difference'),
|
||||
'start_balance' => $this->convertString('startBalance'),
|
||||
'end_balance' => $this->convertString('endBalance'),
|
||||
'difference' => $this->convertString('difference'),
|
||||
'journals' => $transactions,
|
||||
'reconcile' => $this->string('reconcile'),
|
||||
'reconcile' => $this->convertString('reconcile'),
|
||||
];
|
||||
Log::debug('In ReconciliationStoreRequest::getAll(). Will now return data.');
|
||||
|
||||
|
||||
@@ -56,23 +56,23 @@ class RecurrenceFormRequest extends FormRequest
|
||||
$repetitionData = $this->parseRepetitionData();
|
||||
$return = [
|
||||
'recurrence' => [
|
||||
'type' => $this->string('transaction_type'),
|
||||
'title' => $this->string('title'),
|
||||
'description' => $this->string('recurring_description'),
|
||||
'type' => $this->convertString('transaction_type'),
|
||||
'title' => $this->convertString('title'),
|
||||
'description' => $this->convertString('recurring_description'),
|
||||
'first_date' => $this->getCarbonDate('first_date'),
|
||||
'repeat_until' => $this->getCarbonDate('repeat_until'),
|
||||
'nr_of_repetitions' => $this->integer('repetitions'),
|
||||
'apply_rules' => $this->boolean('apply_rules'),
|
||||
'active' => $this->boolean('active'),
|
||||
'repetition_end' => $this->string('repetition_end'),
|
||||
'repetition_end' => $this->convertString('repetition_end'),
|
||||
],
|
||||
'transactions' => [
|
||||
[
|
||||
'currency_id' => $this->integer('transaction_currency_id'),
|
||||
'currency_code' => null,
|
||||
'type' => $this->string('transaction_type'),
|
||||
'description' => $this->string('transaction_description'),
|
||||
'amount' => $this->string('amount'),
|
||||
'type' => $this->convertString('transaction_type'),
|
||||
'description' => $this->convertString('transaction_description'),
|
||||
'amount' => $this->convertString('amount'),
|
||||
'foreign_amount' => null,
|
||||
'foreign_currency_id' => null,
|
||||
'foreign_currency_code' => null,
|
||||
@@ -81,8 +81,8 @@ class RecurrenceFormRequest extends FormRequest
|
||||
'bill_id' => $this->integer('bill_id'),
|
||||
'bill_name' => null,
|
||||
'category_id' => null,
|
||||
'category_name' => $this->string('category'),
|
||||
'tags' => '' !== $this->string('tags') ? explode(',', $this->string('tags')) : [],
|
||||
'category_name' => $this->convertString('category'),
|
||||
'tags' => '' !== $this->convertString('tags') ? explode(',', $this->convertString('tags')) : [],
|
||||
'piggy_bank_id' => $this->integer('piggy_bank_id'),
|
||||
'piggy_bank_name' => null,
|
||||
],
|
||||
@@ -100,7 +100,7 @@ class RecurrenceFormRequest extends FormRequest
|
||||
|
||||
// fill in foreign currency data
|
||||
if (null !== $this->float('foreign_amount')) {
|
||||
$return['transactions'][0]['foreign_amount'] = $this->string('foreign_amount');
|
||||
$return['transactions'][0]['foreign_amount'] = $this->convertString('foreign_amount');
|
||||
$return['transactions'][0]['foreign_currency_id'] = $this->integer('foreign_currency_id');
|
||||
}
|
||||
// default values:
|
||||
@@ -109,9 +109,9 @@ class RecurrenceFormRequest extends FormRequest
|
||||
$return['transactions'][0]['destination_id'] = null;
|
||||
$return['transactions'][0]['destination_name'] = null;
|
||||
// fill in source and destination account data
|
||||
switch ($this->string('transaction_type')) {
|
||||
switch ($this->convertString('transaction_type')) {
|
||||
default:
|
||||
throw new FireflyException(sprintf('Cannot handle transaction type "%s"', $this->string('transaction_type')));
|
||||
throw new FireflyException(sprintf('Cannot handle transaction type "%s"', $this->convertString('transaction_type')));
|
||||
case 'withdrawal':
|
||||
$return['transactions'][0]['source_id'] = $this->integer('source_id');
|
||||
$return['transactions'][0]['destination_id'] = $this->integer('withdrawal_destination_id');
|
||||
@@ -149,7 +149,7 @@ class RecurrenceFormRequest extends FormRequest
|
||||
*/
|
||||
private function parseRepetitionData(): array
|
||||
{
|
||||
$value = $this->string('repetition_type');
|
||||
$value = $this->convertString('repetition_type');
|
||||
$return = [
|
||||
'type' => '',
|
||||
'moment' => '',
|
||||
@@ -224,7 +224,7 @@ class RecurrenceFormRequest extends FormRequest
|
||||
}
|
||||
|
||||
// if ends after X repetitions, set another rule
|
||||
if ('times' === $this->string('repetition_end')) {
|
||||
if ('times' === $this->convertString('repetition_end')) {
|
||||
$rules['repetitions'] = 'required|numeric|between:0,254';
|
||||
}
|
||||
// if foreign amount, currency must be different.
|
||||
@@ -233,12 +233,12 @@ class RecurrenceFormRequest extends FormRequest
|
||||
}
|
||||
|
||||
// if ends at date X, set another rule.
|
||||
if ('until_date' === $this->string('repetition_end')) {
|
||||
if ('until_date' === $this->convertString('repetition_end')) {
|
||||
$rules['repeat_until'] = 'required|date|after:' . $tomorrow->format('Y-m-d');
|
||||
}
|
||||
|
||||
// switchc on type to expand rules for source and destination accounts:
|
||||
switch ($this->string('transaction_type')) {
|
||||
switch ($this->convertString('transaction_type')) {
|
||||
case strtolower(TransactionType::WITHDRAWAL):
|
||||
$rules['source_id'] = 'required|exists:accounts,id|belongsToUser:accounts';
|
||||
$rules['destination_name'] = 'between:1,255|nullable';
|
||||
@@ -254,7 +254,7 @@ class RecurrenceFormRequest extends FormRequest
|
||||
|
||||
break;
|
||||
default:
|
||||
throw new FireflyException(sprintf('Cannot handle transaction type of type "%s"', $this->string('transaction_type')));
|
||||
throw new FireflyException(sprintf('Cannot handle transaction type of type "%s"', $this->convertString('transaction_type')));
|
||||
}
|
||||
|
||||
// update some rules in case the user is editing a post:
|
||||
@@ -309,9 +309,9 @@ class RecurrenceFormRequest extends FormRequest
|
||||
|
||||
// See reference nr. 45
|
||||
|
||||
switch ($this->string('transaction_type')) {
|
||||
switch ($this->convertString('transaction_type')) {
|
||||
default:
|
||||
throw new FireflyException(sprintf('Cannot handle transaction type "%s"', $this->string('transaction_type')));
|
||||
throw new FireflyException(sprintf('Cannot handle transaction type "%s"', $this->convertString('transaction_type')));
|
||||
case 'withdrawal':
|
||||
$sourceId = (int) $data['source_id'];
|
||||
$destinationId = (int) $data['withdrawal_destination_id'];
|
||||
|
||||
@@ -44,10 +44,10 @@ class RuleFormRequest extends FormRequest
|
||||
public function getRuleData(): array
|
||||
{
|
||||
return [
|
||||
'title' => $this->string('title'),
|
||||
'title' => $this->convertString('title'),
|
||||
'rule_group_id' => $this->integer('rule_group_id'),
|
||||
'active' => $this->boolean('active'),
|
||||
'trigger' => $this->string('trigger'),
|
||||
'trigger' => $this->convertString('trigger'),
|
||||
'description' => $this->stringWithNewlines('description'),
|
||||
'stop_processing' => $this->boolean('stop_processing'),
|
||||
'strict' => $this->boolean('strict'),
|
||||
|
||||
@@ -48,7 +48,7 @@ class RuleGroupFormRequest extends FormRequest
|
||||
}
|
||||
|
||||
return [
|
||||
'title' => $this->string('title'),
|
||||
'title' => $this->convertString('title'),
|
||||
'description' => $this->stringWithNewlines('description'),
|
||||
'active' => $active,
|
||||
];
|
||||
|
||||
@@ -44,9 +44,9 @@ class TagFormRequest extends FormRequest
|
||||
public function collectTagData(): array
|
||||
{
|
||||
$data = [
|
||||
'tag' => $this->string('tag'),
|
||||
'tag' => $this->convertString('tag'),
|
||||
'date' => $this->getCarbonDate('date'),
|
||||
'description' => $this->string('description'),
|
||||
'description' => $this->convertString('description'),
|
||||
];
|
||||
|
||||
return $this->appendLocationData($data, 'location');
|
||||
|
||||
@@ -43,10 +43,10 @@ class UserFormRequest extends FormRequest
|
||||
public function getUserData(): array
|
||||
{
|
||||
return [
|
||||
'email' => $this->string('email'),
|
||||
'email' => $this->convertString('email'),
|
||||
'blocked' => 1 === $this->integer('blocked'),
|
||||
'blocked_code' => $this->string('blocked_code'),
|
||||
'password' => $this->string('password'),
|
||||
'blocked_code' => $this->convertString('blocked_code'),
|
||||
'password' => $this->convertString('password'),
|
||||
'is_owner' => 1 === $this->integer('is_owner'),
|
||||
];
|
||||
}
|
||||
|
||||
@@ -45,7 +45,6 @@ class AppServiceProvider extends ServiceProvider
|
||||
if ('heroku' === config('app.env')) {
|
||||
URL::forceScheme('https');
|
||||
}
|
||||
Sanctum::ignoreMigrations();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -56,5 +55,6 @@ class AppServiceProvider extends ServiceProvider
|
||||
public function register(): void
|
||||
{
|
||||
Passport::ignoreMigrations();
|
||||
Sanctum::ignoreMigrations();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -238,6 +238,13 @@ class PiggyBankRepository implements PiggyBankRepositoryInterface
|
||||
Log::debug(sprintf('The currency is %s and the amount is %s', $currency->code, $amount));
|
||||
$room = bcsub((string) $piggyBank->targetamount, (string) $repetition->currentamount);
|
||||
$compare = bcmul($repetition->currentamount, '-1');
|
||||
|
||||
if(bccomp((string) $piggyBank->targetamount,'0') === 0) {
|
||||
// amount is zero? then the "room" is positive amount of we wish to add or remove.
|
||||
$room = app('steam')->positive($amount);
|
||||
Log::debug(sprintf('Room is now %s', $room));
|
||||
}
|
||||
|
||||
Log::debug(sprintf('Will add/remove %f to piggy bank #%d ("%s")', $amount, $piggyBank->id, $piggyBank->name));
|
||||
|
||||
// if the amount is positive, make sure it fits in piggy bank:
|
||||
|
||||
@@ -69,18 +69,18 @@ trait AppendsLocationData
|
||||
if ($isValidPOST) {
|
||||
Log::debug('Method is POST and all fields present and not NULL.');
|
||||
$data['store_location'] = true;
|
||||
$data['longitude'] = $this->string($longitudeKey);
|
||||
$data['latitude'] = $this->string($latitudeKey);
|
||||
$data['zoom_level'] = $this->string($zoomLevelKey);
|
||||
$data['longitude'] = $this->convertString($longitudeKey);
|
||||
$data['latitude'] = $this->convertString($latitudeKey);
|
||||
$data['zoom_level'] = $this->convertString($zoomLevelKey);
|
||||
}
|
||||
|
||||
// for a PUT (api update) or POST update (UI)
|
||||
if ($isValidPUT) {
|
||||
Log::debug('Method is PUT and all fields present and not NULL.');
|
||||
$data['update_location'] = true;
|
||||
$data['longitude'] = $this->string($longitudeKey);
|
||||
$data['latitude'] = $this->string($latitudeKey);
|
||||
$data['zoom_level'] = $this->string($zoomLevelKey);
|
||||
$data['longitude'] = $this->convertString($longitudeKey);
|
||||
$data['latitude'] = $this->convertString($latitudeKey);
|
||||
$data['zoom_level'] = $this->convertString($zoomLevelKey);
|
||||
}
|
||||
if ($isValidEmptyPUT) {
|
||||
Log::debug('Method is PUT and all fields present and NULL.');
|
||||
|
||||
@@ -51,7 +51,7 @@ trait ConvertsDataTypes
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function string(string $field): string
|
||||
public function convertString(string $field): string
|
||||
{
|
||||
return $this->clearString((string) ($this->get($field) ?? ''), false);
|
||||
}
|
||||
|
||||
@@ -614,10 +614,9 @@ class OperatorQuerySearch implements SearchInterface
|
||||
// amount
|
||||
//
|
||||
case 'amount_is':
|
||||
|
||||
// strip comma's, make dots.
|
||||
Log::debug(sprintf('Original value "%s"', $value));
|
||||
$value = str_replace(',', '.', (string) $value);
|
||||
|
||||
$amount = app('steam')->positive($value);
|
||||
Log::debug(sprintf('Set "%s" using collector with value "%s"', $operator, $amount));
|
||||
$this->collector->amountIs($amount);
|
||||
@@ -1374,7 +1373,7 @@ class OperatorQuerySearch implements SearchInterface
|
||||
foreach ($range as $key => $value) {
|
||||
switch ($key) {
|
||||
default:
|
||||
throw new FireflyException(sprintf('Cannot handle key "%s" in setDateAfterParams()', $key));
|
||||
throw new FireflyException(sprintf('Cannot handle key "%s" in setObjectDateBeforeParams()', $key));
|
||||
case 'exact':
|
||||
$this->collector->setObjectBefore($value, $field);
|
||||
$this->operators->push(['type' => sprintf('%s_before', $field), 'value' => $value->format('Y-m-d'),]);
|
||||
@@ -1413,7 +1412,7 @@ class OperatorQuerySearch implements SearchInterface
|
||||
foreach ($range as $key => $value) {
|
||||
switch ($key) {
|
||||
default:
|
||||
throw new FireflyException(sprintf('Cannot handle key "%s" in setDateAfterParams()', $key));
|
||||
throw new FireflyException(sprintf('Cannot handle key "%s" in setObjectDateAfterParams()', $key));
|
||||
case 'exact':
|
||||
$this->collector->setObjectAfter($value, $field);
|
||||
$this->operators->push(['type' => sprintf('%s_after', $field), 'value' => $value->format('Y-m-d'),]);
|
||||
|
||||
@@ -34,6 +34,7 @@ use JsonException;
|
||||
use Log;
|
||||
use stdClass;
|
||||
use Str;
|
||||
use ValueError;
|
||||
|
||||
/**
|
||||
* Class Steam.
|
||||
@@ -98,7 +99,9 @@ class Steam
|
||||
$sum = '0';
|
||||
/** @var array $transaction */
|
||||
foreach ($transactions as $transaction) {
|
||||
$sum = bcadd($sum, $transaction[$key] ?? '0');
|
||||
$value = (string) ($transaction[$key] ?? '0');
|
||||
$value = '' === $value ? '0' : $value;
|
||||
$sum = bcadd($sum, $value);
|
||||
}
|
||||
|
||||
return $sum;
|
||||
@@ -627,8 +630,14 @@ class Steam
|
||||
if ('' === $amount) {
|
||||
return '0';
|
||||
}
|
||||
if (bccomp($amount, '0') === -1) {
|
||||
$amount = bcmul($amount, '-1');
|
||||
try {
|
||||
if (bccomp($amount, '0') === -1) {
|
||||
$amount = bcmul($amount, '-1');
|
||||
}
|
||||
} catch (ValueError $e) {
|
||||
Log::error(sprintf('ValueError in Steam::positive("%s"): %s', $amount, $e->getMessage()));
|
||||
Log::error($e->getTraceAsString());
|
||||
return '0';
|
||||
}
|
||||
|
||||
return $amount;
|
||||
|
||||
@@ -807,9 +807,6 @@ class FireflyValidator extends Validator
|
||||
->where('response', $response)
|
||||
->where('delivery', $delivery)
|
||||
->where('url', $url)->count();
|
||||
// find similar webhook for user:
|
||||
//= var_dump($this->data);
|
||||
//exit;
|
||||
}
|
||||
|
||||
return false;
|
||||
|
||||
44
changelog.md
44
changelog.md
@@ -2,6 +2,50 @@
|
||||
All notable changes to this project will be documented in this file.
|
||||
This project adheres to [Semantic Versioning](http://semver.org/).
|
||||
|
||||
## 5.7.7 - 2022-06-01
|
||||
|
||||
### Fixed
|
||||
- Fixed an issue where the login form would overflow a database field.
|
||||
- [Issue 6113](https://github.com/firefly-iii/firefly-iii/issues/6113) Fix issue with number formatting.
|
||||
- [Issue 5996](https://github.com/firefly-iii/firefly-iii/issues/5996) Catch bad library
|
||||
|
||||
### Added
|
||||
- @turrisxyz added a dependency review, thanks!
|
||||
|
||||
## 5.7.6 - 2022-05-19
|
||||
|
||||
### Fixed
|
||||
- [Issue 6058](https://github.com/firefly-iii/firefly-iii/issues/6058) Bad type-casting could break Firefly III on Home Assistant.
|
||||
- [Issue 6059](https://github.com/firefly-iii/firefly-iii/issues/6059) Fix issue with missing list of bills when creating a recurring transaction from a transaction.
|
||||
- Added missing DB integrity checks.
|
||||
|
||||
### Security
|
||||
- Updated various packages
|
||||
|
||||
## 5.7.5 - 2022-05-06
|
||||
|
||||
### Fixed
|
||||
- Fixed an issue where missing method names would break the API.
|
||||
- [Issue 6040](https://github.com/firefly-iii/firefly-iii/issues/6040) Could not add or remove money from piggy banks without a target.
|
||||
- [Issue 6009](https://github.com/firefly-iii/firefly-iii/issues/6009) `has_no_attachments:true` would not return transactions with *deleted* transactions.
|
||||
- [Issue 6050](https://github.com/firefly-iii/firefly-iii/issues/6050) ja_JP is part of the Docker image
|
||||
|
||||
## 5.7.4 - 2022-05-03
|
||||
|
||||
### Fixed
|
||||
- Fixed issue in method names.
|
||||
|
||||
## 5.7.3 - 2022-05-03
|
||||
|
||||
### Fixed
|
||||
- Searching for `updated_at_before` and `created_at_before` works again.
|
||||
- [Issue 6000](https://github.com/firefly-iii/firefly-iii/issues/6000) Bad math when dealing with multi-currency reconciliation.
|
||||
- Remove unused CSS
|
||||
- Fix bad migration.
|
||||
|
||||
### API
|
||||
- Add error code to error message.
|
||||
|
||||
## 5.7.2 - 2022-04-13
|
||||
|
||||
### Fixed
|
||||
|
||||
@@ -103,7 +103,7 @@
|
||||
"ramsey/uuid": "^4.3",
|
||||
"rcrowe/twigbridge": "^0.14",
|
||||
"spatie/data-transfer-object": "^3.7",
|
||||
"spatie/laravel-ignition": "^1.0",
|
||||
"spatie/laravel-ignition": "^1.2",
|
||||
"symfony/http-client": "^6.0",
|
||||
"symfony/mailgun-mailer": "^6.0"
|
||||
},
|
||||
|
||||
740
composer.lock
generated
740
composer.lock
generated
File diff suppressed because it is too large
Load Diff
@@ -101,7 +101,7 @@ return [
|
||||
'webhooks' => false,
|
||||
'handle_debts' => true,
|
||||
],
|
||||
'version' => '5.7.2',
|
||||
'version' => '5.7.7',
|
||||
'api_version' => '1.5.6',
|
||||
'db_version' => 18,
|
||||
|
||||
@@ -283,6 +283,12 @@ return [
|
||||
'application/vnd.oasis.opendocument.formula',
|
||||
'application/vnd.oasis.opendocument.database',
|
||||
'application/vnd.oasis.opendocument.image',
|
||||
|
||||
/* EML */
|
||||
'message/rfc822',
|
||||
|
||||
/* JSON */
|
||||
'application/json',
|
||||
],
|
||||
'accountRoles' => ['defaultAsset', 'sharedAsset', 'savingAsset', 'ccAsset', 'cashWalletAsset'],
|
||||
'valid_liabilities' => [AccountType::DEBT, AccountType::LOAN, AccountType::MORTGAGE],
|
||||
@@ -606,7 +612,10 @@ return [
|
||||
AccountType::RECONCILIATION => TransactionTypeModel::RECONCILIATION,
|
||||
],
|
||||
AccountType::CASH => [
|
||||
AccountType::ASSET => TransactionTypeModel::DEPOSIT,
|
||||
AccountType::ASSET => TransactionTypeModel::DEPOSIT,
|
||||
AccountType::LOAN => TransactionTypeModel::DEPOSIT,
|
||||
AccountType::DEBT => TransactionTypeModel::DEPOSIT,
|
||||
AccountType::MORTGAGE => TransactionTypeModel::DEPOSIT,
|
||||
],
|
||||
AccountType::DEBT => [
|
||||
AccountType::ASSET => TransactionTypeModel::DEPOSIT,
|
||||
@@ -688,9 +697,10 @@ return [
|
||||
AccountType::ASSET => [AccountType::RECONCILIATION],
|
||||
],
|
||||
TransactionTypeModel::LIABILITY_CREDIT => [
|
||||
AccountType::LOAN => [AccountType::LIABILITY_CREDIT],
|
||||
AccountType::DEBT => [AccountType::LIABILITY_CREDIT],
|
||||
AccountType::MORTGAGE => [AccountType::LIABILITY_CREDIT],
|
||||
AccountType::LOAN => [AccountType::LIABILITY_CREDIT],
|
||||
AccountType::DEBT => [AccountType::LIABILITY_CREDIT],
|
||||
AccountType::MORTGAGE => [AccountType::LIABILITY_CREDIT],
|
||||
AccountType::LIABILITY_CREDIT => [AccountType::LOAN, AccountType::DEBT, AccountType::MORTGAGE],
|
||||
],
|
||||
],
|
||||
// if you add fields to this array, dont forget to update the export routine (ExportDataGenerator).
|
||||
|
||||
@@ -44,6 +44,7 @@ return [
|
||||
'username' => env('MAIL_USERNAME'),
|
||||
'password' => env('MAIL_PASSWORD'),
|
||||
'timeout' => null,
|
||||
'verify_peer' => null !== env('MAIL_ENCRYPTION')
|
||||
],
|
||||
|
||||
'ses' => [
|
||||
|
||||
2
frontend/src/i18n/de_DE/index.js
vendored
2
frontend/src/i18n/de_DE/index.js
vendored
@@ -18,7 +18,7 @@ export default {
|
||||
},
|
||||
"list": {
|
||||
"name": "Name",
|
||||
"account_number": "Account number",
|
||||
"account_number": "Kontonummer",
|
||||
"currentBalance": "Aktueller Kontostand",
|
||||
"lastActivity": "Letzte Aktivit\u00e4t",
|
||||
"active": "Aktiv?"
|
||||
|
||||
32
frontend/src/i18n/el_GR/index.js
vendored
32
frontend/src/i18n/el_GR/index.js
vendored
@@ -7,7 +7,7 @@ export default {
|
||||
"name": "\u038c\u03bd\u03bf\u03bc\u03b1",
|
||||
"amount_min": "\u0395\u03bb\u03ac\u03c7\u03b9\u03c3\u03c4\u03bf \u03c0\u03bf\u03c3\u03cc",
|
||||
"amount_max": "\u039c\u03ad\u03b3\u03b9\u03c3\u03c4\u03bf \u03c0\u03bf\u03c3\u03cc",
|
||||
"url": "URL",
|
||||
"url": "\u0394\u03b9\u03b5\u03cd\u03b8\u03c5\u03bd\u03c3\u03b7 URL",
|
||||
"title": "\u03a4\u03af\u03c4\u03bb\u03bf\u03c2",
|
||||
"first_date": "\u03a0\u03c1\u03ce\u03c4\u03b7 \u03b7\u03bc\u03b5\u03c1\u03bf\u03bc\u03b7\u03bd\u03af\u03b1",
|
||||
"repetitions": "\u0395\u03c0\u03b1\u03bd\u03b1\u03bb\u03ae\u03c8\u03b5\u03b9\u03c2",
|
||||
@@ -18,26 +18,26 @@ export default {
|
||||
},
|
||||
"list": {
|
||||
"name": "\u038c\u03bd\u03bf\u03bc\u03b1",
|
||||
"account_number": "Account number",
|
||||
"account_number": "\u0391\u03c1\u03b9\u03b8\u03bc\u03cc\u03c2 \u03bb\u03bf\u03b3\u03b1\u03c1\u03b9\u03b1\u03c3\u03bc\u03bf\u03cd",
|
||||
"currentBalance": "\u03a4\u03c1\u03ad\u03c7\u03bf\u03bd \u03c5\u03c0\u03cc\u03bb\u03bf\u03b9\u03c0\u03bf",
|
||||
"lastActivity": "\u03a4\u03b5\u03bb\u03b5\u03c5\u03c4\u03b1\u03af\u03b1 \u03b4\u03c1\u03b1\u03c3\u03c4\u03b7\u03c1\u03b9\u03cc\u03c4\u03b7\u03c4\u03b1",
|
||||
"active": "\u0395\u03af\u03bd\u03b1\u03b9 \u03b5\u03bd\u03b5\u03c1\u03b3\u03cc;"
|
||||
},
|
||||
"breadcrumbs": {
|
||||
"placeholder": "[Placeholder]",
|
||||
"budgets": "Budgets",
|
||||
"subscriptions": "Subscriptions",
|
||||
"transactions": "Transactions",
|
||||
"title_expenses": "Expenses",
|
||||
"title_withdrawal": "Expenses",
|
||||
"title_revenue": "Revenue \/ income",
|
||||
"title_deposit": "Revenue \/ income",
|
||||
"title_transfer": "Transfers",
|
||||
"title_transfers": "Transfers",
|
||||
"asset_accounts": "Asset accounts",
|
||||
"expense_accounts": "Expense accounts",
|
||||
"revenue_accounts": "Revenue accounts",
|
||||
"liabilities_accounts": "Liabilities"
|
||||
"budgets": "\u03a0\u03c1\u03bf\u03cb\u03c0\u03bf\u03bb\u03bf\u03b3\u03b9\u03c3\u03bc\u03bf\u03af",
|
||||
"subscriptions": "\u03a3\u03c5\u03bd\u03b4\u03c1\u03bf\u03bc\u03ad\u03c2",
|
||||
"transactions": "\u03a3\u03c5\u03bd\u03b1\u03bb\u03bb\u03b1\u03b3\u03ad\u03c2",
|
||||
"title_expenses": "\u0394\u03b1\u03c0\u03ac\u03bd\u03b5\u03c2",
|
||||
"title_withdrawal": "\u0394\u03b1\u03c0\u03ac\u03bd\u03b5\u03c2",
|
||||
"title_revenue": "\u0388\u03c3\u03bf\u03b4\u03b1",
|
||||
"title_deposit": "\u0388\u03c3\u03bf\u03b4\u03b1",
|
||||
"title_transfer": "\u039c\u03b5\u03c4\u03b1\u03c6\u03bf\u03c1\u03ad\u03c2",
|
||||
"title_transfers": "\u039c\u03b5\u03c4\u03b1\u03c6\u03bf\u03c1\u03ad\u03c2",
|
||||
"asset_accounts": "\u039b\u03bf\u03b3\u03b1\u03c1\u03b9\u03b1\u03c3\u03bc\u03bf\u03af \u03ba\u03b5\u03c6\u03b1\u03bb\u03b1\u03af\u03bf\u03c5",
|
||||
"expense_accounts": "\u039b\u03bf\u03b3\u03b1\u03c1\u03b9\u03b1\u03c3\u03bc\u03bf\u03af \u03b4\u03b1\u03c0\u03b1\u03bd\u03ce\u03bd",
|
||||
"revenue_accounts": "\u039b\u03bf\u03b3\u03b1\u03c1\u03b9\u03b1\u03c3\u03bc\u03bf\u03af \u03b5\u03c3\u03cc\u03b4\u03c9\u03bd",
|
||||
"liabilities_accounts": "\u03a5\u03c0\u03bf\u03c7\u03c1\u03b5\u03ce\u03c3\u03b5\u03b9\u03c2"
|
||||
},
|
||||
"firefly": {
|
||||
"actions": "\u0395\u03bd\u03ad\u03c1\u03b3\u03b5\u03b9\u03b5\u03c2",
|
||||
@@ -150,7 +150,7 @@ export default {
|
||||
"asset_accounts": "\u039a\u03b5\u03c6\u03ac\u03bb\u03b1\u03b9\u03b1",
|
||||
"expense_accounts": "\u0394\u03b1\u03c0\u03ac\u03bd\u03b5\u03c2",
|
||||
"liabilities_accounts": "\u03a5\u03c0\u03bf\u03c7\u03c1\u03b5\u03ce\u03c3\u03b5\u03b9\u03c2",
|
||||
"undefined_accounts": "Accounts",
|
||||
"undefined_accounts": "\u039b\u03bf\u03b3\u03b1\u03c1\u03b9\u03b1\u03c3\u03bc\u03bf\u03af",
|
||||
"name": "\u038c\u03bd\u03bf\u03bc\u03b1",
|
||||
"revenue_accounts": "\u0388\u03c3\u03bf\u03b4\u03b1",
|
||||
"description": "\u03a0\u03b5\u03c1\u03b9\u03b3\u03c1\u03b1\u03c6\u03ae",
|
||||
|
||||
196
frontend/src/i18n/ja_JP/index.js
vendored
196
frontend/src/i18n/ja_JP/index.js
vendored
@@ -4,137 +4,137 @@ export default {
|
||||
"month_and_day_fns": "y\u5e74 MMMM d\u65e5"
|
||||
},
|
||||
"form": {
|
||||
"name": "\u540d\u524d",
|
||||
"name": "\u540d\u79f0",
|
||||
"amount_min": "\u6700\u4f4e\u984d",
|
||||
"amount_max": "\u4e0a\u9650\u984d",
|
||||
"url": "URL",
|
||||
"title": "\u30bf\u30a4\u30c8\u30eb",
|
||||
"first_date": "\u65e5\u4ed8\u7bc4\u56f2",
|
||||
"first_date": "\u6700\u521d\u306e\u65e5\u4ed8",
|
||||
"repetitions": "\u30ea\u30d4\u30fc\u30c8",
|
||||
"description": "\u8aac\u660e",
|
||||
"iban": "\u56fd\u969b\u9280\u884c\u53e3\u5ea7\u756a\u53f7",
|
||||
"iban": "IBAN",
|
||||
"skip": "\u30b9\u30ad\u30c3\u30d7",
|
||||
"date": "\u65e5\u4ed8"
|
||||
},
|
||||
"list": {
|
||||
"name": "\u540d\u524d",
|
||||
"account_number": "Account number",
|
||||
"name": "\u540d\u79f0",
|
||||
"account_number": "\u53e3\u5ea7\u756a\u53f7",
|
||||
"currentBalance": "\u73fe\u5728\u306e\u6b8b\u9ad8",
|
||||
"lastActivity": "\u6700\u7d42\u30a2\u30af\u30c6\u30a3\u30d3\u30c6\u30a3",
|
||||
"active": "\u6709\u52b9?"
|
||||
"active": "\u6709\u52b9"
|
||||
},
|
||||
"breadcrumbs": {
|
||||
"placeholder": "[Placeholder]",
|
||||
"budgets": "Budgets",
|
||||
"budgets": "\u4e88\u7b97",
|
||||
"subscriptions": "Subscriptions",
|
||||
"transactions": "Transactions",
|
||||
"title_expenses": "Expenses",
|
||||
"title_withdrawal": "Expenses",
|
||||
"title_revenue": "Revenue \/ income",
|
||||
"title_deposit": "Revenue \/ income",
|
||||
"title_transfer": "Transfers",
|
||||
"title_transfers": "Transfers",
|
||||
"asset_accounts": "Asset accounts",
|
||||
"expense_accounts": "Expense accounts",
|
||||
"revenue_accounts": "Revenue accounts",
|
||||
"liabilities_accounts": "Liabilities"
|
||||
"transactions": "\u53d6\u5f15",
|
||||
"title_expenses": "\u652f\u51fa",
|
||||
"title_withdrawal": "\u652f\u51fa",
|
||||
"title_revenue": "\u53ce\u76ca \/ \u53ce\u5165",
|
||||
"title_deposit": "\u53ce\u76ca \/ \u53ce\u5165",
|
||||
"title_transfer": "\u9001\u91d1",
|
||||
"title_transfers": "\u9001\u91d1",
|
||||
"asset_accounts": "\u8cc7\u7523\u53e3\u5ea7",
|
||||
"expense_accounts": "\u652f\u51fa\u53e3\u5ea7",
|
||||
"revenue_accounts": "\u53ce\u5165\u53e3\u5ea7",
|
||||
"liabilities_accounts": "\u8ca0\u50b5"
|
||||
},
|
||||
"firefly": {
|
||||
"actions": "\u64cd\u4f5c",
|
||||
"edit": "\u7de8\u96c6",
|
||||
"delete": "\u524a\u9664",
|
||||
"reconcile": "\u7a81\u5408",
|
||||
"create_new_asset": "\u652f\u51fa\u30a2\u30ab\u30a6\u30f3\u30c8\uff08\u8cc7\u7523\u52d8\u5b9a\uff09",
|
||||
"confirm_action": "Confirm action",
|
||||
"reconcile": "\u7167\u5408",
|
||||
"create_new_asset": "\u65b0\u3057\u3044\u8cc7\u7523\u53e3\u5ea7\u3092\u4f5c\u6210",
|
||||
"confirm_action": "\u64cd\u4f5c\u3092\u78ba\u8a8d",
|
||||
"rule_trigger_source_account_starts_choice": "\u51fa\u91d1\u5143\u53e3\u5ea7\u540d\u304c...\u3067\u59cb\u307e\u308b",
|
||||
"rule_trigger_source_account_ends_choice": "\u51fa\u91d1\u5143\u53e3\u5ea7\u540d\u304c\u6b21\u3067\u7d42\u308f\u308b",
|
||||
"rule_trigger_source_account_ends_choice": "\u51fa\u91d1\u5143\u53e3\u5ea7\u540d\u304c\u2026\u3067\u7d42\u308f\u308b",
|
||||
"rule_trigger_source_account_is_choice": "\u51fa\u91d1\u5143\u53e3\u5ea7\u540d\u304c...",
|
||||
"rule_trigger_source_account_contains_choice": "\u51fa\u91d1\u5143\u53e3\u5ea7\u540d\u304c\u6b21\u3092\u542b\u3080",
|
||||
"rule_trigger_account_id_choice": "Either account ID is exactly..",
|
||||
"rule_trigger_source_account_id_choice": "\u51fa\u91d1\u5143\u53e3\u5ea7ID\u304c\u6b21\u3068\u4e00\u81f4\u3059\u308b",
|
||||
"rule_trigger_destination_account_id_choice": "\u9001\u91d1\u5148\u53e3\u5ea7ID\u304c\u6b21\u3068\u4e00\u81f4\u3059\u308b",
|
||||
"rule_trigger_account_is_cash_choice": "Either account is cash",
|
||||
"rule_trigger_source_account_contains_choice": "\u51fa\u91d1\u5143\u53e3\u5ea7\u540d\u304c\u2026\u3092\u542b\u3080",
|
||||
"rule_trigger_account_id_choice": "\u3069\u3061\u3089\u304b\u306e\u53e3\u5ea7ID\u304c\u2026",
|
||||
"rule_trigger_source_account_id_choice": "\u51fa\u91d1\u5143\u53e3\u5ea7ID\u304c\u2026",
|
||||
"rule_trigger_destination_account_id_choice": "\u9001\u91d1\u5148\u53e3\u5ea7ID\u304c\u2026",
|
||||
"rule_trigger_account_is_cash_choice": "\u3069\u3061\u3089\u304b\u306e\u53e3\u5ea7\u304c\u73fe\u91d1",
|
||||
"rule_trigger_source_is_cash_choice": "\u51fa\u91d1\u5143\u53e3\u5ea7\u304c\u73fe\u91d1\u53e3\u5ea7",
|
||||
"rule_trigger_destination_is_cash_choice": "\u9001\u91d1\u5148\u53e3\u5ea7\u304c\u73fe\u91d1\u53e3\u5ea7",
|
||||
"rule_trigger_source_account_nr_starts_choice": "\u51fa\u91d1\u5143\u53e3\u5ea7\u756a\u53f7\/IBAN\u304c\u6b21\u3067\u59cb\u307e\u308b",
|
||||
"rule_trigger_source_account_nr_ends_choice": "\u51fa\u91d1\u5143\u53e3\u5ea7\u756a\u53f7\/IBAN\u304c\u6b21\u3067\u7d42\u308f\u308b",
|
||||
"rule_trigger_source_account_nr_is_choice": "\u51fa\u91d1\u5143\u53e3\u5ea7\u756a\u53f7\/IBAN\u304c\u6b21\u3068\u4e00\u81f4\u3059\u308b",
|
||||
"rule_trigger_source_account_nr_contains_choice": "\u51fa\u91d1\u5143\u53e3\u5ea7\u756a\u53f7\/IBAN\u304c\u6b21\u3092\u542b\u3080",
|
||||
"rule_trigger_source_account_nr_starts_choice": "\u51fa\u91d1\u5143\u53e3\u5ea7\u756a\u53f7\/IBAN\u304c\u2026\u3067\u59cb\u307e\u308b",
|
||||
"rule_trigger_source_account_nr_ends_choice": "\u51fa\u91d1\u5143\u53e3\u5ea7\u756a\u53f7\/IBAN\u304c\u2026\u3067\u7d42\u308f\u308b",
|
||||
"rule_trigger_source_account_nr_is_choice": "\u51fa\u91d1\u5143\u53e3\u5ea7\u756a\u53f7\/IBAN\u304c\u2026",
|
||||
"rule_trigger_source_account_nr_contains_choice": "\u51fa\u91d1\u5143\u53e3\u5ea7\u756a\u53f7\/IBAN\u304c\u2026\u3092\u542b\u3080",
|
||||
"rule_trigger_destination_account_starts_choice": "\u9001\u91d1\u5148\u53e3\u5ea7\u540d\u304c\u6b21\u3067\u59cb\u307e\u308b",
|
||||
"rule_trigger_destination_account_ends_choice": "\u9001\u91d1\u5148\u53e3\u5ea7\u540d\u304c\u6b21\u3067\u7d42\u308f\u308b",
|
||||
"rule_trigger_destination_account_is_choice": "\u9001\u91d1\u5148\u53e3\u5ea7\u540d\u304c\u6b21\u3068\u4e00\u81f4\u3059\u308b",
|
||||
"rule_trigger_destination_account_is_choice": "\u9001\u91d1\u5148\u53e3\u5ea7\u540d\u304c\u2026",
|
||||
"rule_trigger_destination_account_contains_choice": "\u9001\u91d1\u5148\u53e3\u5ea7\u540d\u304c\u6b21\u3092\u542b\u3080",
|
||||
"rule_trigger_destination_account_nr_starts_choice": "\u9001\u91d1\u5148\u53e3\u5ea7\u756a\u53f7\/IBAN\u304c\u6b21\u3067\u59cb\u307e\u308b",
|
||||
"rule_trigger_destination_account_nr_ends_choice": "\u9001\u91d1\u5148\u53e3\u5ea7\u756a\u53f7\uff08IBAN\uff09\u304c\u6b21\u3067\u7d42\u308f\u308b",
|
||||
"rule_trigger_destination_account_nr_is_choice": "\u9001\u91d1\u5148\u53e3\u5ea7\u756a\u53f7\/IBAN\u304c\u6b21\u3068\u4e00\u81f4\u3059\u308b",
|
||||
"rule_trigger_destination_account_nr_is_choice": "\u9001\u91d1\u5148\u53e3\u5ea7\u756a\u53f7\/IBAN\u304c\u2026",
|
||||
"rule_trigger_destination_account_nr_contains_choice": "\u9001\u91d1\u5148\u53e3\u5ea7\u756a\u53f7\/IBAN\u304c\u6b21\u3092\u542b\u3080",
|
||||
"rule_trigger_transaction_type_choice": "\u7121\u52b9\u306a\u30c8\u30e9\u30f3\u30b6\u30af\u30b7\u30e7\u30f3\u5f62\u5f0f\u3067\u3059\u3002",
|
||||
"rule_trigger_category_is_choice": "\u30ab\u30c6\u30b4\u30ea",
|
||||
"rule_trigger_amount_less_choice": "\u91d1\u984d\u304c\u6b21\u3088\u308a\u5c0f\u3055\u3044",
|
||||
"rule_trigger_amount_is_choice": "Amount is..",
|
||||
"rule_trigger_amount_more_choice": "\u91d1\u984d\u304c\u6b21\u3088\u308a\u5927\u304d\u3044",
|
||||
"rule_trigger_description_starts_choice": "\u8aac\u660e",
|
||||
"rule_trigger_description_ends_choice": "\u8aac\u660e",
|
||||
"rule_trigger_description_contains_choice": "\u8aac\u660e",
|
||||
"rule_trigger_description_is_choice": "\u8aac\u660e",
|
||||
"rule_trigger_date_on_choice": "Transaction date is..",
|
||||
"rule_trigger_date_before_choice": "\u53d6\u5f15\u65e5\u304c\u6b21\u3088\u308a\u524d",
|
||||
"rule_trigger_date_after_choice": "\u53d6\u5f15\u65e5\u304c\u6b21\u3088\u308a\u5f8c",
|
||||
"rule_trigger_created_at_on_choice": "Transaction was made on..",
|
||||
"rule_trigger_updated_at_on_choice": "Transaction was last edited on..",
|
||||
"rule_trigger_budget_is_choice": "\u4e88\u7b97",
|
||||
"rule_trigger_tag_is_choice": "Any tag is..",
|
||||
"rule_trigger_currency_is_choice": "\u53d6\u5f15",
|
||||
"rule_trigger_foreign_currency_is_choice": "\u53d6\u5f15\u5916\u56fd\u901a\u8ca8\u304c\u6b21\u3068\u4e00\u81f4\u3059\u308b",
|
||||
"rule_trigger_transaction_type_choice": "\u53d6\u5f15\u7a2e\u5225\u304c\u2026",
|
||||
"rule_trigger_category_is_choice": "\u30ab\u30c6\u30b4\u30ea\u304c\u2026",
|
||||
"rule_trigger_amount_less_choice": "\u91d1\u984d\u304c\u2026\u3088\u308a\u5c0f\u3055\u3044",
|
||||
"rule_trigger_amount_is_choice": "\u91d1\u984d\u304c\u2026",
|
||||
"rule_trigger_amount_more_choice": "\u91d1\u984d\u304c\u2026\u3088\u308a\u5927\u304d\u3044",
|
||||
"rule_trigger_description_starts_choice": "\u8aac\u660e\u304c\u2026\u3067\u59cb\u307e\u308b",
|
||||
"rule_trigger_description_ends_choice": "\u8aac\u660e\u304c\u2026\u3067\u7d42\u308f\u308b",
|
||||
"rule_trigger_description_contains_choice": "\u8aac\u660e\u306b\u2026\u3092\u542b\u3080",
|
||||
"rule_trigger_description_is_choice": "\u8aac\u660e\u304c\u2026",
|
||||
"rule_trigger_date_on_choice": "\u53d6\u5f15\u65e5\u304c\u2026",
|
||||
"rule_trigger_date_before_choice": "\u53d6\u5f15\u65e5\u304c\u2026\u3088\u308a\u524d",
|
||||
"rule_trigger_date_after_choice": "\u53d6\u5f15\u65e5\u304c\u2026\u3088\u308a\u5f8c",
|
||||
"rule_trigger_created_at_on_choice": "\u53d6\u5f15\u304c\u4f5c\u6210\u65e5\u304c",
|
||||
"rule_trigger_updated_at_on_choice": "\u53d6\u5f15\u306e\u6700\u7d42\u7de8\u96c6\u65e5\u304c",
|
||||
"rule_trigger_budget_is_choice": "\u4e88\u7b97\u304c\u2026",
|
||||
"rule_trigger_tag_is_choice": "\u30bf\u30b0\u304c",
|
||||
"rule_trigger_currency_is_choice": "\u53d6\u5f15\u901a\u8ca8\u304c\u2026",
|
||||
"rule_trigger_foreign_currency_is_choice": "\u53d6\u5f15\u5916\u56fd\u901a\u8ca8\u304c\u2026",
|
||||
"rule_trigger_has_attachments_choice": "\u6b21\u306e\u500b\u6570\u4ee5\u4e0a\u306e\u6dfb\u4ed8\u30d5\u30a1\u30a4\u30eb\u304c\u3042\u308b",
|
||||
"rule_trigger_has_no_category_choice": "\u30ab\u30c6\u30b4\u30ea\u306a\u3057",
|
||||
"rule_trigger_has_any_category_choice": "(\u4efb\u610f\u306e) \u30ab\u30c6\u30b4\u30ea\u304c\u3042\u308b",
|
||||
"rule_trigger_has_no_budget_choice": "\u3053\u306e\u8acb\u6c42\u66f8\u306f\u3069\u306e\u30eb\u30fc\u30eb\u306b\u3082\u95a2\u9023\u4ed8\u3051\u3089\u308c\u3066\u3044\u307e\u305b\u3093\u3002",
|
||||
"rule_trigger_has_any_budget_choice": "\u3053\u306e\u8acb\u6c42\u66f8\u306f\u3069\u306e\u30eb\u30fc\u30eb\u306b\u3082\u95a2\u9023\u4ed8\u3051\u3089\u308c\u3066\u3044\u307e\u305b\u3093\u3002",
|
||||
"rule_trigger_has_no_budget_choice": "\u4e88\u7b97\u3092\u3082\u305f\u306a\u3044",
|
||||
"rule_trigger_has_any_budget_choice": "\u4e88\u7b97\u304c\u3042\u308b\u53d6\u5f15",
|
||||
"rule_trigger_has_no_bill_choice": "\u8acb\u6c42\u304c\u306a\u3044",
|
||||
"rule_trigger_has_any_bill_choice": "\u8acb\u6c42\u304c\u3042\u308b",
|
||||
"rule_trigger_has_no_tag_choice": "\u652f\u51fa\u5143\u306e\u30a2\u30ab\u30a6\u30f3\u30c8",
|
||||
"rule_trigger_has_no_tag_choice": "\u30bf\u30b0\u304c\u306a\u3044",
|
||||
"rule_trigger_has_any_tag_choice": "\u4e00\u3064\u4ee5\u4e0a\u306e\u30bf\u30b0\u304c\u3042\u308b",
|
||||
"rule_trigger_any_notes_choice": "\u5099\u8003",
|
||||
"rule_trigger_no_notes_choice": "\u5099\u8003",
|
||||
"rule_trigger_notes_is_choice": "Notes are..",
|
||||
"rule_trigger_notes_contains_choice": "Notes contain..",
|
||||
"rule_trigger_notes_starts_choice": "Notes start with..",
|
||||
"rule_trigger_notes_ends_choice": "Notes end with..",
|
||||
"rule_trigger_bill_is_choice": "\u8acb\u6c42\u304c\u6b21\u3068\u4e00\u81f4\u3059\u308b",
|
||||
"rule_trigger_external_id_is_choice": "External ID is..",
|
||||
"rule_trigger_internal_reference_is_choice": "Internal reference is..",
|
||||
"rule_trigger_journal_id_choice": "\u53d6\u5f15ID\u304c\u6b21\u3068\u4e00\u81f4\u3059\u308b",
|
||||
"rule_trigger_any_external_url_choice": "Transaction has an external URL",
|
||||
"rule_trigger_no_external_url_choice": "Transaction has no external URL",
|
||||
"rule_trigger_id_choice": "Transaction ID is..",
|
||||
"rule_trigger_any_notes_choice": "\u5099\u8003\u304c\u3042\u308b",
|
||||
"rule_trigger_no_notes_choice": "\u5099\u8003\u304c\u306a\u3044",
|
||||
"rule_trigger_notes_is_choice": "\u5099\u8003\u304c",
|
||||
"rule_trigger_notes_contains_choice": "\u5099\u8003\u304c\u6b21\u3092\u542b\u3080",
|
||||
"rule_trigger_notes_starts_choice": "\u5099\u8003\u304c\u6b21\u3067\u59cb\u307e\u308b",
|
||||
"rule_trigger_notes_ends_choice": "\u5099\u8003\u304c\u6b21\u3067\u7d42\u308f\u308b",
|
||||
"rule_trigger_bill_is_choice": "\u8acb\u6c42\u304c\u2026",
|
||||
"rule_trigger_external_id_is_choice": "\u5916\u90e8 ID \u304c\u2026",
|
||||
"rule_trigger_internal_reference_is_choice": "\u5185\u90e8\u53c2\u7167\u304c\u2026",
|
||||
"rule_trigger_journal_id_choice": "\u53d6\u5f15ID\u304c\u2026",
|
||||
"rule_trigger_any_external_url_choice": "\u53d6\u5f15\u306b\u5916\u90e8 URL \u304c\u3042\u308b",
|
||||
"rule_trigger_no_external_url_choice": "\u53d6\u5f15\u306b\u5916\u90e8 URL \u304c\u306a\u3044",
|
||||
"rule_trigger_id_choice": "\u53d6\u5f15 ID \u304c\u2026",
|
||||
"rule_action_delete_transaction_choice": "\u53d6\u5f15\u3092\u524a\u9664 (!)",
|
||||
"rule_action_set_category_choice": "\u30ab\u30c6\u30b4\u30ea\u3092\u8a2d\u5b9a",
|
||||
"rule_action_clear_category_choice": "\u30ab\u30c6\u30b4\u30ea\u3092\u30af\u30ea\u30a2",
|
||||
"rule_action_set_budget_choice": "\u4e88\u7b97",
|
||||
"rule_action_clear_budget_choice": "\u4e88\u7b97",
|
||||
"rule_action_add_tag_choice": "\u30bf\u30b0\u30e2\u30fc\u30c9",
|
||||
"rule_action_remove_tag_choice": "\u30bf\u30b0\u30e2\u30fc\u30c9",
|
||||
"rule_action_remove_all_tags_choice": "\u30bf\u30b0",
|
||||
"rule_action_set_description_choice": "\u8aac\u660e",
|
||||
"rule_action_set_budget_choice": "\u4e88\u7b97\u3092\u2026\u306b\u8a2d\u5b9a",
|
||||
"rule_action_clear_budget_choice": "\u4e88\u7b97\u3092\u30af\u30ea\u30a2",
|
||||
"rule_action_add_tag_choice": "\u30bf\u30b0\u2026\u3092\u8ffd\u52a0",
|
||||
"rule_action_remove_tag_choice": "\u30bf\u30b0\u2026\u3092\u524a\u9664",
|
||||
"rule_action_remove_all_tags_choice": "\u3059\u3079\u3066\u306e\u30bf\u30b0\u3092\u524a\u9664",
|
||||
"rule_action_set_description_choice": "\u8aac\u660e\u3092\u2026\u306b\u8a2d\u5b9a",
|
||||
"rule_action_update_piggy_choice": "\u53d6\u5f15\u91d1\u984d\u3092\u6b21\u306e\u8caf\u91d1\u7bb1\u306b\u52a0\u7b97\/\u6e1b\u7b97\u3059\u308b",
|
||||
"rule_action_append_description_choice": "\u8aac\u660e",
|
||||
"rule_action_prepend_description_choice": "\u8aac\u660e",
|
||||
"rule_action_append_description_choice": "\u8aac\u660e\u306e\u59cb\u3081\u306b\u2026\u3092\u8ffd\u52a0",
|
||||
"rule_action_prepend_description_choice": "\u8aac\u660e\u306e\u7d42\u308f\u308a\u306b\u2026\u3092\u8ffd\u52a0",
|
||||
"rule_action_set_source_account_choice": "\u652f\u6255\u5143\u53e3\u5ea7\u3092\u6b21\u306b\u3059\u308b",
|
||||
"rule_action_set_destination_account_choice": "\u9001\u91d1\u5148\u53e3\u5ea7\u3092\u6b21\u306b\u3059\u308b",
|
||||
"rule_action_append_notes_choice": "\u5099\u8003",
|
||||
"rule_action_prepend_notes_choice": "\u5099\u8003",
|
||||
"rule_action_clear_notes_choice": "\u5099\u8003",
|
||||
"rule_action_set_notes_choice": "\u5099\u8003",
|
||||
"rule_action_link_to_bill_choice": "\u53d6\u5f15\u9593\u306e\u30ea\u30f3\u30af\u3092\u524a\u9664\u3059\u308b",
|
||||
"rule_action_convert_deposit_choice": "\u9810\u91d1\u3092\u5909\u63db",
|
||||
"rule_action_convert_withdrawal_choice": "\u51fa\u91d1\u3092\u5909\u63db",
|
||||
"rule_action_convert_transfer_choice": "\u9001\u91d1\u3092\u5909\u63db",
|
||||
"rule_action_append_notes_choice": "\u5099\u8003\u306e\u59cb\u3081\u306b\u2026\u3092\u8ffd\u52a0",
|
||||
"rule_action_prepend_notes_choice": "\u5099\u8003\u306e\u7d42\u308f\u308a\u306b\u2026\u3092\u8ffd\u52a0",
|
||||
"rule_action_clear_notes_choice": "\u5099\u8003\u3092\u524a\u9664",
|
||||
"rule_action_set_notes_choice": "\u5099\u8003\u306b\u2026\u3092\u8a2d\u5b9a",
|
||||
"rule_action_link_to_bill_choice": "\u8acb\u6c42\u2026\u306b\u30ea\u30f3\u30af",
|
||||
"rule_action_convert_deposit_choice": "\u53d6\u5f15\u3092\u5165\u91d1\u306b\u5909\u63db",
|
||||
"rule_action_convert_withdrawal_choice": "\u53d6\u5f15\u3092\u51fa\u91d1\u306b\u5909\u63db",
|
||||
"rule_action_convert_transfer_choice": "\u53d6\u5f15\u3092\u9001\u91d1\u306b\u5909\u63db",
|
||||
"placeholder": "[Placeholder]",
|
||||
"recurrences": "\u5b9a\u671f\u7684\u306a\u53d6\u5f15",
|
||||
"title_expenses": "\u652f\u51fa",
|
||||
"title_withdrawal": "\u652f\u51fa",
|
||||
"title_revenue": "\u53ce\u5165\u3001\u6240\u5f97\u3001\u5165\u91d1",
|
||||
"title_revenue": "\u53ce\u76ca \/ \u53ce\u5165",
|
||||
"pref_1D": "1\u65e5",
|
||||
"pref_1W": "YYYY\u5e74w[\u9031\u76ee]",
|
||||
"pref_1M": "1\u30f5\u6708",
|
||||
@@ -144,39 +144,39 @@ export default {
|
||||
"repeat_freq_yearly": "\u6bce\u5e74",
|
||||
"repeat_freq_half-year": "\u534a\u5e74\u3054\u3068",
|
||||
"repeat_freq_quarterly": "\u56db\u534a\u671f\u3054\u3068",
|
||||
"repeat_freq_monthly": "\u30af\u30ec\u30b8\u30c3\u30c8\u30ab\u30fc\u30c9\u306e\u5f15\u304d\u843d\u3068\u3057\u65e5",
|
||||
"repeat_freq_monthly": "\u6bce\u6708",
|
||||
"repeat_freq_weekly": "\u9031\u6bce",
|
||||
"single_split": "\u5206\u5272",
|
||||
"asset_accounts": "\u8cc7\u7523\u52d8\u5b9a",
|
||||
"expense_accounts": "\u652f\u51fa\u53e3\u5ea7",
|
||||
"liabilities_accounts": "\u8ca0\u50b5",
|
||||
"undefined_accounts": "Accounts",
|
||||
"name": "\u540d\u524d",
|
||||
"revenue_accounts": "\u53ce\u5165\u6e90\u3092\u898b\u308b",
|
||||
"liabilities_accounts": "\u50b5\u52d9",
|
||||
"undefined_accounts": "\u53e3\u5ea7",
|
||||
"name": "\u540d\u79f0",
|
||||
"revenue_accounts": "\u53ce\u5165\u53e3\u5ea7",
|
||||
"description": "\u8aac\u660e",
|
||||
"category": "\u30ab\u30c6\u30b4\u30ea",
|
||||
"title_deposit": "\u53ce\u5165\u3001\u6240\u5f97\u3001\u5165\u91d1",
|
||||
"title_transfer": "\u632f\u308a\u66ff\u3048",
|
||||
"title_transfers": "\u632f\u308a\u66ff\u3048",
|
||||
"title_deposit": "\u53ce\u76ca \/ \u53ce\u5165",
|
||||
"title_transfer": "\u9001\u91d1",
|
||||
"title_transfers": "\u9001\u91d1",
|
||||
"piggyBanks": "\u8caf\u91d1\u7bb1",
|
||||
"rules": "\u30eb\u30fc\u30eb",
|
||||
"accounts": "\u30a2\u30ab\u30a6\u30f3\u30c8",
|
||||
"accounts": "\u53e3\u5ea7",
|
||||
"categories": "\u30ab\u30c6\u30b4\u30ea",
|
||||
"tags": "\u30bf\u30b0",
|
||||
"object_groups_page_title": "\u30b0\u30eb\u30fc\u30d7",
|
||||
"reports": "\u30ec\u30dd\u30fc\u30c8",
|
||||
"webhooks": "Webhooks",
|
||||
"currencies": "\u5916\u8ca8",
|
||||
"currencies": "\u901a\u8ca8",
|
||||
"administration": "\u7ba1\u7406",
|
||||
"profile": "\u30d7\u30ed\u30d5\u30a3\u30fc\u30eb",
|
||||
"source_account": "\u652f\u51fa\u5143\u306e\u30a2\u30ab\u30a6\u30f3\u30c8",
|
||||
"destination_account": "\u9001\u91d1\u5148\u306e\u30a2\u30ab\u30a6\u30f3\u30c8",
|
||||
"source_account": "\u652f\u51fa\u5143\u53e3\u5ea7",
|
||||
"destination_account": "\u9001\u91d1\u5148\u306e\u53e3\u5ea7",
|
||||
"amount": "\u91d1\u984d",
|
||||
"date": "\u65e5\u4ed8",
|
||||
"time": "\u6642\u523b",
|
||||
"preferences": "\u8a2d\u5b9a",
|
||||
"transactions": "\u3059\u3079\u3066\u306e\u53d6\u5f15",
|
||||
"balance": "\u6b8b\u9ad8",
|
||||
"transactions": "\u53d6\u5f15",
|
||||
"balance": "\u53ce\u652f",
|
||||
"budgets": "\u4e88\u7b97",
|
||||
"subscriptions": "\u8b1b\u8aad",
|
||||
"welcome_back": "\u6982\u8981",
|
||||
|
||||
2
frontend/src/i18n/pt_PT/index.js
vendored
2
frontend/src/i18n/pt_PT/index.js
vendored
@@ -1,7 +1,7 @@
|
||||
export default {
|
||||
"config": {
|
||||
"html_language": "pt",
|
||||
"month_and_day_fns": "d MMMM, y"
|
||||
"month_and_day_fns": "d MMMM y"
|
||||
},
|
||||
"form": {
|
||||
"name": "Nome",
|
||||
|
||||
2
frontend/src/i18n/ru_RU/index.js
vendored
2
frontend/src/i18n/ru_RU/index.js
vendored
@@ -18,7 +18,7 @@ export default {
|
||||
},
|
||||
"list": {
|
||||
"name": "\u0418\u043c\u044f",
|
||||
"account_number": "Account number",
|
||||
"account_number": "\u041d\u043e\u043c\u0435\u0440 \u0441\u0447\u0451\u0442\u0430",
|
||||
"currentBalance": "\u0422\u0435\u043a\u0443\u0449\u0438\u0439 \u0431\u0430\u043b\u0430\u043d\u0441",
|
||||
"lastActivity": "\u041f\u043e\u0441\u043b\u0435\u0434\u043d\u044f\u044f \u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u044c",
|
||||
"active": "\u0410\u043a\u0442\u0438\u0432\u0435\u043d?"
|
||||
|
||||
38
frontend/src/i18n/zh_CN/index.js
vendored
38
frontend/src/i18n/zh_CN/index.js
vendored
@@ -7,7 +7,7 @@ export default {
|
||||
"name": "\u540d\u79f0",
|
||||
"amount_min": "\u6700\u5c0f\u91d1\u989d",
|
||||
"amount_max": "\u6700\u5927\u91d1\u989d",
|
||||
"url": "URL",
|
||||
"url": "\u7f51\u5740",
|
||||
"title": "\u6807\u9898",
|
||||
"first_date": "\u521d\u6b21\u65e5\u671f",
|
||||
"repetitions": "\u91cd\u590d",
|
||||
@@ -50,10 +50,10 @@ export default {
|
||||
"rule_trigger_source_account_ends_choice": "\u6765\u6e90\u8d26\u6237\u7ed3\u5c3e\u4e3a\u2026",
|
||||
"rule_trigger_source_account_is_choice": "\u6765\u6e90\u8d26\u6237\u540d\u79f0\u4e3a...",
|
||||
"rule_trigger_source_account_contains_choice": "\u6765\u6e90\u8d26\u6237\u540d\u79f0\u5305\u542b...",
|
||||
"rule_trigger_account_id_choice": "Either account ID is exactly..",
|
||||
"rule_trigger_account_id_choice": "\u5176\u4e2d\u4e00\u4e2a\u8d26\u6237ID\u4e3a...",
|
||||
"rule_trigger_source_account_id_choice": "\u6765\u6e90\u8d26\u6237 ID \u4e3a...",
|
||||
"rule_trigger_destination_account_id_choice": "\u76ee\u6807\u8d26\u6237 ID \u4e3a...",
|
||||
"rule_trigger_account_is_cash_choice": "Either account is cash",
|
||||
"rule_trigger_account_is_cash_choice": "\u5176\u4e2d\u4e00\u4e2a\u8d26\u6237\u662f\u73b0\u91d1\u8d26\u6237",
|
||||
"rule_trigger_source_is_cash_choice": "\u6765\u6e90\u8d26\u6237\u4e3a (\u73b0\u91d1) \u8d26\u6237",
|
||||
"rule_trigger_destination_is_cash_choice": "\u76ee\u6807\u8d26\u6237\u4e3a (\u73b0\u91d1) \u8d26\u6237",
|
||||
"rule_trigger_source_account_nr_starts_choice": "\u6765\u6e90\u8d26\u6237\u7f16\u53f7 \/ IBAN \u5f00\u5934\u4e3a...",
|
||||
@@ -68,8 +68,8 @@ export default {
|
||||
"rule_trigger_destination_account_nr_ends_choice": "\u76ee\u6807\u8d26\u6237\u7f16\u53f7 \/ IBAN \u7ed3\u5c3e\u4e3a...",
|
||||
"rule_trigger_destination_account_nr_is_choice": "\u76ee\u6807\u8d26\u6237\u7f16\u53f7 \/ IBAN \u4e3a...",
|
||||
"rule_trigger_destination_account_nr_contains_choice": "\u76ee\u6807\u8d26\u6237\u7f16\u53f7 \/ IBAN \u5305\u542b...",
|
||||
"rule_trigger_transaction_type_choice": "\u8f6c\u8d26\u7c7b\u578b\u4e3a\u2026",
|
||||
"rule_trigger_category_is_choice": "\u7c7b\u522b...",
|
||||
"rule_trigger_transaction_type_choice": "\u4ea4\u6613\u7c7b\u578b\u4e3a\u2026",
|
||||
"rule_trigger_category_is_choice": "\u5206\u7c7b\u4e3a...",
|
||||
"rule_trigger_amount_less_choice": "\u91d1\u989d\u5c0f\u4e8e\u2026",
|
||||
"rule_trigger_amount_is_choice": "Amount is..",
|
||||
"rule_trigger_amount_more_choice": "\u91d1\u989d\u5927\u4e8e\u2026",
|
||||
@@ -83,8 +83,8 @@ export default {
|
||||
"rule_trigger_created_at_on_choice": "Transaction was made on..",
|
||||
"rule_trigger_updated_at_on_choice": "Transaction was last edited on..",
|
||||
"rule_trigger_budget_is_choice": "\u9884\u7b97\u4e3a\u2026",
|
||||
"rule_trigger_tag_is_choice": "Any tag is..",
|
||||
"rule_trigger_currency_is_choice": "\u8f6c\u8d26\u8d27\u5e01\u4e3a\u2026",
|
||||
"rule_trigger_tag_is_choice": "\u5176\u4e2d\u4e00\u4e2a\u6807\u7b7e\u4e3a...",
|
||||
"rule_trigger_currency_is_choice": "\u4ea4\u6613\u8d27\u5e01\u4e3a\u2026",
|
||||
"rule_trigger_foreign_currency_is_choice": "\u4ea4\u6613\u5916\u5e01\u4e3a...",
|
||||
"rule_trigger_has_attachments_choice": "\u81f3\u5c11\u6709\u8fd9\u4e48\u591a\u9644\u4ef6",
|
||||
"rule_trigger_has_no_category_choice": "\u65e0\u5206\u7c7b",
|
||||
@@ -97,17 +97,17 @@ export default {
|
||||
"rule_trigger_has_any_tag_choice": "\u6709\u4e00\u4e2a\u6216\u591a\u4e2a (\u4efb\u4f55) \u6807\u7b7e",
|
||||
"rule_trigger_any_notes_choice": "\u6709 (\u4efb\u610f) \u5907\u6ce8",
|
||||
"rule_trigger_no_notes_choice": "\u65e0\u5907\u6ce8",
|
||||
"rule_trigger_notes_is_choice": "Notes are..",
|
||||
"rule_trigger_notes_contains_choice": "Notes contain..",
|
||||
"rule_trigger_notes_starts_choice": "Notes start with..",
|
||||
"rule_trigger_notes_ends_choice": "Notes end with..",
|
||||
"rule_trigger_notes_is_choice": "\u5907\u6ce8\u4e3a...",
|
||||
"rule_trigger_notes_contains_choice": "\u5907\u6ce8\u5305\u542b...",
|
||||
"rule_trigger_notes_starts_choice": "\u5907\u6ce8\u5f00\u5934\u4e3a...",
|
||||
"rule_trigger_notes_ends_choice": "\u5907\u6ce8\u7ed3\u5c3e\u4e3a...",
|
||||
"rule_trigger_bill_is_choice": "\u8d26\u5355\u662f...",
|
||||
"rule_trigger_external_id_is_choice": "External ID is..",
|
||||
"rule_trigger_internal_reference_is_choice": "Internal reference is..",
|
||||
"rule_trigger_external_id_is_choice": "\u5916\u90e8ID\u4e3a...",
|
||||
"rule_trigger_internal_reference_is_choice": "\u5185\u90e8\u5f15\u7528\u4e3a...",
|
||||
"rule_trigger_journal_id_choice": "\u4ea4\u6613\u65e5\u5fd7 ID \u4e3a...",
|
||||
"rule_trigger_any_external_url_choice": "\u4ea4\u6613\u6709\u4e00\u4e2a\u5916\u90e8URL",
|
||||
"rule_trigger_no_external_url_choice": "Transaction has no external URL",
|
||||
"rule_trigger_id_choice": "Transaction ID is..",
|
||||
"rule_trigger_no_external_url_choice": "\u4ea4\u6613\u6ca1\u6709\u5916\u90e8\u94fe\u63a5",
|
||||
"rule_trigger_id_choice": "\u4ea4\u6613ID\u4e3a...",
|
||||
"rule_action_delete_transaction_choice": "\u5220\u9664\u4ea4\u6613 (!)",
|
||||
"rule_action_set_category_choice": "\u5c06\u5206\u7c7b\u8bbe\u4e3a\u2026",
|
||||
"rule_action_clear_category_choice": "\u6e05\u7a7a\u4efb\u4f55\u5206\u7c7b",
|
||||
@@ -183,10 +183,10 @@ export default {
|
||||
"bills_to_pay": "\u5f85\u4ed8\u8d26\u5355",
|
||||
"left_to_spend": "\u5269\u4f59\u652f\u51fa",
|
||||
"net_worth": "\u51c0\u8d44\u4ea7",
|
||||
"pref_last365": "Last year",
|
||||
"pref_last90": "Last 90 days",
|
||||
"pref_last30": "Last 30 days",
|
||||
"pref_last7": "Last 7 days",
|
||||
"pref_last365": "\u6700\u8fd1\u4e00\u5e74",
|
||||
"pref_last90": "\u6700\u8fd190\u5929",
|
||||
"pref_last30": "\u6700\u8fd1 30 \u5929",
|
||||
"pref_last7": "\u6700\u8fd17\u5929",
|
||||
"pref_YTD": "Year to date",
|
||||
"pref_QTD": "Quarter to date",
|
||||
"pref_MTD": "Month to date"
|
||||
|
||||
@@ -1927,9 +1927,9 @@ astral-regex@^2.0.0:
|
||||
integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==
|
||||
|
||||
async@^2.6.2:
|
||||
version "2.6.3"
|
||||
resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff"
|
||||
integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==
|
||||
version "2.6.4"
|
||||
resolved "https://registry.yarnpkg.com/async/-/async-2.6.4.tgz#706b7ff6084664cd7eae713f6f965433b5504221"
|
||||
integrity sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==
|
||||
dependencies:
|
||||
lodash "^4.17.14"
|
||||
|
||||
|
||||
@@ -10,8 +10,8 @@
|
||||
},
|
||||
"devDependencies": {
|
||||
"@johmun/vue-tags-input": "^2",
|
||||
"@vue/compiler-sfc": "^3.2.29",
|
||||
"axios": "^0.26",
|
||||
"@vue/compiler-sfc": "^3.2.36",
|
||||
"axios": "^0.27",
|
||||
"bootstrap-sass": "^3",
|
||||
"cross-env": "^7.0",
|
||||
"font-awesome": "^4.7.0",
|
||||
|
||||
3
public/v1/js/create_transaction.js
vendored
3
public/v1/js/create_transaction.js
vendored
File diff suppressed because one or more lines are too long
@@ -1,5 +1,8 @@
|
||||
/*!
|
||||
* Vue.js v2.6.14
|
||||
* (c) 2014-2021 Evan You
|
||||
* Released under the MIT License.
|
||||
* The buffer module from node.js, for the browser.
|
||||
*
|
||||
* @author Feross Aboukhadijeh <http://feross.org>
|
||||
* @license MIT
|
||||
*/
|
||||
|
||||
/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */
|
||||
|
||||
3
public/v1/js/edit_transaction.js
vendored
3
public/v1/js/edit_transaction.js
vendored
File diff suppressed because one or more lines are too long
@@ -1,5 +1,8 @@
|
||||
/*!
|
||||
* Vue.js v2.6.14
|
||||
* (c) 2014-2021 Evan You
|
||||
* Released under the MIT License.
|
||||
* The buffer module from node.js, for the browser.
|
||||
*
|
||||
* @author Feross Aboukhadijeh <http://feross.org>
|
||||
* @license MIT
|
||||
*/
|
||||
|
||||
/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */
|
||||
|
||||
3
public/v1/js/profile.js
vendored
3
public/v1/js/profile.js
vendored
File diff suppressed because one or more lines are too long
@@ -1,5 +1,8 @@
|
||||
/*!
|
||||
* Vue.js v2.6.14
|
||||
* (c) 2014-2021 Evan You
|
||||
* Released under the MIT License.
|
||||
* The buffer module from node.js, for the browser.
|
||||
*
|
||||
* @author Feross Aboukhadijeh <http://feross.org>
|
||||
* @license MIT
|
||||
*/
|
||||
|
||||
/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user