@rubydogjp/openkk-sqlite-adapter 26.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/dist/adapter.d.ts +4 -0
- package/dist/adapter.d.ts.map +1 -0
- package/dist/adapter.js +21 -0
- package/dist/adapter.js.map +1 -0
- package/dist/closing-store.d.ts +5 -0
- package/dist/closing-store.d.ts.map +1 -0
- package/dist/closing-store.js +113 -0
- package/dist/closing-store.js.map +1 -0
- package/dist/entry-store.d.ts +6 -0
- package/dist/entry-store.d.ts.map +1 -0
- package/dist/entry-store.js +266 -0
- package/dist/entry-store.js.map +1 -0
- package/dist/fiscal-period-guard.d.ts +6 -0
- package/dist/fiscal-period-guard.d.ts.map +1 -0
- package/dist/fiscal-period-guard.js +34 -0
- package/dist/fiscal-period-guard.js.map +1 -0
- package/dist/fiscal-period-record.d.ts +5 -0
- package/dist/fiscal-period-record.d.ts.map +1 -0
- package/dist/fiscal-period-record.js +32 -0
- package/dist/fiscal-period-record.js.map +1 -0
- package/dist/fiscal-period-store.d.ts +4 -0
- package/dist/fiscal-period-store.d.ts.map +1 -0
- package/dist/fiscal-period-store.js +364 -0
- package/dist/fiscal-period-store.js.map +1 -0
- package/dist/fiscal-period-transition.d.ts +4 -0
- package/dist/fiscal-period-transition.d.ts.map +1 -0
- package/dist/fiscal-period-transition.js +30 -0
- package/dist/fiscal-period-transition.js.map +1 -0
- package/dist/fixed-asset-store.d.ts +4 -0
- package/dist/fixed-asset-store.d.ts.map +1 -0
- package/dist/fixed-asset-store.js +142 -0
- package/dist/fixed-asset-store.js.map +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -0
- package/dist/master-data-store.d.ts +3 -0
- package/dist/master-data-store.d.ts.map +1 -0
- package/dist/master-data-store.js +39 -0
- package/dist/master-data-store.js.map +1 -0
- package/dist/migrate.d.ts +6 -0
- package/dist/migrate.d.ts.map +1 -0
- package/dist/migrate.js +53 -0
- package/dist/migrate.js.map +1 -0
- package/dist/opening-store.d.ts +7 -0
- package/dist/opening-store.d.ts.map +1 -0
- package/dist/opening-store.js +150 -0
- package/dist/opening-store.js.map +1 -0
- package/dist/persistence-codec.d.ts +9 -0
- package/dist/persistence-codec.d.ts.map +1 -0
- package/dist/persistence-codec.js +210 -0
- package/dist/persistence-codec.js.map +1 -0
- package/dist/record-validation.d.ts +11 -0
- package/dist/record-validation.d.ts.map +1 -0
- package/dist/record-validation.js +75 -0
- package/dist/record-validation.js.map +1 -0
- package/dist/runtime.d.ts +3 -0
- package/dist/runtime.d.ts.map +1 -0
- package/dist/runtime.js +7 -0
- package/dist/runtime.js.map +1 -0
- package/dist/schema.d.ts +7 -0
- package/dist/schema.d.ts.map +1 -0
- package/dist/schema.js +688 -0
- package/dist/schema.js.map +1 -0
- package/dist/seed-store.d.ts +4 -0
- package/dist/seed-store.d.ts.map +1 -0
- package/dist/seed-store.js +174 -0
- package/dist/seed-store.js.map +1 -0
- package/dist/sql-db.d.ts +9 -0
- package/dist/sql-db.d.ts.map +1 -0
- package/dist/sql-db.js +2 -0
- package/dist/sql-db.js.map +1 -0
- package/dist/table-types.d.ts +27 -0
- package/dist/table-types.d.ts.map +1 -0
- package/dist/table-types.js +2 -0
- package/dist/table-types.js.map +1 -0
- package/dist/transaction.d.ts +4 -0
- package/dist/transaction.d.ts.map +1 -0
- package/dist/transaction.js +21 -0
- package/dist/transaction.js.map +1 -0
- package/package.json +42 -0
|
@@ -0,0 +1,364 @@
|
|
|
1
|
+
import { applyPatch, assertEntryMatchesRules, assertFiscalPeriodCanCarryOver, assertFixedAssetMatchesRules, buildCarryoverOpeningBalances, buildCarryoverOpeningJournals, FISCAL_PERIOD_PATCH_KEYS, serverConflictError, serverNotFoundError, } from "@rubydogjp/openkk-server-domain";
|
|
2
|
+
import { createEntriesDb, insertEntryLines } from "./entry-store.js";
|
|
3
|
+
import { createFixedAssetsDb } from "./fixed-asset-store.js";
|
|
4
|
+
import { findFiscalPeriodRecord, requireFiscalPeriodRecord, } from "./fiscal-period-record.js";
|
|
5
|
+
import { transitionFiscalPeriod } from "./fiscal-period-transition.js";
|
|
6
|
+
import { emptyOpening, loadOpeningsByUser, replaceOpening, } from "./opening-store.js";
|
|
7
|
+
import { msToIso, parseFiscalPeriodDbData, serializeFiscalPeriodDbData, serializeFixedAssetDbData, } from "./persistence-codec.js";
|
|
8
|
+
import { assertDbArchiveImportSizeLimits, assertDbFiscalPeriodPatchAllowed, assertDbImportedClosingState, assertDbOpeningForPeriod, } from "./record-validation.js";
|
|
9
|
+
import { newId, nowMs } from "./runtime.js";
|
|
10
|
+
import { runInTransaction } from "./transaction.js";
|
|
11
|
+
export function createFiscalPeriodsDb(db) {
|
|
12
|
+
const periods = {
|
|
13
|
+
async getAll(userId) {
|
|
14
|
+
const rows = (await db.exec({
|
|
15
|
+
sql: `SELECT data, created_at, updated_at FROM fiscal_periods WHERE user_id = ? ORDER BY created_at ASC, id ASC`,
|
|
16
|
+
bind: [userId],
|
|
17
|
+
returnValue: "resultRows",
|
|
18
|
+
rowMode: "array",
|
|
19
|
+
}));
|
|
20
|
+
const openings = await loadOpeningsByUser(db, userId);
|
|
21
|
+
return rows.map(([data, createdAt, updatedAt]) => {
|
|
22
|
+
const record = parseFiscalPeriodDbData(data);
|
|
23
|
+
const opening = openings.get(record.id) ?? emptyOpening();
|
|
24
|
+
const result = {
|
|
25
|
+
...record,
|
|
26
|
+
userId,
|
|
27
|
+
createdAt: msToIso(createdAt),
|
|
28
|
+
updatedAt: msToIso(updatedAt),
|
|
29
|
+
opening,
|
|
30
|
+
};
|
|
31
|
+
assertDbOpeningForPeriod(opening, result);
|
|
32
|
+
return result;
|
|
33
|
+
});
|
|
34
|
+
},
|
|
35
|
+
async getById(id) {
|
|
36
|
+
return findFiscalPeriodRecord(db, id);
|
|
37
|
+
},
|
|
38
|
+
async create(userId, input) {
|
|
39
|
+
const now = nowMs();
|
|
40
|
+
const record = newFiscalPeriodRecord(userId, input, now);
|
|
41
|
+
await runInTransaction(db, () => insertFiscalPeriod(db, record, now));
|
|
42
|
+
return record;
|
|
43
|
+
},
|
|
44
|
+
async createNext(userId, input) {
|
|
45
|
+
return runInTransaction(db, async () => {
|
|
46
|
+
const source = await periods.getById(input.sourceFiscalPeriodId);
|
|
47
|
+
if (source == null || source.userId !== userId) {
|
|
48
|
+
throw serverNotFoundError(`fiscal period not found: ${input.sourceFiscalPeriodId}`);
|
|
49
|
+
}
|
|
50
|
+
assertFiscalPeriodCanCarryOver(source, input.startDate);
|
|
51
|
+
const entries = await createEntriesDb(db).getAll(source.id);
|
|
52
|
+
const entriesById = new Map(entries.map((entry) => [entry.id, entry]));
|
|
53
|
+
const selected = input.reversalEntryIds.map((id) => {
|
|
54
|
+
const entry = entriesById.get(id);
|
|
55
|
+
if (entry == null) {
|
|
56
|
+
throw serverNotFoundError(`Reversal entry ${id} not found in fiscal period ${source.id}`);
|
|
57
|
+
}
|
|
58
|
+
return entry;
|
|
59
|
+
});
|
|
60
|
+
const now = nowMs();
|
|
61
|
+
const record = newFiscalPeriodRecord(userId, input, now);
|
|
62
|
+
const opening = record.opening;
|
|
63
|
+
opening.balanceLines = input.carryBalances
|
|
64
|
+
? buildCarryoverOpeningBalances({
|
|
65
|
+
openingBalanceLines: source.opening.balanceLines,
|
|
66
|
+
entries,
|
|
67
|
+
})
|
|
68
|
+
: [];
|
|
69
|
+
opening.journals = buildCarryoverOpeningJournals({
|
|
70
|
+
entries: selected,
|
|
71
|
+
startDate: record.startDate,
|
|
72
|
+
});
|
|
73
|
+
record.openingBalancesCompleted = input.carryBalances;
|
|
74
|
+
await insertFiscalPeriod(db, record, now);
|
|
75
|
+
if (input.carryFixedAssets) {
|
|
76
|
+
const assets = await createFixedAssetsDb(db).getAll(source.id);
|
|
77
|
+
for (const asset of assets) {
|
|
78
|
+
if (asset.status !== "active")
|
|
79
|
+
continue;
|
|
80
|
+
await insertFixedAsset(db, {
|
|
81
|
+
...asset,
|
|
82
|
+
id: newId("fa"),
|
|
83
|
+
fiscalPeriodId: record.id,
|
|
84
|
+
createdAt: record.createdAt,
|
|
85
|
+
updatedAt: record.updatedAt,
|
|
86
|
+
}, record, now);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
return record;
|
|
90
|
+
});
|
|
91
|
+
},
|
|
92
|
+
async importArchived(userId, input) {
|
|
93
|
+
assertDbArchiveImportSizeLimits(input);
|
|
94
|
+
const fiscalPeriodId = newId("fp");
|
|
95
|
+
const now = nowMs();
|
|
96
|
+
const timestamp = msToIso(now);
|
|
97
|
+
const opening = input.fiscalPeriod.opening;
|
|
98
|
+
const record = {
|
|
99
|
+
id: fiscalPeriodId,
|
|
100
|
+
userId,
|
|
101
|
+
name: input.fiscalPeriod.name,
|
|
102
|
+
startDate: input.fiscalPeriod.startDate,
|
|
103
|
+
endDate: input.fiscalPeriod.endDate,
|
|
104
|
+
phase: input.fiscalPeriod.phase,
|
|
105
|
+
archiveStatus: "active",
|
|
106
|
+
archivedAt: null,
|
|
107
|
+
openingBalancesCompleted: input.fiscalPeriod.openingBalancesCompleted,
|
|
108
|
+
documentsReceivedCompleted: input.fiscalPeriod.documentsReceivedCompleted,
|
|
109
|
+
opening,
|
|
110
|
+
createdAt: timestamp,
|
|
111
|
+
updatedAt: timestamp,
|
|
112
|
+
};
|
|
113
|
+
assertDbOpeningForPeriod(opening, record);
|
|
114
|
+
assertDbImportedClosingState(record, input.preClosings, input.closings);
|
|
115
|
+
const serializedRecord = serializeFiscalPeriodDbData(record);
|
|
116
|
+
await runInTransaction(db, async () => {
|
|
117
|
+
await assertNoOverlappingActiveFiscalPeriod(db, {
|
|
118
|
+
userId,
|
|
119
|
+
startDate: record.startDate,
|
|
120
|
+
endDate: record.endDate,
|
|
121
|
+
excludeFiscalPeriodId: null,
|
|
122
|
+
});
|
|
123
|
+
await db.exec({
|
|
124
|
+
sql: `INSERT INTO fiscal_periods(id, user_id, data, created_at, updated_at) VALUES(?, ?, ?, ?, ?)`,
|
|
125
|
+
bind: [record.id, userId, serializedRecord, now, now],
|
|
126
|
+
});
|
|
127
|
+
await replaceOpening(db, fiscalPeriodId, opening);
|
|
128
|
+
for (const inputEntry of input.entries) {
|
|
129
|
+
assertEntryMatchesRules(inputEntry, record, "Archived entry");
|
|
130
|
+
const id = newId("entry");
|
|
131
|
+
const entry = {
|
|
132
|
+
id,
|
|
133
|
+
userId,
|
|
134
|
+
fiscalPeriodId,
|
|
135
|
+
date: inputEntry.date,
|
|
136
|
+
description: inputEntry.description,
|
|
137
|
+
localId: inputEntry.localId,
|
|
138
|
+
businessRate: inputEntry.businessRate,
|
|
139
|
+
lines: inputEntry.lines.map((line) => ({
|
|
140
|
+
...line,
|
|
141
|
+
id: newId("eline"),
|
|
142
|
+
})),
|
|
143
|
+
createdAt: timestamp,
|
|
144
|
+
updatedAt: timestamp,
|
|
145
|
+
};
|
|
146
|
+
await db.exec({
|
|
147
|
+
sql: `INSERT INTO entries(id, fiscal_period_id, date, local_id, description, business_rate, created_at, updated_at) VALUES(?, ?, ?, ?, ?, ?, ?, ?)`,
|
|
148
|
+
bind: [
|
|
149
|
+
id,
|
|
150
|
+
fiscalPeriodId,
|
|
151
|
+
entry.date,
|
|
152
|
+
entry.localId,
|
|
153
|
+
entry.description,
|
|
154
|
+
entry.businessRate,
|
|
155
|
+
now,
|
|
156
|
+
now,
|
|
157
|
+
],
|
|
158
|
+
});
|
|
159
|
+
await insertEntryLines(db, entry);
|
|
160
|
+
}
|
|
161
|
+
for (const assetInput of input.fixedAssets) {
|
|
162
|
+
const id = newId("fa");
|
|
163
|
+
const asset = {
|
|
164
|
+
id,
|
|
165
|
+
userId,
|
|
166
|
+
fiscalPeriodId,
|
|
167
|
+
name: assetInput.name,
|
|
168
|
+
acquisitionDate: assetInput.acquisitionDate,
|
|
169
|
+
acquisitionCost: assetInput.acquisitionCost,
|
|
170
|
+
usefulLife: assetInput.usefulLife,
|
|
171
|
+
depreciationMethod: assetInput.depreciationMethod,
|
|
172
|
+
businessRate: assetInput.businessRate,
|
|
173
|
+
status: assetInput.status,
|
|
174
|
+
disposalDate: assetInput.disposalDate,
|
|
175
|
+
disposalPrice: assetInput.disposalPrice,
|
|
176
|
+
bookAccountId: assetInput.bookAccountId,
|
|
177
|
+
createdAt: timestamp,
|
|
178
|
+
updatedAt: timestamp,
|
|
179
|
+
};
|
|
180
|
+
await insertFixedAsset(db, asset, record, now);
|
|
181
|
+
}
|
|
182
|
+
for (const preClosing of input.preClosings) {
|
|
183
|
+
await db.exec({
|
|
184
|
+
sql: `INSERT OR REPLACE INTO pre_closings(fiscal_period_id, year) VALUES(?, ?)`,
|
|
185
|
+
bind: [fiscalPeriodId, preClosing.year],
|
|
186
|
+
});
|
|
187
|
+
}
|
|
188
|
+
for (const closing of input.closings) {
|
|
189
|
+
await db.exec({
|
|
190
|
+
sql: `INSERT OR REPLACE INTO closings(fiscal_period_id, year) VALUES(?, ?)`,
|
|
191
|
+
bind: [fiscalPeriodId, closing.year],
|
|
192
|
+
});
|
|
193
|
+
}
|
|
194
|
+
});
|
|
195
|
+
return record;
|
|
196
|
+
},
|
|
197
|
+
async patch(id, patch) {
|
|
198
|
+
return runInTransaction(db, async () => {
|
|
199
|
+
const current = await requireFiscalPeriodRecord(db, id);
|
|
200
|
+
assertDbFiscalPeriodPatchAllowed(current, patch);
|
|
201
|
+
const now = nowMs();
|
|
202
|
+
const updated = applyPatch({ ...current, updatedAt: msToIso(now) }, patch, FISCAL_PERIOD_PATCH_KEYS);
|
|
203
|
+
assertDbOpeningForPeriod(updated.opening, updated);
|
|
204
|
+
const serializedRecord = serializeFiscalPeriodDbData(updated);
|
|
205
|
+
if (patch.startDate !== undefined || patch.endDate !== undefined) {
|
|
206
|
+
await assertNoOverlappingActiveFiscalPeriod(db, {
|
|
207
|
+
userId: updated.userId,
|
|
208
|
+
startDate: updated.startDate,
|
|
209
|
+
endDate: updated.endDate,
|
|
210
|
+
excludeFiscalPeriodId: id,
|
|
211
|
+
});
|
|
212
|
+
}
|
|
213
|
+
await db.exec({
|
|
214
|
+
sql: `UPDATE fiscal_periods SET data = ?, updated_at = ? WHERE id = ?`,
|
|
215
|
+
bind: [serializedRecord, now, id],
|
|
216
|
+
});
|
|
217
|
+
if (patch.opening !== undefined) {
|
|
218
|
+
await replaceOpening(db, id, updated.opening);
|
|
219
|
+
}
|
|
220
|
+
return updated;
|
|
221
|
+
});
|
|
222
|
+
},
|
|
223
|
+
async start(id) {
|
|
224
|
+
return transitionFiscalPeriod(db, id, "pre_opening", "journalizing", async () => { });
|
|
225
|
+
},
|
|
226
|
+
async archive(id) {
|
|
227
|
+
return runInTransaction(db, async () => {
|
|
228
|
+
const current = await requireFiscalPeriodRecord(db, id);
|
|
229
|
+
if (current.archiveStatus !== "active" ||
|
|
230
|
+
current.phase !== "post_closing" ||
|
|
231
|
+
!current.documentsReceivedCompleted) {
|
|
232
|
+
throw serverConflictError(`fiscal period cannot be archived from phase ${current.phase} (${current.archiveStatus})`, "本締めと書類受領が完了した会計期間のみ圧縮保存できます");
|
|
233
|
+
}
|
|
234
|
+
const now = nowMs();
|
|
235
|
+
const updated = {
|
|
236
|
+
...current,
|
|
237
|
+
updatedAt: msToIso(now),
|
|
238
|
+
archiveStatus: "archived",
|
|
239
|
+
archivedAt: msToIso(now),
|
|
240
|
+
};
|
|
241
|
+
await db.exec({
|
|
242
|
+
sql: `UPDATE fiscal_periods SET data = ?, updated_at = ? WHERE id = ?`,
|
|
243
|
+
bind: [serializeFiscalPeriodDbData(updated), now, id],
|
|
244
|
+
});
|
|
245
|
+
return updated;
|
|
246
|
+
});
|
|
247
|
+
},
|
|
248
|
+
async purgeArchivedData(id) {
|
|
249
|
+
return runInTransaction(db, async () => {
|
|
250
|
+
const current = await requireFiscalPeriodRecord(db, id);
|
|
251
|
+
if (current.archiveStatus === "active") {
|
|
252
|
+
throw serverConflictError(`fiscal period must be archived before purge: ${id}`, "圧縮保存後の会計期間のみ実データを削除できます");
|
|
253
|
+
}
|
|
254
|
+
const now = nowMs();
|
|
255
|
+
const updated = {
|
|
256
|
+
...current,
|
|
257
|
+
updatedAt: msToIso(now),
|
|
258
|
+
archiveStatus: "purged",
|
|
259
|
+
opening: emptyOpening(),
|
|
260
|
+
};
|
|
261
|
+
await db.exec({
|
|
262
|
+
sql: `DELETE FROM entries WHERE fiscal_period_id = ?`,
|
|
263
|
+
bind: [id],
|
|
264
|
+
});
|
|
265
|
+
await db.exec({
|
|
266
|
+
sql: `DELETE FROM fixed_assets WHERE fiscal_period_id = ?`,
|
|
267
|
+
bind: [id],
|
|
268
|
+
});
|
|
269
|
+
await db.exec({
|
|
270
|
+
sql: `DELETE FROM pre_closings WHERE fiscal_period_id = ?`,
|
|
271
|
+
bind: [id],
|
|
272
|
+
});
|
|
273
|
+
await db.exec({
|
|
274
|
+
sql: `DELETE FROM closings WHERE fiscal_period_id = ?`,
|
|
275
|
+
bind: [id],
|
|
276
|
+
});
|
|
277
|
+
await replaceOpening(db, id, updated.opening);
|
|
278
|
+
await db.exec({
|
|
279
|
+
sql: `UPDATE fiscal_periods SET data = ?, updated_at = ? WHERE id = ?`,
|
|
280
|
+
bind: [serializeFiscalPeriodDbData(updated), now, id],
|
|
281
|
+
});
|
|
282
|
+
return updated;
|
|
283
|
+
});
|
|
284
|
+
},
|
|
285
|
+
async remove(id) {
|
|
286
|
+
await db.exec({
|
|
287
|
+
sql: `DELETE FROM fiscal_periods WHERE id = ?`,
|
|
288
|
+
bind: [id],
|
|
289
|
+
});
|
|
290
|
+
},
|
|
291
|
+
};
|
|
292
|
+
return periods;
|
|
293
|
+
}
|
|
294
|
+
function newFiscalPeriodRecord(userId, input, now) {
|
|
295
|
+
const id = newId("fp");
|
|
296
|
+
const timestamp = msToIso(now);
|
|
297
|
+
return {
|
|
298
|
+
id,
|
|
299
|
+
userId,
|
|
300
|
+
name: input.name,
|
|
301
|
+
startDate: input.startDate,
|
|
302
|
+
endDate: input.endDate,
|
|
303
|
+
phase: "pre_opening",
|
|
304
|
+
archiveStatus: "active",
|
|
305
|
+
archivedAt: null,
|
|
306
|
+
openingBalancesCompleted: false,
|
|
307
|
+
documentsReceivedCompleted: false,
|
|
308
|
+
opening: emptyOpening(),
|
|
309
|
+
createdAt: timestamp,
|
|
310
|
+
updatedAt: timestamp,
|
|
311
|
+
};
|
|
312
|
+
}
|
|
313
|
+
async function insertFiscalPeriod(db, record, now) {
|
|
314
|
+
const opening = record.opening;
|
|
315
|
+
assertDbOpeningForPeriod(opening, record);
|
|
316
|
+
await assertNoOverlappingActiveFiscalPeriod(db, {
|
|
317
|
+
userId: record.userId,
|
|
318
|
+
startDate: record.startDate,
|
|
319
|
+
endDate: record.endDate,
|
|
320
|
+
excludeFiscalPeriodId: null,
|
|
321
|
+
});
|
|
322
|
+
await db.exec({
|
|
323
|
+
sql: `INSERT INTO fiscal_periods(id, user_id, data, created_at, updated_at) VALUES(?, ?, ?, ?, ?)`,
|
|
324
|
+
bind: [
|
|
325
|
+
record.id,
|
|
326
|
+
record.userId,
|
|
327
|
+
serializeFiscalPeriodDbData(record),
|
|
328
|
+
now,
|
|
329
|
+
now,
|
|
330
|
+
],
|
|
331
|
+
});
|
|
332
|
+
await replaceOpening(db, record.id, opening);
|
|
333
|
+
}
|
|
334
|
+
async function insertFixedAsset(db, asset, period, now) {
|
|
335
|
+
assertFixedAssetMatchesRules(asset, period);
|
|
336
|
+
await db.exec({
|
|
337
|
+
sql: `INSERT INTO fixed_assets(id, fiscal_period_id, data, created_at, updated_at) VALUES(?, ?, ?, ?, ?)`,
|
|
338
|
+
bind: [
|
|
339
|
+
asset.id,
|
|
340
|
+
asset.fiscalPeriodId,
|
|
341
|
+
serializeFixedAssetDbData(asset),
|
|
342
|
+
now,
|
|
343
|
+
now,
|
|
344
|
+
],
|
|
345
|
+
});
|
|
346
|
+
}
|
|
347
|
+
async function assertNoOverlappingActiveFiscalPeriod(db, input) {
|
|
348
|
+
const rows = (await db.exec({
|
|
349
|
+
sql: `SELECT data FROM fiscal_periods WHERE user_id = ?`,
|
|
350
|
+
bind: [input.userId],
|
|
351
|
+
returnValue: "resultRows",
|
|
352
|
+
rowMode: "array",
|
|
353
|
+
}));
|
|
354
|
+
const overlap = rows
|
|
355
|
+
.map(([data]) => parseFiscalPeriodDbData(data))
|
|
356
|
+
.find((period) => period.id !== input.excludeFiscalPeriodId &&
|
|
357
|
+
period.archiveStatus === "active" &&
|
|
358
|
+
input.startDate <= period.endDate &&
|
|
359
|
+
input.endDate >= period.startDate);
|
|
360
|
+
if (overlap != null) {
|
|
361
|
+
throw serverConflictError(`fiscal period ${input.startDate} to ${input.endDate} overlaps active fiscal period ${overlap.id}`, "既存の会計期間と日付が重複しています");
|
|
362
|
+
}
|
|
363
|
+
}
|
|
364
|
+
//# sourceMappingURL=fiscal-period-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fiscal-period-store.js","sourceRoot":"","sources":["../src/fiscal-period-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { FiscalPeriodDbPhase, FiscalPeriodDbRecord } from "@rubydogjp/openkk-server-ports";
|
|
2
|
+
import type { SqlDb } from "./sql-db.js";
|
|
3
|
+
export declare function transitionFiscalPeriod(db: SqlDb, fiscalPeriodId: string, expectedPhase: FiscalPeriodDbPhase, nextPhase: FiscalPeriodDbPhase, writeTransitionData: (period: FiscalPeriodDbRecord) => Promise<void>): Promise<FiscalPeriodDbRecord>;
|
|
4
|
+
//# sourceMappingURL=fiscal-period-transition.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fiscal-period-transition.d.ts","sourceRoot":"","sources":["../src/fiscal-period-transition.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,mBAAmB,EACnB,oBAAoB,EACrB,MAAM,gCAAgC,CAAC;AAOxC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAGzC,wBAAsB,sBAAsB,CAC1C,EAAE,EAAE,KAAK,EACT,cAAc,EAAE,MAAM,EACtB,aAAa,EAAE,mBAAmB,EAClC,SAAS,EAAE,mBAAmB,EAC9B,mBAAmB,EAAE,CAAC,MAAM,EAAE,oBAAoB,KAAK,OAAO,CAAC,IAAI,CAAC,GACnE,OAAO,CAAC,oBAAoB,CAAC,CA6B/B"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { serverConflictError } from "@rubydogjp/openkk-server-domain";
|
|
2
|
+
import { requireFiscalPeriodRecord } from "./fiscal-period-record.js";
|
|
3
|
+
import { msToIso, serializeFiscalPeriodDbData, } from "./persistence-codec.js";
|
|
4
|
+
import { nowMs } from "./runtime.js";
|
|
5
|
+
import { runInTransaction } from "./transaction.js";
|
|
6
|
+
export async function transitionFiscalPeriod(db, fiscalPeriodId, expectedPhase, nextPhase, writeTransitionData) {
|
|
7
|
+
return runInTransaction(db, async () => {
|
|
8
|
+
const current = await requireFiscalPeriodRecord(db, fiscalPeriodId);
|
|
9
|
+
if (current.archiveStatus !== "active") {
|
|
10
|
+
throw serverConflictError(`archived fiscal period cannot transition: ${fiscalPeriodId}`, "圧縮保存済みの会計期間は変更できません");
|
|
11
|
+
}
|
|
12
|
+
if (current.phase !== expectedPhase) {
|
|
13
|
+
throw serverConflictError(`invalid fiscal period transition: ${current.phase} -> ${nextPhase}`, "会計期間の状態が変わったため、この操作を実行できません");
|
|
14
|
+
}
|
|
15
|
+
const now = nowMs();
|
|
16
|
+
const updated = {
|
|
17
|
+
...current,
|
|
18
|
+
updatedAt: msToIso(now),
|
|
19
|
+
phase: nextPhase,
|
|
20
|
+
};
|
|
21
|
+
const serializedRecord = serializeFiscalPeriodDbData(updated);
|
|
22
|
+
await writeTransitionData(current);
|
|
23
|
+
await db.exec({
|
|
24
|
+
sql: `UPDATE fiscal_periods SET data = ?, updated_at = ? WHERE id = ?`,
|
|
25
|
+
bind: [serializedRecord, now, fiscalPeriodId],
|
|
26
|
+
});
|
|
27
|
+
return updated;
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=fiscal-period-transition.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fiscal-period-transition.js","sourceRoot":"","sources":["../src/fiscal-period-transition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAKtE,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AACtE,OAAO,EACL,OAAO,EACP,2BAA2B,GAC5B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAErC,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,EAAS,EACT,cAAsB,EACtB,aAAkC,EAClC,SAA8B,EAC9B,mBAAoE;IAEpE,OAAO,gBAAgB,CAAC,EAAE,EAAE,KAAK,IAAI,EAAE;QACrC,MAAM,OAAO,GAAG,MAAM,yBAAyB,CAAC,EAAE,EAAE,cAAc,CAAC,CAAC;QACpE,IAAI,OAAO,CAAC,aAAa,KAAK,QAAQ,EAAE,CAAC;YACvC,MAAM,mBAAmB,CACvB,6CAA6C,cAAc,EAAE,EAC7D,qBAAqB,CACtB,CAAC;QACJ,CAAC;QACD,IAAI,OAAO,CAAC,KAAK,KAAK,aAAa,EAAE,CAAC;YACpC,MAAM,mBAAmB,CACvB,qCAAqC,OAAO,CAAC,KAAK,OAAO,SAAS,EAAE,EACpE,6BAA6B,CAC9B,CAAC;QACJ,CAAC;QACD,MAAM,GAAG,GAAG,KAAK,EAAE,CAAC;QACpB,MAAM,OAAO,GAAyB;YACpC,GAAG,OAAO;YACV,SAAS,EAAE,OAAO,CAAC,GAAG,CAAC;YACvB,KAAK,EAAE,SAAS;SACjB,CAAC;QACF,MAAM,gBAAgB,GAAG,2BAA2B,CAAC,OAAO,CAAC,CAAC;QAC9D,MAAM,mBAAmB,CAAC,OAAO,CAAC,CAAC;QACnC,MAAM,EAAE,CAAC,IAAI,CAAC;YACZ,GAAG,EAAE,iEAAiE;YACtE,IAAI,EAAE,CAAC,gBAAgB,EAAE,GAAG,EAAE,cAAc,CAAC;SAC9C,CAAC,CAAC;QACH,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fixed-asset-store.d.ts","sourceRoot":"","sources":["../src/fixed-asset-store.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAEV,aAAa,EACd,MAAM,gCAAgC,CAAC;AAYxC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAGzC,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,KAAK,GAAG,aAAa,CAoJ5D"}
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
import { applyPatch, assertFixedAssetMatchesRules, FIXED_ASSET_PATCH_KEYS, serverNotFoundError, } from "@rubydogjp/openkk-server-domain";
|
|
2
|
+
import { assertDbFiscalPeriodAllows, assertDbOwnedFiscalPeriodAllows, } from "./fiscal-period-guard.js";
|
|
3
|
+
import { msToIso, parseFiscalPeriodDbData, parseFixedAssetDbData, serializeFixedAssetDbData, } from "./persistence-codec.js";
|
|
4
|
+
import { newId, nowMs } from "./runtime.js";
|
|
5
|
+
import { runInTransaction } from "./transaction.js";
|
|
6
|
+
export function createFixedAssetsDb(db) {
|
|
7
|
+
return {
|
|
8
|
+
async getAll(fiscalPeriodId) {
|
|
9
|
+
const rows = (await db.exec({
|
|
10
|
+
sql: `SELECT fa.data, fp.user_id, fa.created_at, fa.updated_at, fp.data
|
|
11
|
+
FROM fixed_assets fa
|
|
12
|
+
JOIN fiscal_periods fp ON fp.id = fa.fiscal_period_id
|
|
13
|
+
WHERE fa.fiscal_period_id = ? ORDER BY fa.created_at ASC, fa.id ASC`,
|
|
14
|
+
bind: [fiscalPeriodId],
|
|
15
|
+
returnValue: "resultRows",
|
|
16
|
+
rowMode: "array",
|
|
17
|
+
}));
|
|
18
|
+
const firstRow = rows[0];
|
|
19
|
+
if (firstRow == null)
|
|
20
|
+
return [];
|
|
21
|
+
const period = parseFiscalPeriodDbData(firstRow[4]);
|
|
22
|
+
return rows.map(([data, userId, createdAt, updatedAt]) => {
|
|
23
|
+
const asset = {
|
|
24
|
+
...parseFixedAssetDbData(data),
|
|
25
|
+
userId,
|
|
26
|
+
createdAt: msToIso(createdAt),
|
|
27
|
+
updatedAt: msToIso(updatedAt),
|
|
28
|
+
};
|
|
29
|
+
assertFixedAssetMatchesRules(asset, period);
|
|
30
|
+
return asset;
|
|
31
|
+
});
|
|
32
|
+
},
|
|
33
|
+
async getById(id) {
|
|
34
|
+
const rows = (await db.exec({
|
|
35
|
+
sql: `SELECT fa.data, fp.user_id, fa.created_at, fa.updated_at, fp.data
|
|
36
|
+
FROM fixed_assets fa
|
|
37
|
+
JOIN fiscal_periods fp ON fp.id = fa.fiscal_period_id
|
|
38
|
+
WHERE fa.id = ?`,
|
|
39
|
+
bind: [id],
|
|
40
|
+
returnValue: "resultRows",
|
|
41
|
+
rowMode: "array",
|
|
42
|
+
}));
|
|
43
|
+
const row = rows[0];
|
|
44
|
+
if (row == null)
|
|
45
|
+
return null;
|
|
46
|
+
const asset = {
|
|
47
|
+
...parseFixedAssetDbData(row[0]),
|
|
48
|
+
userId: row[1],
|
|
49
|
+
createdAt: msToIso(row[2]),
|
|
50
|
+
updatedAt: msToIso(row[3]),
|
|
51
|
+
};
|
|
52
|
+
assertFixedAssetMatchesRules(asset, parseFiscalPeriodDbData(row[4]));
|
|
53
|
+
return asset;
|
|
54
|
+
},
|
|
55
|
+
async create(userId, fiscalPeriodId, input) {
|
|
56
|
+
const id = newId("fa");
|
|
57
|
+
const now = nowMs();
|
|
58
|
+
const timestamp = msToIso(now);
|
|
59
|
+
const record = {
|
|
60
|
+
id,
|
|
61
|
+
userId,
|
|
62
|
+
fiscalPeriodId,
|
|
63
|
+
name: input.name,
|
|
64
|
+
acquisitionDate: input.acquisitionDate,
|
|
65
|
+
acquisitionCost: input.acquisitionCost,
|
|
66
|
+
usefulLife: input.usefulLife,
|
|
67
|
+
depreciationMethod: input.depreciationMethod,
|
|
68
|
+
businessRate: input.businessRate,
|
|
69
|
+
status: "active",
|
|
70
|
+
disposalDate: null,
|
|
71
|
+
disposalPrice: null,
|
|
72
|
+
bookAccountId: input.bookAccountId,
|
|
73
|
+
createdAt: timestamp,
|
|
74
|
+
updatedAt: timestamp,
|
|
75
|
+
};
|
|
76
|
+
await runInTransaction(db, async () => {
|
|
77
|
+
const period = await assertDbOwnedFiscalPeriodAllows(db, userId, fiscalPeriodId, ["pre_opening", "journalizing"], "create fixed asset");
|
|
78
|
+
assertFixedAssetMatchesRules(record, period);
|
|
79
|
+
await db.exec({
|
|
80
|
+
sql: `INSERT INTO fixed_assets(id, fiscal_period_id, data, created_at, updated_at) VALUES(?, ?, ?, ?, ?)`,
|
|
81
|
+
bind: [
|
|
82
|
+
id,
|
|
83
|
+
fiscalPeriodId,
|
|
84
|
+
serializeFixedAssetDbData(record),
|
|
85
|
+
now,
|
|
86
|
+
now,
|
|
87
|
+
],
|
|
88
|
+
});
|
|
89
|
+
});
|
|
90
|
+
return record;
|
|
91
|
+
},
|
|
92
|
+
async patch(id, patch) {
|
|
93
|
+
return runInTransaction(db, async () => {
|
|
94
|
+
const rows = (await db.exec({
|
|
95
|
+
sql: `SELECT fa.data, fp.user_id, fa.created_at
|
|
96
|
+
FROM fixed_assets fa
|
|
97
|
+
JOIN fiscal_periods fp ON fp.id = fa.fiscal_period_id
|
|
98
|
+
WHERE fa.id = ?`,
|
|
99
|
+
bind: [id],
|
|
100
|
+
returnValue: "resultRows",
|
|
101
|
+
rowMode: "array",
|
|
102
|
+
}));
|
|
103
|
+
const row = rows[0];
|
|
104
|
+
if (row == null)
|
|
105
|
+
throw serverNotFoundError(`fixed asset not found: ${id}`);
|
|
106
|
+
const now = nowMs();
|
|
107
|
+
const existing = {
|
|
108
|
+
...parseFixedAssetDbData(row[0]),
|
|
109
|
+
userId: row[1],
|
|
110
|
+
createdAt: msToIso(row[2]),
|
|
111
|
+
updatedAt: msToIso(now),
|
|
112
|
+
};
|
|
113
|
+
const period = await assertDbFiscalPeriodAllows(db, existing.fiscalPeriodId, ["journalizing"], "update fixed asset");
|
|
114
|
+
const updated = applyPatch(existing, patch, FIXED_ASSET_PATCH_KEYS);
|
|
115
|
+
assertFixedAssetMatchesRules(updated, period);
|
|
116
|
+
await db.exec({
|
|
117
|
+
sql: `UPDATE fixed_assets SET data = ?, updated_at = ? WHERE id = ?`,
|
|
118
|
+
bind: [serializeFixedAssetDbData(updated), now, id],
|
|
119
|
+
});
|
|
120
|
+
return updated;
|
|
121
|
+
});
|
|
122
|
+
},
|
|
123
|
+
async remove(id) {
|
|
124
|
+
await runInTransaction(db, async () => {
|
|
125
|
+
const rows = (await db.exec({
|
|
126
|
+
sql: `SELECT fiscal_period_id FROM fixed_assets WHERE id = ?`,
|
|
127
|
+
bind: [id],
|
|
128
|
+
returnValue: "resultRows",
|
|
129
|
+
rowMode: "array",
|
|
130
|
+
}));
|
|
131
|
+
if (rows[0] == null)
|
|
132
|
+
return;
|
|
133
|
+
await assertDbFiscalPeriodAllows(db, rows[0][0], ["journalizing"], "delete fixed asset");
|
|
134
|
+
await db.exec({
|
|
135
|
+
sql: `DELETE FROM fixed_assets WHERE id = ?`,
|
|
136
|
+
bind: [id],
|
|
137
|
+
});
|
|
138
|
+
});
|
|
139
|
+
},
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
//# sourceMappingURL=fixed-asset-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fixed-asset-store.js","sourceRoot":"","sources":["../src/fixed-asset-store.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACrD,YAAY,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAErD,OAAO,EAAE,aAAa,EAAoB,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"master-data-store.d.ts","sourceRoot":"","sources":["../src/master-data-store.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAGV,YAAY,EAEb,MAAM,gCAAgC,CAAC;AAKxC,wBAAgB,kBAAkB,IAAI,YAAY,CAwCjD"}
|