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

101
check_701_detail.py Normal file
View File

@@ -0,0 +1,101 @@
#!/usr/bin/env python3
"""
查詢 701 科目(売上高)的所有詳細記錄
"""
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("【701 科目(売上高)的所有記錄 - 2025年6月】")
print("=" * 100)
# 查詢所有涉及 701 科目的仕訳
cur.execute("""
SELECT
e.journal_entry_id,
e.entry_date,
e.description,
e.is_latest,
e.revision_count,
e.original_entry_id,
COALESCE(l.debit, 0) as debit,
COALESCE(l.credit, 0) as credit
FROM journal_entries e
LEFT JOIN journal_lines l ON e.journal_entry_id = l.journal_entry_id
WHERE e.is_deleted = false
AND e.entry_date >= '2025-06-01'
AND e.entry_date <= '2025-06-30'
AND (l.account_id = 701 OR e.description LIKE '%test%')
ORDER BY e.journal_entry_id DESC
""")
rows = cur.fetchall()
print(f"\n總共 {len(rows)} 條明細記錄\n")
print(f"{'ID':>4s} {'Date':^10s} {'Latest':^6s} {'Rev':>3s} {'Orig ID':>7s} {'Debit':>12s} {'Credit':>12s} Description")
print("-" * 100)
total_debit = 0
total_credit = 0
is_latest_debit = 0
is_latest_credit = 0
for row in rows:
je_id, entry_date, desc, is_latest, rev_cnt, orig_id, debit, credit = row
status = "" if is_latest else " "
orig_str = str(orig_id) if orig_id else "-"
total_debit += debit
total_credit += credit
if is_latest:
is_latest_debit += debit
is_latest_credit += credit
desc_short = desc[:35] if desc else "-"
print(f"{je_id:>4d} {str(entry_date):^10s} {status:^6s} {rev_cnt:>3d} {orig_str:>7s} {debit:>12,.0f} {credit:>12,.0f} {desc_short}")
print("-" * 100)
print(f"{'統計':^35s} 合計借方: {total_debit:>12,.0f} 合計貸方: {total_credit:>12,.0f}")
print(f"{'只統計is_latest=true':^35s} 借方: {is_latest_debit:>12,.0f} 貸方: {is_latest_credit:>12,.0f}")
# 檢查是否有 is_latest=false 但不在任何修正鏈中的記錄
print(f"\n【檢查孤立的 is_latest=false 記錄】")
print("-" * 100)
cur.execute("""
SELECT
journal_entry_id,
description,
is_latest,
revision_count,
original_entry_id
FROM journal_entries
WHERE is_deleted = false
AND (description LIKE '%test%' OR description LIKE '%売上%')
AND is_latest = false
AND original_entry_id IS NULL
""")
orphans = cur.fetchall()
if orphans:
print("發現孤立的 is_latest=false 記錄(沒有 original_entry_id")
for orphan in orphans:
print(f" ID={orphan[0]}: {orphan[1]}")
else:
print("✓ 沒有孤立的 is_latest=false 記錄")
conn.close()
except Exception as e:
print(f'錯誤: {e}')
import traceback
traceback.print_exc()