@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.
Files changed (149) hide show
  1. package/dist/archive/fiscal-period-archive.d.ts +38 -0
  2. package/dist/archive/fiscal-period-archive.d.ts.map +1 -0
  3. package/dist/archive/fiscal-period-archive.js +276 -0
  4. package/dist/archive/fiscal-period-archive.js.map +1 -0
  5. package/dist/assist/fixed-asset-data.d.ts +32 -0
  6. package/dist/assist/fixed-asset-data.d.ts.map +1 -0
  7. package/dist/assist/fixed-asset-data.js +2 -0
  8. package/dist/assist/fixed-asset-data.js.map +1 -0
  9. package/dist/assist/fixed-asset-depreciation.d.ts +27 -0
  10. package/dist/assist/fixed-asset-depreciation.d.ts.map +1 -0
  11. package/dist/assist/fixed-asset-depreciation.js +66 -0
  12. package/dist/assist/fixed-asset-depreciation.js.map +1 -0
  13. package/dist/assist/opening-carryover.d.ts +21 -0
  14. package/dist/assist/opening-carryover.d.ts.map +1 -0
  15. package/dist/assist/opening-carryover.js +2 -0
  16. package/dist/assist/opening-carryover.js.map +1 -0
  17. package/dist/entries/default-master-data.d.ts +3 -0
  18. package/dist/entries/default-master-data.d.ts.map +1 -0
  19. package/dist/entries/default-master-data.js +17 -0
  20. package/dist/entries/default-master-data.js.map +1 -0
  21. package/dist/entries/entries-types.d.ts +30 -0
  22. package/dist/entries/entries-types.d.ts.map +1 -0
  23. package/dist/entries/entries-types.js +2 -0
  24. package/dist/entries/entries-types.js.map +1 -0
  25. package/dist/entries/entry-record.d.ts +53 -0
  26. package/dist/entries/entry-record.d.ts.map +1 -0
  27. package/dist/entries/entry-record.js +180 -0
  28. package/dist/entries/entry-record.js.map +1 -0
  29. package/dist/entries/example-entries.d.ts +7 -0
  30. package/dist/entries/example-entries.d.ts.map +1 -0
  31. package/dist/entries/example-entries.js +97 -0
  32. package/dist/entries/example-entries.js.map +1 -0
  33. package/dist/entries/generated-master-data.d.ts +26 -0
  34. package/dist/entries/generated-master-data.d.ts.map +1 -0
  35. package/dist/entries/generated-master-data.js +2211 -0
  36. package/dist/entries/generated-master-data.js.map +1 -0
  37. package/dist/entries/import-export.d.ts +13 -0
  38. package/dist/entries/import-export.d.ts.map +1 -0
  39. package/dist/entries/import-export.js +319 -0
  40. package/dist/entries/import-export.js.map +1 -0
  41. package/dist/entries/quick-guide-data.d.ts +32 -0
  42. package/dist/entries/quick-guide-data.d.ts.map +1 -0
  43. package/dist/entries/quick-guide-data.js +513 -0
  44. package/dist/entries/quick-guide-data.js.map +1 -0
  45. package/dist/entries/virtual-entries.d.ts +58 -0
  46. package/dist/entries/virtual-entries.d.ts.map +1 -0
  47. package/dist/entries/virtual-entries.js +414 -0
  48. package/dist/entries/virtual-entries.js.map +1 -0
  49. package/dist/index.d.ts +34 -0
  50. package/dist/index.d.ts.map +1 -0
  51. package/dist/index.js +34 -0
  52. package/dist/index.js.map +1 -0
  53. package/dist/print/examples/financial-statements-example.d.ts +5 -0
  54. package/dist/print/examples/financial-statements-example.d.ts.map +1 -0
  55. package/dist/print/examples/financial-statements-example.js +246 -0
  56. package/dist/print/examples/financial-statements-example.js.map +1 -0
  57. package/dist/print/examples/general-ledger-example.d.ts +5 -0
  58. package/dist/print/examples/general-ledger-example.d.ts.map +1 -0
  59. package/dist/print/examples/general-ledger-example.js +10 -0
  60. package/dist/print/examples/general-ledger-example.js.map +1 -0
  61. package/dist/print/examples/journal-example.d.ts +4 -0
  62. package/dist/print/examples/journal-example.d.ts.map +1 -0
  63. package/dist/print/examples/journal-example.js +16 -0
  64. package/dist/print/examples/journal-example.js.map +1 -0
  65. package/dist/print/financial-statements-print.d.ts +10 -0
  66. package/dist/print/financial-statements-print.d.ts.map +1 -0
  67. package/dist/print/financial-statements-print.js +223 -0
  68. package/dist/print/financial-statements-print.js.map +1 -0
  69. package/dist/print/fs-data.d.ts +37 -0
  70. package/dist/print/fs-data.d.ts.map +1 -0
  71. package/dist/print/fs-data.js +348 -0
  72. package/dist/print/fs-data.js.map +1 -0
  73. package/dist/print/general-ledger-print.d.ts +10 -0
  74. package/dist/print/general-ledger-print.d.ts.map +1 -0
  75. package/dist/print/general-ledger-print.js +250 -0
  76. package/dist/print/general-ledger-print.js.map +1 -0
  77. package/dist/print/journal-print.d.ts +4 -0
  78. package/dist/print/journal-print.d.ts.map +1 -0
  79. package/dist/print/journal-print.js +126 -0
  80. package/dist/print/journal-print.js.map +1 -0
  81. package/dist/print/print-shell.d.ts +9 -0
  82. package/dist/print/print-shell.d.ts.map +1 -0
  83. package/dist/print/print-shell.js +28 -0
  84. package/dist/print/print-shell.js.map +1 -0
  85. package/dist/shared/app-error.d.ts +25 -0
  86. package/dist/shared/app-error.d.ts.map +1 -0
  87. package/dist/shared/app-error.js +115 -0
  88. package/dist/shared/app-error.js.map +1 -0
  89. package/dist/shared/bootstrap-data.d.ts +15 -0
  90. package/dist/shared/bootstrap-data.d.ts.map +1 -0
  91. package/dist/shared/bootstrap-data.js +150 -0
  92. package/dist/shared/bootstrap-data.js.map +1 -0
  93. package/dist/shared/brand-config.d.ts +6 -0
  94. package/dist/shared/brand-config.d.ts.map +1 -0
  95. package/dist/shared/brand-config.js +2 -0
  96. package/dist/shared/brand-config.js.map +1 -0
  97. package/dist/shared/demo-data.d.ts +15 -0
  98. package/dist/shared/demo-data.d.ts.map +1 -0
  99. package/dist/shared/demo-data.js +150 -0
  100. package/dist/shared/demo-data.js.map +1 -0
  101. package/dist/shared/models.d.ts +52 -0
  102. package/dist/shared/models.d.ts.map +1 -0
  103. package/dist/shared/models.js +2 -0
  104. package/dist/shared/models.js.map +1 -0
  105. package/dist/shared/openkk-config.d.ts +41 -0
  106. package/dist/shared/openkk-config.d.ts.map +1 -0
  107. package/dist/shared/openkk-config.js +15 -0
  108. package/dist/shared/openkk-config.js.map +1 -0
  109. package/dist/shared/parse-utils.d.ts +7 -0
  110. package/dist/shared/parse-utils.d.ts.map +1 -0
  111. package/dist/shared/parse-utils.js +43 -0
  112. package/dist/shared/parse-utils.js.map +1 -0
  113. package/dist/shared/period-lock.d.ts +9 -0
  114. package/dist/shared/period-lock.d.ts.map +1 -0
  115. package/dist/shared/period-lock.js +41 -0
  116. package/dist/shared/period-lock.js.map +1 -0
  117. package/dist/shared/sample-data.d.ts +15 -0
  118. package/dist/shared/sample-data.d.ts.map +1 -0
  119. package/dist/shared/sample-data.js +161 -0
  120. package/dist/shared/sample-data.js.map +1 -0
  121. package/dist/shared/user.d.ts +20 -0
  122. package/dist/shared/user.d.ts.map +1 -0
  123. package/dist/shared/user.js +13 -0
  124. package/dist/shared/user.js.map +1 -0
  125. package/dist/steps/next-fiscal-period.d.ts +32 -0
  126. package/dist/steps/next-fiscal-period.d.ts.map +1 -0
  127. package/dist/steps/next-fiscal-period.js +128 -0
  128. package/dist/steps/next-fiscal-period.js.map +1 -0
  129. package/dist/steps/period-check.d.ts +9 -0
  130. package/dist/steps/period-check.d.ts.map +1 -0
  131. package/dist/steps/period-check.js +23 -0
  132. package/dist/steps/period-check.js.map +1 -0
  133. package/dist/steps/step-derivation.d.ts +15 -0
  134. package/dist/steps/step-derivation.d.ts.map +1 -0
  135. package/dist/steps/step-derivation.js +38 -0
  136. package/dist/steps/step-derivation.js.map +1 -0
  137. package/dist/steps/step-trend.d.ts +17 -0
  138. package/dist/steps/step-trend.d.ts.map +1 -0
  139. package/dist/steps/step-trend.js +30 -0
  140. package/dist/steps/step-trend.js.map +1 -0
  141. package/dist/steps/summary.d.ts +24 -0
  142. package/dist/steps/summary.d.ts.map +1 -0
  143. package/dist/steps/summary.js +69 -0
  144. package/dist/steps/summary.js.map +1 -0
  145. package/dist/steps/year-month.d.ts +10 -0
  146. package/dist/steps/year-month.d.ts.map +1 -0
  147. package/dist/steps/year-month.js +26 -0
  148. package/dist/steps/year-month.js.map +1 -0
  149. package/package.json +38 -0
@@ -0,0 +1,414 @@
1
+ import { computePeriodDepreciation, computeStraightLineDepreciation, } from "../assist/fixed-asset-depreciation";
2
+ import { BUSINESS_RATE_TRANSFER_LOCAL_ID, buildBusinessRateTransferEntry, recordToPreviewRows, } from "./entry-record";
3
+ import { parseAmount, parseIsoLocalDate } from "../shared/parse-utils";
4
+ const BUSINESS_RATE_TRANSFER_ROW_ID = "business-rate-transfer";
5
+ const MATERIALIZED_VIRTUAL_LOCAL_ID_PREFIX = "virtual:";
6
+ function isMaterializedVirtualEntry(entry) {
7
+ return (entry.localId != null &&
8
+ entry.localId.startsWith(MATERIALIZED_VIRTUAL_LOCAL_ID_PREFIX));
9
+ }
10
+ export function buildVirtualOpeningCarryoverRows(input) {
11
+ return input.records
12
+ .filter((record) => record.fiscalPeriodId === input.fiscalPeriodId &&
13
+ record.date.startsWith(input.yearMonth))
14
+ .map((record) => ({
15
+ recordId: `virtual-opening-carryover-${record.id}`,
16
+ lineIndex: 0,
17
+ lineCount: 1,
18
+ isFirstOfRecord: true,
19
+ date: `${record.date.slice(5, 7)}/${record.date.slice(8, 10)}`,
20
+ weekday: "",
21
+ debit: record.debit,
22
+ debitType: record.debitType,
23
+ debitAmount: record.debitAmount,
24
+ credit: record.credit,
25
+ creditType: record.creditType,
26
+ creditAmount: record.creditAmount,
27
+ description: record.description,
28
+ partner: record.partner,
29
+ businessRate: record.businessRate,
30
+ taxCategory: record.taxCategory,
31
+ businessCategory: record.businessCategory,
32
+ virtual: {
33
+ id: `opening-carryover-${record.id}`,
34
+ kind: "opening_carryover",
35
+ sourceId: record.id,
36
+ label: "再振替",
37
+ assistHref: `/assist/opening-carryover?carryover=${record.id}`,
38
+ },
39
+ }));
40
+ }
41
+ /**
42
+ * 償却計算に必要な「真実」の値をプレビュー項目から取り出す。取得価額は
43
+ * `acquisitionCost`(無ければ表示用 `purchase` 文字列)から復元する。
44
+ * 必須値が欠ける/不正な資産は減価償却の対象外(null)とする。
45
+ */
46
+ function fixedAssetTruth(asset) {
47
+ const { acquisitionDate, usefulLife } = asset;
48
+ if (acquisitionDate == null || usefulLife == null)
49
+ return null;
50
+ if (parseIsoLocalDate(acquisitionDate) == null)
51
+ return null;
52
+ const acquisitionCost = asset.acquisitionCost ?? parseAmount(asset.purchase);
53
+ if (!Number.isFinite(acquisitionCost) || acquisitionCost <= 0)
54
+ return null;
55
+ return { acquisitionDate, acquisitionCost, usefulLife };
56
+ }
57
+ function fixedAssetVirtual(asset) {
58
+ return {
59
+ id: `fixed-asset-${asset.id}`,
60
+ kind: "fixed_asset",
61
+ sourceId: asset.id,
62
+ label: "固定資産",
63
+ assistHref: `/assist/fixed-assets?asset=${asset.id}`,
64
+ };
65
+ }
66
+ function businessRateLabel(asset) {
67
+ return asset.businessRate == null
68
+ ? ""
69
+ : String(Math.round(asset.businessRate * 100));
70
+ }
71
+ /**
72
+ * 固定資産から当期のバーチャル仕訳行を生成する。
73
+ *
74
+ * - 償却中: 期末月に当期償却費(期首〜期末の月割)を計上。
75
+ * - 売却済: 処分月に「期首〜処分日の当期償却費」+売却仕訳(処分日簿価で資産を除く)。
76
+ * - 廃棄済: 処分月に「期首〜処分日の当期償却費」+固定資産除却損で簿価を除却。
77
+ * - 完了(償却済): 備忘価額のみのため仕訳なし。
78
+ *
79
+ * 減価償却費・除却損は全額ベースで計上し、家事按分は businessRate として持たせる。
80
+ * 個人負担分(事業主貸)への振替は集計層(fs-data / summary)で行う。
81
+ */
82
+ export function buildVirtualFixedAssetRows(input) {
83
+ const periodStartDate = input.periodStartDate == null
84
+ ? null
85
+ : parseIsoLocalDate(input.periodStartDate);
86
+ if (periodStartDate == null)
87
+ return [];
88
+ const { periodEndDate } = input;
89
+ const rows = [];
90
+ for (const asset of input.assets) {
91
+ if (asset.fiscalPeriodId != null &&
92
+ asset.fiscalPeriodId !== input.fiscalPeriodId) {
93
+ continue;
94
+ }
95
+ const truth = fixedAssetTruth(asset);
96
+ if (truth == null)
97
+ continue;
98
+ if (asset.status === "償却中") {
99
+ if (periodEndDate == null || !periodEndDate.startsWith(input.yearMonth)) {
100
+ continue;
101
+ }
102
+ const asOf = parseIsoLocalDate(periodEndDate);
103
+ if (asOf == null)
104
+ continue;
105
+ rows.push(...buildDepreciationRows({
106
+ asset,
107
+ truth,
108
+ periodStartDate,
109
+ asOf,
110
+ dateText: periodEndDate,
111
+ }));
112
+ continue;
113
+ }
114
+ if (asset.status === "売却済" || asset.status === "廃棄済") {
115
+ const disposalDate = asset.disposalDate;
116
+ if (disposalDate == null || !disposalDate.startsWith(input.yearMonth)) {
117
+ continue;
118
+ }
119
+ const asOf = parseIsoLocalDate(disposalDate);
120
+ if (asOf == null)
121
+ continue;
122
+ // (1) 期首〜処分日の当期償却費を先に計上し、簿価を処分日時点まで落とす。
123
+ rows.push(...buildDepreciationRows({
124
+ asset,
125
+ truth,
126
+ periodStartDate,
127
+ asOf,
128
+ dateText: disposalDate,
129
+ }));
130
+ // (2) 処分日時点の簿価で資産を売却 / 除却する。
131
+ const bookValue = computeStraightLineDepreciation({
132
+ ...truth,
133
+ asOf,
134
+ }).currentBookValue;
135
+ if (asset.status === "売却済") {
136
+ rows.push(...buildSaleRows({ asset, disposalDate, bookValue }));
137
+ }
138
+ else {
139
+ rows.push(...buildRetirementRows({ asset, disposalDate, bookValue }));
140
+ }
141
+ }
142
+ // "完了"(retired) は備忘価額のみで仕訳不要。
143
+ }
144
+ return rows;
145
+ }
146
+ function buildDepreciationRows(input) {
147
+ const depreciation = computePeriodDepreciation({
148
+ ...input.truth,
149
+ periodStartDate: input.periodStartDate,
150
+ asOf: input.asOf,
151
+ });
152
+ if (depreciation <= 0)
153
+ return [];
154
+ return buildVirtualRowsFromPairs({
155
+ recordId: `virtual-fixed-asset-${input.asset.id}`,
156
+ date: monthDay(input.dateText),
157
+ description: `${input.asset.name}の減価償却`,
158
+ businessRate: businessRateLabel(input.asset),
159
+ virtual: fixedAssetVirtual(input.asset),
160
+ debits: [
161
+ {
162
+ accountName: "減価償却費",
163
+ accountType: "expense",
164
+ amount: depreciation,
165
+ },
166
+ ],
167
+ credits: [
168
+ {
169
+ accountName: input.asset.account,
170
+ accountType: "asset",
171
+ amount: depreciation,
172
+ },
173
+ ],
174
+ });
175
+ }
176
+ function buildSaleRows(input) {
177
+ const disposalPrice = parseAmount(input.asset.disposalPrice ?? "0");
178
+ const gain = Math.max(0, disposalPrice - input.bookValue);
179
+ const loss = Math.max(0, input.bookValue - disposalPrice);
180
+ const debits = [];
181
+ const credits = [];
182
+ if (disposalPrice > 0) {
183
+ debits.push({
184
+ accountName: "普通預金",
185
+ accountType: "asset",
186
+ amount: disposalPrice,
187
+ });
188
+ }
189
+ if (loss > 0) {
190
+ debits.push({
191
+ accountName: "固定資産売却損",
192
+ accountType: "expense",
193
+ amount: loss,
194
+ });
195
+ }
196
+ if (input.bookValue > 0) {
197
+ credits.push({
198
+ accountName: input.asset.account,
199
+ accountType: "asset",
200
+ amount: input.bookValue,
201
+ });
202
+ }
203
+ if (gain > 0) {
204
+ credits.push({
205
+ accountName: "固定資産売却益",
206
+ accountType: "revenue",
207
+ amount: gain,
208
+ });
209
+ }
210
+ return buildVirtualRowsFromPairs({
211
+ recordId: `virtual-fixed-asset-sale-${input.asset.id}`,
212
+ date: monthDay(input.disposalDate),
213
+ description: `${input.asset.name}の売却`,
214
+ businessRate: businessRateLabel(input.asset),
215
+ virtual: fixedAssetVirtual(input.asset),
216
+ debits,
217
+ credits,
218
+ });
219
+ }
220
+ function buildRetirementRows(input) {
221
+ // 簿価が残っている場合のみ、残存簿価を固定資産除却損として計上する。
222
+ if (input.bookValue <= 0)
223
+ return [];
224
+ return buildVirtualRowsFromPairs({
225
+ recordId: `virtual-fixed-asset-retire-${input.asset.id}`,
226
+ date: monthDay(input.disposalDate),
227
+ description: `${input.asset.name}の除却`,
228
+ businessRate: businessRateLabel(input.asset),
229
+ virtual: fixedAssetVirtual(input.asset),
230
+ debits: [
231
+ {
232
+ accountName: "固定資産除却損",
233
+ accountType: "expense",
234
+ amount: input.bookValue,
235
+ },
236
+ ],
237
+ credits: [
238
+ {
239
+ accountName: input.asset.account,
240
+ accountType: "asset",
241
+ amount: input.bookValue,
242
+ },
243
+ ],
244
+ });
245
+ }
246
+ function monthDay(isoDate) {
247
+ return `${isoDate.slice(5, 7)}/${isoDate.slice(8, 10)}`;
248
+ }
249
+ function formatAmount(value) {
250
+ return new Intl.NumberFormat("ja-JP").format(value);
251
+ }
252
+ function buildVirtualRowsFromPairs(input) {
253
+ const rowCount = Math.max(input.debits.length, input.credits.length);
254
+ if (rowCount === 0)
255
+ return [];
256
+ return Array.from({ length: rowCount }, (_, index) => {
257
+ const debit = input.debits[index] ?? null;
258
+ const credit = input.credits[index] ?? null;
259
+ return {
260
+ recordId: input.recordId,
261
+ lineIndex: index,
262
+ lineCount: rowCount,
263
+ isFirstOfRecord: index === 0,
264
+ date: input.date,
265
+ weekday: "",
266
+ debit: debit?.accountName ?? "",
267
+ debitType: debit?.accountType ?? "asset",
268
+ debitAmount: debit == null ? "" : formatAmount(debit.amount),
269
+ credit: credit?.accountName ?? "",
270
+ creditType: credit?.accountType ?? "asset",
271
+ creditAmount: credit == null ? "" : formatAmount(credit.amount),
272
+ description: input.description,
273
+ partner: "",
274
+ businessRate: input.businessRate,
275
+ taxCategory: "対象外",
276
+ businessCategory: "",
277
+ virtual: input.virtual,
278
+ };
279
+ });
280
+ }
281
+ export function buildClosingVirtualEntries(input) {
282
+ const carryoverEntries = input.carryovers.flatMap((record) => materializeVirtualEntryRows({
283
+ fiscalPeriodId: input.fiscalPeriodId,
284
+ yearMonth: record.date.slice(0, 7),
285
+ rows: buildVirtualOpeningCarryoverRows({
286
+ fiscalPeriodId: input.fiscalPeriodId,
287
+ records: [record],
288
+ yearMonth: record.date.slice(0, 7),
289
+ }),
290
+ }));
291
+ const fixedAssetMonths = new Set();
292
+ if (input.periodEndDate != null && input.periodEndDate.length >= 7) {
293
+ fixedAssetMonths.add(input.periodEndDate.slice(0, 7));
294
+ }
295
+ for (const asset of input.assets) {
296
+ if (asset.disposalDate != null && asset.disposalDate.length >= 7) {
297
+ fixedAssetMonths.add(asset.disposalDate.slice(0, 7));
298
+ }
299
+ }
300
+ const fixedAssetEntries = [...fixedAssetMonths].flatMap((yearMonth) => materializeVirtualEntryRows({
301
+ fiscalPeriodId: input.fiscalPeriodId,
302
+ yearMonth,
303
+ rows: buildVirtualFixedAssetRows({
304
+ fiscalPeriodId: input.fiscalPeriodId,
305
+ assets: input.assets,
306
+ periodStartDate: input.periodStartDate,
307
+ periodEndDate: input.periodEndDate,
308
+ yearMonth,
309
+ }),
310
+ }));
311
+ const assistEntries = [...carryoverEntries, ...fixedAssetEntries];
312
+ const transfer = input.periodEndDate == null
313
+ ? null
314
+ : buildBusinessRateTransferEntry({
315
+ fiscalPeriodId: input.fiscalPeriodId,
316
+ entries: [...input.entries, ...assistEntries],
317
+ date: input.periodEndDate,
318
+ });
319
+ return transfer == null ? assistEntries : [...assistEntries, transfer];
320
+ }
321
+ export function withClosingVirtualEntries(input) {
322
+ const materializedLocalIds = new Set(input.entries
323
+ .map((entry) => entry.localId)
324
+ .filter((localId) => localId != null && localId !== ""));
325
+ const realEntries = input.entries.filter((entry) => !isMaterializedVirtualEntry(entry));
326
+ const virtualEntries = buildClosingVirtualEntries({
327
+ fiscalPeriodId: input.fiscalPeriodId,
328
+ periodStartDate: input.periodStartDate,
329
+ periodEndDate: input.periodEndDate,
330
+ entries: realEntries,
331
+ assets: input.assets,
332
+ carryovers: input.carryovers,
333
+ }).filter((entry) => entry.localId == null || !materializedLocalIds.has(entry.localId));
334
+ return [...input.entries, ...virtualEntries];
335
+ }
336
+ export function buildVirtualBusinessRateTransferRows(input) {
337
+ const transfer = buildClosingVirtualEntries({
338
+ fiscalPeriodId: input.fiscalPeriodId,
339
+ periodStartDate: input.periodStartDate,
340
+ periodEndDate: input.periodEndDate,
341
+ entries: input.entries,
342
+ assets: input.assets,
343
+ carryovers: input.carryovers,
344
+ }).find((entry) => entry.localId === BUSINESS_RATE_TRANSFER_LOCAL_ID);
345
+ if (transfer == null || !transfer.date.startsWith(input.yearMonth))
346
+ return [];
347
+ return recordToPreviewRows(transfer).map((row) => ({
348
+ ...row,
349
+ recordId: BUSINESS_RATE_TRANSFER_ROW_ID,
350
+ virtual: {
351
+ id: BUSINESS_RATE_TRANSFER_ROW_ID,
352
+ kind: "business_rate_transfer",
353
+ sourceId: transfer.id,
354
+ label: "家事按分",
355
+ },
356
+ }));
357
+ }
358
+ export function materializeVirtualEntryRows(input) {
359
+ const grouped = new Map();
360
+ for (const row of input.rows) {
361
+ if (row.virtual == null || row.recordId == null)
362
+ continue;
363
+ const current = grouped.get(row.recordId) ?? [];
364
+ current.push(row);
365
+ grouped.set(row.recordId, current);
366
+ }
367
+ return Array.from(grouped.entries()).map(([recordId, rows]) => {
368
+ const sorted = [...rows].sort((left, right) => (left.lineIndex ?? 0) - (right.lineIndex ?? 0));
369
+ const first = sorted[0];
370
+ const lines = sorted.flatMap((row) => {
371
+ const out = [];
372
+ if (row.debit.trim() !== "" && parseAmount(row.debitAmount) > 0) {
373
+ out.push({
374
+ side: "debit",
375
+ accountName: row.debit,
376
+ accountType: row.debitType,
377
+ amount: row.debitAmount,
378
+ });
379
+ }
380
+ if (row.credit.trim() !== "" && parseAmount(row.creditAmount) > 0) {
381
+ out.push({
382
+ side: "credit",
383
+ accountName: row.credit,
384
+ accountType: row.creditType,
385
+ amount: row.creditAmount,
386
+ });
387
+ }
388
+ return out;
389
+ });
390
+ const debitLine = lines.find((line) => line.side === "debit") ?? null;
391
+ const creditLine = lines.find((line) => line.side === "credit") ?? null;
392
+ const date = `${input.yearMonth}-${first.date.slice(3, 5)}`;
393
+ return {
394
+ id: `materialized-${recordId}`,
395
+ fiscalPeriodId: input.fiscalPeriodId,
396
+ date,
397
+ weekday: "",
398
+ lines,
399
+ debit: debitLine?.accountName ?? "",
400
+ debitType: debitLine?.accountType ?? "asset",
401
+ debitAmount: debitLine?.amount ?? "",
402
+ credit: creditLine?.accountName ?? "",
403
+ creditType: creditLine?.accountType ?? "asset",
404
+ creditAmount: creditLine?.amount ?? "",
405
+ description: first.description,
406
+ partner: first.partner,
407
+ businessRate: first.businessRate,
408
+ taxCategory: first.taxCategory,
409
+ businessCategory: first.businessCategory,
410
+ localId: `virtual:${recordId}`,
411
+ };
412
+ });
413
+ }
414
+ //# sourceMappingURL=virtual-entries.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"virtual-entries.js","sourceRoot":"","sources":["../../src/entries/virtual-entries.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ export * from "./shared/app-error";
2
+ export * from "./shared/brand-config";
3
+ export * from "./shared/openkk-config";
4
+ export * from "./shared/user";
5
+ export * from "./shared/models";
6
+ export * from "./shared/bootstrap-data";
7
+ export * from "./shared/period-lock";
8
+ export * from "./shared/parse-utils";
9
+ export * from "./entries/entries-types";
10
+ export * from "./entries/import-export";
11
+ export * from "./entries/example-entries";
12
+ export * from "./entries/entry-record";
13
+ export * from "./entries/default-master-data";
14
+ export * from "./entries/quick-guide-data";
15
+ export * from "./entries/virtual-entries";
16
+ export * from "./assist/fixed-asset-data";
17
+ export * from "./assist/fixed-asset-depreciation";
18
+ export * from "./assist/opening-carryover";
19
+ export * from "./archive/fiscal-period-archive";
20
+ export * from "./steps/period-check";
21
+ export * from "./steps/step-derivation";
22
+ export * from "./steps/step-trend";
23
+ export * from "./steps/summary";
24
+ export * from "./steps/year-month";
25
+ export * from "./steps/next-fiscal-period";
26
+ export * from "./print/financial-statements-print";
27
+ export * from "./print/fs-data";
28
+ export * from "./print/general-ledger-print";
29
+ export * from "./print/journal-print";
30
+ export * from "./print/print-shell";
31
+ export * from "./print/examples/financial-statements-example";
32
+ export * from "./print/examples/general-ledger-example";
33
+ export * from "./print/examples/journal-example";
34
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AAErC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAE1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mCAAmC,CAAC;AAClD,cAAc,4BAA4B,CAAC;AAE3C,cAAc,iCAAiC,CAAC;AAEhD,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,4BAA4B,CAAC;AAE3C,cAAc,oCAAoC,CAAC;AACnD,cAAc,iBAAiB,CAAC;AAChC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,+CAA+C,CAAC;AAC9D,cAAc,yCAAyC,CAAC;AACxD,cAAc,kCAAkC,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,34 @@
1
+ export * from "./shared/app-error";
2
+ export * from "./shared/brand-config";
3
+ export * from "./shared/openkk-config";
4
+ export * from "./shared/user";
5
+ export * from "./shared/models";
6
+ export * from "./shared/bootstrap-data";
7
+ export * from "./shared/period-lock";
8
+ export * from "./shared/parse-utils";
9
+ export * from "./entries/entries-types";
10
+ export * from "./entries/import-export";
11
+ export * from "./entries/example-entries";
12
+ export * from "./entries/entry-record";
13
+ export * from "./entries/default-master-data";
14
+ export * from "./entries/quick-guide-data";
15
+ export * from "./entries/virtual-entries";
16
+ export * from "./assist/fixed-asset-data";
17
+ export * from "./assist/fixed-asset-depreciation";
18
+ export * from "./assist/opening-carryover";
19
+ export * from "./archive/fiscal-period-archive";
20
+ export * from "./steps/period-check";
21
+ export * from "./steps/step-derivation";
22
+ export * from "./steps/step-trend";
23
+ export * from "./steps/summary";
24
+ export * from "./steps/year-month";
25
+ export * from "./steps/next-fiscal-period";
26
+ export * from "./print/financial-statements-print";
27
+ export * from "./print/fs-data";
28
+ export * from "./print/general-ledger-print";
29
+ export * from "./print/journal-print";
30
+ export * from "./print/print-shell";
31
+ export * from "./print/examples/financial-statements-example";
32
+ export * from "./print/examples/general-ledger-example";
33
+ export * from "./print/examples/journal-example";
34
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,yBAAyB,CAAC;AACxC,cAAc,sBAAsB,CAAC;AACrC,cAAc,sBAAsB,CAAC;AAErC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAE1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mCAAmC,CAAC;AAClD,cAAc,4BAA4B,CAAC;AAE3C,cAAc,iCAAiC,CAAC;AAEhD,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,4BAA4B,CAAC;AAE3C,cAAc,oCAAoC,CAAC;AACnD,cAAc,iBAAiB,CAAC;AAChC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,+CAA+C,CAAC;AAC9D,cAAc,yCAAyC,CAAC;AACxD,cAAc,kCAAkC,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { FsBsRow } from "../fs-data";
2
+ export declare const FINANCIAL_STATEMENTS_EXAMPLE_FP_NAME = "\u30B5\u30F3\u30D7\u30EB\u671F\u9593 (2026\u5E74\u5EA6)";
3
+ export declare const FINANCIAL_STATEMENTS_EXAMPLE_AMOUNTS: Record<number, number | null>;
4
+ export declare const FINANCIAL_STATEMENTS_EXAMPLE_BS_ROWS: FsBsRow[];
5
+ //# sourceMappingURL=financial-statements-example.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"financial-statements-example.d.ts","sourceRoot":"","sources":["../../../src/print/examples/financial-statements-example.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE1C,eAAO,MAAM,oCAAoC,4DAAoB,CAAC;AAEtE,eAAO,MAAM,oCAAoC,EAAE,MAAM,CACvD,MAAM,EACN,MAAM,GAAG,IAAI,CA6Cd,CAAC;AAQF,eAAO,MAAM,oCAAoC,EAAE,OAAO,EAiMzD,CAAC"}