This commit is contained in:
admin
2026-02-20 15:47:27 +09:00
parent c60cbf2d9a
commit 584530937b
108 changed files with 12112 additions and 416 deletions

139
debug_701_accounts.py Normal file
View File

@@ -0,0 +1,139 @@
import psycopg
from datetime import datetime
# 連接到数据库
conn = psycopg.connect(
host="127.0.0.1",
port=5432,
dbname="njts_accounting",
user="postgres",
password="postgres"
)
try:
with conn:
with conn.cursor(row_factory=psycopg.rows.dict_row) as cur:
print("=" * 80)
print("【デバッグ: ID=431と432のis_latest値の確認】")
print("=" * 80)
# Check if is_latest column exists
cur.execute("""
SELECT COUNT(*) as cnt
FROM information_schema.columns
WHERE table_name = 'journal_entries' AND column_name = 'is_latest'
""")
col_exists = cur.fetchone()['cnt'] > 0
print(f"is_latest列が存在: {col_exists}")
print()
# Check the test entries
cur.execute("""
SELECT
journal_entry_id,
description,
is_latest,
is_deleted,
parent_entry_id,
original_entry_id
FROM journal_entries
WHERE journal_entry_id IN (431, 432)
ORDER BY journal_entry_id
""")
entries = cur.fetchall()
for e in entries:
print(f"ID={e['journal_entry_id']}: {e['description']}")
print(f" is_latest={e['is_latest']}, is_deleted={e['is_deleted']}")
print(f" parent_entry_id={e['parent_entry_id']}, original_entry_id={e['original_entry_id']}")
print()
print("=" * 80)
print("【デバッグ: 修正後のサービスロジックで701科目をクエリ】")
print("=" * 80)
# Get account id for 701
cur.execute("SELECT account_id FROM accounts WHERE account_code = '701'")
acc_result = cur.fetchone()
if acc_result:
account_id = acc_result['account_id']
# Execute the same query as the service with is_latest = true
cur.execute("""
SELECT
COALESCE(SUM(l.debit), 0) AS debit,
COALESCE(SUM(l.credit), 0) AS credit
FROM journal_lines l
JOIN journal_entries j
ON j.journal_entry_id = l.journal_entry_id
WHERE l.account_id = %s
AND j.entry_date BETWEEN '2025-01-01' AND '2025-12-31'
AND j.is_deleted = false
AND j.is_latest = true
""", (account_id,))
result = cur.fetchone()
print(f"701科目の試算表is_latest=true:")
print(f" 借方: {result['debit']}")
print(f" 貸方: {result['credit']}")
print()
print("=" * 80)
print("【デバッグ: 701科目のすべての仕訳行を確認】")
print("=" * 80)
cur.execute("""
SELECT
j.journal_entry_id,
j.description,
j.is_latest,
j.is_deleted,
l.debit,
l.credit
FROM journal_lines l
JOIN journal_entries j ON j.journal_entry_id = l.journal_entry_id
JOIN accounts a ON a.account_id = l.account_id
WHERE a.account_code = '701'
AND j.is_deleted = false
ORDER BY j.journal_entry_id
""")
lines = cur.fetchall()
print(f"合計: {len(lines)}")
print()
total_debit = 0
total_credit = 0
for line in lines:
status = "" if line['is_latest'] else ""
print(f"{status} ID={line['journal_entry_id']:4d}: {line['description']:30s} | 借={line['debit']:10.0f} 貸={line['credit']:10.0f} | is_latest={line['is_latest']}")
total_debit += line['debit']
total_credit += line['credit']
print()
print(f"【全行合計】借={total_debit:.0f}, 貸={total_credit:.0f}")
print()
# Count by is_latest
cur.execute("""
SELECT
j.is_latest,
COUNT(*) as count,
COALESCE(SUM(l.debit), 0) as total_debit,
COALESCE(SUM(l.credit), 0) as total_credit
FROM journal_lines l
JOIN journal_entries j ON j.journal_entry_id = l.journal_entry_id
JOIN accounts a ON a.account_id = l.account_id
WHERE a.account_code = '701'
AND j.is_deleted = false
GROUP BY j.is_latest
ORDER BY j.is_latest DESC
""")
stats = cur.fetchall()
print("【is_latestごとの集計】")
for stat in stats:
status = "最新" if stat['is_latest'] else "旧版"
print(f"{status}: {stat['count']}行 | 借={stat['total_debit']:.0f} 貸={stat['total_credit']:.0f}")
finally:
conn.close()