Files
njts-accounting-core/backend/check_trial_balance.py
2026-01-16 09:50:21 +09:00

94 lines
3.0 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import os
os.environ['DB_HOST'] = '192.168.0.61'
os.environ['DB_PORT'] = '55432'
os.environ['DB_NAME'] = 'njts_acct'
os.environ['DB_USER'] = 'njts_app'
os.environ['DB_PASSWORD'] = 'njts_app2025'
import sys
sys.path.insert(0, os.path.dirname(__file__))
from app.core.database import get_connection
conn = get_connection()
cur = conn.cursor()
# 社会保険料関連の仕訳を確認
print("\n=== 2025年4月 社会保険料の仕訳チェーン ===")
cur.execute("""
SELECT
je.journal_entry_id,
je.entry_date,
je.description,
je.parent_entry_id,
je.is_deleted,
CASE
WHEN EXISTS (SELECT 1 FROM journal_entries child WHERE child.parent_entry_id = je.journal_entry_id)
THEN 'Y' ELSE 'N'
END as has_child
FROM journal_entries je
WHERE je.description LIKE '%2025年4月 社会保険料%'
ORDER BY je.journal_entry_id
""")
rows = cur.fetchall()
for r in rows:
print(f"ID:{r['journal_entry_id']:3d} 親:{r['parent_entry_id'] or '-':>3} 子:{r['has_child']} 削除:{r['is_deleted']} {r['description']}")
# 試算表と同じロジックで集計
print("\n=== 試算表と同じロジックでの集計2025-06-012025-06-30 ===")
cur.execute("""
SELECT
je.journal_entry_id,
je.entry_date,
je.description,
jl.debit,
jl.credit,
je.parent_entry_id,
je.is_deleted,
CASE
WHEN EXISTS (SELECT 1 FROM journal_entries child WHERE child.parent_entry_id = je.journal_entry_id)
THEN 'Y' ELSE 'N'
END as has_child
FROM journal_entries je
JOIN journal_lines jl ON je.journal_entry_id = jl.journal_entry_id
JOIN accounts a ON jl.account_id = a.account_id
WHERE a.account_code = '102'
AND je.entry_date BETWEEN '2025-06-01' AND '2025-06-30'
AND je.description <> '前期残高'
AND je.is_deleted = false
ORDER BY je.journal_entry_id
""")
print(f"\n{'ID':>3} {'日付':10} {'借方':>12} {'貸方':>12} {'':>3} {'':2} {'集計':4} 摘要")
print("-" * 120)
total_debit_all = 0
total_credit_all = 0
total_debit_filtered = 0
total_credit_filtered = 0
rows = cur.fetchall()
for r in rows:
total_debit_all += r['debit']
total_credit_all += r['credit']
# 試算表のロジック: 子を持たない仕訳のみ集計
should_include = r['has_child'] == 'N'
if should_include:
total_debit_filtered += r['debit']
total_credit_filtered += r['credit']
status = "集計" if should_include else "除外"
parent_str = str(r['parent_entry_id']) if r['parent_entry_id'] else "-"
print(f"{r['journal_entry_id']:3d} {r['entry_date']} {r['debit']:>12,.0f} {r['credit']:>12,.0f} {parent_str:>3} {r['has_child']:2} {status:4} {r['description'][:60]}")
print("-" * 120)
print(f"全仕訳: 借方={total_debit_all:>12,.0f} 貸方={total_credit_all:>12,.0f}")
print(f"試算表集計: 借方={total_debit_filtered:>12,.0f} 貸方={total_credit_filtered:>12,.0f}")
cur.close()
conn.close()