This commit is contained in:
admin
2026-03-03 00:01:43 +09:00
parent 3b028b8fc0
commit 068903b933
31 changed files with 3204 additions and 889 deletions

81
verify_pl.py Normal file
View File

@@ -0,0 +1,81 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import requests
import json
# 試算表API取得
api_url = "http://127.0.0.1:18080/trial-balance"
params = {
"date_from": "2025-06-01",
"date_to": "2025-12-31"
}
response = requests.get(api_url, params=params, timeout=10)
if response.status_code != 200:
print("API Error:", response.text)
exit(1)
data = response.json()
# 損益計算科目を全て抽出
pl_items = {}
for row in data.get('accounts', []):
code = str(row.get('account_code', '')).strip()
name = row.get('account_name', '')
debit = float(row.get('debit', 0) or 0)
credit = float(row.get('credit', 0) or 0)
# 損益計算科目
if code in ('701', '702', '709', '801', '802', '803', '804', '805', '806', '807', '808', '809', '810', '811', '812', '813', '814', '815', '816', '817', '818', '819', '820', '504', '505'):
pl_items[code] = {
'name': name,
'debit': debit,
'credit': credit
}
# 全損益科目出力
print("=" * 80)
print("P/L Items Details")
print("=" * 80)
print(f"{'Code':<10} {'Name':<30} {'Debit':>15} {'Credit':>15}")
print("-" * 80)
total_operating_expenses = 0
for code in sorted(pl_items.keys()):
item = pl_items[code]
print(f"{code:<10} {item['name']:<30} {item['debit']:>15,.0f} {item['credit']:>15,.0f}")
if code in ('802', '803', '804', '805', '806', '807', '808', '809', '810', '811', '812', '813', '814', '815', '816', '817', '818', '819', '820'):
total_operating_expenses += item['debit'] - item['credit']
print("-" * 80)
# 計算
operating_revenue = pl_items.get('701', {}).get('credit', 0) - pl_items.get('701', {}).get('debit', 0)
cogs = pl_items.get('801', {}).get('debit', 0) - pl_items.get('801', {}).get('credit', 0)
non_op_702 = pl_items.get('702', {}).get('credit', 0) - pl_items.get('702', {}).get('debit', 0)
non_op_709 = pl_items.get('709', {}).get('credit', 0) - pl_items.get('709', {}).get('debit', 0)
non_operating_revenue = non_op_702 + non_op_709
corporate_tax = pl_items.get('504', {}).get('credit', 0) - pl_items.get('504', {}).get('debit', 0)
consumption_tax = pl_items.get('505', {}).get('credit', 0) - pl_items.get('505', {}).get('debit', 0)
gross_profit = operating_revenue - cogs
operating_profit = gross_profit - total_operating_expenses
ordinary_profit = operating_profit + non_operating_revenue
# 当期純利益(税引前)= 経常利益504,505は負債科目のため含めない
net_profit = ordinary_profit
print("\nCalculation Results:")
print(f"Operating Revenue (701): {operating_revenue:,.0f}")
print(f"COGS (801): {cogs:,.0f}")
print(f"Gross Profit: {gross_profit:,.0f}")
print(f"Operating Expenses: {total_operating_expenses:,.0f}")
print(f"Operating Profit: {operating_profit:,.0f}")
print(f"Non-op Revenue: {non_operating_revenue:,.0f}")
print(f"Ordinary Profit: {ordinary_profit:,.0f}")
print(f"NET PROFIT (Before Tax): {net_profit:,.0f}")
print(f"\nAccountant Data: 7193796")
print(f"Difference: {net_profit - 7193796:,.0f}")
print(f"(Note: Our amount is PRE-TAX. Accountant data may include tax effects.)")