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

59 lines
1.6 KiB
Python

#!/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
je.journal_entry_id,
je.description,
je.is_latest,
jl.account_id,
a.account_name,
jl.debit,
jl.credit
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.description LIKE '%test%'
AND je.is_deleted = false
ORDER BY je.journal_entry_id, jl.journal_line_id
""")
rows = cur.fetchall()
current_je_id = None
for row in rows:
je_id, je_desc, is_latest, acc_id, acc_name, debit, credit = row
if je_id != current_je_id:
status = "" if is_latest else ""
print(f"\n{status} ID={je_id} {je_desc}")
current_je_id = je_id
if acc_id:
print(f" {acc_id:>4d} {acc_name:20s} 借={debit:>10.0f} 貸={credit:>10.0f}")
conn.close()
except Exception as e:
print(f'錯誤: {e}')
import traceback
traceback.print_exc()