@tasenor/common-plugins 1.17.15 → 1.17.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +1 -1
- package/.turbo/turbo-ci.log +2 -2
- package/.turbo/turbo-release.log +0 -8
- package/dist/AssetReport/backend/index.d.ts +2 -1
- package/dist/AssetReport/backend/index.js +5 -1
- package/dist/AssetReport/backend/index.js.map +1 -1
- package/dist/EstonianBalanceSheetReport/backend/index.d.ts +18 -0
- package/dist/EstonianBalanceSheetReport/backend/index.js +126 -0
- package/dist/EstonianBalanceSheetReport/backend/index.js.map +1 -0
- package/dist/EstonianIncomeStatementReport/backend/index.d.ts +26 -0
- package/dist/EstonianIncomeStatementReport/backend/index.js +220 -0
- package/dist/EstonianIncomeStatementReport/backend/index.js.map +1 -0
- package/dist/EstonianLimitedCompanyLite/backend/index.d.ts +10 -0
- package/dist/EstonianLimitedCompanyLite/backend/index.js +40 -0
- package/dist/EstonianLimitedCompanyLite/backend/index.js.map +1 -0
- package/dist/EstonianLimitedCompanyLite/ui/index.d.ts +16 -0
- package/dist/EstonianLimitedCompanyLite/ui/index.js +24 -0
- package/dist/EstonianLimitedCompanyLite/ui/index.js.map +1 -0
- package/dist/Finnish/common/finnish.json +2 -1
- package/dist/FinnishBalanceSheetReport/backend/index.js +1 -1
- package/dist/FinnishBalanceSheetReport/backend/index.js.map +1 -1
- package/dist/FinnishBalanceSheetReportLite/backend/index.js +1 -1
- package/dist/FinnishBalanceSheetReportLite/backend/index.js.map +1 -1
- package/dist/FinnishIncomeStatementReportLite/backend/index.js +1 -1
- package/dist/FinnishIncomeStatementReportLite/backend/index.js.map +1 -1
- package/dist/NordnetImport/backend/NordnetHandler.js +3 -0
- package/dist/NordnetImport/backend/NordnetHandler.js.map +1 -1
- package/dist/TITOImport/backend/TITOHandler.js +19 -0
- package/dist/TITOImport/backend/TITOHandler.js.map +1 -1
- package/dist/TITOImport/backend/index.js +2 -2
- package/dist/VATEstonia/backend/index.d.ts +5 -0
- package/dist/VATEstonia/backend/index.js +17 -0
- package/dist/VATEstonia/backend/index.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -1
- package/package.json +5 -5
- package/src/AssetReport/backend/index.ts +7 -2
- package/src/Finnish/common/finnish.json +2 -1
- package/src/TickerData/backend/cryptocurrencies.json +3 -2
- package/src/TickerData/backend/currencies.json +3 -3
- package/src/TickerData/backend/etf.json +3 -1
- package/src/TickerData/backend/hel.json +3 -2
- package/src/TickerData/backend/nyse.json +6 -1
- package/src/TickerData/backend/xetra.json +3 -2
- package/src/index.ts +8 -0
- package/.turbo/turbo-audit.log +0 -24
- package/.turbo/turbo-fix.log +0 -18
- package/.turbo/turbo-lint.log +0 -5
- package/.turbo/turbo-nightly.log +0 -13
- package/.turbo/turbo-nightly3.log +0 -12
- package/.turbo/turbo-release-minor.log +0 -319
- package/.turbo/turbo-show-version.log +0 -6
package/.turbo/turbo-build.log
CHANGED
package/.turbo/turbo-ci.log
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
|
|
2
|
-
> @tasenor/common-plugins@1.16
|
|
2
|
+
> @tasenor/common-plugins@1.17.16 ci /home/ci/tasenor-qa/tasenor-bookkeeper/packages/tasenor-common-plugins
|
|
3
3
|
> pnpm run lint
|
|
4
4
|
|
|
5
5
|
|
|
6
|
-
> @tasenor/common-plugins@1.16
|
|
6
|
+
> @tasenor/common-plugins@1.17.16 lint /home/ci/tasenor-qa/tasenor-bookkeeper/packages/tasenor-common-plugins
|
|
7
7
|
> eslint 'src/**/*.{ts,tsx}' 'data/**/*.mjs'
|
|
8
8
|
|
package/.turbo/turbo-release.log
CHANGED
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
> @tasenor/common-plugins@1.17.14 release /home/wigy/project/tasenor-qa/tasenor-bookkeeper/packages/tasenor-common-plugins
|
|
4
|
-
> pnpm version patch && pnpm publish --force --access public --no-git-checks
|
|
5
|
-
|
|
6
|
-
[1mnpm[22m [33mwarn[39m [94mUnknown env config "auto-install-peers". This will stop working in the next major version of npm.[39m
|
|
7
|
-
v1.17.15
|
|
8
|
-
[43m[30m WARN [39m[49m using --force I sure hope you know what you are doing
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import { Language, ReportColumnDefinition, ReportData, ReportID, ReportLine, ReportMeta, ReportOptions, ReportQueryParams } from '@tasenor/common';
|
|
1
|
+
import { Language, ReportColumnDefinition, ReportData, ReportFormat, ReportID, ReportLine, ReportMeta, ReportOptions, ReportQueryParams } from '@tasenor/common';
|
|
2
2
|
import { ReportPlugin } from '@tasenor/common-node';
|
|
3
3
|
declare class AssetReport extends ReportPlugin {
|
|
4
4
|
constructor();
|
|
5
5
|
getLanguages(): Language[];
|
|
6
6
|
getReportOptions(): ReportOptions;
|
|
7
|
+
getReportStructure(id: ReportID, lang: Language): ReportFormat | undefined;
|
|
7
8
|
getColumns(id: ReportID, entries: ReportData[], options: ReportOptions, settings: ReportMeta): Promise<ReportColumnDefinition[]>;
|
|
8
9
|
extraSQLCondition(): Promise<string | null>;
|
|
9
10
|
/**
|
|
@@ -44,6 +44,10 @@ class AssetReport extends ReportPlugin {
|
|
|
44
44
|
};
|
|
45
45
|
}
|
|
46
46
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
47
|
+
getReportStructure(id, lang) {
|
|
48
|
+
return undefined;
|
|
49
|
+
}
|
|
50
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
47
51
|
async getColumns(id, entries, options, settings) {
|
|
48
52
|
return [
|
|
49
53
|
{
|
|
@@ -121,7 +125,7 @@ class AssetReport extends ReportPlugin {
|
|
|
121
125
|
const value = bookkeeping.value(asset);
|
|
122
126
|
// TODO: This is a problematic. It assumes free plugin, since there is no verification.
|
|
123
127
|
// There should be mechanism to be passed accessibility to this function and ignore
|
|
124
|
-
//
|
|
128
|
+
// call if not subscribed to this plugin.
|
|
125
129
|
const tickers = await getBackendCatalog().queryBackend('ticker', `${type}:${asset}`);
|
|
126
130
|
// TODO: How to differentiate between multiple answers? Perhaps need to ask during the import and store somehow?
|
|
127
131
|
// If so, we need to query `${type}:${exchange}:${asset}` instead.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/AssetReport/backend/index.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/AssetReport/backend/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Language, ReportLine, ReportOptions } from '@tasenor/common';
|
|
2
|
+
import { ReportPlugin } from '@tasenor/common-node';
|
|
3
|
+
declare class EstonianBalanceSheetReport extends ReportPlugin {
|
|
4
|
+
constructor();
|
|
5
|
+
forceOptions(): {
|
|
6
|
+
negateAssetAndProfit: boolean;
|
|
7
|
+
addPreviousPeriod: boolean;
|
|
8
|
+
};
|
|
9
|
+
getLanguages(): Language[];
|
|
10
|
+
getReportOptions(): ReportOptions;
|
|
11
|
+
columnTitle(id: any, period: any, options: any): string;
|
|
12
|
+
preProcess(id: any, entries: any, options: any, settings: any, columns: any): Promise<ReportLine[]>;
|
|
13
|
+
/**
|
|
14
|
+
* Mark mismatching Vastaavaa and Vastattavaa with red.
|
|
15
|
+
*/
|
|
16
|
+
postProcess(id: any, data: any): Promise<any>;
|
|
17
|
+
}
|
|
18
|
+
export default EstonianBalanceSheetReport;
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import { ReportPlugin } from '@tasenor/common-node';
|
|
2
|
+
import dayjs from 'dayjs';
|
|
3
|
+
import quarterOfYear from 'dayjs/plugin/quarterOfYear';
|
|
4
|
+
dayjs.extend(quarterOfYear);
|
|
5
|
+
class EstonianBalanceSheetReport extends ReportPlugin {
|
|
6
|
+
constructor() {
|
|
7
|
+
super('balance-sheet-detailed', 'balance-sheet');
|
|
8
|
+
this.schemes = new Set(['EstonianLimitedCompanyLite']);
|
|
9
|
+
this.code = 'EstonianBalanceSheetReport';
|
|
10
|
+
this.title = 'Balance Sheet Report (Estonian)';
|
|
11
|
+
this.version = '1.0.1';
|
|
12
|
+
this.icon = '<svg xmlns="http://www.w3.org/2000/svg" enable-background="new 0 0 24 24" height="24px" viewBox="0 0 24 24" width="24px" fill="#000000"><g><path d="M0,0h24v24H0V0z" fill="none"/></g><g><g><path d="M14,5H5v14h14v-9h-5V5z M8,17c-0.55,0-1-0.45-1-1s0.45-1,1-1s1,0.45,1,1S8.55,17,8,17z M8,13 c-0.55,0-1-0.45-1-1s0.45-1,1-1s1,0.45,1,1S8.55,13,8,13z M8,9C7.45,9,7,8.55,7,8s0.45-1,1-1s1,0.45,1,1S8.55,9,8,9z" opacity=".3"/><circle cx="8" cy="8" r="1"/><path d="M15,3H5C3.9,3,3.01,3.9,3.01,5L3,19c0,1.1,0.89,2,1.99,2H19c1.1,0,2-0.9,2-2V9L15,3z M19,19H5V5h9v5h5V19z"/><circle cx="8" cy="12" r="1"/><circle cx="8" cy="16" r="1"/></g></g></svg>';
|
|
13
|
+
this.releaseDate = '2026-02-05';
|
|
14
|
+
this.use = 'backend';
|
|
15
|
+
this.type = 'report';
|
|
16
|
+
this.description = 'Balance sheet report translated in Finnish or English.';
|
|
17
|
+
this.languages = {
|
|
18
|
+
en: {
|
|
19
|
+
'report-balance-sheet-detailed': 'Detailed balance sheet',
|
|
20
|
+
'report-balance-sheet': 'Balance sheet'
|
|
21
|
+
},
|
|
22
|
+
fi: {
|
|
23
|
+
'report-balance-sheet-detailed': 'Tase tilierittelyin',
|
|
24
|
+
'report-balance-sheet': 'Tase'
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
forceOptions() {
|
|
29
|
+
return {
|
|
30
|
+
negateAssetAndProfit: true,
|
|
31
|
+
addPreviousPeriod: true
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
getLanguages() {
|
|
35
|
+
return ['fi', 'en'];
|
|
36
|
+
}
|
|
37
|
+
getReportOptions() {
|
|
38
|
+
return {
|
|
39
|
+
month1: 'radio:1',
|
|
40
|
+
month2: 'radio:1',
|
|
41
|
+
quarter1: 'radio:1',
|
|
42
|
+
month4: 'radio:1',
|
|
43
|
+
month5: 'radio:1',
|
|
44
|
+
quarter2: 'radio:1',
|
|
45
|
+
month7: 'radio:1',
|
|
46
|
+
month8: 'radio:1',
|
|
47
|
+
quarter3: 'radio:1',
|
|
48
|
+
month10: 'radio:1',
|
|
49
|
+
month11: 'radio:1',
|
|
50
|
+
full: 'radio:1:default',
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
columnTitle(id, period, options) {
|
|
54
|
+
const year = dayjs(period.start_date).year();
|
|
55
|
+
if (options.month1) {
|
|
56
|
+
return `{${dayjs(`${year}-02-01`).subtract(1, 'day').format('YYYY-MM-DD')}}`;
|
|
57
|
+
}
|
|
58
|
+
else if (options.month2) {
|
|
59
|
+
return `{${dayjs(`${year}-03-01`).subtract(1, 'day').format('YYYY-MM-DD')}}`;
|
|
60
|
+
}
|
|
61
|
+
else if (options.month4) {
|
|
62
|
+
return `{${dayjs(`${year}-05-01`).subtract(1, 'day').format('YYYY-MM-DD')}}`;
|
|
63
|
+
}
|
|
64
|
+
else if (options.month5) {
|
|
65
|
+
return `{${dayjs(`${year}-06-01`).subtract(1, 'day').format('YYYY-MM-DD')}}`;
|
|
66
|
+
}
|
|
67
|
+
else if (options.month7) {
|
|
68
|
+
return `{${dayjs(`${year}-08-01`).subtract(1, 'day').format('YYYY-MM-DD')}}`;
|
|
69
|
+
}
|
|
70
|
+
else if (options.month8) {
|
|
71
|
+
return `{${dayjs(`${year}-09-01`).subtract(1, 'day').format('YYYY-MM-DD')}}`;
|
|
72
|
+
}
|
|
73
|
+
else if (options.month10) {
|
|
74
|
+
return `{${dayjs(`${year}-11-01`).subtract(1, 'day').format('YYYY-MM-DD')}}`;
|
|
75
|
+
}
|
|
76
|
+
else if (options.month11) {
|
|
77
|
+
return `{${dayjs(`${year}-12-01`).subtract(1, 'day').format('YYYY-MM-DD')}}`;
|
|
78
|
+
}
|
|
79
|
+
else if (options.quarter1) {
|
|
80
|
+
return `{${dayjs(`${year}-04-01`).subtract(1, 'day').format('YYYY-MM-DD')}}`;
|
|
81
|
+
}
|
|
82
|
+
else if (options.quarter2) {
|
|
83
|
+
return `{${dayjs(`${year}-07-01`).subtract(1, 'day').format('YYYY-MM-DD')}}`;
|
|
84
|
+
}
|
|
85
|
+
else if (options.quarter3) {
|
|
86
|
+
return `{${dayjs(`${year}-10-01`).subtract(1, 'day').format('YYYY-MM-DD')}}`;
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
return `{${this.time2str(period.end_date)}}`;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
async preProcess(id, entries, options, settings, columns) {
|
|
93
|
+
const columnNames = columns.map((col) => col.name);
|
|
94
|
+
// Summarize all totals from the entries.
|
|
95
|
+
const totals = {};
|
|
96
|
+
columnNames.forEach((column) => (totals[column] = {}));
|
|
97
|
+
const accountNames = {};
|
|
98
|
+
const accountNumbers = new Set();
|
|
99
|
+
entries.forEach((entry) => {
|
|
100
|
+
const column = 'period' + entry.periodId;
|
|
101
|
+
totals[column][entry.number] = totals[column][entry.number] || 0;
|
|
102
|
+
totals[column][entry.number] += entry.amount;
|
|
103
|
+
accountNames[entry.number] = entry.name;
|
|
104
|
+
accountNumbers.add(entry.number);
|
|
105
|
+
});
|
|
106
|
+
return this.parseAndCombineReport([...accountNumbers], accountNames, columns, options.format, totals);
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Mark mismatching Vastaavaa and Vastattavaa with red.
|
|
110
|
+
*/
|
|
111
|
+
async postProcess(id, data) {
|
|
112
|
+
const liabilities = data.find(line => line.name === 'Vastattavaa yhteensä');
|
|
113
|
+
const assets = data.find(line => line.name === 'Vastaavaa yhteensä');
|
|
114
|
+
if (liabilities && assets) {
|
|
115
|
+
Object.values(liabilities.values).forEach((value, idx) => {
|
|
116
|
+
if (Object.values(assets.values)[idx] !== value) {
|
|
117
|
+
assets.error = true;
|
|
118
|
+
liabilities.error = true;
|
|
119
|
+
}
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
return data;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
export default EstonianBalanceSheetReport;
|
|
126
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/EstonianBalanceSheetReport/backend/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { Language, ReportOptions } from '@tasenor/common';
|
|
2
|
+
import { ReportPlugin } from '@tasenor/common-node';
|
|
3
|
+
declare class EstonianIncomeStatementReport extends ReportPlugin {
|
|
4
|
+
constructor();
|
|
5
|
+
forceOptions(options: any): {
|
|
6
|
+
negateAssetAndProfit: boolean;
|
|
7
|
+
addPreviousPeriod: boolean;
|
|
8
|
+
};
|
|
9
|
+
getLanguages(): Language[];
|
|
10
|
+
getReportOptions(): ReportOptions;
|
|
11
|
+
/**
|
|
12
|
+
* Construct column title for period.
|
|
13
|
+
* @param formatName
|
|
14
|
+
* @param period
|
|
15
|
+
* @param settings
|
|
16
|
+
*/
|
|
17
|
+
columnTitle(id: any, period: any, options: any): string;
|
|
18
|
+
getColumns(id: any, entries: any, options: any, settings: any): Promise<any>;
|
|
19
|
+
preProcessByTags(id: any, entries: any, options: any, settings: any, columns: any): import("@tasenor/common").ReportLine[];
|
|
20
|
+
preProcess(id: any, entries: any, options: any, settings: any, columns: any): Promise<import("@tasenor/common").ReportLine[]>;
|
|
21
|
+
/**
|
|
22
|
+
* Remove empty columns if report made by tags.
|
|
23
|
+
*/
|
|
24
|
+
postProcess(id: any, data: any, options: any, settings: any, columns: any): Promise<any>;
|
|
25
|
+
}
|
|
26
|
+
export default EstonianIncomeStatementReport;
|
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
import { ReportPlugin } from '@tasenor/common-node';
|
|
2
|
+
import dayjs from 'dayjs';
|
|
3
|
+
import quarterOfYear from 'dayjs/plugin/quarterOfYear';
|
|
4
|
+
dayjs.extend(quarterOfYear);
|
|
5
|
+
class EstonianIncomeStatementReport extends ReportPlugin {
|
|
6
|
+
constructor() {
|
|
7
|
+
super('income-statement-detailed', 'income-statement');
|
|
8
|
+
this.schemes = new Set(['EstonianLimitedCompanyLite']);
|
|
9
|
+
this.code = 'EstonianIncomeStatementReport';
|
|
10
|
+
this.title = 'Income Statement Report (Estonian)';
|
|
11
|
+
this.version = '1.0.1';
|
|
12
|
+
this.icon = '<svg xmlns="http://www.w3.org/2000/svg" enable-background="new 0 0 24 24" height="24px" viewBox="0 0 24 24" width="24px" fill="#000000"><g><path d="M0,0h24v24H0V0z" fill="none"/></g><g><g><path d="M14,5H5v14h14v-9h-5V5z M8,17c-0.55,0-1-0.45-1-1s0.45-1,1-1s1,0.45,1,1S8.55,17,8,17z M8,13 c-0.55,0-1-0.45-1-1s0.45-1,1-1s1,0.45,1,1S8.55,13,8,13z M8,9C7.45,9,7,8.55,7,8s0.45-1,1-1s1,0.45,1,1S8.55,9,8,9z" opacity=".3"/><circle cx="8" cy="8" r="1"/><path d="M15,3H5C3.9,3,3.01,3.9,3.01,5L3,19c0,1.1,0.89,2,1.99,2H19c1.1,0,2-0.9,2-2V9L15,3z M19,19H5V5h9v5h5V19z"/><circle cx="8" cy="12" r="1"/><circle cx="8" cy="16" r="1"/></g></g></svg>';
|
|
13
|
+
this.releaseDate = '2026-02-06';
|
|
14
|
+
this.use = 'backend';
|
|
15
|
+
this.type = 'report';
|
|
16
|
+
this.description = 'Income statement report translated in Finnish and English.';
|
|
17
|
+
this.languages = {
|
|
18
|
+
en: {
|
|
19
|
+
'report-income-statement-detailed': 'Detailed income statement',
|
|
20
|
+
'report-income-statement': 'Income statement'
|
|
21
|
+
},
|
|
22
|
+
fi: {
|
|
23
|
+
'report-income-statement-detailed': 'Tuloslaskelma tilierittelyin',
|
|
24
|
+
'report-income-statement': 'Tuloslaskelma'
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
forceOptions(options) {
|
|
29
|
+
return {
|
|
30
|
+
negateAssetAndProfit: true,
|
|
31
|
+
addPreviousPeriod: !options.byTags
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
getLanguages() {
|
|
35
|
+
return ['fi', 'en'];
|
|
36
|
+
}
|
|
37
|
+
getReportOptions() {
|
|
38
|
+
return {
|
|
39
|
+
month1: 'radio:1',
|
|
40
|
+
month2: 'radio:1',
|
|
41
|
+
quarter1: 'radio:1',
|
|
42
|
+
month4: 'radio:1',
|
|
43
|
+
month5: 'radio:1',
|
|
44
|
+
quarter2: 'radio:1',
|
|
45
|
+
month7: 'radio:1',
|
|
46
|
+
month8: 'radio:1',
|
|
47
|
+
quarter3: 'radio:1',
|
|
48
|
+
month10: 'radio:1',
|
|
49
|
+
month11: 'radio:1',
|
|
50
|
+
full: 'radio:1:default',
|
|
51
|
+
byTags: 'boolean'
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Construct column title for period.
|
|
56
|
+
* @param formatName
|
|
57
|
+
* @param period
|
|
58
|
+
* @param settings
|
|
59
|
+
*/
|
|
60
|
+
columnTitle(id, period, options) {
|
|
61
|
+
const start = this.time2str(period.start_date);
|
|
62
|
+
const year = dayjs(period.start_date).year();
|
|
63
|
+
let end;
|
|
64
|
+
if (options.month1) {
|
|
65
|
+
end = `{${dayjs(`${year}-02-01`).subtract(1, 'day').format('YYYY-MM-DD')}}`;
|
|
66
|
+
}
|
|
67
|
+
else if (options.month2) {
|
|
68
|
+
end = `{${dayjs(`${year}-03-01`).subtract(1, 'day').format('YYYY-MM-DD')}}`;
|
|
69
|
+
}
|
|
70
|
+
else if (options.month4) {
|
|
71
|
+
end = `{${dayjs(`${year}-05-01`).subtract(1, 'day').format('YYYY-MM-DD')}}`;
|
|
72
|
+
}
|
|
73
|
+
else if (options.month5) {
|
|
74
|
+
end = `{${dayjs(`${year}-06-01`).subtract(1, 'day').format('YYYY-MM-DD')}}`;
|
|
75
|
+
}
|
|
76
|
+
else if (options.month7) {
|
|
77
|
+
end = `{${dayjs(`${year}-08-01`).subtract(1, 'day').format('YYYY-MM-DD')}}`;
|
|
78
|
+
}
|
|
79
|
+
else if (options.month8) {
|
|
80
|
+
end = `{${dayjs(`${year}-09-01`).subtract(1, 'day').format('YYYY-MM-DD')}}`;
|
|
81
|
+
}
|
|
82
|
+
else if (options.month10) {
|
|
83
|
+
end = `{${dayjs(`${year}-11-01`).subtract(1, 'day').format('YYYY-MM-DD')}}`;
|
|
84
|
+
}
|
|
85
|
+
else if (options.month11) {
|
|
86
|
+
end = `{${dayjs(`${year}-12-01`).subtract(1, 'day').format('YYYY-MM-DD')}}`;
|
|
87
|
+
}
|
|
88
|
+
else if (options.quarter1) {
|
|
89
|
+
end = `{${dayjs(`${year}-04-01`).subtract(1, 'day').format('YYYY-MM-DD')}}`;
|
|
90
|
+
}
|
|
91
|
+
else if (options.quarter2) {
|
|
92
|
+
end = `{${dayjs(`${year}-07-01`).subtract(1, 'day').format('YYYY-MM-DD')}}`;
|
|
93
|
+
}
|
|
94
|
+
else if (options.quarter3) {
|
|
95
|
+
end = `{${dayjs(`${year}-10-01`).subtract(1, 'day').format('YYYY-MM-DD')}}`;
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
end = `{${this.time2str(period.end_date)}}`;
|
|
99
|
+
}
|
|
100
|
+
return '{' + start + '} — {' + end + '}';
|
|
101
|
+
}
|
|
102
|
+
async getColumns(id, entries, options, settings) {
|
|
103
|
+
// Construct columns for each tag and extra column for non-tagged.
|
|
104
|
+
if (options.byTags) {
|
|
105
|
+
const columns = settings.tags.map((tag) => ({
|
|
106
|
+
type: 'currency',
|
|
107
|
+
name: `tag-${tag.tag}`,
|
|
108
|
+
title: tag.name
|
|
109
|
+
}));
|
|
110
|
+
columns.push({
|
|
111
|
+
type: 'currency',
|
|
112
|
+
name: 'other',
|
|
113
|
+
title: '{Other}'
|
|
114
|
+
});
|
|
115
|
+
columns.unshift({
|
|
116
|
+
name: 'title',
|
|
117
|
+
title: '',
|
|
118
|
+
type: 'name'
|
|
119
|
+
});
|
|
120
|
+
return columns;
|
|
121
|
+
}
|
|
122
|
+
return super.getColumns(id, entries, options, settings);
|
|
123
|
+
}
|
|
124
|
+
preProcessByTags(id, entries, options, settings, columns) {
|
|
125
|
+
// Prepapre.
|
|
126
|
+
const columnNames = columns.map((col) => col.name);
|
|
127
|
+
const tagSet = new Set(settings.tags.map(t => t.tag));
|
|
128
|
+
// Summarize all totals from the entries.
|
|
129
|
+
const totals = {};
|
|
130
|
+
columnNames.forEach((column) => (totals[column] = {}));
|
|
131
|
+
const accountNames = {};
|
|
132
|
+
const accountNumbers = new Set();
|
|
133
|
+
const regex = /^((\[\w+\])+)/;
|
|
134
|
+
entries.forEach((entry) => {
|
|
135
|
+
let shares = [];
|
|
136
|
+
const r = regex.exec(entry.description);
|
|
137
|
+
if (r) {
|
|
138
|
+
shares = r[1].substr(1, r[1].length - 2).split('][').filter(t => tagSet.has(t));
|
|
139
|
+
}
|
|
140
|
+
let amount = entry.amount;
|
|
141
|
+
if (shares.length) {
|
|
142
|
+
// Share the amount so that rounding errors are split.
|
|
143
|
+
const piece = amount < 0 ? Math.ceil(amount / shares.length) : Math.floor(amount / shares.length);
|
|
144
|
+
shares.forEach((tag) => {
|
|
145
|
+
const column = `tag-${tag}`;
|
|
146
|
+
totals[column][entry.number] = totals[column][entry.number] || 0;
|
|
147
|
+
totals[column][entry.number] += piece;
|
|
148
|
+
amount -= piece;
|
|
149
|
+
});
|
|
150
|
+
if (amount) {
|
|
151
|
+
// Make semi-random starting point and distribute cents.
|
|
152
|
+
let i = (entry.periodId) % shares.length;
|
|
153
|
+
const delta = amount < 0 ? -1 : 1;
|
|
154
|
+
for (let count = Math.abs(amount); count > 0; count--) {
|
|
155
|
+
const column = `tag-${shares[i]}`;
|
|
156
|
+
totals[column][entry.number] += delta;
|
|
157
|
+
amount -= delta;
|
|
158
|
+
i = (i + 1) % shares.length;
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
if (amount) {
|
|
163
|
+
totals.other[entry.number] = totals.other[entry.number] || 0;
|
|
164
|
+
totals.other[entry.number] += amount;
|
|
165
|
+
}
|
|
166
|
+
accountNames[entry.number] = entry.name;
|
|
167
|
+
accountNumbers.add(entry.number);
|
|
168
|
+
});
|
|
169
|
+
return this.parseAndCombineReport([...accountNumbers], accountNames, columns, options.format, totals);
|
|
170
|
+
}
|
|
171
|
+
async preProcess(id, entries, options, settings, columns) {
|
|
172
|
+
if (options.byTags) {
|
|
173
|
+
return this.preProcessByTags(id, entries, options, settings, columns);
|
|
174
|
+
}
|
|
175
|
+
const columnNames = columns.map((col) => col.name);
|
|
176
|
+
// Summarize all totals from the entries.
|
|
177
|
+
const totals = {};
|
|
178
|
+
columnNames.forEach((column) => (totals[column] = {}));
|
|
179
|
+
const accountNames = {};
|
|
180
|
+
const accountNumbers = new Set();
|
|
181
|
+
entries.forEach((entry) => {
|
|
182
|
+
const column = 'period' + entry.periodId;
|
|
183
|
+
totals[column][entry.number] = totals[column][entry.number] || 0;
|
|
184
|
+
totals[column][entry.number] += entry.amount;
|
|
185
|
+
accountNames[entry.number] = entry.name;
|
|
186
|
+
accountNumbers.add(entry.number);
|
|
187
|
+
});
|
|
188
|
+
return this.parseAndCombineReport([...accountNumbers], accountNames, columns, options.format, totals);
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Remove empty columns if report made by tags.
|
|
192
|
+
*/
|
|
193
|
+
async postProcess(id, data, options, settings, columns) {
|
|
194
|
+
if (!options.byTags) {
|
|
195
|
+
return data;
|
|
196
|
+
}
|
|
197
|
+
// Find empty columns.
|
|
198
|
+
const found = new Set();
|
|
199
|
+
for (const line of data) {
|
|
200
|
+
if (!line.values) {
|
|
201
|
+
continue;
|
|
202
|
+
}
|
|
203
|
+
for (const [k, v] of Object.entries(line.values)) {
|
|
204
|
+
if (v !== null && !isNaN(v)) {
|
|
205
|
+
found.add(k);
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
// Remove empty columns.
|
|
210
|
+
for (let i = 0; i < columns.length; i++) {
|
|
211
|
+
if ((columns[i].type === 'currency' || columns[i].type === 'numeric') && !found.has(columns[i].name)) {
|
|
212
|
+
columns.splice(i, 1);
|
|
213
|
+
i--;
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
return data;
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
export default EstonianIncomeStatementReport;
|
|
220
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/EstonianIncomeStatementReport/backend/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { SchemePlugin } from '@tasenor/common-node';
|
|
2
|
+
import { Currency, Language, TsvFilePath } from '@tasenor/common';
|
|
3
|
+
declare class EstonianLimitedCompanyLite extends SchemePlugin {
|
|
4
|
+
constructor();
|
|
5
|
+
getSchemePaths(code: any, language: any): TsvFilePath[];
|
|
6
|
+
getSchemeDefaults(code: any): Record<string, unknown>;
|
|
7
|
+
supportedCurrencies(): Currency[];
|
|
8
|
+
supportedLanguages(): Language[];
|
|
9
|
+
}
|
|
10
|
+
export default EstonianLimitedCompanyLite;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import path from 'path';
|
|
2
|
+
import { SchemePlugin } from '@tasenor/common-node';
|
|
3
|
+
class EstonianLimitedCompanyLite extends SchemePlugin {
|
|
4
|
+
constructor() {
|
|
5
|
+
super('EstonianLimitedCompanyLite');
|
|
6
|
+
this.code = 'EstonianLimitedCompanyLite';
|
|
7
|
+
this.title = 'Estonian Limited Company - Lite';
|
|
8
|
+
this.version = '1.0.0';
|
|
9
|
+
this.icon = '<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="#000000"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M11.17 8l-.58-.59L9.17 6H4v12h16V8h-8z" opacity=".3"/><path d="M20 6h-8l-2-2H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm0 12H4V6h5.17l1.41 1.41.59.59H20v10z"/></svg>';
|
|
10
|
+
this.releaseDate = '2026-02-05';
|
|
11
|
+
this.use = 'both';
|
|
12
|
+
this.type = 'scheme';
|
|
13
|
+
this.description = 'Small accounting scheme for Estonian private limited company (OÜ). Finnish version only.';
|
|
14
|
+
this.languages = {
|
|
15
|
+
fi: {}
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
getSchemePaths(code, language) {
|
|
19
|
+
if (code === 'EstonianLimitedCompanyLite') {
|
|
20
|
+
if (language === 'fi') {
|
|
21
|
+
return [
|
|
22
|
+
path.join(__dirname, 'fi-EUR.tsv'),
|
|
23
|
+
];
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
return [];
|
|
27
|
+
}
|
|
28
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
29
|
+
getSchemeDefaults(code) {
|
|
30
|
+
return {};
|
|
31
|
+
}
|
|
32
|
+
supportedCurrencies() {
|
|
33
|
+
return ['EUR'];
|
|
34
|
+
}
|
|
35
|
+
supportedLanguages() {
|
|
36
|
+
return ['fi'];
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
export default EstonianLimitedCompanyLite;
|
|
40
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/EstonianLimitedCompanyLite/backend/index.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAGnD,MAAM,0BAA2B,SAAQ,YAAY;IAEnD;QACE,KAAK,CAAC,4BAA0C,CAAC,CAAA;QAEjD,IAAI,CAAC,IAAI,GAAG,4BAA0C,CAAA;QACtD,IAAI,CAAC,KAAK,GAAG,iCAAiC,CAAA;QAC9C,IAAI,CAAC,OAAO,GAAG,OAAkB,CAAA;QACjC,IAAI,CAAC,IAAI,GAAG,gWAAgW,CAAA;QAC5W,IAAI,CAAC,WAAW,GAAG,YAAY,CAAA;QAC/B,IAAI,CAAC,GAAG,GAAG,MAAM,CAAA;QACjB,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAA;QACpB,IAAI,CAAC,WAAW,GAAG,0FAA0F,CAAA;QAE7G,IAAI,CAAC,SAAS,GAAG;YACf,EAAE,EAAE,EACH;SACF,CAAA;IACH,CAAC;IAED,cAAc,CAAC,IAAI,EAAE,QAAQ;QAC3B,IAAI,IAAI,KAAK,4BAA4B,EAAE,CAAC;YAC1C,IAAI,QAAQ,KAAK,IAAI,EAAE,CAAC;gBACtB,OAAO;oBACL,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC;iBAClB,CAAA;YACpB,CAAC;QACH,CAAC;QACD,OAAO,EAAE,CAAA;IACX,CAAC;IAED,6DAA6D;IAC7D,iBAAiB,CAAC,IAAI;QACpB,OAAO,EAAE,CAAA;IACX,CAAC;IAED,mBAAmB;QACjB,OAAO,CAAC,KAAK,CAAC,CAAA;IAChB,CAAC;IAED,kBAAkB;QAChB,OAAO,CAAC,IAAI,CAAC,CAAA;IACf,CAAC;CACF;AAED,eAAe,0BAA0B,CAAA"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { SchemePlugin } from '@tasenor/common-ui';
|
|
2
|
+
declare class EstonianLimitedCompanyLite extends SchemePlugin {
|
|
3
|
+
static code: string;
|
|
4
|
+
static title: string;
|
|
5
|
+
static version: string;
|
|
6
|
+
static icon: string;
|
|
7
|
+
static releaseDate: string;
|
|
8
|
+
static use: string;
|
|
9
|
+
static type: string;
|
|
10
|
+
static description: string;
|
|
11
|
+
constructor();
|
|
12
|
+
getAccountingSchemes(): {
|
|
13
|
+
EstonianLimitedCompanyLite: string;
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
export default EstonianLimitedCompanyLite;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { SchemePlugin } from '@tasenor/common-ui';
|
|
2
|
+
class EstonianLimitedCompanyLite extends SchemePlugin {
|
|
3
|
+
static code = 'EstonianLimitedCompanyLite';
|
|
4
|
+
static title = 'Estonian Limited Company - Lite';
|
|
5
|
+
static version = '1.0.0';
|
|
6
|
+
static icon = '<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="#000000"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M11.17 8l-.58-.59L9.17 6H4v12h16V8h-8z" opacity=".3"/><path d="M20 6h-8l-2-2H4c-1.1 0-1.99.9-1.99 2L2 18c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2zm0 12H4V6h5.17l1.41 1.41.59.59H20v10z"/></svg>';
|
|
7
|
+
static releaseDate = '2026-02-05';
|
|
8
|
+
static use = 'both';
|
|
9
|
+
static type = 'scheme';
|
|
10
|
+
static description = 'Small accounting scheme for Estonian private limited company (OÜ). Finnish version only.';
|
|
11
|
+
constructor() {
|
|
12
|
+
super();
|
|
13
|
+
this.languages = {
|
|
14
|
+
fi: {
|
|
15
|
+
'Private limited company (Lite scheme)': 'Osakeyhtiö (Suppea tilikartta)'
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
getAccountingSchemes() {
|
|
20
|
+
return { EstonianLimitedCompanyLite: 'Private limited company (Lite scheme)' };
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
export default EstonianLimitedCompanyLite;
|
|
24
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/EstonianLimitedCompanyLite/ui/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAEjD,MAAM,0BAA2B,SAAQ,YAAY;IAEnD,MAAM,CAAC,IAAI,GAAG,4BAA4B,CAAA;IAC1C,MAAM,CAAC,KAAK,GAAG,iCAAiC,CAAA;IAChD,MAAM,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,MAAM,CAAC,IAAI,GAAG,gWAAgW,CAAA;IAC9W,MAAM,CAAC,WAAW,GAAG,YAAY,CAAA;IACjC,MAAM,CAAC,GAAG,GAAG,MAAM,CAAA;IACnB,MAAM,CAAC,IAAI,GAAG,QAAQ,CAAA;IACtB,MAAM,CAAC,WAAW,GAAG,0FAA0F,CAAA;IAE/G;QACE,KAAK,EAAE,CAAA;QACP,IAAI,CAAC,SAAS,GAAG;YACf,EAAE,EAAE;gBACF,uCAAuC,EAAE,gCAAgC;aAC1E;SACF,CAAA;IACH,CAAC;IAED,oBAAoB;QAClB,OAAO,EAAE,0BAA0B,EAAE,uCAAuC,EAAE,CAAA;IAChF,CAAC;;AAGH,eAAe,0BAA0B,CAAA"}
|
|
@@ -359,5 +359,6 @@
|
|
|
359
359
|
"Imported data deleted.": "Tuonnin tiedot poistettu.",
|
|
360
360
|
"Processing crashed before started. Bad file perhaps.": "Käsittely meni vikaan ennen kuin päästiin alkuun. Mahdollisesti vääränlainen tiedosto.",
|
|
361
361
|
"We don't seem to have any history for an asset '{asset}' of type '{type}'. Has it been renamed at some point?": "Meillä ei näyttäisi olevan mitään tietoa tyypin '{type}' omaisuuserästä '{asset}'. Onkohan se nimetty uudelleen jossakin vaiheessa?",
|
|
362
|
-
"Online Documentation": "Nettiohjeet"
|
|
362
|
+
"Online Documentation": "Nettiohjeet",
|
|
363
|
+
"No users": "Ei käyttäjiä"
|
|
363
364
|
}
|
|
@@ -13,7 +13,7 @@ class FinnishBalanceSheetReport extends ReportPlugin {
|
|
|
13
13
|
this.releaseDate = '2023-03-14';
|
|
14
14
|
this.use = 'backend';
|
|
15
15
|
this.type = 'report';
|
|
16
|
-
this.description = 'Balance sheet report translated in Finnish.';
|
|
16
|
+
this.description = 'Balance sheet report translated in Finnish or English.';
|
|
17
17
|
this.languages = {
|
|
18
18
|
en: {
|
|
19
19
|
'report-balance-sheet-detailed': 'Detailed balance sheet',
|