@rubydogjp/openkk-client-domain 26.1.8
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/dist/archive/fiscal-period-archive.d.ts +38 -0
- package/dist/archive/fiscal-period-archive.d.ts.map +1 -0
- package/dist/archive/fiscal-period-archive.js +276 -0
- package/dist/archive/fiscal-period-archive.js.map +1 -0
- package/dist/assist/fixed-asset-data.d.ts +32 -0
- package/dist/assist/fixed-asset-data.d.ts.map +1 -0
- package/dist/assist/fixed-asset-data.js +2 -0
- package/dist/assist/fixed-asset-data.js.map +1 -0
- package/dist/assist/fixed-asset-depreciation.d.ts +27 -0
- package/dist/assist/fixed-asset-depreciation.d.ts.map +1 -0
- package/dist/assist/fixed-asset-depreciation.js +66 -0
- package/dist/assist/fixed-asset-depreciation.js.map +1 -0
- package/dist/assist/opening-carryover.d.ts +21 -0
- package/dist/assist/opening-carryover.d.ts.map +1 -0
- package/dist/assist/opening-carryover.js +2 -0
- package/dist/assist/opening-carryover.js.map +1 -0
- package/dist/entries/default-master-data.d.ts +3 -0
- package/dist/entries/default-master-data.d.ts.map +1 -0
- package/dist/entries/default-master-data.js +17 -0
- package/dist/entries/default-master-data.js.map +1 -0
- package/dist/entries/entries-types.d.ts +30 -0
- package/dist/entries/entries-types.d.ts.map +1 -0
- package/dist/entries/entries-types.js +2 -0
- package/dist/entries/entries-types.js.map +1 -0
- package/dist/entries/entry-record.d.ts +53 -0
- package/dist/entries/entry-record.d.ts.map +1 -0
- package/dist/entries/entry-record.js +180 -0
- package/dist/entries/entry-record.js.map +1 -0
- package/dist/entries/example-entries.d.ts +7 -0
- package/dist/entries/example-entries.d.ts.map +1 -0
- package/dist/entries/example-entries.js +97 -0
- package/dist/entries/example-entries.js.map +1 -0
- package/dist/entries/generated-master-data.d.ts +26 -0
- package/dist/entries/generated-master-data.d.ts.map +1 -0
- package/dist/entries/generated-master-data.js +2211 -0
- package/dist/entries/generated-master-data.js.map +1 -0
- package/dist/entries/import-export.d.ts +13 -0
- package/dist/entries/import-export.d.ts.map +1 -0
- package/dist/entries/import-export.js +319 -0
- package/dist/entries/import-export.js.map +1 -0
- package/dist/entries/quick-guide-data.d.ts +32 -0
- package/dist/entries/quick-guide-data.d.ts.map +1 -0
- package/dist/entries/quick-guide-data.js +513 -0
- package/dist/entries/quick-guide-data.js.map +1 -0
- package/dist/entries/virtual-entries.d.ts +58 -0
- package/dist/entries/virtual-entries.d.ts.map +1 -0
- package/dist/entries/virtual-entries.js +414 -0
- package/dist/entries/virtual-entries.js.map +1 -0
- package/dist/index.d.ts +34 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +34 -0
- package/dist/index.js.map +1 -0
- package/dist/print/examples/financial-statements-example.d.ts +5 -0
- package/dist/print/examples/financial-statements-example.d.ts.map +1 -0
- package/dist/print/examples/financial-statements-example.js +246 -0
- package/dist/print/examples/financial-statements-example.js.map +1 -0
- package/dist/print/examples/general-ledger-example.d.ts +5 -0
- package/dist/print/examples/general-ledger-example.d.ts.map +1 -0
- package/dist/print/examples/general-ledger-example.js +10 -0
- package/dist/print/examples/general-ledger-example.js.map +1 -0
- package/dist/print/examples/journal-example.d.ts +4 -0
- package/dist/print/examples/journal-example.d.ts.map +1 -0
- package/dist/print/examples/journal-example.js +16 -0
- package/dist/print/examples/journal-example.js.map +1 -0
- package/dist/print/financial-statements-print.d.ts +10 -0
- package/dist/print/financial-statements-print.d.ts.map +1 -0
- package/dist/print/financial-statements-print.js +223 -0
- package/dist/print/financial-statements-print.js.map +1 -0
- package/dist/print/fs-data.d.ts +37 -0
- package/dist/print/fs-data.d.ts.map +1 -0
- package/dist/print/fs-data.js +348 -0
- package/dist/print/fs-data.js.map +1 -0
- package/dist/print/general-ledger-print.d.ts +10 -0
- package/dist/print/general-ledger-print.d.ts.map +1 -0
- package/dist/print/general-ledger-print.js +250 -0
- package/dist/print/general-ledger-print.js.map +1 -0
- package/dist/print/journal-print.d.ts +4 -0
- package/dist/print/journal-print.d.ts.map +1 -0
- package/dist/print/journal-print.js +126 -0
- package/dist/print/journal-print.js.map +1 -0
- package/dist/print/print-shell.d.ts +9 -0
- package/dist/print/print-shell.d.ts.map +1 -0
- package/dist/print/print-shell.js +28 -0
- package/dist/print/print-shell.js.map +1 -0
- package/dist/shared/app-error.d.ts +25 -0
- package/dist/shared/app-error.d.ts.map +1 -0
- package/dist/shared/app-error.js +115 -0
- package/dist/shared/app-error.js.map +1 -0
- package/dist/shared/bootstrap-data.d.ts +15 -0
- package/dist/shared/bootstrap-data.d.ts.map +1 -0
- package/dist/shared/bootstrap-data.js +150 -0
- package/dist/shared/bootstrap-data.js.map +1 -0
- package/dist/shared/brand-config.d.ts +6 -0
- package/dist/shared/brand-config.d.ts.map +1 -0
- package/dist/shared/brand-config.js +2 -0
- package/dist/shared/brand-config.js.map +1 -0
- package/dist/shared/demo-data.d.ts +15 -0
- package/dist/shared/demo-data.d.ts.map +1 -0
- package/dist/shared/demo-data.js +150 -0
- package/dist/shared/demo-data.js.map +1 -0
- package/dist/shared/models.d.ts +52 -0
- package/dist/shared/models.d.ts.map +1 -0
- package/dist/shared/models.js +2 -0
- package/dist/shared/models.js.map +1 -0
- package/dist/shared/openkk-config.d.ts +41 -0
- package/dist/shared/openkk-config.d.ts.map +1 -0
- package/dist/shared/openkk-config.js +15 -0
- package/dist/shared/openkk-config.js.map +1 -0
- package/dist/shared/parse-utils.d.ts +7 -0
- package/dist/shared/parse-utils.d.ts.map +1 -0
- package/dist/shared/parse-utils.js +43 -0
- package/dist/shared/parse-utils.js.map +1 -0
- package/dist/shared/period-lock.d.ts +9 -0
- package/dist/shared/period-lock.d.ts.map +1 -0
- package/dist/shared/period-lock.js +41 -0
- package/dist/shared/period-lock.js.map +1 -0
- package/dist/shared/sample-data.d.ts +15 -0
- package/dist/shared/sample-data.d.ts.map +1 -0
- package/dist/shared/sample-data.js +161 -0
- package/dist/shared/sample-data.js.map +1 -0
- package/dist/shared/user.d.ts +20 -0
- package/dist/shared/user.d.ts.map +1 -0
- package/dist/shared/user.js +13 -0
- package/dist/shared/user.js.map +1 -0
- package/dist/steps/next-fiscal-period.d.ts +32 -0
- package/dist/steps/next-fiscal-period.d.ts.map +1 -0
- package/dist/steps/next-fiscal-period.js +128 -0
- package/dist/steps/next-fiscal-period.js.map +1 -0
- package/dist/steps/period-check.d.ts +9 -0
- package/dist/steps/period-check.d.ts.map +1 -0
- package/dist/steps/period-check.js +23 -0
- package/dist/steps/period-check.js.map +1 -0
- package/dist/steps/step-derivation.d.ts +15 -0
- package/dist/steps/step-derivation.d.ts.map +1 -0
- package/dist/steps/step-derivation.js +38 -0
- package/dist/steps/step-derivation.js.map +1 -0
- package/dist/steps/step-trend.d.ts +17 -0
- package/dist/steps/step-trend.d.ts.map +1 -0
- package/dist/steps/step-trend.js +30 -0
- package/dist/steps/step-trend.js.map +1 -0
- package/dist/steps/summary.d.ts +24 -0
- package/dist/steps/summary.d.ts.map +1 -0
- package/dist/steps/summary.js +69 -0
- package/dist/steps/summary.js.map +1 -0
- package/dist/steps/year-month.d.ts +10 -0
- package/dist/steps/year-month.d.ts.map +1 -0
- package/dist/steps/year-month.js +26 -0
- package/dist/steps/year-month.js.map +1 -0
- package/package.json +38 -0
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
export declare const FISCAL_PERIOD_ARCHIVE_FORMAT = "openkk.fiscal-period-archive";
|
|
2
|
+
export declare const FISCAL_PERIOD_ARCHIVE_VERSION = 1;
|
|
3
|
+
export type FiscalPeriodArchiveManifest = {
|
|
4
|
+
format: typeof FISCAL_PERIOD_ARCHIVE_FORMAT;
|
|
5
|
+
version: typeof FISCAL_PERIOD_ARCHIVE_VERSION;
|
|
6
|
+
createdAt: string;
|
|
7
|
+
fiscalPeriodId: string;
|
|
8
|
+
name: string;
|
|
9
|
+
startDate: string;
|
|
10
|
+
endDate: string;
|
|
11
|
+
};
|
|
12
|
+
export type FiscalPeriodArchivePayload = {
|
|
13
|
+
manifest: FiscalPeriodArchiveManifest;
|
|
14
|
+
fiscalPeriod: Record<string, unknown>;
|
|
15
|
+
entries: Array<Record<string, unknown>>;
|
|
16
|
+
fixedAssets: Array<Record<string, unknown>>;
|
|
17
|
+
closings: Array<Record<string, unknown>>;
|
|
18
|
+
};
|
|
19
|
+
export declare function buildFiscalPeriodArchivePayload(input: {
|
|
20
|
+
createdAt: string;
|
|
21
|
+
fiscalPeriod: {
|
|
22
|
+
id: string;
|
|
23
|
+
name: string;
|
|
24
|
+
startDate: string;
|
|
25
|
+
endDate: string;
|
|
26
|
+
} & Record<string, unknown>;
|
|
27
|
+
entries: Array<Record<string, unknown>>;
|
|
28
|
+
fixedAssets: Array<Record<string, unknown>>;
|
|
29
|
+
closings: Array<Record<string, unknown>>;
|
|
30
|
+
}): FiscalPeriodArchivePayload;
|
|
31
|
+
export declare function createFiscalPeriodArchiveZip(payload: FiscalPeriodArchivePayload): Uint8Array;
|
|
32
|
+
export declare function readFiscalPeriodArchiveZip(bytes: Uint8Array): FiscalPeriodArchivePayload;
|
|
33
|
+
export declare function buildFiscalPeriodArchiveFilename(input: {
|
|
34
|
+
name: string;
|
|
35
|
+
startDate: string;
|
|
36
|
+
endDate: string;
|
|
37
|
+
}): string;
|
|
38
|
+
//# sourceMappingURL=fiscal-period-archive.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fiscal-period-archive.d.ts","sourceRoot":"","sources":["../../src/archive/fiscal-period-archive.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,4BAA4B,iCAAiC,CAAC;AAC3E,eAAO,MAAM,6BAA6B,IAAI,CAAC;AAE/C,MAAM,MAAM,2BAA2B,GAAG;IACxC,MAAM,EAAE,OAAO,4BAA4B,CAAC;IAC5C,OAAO,EAAE,OAAO,6BAA6B,CAAC;IAC9C,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACvC,QAAQ,EAAE,2BAA2B,CAAC;IACtC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACxC,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC5C,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CAC1C,CAAC;AAYF,wBAAgB,+BAA+B,CAAC,KAAK,EAAE;IACrD,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE;QACZ,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;KACjB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5B,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACxC,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC5C,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CAC1C,GAAG,0BAA0B,CAgB7B;AAED,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,0BAA0B,GAClC,UAAU,CASZ;AAED,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,UAAU,GAChB,0BAA0B,CAW5B;AAED,wBAAgB,gCAAgC,CAAC,KAAK,EAAE;IACtD,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB,GAAG,MAAM,CAQT"}
|
|
@@ -0,0 +1,276 @@
|
|
|
1
|
+
import { AppError } from "../shared/app-error";
|
|
2
|
+
export const FISCAL_PERIOD_ARCHIVE_FORMAT = "openkk.fiscal-period-archive";
|
|
3
|
+
export const FISCAL_PERIOD_ARCHIVE_VERSION = 1;
|
|
4
|
+
const textEncoder = new TextEncoder();
|
|
5
|
+
const textDecoder = new TextDecoder();
|
|
6
|
+
const ZIP_STORE_METHOD = 0;
|
|
7
|
+
const ZIP_UTF8_FLAG = 0x0800;
|
|
8
|
+
export function buildFiscalPeriodArchivePayload(input) {
|
|
9
|
+
return {
|
|
10
|
+
manifest: {
|
|
11
|
+
format: FISCAL_PERIOD_ARCHIVE_FORMAT,
|
|
12
|
+
version: FISCAL_PERIOD_ARCHIVE_VERSION,
|
|
13
|
+
createdAt: input.createdAt,
|
|
14
|
+
fiscalPeriodId: input.fiscalPeriod.id,
|
|
15
|
+
name: input.fiscalPeriod.name,
|
|
16
|
+
startDate: input.fiscalPeriod.startDate,
|
|
17
|
+
endDate: input.fiscalPeriod.endDate,
|
|
18
|
+
},
|
|
19
|
+
fiscalPeriod: { ...input.fiscalPeriod },
|
|
20
|
+
entries: input.entries.map((entry) => ({ ...entry })),
|
|
21
|
+
fixedAssets: input.fixedAssets.map((asset) => ({ ...asset })),
|
|
22
|
+
closings: input.closings.map((closing) => ({ ...closing })),
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
export function createFiscalPeriodArchiveZip(payload) {
|
|
26
|
+
assertFiscalPeriodArchivePayload(payload);
|
|
27
|
+
return createStoreZip([
|
|
28
|
+
jsonFile("manifest.json", payload.manifest),
|
|
29
|
+
jsonFile("fiscal-period.json", payload.fiscalPeriod),
|
|
30
|
+
jsonFile("entries.json", payload.entries),
|
|
31
|
+
jsonFile("fixed-assets.json", payload.fixedAssets),
|
|
32
|
+
jsonFile("closings.json", payload.closings),
|
|
33
|
+
]);
|
|
34
|
+
}
|
|
35
|
+
export function readFiscalPeriodArchiveZip(bytes) {
|
|
36
|
+
const files = readStoreZip(bytes);
|
|
37
|
+
const payload = {
|
|
38
|
+
manifest: readJsonFile(files, "manifest.json"),
|
|
39
|
+
fiscalPeriod: readJsonFile(files, "fiscal-period.json"),
|
|
40
|
+
entries: readJsonFile(files, "entries.json"),
|
|
41
|
+
fixedAssets: readJsonFile(files, "fixed-assets.json"),
|
|
42
|
+
closings: readJsonFile(files, "closings.json"),
|
|
43
|
+
};
|
|
44
|
+
assertFiscalPeriodArchivePayload(payload);
|
|
45
|
+
return payload;
|
|
46
|
+
}
|
|
47
|
+
export function buildFiscalPeriodArchiveFilename(input) {
|
|
48
|
+
const safeName = input.name
|
|
49
|
+
.trim()
|
|
50
|
+
.replace(/[\\/:*?"<>|]+/g, "_")
|
|
51
|
+
.replace(/\s+/g, "_")
|
|
52
|
+
.slice(0, 80);
|
|
53
|
+
const base = safeName.length > 0 ? safeName : "fiscal-period";
|
|
54
|
+
return `${base}_${input.startDate}_${input.endDate}.zip`;
|
|
55
|
+
}
|
|
56
|
+
function jsonFile(name, value) {
|
|
57
|
+
return {
|
|
58
|
+
name,
|
|
59
|
+
bytes: textEncoder.encode(`${JSON.stringify(value, null, 2)}\n`),
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
function createStoreZip(files) {
|
|
63
|
+
const localParts = [];
|
|
64
|
+
const centralParts = [];
|
|
65
|
+
let offset = 0;
|
|
66
|
+
for (const file of files) {
|
|
67
|
+
const nameBytes = textEncoder.encode(file.name);
|
|
68
|
+
const crc = crc32(file.bytes);
|
|
69
|
+
const localHeader = new Uint8Array(30 + nameBytes.length);
|
|
70
|
+
const localView = new DataView(localHeader.buffer);
|
|
71
|
+
writeUint32(localView, 0, 0x04034b50);
|
|
72
|
+
writeUint16(localView, 4, 20);
|
|
73
|
+
writeUint16(localView, 6, ZIP_UTF8_FLAG);
|
|
74
|
+
writeUint16(localView, 8, ZIP_STORE_METHOD);
|
|
75
|
+
writeUint16(localView, 10, 0);
|
|
76
|
+
writeUint16(localView, 12, 0);
|
|
77
|
+
writeUint32(localView, 14, crc);
|
|
78
|
+
writeUint32(localView, 18, file.bytes.length);
|
|
79
|
+
writeUint32(localView, 22, file.bytes.length);
|
|
80
|
+
writeUint16(localView, 26, nameBytes.length);
|
|
81
|
+
writeUint16(localView, 28, 0);
|
|
82
|
+
localHeader.set(nameBytes, 30);
|
|
83
|
+
localParts.push(localHeader, file.bytes);
|
|
84
|
+
const centralHeader = new Uint8Array(46 + nameBytes.length);
|
|
85
|
+
const centralView = new DataView(centralHeader.buffer);
|
|
86
|
+
writeUint32(centralView, 0, 0x02014b50);
|
|
87
|
+
writeUint16(centralView, 4, 20);
|
|
88
|
+
writeUint16(centralView, 6, 20);
|
|
89
|
+
writeUint16(centralView, 8, ZIP_UTF8_FLAG);
|
|
90
|
+
writeUint16(centralView, 10, ZIP_STORE_METHOD);
|
|
91
|
+
writeUint16(centralView, 12, 0);
|
|
92
|
+
writeUint16(centralView, 14, 0);
|
|
93
|
+
writeUint32(centralView, 16, crc);
|
|
94
|
+
writeUint32(centralView, 20, file.bytes.length);
|
|
95
|
+
writeUint32(centralView, 24, file.bytes.length);
|
|
96
|
+
writeUint16(centralView, 28, nameBytes.length);
|
|
97
|
+
writeUint16(centralView, 30, 0);
|
|
98
|
+
writeUint16(centralView, 32, 0);
|
|
99
|
+
writeUint16(centralView, 34, 0);
|
|
100
|
+
writeUint16(centralView, 36, 0);
|
|
101
|
+
writeUint32(centralView, 38, 0);
|
|
102
|
+
writeUint32(centralView, 42, offset);
|
|
103
|
+
centralHeader.set(nameBytes, 46);
|
|
104
|
+
centralParts.push(centralHeader);
|
|
105
|
+
offset += localHeader.length + file.bytes.length;
|
|
106
|
+
}
|
|
107
|
+
const centralDirectoryOffset = offset;
|
|
108
|
+
const centralDirectorySize = totalLength(centralParts);
|
|
109
|
+
const end = new Uint8Array(22);
|
|
110
|
+
const endView = new DataView(end.buffer);
|
|
111
|
+
writeUint32(endView, 0, 0x06054b50);
|
|
112
|
+
writeUint16(endView, 4, 0);
|
|
113
|
+
writeUint16(endView, 6, 0);
|
|
114
|
+
writeUint16(endView, 8, files.length);
|
|
115
|
+
writeUint16(endView, 10, files.length);
|
|
116
|
+
writeUint32(endView, 12, centralDirectorySize);
|
|
117
|
+
writeUint32(endView, 16, centralDirectoryOffset);
|
|
118
|
+
writeUint16(endView, 20, 0);
|
|
119
|
+
return concatBytes([...localParts, ...centralParts, end]);
|
|
120
|
+
}
|
|
121
|
+
function readStoreZip(bytes) {
|
|
122
|
+
const files = new Map();
|
|
123
|
+
let offset = 0;
|
|
124
|
+
while (offset + 4 <= bytes.length) {
|
|
125
|
+
const view = new DataView(bytes.buffer, bytes.byteOffset + offset);
|
|
126
|
+
const signature = view.getUint32(0, true);
|
|
127
|
+
if (signature === 0x02014b50 || signature === 0x06054b50)
|
|
128
|
+
break;
|
|
129
|
+
if (signature !== 0x04034b50) {
|
|
130
|
+
throw unsupportedArchiveFileError("archive zip has an invalid local file header");
|
|
131
|
+
}
|
|
132
|
+
if (offset + 30 > bytes.length) {
|
|
133
|
+
throw corruptedArchiveFileError("archive zip local file header is truncated");
|
|
134
|
+
}
|
|
135
|
+
const flags = view.getUint16(6, true);
|
|
136
|
+
const method = view.getUint16(8, true);
|
|
137
|
+
const expectedCrc = view.getUint32(14, true);
|
|
138
|
+
const compressedSize = view.getUint32(18, true);
|
|
139
|
+
const uncompressedSize = view.getUint32(22, true);
|
|
140
|
+
const nameLength = view.getUint16(26, true);
|
|
141
|
+
const extraLength = view.getUint16(28, true);
|
|
142
|
+
if ((flags & 0x0008) !== 0) {
|
|
143
|
+
throw unsupportedArchiveFileError("archive zip with data descriptors is not supported");
|
|
144
|
+
}
|
|
145
|
+
if (method !== ZIP_STORE_METHOD) {
|
|
146
|
+
throw unsupportedArchiveFileError("archive zip must use stored entries");
|
|
147
|
+
}
|
|
148
|
+
if (compressedSize !== uncompressedSize) {
|
|
149
|
+
throw unsupportedArchiveFileError("archive zip stored entry size mismatch");
|
|
150
|
+
}
|
|
151
|
+
const nameStart = offset + 30;
|
|
152
|
+
const dataStart = nameStart + nameLength + extraLength;
|
|
153
|
+
const dataEnd = dataStart + compressedSize;
|
|
154
|
+
if (dataEnd > bytes.length) {
|
|
155
|
+
throw corruptedArchiveFileError("archive zip entry extends past the end of the file");
|
|
156
|
+
}
|
|
157
|
+
const name = textDecoder.decode(bytes.slice(nameStart, nameStart + nameLength));
|
|
158
|
+
const data = bytes.slice(dataStart, dataEnd);
|
|
159
|
+
if (crc32(data) !== expectedCrc) {
|
|
160
|
+
throw corruptedArchiveFileError(`archive zip entry checksum mismatch: ${name}`);
|
|
161
|
+
}
|
|
162
|
+
if (files.has(name)) {
|
|
163
|
+
throw invalidArchiveContentError(`archive zip contains duplicate file: ${name}`);
|
|
164
|
+
}
|
|
165
|
+
files.set(name, data);
|
|
166
|
+
offset = dataEnd;
|
|
167
|
+
}
|
|
168
|
+
return files;
|
|
169
|
+
}
|
|
170
|
+
function readJsonFile(files, name) {
|
|
171
|
+
const bytes = files.get(name);
|
|
172
|
+
if (bytes == null) {
|
|
173
|
+
throw invalidArchiveContentError(`archive file missing: ${name}`);
|
|
174
|
+
}
|
|
175
|
+
try {
|
|
176
|
+
return JSON.parse(textDecoder.decode(bytes));
|
|
177
|
+
}
|
|
178
|
+
catch (error) {
|
|
179
|
+
throw new AppError({
|
|
180
|
+
messageForDeveloper: `archive json parse failed: ${name}`,
|
|
181
|
+
messageForUser: "圧縮済みファイル内のデータ形式を確認できませんでした。別のファイルを選択してください。",
|
|
182
|
+
originalMessage: error instanceof Error ? error.message : String(error),
|
|
183
|
+
statusCode: null,
|
|
184
|
+
});
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
function assertFiscalPeriodArchivePayload(payload) {
|
|
188
|
+
if (payload.manifest?.format !== FISCAL_PERIOD_ARCHIVE_FORMAT) {
|
|
189
|
+
throw invalidArchiveContentError("archive manifest format is invalid");
|
|
190
|
+
}
|
|
191
|
+
if (payload.manifest.version !== FISCAL_PERIOD_ARCHIVE_VERSION) {
|
|
192
|
+
throw invalidArchiveContentError("archive manifest version is not supported");
|
|
193
|
+
}
|
|
194
|
+
if (typeof payload.manifest.fiscalPeriodId !== "string") {
|
|
195
|
+
throw invalidArchiveContentError("archive manifest fiscalPeriodId is invalid");
|
|
196
|
+
}
|
|
197
|
+
if (typeof payload.fiscalPeriod?.id === "string" &&
|
|
198
|
+
payload.fiscalPeriod.id !== payload.manifest.fiscalPeriodId) {
|
|
199
|
+
throw invalidArchiveContentError("archive fiscalPeriod id does not match manifest");
|
|
200
|
+
}
|
|
201
|
+
if (!Array.isArray(payload.entries)) {
|
|
202
|
+
throw invalidArchiveContentError("archive entries must be an array");
|
|
203
|
+
}
|
|
204
|
+
if (!Array.isArray(payload.fixedAssets)) {
|
|
205
|
+
throw invalidArchiveContentError("archive fixedAssets must be an array");
|
|
206
|
+
}
|
|
207
|
+
if (!Array.isArray(payload.closings)) {
|
|
208
|
+
throw invalidArchiveContentError("archive closings must be an array");
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
function corruptedArchiveFileError(messageForDeveloper) {
|
|
212
|
+
return new AppError({
|
|
213
|
+
messageForDeveloper,
|
|
214
|
+
messageForUser: "圧縮済みファイルが破損している可能性があります。別のファイルを選択してください。",
|
|
215
|
+
originalMessage: null,
|
|
216
|
+
statusCode: null,
|
|
217
|
+
});
|
|
218
|
+
}
|
|
219
|
+
function unsupportedArchiveFileError(messageForDeveloper) {
|
|
220
|
+
return new AppError({
|
|
221
|
+
messageForDeveloper,
|
|
222
|
+
messageForUser: "対応していない形式のファイルです。オープン会計で作成した圧縮済みファイルを選択してください。",
|
|
223
|
+
originalMessage: null,
|
|
224
|
+
statusCode: null,
|
|
225
|
+
});
|
|
226
|
+
}
|
|
227
|
+
function invalidArchiveContentError(messageForDeveloper) {
|
|
228
|
+
return new AppError({
|
|
229
|
+
messageForDeveloper,
|
|
230
|
+
messageForUser: "圧縮済みファイルの内容を確認できませんでした。作成元の会計期間データからもう一度圧縮保存してください。",
|
|
231
|
+
originalMessage: null,
|
|
232
|
+
statusCode: null,
|
|
233
|
+
});
|
|
234
|
+
}
|
|
235
|
+
function concatBytes(parts) {
|
|
236
|
+
const output = new Uint8Array(totalLength(parts));
|
|
237
|
+
let offset = 0;
|
|
238
|
+
for (const part of parts) {
|
|
239
|
+
output.set(part, offset);
|
|
240
|
+
offset += part.length;
|
|
241
|
+
}
|
|
242
|
+
return output;
|
|
243
|
+
}
|
|
244
|
+
function totalLength(parts) {
|
|
245
|
+
return parts.reduce((sum, part) => sum + part.length, 0);
|
|
246
|
+
}
|
|
247
|
+
function writeUint16(view, byteOffset, value) {
|
|
248
|
+
view.setUint16(byteOffset, value, true);
|
|
249
|
+
}
|
|
250
|
+
function writeUint32(view, byteOffset, value) {
|
|
251
|
+
view.setUint32(byteOffset, value >>> 0, true);
|
|
252
|
+
}
|
|
253
|
+
let crcTable = null;
|
|
254
|
+
function crc32(bytes) {
|
|
255
|
+
const table = getCrcTable();
|
|
256
|
+
let crc = 0xffffffff;
|
|
257
|
+
for (const byte of bytes) {
|
|
258
|
+
crc = table[(crc ^ byte) & 0xff] ^ (crc >>> 8);
|
|
259
|
+
}
|
|
260
|
+
return (crc ^ 0xffffffff) >>> 0;
|
|
261
|
+
}
|
|
262
|
+
function getCrcTable() {
|
|
263
|
+
if (crcTable != null)
|
|
264
|
+
return crcTable;
|
|
265
|
+
const table = new Uint32Array(256);
|
|
266
|
+
for (let i = 0; i < 256; i += 1) {
|
|
267
|
+
let value = i;
|
|
268
|
+
for (let bit = 0; bit < 8; bit += 1) {
|
|
269
|
+
value = (value & 1) !== 0 ? 0xedb88320 ^ (value >>> 1) : value >>> 1;
|
|
270
|
+
}
|
|
271
|
+
table[i] = value >>> 0;
|
|
272
|
+
}
|
|
273
|
+
crcTable = table;
|
|
274
|
+
return table;
|
|
275
|
+
}
|
|
276
|
+
//# sourceMappingURL=fiscal-period-archive.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fiscal-period-archive.js","sourceRoot":"","sources":["../../src/archive/fiscal-period-archive.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
export type FixedAssetPreviewItem = {
|
|
2
|
+
id: string;
|
|
3
|
+
fiscalPeriodId?: string;
|
|
4
|
+
name: string;
|
|
5
|
+
account: string;
|
|
6
|
+
accountId?: string;
|
|
7
|
+
period: string;
|
|
8
|
+
remaining: string;
|
|
9
|
+
progress: number;
|
|
10
|
+
current: string;
|
|
11
|
+
purchase: string;
|
|
12
|
+
status: string;
|
|
13
|
+
depreciationAmount?: string;
|
|
14
|
+
acquisitionDate?: string;
|
|
15
|
+
acquisitionCost?: number;
|
|
16
|
+
usefulLife?: number;
|
|
17
|
+
businessRate?: number;
|
|
18
|
+
disposalDate?: string;
|
|
19
|
+
disposalPrice?: string;
|
|
20
|
+
};
|
|
21
|
+
export type FixedAssetDraft = {
|
|
22
|
+
name: string;
|
|
23
|
+
account: string;
|
|
24
|
+
acquisitionDate: string;
|
|
25
|
+
acquisitionCost: string;
|
|
26
|
+
usefulLife: number;
|
|
27
|
+
businessRatePercent: number;
|
|
28
|
+
status: string;
|
|
29
|
+
disposalDate?: string;
|
|
30
|
+
disposalPrice?: string;
|
|
31
|
+
};
|
|
32
|
+
//# sourceMappingURL=fixed-asset-data.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fixed-asset-data.d.ts","sourceRoot":"","sources":["../../src/assist/fixed-asset-data.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,qBAAqB,GAAG;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fixed-asset-data.js","sourceRoot":"","sources":["../../src/assist/fixed-asset-data.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export type StraightLineDepreciationInput = {
|
|
2
|
+
acquisitionDate: string;
|
|
3
|
+
acquisitionCost: number;
|
|
4
|
+
usefulLife: number;
|
|
5
|
+
asOf: Date;
|
|
6
|
+
};
|
|
7
|
+
export type DepreciationSnapshot = {
|
|
8
|
+
progress: number;
|
|
9
|
+
currentBookValue: number;
|
|
10
|
+
accumulated: number;
|
|
11
|
+
annualDepreciation: number;
|
|
12
|
+
elapsedMonths: number;
|
|
13
|
+
totalMonths: number;
|
|
14
|
+
remainingMonths: number;
|
|
15
|
+
periodLabel: string;
|
|
16
|
+
remainingLabel: string;
|
|
17
|
+
};
|
|
18
|
+
export type PeriodDepreciationInput = {
|
|
19
|
+
acquisitionDate: string;
|
|
20
|
+
acquisitionCost: number;
|
|
21
|
+
usefulLife: number;
|
|
22
|
+
periodStartDate: Date;
|
|
23
|
+
asOf: Date;
|
|
24
|
+
};
|
|
25
|
+
export declare function computePeriodDepreciation(input: PeriodDepreciationInput): number;
|
|
26
|
+
export declare function computeStraightLineDepreciation(input: StraightLineDepreciationInput): DepreciationSnapshot;
|
|
27
|
+
//# sourceMappingURL=fixed-asset-depreciation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fixed-asset-depreciation.d.ts","sourceRoot":"","sources":["../../src/assist/fixed-asset-depreciation.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,6BAA6B,GAAG;IAC1C,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,IAAI,CAAC;CACZ,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC;AAWF,MAAM,MAAM,uBAAuB,GAAG;IACpC,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,IAAI,CAAC;IACtB,IAAI,EAAE,IAAI,CAAC;CACZ,CAAC;AAEF,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,uBAAuB,GAC7B,MAAM,CAkBR;AAED,wBAAgB,+BAA+B,CAC7C,KAAK,EAAE,6BAA6B,GACnC,oBAAoB,CAgDtB"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
// 定額法(straight-line)の減価償却計算。
|
|
2
|
+
// 固定資産の「真実」は取得価額・取得日・耐用年数で、簿価・進捗・当期償却費などの
|
|
3
|
+
// 表示値はすべてここから導出する(保存された preview 値には依存しない)。
|
|
4
|
+
import { parseIsoLocalDate } from "../shared/parse-utils";
|
|
5
|
+
function monthsInService(start, asOf) {
|
|
6
|
+
const acquisitionIndex = start.year * 12 + (start.month - 1);
|
|
7
|
+
const asOfIndex = asOf.getFullYear() * 12 + asOf.getMonth();
|
|
8
|
+
return asOfIndex - acquisitionIndex + 1;
|
|
9
|
+
}
|
|
10
|
+
export function computePeriodDepreciation(input) {
|
|
11
|
+
const base = {
|
|
12
|
+
acquisitionDate: input.acquisitionDate,
|
|
13
|
+
acquisitionCost: input.acquisitionCost,
|
|
14
|
+
usefulLife: input.usefulLife,
|
|
15
|
+
};
|
|
16
|
+
// 期首より前(前月末まで)の累計償却を控除して、当期に属する月数分のみを取り出す。
|
|
17
|
+
const dayBeforePeriod = new Date(input.periodStartDate);
|
|
18
|
+
dayBeforePeriod.setDate(dayBeforePeriod.getDate() - 1);
|
|
19
|
+
const before = computeStraightLineDepreciation({
|
|
20
|
+
...base,
|
|
21
|
+
asOf: dayBeforePeriod,
|
|
22
|
+
}).accumulated;
|
|
23
|
+
const through = computeStraightLineDepreciation({
|
|
24
|
+
...base,
|
|
25
|
+
asOf: input.asOf,
|
|
26
|
+
}).accumulated;
|
|
27
|
+
return Math.max(0, through - before);
|
|
28
|
+
}
|
|
29
|
+
export function computeStraightLineDepreciation(input) {
|
|
30
|
+
const startDate = parseIsoLocalDate(input.acquisitionDate);
|
|
31
|
+
const start = startDate == null
|
|
32
|
+
? null
|
|
33
|
+
: {
|
|
34
|
+
year: startDate.getFullYear(),
|
|
35
|
+
month: startDate.getMonth() + 1,
|
|
36
|
+
day: startDate.getDate(),
|
|
37
|
+
};
|
|
38
|
+
const cost = Math.max(0, Math.round(input.acquisitionCost));
|
|
39
|
+
// 耐用年数は最低 1 年。月数上限 1200(=100 年)で異常値を防ぐ。
|
|
40
|
+
const usefulLifeYears = Math.max(1, Math.floor(input.usefulLife) || 1);
|
|
41
|
+
const totalMonths = Math.min(1200, usefulLifeYears * 12);
|
|
42
|
+
const rawElapsed = start == null ? 0 : monthsInService(start, input.asOf);
|
|
43
|
+
const elapsedMonths = Number.isFinite(rawElapsed)
|
|
44
|
+
? Math.max(0, Math.min(totalMonths, rawElapsed))
|
|
45
|
+
: 0;
|
|
46
|
+
const progress = totalMonths === 0 ? 1 : elapsedMonths / totalMonths;
|
|
47
|
+
const depreciableAmount = Math.max(0, cost - (cost > 0 ? 1 : 0));
|
|
48
|
+
const accumulated = Math.min(depreciableAmount, Math.floor(depreciableAmount * progress));
|
|
49
|
+
const currentBookValue = Math.max(cost > 0 ? 1 : 0, cost - accumulated);
|
|
50
|
+
const annualWindowEnd = Math.min(totalMonths, elapsedMonths + 12);
|
|
51
|
+
const annualDepreciation = Math.min(depreciableAmount - accumulated, Math.floor((depreciableAmount * annualWindowEnd) / totalMonths) -
|
|
52
|
+
accumulated);
|
|
53
|
+
const remainingMonths = totalMonths - elapsedMonths;
|
|
54
|
+
return {
|
|
55
|
+
progress,
|
|
56
|
+
currentBookValue,
|
|
57
|
+
accumulated,
|
|
58
|
+
annualDepreciation,
|
|
59
|
+
elapsedMonths,
|
|
60
|
+
totalMonths,
|
|
61
|
+
remainingMonths,
|
|
62
|
+
periodLabel: start == null ? "" : `${start.year}年${start.month}月〜`,
|
|
63
|
+
remainingLabel: remainingMonths > 0 ? `あと${remainingMonths}ヶ月` : "償却済み",
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=fixed-asset-depreciation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fixed-asset-depreciation.js","sourceRoot":"","sources":["../../src/assist/fixed-asset-depreciation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { EntryAccountVisualType } from "../entries/entries-types";
|
|
2
|
+
export type OpeningCarryoverRecord = {
|
|
3
|
+
id: string;
|
|
4
|
+
fiscalPeriodId: string;
|
|
5
|
+
date: string;
|
|
6
|
+
description: string;
|
|
7
|
+
debit: string;
|
|
8
|
+
debitType: EntryAccountVisualType;
|
|
9
|
+
debitAmount: string;
|
|
10
|
+
credit: string;
|
|
11
|
+
creditType: EntryAccountVisualType;
|
|
12
|
+
creditAmount: string;
|
|
13
|
+
partner: string;
|
|
14
|
+
taxCategory: string;
|
|
15
|
+
businessCategory: string;
|
|
16
|
+
businessRate: string;
|
|
17
|
+
debitBookAccountId?: string;
|
|
18
|
+
creditBookAccountId?: string;
|
|
19
|
+
};
|
|
20
|
+
export type OpeningCarryoverDraft = Omit<OpeningCarryoverRecord, "id" | "fiscalPeriodId">;
|
|
21
|
+
//# sourceMappingURL=opening-carryover.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"opening-carryover.d.ts","sourceRoot":"","sources":["../../src/assist/opening-carryover.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAEvE,MAAM,MAAM,sBAAsB,GAAG;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,sBAAsB,CAAC;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,sBAAsB,CAAC;IACnC,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG,IAAI,CACtC,sBAAsB,EACtB,IAAI,GAAG,gBAAgB,CACxB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"opening-carryover.js","sourceRoot":"","sources":["../../src/assist/opening-carryover.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"default-master-data.d.ts","sourceRoot":"","sources":["../../src/entries/default-master-data.ts"],"names":[],"mappings":"AAGA,cAAc,yBAAyB,CAAC;AAExC,wBAAgB,YAAY,CAC1B,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,EACzB,SAAS,EAAE,QAAQ,CAAC,MAAM,CAAC,GAC1B,MAAM,EAAE,CAUV"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
// マスターデータ本体 (型・デフォルト勘定科目/税区分/事業区分) は
|
|
2
|
+
// generated-master-data.ts に生成される。canonical な単一ソースは openkk 内の
|
|
3
|
+
// resources/gen/bookkeeping_master_data.json。再生成は `npm run gen-master-data`。
|
|
4
|
+
export * from "./generated-master-data";
|
|
5
|
+
export function mergeOptions(primary, secondary) {
|
|
6
|
+
const out = [];
|
|
7
|
+
const seen = new Set();
|
|
8
|
+
for (const raw of [...primary, ...secondary]) {
|
|
9
|
+
const trimmed = (raw ?? "").trim();
|
|
10
|
+
if (trimmed.length === 0 || seen.has(trimmed))
|
|
11
|
+
continue;
|
|
12
|
+
seen.add(trimmed);
|
|
13
|
+
out.push(trimmed);
|
|
14
|
+
}
|
|
15
|
+
return out;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=default-master-data.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"default-master-data.js","sourceRoot":"","sources":["../../src/entries/default-master-data.ts"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,8DAA8D;AAC9D,6EAA6E;AAC7E,cAAc,yBAAyB,CAAC;AAExC,MAAM,UAAU,YAAY,CAC1B,OAAyB,EACzB,SAA2B;IAE3B,MAAM,GAAG,GAAa,EAAE,CAAC;IACzB,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,KAAK,MAAM,GAAG,IAAI,CAAC,GAAG,OAAO,EAAE,GAAG,SAAS,CAAC,EAAE,CAAC;QAC7C,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QACnC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;YAAE,SAAS;QACxD,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAClB,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACpB,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
export type EntryAccountVisualType = "asset" | "liability" | "equity" | "revenue" | "cost_of_sales" | "expense";
|
|
2
|
+
export type VirtualEntrySourceKind = "opening_carryover" | "fixed_asset" | "business_rate_transfer";
|
|
3
|
+
export type VirtualEntrySource = {
|
|
4
|
+
id: string;
|
|
5
|
+
kind: VirtualEntrySourceKind;
|
|
6
|
+
sourceId: string;
|
|
7
|
+
label: string;
|
|
8
|
+
assistHref?: string;
|
|
9
|
+
};
|
|
10
|
+
export type EntryPreviewRow = {
|
|
11
|
+
recordId?: string;
|
|
12
|
+
lineIndex?: number;
|
|
13
|
+
lineCount?: number;
|
|
14
|
+
isFirstOfRecord?: boolean;
|
|
15
|
+
date: string;
|
|
16
|
+
weekday: string;
|
|
17
|
+
debit: string;
|
|
18
|
+
debitType: EntryAccountVisualType;
|
|
19
|
+
debitAmount: string;
|
|
20
|
+
credit: string;
|
|
21
|
+
creditType: EntryAccountVisualType;
|
|
22
|
+
creditAmount: string;
|
|
23
|
+
description: string;
|
|
24
|
+
partner: string;
|
|
25
|
+
businessRate: string;
|
|
26
|
+
taxCategory: string;
|
|
27
|
+
businessCategory: string;
|
|
28
|
+
virtual?: VirtualEntrySource;
|
|
29
|
+
};
|
|
30
|
+
//# sourceMappingURL=entries-types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entries-types.d.ts","sourceRoot":"","sources":["../../src/entries/entries-types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,sBAAsB,GAC9B,OAAO,GACP,WAAW,GACX,QAAQ,GACR,SAAS,GACT,eAAe,GACf,SAAS,CAAC;AAEd,MAAM,MAAM,sBAAsB,GAC9B,mBAAmB,GACnB,aAAa,GACb,wBAAwB,CAAC;AAE7B,MAAM,MAAM,kBAAkB,GAAG;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,sBAAsB,CAAC;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,sBAAsB,CAAC;IAClC,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,sBAAsB,CAAC;IACnC,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,MAAM,CAAC;IACzB,OAAO,CAAC,EAAE,kBAAkB,CAAC;CAC9B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entries-types.js","sourceRoot":"","sources":["../../src/entries/entries-types.ts"],"names":[],"mappings":""}
|