freee-demo-kit 0.1.4
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/README.md +280 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +35 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/auth.d.ts +3 -0
- package/dist/commands/auth.d.ts.map +1 -0
- package/dist/commands/auth.js +57 -0
- package/dist/commands/auth.js.map +1 -0
- package/dist/commands/corrupt.d.ts +3 -0
- package/dist/commands/corrupt.d.ts.map +1 -0
- package/dist/commands/corrupt.js +72 -0
- package/dist/commands/corrupt.js.map +1 -0
- package/dist/commands/dry-run.d.ts +3 -0
- package/dist/commands/dry-run.d.ts.map +1 -0
- package/dist/commands/dry-run.js +59 -0
- package/dist/commands/dry-run.js.map +1 -0
- package/dist/commands/list.d.ts +3 -0
- package/dist/commands/list.d.ts.map +1 -0
- package/dist/commands/list.js +58 -0
- package/dist/commands/list.js.map +1 -0
- package/dist/commands/load-all.d.ts +3 -0
- package/dist/commands/load-all.d.ts.map +1 -0
- package/dist/commands/load-all.js +69 -0
- package/dist/commands/load-all.js.map +1 -0
- package/dist/commands/load.d.ts +25 -0
- package/dist/commands/load.d.ts.map +1 -0
- package/dist/commands/load.js +197 -0
- package/dist/commands/load.js.map +1 -0
- package/dist/commands/reset.d.ts +3 -0
- package/dist/commands/reset.d.ts.map +1 -0
- package/dist/commands/reset.js +117 -0
- package/dist/commands/reset.js.map +1 -0
- package/dist/commands/setup.d.ts +4 -0
- package/dist/commands/setup.d.ts.map +1 -0
- package/dist/commands/setup.js +190 -0
- package/dist/commands/setup.js.map +1 -0
- package/dist/commands/status.d.ts +3 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +25 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/validate.d.ts +5 -0
- package/dist/commands/validate.d.ts.map +1 -0
- package/dist/commands/validate.js +132 -0
- package/dist/commands/validate.js.map +1 -0
- package/dist/commands/verify.d.ts +3 -0
- package/dist/commands/verify.d.ts.map +1 -0
- package/dist/commands/verify.js +87 -0
- package/dist/commands/verify.js.map +1 -0
- package/dist/commands/whoami.d.ts +3 -0
- package/dist/commands/whoami.d.ts.map +1 -0
- package/dist/commands/whoami.js +31 -0
- package/dist/commands/whoami.js.map +1 -0
- package/dist/types/freee.d.ts +112 -0
- package/dist/types/freee.d.ts.map +1 -0
- package/dist/types/freee.js +3 -0
- package/dist/types/freee.js.map +1 -0
- package/dist/types/preset.d.ts +14 -0
- package/dist/types/preset.d.ts.map +1 -0
- package/dist/types/preset.js +2 -0
- package/dist/types/preset.js.map +1 -0
- package/dist/utils/accounting-validator.d.ts +13 -0
- package/dist/utils/accounting-validator.d.ts.map +1 -0
- package/dist/utils/accounting-validator.js +95 -0
- package/dist/utils/accounting-validator.js.map +1 -0
- package/dist/utils/auth-flow.d.ts +17 -0
- package/dist/utils/auth-flow.d.ts.map +1 -0
- package/dist/utils/auth-flow.js +137 -0
- package/dist/utils/auth-flow.js.map +1 -0
- package/dist/utils/config.d.ts +11 -0
- package/dist/utils/config.d.ts.map +1 -0
- package/dist/utils/config.js +13 -0
- package/dist/utils/config.js.map +1 -0
- package/dist/utils/confirm-company.d.ts +7 -0
- package/dist/utils/confirm-company.d.ts.map +1 -0
- package/dist/utils/confirm-company.js +20 -0
- package/dist/utils/confirm-company.js.map +1 -0
- package/dist/utils/corrupt-injector.d.ts +17 -0
- package/dist/utils/corrupt-injector.d.ts.map +1 -0
- package/dist/utils/corrupt-injector.js +123 -0
- package/dist/utils/corrupt-injector.js.map +1 -0
- package/dist/utils/env-loader.d.ts +9 -0
- package/dist/utils/env-loader.d.ts.map +1 -0
- package/dist/utils/env-loader.js +12 -0
- package/dist/utils/env-loader.js.map +1 -0
- package/dist/utils/env-writer.d.ts +10 -0
- package/dist/utils/env-writer.d.ts.map +1 -0
- package/dist/utils/env-writer.js +40 -0
- package/dist/utils/env-writer.js.map +1 -0
- package/dist/utils/freee-api.d.ts +24 -0
- package/dist/utils/freee-api.d.ts.map +1 -0
- package/dist/utils/freee-api.js +175 -0
- package/dist/utils/freee-api.js.map +1 -0
- package/dist/utils/logger.d.ts +6 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +22 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/pkce.d.ts +12 -0
- package/dist/utils/pkce.d.ts.map +1 -0
- package/dist/utils/pkce.js +18 -0
- package/dist/utils/pkce.js.map +1 -0
- package/dist/utils/preset-loader.d.ts +3 -0
- package/dist/utils/preset-loader.d.ts.map +1 -0
- package/dist/utils/preset-loader.js +47 -0
- package/dist/utils/preset-loader.js.map +1 -0
- package/dist/utils/preset-validator.d.ts +10 -0
- package/dist/utils/preset-validator.d.ts.map +1 -0
- package/dist/utils/preset-validator.js +23 -0
- package/dist/utils/preset-validator.js.map +1 -0
- package/dist/utils/state-store.d.ts +6 -0
- package/dist/utils/state-store.d.ts.map +1 -0
- package/dist/utils/state-store.js +37 -0
- package/dist/utils/state-store.js.map +1 -0
- package/dist/utils/token-store.d.ts +6 -0
- package/dist/utils/token-store.d.ts.map +1 -0
- package/dist/utils/token-store.js +30 -0
- package/dist/utils/token-store.js.map +1 -0
- package/package.json +58 -0
- package/presets/README.md +182 -0
- package/presets/accounting/README.md +3 -0
- package/presets/accounting/construction/preset.json +309 -0
- package/presets/accounting/freelance-invoice/preset.json +261 -0
- package/presets/accounting/full-year/preset.json +1534 -0
- package/presets/accounting/it-startup/preset.json +472 -0
- package/presets/accounting/manufacturing/preset.json +333 -0
- package/presets/accounting/medical/preset.json +453 -0
- package/presets/accounting/non-profit/preset.json +375 -0
- package/presets/accounting/npo-subsidy/preset.json +454 -0
- package/presets/accounting/payroll-agency/preset.json +286 -0
- package/presets/accounting/quickstart/preset.json +917 -0
- package/presets/accounting/real-estate/preset.json +453 -0
- package/presets/accounting/restaurant/preset.json +349 -0
- package/presets/accounting/retail/preset.json +536 -0
- package/presets/accounting/sole-proprietor/preset.json +408 -0
- package/presets/advanced/multi-company/README.md +3 -0
- package/presets/advanced/multi-company/preset.json +640 -0
- package/presets/advanced/multi-period/README.md +3 -0
- package/presets/advanced/multi-period/preset.json +633 -0
- package/presets/common/depreciation/preset.json +433 -0
- package/presets/errors/consumption-tax/preset.json +136 -0
- package/presets/errors/depreciation-method/preset.json +133 -0
- package/presets/errors/duplicate-journal/preset.json +181 -0
- package/presets/errors/entertainment/preset.json +108 -0
- package/presets/errors/mixed/preset.json +171 -0
- package/presets/errors/officer-pay/preset.json +100 -0
- package/presets/errors/overdue-receivable/preset.json +157 -0
- package/presets/errors/tax-code/preset.json +140 -0
- package/presets/errors/year-end-closing/preset.json +163 -0
- package/presets/expenses/README.md +3 -0
- package/presets/expenses/quickstart/preset.json +240 -0
- package/presets/hr/README.md +3 -0
- package/presets/hr/quickstart/preset.json +443 -0
- package/presets/invoices/README.md +3 -0
- package/presets/invoices/quickstart/preset.json +246 -0
- package/presets/invoices/subscription/preset.json +263 -0
- package/presets/unclassified/quickstart/preset.json +182 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state-store.d.ts","sourceRoot":"","sources":["../../src/utils/state-store.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAqBrD,wBAAsB,SAAS,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAIjE;AAED,wBAAsB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAG3E;AAED,wBAAsB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAI9D;AAED,wBAAsB,aAAa,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC,CAG5D"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import fs from 'node:fs/promises';
|
|
2
|
+
import { CONFIG_DIR, STATE_FILE } from './config.js';
|
|
3
|
+
async function readStateMap() {
|
|
4
|
+
try {
|
|
5
|
+
const raw = await fs.readFile(STATE_FILE, 'utf-8');
|
|
6
|
+
return JSON.parse(raw);
|
|
7
|
+
}
|
|
8
|
+
catch {
|
|
9
|
+
return {};
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
async function writeStateMap(map) {
|
|
13
|
+
await fs.mkdir(CONFIG_DIR, { recursive: true, mode: 0o700 });
|
|
14
|
+
await fs.writeFile(STATE_FILE, JSON.stringify(map, null, 2), {
|
|
15
|
+
encoding: 'utf-8',
|
|
16
|
+
mode: 0o600,
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
export async function saveState(state) {
|
|
20
|
+
const map = await readStateMap();
|
|
21
|
+
map[state.preset] = state;
|
|
22
|
+
await writeStateMap(map);
|
|
23
|
+
}
|
|
24
|
+
export async function loadState(preset) {
|
|
25
|
+
const map = await readStateMap();
|
|
26
|
+
return map[preset] ?? null;
|
|
27
|
+
}
|
|
28
|
+
export async function clearState(preset) {
|
|
29
|
+
const map = await readStateMap();
|
|
30
|
+
delete map[preset];
|
|
31
|
+
await writeStateMap(map);
|
|
32
|
+
}
|
|
33
|
+
export async function listAllStates() {
|
|
34
|
+
const map = await readStateMap();
|
|
35
|
+
return Object.values(map);
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=state-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"state-store.js","sourceRoot":"","sources":["../../src/utils/state-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAKrD,KAAK,UAAU,YAAY;IACzB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACnD,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAa,CAAC;IACrC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,GAAa;IACxC,MAAM,EAAE,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC7D,MAAM,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;QAC3D,QAAQ,EAAE,OAAO;QACjB,IAAI,EAAE,KAAK;KACZ,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,KAAkB;IAChD,MAAM,GAAG,GAAG,MAAM,YAAY,EAAE,CAAC;IACjC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC;IAC1B,MAAM,aAAa,CAAC,GAAG,CAAC,CAAC;AAC3B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,MAAc;IAC5C,MAAM,GAAG,GAAG,MAAM,YAAY,EAAE,CAAC;IACjC,OAAO,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC;AAC7B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,MAAc;IAC7C,MAAM,GAAG,GAAG,MAAM,YAAY,EAAE,CAAC;IACjC,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC;IACnB,MAAM,aAAa,CAAC,GAAG,CAAC,CAAC;AAC3B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa;IACjC,MAAM,GAAG,GAAG,MAAM,YAAY,EAAE,CAAC;IACjC,OAAO,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AAC5B,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { FreeeTokens } from '../types/freee.js';
|
|
2
|
+
export declare function saveTokens(tokens: FreeeTokens): Promise<void>;
|
|
3
|
+
export declare function loadTokens(): Promise<FreeeTokens | null>;
|
|
4
|
+
export declare function clearTokens(): Promise<void>;
|
|
5
|
+
export declare function isTokenExpired(tokens: FreeeTokens): boolean;
|
|
6
|
+
//# sourceMappingURL=token-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token-store.d.ts","sourceRoot":"","sources":["../../src/utils/token-store.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,wBAAsB,UAAU,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAMnE;AAED,wBAAsB,UAAU,IAAI,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAO9D;AAED,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAMjD;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAE3D"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import fs from 'node:fs/promises';
|
|
2
|
+
import { CONFIG_DIR, TOKEN_FILE } from './config.js';
|
|
3
|
+
export async function saveTokens(tokens) {
|
|
4
|
+
await fs.mkdir(CONFIG_DIR, { recursive: true, mode: 0o700 });
|
|
5
|
+
await fs.writeFile(TOKEN_FILE, JSON.stringify(tokens, null, 2), {
|
|
6
|
+
encoding: 'utf-8',
|
|
7
|
+
mode: 0o600,
|
|
8
|
+
});
|
|
9
|
+
}
|
|
10
|
+
export async function loadTokens() {
|
|
11
|
+
try {
|
|
12
|
+
const raw = await fs.readFile(TOKEN_FILE, 'utf-8');
|
|
13
|
+
return JSON.parse(raw);
|
|
14
|
+
}
|
|
15
|
+
catch {
|
|
16
|
+
return null;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
export async function clearTokens() {
|
|
20
|
+
try {
|
|
21
|
+
await fs.unlink(TOKEN_FILE);
|
|
22
|
+
}
|
|
23
|
+
catch {
|
|
24
|
+
// ignore — file may not exist
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
export function isTokenExpired(tokens) {
|
|
28
|
+
return Date.now() >= tokens.expires_at;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=token-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token-store.js","sourceRoot":"","sources":["../../src/utils/token-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGrD,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,MAAmB;IAClD,MAAM,EAAE,CAAC,KAAK,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC7D,MAAM,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;QAC9D,QAAQ,EAAE,OAAO;QACjB,IAAI,EAAE,KAAK;KACZ,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU;IAC9B,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACnD,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAgB,CAAC;IACxC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW;IAC/B,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAC9B,CAAC;IAAC,MAAM,CAAC;QACP,8BAA8B;IAChC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,MAAmB;IAChD,OAAO,IAAI,CAAC,GAAG,EAAE,IAAI,MAAM,CAAC,UAAU,CAAC;AACzC,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "freee-demo-kit",
|
|
3
|
+
"version": "0.1.4",
|
|
4
|
+
"description": "freee sandbox seeder CLI — Load demo data into your freee test company",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"bin": {
|
|
7
|
+
"fdk": "dist/cli.js"
|
|
8
|
+
},
|
|
9
|
+
"scripts": {
|
|
10
|
+
"build": "tsc",
|
|
11
|
+
"dev": "tsx src/cli.ts",
|
|
12
|
+
"test": "vitest run",
|
|
13
|
+
"test:watch": "vitest",
|
|
14
|
+
"lint": "tsc --noEmit",
|
|
15
|
+
"prepublishOnly": "npm run build && npm test"
|
|
16
|
+
},
|
|
17
|
+
"files": [
|
|
18
|
+
"dist/",
|
|
19
|
+
"presets/",
|
|
20
|
+
"README.md",
|
|
21
|
+
"LICENSE"
|
|
22
|
+
],
|
|
23
|
+
"keywords": [
|
|
24
|
+
"freee",
|
|
25
|
+
"freee-api",
|
|
26
|
+
"cli",
|
|
27
|
+
"seed",
|
|
28
|
+
"demo",
|
|
29
|
+
"accounting",
|
|
30
|
+
"bookkeeping",
|
|
31
|
+
"tax",
|
|
32
|
+
"invoice",
|
|
33
|
+
"sandbox",
|
|
34
|
+
"preset",
|
|
35
|
+
"japanese-accounting"
|
|
36
|
+
],
|
|
37
|
+
"author": "tackeyy",
|
|
38
|
+
"license": "MIT",
|
|
39
|
+
"engines": {
|
|
40
|
+
"node": ">=20.0.0"
|
|
41
|
+
},
|
|
42
|
+
"dependencies": {
|
|
43
|
+
"@clack/prompts": "^1.1.0",
|
|
44
|
+
"commander": "^12.0.0",
|
|
45
|
+
"dotenv": "^17.3.1",
|
|
46
|
+
"picocolors": "^1.1.1"
|
|
47
|
+
},
|
|
48
|
+
"devDependencies": {
|
|
49
|
+
"@faker-js/faker": "^10.4.0",
|
|
50
|
+
"@types/node": "^20.0.0",
|
|
51
|
+
"tsx": "^4.0.0",
|
|
52
|
+
"typescript": "^5.0.0",
|
|
53
|
+
"vitest": "^1.0.0"
|
|
54
|
+
},
|
|
55
|
+
"overrides": {
|
|
56
|
+
"esbuild": "^0.25.0"
|
|
57
|
+
}
|
|
58
|
+
}
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
# Presets
|
|
2
|
+
|
|
3
|
+
freee-demo-kit のプリセットは、freee サンドボックス事業所に投入するデモデータのセットです。
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 利用可能なプリセット
|
|
8
|
+
|
|
9
|
+
### 通常プリセット
|
|
10
|
+
|
|
11
|
+
| プリセット | 概要 | 口座 | 取引 | 仕訳 |
|
|
12
|
+
|-----------|------|:----:|:----:|:----:|
|
|
13
|
+
| `accounting/quickstart` | 架空ITサービス業・3ヶ月分の会計データ(売上・外注・給与・経費) | 3 | 52 | 5 |
|
|
14
|
+
| `accounting/full-year` | 架空ITサービス業・12ヶ月分・異常値パターン付き(月次レビュー・データ分析デモ用) | 3 | 98 | 12 |
|
|
15
|
+
| `accounting/restaurant` | 架空居酒屋・飲食業・軽減税率仕入(食材8%・酒類10%)・季節変動 | 2 | 35 | 6 |
|
|
16
|
+
| `accounting/construction` | 架空外装工事業・建設業・完成工事高・外注費3分法・未成工事仕掛計上 | 2 | 30 | 6 |
|
|
17
|
+
| `accounting/sole-proprietor` | 架空フリーランス(個人事業主)・事業主報酬・専従者対応 | 2 | 20 | 6 |
|
|
18
|
+
| `accounting/medical` | 架空内科クリニック・保険診療(非課税)と自費診療(課税)の混在 | 2 | 24 | 6 |
|
|
19
|
+
| `accounting/real-estate` | 架空不動産賃貸業・居住用(非課税)と事務所(課税)の混在 | 1 | 24 | 6 |
|
|
20
|
+
| `accounting/retail` | 架空雑貨小売店・商品仕入・棚卸・月次在庫調整 | 2 | 30 | 6 |
|
|
21
|
+
| `accounting/it-startup` | 架空SaaS企業・サブスク収益・ソフトウェア資産計上・前受収益 | 1 | 21 | 9 |
|
|
22
|
+
| `accounting/non-profit` | 架空NPO法人・収益事業(課税)と非収益事業(非課税)の区分管理 | 1 | 18 | 6 |
|
|
23
|
+
| `accounting/manufacturing` | 架空製造業・材料費・労務費・製造間接費・仕掛品・製品勘定 | 2 | 30 | 9 |
|
|
24
|
+
| `accounting/payroll-agency` | 社労士・給与計算代行・顧問料収入・社会保険料預り金処理 | 2 | 27 | 6 |
|
|
25
|
+
| `accounting/npo-subsidy` | 補助金受給NPO法人・交付決定→入金→精算・前受金・会費収入 | 2 | 24 | 6 |
|
|
26
|
+
| `accounting/freelance-invoice` | インボイス制度対応フリーランス・登録番号あり/なし混在・源泉徴収 | 2 | 24 | 6 |
|
|
27
|
+
| `invoices/quickstart` | 請求書・売掛金管理(入金消込・貸倒引当金フロー含む) | 2 | 22 | 6 |
|
|
28
|
+
| `invoices/subscription` | SaaS月次サブスクリプション・年次一括・前受収益の月次振替 | 2 | 24 | 6 |
|
|
29
|
+
| `expenses/quickstart` | 経費精算(交通費・接待費・消耗品費・通信費) | 2 | 24 | 3 |
|
|
30
|
+
| `hr/quickstart` | 給与・人事(基本給・残業代・社会保険料・源泉所得税) | 1 | 34 | 20 |
|
|
31
|
+
| `unclassified/quickstart` | 銀行明細インポート直後を再現・勘定科目分類の演習・検証用(全費用を「雑費」で仮計上) | 1 | 20 | 0 |
|
|
32
|
+
| `common/depreciation` | 固定資産・月次減価償却(PC・サーバー・エアコン) | 1 | 18 | 9 |
|
|
33
|
+
| `advanced/multi-period` | 複数期比較・前期繰越残高・期首仕訳(財務DD・年度比較デモ用) | 3 | 32 | 9 |
|
|
34
|
+
| `advanced/multi-company` | グループ会社・親子会社間取引・連結消去仕訳(M&A PMI デモ用) | 4 | 36 | 6 |
|
|
35
|
+
|
|
36
|
+
### エラーインジェクション・プリセット
|
|
37
|
+
|
|
38
|
+
意図的に会計・税務上の誤りを含むデータセット。`fdk validate --accounting` で検出できます。
|
|
39
|
+
|
|
40
|
+
| プリセット | 混入エラー | 検出ルール |
|
|
41
|
+
|-----------|-----------|-----------|
|
|
42
|
+
| `errors/officer-pay` | 役員報酬を「給料手当」で誤計上(3件) | OFFICER-PAY-001 |
|
|
43
|
+
| `errors/tax-code` | 売上高・外注費・給料手当の税区分誤り(12件) | TAX-CODE-001 |
|
|
44
|
+
| `errors/entertainment` | 交際費の月次上限(¥667,000)超過(2ヶ月) | ENTERTAINMENT-001 |
|
|
45
|
+
| `errors/mixed` | 上記3種の複合エラー(上級トレーニング用) | 全ルール |
|
|
46
|
+
| `errors/consumption-tax` | インボイス未登録業者の控除過大・軽減税率/非課税の誤適用 | TAX-CODE-001 |
|
|
47
|
+
| `errors/year-end-closing` | 翌期売上の前倒し計上・前払費用の誤処理・未払費用計上漏れ・仮勘定未振替 | PERIOD-001/002, ACCRUAL-001, SUSPENSE-001 |
|
|
48
|
+
| `errors/depreciation-method` | 償却方法誤り(定額↔定率)・耐用年数誤適用・少額減価償却特例の誤適用 | DEPRECIATION-001/002/003 |
|
|
49
|
+
| `errors/overdue-receivable` | 長期未回収売掛金・貸倒引当金未計上・法的貸倒の未処理・合意なし相殺 | RECEIVABLE-001/002/003 |
|
|
50
|
+
| `errors/duplicate-journal` | 同一取引の二重入力・自動仕訳と手動仕訳の重複・月次締め後の再計上 | DUPLICATE-001/002/003 |
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
## プリセットの JSON 構造
|
|
55
|
+
|
|
56
|
+
各プリセットは `preset.json` 1ファイルで完結します。
|
|
57
|
+
|
|
58
|
+
```json
|
|
59
|
+
{
|
|
60
|
+
"name": "プリセット名",
|
|
61
|
+
"description": "説明",
|
|
62
|
+
"version": "1.0.0",
|
|
63
|
+
"expected": {
|
|
64
|
+
"walletables": 3,
|
|
65
|
+
"deals": 52,
|
|
66
|
+
"manualJournals": 5
|
|
67
|
+
},
|
|
68
|
+
"data": {
|
|
69
|
+
"walletables": [...],
|
|
70
|
+
"deals": [...],
|
|
71
|
+
"manualJournals": [...]
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
エラーインジェクション・プリセットは `error_manifest` フィールドを追加で持ちます。
|
|
77
|
+
|
|
78
|
+
```json
|
|
79
|
+
{
|
|
80
|
+
"error_manifest": [
|
|
81
|
+
{
|
|
82
|
+
"rule": "OFFICER-PAY-001",
|
|
83
|
+
"location": "deals[0] — partner_name: 代表取締役 佐藤 義雄",
|
|
84
|
+
"description": "役員報酬を「給料手当」で計上している。",
|
|
85
|
+
"expected_fix": "account_item_name を「役員報酬」に変更する"
|
|
86
|
+
}
|
|
87
|
+
]
|
|
88
|
+
}
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
## フィールド仕様
|
|
94
|
+
|
|
95
|
+
### walletables(口座)
|
|
96
|
+
|
|
97
|
+
| フィールド | 型 | 必須 | 説明 |
|
|
98
|
+
|-----------|-----|:---:|------|
|
|
99
|
+
| `type` | `"bank_account"` \| `"credit_card"` \| `"wallet"` \| `"other"` | ✅ | 口座種別 |
|
|
100
|
+
| `name` | string | ✅ | 口座名(freee 上で一意。既存口座と同名の場合は再利用) |
|
|
101
|
+
| `bank_id` | number | `bank_account`/`credit_card` の場合必須 | freee の金融機関ID |
|
|
102
|
+
|
|
103
|
+
### deals(取引)
|
|
104
|
+
|
|
105
|
+
| フィールド | 型 | 必須 | 説明 |
|
|
106
|
+
|-----------|-----|:---:|------|
|
|
107
|
+
| `issue_date` | `"YYYY-MM-DD"` | ✅ | 発生日 |
|
|
108
|
+
| `type` | `"income"` \| `"expense"` | ✅ | 収入/支出 |
|
|
109
|
+
| `partner_name` | string | — | 取引先名(存在しない場合は自動作成) |
|
|
110
|
+
| `details` | array | ✅ | 明細(複数可) |
|
|
111
|
+
| `details[].account_item_name` | string | ✅ | 勘定科目名(freee デフォルト科目名を使用) |
|
|
112
|
+
| `details[].tax_code` | number | ✅ | 税区分コード(0:不課税, 21:課税売上10%, 34:課税仕入10%) |
|
|
113
|
+
| `details[].amount` | number | ✅ | 金額(税込) |
|
|
114
|
+
| `details[].description` | string | — | 摘要 |
|
|
115
|
+
|
|
116
|
+
### manualJournals(手動仕訳)
|
|
117
|
+
|
|
118
|
+
| フィールド | 型 | 必須 | 説明 |
|
|
119
|
+
|-----------|-----|:---:|------|
|
|
120
|
+
| `issue_date` | `"YYYY-MM-DD"` | ✅ | 仕訳日 |
|
|
121
|
+
| `details` | array | ✅ | 明細(借方・貸方で対になるように記述) |
|
|
122
|
+
| `details[].entry_side` | `"debit"` \| `"credit"` | ✅ | 借方/貸方 |
|
|
123
|
+
| `details[].account_item_name` | string | ✅ | 勘定科目名 |
|
|
124
|
+
| `details[].tax_code` | number | ✅ | 税区分コード |
|
|
125
|
+
| `details[].amount` | number | ✅ | 金額 |
|
|
126
|
+
| `details[].description` | string | — | 摘要 |
|
|
127
|
+
|
|
128
|
+
---
|
|
129
|
+
|
|
130
|
+
## よく使う税区分コード
|
|
131
|
+
|
|
132
|
+
| tax_code | 名称 | 主な用途 |
|
|
133
|
+
|:--------:|------|---------|
|
|
134
|
+
| `0` | 不課税 | 給与・社会保険料・売掛金回収・振替仕訳 |
|
|
135
|
+
| `21` | 課税売上10% | 売上高(消費税課税) |
|
|
136
|
+
| `13` | 課税売上8%(軽減) | 飲食品等の売上 |
|
|
137
|
+
| `34` | 課税仕入10% | 外注費・消耗品費・交際費・通信費等 |
|
|
138
|
+
| `18` | 課税仕入8%(軽減) | 軽減税率対象の仕入 |
|
|
139
|
+
|
|
140
|
+
---
|
|
141
|
+
|
|
142
|
+
## カスタムプリセットの作り方
|
|
143
|
+
|
|
144
|
+
1. `presets/<カテゴリ>/<名前>/` ディレクトリを作成
|
|
145
|
+
2. `preset.json` を上記の仕様に従って作成
|
|
146
|
+
3. `fdk validate <カテゴリ>/<名前>` でバリデーション
|
|
147
|
+
4. `fdk validate <カテゴリ>/<名前> --accounting` で会計・税務チェック
|
|
148
|
+
5. `fdk load <カテゴリ>/<名前> --dry-run` で内容を確認
|
|
149
|
+
6. `fdk load <カテゴリ>/<名前>` で投入
|
|
150
|
+
|
|
151
|
+
### バリデーション内容
|
|
152
|
+
|
|
153
|
+
`fdk validate` は以下をチェックします:
|
|
154
|
+
|
|
155
|
+
- **スキーマ**: 必須フィールドの存在確認
|
|
156
|
+
- **件数整合**: `expected` の件数と `data` の実際の件数が一致するか
|
|
157
|
+
- **貸借バランス**: 手動仕訳の借方合計 = 貸方合計
|
|
158
|
+
|
|
159
|
+
`fdk validate --accounting` は追加で以下をチェックします:
|
|
160
|
+
|
|
161
|
+
| ルールID | 内容 | 深刻度 |
|
|
162
|
+
|---------|------|:------:|
|
|
163
|
+
| `OFFICER-PAY-001` | 役員(取締役・監査役等)の取引に「給料手当」が使われていないか | ERROR |
|
|
164
|
+
| `TAX-CODE-001` | 勘定科目ごとの許容税区分と不一致がないか | ERROR |
|
|
165
|
+
| `ENTERTAINMENT-001` | 交際費の月合計が ¥667,000 を超過していないか | WARNING |
|
|
166
|
+
|
|
167
|
+
---
|
|
168
|
+
|
|
169
|
+
## 命名規則
|
|
170
|
+
|
|
171
|
+
プリセットのデータはすべて**架空の企業・人物名**を使用します。
|
|
172
|
+
|
|
173
|
+
- 実在する企業名・金融機関名・個人名を使用しないでください
|
|
174
|
+
- `fdk validate` に含まれるブロックリストチェックで検出されます
|
|
175
|
+
- ブロックリストの仕様: `tests/unit/no-real-names.test.ts` を参照
|
|
176
|
+
|
|
177
|
+
### 架空名のガイドライン
|
|
178
|
+
|
|
179
|
+
- 銀行: 「○○信用銀行」「○○銀行」(実在しない組み合わせ)
|
|
180
|
+
- 企業: 「株式会社○○システムズ」「○○産業株式会社」等
|
|
181
|
+
- 個人: 「社員 ○○」「代表取締役 ○○ ○○」等(役職 + 姓 + 名)
|
|
182
|
+
- 勘定科目の文字は含めない(例:「田中」は勘定科目テストのブロックワードに該当)
|
|
@@ -0,0 +1,309 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "建設業クイックスタート",
|
|
3
|
+
"description": "架空の小規模外装工事業(年商6,000万円相当)の3ヶ月分の会計データ。完成工事高・工事原価(材料費・労務費・外注費の3分法)・未成工事の仕掛計上を含む。",
|
|
4
|
+
"version": "1.0.0",
|
|
5
|
+
"expected": {
|
|
6
|
+
"walletables": 2,
|
|
7
|
+
"deals": 30,
|
|
8
|
+
"manualJournals": 6
|
|
9
|
+
},
|
|
10
|
+
"data": {
|
|
11
|
+
"walletables": [
|
|
12
|
+
{
|
|
13
|
+
"type": "bank_account",
|
|
14
|
+
"name": "東海信用金庫 普通預金",
|
|
15
|
+
"bank_id": 2407
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"type": "wallet",
|
|
19
|
+
"name": "小口現金"
|
|
20
|
+
}
|
|
21
|
+
],
|
|
22
|
+
"deals": [
|
|
23
|
+
{
|
|
24
|
+
"issue_date": "2026-01-20",
|
|
25
|
+
"type": "income",
|
|
26
|
+
"partner_name": "旭川工業株式会社",
|
|
27
|
+
"details": [
|
|
28
|
+
{ "account_item_name": "売上高", "tax_code": 21, "amount": 3300000, "description": "外壁塗装工事 完成引渡(旭川工業様 倉庫棟)" }
|
|
29
|
+
]
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"issue_date": "2026-01-31",
|
|
33
|
+
"type": "income",
|
|
34
|
+
"partner_name": "緑丘住宅株式会社",
|
|
35
|
+
"details": [
|
|
36
|
+
{ "account_item_name": "売上高", "tax_code": 21, "amount": 1980000, "description": "屋根防水工事 完成引渡(緑丘住宅様 集合住宅)" }
|
|
37
|
+
]
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
"issue_date": "2026-01-10",
|
|
41
|
+
"type": "expense",
|
|
42
|
+
"partner_name": "東洋建材株式会社",
|
|
43
|
+
"details": [
|
|
44
|
+
{ "account_item_name": "外注費", "tax_code": 34, "amount": 880000, "description": "外壁塗装工事 塗装材料費(旭川工業様 現場分)" }
|
|
45
|
+
]
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"issue_date": "2026-01-10",
|
|
49
|
+
"type": "expense",
|
|
50
|
+
"partner_name": "職人 渡辺 組",
|
|
51
|
+
"details": [
|
|
52
|
+
{ "account_item_name": "外注費", "tax_code": 34, "amount": 660000, "description": "外壁塗装工事 施工外注費(渡辺組)" }
|
|
53
|
+
]
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
"issue_date": "2026-01-15",
|
|
57
|
+
"type": "expense",
|
|
58
|
+
"partner_name": "城南足場リース株式会社",
|
|
59
|
+
"details": [
|
|
60
|
+
{ "account_item_name": "外注費", "tax_code": 34, "amount": 330000, "description": "足場リース費(旭川工業様 現場)" }
|
|
61
|
+
]
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
"issue_date": "2026-01-15",
|
|
65
|
+
"type": "expense",
|
|
66
|
+
"partner_name": "防水工業 北山",
|
|
67
|
+
"details": [
|
|
68
|
+
{ "account_item_name": "外注費", "tax_code": 34, "amount": 550000, "description": "屋根防水工事 防水施工外注(緑丘住宅様)" }
|
|
69
|
+
]
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
"issue_date": "2026-01-25",
|
|
73
|
+
"type": "expense",
|
|
74
|
+
"partner_name": "社員 大島 健一 他2名",
|
|
75
|
+
"details": [
|
|
76
|
+
{ "account_item_name": "給料手当", "tax_code": 0, "amount": 780000, "description": "1月 現場管理スタッフ3名 給与" }
|
|
77
|
+
]
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
"issue_date": "2026-01-25",
|
|
81
|
+
"type": "expense",
|
|
82
|
+
"partner_name": "代表取締役 上野 正則",
|
|
83
|
+
"details": [
|
|
84
|
+
{ "account_item_name": "役員報酬", "tax_code": 0, "amount": 600000, "description": "1月度 役員報酬" }
|
|
85
|
+
]
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
"issue_date": "2026-01-31",
|
|
89
|
+
"type": "expense",
|
|
90
|
+
"partner_name": "桜台不動産株式会社",
|
|
91
|
+
"details": [
|
|
92
|
+
{ "account_item_name": "地代家賃", "tax_code": 0, "amount": 110000, "description": "事務所・資材倉庫 賃料 1月分" }
|
|
93
|
+
]
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
"issue_date": "2026-01-31",
|
|
97
|
+
"type": "expense",
|
|
98
|
+
"partner_name": "建機リース株式会社",
|
|
99
|
+
"details": [
|
|
100
|
+
{ "account_item_name": "外注費", "tax_code": 34, "amount": 165000, "description": "高圧洗浄機・コンプレッサー レンタル代 1月" }
|
|
101
|
+
]
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
"issue_date": "2026-02-15",
|
|
105
|
+
"type": "income",
|
|
106
|
+
"partner_name": "株式会社サンライズ建設",
|
|
107
|
+
"details": [
|
|
108
|
+
{ "account_item_name": "売上高", "tax_code": 21, "amount": 5500000, "description": "新築外構工事 中間払(サンライズ建設様 分譲地 #2)" }
|
|
109
|
+
]
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
"issue_date": "2026-02-10",
|
|
113
|
+
"type": "expense",
|
|
114
|
+
"partner_name": "東洋建材株式会社",
|
|
115
|
+
"details": [
|
|
116
|
+
{ "account_item_name": "外注費", "tax_code": 34, "amount": 1320000, "description": "新築外構工事 コンクリート・砕石材料(サンライズ建設様)" }
|
|
117
|
+
]
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
"issue_date": "2026-02-10",
|
|
121
|
+
"type": "expense",
|
|
122
|
+
"partner_name": "大林土木工事",
|
|
123
|
+
"details": [
|
|
124
|
+
{ "account_item_name": "外注費", "tax_code": 34, "amount": 880000, "description": "新築外構工事 掘削・基礎工事(大林土木)" }
|
|
125
|
+
]
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
"issue_date": "2026-02-20",
|
|
129
|
+
"type": "expense",
|
|
130
|
+
"partner_name": "職人 渡辺 組",
|
|
131
|
+
"details": [
|
|
132
|
+
{ "account_item_name": "外注費", "tax_code": 34, "amount": 550000, "description": "新築外構工事 左官・タイル施工(渡辺組)" }
|
|
133
|
+
]
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
"issue_date": "2026-02-25",
|
|
137
|
+
"type": "expense",
|
|
138
|
+
"partner_name": "社員 大島 健一 他2名",
|
|
139
|
+
"details": [
|
|
140
|
+
{ "account_item_name": "給料手当", "tax_code": 0, "amount": 780000, "description": "2月 現場管理スタッフ3名 給与" }
|
|
141
|
+
]
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
"issue_date": "2026-02-25",
|
|
145
|
+
"type": "expense",
|
|
146
|
+
"partner_name": "代表取締役 上野 正則",
|
|
147
|
+
"details": [
|
|
148
|
+
{ "account_item_name": "役員報酬", "tax_code": 0, "amount": 600000, "description": "2月度 役員報酬" }
|
|
149
|
+
]
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
"issue_date": "2026-02-28",
|
|
153
|
+
"type": "expense",
|
|
154
|
+
"partner_name": "桜台不動産株式会社",
|
|
155
|
+
"details": [
|
|
156
|
+
{ "account_item_name": "地代家賃", "tax_code": 0, "amount": 110000, "description": "事務所・資材倉庫 賃料 2月分" }
|
|
157
|
+
]
|
|
158
|
+
},
|
|
159
|
+
{
|
|
160
|
+
"issue_date": "2026-02-28",
|
|
161
|
+
"type": "expense",
|
|
162
|
+
"partner_name": "建機リース株式会社",
|
|
163
|
+
"details": [
|
|
164
|
+
{ "account_item_name": "外注費", "tax_code": 34, "amount": 220000, "description": "重機リース代 2月(油圧ショベル)" }
|
|
165
|
+
]
|
|
166
|
+
},
|
|
167
|
+
{
|
|
168
|
+
"issue_date": "2026-02-28",
|
|
169
|
+
"type": "expense",
|
|
170
|
+
"partner_name": "サクラ通信サービス株式会社",
|
|
171
|
+
"details": [
|
|
172
|
+
{ "account_item_name": "通信費", "tax_code": 34, "amount": 22000, "description": "現場用携帯電話代 2月(4台分)" }
|
|
173
|
+
]
|
|
174
|
+
},
|
|
175
|
+
{
|
|
176
|
+
"issue_date": "2026-03-31",
|
|
177
|
+
"type": "income",
|
|
178
|
+
"partner_name": "株式会社サンライズ建設",
|
|
179
|
+
"details": [
|
|
180
|
+
{ "account_item_name": "売上高", "tax_code": 21, "amount": 5500000, "description": "新築外構工事 最終払(サンライズ建設様 分譲地 #2 完成引渡)" }
|
|
181
|
+
]
|
|
182
|
+
},
|
|
183
|
+
{
|
|
184
|
+
"issue_date": "2026-03-20",
|
|
185
|
+
"type": "income",
|
|
186
|
+
"partner_name": "東海マンション管理組合",
|
|
187
|
+
"details": [
|
|
188
|
+
{ "account_item_name": "売上高", "tax_code": 21, "amount": 2200000, "description": "マンション大規模修繕 外壁補修完成引渡" }
|
|
189
|
+
]
|
|
190
|
+
},
|
|
191
|
+
{
|
|
192
|
+
"issue_date": "2026-03-10",
|
|
193
|
+
"type": "expense",
|
|
194
|
+
"partner_name": "東洋建材株式会社",
|
|
195
|
+
"details": [
|
|
196
|
+
{ "account_item_name": "外注費", "tax_code": 34, "amount": 660000, "description": "マンション外壁補修 補修材料費" }
|
|
197
|
+
]
|
|
198
|
+
},
|
|
199
|
+
{
|
|
200
|
+
"issue_date": "2026-03-10",
|
|
201
|
+
"type": "expense",
|
|
202
|
+
"partner_name": "職人 渡辺 組",
|
|
203
|
+
"details": [
|
|
204
|
+
{ "account_item_name": "外注費", "tax_code": 34, "amount": 440000, "description": "マンション外壁補修 施工外注(渡辺組)" }
|
|
205
|
+
]
|
|
206
|
+
},
|
|
207
|
+
{
|
|
208
|
+
"issue_date": "2026-03-10",
|
|
209
|
+
"type": "expense",
|
|
210
|
+
"partner_name": "城南足場リース株式会社",
|
|
211
|
+
"details": [
|
|
212
|
+
{ "account_item_name": "外注費", "tax_code": 34, "amount": 275000, "description": "マンション外壁補修 足場リース費" }
|
|
213
|
+
]
|
|
214
|
+
},
|
|
215
|
+
{
|
|
216
|
+
"issue_date": "2026-03-15",
|
|
217
|
+
"type": "expense",
|
|
218
|
+
"partner_name": "大林土木工事",
|
|
219
|
+
"details": [
|
|
220
|
+
{ "account_item_name": "外注費", "tax_code": 34, "amount": 330000, "description": "サンライズ建設様 外構最終仕上げ工事(大林土木)" }
|
|
221
|
+
]
|
|
222
|
+
},
|
|
223
|
+
{
|
|
224
|
+
"issue_date": "2026-03-25",
|
|
225
|
+
"type": "expense",
|
|
226
|
+
"partner_name": "社員 大島 健一 他2名",
|
|
227
|
+
"details": [
|
|
228
|
+
{ "account_item_name": "給料手当", "tax_code": 0, "amount": 780000, "description": "3月 現場管理スタッフ3名 給与" }
|
|
229
|
+
]
|
|
230
|
+
},
|
|
231
|
+
{
|
|
232
|
+
"issue_date": "2026-03-25",
|
|
233
|
+
"type": "expense",
|
|
234
|
+
"partner_name": "代表取締役 上野 正則",
|
|
235
|
+
"details": [
|
|
236
|
+
{ "account_item_name": "役員報酬", "tax_code": 0, "amount": 600000, "description": "3月度 役員報酬" }
|
|
237
|
+
]
|
|
238
|
+
},
|
|
239
|
+
{
|
|
240
|
+
"issue_date": "2026-03-31",
|
|
241
|
+
"type": "expense",
|
|
242
|
+
"partner_name": "桜台不動産株式会社",
|
|
243
|
+
"details": [
|
|
244
|
+
{ "account_item_name": "地代家賃", "tax_code": 0, "amount": 110000, "description": "事務所・資材倉庫 賃料 3月分" }
|
|
245
|
+
]
|
|
246
|
+
},
|
|
247
|
+
{
|
|
248
|
+
"issue_date": "2026-03-31",
|
|
249
|
+
"type": "expense",
|
|
250
|
+
"partner_name": "建機リース株式会社",
|
|
251
|
+
"details": [
|
|
252
|
+
{ "account_item_name": "外注費", "tax_code": 34, "amount": 165000, "description": "重機リース代 3月(油圧ショベル)" }
|
|
253
|
+
]
|
|
254
|
+
},
|
|
255
|
+
{
|
|
256
|
+
"issue_date": "2026-03-31",
|
|
257
|
+
"type": "expense",
|
|
258
|
+
"partner_name": "サクラ通信サービス株式会社",
|
|
259
|
+
"details": [
|
|
260
|
+
{ "account_item_name": "通信費", "tax_code": 34, "amount": 22000, "description": "現場用携帯電話代 3月(4台分)" }
|
|
261
|
+
]
|
|
262
|
+
}
|
|
263
|
+
],
|
|
264
|
+
"manualJournals": [
|
|
265
|
+
{
|
|
266
|
+
"issue_date": "2026-01-31",
|
|
267
|
+
"details": [
|
|
268
|
+
{ "entry_side": "debit", "account_item_name": "外注費", "tax_code": 0, "amount": 198000, "description": "1月末 工事外注費未払計上(月末未入力分)" },
|
|
269
|
+
{ "entry_side": "credit", "account_item_name": "未払費用", "tax_code": 0, "amount": 198000, "description": "1月末 外注費未払振替" }
|
|
270
|
+
]
|
|
271
|
+
},
|
|
272
|
+
{
|
|
273
|
+
"issue_date": "2026-01-31",
|
|
274
|
+
"details": [
|
|
275
|
+
{ "entry_side": "debit", "account_item_name": "法定福利費", "tax_code": 0, "amount": 122000, "description": "1月 社会保険料 会社負担分" },
|
|
276
|
+
{ "entry_side": "credit", "account_item_name": "未払費用", "tax_code": 0, "amount": 122000, "description": "1月 社会保険料 未払計上" }
|
|
277
|
+
]
|
|
278
|
+
},
|
|
279
|
+
{
|
|
280
|
+
"issue_date": "2026-02-28",
|
|
281
|
+
"details": [
|
|
282
|
+
{ "entry_side": "debit", "account_item_name": "外注費", "tax_code": 0, "amount": 330000, "description": "2月末 工事外注費未払計上(サンライズ建設様 3月引渡分)" },
|
|
283
|
+
{ "entry_side": "credit", "account_item_name": "未払費用", "tax_code": 0, "amount": 330000, "description": "2月末 外注費未払振替" }
|
|
284
|
+
]
|
|
285
|
+
},
|
|
286
|
+
{
|
|
287
|
+
"issue_date": "2026-02-28",
|
|
288
|
+
"details": [
|
|
289
|
+
{ "entry_side": "debit", "account_item_name": "法定福利費", "tax_code": 0, "amount": 122000, "description": "2月 社会保険料 会社負担分" },
|
|
290
|
+
{ "entry_side": "credit", "account_item_name": "未払費用", "tax_code": 0, "amount": 122000, "description": "2月 社会保険料 未払計上" }
|
|
291
|
+
]
|
|
292
|
+
},
|
|
293
|
+
{
|
|
294
|
+
"issue_date": "2026-03-31",
|
|
295
|
+
"details": [
|
|
296
|
+
{ "entry_side": "debit", "account_item_name": "外注費", "tax_code": 0, "amount": 275000, "description": "3月末 工事外注費未払計上(年度末精算分)" },
|
|
297
|
+
{ "entry_side": "credit", "account_item_name": "未払費用", "tax_code": 0, "amount": 275000, "description": "3月末 外注費未払振替" }
|
|
298
|
+
]
|
|
299
|
+
},
|
|
300
|
+
{
|
|
301
|
+
"issue_date": "2026-03-31",
|
|
302
|
+
"details": [
|
|
303
|
+
{ "entry_side": "debit", "account_item_name": "法定福利費", "tax_code": 0, "amount": 122000, "description": "3月 社会保険料 会社負担分" },
|
|
304
|
+
{ "entry_side": "credit", "account_item_name": "未払費用", "tax_code": 0, "amount": 122000, "description": "3月 社会保険料 未払計上" }
|
|
305
|
+
]
|
|
306
|
+
}
|
|
307
|
+
]
|
|
308
|
+
}
|
|
309
|
+
}
|