@tasenor/common-plugins 1.17.16 → 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.
Files changed (48) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/.turbo/turbo-ci.log +2 -2
  3. package/.turbo/turbo-release.log +0 -8
  4. package/dist/AssetReport/backend/index.d.ts +2 -1
  5. package/dist/AssetReport/backend/index.js +5 -1
  6. package/dist/AssetReport/backend/index.js.map +1 -1
  7. package/dist/EstonianBalanceSheetReport/backend/index.d.ts +18 -0
  8. package/dist/EstonianBalanceSheetReport/backend/index.js +126 -0
  9. package/dist/EstonianBalanceSheetReport/backend/index.js.map +1 -0
  10. package/dist/EstonianIncomeStatementReport/backend/index.d.ts +26 -0
  11. package/dist/EstonianIncomeStatementReport/backend/index.js +220 -0
  12. package/dist/EstonianIncomeStatementReport/backend/index.js.map +1 -0
  13. package/dist/EstonianLimitedCompanyLite/backend/index.d.ts +10 -0
  14. package/dist/EstonianLimitedCompanyLite/backend/index.js +40 -0
  15. package/dist/EstonianLimitedCompanyLite/backend/index.js.map +1 -0
  16. package/dist/EstonianLimitedCompanyLite/ui/index.d.ts +16 -0
  17. package/dist/EstonianLimitedCompanyLite/ui/index.js +24 -0
  18. package/dist/EstonianLimitedCompanyLite/ui/index.js.map +1 -0
  19. package/dist/Finnish/common/finnish.json +2 -1
  20. package/dist/FinnishBalanceSheetReport/backend/index.js +1 -1
  21. package/dist/FinnishBalanceSheetReport/backend/index.js.map +1 -1
  22. package/dist/FinnishBalanceSheetReportLite/backend/index.js +1 -1
  23. package/dist/FinnishBalanceSheetReportLite/backend/index.js.map +1 -1
  24. package/dist/FinnishIncomeStatementReportLite/backend/index.js +1 -1
  25. package/dist/FinnishIncomeStatementReportLite/backend/index.js.map +1 -1
  26. package/dist/NordnetImport/backend/NordnetHandler.js +3 -0
  27. package/dist/NordnetImport/backend/NordnetHandler.js.map +1 -1
  28. package/dist/TITOImport/backend/TITOHandler.js +19 -0
  29. package/dist/TITOImport/backend/TITOHandler.js.map +1 -1
  30. package/dist/TITOImport/backend/index.js +2 -2
  31. package/dist/VATEstonia/backend/index.d.ts +5 -0
  32. package/dist/VATEstonia/backend/index.js +17 -0
  33. package/dist/VATEstonia/backend/index.js.map +1 -0
  34. package/dist/index.d.ts +8 -0
  35. package/dist/index.js +8 -0
  36. package/dist/index.js.map +1 -1
  37. package/package.json +5 -5
  38. package/src/AssetReport/backend/index.ts +1 -0
  39. package/src/Finnish/common/finnish.json +2 -1
  40. package/src/TickerData/backend/currencies.json +3 -3
  41. package/src/index.ts +8 -0
  42. package/.turbo/turbo-audit.log +0 -24
  43. package/.turbo/turbo-fix.log +0 -18
  44. package/.turbo/turbo-lint.log +0 -5
  45. package/.turbo/turbo-nightly.log +0 -13
  46. package/.turbo/turbo-nightly3.log +0 -12
  47. package/.turbo/turbo-release-minor.log +0 -319
  48. package/.turbo/turbo-show-version.log +0 -6
@@ -1,4 +1,4 @@
1
1
 
2
- > @tasenor/common-plugins@1.16.9 build /home/wigy/project/tasenor-qa/tasenor-bookkeeper/packages/tasenor-common-plugins
2
+ > @tasenor/common-plugins@1.17.16 build /home/ci/tasenor-qa/tasenor-bookkeeper/packages/tasenor-common-plugins
3
3
  > rm -fr dist && tsc
4
4
 
@@ -1,8 +1,8 @@
1
1
 
2
- > @tasenor/common-plugins@1.16.9 ci /home/wigy/project/tasenor-qa/tasenor-bookkeeper/packages/tasenor-common-plugins
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.9 lint /home/wigy/project/tasenor-qa/tasenor-bookkeeper/packages/tasenor-common-plugins
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
 
@@ -1,8 +0,0 @@
1
-
2
-
3
- > @tasenor/common-plugins@1.17.15 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
- npm warn Unknown env config "auto-install-peers". This will stop working in the next major version of npm.
7
- v1.17.16
8
-  WARN  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
- // Call if not subscribed to this plugin.
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":"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"}
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":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AACnD,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,aAAa,MAAM,4BAA4B,CAAA;AACtD,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,CAAA;AAE3B,MAAM,0BAA2B,SAAQ,YAAY;IACnD;QACE,KAAK,CAAC,wBAAoC,EAAE,eAA2B,CAAC,CAAA;QAExE,IAAI,CAAC,OAAO,GAAG,IAAI,GAAG,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAA;QAEtD,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,0nBAA0nB,CAAA;QACtoB,IAAI,CAAC,WAAW,GAAG,YAAY,CAAA;QAC/B,IAAI,CAAC,GAAG,GAAG,SAAS,CAAA;QACpB,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAA;QACpB,IAAI,CAAC,WAAW,GAAG,wDAAwD,CAAA;QAE3E,IAAI,CAAC,SAAS,GAAG;YACf,EAAE,EAAE;gBACF,+BAA+B,EAAE,wBAAwB;gBACzD,sBAAsB,EAAE,eAAe;aACxC;YACD,EAAE,EAAE;gBACF,+BAA+B,EAAE,qBAAqB;gBACtD,sBAAsB,EAAE,MAAM;aAC/B;SACF,CAAA;IACH,CAAC;IAED,YAAY;QACV,OAAO;YACL,oBAAoB,EAAE,IAAI;YAC1B,iBAAiB,EAAE,IAAI;SACxB,CAAA;IACH,CAAC;IAED,YAAY;QACV,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IACrB,CAAC;IAED,gBAAgB;QACd,OAAO;YACL,MAAM,EAAE,SAAS;YACjB,MAAM,EAAE,SAAS;YACjB,QAAQ,EAAE,SAAS;YACnB,MAAM,EAAE,SAAS;YACjB,MAAM,EAAE,SAAS;YACjB,QAAQ,EAAE,SAAS;YACnB,MAAM,EAAE,SAAS;YACjB,MAAM,EAAE,SAAS;YACjB,QAAQ,EAAE,SAAS;YACnB,OAAO,EAAE,SAAS;YAClB,OAAO,EAAE,SAAS;YAClB,IAAI,EAAE,iBAAiB;SACxB,CAAA;IACH,CAAC;IAED,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO;QAC7B,MAAM,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,CAAA;QAE5C,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,OAAO,IAAI,KAAK,CAAC,GAAG,IAAI,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAA;QAC9E,CAAC;aAAM,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YAC1B,OAAO,IAAI,KAAK,CAAC,GAAG,IAAI,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAA;QAC9E,CAAC;aAAM,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YAC1B,OAAO,IAAI,KAAK,CAAC,GAAG,IAAI,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAA;QAC9E,CAAC;aAAM,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YAC1B,OAAO,IAAI,KAAK,CAAC,GAAG,IAAI,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAA;QAC9E,CAAC;aAAM,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YAC1B,OAAO,IAAI,KAAK,CAAC,GAAG,IAAI,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAA;QAC9E,CAAC;aAAM,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YAC1B,OAAO,IAAI,KAAK,CAAC,GAAG,IAAI,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAA;QAC9E,CAAC;aAAM,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YAC3B,OAAO,IAAI,KAAK,CAAC,GAAG,IAAI,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAA;QAC9E,CAAC;aAAM,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YAC3B,OAAO,IAAI,KAAK,CAAC,GAAG,IAAI,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAA;QAC9E,CAAC;aAAM,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YAC5B,OAAO,IAAI,KAAK,CAAC,GAAG,IAAI,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAA;QAC9E,CAAC;aAAM,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YAC5B,OAAO,IAAI,KAAK,CAAC,GAAG,IAAI,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAA;QAC9E,CAAC;aAAM,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YAC5B,OAAO,IAAI,KAAK,CAAC,GAAG,IAAI,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,CAAA;QAC9E,CAAC;aAAM,CAAC;YACN,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAA;QAC9C,CAAC;IACH,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO;QACtD,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QAElD,yCAAyC;QACzC,MAAM,MAAM,GAAG,EAAE,CAAA;QACjB,WAAW,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;QACtD,MAAM,YAAY,GAAG,EAAE,CAAA;QACvB,MAAM,cAAc,GAAG,IAAI,GAAG,EAAiB,CAAA;QAC/C,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YACxB,MAAM,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAA;YACxC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;YAChE,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,CAAA;YAC5C,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,IAAI,CAAA;YACvC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QAClC,CAAC,CAAC,CAAA;QAEF,OAAO,IAAI,CAAC,qBAAqB,CAAC,CAAC,GAAG,cAAc,CAAC,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACvG,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW,CAAC,EAAE,EAAE,IAAI;QACxB,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,sBAAsB,CAAC,CAAA;QAC3E,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,oBAAoB,CAAC,CAAA;QACpE,IAAI,WAAW,IAAI,MAAM,EAAE,CAAC;YAC1B,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;gBACvD,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,KAAK,KAAK,EAAE,CAAC;oBAChD,MAAM,CAAC,KAAK,GAAG,IAAI,CAAA;oBACnB,WAAW,CAAC,KAAK,GAAG,IAAI,CAAA;gBAC1B,CAAC;YACH,CAAC,CAAC,CAAA;QACJ,CAAC;QAED,OAAO,IAAI,CAAA;IACb,CAAC;CACF;AAED,eAAe,0BAA0B,CAAA"}
@@ -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',