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

114
check_latest_test.py Normal file
View File

@@ -0,0 +1,114 @@
#!/usr/bin/env python3
"""
详细查看 test 元的最新状态
"""
import psycopg
try:
conn = psycopg.connect(
host='192.168.0.61',
port=55432,
dbname='njts_acct',
user='njts_app',
password='njts_app2025'
)
with conn.cursor() as cur:
print("=" * 100)
print("【test 元 - 最新完整狀態檢查】")
print("=" * 100)
# 查詢所有 test 元記錄
cur.execute("""
SELECT
journal_entry_id,
entry_date,
description,
is_latest,
revision_count,
original_entry_id,
created_at
FROM journal_entries
WHERE description LIKE '%test%'
AND is_deleted = false
ORDER BY created_at DESC
LIMIT 10
""")
rows = cur.fetchall()
print(f"\n最新10筆 test 元記錄:\n")
print(f"{'ID':>5} {'Date':^10s} {'Latest':^6s} {'Rev':>3s} {'Orig_ID':>7s} {'Created_At':^20s} Description")
print("-" * 100)
for row in rows:
je_id, entry_date, desc, is_latest, rev_cnt, orig_id, created_at = row
status = "" if is_latest else ""
orig_str = str(orig_id) if orig_id else "-"
created_str = str(created_at)[:19] if created_at else "-"
print(f"{je_id:>5d} {str(entry_date):^10s} {status:^6s} {rev_cnt:>3d} {orig_str:>7s} {created_str:^20s} {desc[:30]}")
# 查看最新記錄鏈的詳細情況
print(f"\n【最新記錄鏈的 701 科目明細】")
print("-" * 100)
# 找出最新創建的記錄
cur.execute("""
SELECT journal_entry_id, original_entry_id, description
FROM journal_entries
WHERE description LIKE '%test%'
AND is_deleted = false
ORDER BY created_at DESC
LIMIT 1
""")
latest = cur.fetchone()
if latest:
latest_id, orig_id, desc = latest
chain_head = orig_id if orig_id else latest_id
print(f"\n最新記錄鏈:")
print(f" 最新記錄 ID: {latest_id} ({desc})")
print(f" 原始記錄 ID: {chain_head}\n")
# 查看這條鏈中的所有記錄
cur.execute("""
SELECT
je.journal_entry_id,
je.description,
je.is_latest,
je.revision_count,
SUM(CASE WHEN a.account_id = 701 THEN COALESCE(jl.debit, 0) ELSE 0 END) as debit_701,
SUM(CASE WHEN a.account_id = 701 THEN COALESCE(jl.credit, 0) ELSE 0 END) as credit_701
FROM journal_entries je
LEFT JOIN journal_lines jl ON je.journal_entry_id = jl.journal_entry_id
LEFT JOIN accounts a ON jl.account_id = a.account_id
WHERE (je.journal_entry_id = %s OR je.original_entry_id = %s)
AND je.is_deleted = false
GROUP BY je.journal_entry_id, je.description, je.is_latest, je.revision_count
ORDER BY je.journal_entry_id
""", (chain_head, chain_head))
records = cur.fetchall()
for rec in records:
je_id, desc, is_latest, rev_cnt, debit, credit = rec
status = "✓ LATEST" if is_latest else "✗ OLD"
print(f"{status} ID={je_id} rev={rev_cnt}: {desc:30s} 借={debit:>7.0f} 貸={credit:>7.0f}")
# 計算這條鏈的合計
total_debit = sum(r[4] for r in records)
total_credit = sum(r[5] for r in records)
print(f"{'':20s} 合計: 借={total_debit:>7.0f} 貸={total_credit:>7.0f}")
# 計算只統計 is_latest 的合計
is_latest_debit = sum(r[4] for r in records if r[2])
is_latest_credit = sum(r[5] for r in records if r[2])
print(f"{'只統計is_latest':20s} 借={is_latest_debit:>7.0f} 貸={is_latest_credit:>7.0f}")
conn.close()
except Exception as e:
print(f'錯誤: {e}')
import traceback
traceback.print_exc()