@rubydogjp/openkk-client-usecases 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 (53) hide show
  1. package/dist/assist/assist-state.d.ts +29 -0
  2. package/dist/assist/assist-state.d.ts.map +1 -0
  3. package/dist/assist/assist-state.js +461 -0
  4. package/dist/assist/assist-state.js.map +1 -0
  5. package/dist/entries/entries-state.d.ts +53 -0
  6. package/dist/entries/entries-state.d.ts.map +1 -0
  7. package/dist/entries/entries-state.js +359 -0
  8. package/dist/entries/entries-state.js.map +1 -0
  9. package/dist/entries/import-mapping.d.ts +32 -0
  10. package/dist/entries/import-mapping.d.ts.map +1 -0
  11. package/dist/entries/import-mapping.js +87 -0
  12. package/dist/entries/import-mapping.js.map +1 -0
  13. package/dist/index.d.ts +12 -0
  14. package/dist/index.d.ts.map +1 -0
  15. package/dist/index.js +12 -0
  16. package/dist/index.js.map +1 -0
  17. package/dist/print/print-state.d.ts +2 -0
  18. package/dist/print/print-state.d.ts.map +1 -0
  19. package/dist/print/print-state.js +8 -0
  20. package/dist/print/print-state.js.map +1 -0
  21. package/dist/shared/backend-api-context.d.ts +8 -0
  22. package/dist/shared/backend-api-context.d.ts.map +1 -0
  23. package/dist/shared/backend-api-context.js +21 -0
  24. package/dist/shared/backend-api-context.js.map +1 -0
  25. package/dist/shared/brand-config-context.d.ts +8 -0
  26. package/dist/shared/brand-config-context.d.ts.map +1 -0
  27. package/dist/shared/brand-config-context.js +11 -0
  28. package/dist/shared/brand-config-context.js.map +1 -0
  29. package/dist/shared/callouts-context.d.ts +9 -0
  30. package/dist/shared/callouts-context.d.ts.map +1 -0
  31. package/dist/shared/callouts-context.js +12 -0
  32. package/dist/shared/callouts-context.js.map +1 -0
  33. package/dist/shared/closing-state.d.ts +7 -0
  34. package/dist/shared/closing-state.d.ts.map +1 -0
  35. package/dist/shared/closing-state.js +20 -0
  36. package/dist/shared/closing-state.js.map +1 -0
  37. package/dist/shared/maintenance-state.d.ts +11 -0
  38. package/dist/shared/maintenance-state.d.ts.map +1 -0
  39. package/dist/shared/maintenance-state.js +76 -0
  40. package/dist/shared/maintenance-state.js.map +1 -0
  41. package/dist/shared/openkk-app-state.d.ts +63 -0
  42. package/dist/shared/openkk-app-state.d.ts.map +1 -0
  43. package/dist/shared/openkk-app-state.js +314 -0
  44. package/dist/shared/openkk-app-state.js.map +1 -0
  45. package/dist/shared/openkk-config-context.d.ts +8 -0
  46. package/dist/shared/openkk-config-context.d.ts.map +1 -0
  47. package/dist/shared/openkk-config-context.js +21 -0
  48. package/dist/shared/openkk-config-context.js.map +1 -0
  49. package/dist/shared/print-adapter-context.d.ts +8 -0
  50. package/dist/shared/print-adapter-context.d.ts.map +1 -0
  51. package/dist/shared/print-adapter-context.js +21 -0
  52. package/dist/shared/print-adapter-context.js.map +1 -0
  53. package/package.json +46 -0
@@ -0,0 +1,29 @@
1
+ import { type ReactNode } from "react";
2
+ import type { FixedAssetPatchInput } from "@rubydogjp/openkk-client-ports";
3
+ import type { FixedAssetDraft, FixedAssetPreviewItem } from "@rubydogjp/openkk-client-domain";
4
+ import type { OpeningCarryoverRecord, OpeningCarryoverDraft } from "@rubydogjp/openkk-client-domain";
5
+ type AssistState = {
6
+ listFixedAssets: () => FixedAssetPreviewItem[];
7
+ getFixedAsset: (assetId: string) => FixedAssetPreviewItem | null;
8
+ addFixedAsset: (draft: FixedAssetDraft) => Promise<string | null>;
9
+ updateFixedAsset: (assetId: string, draft: FixedAssetDraft) => Promise<boolean>;
10
+ deleteFixedAsset: (assetId: string) => Promise<boolean>;
11
+ listOpeningCarryovers: (fiscalPeriodId: string) => OpeningCarryoverRecord[];
12
+ getOpeningCarryover: (carryoverId: string) => OpeningCarryoverRecord | null;
13
+ addOpeningCarryover: (fiscalPeriodId: string) => Promise<string | null>;
14
+ updateOpeningCarryover: (carryoverId: string, draft: OpeningCarryoverDraft) => Promise<boolean>;
15
+ deleteOpeningCarryover: (carryoverId: string) => Promise<boolean>;
16
+ loadError: unknown;
17
+ reload: () => void;
18
+ };
19
+ export declare function OpenkkAssistProvider(props: {
20
+ children: ReactNode;
21
+ }): import("react/jsx-runtime").JSX.Element;
22
+ export declare function replaceLoadedFixedAssets(fiscalPeriodId: string | null, nextAssets: FixedAssetPreviewItem[]): FixedAssetPreviewItem[];
23
+ export declare function nextOpeningCarryoverId(fiscalPeriodId: string, journals: ReadonlyArray<{
24
+ id: string;
25
+ }>): string;
26
+ export declare function fixedAssetDraftToPatch(draft: FixedAssetDraft, bookAccountId: string): FixedAssetPatchInput;
27
+ export declare function useOpenkkAssist(): AssistState;
28
+ export {};
29
+ //# sourceMappingURL=assist-state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assist-state.d.ts","sourceRoot":"","sources":["../../src/assist/assist-state.tsx"],"names":[],"mappings":"AAEA,OAAO,EAML,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAYf,OAAO,KAAK,EAEV,oBAAoB,EACrB,MAAM,gCAAgC,CAAC;AAExC,OAAO,KAAK,EACV,eAAe,EACf,qBAAqB,EACtB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,KAAK,EACV,sBAAsB,EACtB,qBAAqB,EACtB,MAAM,iCAAiC,CAAC;AAEzC,KAAK,WAAW,GAAG;IACjB,eAAe,EAAE,MAAM,qBAAqB,EAAE,CAAC;IAC/C,aAAa,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,qBAAqB,GAAG,IAAI,CAAC;IACjE,aAAa,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAClE,gBAAgB,EAAE,CAChB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,eAAe,KACnB,OAAO,CAAC,OAAO,CAAC,CAAC;IACtB,gBAAgB,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACxD,qBAAqB,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,sBAAsB,EAAE,CAAC;IAC5E,mBAAmB,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,sBAAsB,GAAG,IAAI,CAAC;IAC5E,mBAAmB,EAAE,CAAC,cAAc,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACxE,sBAAsB,EAAE,CACtB,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,qBAAqB,KACzB,OAAO,CAAC,OAAO,CAAC,CAAC;IACtB,sBAAsB,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAElE,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,MAAM,IAAI,CAAC;CACpB,CAAC;AAIF,wBAAgB,oBAAoB,CAAC,KAAK,EAAE;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,2CAyYlE;AAED,wBAAgB,wBAAwB,CACtC,cAAc,EAAE,MAAM,GAAG,IAAI,EAC7B,UAAU,EAAE,qBAAqB,EAAE,GAClC,qBAAqB,EAAE,CAGzB;AAED,wBAAgB,sBAAsB,CACpC,cAAc,EAAE,MAAM,EACtB,QAAQ,EAAE,aAAa,CAAC;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC,GACtC,MAAM,CAQR;AA2HD,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,eAAe,EACtB,aAAa,EAAE,MAAM,GACpB,oBAAoB,CAetB;AAUD,wBAAgB,eAAe,gBAY9B"}
@@ -0,0 +1,461 @@
1
+ "use client";
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { createContext, useContext, useEffect, useMemo, useState, } from "react";
4
+ import { useOpenkkAppState } from "../shared/openkk-app-state";
5
+ import { useBackendApi } from "../shared/backend-api-context";
6
+ import { useOpenkkConfig } from "../shared/openkk-config-context";
7
+ import { parseAmount, parseBusinessRate, parseIsoLocalDate, AppError, computeStraightLineDepreciation, } from "@rubydogjp/openkk-client-domain";
8
+ const AssistContext = createContext(null);
9
+ export function OpenkkAssistProvider(props) {
10
+ const backendApi = useBackendApi();
11
+ const appState = useOpenkkAppState();
12
+ const config = useOpenkkConfig();
13
+ const [fixedAssets, setFixedAssets] = useState([]);
14
+ const [bookAccountNameById, setBookAccountNameById] = useState({});
15
+ const [bookAccountIdByName, setBookAccountIdByName] = useState({});
16
+ const [bookAccountTypeById, setBookAccountTypeById] = useState({});
17
+ const [loadError, setLoadError] = useState(null);
18
+ const [reloadNonce, setReloadNonce] = useState(0);
19
+ useEffect(() => {
20
+ let cancelled = false;
21
+ void (async () => {
22
+ try {
23
+ const accounts = await backendApi.masterData.getBookAccounts();
24
+ if (cancelled)
25
+ return;
26
+ setBookAccountNameById(Object.fromEntries(accounts.map((account) => [account.id, account.name])));
27
+ setBookAccountIdByName(Object.fromEntries(accounts.map((account) => [account.name, account.id])));
28
+ setBookAccountTypeById(Object.fromEntries(accounts.map((account) => [account.id, account.accountType])));
29
+ setLoadError(null);
30
+ }
31
+ catch (error) {
32
+ if (cancelled)
33
+ return;
34
+ console.error("[openkk] assist master data load failed:", error);
35
+ setLoadError(error);
36
+ }
37
+ })();
38
+ return () => {
39
+ cancelled = true;
40
+ };
41
+ }, [reloadNonce]);
42
+ useEffect(() => {
43
+ const fiscalPeriodId = appState.currentFiscalPeriodId;
44
+ if (fiscalPeriodId == null || fiscalPeriodId.length === 0) {
45
+ setFixedAssets([]);
46
+ return;
47
+ }
48
+ let cancelled = false;
49
+ void (async () => {
50
+ try {
51
+ const remote = await backendApi.fixedAssets.getAll(fiscalPeriodId);
52
+ if (cancelled)
53
+ return;
54
+ setFixedAssets(replaceLoadedFixedAssets(fiscalPeriodId, remote.map((asset) => mapFixedAssetToPreview(asset, bookAccountNameById[asset.bookAccountId], config.today))));
55
+ setLoadError(null);
56
+ }
57
+ catch (error) {
58
+ if (cancelled)
59
+ return;
60
+ console.error("[openkk] fixed assets load failed:", error);
61
+ setLoadError(error);
62
+ }
63
+ })();
64
+ return () => {
65
+ cancelled = true;
66
+ };
67
+ }, [
68
+ appState.currentFiscalPeriodId,
69
+ bookAccountNameById,
70
+ config.today,
71
+ reloadNonce,
72
+ ]);
73
+ const value = useMemo(() => {
74
+ return {
75
+ listFixedAssets() {
76
+ return fixedAssets;
77
+ },
78
+ getFixedAsset(assetId) {
79
+ return fixedAssets.find((asset) => asset.id === assetId) ?? null;
80
+ },
81
+ async addFixedAsset(draft) {
82
+ const fiscalPeriodId = appState.currentFiscalPeriodId;
83
+ if (fiscalPeriodId == null || fiscalPeriodId.length === 0) {
84
+ return null;
85
+ }
86
+ const accountId = bookAccountIdByName[draft.account] ?? null;
87
+ if (accountId == null || accountId.length === 0) {
88
+ throw new AppError({
89
+ messageForDeveloper: "assist.addFixedAsset: accountId missing",
90
+ messageForUser: "勘定科目が解決できないため保存できませんでした",
91
+ originalMessage: null,
92
+ statusCode: null,
93
+ });
94
+ }
95
+ const created = await backendApi.fixedAssets.create(fiscalPeriodId, {
96
+ name: draft.name,
97
+ acquisitionDate: draft.acquisitionDate,
98
+ acquisitionCost: parseAmount(draft.acquisitionCost),
99
+ usefulLife: Math.max(1, Math.round(draft.usefulLife) || 1),
100
+ depreciationMethod: "straight_line",
101
+ businessRate: Math.max(0, Math.min(100, draft.businessRatePercent)) / 100,
102
+ bookAccountId: accountId,
103
+ });
104
+ setFixedAssets((current) => [
105
+ ...current,
106
+ mapFixedAssetToPreview(created, bookAccountNameById[created.bookAccountId], config.today),
107
+ ]);
108
+ return created.id;
109
+ },
110
+ async updateFixedAsset(assetId, draft) {
111
+ const current = fixedAssets.find((asset) => asset.id === assetId) ?? null;
112
+ const fiscalPeriodId = current?.fiscalPeriodId ?? appState.currentFiscalPeriodId ?? "";
113
+ if (fiscalPeriodId.length === 0)
114
+ return false;
115
+ // ユーザーが科目名を変更した場合は draft 側を優先して解決する。
116
+ const accountId = bookAccountIdByName[draft.account] ?? current?.accountId ?? null;
117
+ if (accountId == null || accountId.length === 0) {
118
+ throw new AppError({
119
+ messageForDeveloper: "assist.updateFixedAsset: accountId missing",
120
+ messageForUser: "勘定科目が解決できないため保存できませんでした",
121
+ originalMessage: null,
122
+ statusCode: null,
123
+ });
124
+ }
125
+ // 簿価・進捗・残期間は計算で導出するため保存しない。保存するのは
126
+ // 償却計算の元になる「真実」の値(取得価額・取得日・耐用年数・事業割合)のみ。
127
+ const patched = await backendApi.fixedAssets.patch(fiscalPeriodId, assetId, fixedAssetDraftToPatch(draft, accountId));
128
+ setFixedAssets((currentList) => currentList.map((asset) => asset.id === assetId
129
+ ? mapFixedAssetToPreview(patched, bookAccountNameById[patched.bookAccountId], config.today)
130
+ : asset));
131
+ return true;
132
+ },
133
+ listOpeningCarryovers(fiscalPeriodId) {
134
+ const period = appState.fiscalPeriods.find((p) => p.id === fiscalPeriodId);
135
+ const journals = period?.opening?.openingJournals ?? [];
136
+ return journals
137
+ .map((journal) => mapOpeningJournalToRecord(journal, fiscalPeriodId, bookAccountNameById, bookAccountTypeById))
138
+ .sort((left, right) => {
139
+ const byDate = left.date.localeCompare(right.date);
140
+ if (byDate !== 0)
141
+ return byDate;
142
+ return left.id.localeCompare(right.id);
143
+ });
144
+ },
145
+ getOpeningCarryover(carryoverId) {
146
+ const fiscalPeriodId = appState.currentFiscalPeriodId;
147
+ if (fiscalPeriodId == null || fiscalPeriodId.length === 0)
148
+ return null;
149
+ const period = appState.fiscalPeriods.find((p) => p.id === fiscalPeriodId);
150
+ const journals = period?.opening?.openingJournals ?? [];
151
+ const journal = journals.find((item) => item.id === carryoverId);
152
+ if (journal == null)
153
+ return null;
154
+ return mapOpeningJournalToRecord(journal, fiscalPeriodId, bookAccountNameById, bookAccountTypeById);
155
+ },
156
+ async addOpeningCarryover(fiscalPeriodId) {
157
+ const period = appState.fiscalPeriods.find((p) => p.id === fiscalPeriodId);
158
+ const opening = period?.opening;
159
+ if (period == null || opening == null)
160
+ return null;
161
+ const debitAccountId = bookAccountIdByName["売掛金"] ??
162
+ Object.values(bookAccountIdByName)[0] ??
163
+ "";
164
+ const creditAccountId = bookAccountIdByName["売上"] ??
165
+ Object.values(bookAccountIdByName)[0] ??
166
+ "";
167
+ if (debitAccountId === "" || creditAccountId === "") {
168
+ throw new AppError({
169
+ messageForDeveloper: "assist.addOpeningCarryover: account resolution failed",
170
+ messageForUser: "勘定科目が取得できないため再振替仕訳を作成できませんでした",
171
+ originalMessage: null,
172
+ statusCode: null,
173
+ });
174
+ }
175
+ const nextId = nextOpeningCarryoverId(fiscalPeriodId, opening.openingJournals ?? []);
176
+ const newJournal = {
177
+ id: nextId,
178
+ date: period.startDate,
179
+ description: "期首再振替",
180
+ businessRate: 1,
181
+ lines: [
182
+ {
183
+ id: `${nextId}-d`,
184
+ side: "debit",
185
+ bookAccountId: debitAccountId,
186
+ amount: 0,
187
+ partnerName: "",
188
+ taxCategoryId: "",
189
+ businessCategoryId: "",
190
+ },
191
+ {
192
+ id: `${nextId}-c`,
193
+ side: "credit",
194
+ bookAccountId: creditAccountId,
195
+ amount: 0,
196
+ partnerName: "",
197
+ taxCategoryId: "",
198
+ businessCategoryId: "",
199
+ },
200
+ ],
201
+ };
202
+ const updatedJournals = [
203
+ ...(opening.openingJournals ?? []),
204
+ newJournal,
205
+ ];
206
+ await appState.updateFiscalPeriod(fiscalPeriodId, {
207
+ opening: {
208
+ ...opening,
209
+ openingJournals: updatedJournals,
210
+ },
211
+ });
212
+ return nextId;
213
+ },
214
+ async updateOpeningCarryover(carryoverId, draft) {
215
+ const fiscalPeriodId = appState.currentFiscalPeriodId;
216
+ if (fiscalPeriodId == null || fiscalPeriodId.length === 0)
217
+ return false;
218
+ const period = appState.fiscalPeriods.find((p) => p.id === fiscalPeriodId);
219
+ const opening = period?.opening;
220
+ if (period == null || opening == null)
221
+ return false;
222
+ const debitAccountId = resolveBookAccountIdByName(draft.debit, bookAccountIdByName) ?? "";
223
+ const creditAccountId = resolveBookAccountIdByName(draft.credit, bookAccountIdByName) ?? "";
224
+ if (debitAccountId === "" || creditAccountId === "") {
225
+ throw new AppError({
226
+ messageForDeveloper: "assist.updateOpeningCarryover: account resolution failed",
227
+ messageForUser: "勘定科目が解決できないため保存できませんでした",
228
+ originalMessage: null,
229
+ statusCode: null,
230
+ });
231
+ }
232
+ const journals = opening.openingJournals ?? [];
233
+ let updated = false;
234
+ const nextJournals = journals.map((journal) => {
235
+ if (journal.id !== carryoverId)
236
+ return journal;
237
+ updated = true;
238
+ return {
239
+ ...journal,
240
+ date: draft.date,
241
+ description: draft.description,
242
+ businessRate: parseBusinessRate(draft.businessRate),
243
+ lines: [
244
+ {
245
+ id: journal.lines.find((line) => line.side === "debit")?.id ??
246
+ `${journal.id}-d`,
247
+ side: "debit",
248
+ bookAccountId: debitAccountId,
249
+ amount: parseAmount(draft.debitAmount),
250
+ partnerName: draft.partner,
251
+ taxCategoryId: draft.taxCategory,
252
+ businessCategoryId: draft.businessCategory,
253
+ },
254
+ {
255
+ id: journal.lines.find((line) => line.side === "credit")?.id ??
256
+ `${journal.id}-c`,
257
+ side: "credit",
258
+ bookAccountId: creditAccountId,
259
+ amount: parseAmount(draft.creditAmount),
260
+ partnerName: draft.partner,
261
+ taxCategoryId: draft.taxCategory,
262
+ businessCategoryId: draft.businessCategory,
263
+ },
264
+ ],
265
+ };
266
+ });
267
+ if (!updated)
268
+ return false;
269
+ await appState.updateFiscalPeriod(fiscalPeriodId, {
270
+ opening: {
271
+ ...opening,
272
+ openingJournals: nextJournals,
273
+ },
274
+ });
275
+ return true;
276
+ },
277
+ async deleteFixedAsset(assetId) {
278
+ const current = fixedAssets.find((asset) => asset.id === assetId) ?? null;
279
+ const fiscalPeriodId = current?.fiscalPeriodId ?? appState.currentFiscalPeriodId ?? "";
280
+ if (fiscalPeriodId.length === 0)
281
+ return false;
282
+ await backendApi.fixedAssets.remove(fiscalPeriodId, assetId);
283
+ setFixedAssets((currentList) => currentList.filter((asset) => asset.id !== assetId));
284
+ return true;
285
+ },
286
+ async deleteOpeningCarryover(carryoverId) {
287
+ const fiscalPeriodId = appState.currentFiscalPeriodId;
288
+ if (fiscalPeriodId == null || fiscalPeriodId.length === 0)
289
+ return false;
290
+ const period = appState.fiscalPeriods.find((p) => p.id === fiscalPeriodId);
291
+ const opening = period?.opening;
292
+ if (period == null || opening == null)
293
+ return false;
294
+ const journals = opening.openingJournals ?? [];
295
+ const nextJournals = journals.filter((journal) => journal.id !== carryoverId);
296
+ if (nextJournals.length === journals.length)
297
+ return false;
298
+ await appState.updateFiscalPeriod(fiscalPeriodId, {
299
+ opening: {
300
+ ...opening,
301
+ openingJournals: nextJournals,
302
+ },
303
+ });
304
+ return true;
305
+ },
306
+ loadError,
307
+ reload() {
308
+ setReloadNonce((nonce) => nonce + 1);
309
+ },
310
+ };
311
+ }, [
312
+ appState.currentFiscalPeriodId,
313
+ appState.fiscalPeriods,
314
+ bookAccountIdByName,
315
+ bookAccountNameById,
316
+ bookAccountTypeById,
317
+ config.today,
318
+ fixedAssets,
319
+ loadError,
320
+ ]);
321
+ return (_jsx(AssistContext.Provider, { value: value, children: props.children }));
322
+ }
323
+ export function replaceLoadedFixedAssets(fiscalPeriodId, nextAssets) {
324
+ if (fiscalPeriodId == null || fiscalPeriodId.length === 0)
325
+ return [];
326
+ return nextAssets;
327
+ }
328
+ export function nextOpeningCarryoverId(fiscalPeriodId, journals) {
329
+ const prefix = `oc-${fiscalPeriodId}-`;
330
+ const maxSuffix = journals.reduce((max, journal) => {
331
+ if (!journal.id.startsWith(prefix))
332
+ return max;
333
+ const suffix = Number(journal.id.slice(prefix.length));
334
+ return Number.isInteger(suffix) && suffix > max ? suffix : max;
335
+ }, 0);
336
+ return `${prefix}${maxSuffix + 1}`;
337
+ }
338
+ function mapOpeningJournalToRecord(journal, fiscalPeriodId, accountNameById, accountTypeById) {
339
+ const debit = journal.lines.find((line) => line.side === "debit");
340
+ const credit = journal.lines.find((line) => line.side === "credit");
341
+ return {
342
+ id: journal.id,
343
+ fiscalPeriodId,
344
+ date: journal.date,
345
+ description: journal.description,
346
+ debit: accountNameById[debit?.bookAccountId ?? ""] ?? debit?.bookAccountId ?? "",
347
+ debitType: accountTypeById[debit?.bookAccountId ?? ""] ?? "asset",
348
+ debitAmount: formatAmount(debit?.amount ?? 0),
349
+ credit: accountNameById[credit?.bookAccountId ?? ""] ??
350
+ credit?.bookAccountId ??
351
+ "",
352
+ creditType: accountTypeById[credit?.bookAccountId ?? ""] ?? "revenue",
353
+ creditAmount: formatAmount(credit?.amount ?? 0),
354
+ partner: debit?.partnerName ?? credit?.partnerName ?? "",
355
+ taxCategory: debit?.taxCategoryId ?? credit?.taxCategoryId ?? "対象外",
356
+ businessCategory: debit?.businessCategoryId ?? credit?.businessCategoryId ?? "対象外",
357
+ businessRate: String(Math.round((journal.businessRate ?? 1) * 100)),
358
+ debitBookAccountId: debit?.bookAccountId,
359
+ creditBookAccountId: credit?.bookAccountId,
360
+ };
361
+ }
362
+ function resolveBookAccountIdByName(name, accountIdByName) {
363
+ const id = accountIdByName[name];
364
+ return id == null || id.length === 0 ? null : id;
365
+ }
366
+ function formatAmount(value) {
367
+ return new Intl.NumberFormat("ja-JP").format(Math.abs(value));
368
+ }
369
+ function mapFixedAssetToPreview(asset, accountName, today) {
370
+ // 売却・廃棄・除却済みは処分日(無ければ今日)で償却を打ち切る。
371
+ const isClosed = asset.status !== "active";
372
+ const asOf = isClosed && asset.disposalDate
373
+ ? (parseIsoLocalDate(asset.disposalDate) ?? today)
374
+ : today;
375
+ const depreciation = computeStraightLineDepreciation({
376
+ acquisitionDate: asset.acquisitionDate,
377
+ acquisitionCost: asset.acquisitionCost,
378
+ usefulLife: asset.usefulLife,
379
+ asOf,
380
+ });
381
+ return {
382
+ id: asset.id,
383
+ fiscalPeriodId: asset.fiscalPeriodId,
384
+ name: asset.name,
385
+ account: accountName ?? asset.bookAccountId,
386
+ accountId: asset.bookAccountId,
387
+ period: depreciation.periodLabel,
388
+ remaining: depreciation.remainingLabel,
389
+ progress: depreciation.progress,
390
+ current: formatYen(depreciation.currentBookValue),
391
+ purchase: formatYen(asset.acquisitionCost),
392
+ status: mapFixedAssetStatusLabel(asset.status),
393
+ depreciationAmount: formatYen(depreciation.annualDepreciation),
394
+ acquisitionDate: asset.acquisitionDate,
395
+ acquisitionCost: asset.acquisitionCost,
396
+ usefulLife: asset.usefulLife,
397
+ businessRate: asset.businessRate,
398
+ disposalDate: asset.disposalDate || undefined,
399
+ disposalPrice: asset.disposalPrice
400
+ ? formatYen(asset.disposalPrice)
401
+ : undefined,
402
+ };
403
+ }
404
+ function formatYen(value) {
405
+ return new Intl.NumberFormat("ja-JP").format(value);
406
+ }
407
+ function mapFixedAssetStatusLabel(status) {
408
+ if (status === "active")
409
+ return "償却中";
410
+ if (status === "sold")
411
+ return "売却済";
412
+ if (status === "disposed")
413
+ return "廃棄済";
414
+ if (status === "retired")
415
+ return "完了";
416
+ return status;
417
+ }
418
+ function mapFixedAssetStatusApi(statusLabel) {
419
+ if (statusLabel === "償却中")
420
+ return "active";
421
+ if (statusLabel === "売却済")
422
+ return "sold";
423
+ if (statusLabel === "廃棄済")
424
+ return "disposed";
425
+ if (statusLabel === "完了")
426
+ return "retired";
427
+ return "active";
428
+ }
429
+ export function fixedAssetDraftToPatch(draft, bookAccountId) {
430
+ return {
431
+ name: draft.name,
432
+ acquisitionDate: draft.acquisitionDate,
433
+ acquisitionCost: parseAmount(draft.acquisitionCost),
434
+ usefulLife: Math.max(1, Math.round(draft.usefulLife) || 1),
435
+ businessRate: Math.max(0, Math.min(100, draft.businessRatePercent)) / 100,
436
+ status: mapFixedAssetStatusApi(draft.status),
437
+ disposalDate: isFixedAssetClosedStatus(draft.status)
438
+ ? (draft.disposalDate ?? "")
439
+ : "",
440
+ disposalPrice: draft.status === "売却済" ? parseAmount(draft.disposalPrice ?? "0") : 0,
441
+ bookAccountId,
442
+ };
443
+ }
444
+ function isFixedAssetClosedStatus(statusLabel) {
445
+ return (statusLabel === "売却済" ||
446
+ statusLabel === "廃棄済" ||
447
+ statusLabel === "完了");
448
+ }
449
+ export function useOpenkkAssist() {
450
+ const value = useContext(AssistContext);
451
+ if (value == null) {
452
+ throw new AppError({
453
+ messageForDeveloper: "useOpenkkAssist must be used within OpenkkAssistProvider",
454
+ messageForUser: "補助データを読み込めませんでした",
455
+ originalMessage: null,
456
+ statusCode: null,
457
+ });
458
+ }
459
+ return value;
460
+ }
461
+ //# sourceMappingURL=assist-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assist-state.js","sourceRoot":"","sources":["../../src/assist/assist-state.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,53 @@
1
+ import { type ReactNode } from "react";
2
+ export { entryRecordToImportPayload } from "./import-mapping";
3
+ import { type EntryRecord, type EntryLine } from "@rubydogjp/openkk-client-domain";
4
+ import type { EntryAccountVisualType, EntryPreviewRow } from "@rubydogjp/openkk-client-domain";
5
+ export type EntryDraft = {
6
+ date: string;
7
+ description: string;
8
+ partner: string;
9
+ businessRate: string;
10
+ taxCategory: string;
11
+ businessCategory: string;
12
+ lines: EntryLine[];
13
+ };
14
+ export type EntryMasterAccountOption = {
15
+ id: string;
16
+ name: string;
17
+ accountType: EntryAccountVisualType;
18
+ };
19
+ export type EntryMasterCategoryOption = {
20
+ id: string;
21
+ name: string;
22
+ };
23
+ export type EntrySuggestions = {
24
+ partner: string[];
25
+ taxCategory: string[];
26
+ businessCategory: string[];
27
+ };
28
+ type EntriesState = {
29
+ listFiscalPeriodEntries: (fiscalPeriodId: string) => EntryRecord[];
30
+ listMonthEntries: (fiscalPeriodId: string, yearMonth: string) => EntryRecord[];
31
+ listMonthRows: (fiscalPeriodId: string, yearMonth: string) => EntryPreviewRow[];
32
+ getEntry: (entryId: string) => EntryRecord | null;
33
+ createEntryFromDraft: (fiscalPeriodId: string, draft: EntryDraft) => Promise<string | null>;
34
+ saveEntry: (entryId: string, draft: EntryDraft) => Promise<boolean>;
35
+ deleteEntry: (entryId: string) => Promise<boolean>;
36
+ mergeFiscalPeriodEntries: (fiscalPeriodId: string, importedEntries: EntryRecord[]) => Promise<{
37
+ imported: number;
38
+ skipped: number;
39
+ }>;
40
+ accountOptions: EntryMasterAccountOption[];
41
+ taxCategoryOptions: EntryMasterCategoryOption[];
42
+ businessCategoryOptions: EntryMasterCategoryOption[];
43
+ listSuggestions: (fiscalPeriodId: string) => EntrySuggestions;
44
+ loadError: unknown;
45
+ reload: () => void;
46
+ };
47
+ export declare function OpenkkEntriesProvider(props: {
48
+ children: ReactNode;
49
+ }): import("react/jsx-runtime").JSX.Element;
50
+ export declare function replaceFiscalPeriodEntryRecords(current: EntryRecord[], fiscalPeriodId: string | null, nextRecords: EntryRecord[]): EntryRecord[];
51
+ export declare function removeEntryRecord(current: EntryRecord[], entryId: string): EntryRecord[];
52
+ export declare function useOpenkkEntries(): EntriesState;
53
+ //# sourceMappingURL=entries-state.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entries-state.d.ts","sourceRoot":"","sources":["../../src/entries/entries-state.tsx"],"names":[],"mappings":"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"}