Files
njts-accounting-core/simple_check.py
2026-02-20 15:47:27 +09:00

81 lines
2.7 KiB
Python

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os
import sys
# PostgreSQL接続情報を設定
os.environ['DB_HOST'] = 'localhost'
os.environ['DB_NAME'] = 'accounting_db'
os.environ['DB_USER'] = 'postgres'
os.environ['DB_PASSWORD'] = 'root'
os.environ['DB_PORT'] = '5432'
# backendパスを追加
sys.path.insert(0, os.path.join(os.path.dirname(__file__), 'backend'))
from app.core.database import get_connection
print("データベース接続テスト...")
with get_connection() as conn:
with conn.cursor() as cur:
# 最初のテスト: 701の全ての6月データ
print("\n=== テスト1: 701の全ての6月クレジットデータ ===")
sql = """
SELECT
COALESCE(SUM(l.credit), 0) as total_credit
FROM journal_lines l
JOIN journal_entries e ON e.journal_entry_id = l.journal_entry_id
WHERE l.account_id = 701
AND EXTRACT(YEAR FROM e.entry_date) = 2025
AND EXTRACT(MONTH FROM e.entry_date) = 6
"""
cur.execute(sql)
result = cur.fetchone()
print(f"素のSUMクエリ結果: {result['total_credit']}")
# テスト2: ユーザーが期待する値
print("\n=== テスト2: ユーザー期待値との比較 ===")
print(f"実際の値: {result['total_credit']}")
print(f"期待値: 4082728")
print(f"差異: {result['total_credit'] - 4082728}")
# テスト3: 詳細なデータ確認
print("\n=== テスト3: 6月の全トランザクション詳細 ===")
sql_detail = """
SELECT
e.journal_entry_id,
e.entry_date,
e.description,
l.credit,
e.is_deleted,
e.parent_entry_id
FROM journal_lines l
JOIN journal_entries e ON e.journal_entry_id = l.journal_entry_id
WHERE l.account_id = 701
AND EXTRACT(YEAR FROM e.entry_date) = 2025
AND EXTRACT(MONTH FROM e.entry_date) = 6
ORDER BY e.entry_date, e.journal_entry_id
"""
cur.execute(sql_detail)
rows = cur.fetchall()
total = 0
for row in rows:
status = []
if row['is_deleted']:
status.append("DELETED")
if row['parent_entry_id']:
status.append(f"correction(parent={row['parent_entry_id']})")
status_str = " | ".join(status) if status else "OK"
print(f"ID:{row['journal_entry_id']:5d} | {row['entry_date']} | {row['description']:35s} | " +
f"credit:{row['credit']:>12,.0f} | {status_str}")
total += row['credit']
print(f"\n合計: {total:,.0f}")
print("\n処理完了")