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

91
find_170660_issue.py Normal file
View 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()