@fin.cx/chartdata 2.12.1 → 2.13.0

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.
@@ -3,7 +3,7 @@
3
3
  */
4
4
  export const commitinfo = {
5
5
  name: '@fin.cx/chartdata',
6
- version: '2.12.1',
6
+ version: '2.13.0',
7
7
  description: 'Year-versioned German SKR03/SKR04 chart-of-accounts datasets with Automatikkonto functions, BU-key rules, and UStVA-Kennzahl mappings'
8
8
  };
9
9
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMDBfY29tbWl0aW5mb19kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvMDBfY29tbWl0aW5mb19kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHO0lBQ3hCLElBQUksRUFBRSxtQkFBbUI7SUFDekIsT0FBTyxFQUFFLFFBQVE7SUFDakIsV0FBVyxFQUFFLHVJQUF1STtDQUNySixDQUFBIn0=
@@ -1,4 +1,4 @@
1
- import type { IChart, IChartAccount, IMappingCoverage, IScenarioKennzahlen, TChartName, TMappingDimension } from './chartdata.types.js';
1
+ import type { IChart, IChartAccount, IMappingCoverage, IScenarioKennzahlen, TAccountRole, TChartName, TMappingDimension } from './chartdata.types.js';
2
2
  /**
3
3
  * UStVA Kennzahlen driven by the tax scenario of a booking (not by a single
4
4
  * account). Verified against the stable UStVA layout; ERiC validation in the
@@ -15,6 +15,11 @@ export declare function listAvailableCharts(): Array<{
15
15
  */
16
16
  export declare function getChart(chart: TChartName, year: number): IChart;
17
17
  export declare function getAccount(chart: TChartName, year: number, accountNumber: string): IChartAccount | null;
18
+ /**
19
+ * The accounts of a chart with the role (`IChartAccount.accountRole`), in the
20
+ * chart's order. Throws for unknown chart/year combinations, as `getChart`.
21
+ */
22
+ export declare function getAccountsByRole(chart: TChartName, year: number, role: TAccountRole): IChartAccount[];
18
23
  /**
19
24
  * Coverage check for the accounts a ledger actually uses. Callers must treat
20
25
  * missing/unknown accounts as a hard error before generating filings.
@@ -42,6 +42,13 @@ export function getChart(chart, year) {
42
42
  export function getAccount(chart, year, accountNumber) {
43
43
  return (getChart(chart, year).accounts.find((account) => account.accountNumber === accountNumber) ?? null);
44
44
  }
45
+ /**
46
+ * The accounts of a chart with the role (`IChartAccount.accountRole`), in the
47
+ * chart's order. Throws for unknown chart/year combinations, as `getChart`.
48
+ */
49
+ export function getAccountsByRole(chart, year, role) {
50
+ return getChart(chart, year).accounts.filter((account) => account.accountRole === role);
51
+ }
45
52
  function hasMapping(account, dimension) {
46
53
  switch (dimension) {
47
54
  case 'ustva':
@@ -77,4 +84,4 @@ export function getMappingCoverage(chart, year, usedAccounts, dimension) {
77
84
  }
78
85
  return { dimension, requested: usedAccounts.length, covered, missing, unknown };
79
86
  }
80
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnRkYXRhLmxvb2t1cC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL2NoYXJ0ZGF0YS5sb29rdXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBUUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVsRCxNQUFNLE1BQU0sR0FBYSxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQztBQUVsRDs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQXdCO0lBQzVELDhCQUE4QixFQUFFLEVBQUU7SUFDbEMsNkJBQTZCLEVBQUUsRUFBRTtJQUNqQywyQkFBMkIsRUFBRSxFQUFFO0lBQy9CLDBCQUEwQixFQUFFLEVBQUU7SUFDOUIsMkJBQTJCLEVBQUUsRUFBRTtJQUMvQiwwQkFBMEIsRUFBRSxFQUFFO0lBQzlCLHNCQUFzQixFQUFFLEVBQUU7SUFDMUIscUJBQXFCLEVBQUUsRUFBRTtJQUN6QixpQkFBaUIsRUFBRSxFQUFFO0lBQ3JCLFVBQVUsRUFBRSxFQUFFO0lBQ2Qsb0JBQW9CLEVBQUUsRUFBRTtJQUN4QixtQkFBbUIsRUFBRSxFQUFFO0lBQ3ZCLHlCQUF5QixFQUFFLEVBQUU7SUFDN0IsUUFBUSxFQUFFLEVBQUU7SUFDWixlQUFlLEVBQUUsRUFBRTtJQUNuQixxQkFBcUIsRUFBRSxFQUFFO0lBQ3pCLFNBQVMsRUFBRSxFQUFFO0NBQ2QsQ0FBQztBQUVGLE1BQU0sVUFBVSxtQkFBbUI7SUFDakMsT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQzVELENBQUM7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsUUFBUSxDQUFDLEtBQWlCLEVBQUUsSUFB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
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hhcnRkYXRhLmxvb2t1cC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL2NoYXJ0ZGF0YS5sb29rdXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBU0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVsRCxNQUFNLE1BQU0sR0FBYSxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQztBQUVsRDs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0seUJBQXlCLEdBQXdCO0lBQzVELDhCQUE4QixFQUFFLEVBQUU7SUFDbEMsNkJBQTZCLEVBQUUsRUFBRTtJQUNqQywyQkFBMkIsRUFBRSxFQUFFO0lBQy9CLDBCQUEwQixFQUFFLEVBQUU7SUFDOUIsMkJBQTJCLEVBQUUsRUFBRTtJQUMvQiwwQkFBMEIsRUFBRSxFQUFFO0lBQzlCLHNCQUFzQixFQUFFLEVBQUU7SUFDMUIscUJBQXFCLEVBQUUsRUFBRTtJQUN6QixpQkFBaUIsRUFBRSxFQUFFO0lBQ3JCLFVBQVUsRUFBRSxFQUFFO0lBQ2Qsb0JBQW9CLEVBQUUsRUFBRTtJQUN4QixtQkFBbUIsRUFBRSxFQUFFO0lBQ3ZCLHlCQUF5QixFQUFFLEVBQUU7SUFDN0IsUUFBUSxFQUFFLEVBQUU7SUFDWixlQUFlLEVBQUUsRUFBRTtJQUNuQixxQkFBcUIsRUFBRSxFQUFFO0lBQ3pCLFNBQVMsRUFBRSxFQUFFO0NBQ2QsQ0FBQztBQUVGLE1BQU0sVUFBVSxtQkFBbUI7SUFDakMsT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQzVELENBQUM7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsUUFBUSxDQUFDLEtBQWlCLEVBQUUsSUFB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
@@ -1,5 +1,18 @@
1
1
  export type TChartName = 'SKR03' | 'SKR04';
2
2
  export type TAccountType = 'asset' | 'liability' | 'equity' | 'revenue' | 'expense';
3
+ /**
4
+ * What an account is for where its type and HGB position do not tell it apart
5
+ * from the other accounts of its position. A fixed asset's disposal: DATEV
6
+ * states a sale's book gain net under the other operating income (GuV 4) and
7
+ * a book loss under the other operating expenses (GuV 8), the proceeds
8
+ * against the book value, beside the other income and expenses there.
9
+ * - 'asset_sale_proceeds': what a fixed asset fetched when it was sold
10
+ * ("Erlöse aus Verkäufen Sachanlagevermögen", immaterieller
11
+ * Vermögensgegenstände, Finanzanlagen), a revenue account;
12
+ * - 'disposal_book_value': the book value a disposed fixed asset leaves the
13
+ * books with ("Anlagenabgänge … (Restbuchwert …)"), an expense account.
14
+ */
15
+ export type TAccountRole = 'asset_sale_proceeds' | 'disposal_book_value';
3
16
  /**
4
17
  * Built-in DATEV tax automatism of an account. Lines on automatik accounts
5
18
  * must carry no BU key (automatism applies) or key 40 (automatism cancelled).
@@ -27,6 +40,8 @@ export interface IChartAccount {
27
40
  accountName: string;
28
41
  accountClass: number;
29
42
  accountType: TAccountType;
43
+ /** what the account is for beyond its type and HGB position; unset = they say it all */
44
+ accountRole?: TAccountRole;
30
45
  description?: string;
31
46
  automatikFunction?: TAutomatikFunction;
32
47
  /** BU keys allowed on lines of this account ('' = none). Unset = all. */