修正
This commit is contained in:
91
find_170660_issue.py
Normal file
91
find_170660_issue.py
Normal file
@@ -0,0 +1,91 @@
|
||||
import psycopg2
|
||||
|
||||
conn = psycopg2.connect(
|
||||
host="192.168.0.61",
|
||||
port=55432,
|
||||
database="njts_acct",
|
||||
user="njts_app",
|
||||
password="njts_app2025"
|
||||
)
|
||||
|
||||
cur = conn.cursor()
|
||||
|
||||
# 获取account 102的ID
|
||||
cur.execute("SELECT account_id FROM accounts WHERE account_code = '102'")
|
||||
account_id = cur.fetchone()[0]
|
||||
|
||||
# 查询普通預金 2025年8月的数据
|
||||
cur.execute("""
|
||||
SELECT
|
||||
je.journal_entry_id,
|
||||
je.entry_date,
|
||||
je.description,
|
||||
je.revision_count,
|
||||
je.is_latest,
|
||||
je.is_deleted,
|
||||
SUM(CASE WHEN jl.account_id = %s THEN jl.debit ELSE 0 END) as debit,
|
||||
SUM(CASE WHEN jl.account_id = %s THEN jl.credit ELSE 0 END) as credit
|
||||
FROM journal_entries je
|
||||
LEFT JOIN journal_lines jl ON je.journal_entry_id = jl.journal_entry_id
|
||||
WHERE je.entry_date >= '2025-08-01'
|
||||
AND je.entry_date < '2025-09-01'
|
||||
GROUP BY je.journal_entry_id, je.entry_date, je.description, je.revision_count, je.is_latest, je.is_deleted
|
||||
ORDER BY je.entry_date DESC, je.journal_entry_id DESC
|
||||
""", (account_id, account_id))
|
||||
|
||||
results = cur.fetchall()
|
||||
|
||||
print("=" * 120)
|
||||
print("普通預金 2025年8月 明細分析")
|
||||
print("=" * 120)
|
||||
|
||||
# 分类统计
|
||||
total_debit = 0
|
||||
total_credit = 0
|
||||
not_deleted_debit = 0
|
||||
not_deleted_credit = 0
|
||||
not_deleted_latest_debit = 0
|
||||
not_deleted_latest_credit = 0
|
||||
|
||||
if results:
|
||||
for entry_id, entry_date, description, rev_count, is_latest, is_deleted, debit, credit in results:
|
||||
debit = debit or 0
|
||||
credit = credit or 0
|
||||
|
||||
if debit > 0 or credit > 0:
|
||||
total_debit += debit
|
||||
total_credit += credit
|
||||
|
||||
deleted_mark = "【削除】" if is_deleted else " "
|
||||
latest_mark = "✓" if is_latest else "✗"
|
||||
print(f"{entry_date} {deleted_mark} [{latest_mark}v{rev_count}] ID={entry_id:3d} | 借={debit:>14,.0f} 貸={credit:>14,.0f} | {description[:40]}")
|
||||
|
||||
if not is_deleted:
|
||||
not_deleted_debit += debit
|
||||
not_deleted_credit += credit
|
||||
|
||||
if is_latest:
|
||||
not_deleted_latest_debit += debit
|
||||
not_deleted_latest_credit += credit
|
||||
|
||||
print("\n" + "=" * 120)
|
||||
print("統計")
|
||||
print("=" * 120)
|
||||
print(f"全体合計(すべて): 借={total_debit:>15,.0f} 貸={total_credit:>15,.0f}")
|
||||
print(f"【削除】以外: 借={not_deleted_debit:>15,.0f} 貸={not_deleted_credit:>15,.0f}")
|
||||
print(f"【削除】以外で最新: 借={not_deleted_latest_debit:>15,.0f} 貸={not_deleted_latest_credit:>15,.0f}")
|
||||
|
||||
# 試算表で使う条件:is_deleted=false AND is_latest=true
|
||||
print(f"\n✓ 試算表に計上されるべき条件 (is_deleted=false AND is_latest=true):")
|
||||
print(f" 借={not_deleted_latest_debit:>15,.0f} 貸={not_deleted_latest_credit:>15,.0f}")
|
||||
|
||||
# チェック:削除されたが最新になっているものを検出
|
||||
print("\n⚠️ 問題検出: 削除されているのに is_latest=true のもの")
|
||||
for entry_id, entry_date, description, rev_count, is_latest, is_deleted, debit, credit in results:
|
||||
debit = debit or 0
|
||||
credit = credit or 0
|
||||
if is_deleted and is_latest and (debit > 0 or credit > 0):
|
||||
print(f" ID={entry_id}: {description} | 借={debit:>14,.0f} 貸={credit:>14,.0f}")
|
||||
|
||||
cur.close()
|
||||
conn.close()
|
||||
Reference in New Issue
Block a user