@tasenor/common-plugins 1.17.9 → 1.17.11

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.
@@ -1,7 +1,8 @@
1
1
 
2
2
 
3
- > @tasenor/common-plugins@1.17.8 release /home/wigy/project/tasenor-qa/tasenor-bookkeeper/packages/tasenor-common-plugins
3
+ > @tasenor/common-plugins@1.17.10 release /home/wigy/project/tasenor-qa/tasenor-bookkeeper/packages/tasenor-common-plugins
4
4
  > pnpm version patch && pnpm publish --force --access public --no-git-checks
5
5
 
6
6
  npm warn Unknown env config "auto-install-peers". This will stop working in the next major version of npm.
7
- v1.17.9
7
+ v1.17.11
8
+  WARN  using --force I sure hope you know what you are doing
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env -S npx tsx
2
+ import commonNode from '@tasenor/common-node'
3
+ const { readFile, saveFile, trimCRLF } = commonNode.dataUtils
4
+
5
+ const tsv = trimCRLF(readFile('EstonianLimitedCompanyLite - fi-EUR.tsv'))
6
+ saveFile('EstonianLimitedCompanyLite', 'backend/fi-EUR.tsv', tsv)
@@ -0,0 +1,23 @@
1
+ #!/usr/bin/env -S npx tsx
2
+ import commonNode from '@tasenor/common-node'
3
+ const { trimId, readTsv, fixNumber, saveJson } = commonNode.dataUtils
4
+
5
+ const data = []
6
+ const tsv = readTsv('Estonia VAT - Definitions.tsv', true)
7
+
8
+ for (let column = 1; column < tsv[0].length; column++) {
9
+ const from = tsv[0][column]
10
+ const to = tsv[1][column] || null
11
+
12
+ const percentage = {}
13
+ for (let line = 2; line < tsv.length; line++) {
14
+ const id = trimId(tsv[line][0])
15
+ const value = tsv[line][column]
16
+ if (value !== undefined) {
17
+ percentage[id] = fixNumber(value.replace(',', '.'))
18
+ }
19
+ }
20
+ data.push({ from, to, percentage })
21
+ }
22
+
23
+ saveJson('VATEstonia', 'vat', data)
@@ -0,0 +1,9 @@
1
+ # Alkaa 2025-07-01
2
+ # Loppuu
3
+
4
+ INCOME 24.00%
5
+ EXPENSE 24.00%
6
+
7
+ ___ACCOMMODATION 13.00%
8
+ ___BOOK 9.00%
9
+ ___NEWSPAPERS 9.00%
@@ -0,0 +1,79 @@
1
+ # number / title text type code data
2
+ Vastaavaa
3
+ _Pysyvät vastaavat
4
+ _Aineettomat hyödykkeet
5
+ 1000 Aineettomat hyödykkeet ASSET
6
+ 1010 Ohjelmistot ASSET
7
+ 1020 Kehittämismenot ASSET
8
+ 1110 Koneet ja laitteet ASSET
9
+ 1120 Kalusto ASSET
10
+ 1130 IT-laitteet ASSET
11
+ 1200 Kertyneet poistot ASSET
12
+ 1210 Poistot, aineettomat ASSET
13
+ 1220 Poistot, aineelliset ASSET
14
+ _Vaihtuvat vastaavat
15
+ __Saamiset
16
+ 2010 Myyntisaamiset ASSET
17
+ 2020 Siirtosaamiset ASSET
18
+ 2030 Ennakkosaamiset ASSET
19
+ ___Rahat ja pankkisaamiset
20
+ 2110 Pankkitili ASSET
21
+ 2120 Käteinen ASSET
22
+ 2130 Maksunvälittäjä (Wise / PayPal) ASSET
23
+ Vastattavaa
24
+ _Oma pääoma
25
+ __Osakepääoma
26
+ 3010 Osakepääoma EQUITY
27
+ __Edellisten tilikausien voitto (tappio)
28
+ 3210 Tilikauden voitto/tappio PROFIT_PREV
29
+ 3220 Osingonjako EQUITY
30
+ _Velat
31
+ __Lyhytaikaiset velat
32
+ 4010 Ostovelat LIABILITY
33
+ 4020 Verovelat LIABILITY
34
+ 4030 Palkkavelat LIABILITY
35
+ 4040 Siirtovelat LIABILITY
36
+ __Pitkäaikaiset velat
37
+ 4110 Lainat omistajilta LIABILITY
38
+ 4120 Pankkilainat LIABILITY
39
+ Tuloslaskelma
40
+ _Myyntituotot
41
+ 5010 Palvelumyynti (Viro) REVENUE
42
+ 5020 Palvelumyynti (EU) REVENUE
43
+ 5030 Palvelumyynti (EU, ALV 0 %) REVENUE
44
+ 5040 Palvelumyynti (EU ulkopuoli) REVENUE
45
+ _Muut tuotot
46
+ 6010 Korkotuotot REVENUE
47
+ 6020 Valuuttakurssivoitot REVENUE
48
+ _Liiketoiminnan kulut
49
+ __Ostot ja alihankinta
50
+ 7010 Alihankintakulut EXPENSE
51
+ 7020 Konsulttipalvelut EXPENSE
52
+ __Henkilöstökulut
53
+ 7110 Palkat EXPENSE
54
+ 7120 Sosiaalivero EXPENSE
55
+ 7130 Työttömyysvakuutus EXPENSE
56
+ 7140 Eläkevakuutus EXPENSE
57
+ __Hallintokulut
58
+ 7210 Kirjanpito ja tilintarkastus EXPENSE
59
+ 7220 Toimistokulut EXPENSE
60
+ 7230 IT ja ohjelmistot EXPENSE
61
+ 7240 Puhelin ja internet EXPENSE
62
+ __Markkinointi ja myynti
63
+ 7310 Mainonta EXPENSE
64
+ 7320 Verkkopalvelut EXPENSE
65
+ __Matkakulut
66
+ 7410 Matkaliput EXPENSE
67
+ 7420 Majoitus EXPENSE
68
+ 7430 Päivärahat EXPENSE
69
+ __Poistot
70
+ 7510 Poistot, aineelliset EXPENSE
71
+ 7520 Poistot, aineettomat EXPENSE
72
+ __Muut kulut
73
+ 7610 Valuuttakurssitappiot EXPENSE
74
+ 7620 Pankkikulut EXPENSE
75
+ _Tuloverot
76
+ 8010 Jaetun voiton tulovero EXPENSE
77
+ 8020 Aiempiin vuosiin liittyvät verot EXPENSE
78
+ _Erikoistilit
79
+ 9999 Selvittelyä vaativat tapahtumat EXPENSE SUSPENSE_ACCOUNT
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tasenor/common-plugins",
3
- "version": "1.17.9",
3
+ "version": "1.17.11",
4
4
  "description": "Shared common plugins of Tasenor project",
5
5
  "repository": "git@github.com:dataplugoy/tasenor-bookkeeper.git",
6
6
  "author": "Tommi Ronkainen <tommi.ronkainen@gmail.com>",
@@ -13,9 +13,9 @@
13
13
  "dayjs": "1.10.8",
14
14
  "sprintf-js": "^1.1.2",
15
15
  "tsx": "^4.7.0",
16
- "@tasenor/common": "1.17.9",
17
- "@tasenor/common-ui": "1.17.9",
18
- "@tasenor/common-node": "1.17.9"
16
+ "@tasenor/common": "1.17.11",
17
+ "@tasenor/common-node": "1.17.11",
18
+ "@tasenor/common-ui": "1.17.11"
19
19
  },
20
20
  "devDependencies": {
21
21
  "@mui/icons-material": "^5.14.1",
@@ -31,7 +31,7 @@
31
31
  "react-i18next": "^14.0.5",
32
32
  "react-router-dom": "^6.14.1",
33
33
  "typescript": "^5.1.6",
34
- "@tasenor/config": "1.17.9",
34
+ "@tasenor/config": "1.17.11",
35
35
  "eslint-config-tasenor": "0.0.0"
36
36
  },
37
37
  "peerDependencies": {
@@ -0,0 +1,79 @@
1
+ # number / title text type code data
2
+ Vastaavaa
3
+ _Pysyvät vastaavat
4
+ _Aineettomat hyödykkeet
5
+ 1000 Aineettomat hyödykkeet ASSET
6
+ 1010 Ohjelmistot ASSET
7
+ 1020 Kehittämismenot ASSET
8
+ 1110 Koneet ja laitteet ASSET
9
+ 1120 Kalusto ASSET
10
+ 1130 IT-laitteet ASSET
11
+ 1200 Kertyneet poistot ASSET
12
+ 1210 Poistot, aineettomat ASSET
13
+ 1220 Poistot, aineelliset ASSET
14
+ _Vaihtuvat vastaavat
15
+ __Saamiset
16
+ 2010 Myyntisaamiset ASSET
17
+ 2020 Siirtosaamiset ASSET
18
+ 2030 Ennakkosaamiset ASSET
19
+ ___Rahat ja pankkisaamiset
20
+ 2110 Pankkitili ASSET
21
+ 2120 Käteinen ASSET
22
+ 2130 Maksunvälittäjä (Wise / PayPal) ASSET
23
+ Vastattavaa
24
+ _Oma pääoma
25
+ __Osakepääoma
26
+ 3010 Osakepääoma EQUITY
27
+ __Edellisten tilikausien voitto (tappio)
28
+ 3210 Tilikauden voitto/tappio PROFIT_PREV
29
+ 3220 Osingonjako EQUITY
30
+ _Velat
31
+ __Lyhytaikaiset velat
32
+ 4010 Ostovelat LIABILITY
33
+ 4020 Verovelat LIABILITY
34
+ 4030 Palkkavelat LIABILITY
35
+ 4040 Siirtovelat LIABILITY
36
+ __Pitkäaikaiset velat
37
+ 4110 Lainat omistajilta LIABILITY
38
+ 4120 Pankkilainat LIABILITY
39
+ Tuloslaskelma
40
+ _Myyntituotot
41
+ 5010 Palvelumyynti (Viro) REVENUE
42
+ 5020 Palvelumyynti (EU) REVENUE
43
+ 5030 Palvelumyynti (EU, ALV 0 %) REVENUE
44
+ 5040 Palvelumyynti (EU ulkopuoli) REVENUE
45
+ _Muut tuotot
46
+ 6010 Korkotuotot REVENUE
47
+ 6020 Valuuttakurssivoitot REVENUE
48
+ _Liiketoiminnan kulut
49
+ __Ostot ja alihankinta
50
+ 7010 Alihankintakulut EXPENSE
51
+ 7020 Konsulttipalvelut EXPENSE
52
+ __Henkilöstökulut
53
+ 7110 Palkat EXPENSE
54
+ 7120 Sosiaalivero EXPENSE
55
+ 7130 Työttömyysvakuutus EXPENSE
56
+ 7140 Eläkevakuutus EXPENSE
57
+ __Hallintokulut
58
+ 7210 Kirjanpito ja tilintarkastus EXPENSE
59
+ 7220 Toimistokulut EXPENSE
60
+ 7230 IT ja ohjelmistot EXPENSE
61
+ 7240 Puhelin ja internet EXPENSE
62
+ __Markkinointi ja myynti
63
+ 7310 Mainonta EXPENSE
64
+ 7320 Verkkopalvelut EXPENSE
65
+ __Matkakulut
66
+ 7410 Matkaliput EXPENSE
67
+ 7420 Majoitus EXPENSE
68
+ 7430 Päivärahat EXPENSE
69
+ __Poistot
70
+ 7510 Poistot, aineelliset EXPENSE
71
+ 7520 Poistot, aineettomat EXPENSE
72
+ __Muut kulut
73
+ 7610 Valuuttakurssitappiot EXPENSE
74
+ 7620 Pankkikulut EXPENSE
75
+ _Tuloverot
76
+ 8010 Jaetun voiton tulovero EXPENSE
77
+ 8020 Aiempiin vuosiin liittyvät verot EXPENSE
78
+ _Erikoistilit
79
+ 9999 Selvittelyä vaativat tapahtumat EXPENSE SUSPENSE_ACCOUNT
@@ -0,0 +1,50 @@
1
+ import path from 'path'
2
+ import { SchemePlugin } from '@tasenor/common-node'
3
+ import { Currency, Language, PluginCode, SchemeName, TsvFilePath, Version } from '@tasenor/common'
4
+
5
+ class EstonianLimitedCompanyLite extends SchemePlugin {
6
+
7
+ constructor() {
8
+ super('EstonianLimitedCompanyLite' as SchemeName)
9
+
10
+ this.code = 'EstonianLimitedCompanyLite' as PluginCode
11
+ this.title = 'Estonian Limited Company - Lite'
12
+ this.version = '1.0.0' as Version
13
+ 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>'
14
+ this.releaseDate = '2023-05-24'
15
+ this.use = 'both'
16
+ this.type = 'scheme'
17
+ this.description = 'Small accounting scheme for Estonian private limited company (OÜ). Finnish version only.'
18
+
19
+ this.languages = {
20
+ fi: {
21
+ }
22
+ }
23
+ }
24
+
25
+ getSchemePaths(code, language): TsvFilePath[] {
26
+ if (code === 'EstonianLimitedCompanyLite') {
27
+ if (language === 'fi') {
28
+ return [
29
+ path.join(__dirname, 'fi-EUR.tsv'),
30
+ ] as TsvFilePath[]
31
+ }
32
+ }
33
+ return []
34
+ }
35
+
36
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
37
+ getSchemeDefaults(code): Record<string, unknown> {
38
+ return {}
39
+ }
40
+
41
+ supportedCurrencies(): Currency[] {
42
+ return ['EUR']
43
+ }
44
+
45
+ supportedLanguages(): Language[] {
46
+ return ['fi']
47
+ }
48
+ }
49
+
50
+ export default EstonianLimitedCompanyLite
@@ -0,0 +1,28 @@
1
+ import { SchemePlugin } from '@tasenor/common-ui'
2
+
3
+ class EstonianLimitedCompanyLite extends SchemePlugin {
4
+
5
+ static code = 'EstonianLimitedCompanyLite'
6
+ static title = 'Estonian Limited Company - Lite'
7
+ static version = '1.0.0'
8
+ 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>'
9
+ static releaseDate = '2023-05-24'
10
+ static use = 'both'
11
+ static type = 'scheme'
12
+ static description = 'Small accounting scheme for Estonian private limited company (OÜ). Finnish version only.'
13
+
14
+ constructor() {
15
+ super()
16
+ this.languages = {
17
+ fi: {
18
+ 'Private limited company (Lite scheme)': 'Osakeyhtiö (Suppea tilikartta)'
19
+ }
20
+ }
21
+ }
22
+
23
+ getAccountingSchemes() {
24
+ return { EstonianLimitedCompanyLite: 'Private limited company (Lite scheme)' }
25
+ }
26
+ }
27
+
28
+ export default EstonianLimitedCompanyLite
@@ -63,6 +63,9 @@ export class NordnetHandler extends TransactionImportHandler {
63
63
  if (columns.Valuuttakurssi === '1' || columns.Vaihtokurssi === '1') {
64
64
  columns.Valuutta = process.config.currency as string
65
65
  }
66
+ if (columns.Valuuttakurssi === '' || columns.Vaihtokurssi === '') {
67
+ columns.Valuutta = process.config.currency as string
68
+ }
66
69
  if (columns.Tapahtumatyyppi === 'OSINKO') {
67
70
  const match = / ([A-Z]{3})\/OSAKE$/.exec(columns.Tapahtumateksti)
68
71
  if (match) {
@@ -0,0 +1,22 @@
1
+ import { DataPlugin } from '@tasenor/common-node'
2
+ import { PluginCode, Version } from '@tasenor/common'
3
+
4
+ class VATEstonia extends DataPlugin {
5
+ constructor() {
6
+ super({ common: ['vat'], backend: [] })
7
+
8
+ this.code = 'VATEstonia'as PluginCode
9
+ this.title = 'VAT Data for Finland'
10
+ this.version = '1.0.0' as Version
11
+ 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><rect fill="none" height="24" width="24"/></g><g><g><g><path d="M7.5,4C5.57,4,4,5.57,4,7.5S5.57,11,7.5,11S11,9.43,11,7.5S9.43,4,7.5,4z M7.5,9C6.67,9,6,8.33,6,7.5S6.67,6,7.5,6 S9,6.67,9,7.5S8.33,9,7.5,9z M16.5,13c-1.93,0-3.5,1.57-3.5,3.5s1.57,3.5,3.5,3.5s3.5-1.57,3.5-3.5S18.43,13,16.5,13z M16.5,18 c-0.83,0-1.5-0.67-1.5-1.5s0.67-1.5,1.5-1.5s1.5,0.67,1.5,1.5S17.33,18,16.5,18z M5.41,20L4,18.59L18.59,4L20,5.41L5.41,20z"/></g></g></g></svg>'
12
+ this.releaseDate = '2022-07-23'
13
+ this.use = 'backend'
14
+ this.type = 'data'
15
+ this.description = 'This plugin provides data needed for VAT handling in Estonia.'
16
+
17
+ this.languages = {
18
+ }
19
+ }
20
+ }
21
+
22
+ export default VATEstonia
@@ -0,0 +1,13 @@
1
+ [
2
+ {
3
+ "from": "2025-07-01",
4
+ "to": null,
5
+ "percentage": {
6
+ "INCOME": 24,
7
+ "EXPENSE": 24,
8
+ "ACCOMMODATION": 13,
9
+ "BOOK": 9,
10
+ "NEWSPAPERS": 9
11
+ }
12
+ }
13
+ ]