修正
This commit is contained in:
109
backend/check_data.py
Normal file
109
backend/check_data.py
Normal file
@@ -0,0 +1,109 @@
|
||||
import os
|
||||
os.environ['DB_HOST'] = '192.168.0.61'
|
||||
os.environ['DB_PORT'] = '55432'
|
||||
os.environ['DB_NAME'] = 'njts_acct'
|
||||
os.environ['DB_USER'] = 'njts_app'
|
||||
os.environ['DB_PASSWORD'] = 'njts_app2025'
|
||||
|
||||
import sys
|
||||
sys.path.insert(0, os.path.dirname(__file__))
|
||||
|
||||
from app.core.database import get_connection
|
||||
|
||||
conn = get_connection()
|
||||
cur = conn.cursor()
|
||||
|
||||
# 逸速ビル関連の仕訳を確認
|
||||
cur.execute("""
|
||||
SELECT journal_entry_id, entry_date, description, parent_entry_id, is_deleted
|
||||
FROM journal_entries
|
||||
WHERE description LIKE '%遠達ビル%'
|
||||
ORDER BY journal_entry_id
|
||||
""")
|
||||
|
||||
rows = cur.fetchall()
|
||||
print("\n遠達ビル関連の仕訳:")
|
||||
for r in rows:
|
||||
print(f"ID: {r['journal_entry_id']}, Date: {r['entry_date']}, Desc: {r['description']}, Parent: {r['parent_entry_id']}, is_deleted: {r['is_deleted']}")
|
||||
|
||||
# parent_entry_idが設定されている仕訳IDの一覧を取得
|
||||
cur.execute("""
|
||||
SELECT DISTINCT parent_entry_id
|
||||
FROM journal_entries
|
||||
WHERE parent_entry_id IS NOT NULL
|
||||
ORDER BY parent_entry_id
|
||||
""")
|
||||
|
||||
parent_ids = [r['parent_entry_id'] for r in cur.fetchall()]
|
||||
print(f"\nparent_entry_idとして参照されているID: {parent_ids}")
|
||||
|
||||
cur.close()
|
||||
conn.close()
|
||||
|
||||
# 実際の検索クエリと同じロジックでテスト
|
||||
print("\n--- 検索クエリのテスト(include_history=False) ---")
|
||||
conn2 = get_connection()
|
||||
cur2 = conn2.cursor()
|
||||
|
||||
# まず、条件なしでID 80が取得できるか確認
|
||||
cur2.execute("""
|
||||
SELECT journal_entry_id, description
|
||||
FROM journal_entries
|
||||
WHERE journal_entry_id = 80
|
||||
""")
|
||||
print(f"ID 80の存在確認: {cur2.fetchall()}")
|
||||
|
||||
# 各条件を個別にチェック
|
||||
cur2.execute("SELECT journal_entry_id FROM journal_entries WHERE journal_entry_id = 80 AND is_deleted = false")
|
||||
print(f"is_deleted=false: {len(cur2.fetchall())}件")
|
||||
|
||||
cur2.execute("SELECT journal_entry_id FROM journal_entries WHERE journal_entry_id = 80 AND description NOT LIKE '%[逆仕訳]%'")
|
||||
print(f"NOT LIKE '%%[逆仕訳]%%': {len(cur2.fetchall())}件")
|
||||
|
||||
cur2.execute("""
|
||||
SELECT journal_entry_id FROM journal_entries
|
||||
WHERE journal_entry_id = 80
|
||||
AND journal_entry_id NOT IN (SELECT parent_entry_id FROM journal_entries WHERE parent_entry_id IS NOT NULL)
|
||||
""")
|
||||
print(f"NOT IN parent_entry_id: {len(cur2.fetchall())}件")
|
||||
|
||||
cur2.execute("SELECT journal_entry_id FROM journal_entries WHERE journal_entry_id = 80 AND description LIKE '%逸速ビル%'")
|
||||
print(f"LIKE '%%逸速ビル%%': {len(cur2.fetchall())}件")
|
||||
|
||||
cur2.execute("SELECT journal_entry_id FROM journal_entries WHERE journal_entry_id = 80 AND description LIKE '%遠達ビル%'")
|
||||
print(f"LIKE '%%遠達ビル%%': {len(cur2.fetchall())}件")
|
||||
|
||||
sql = """
|
||||
SELECT
|
||||
je.journal_entry_id,
|
||||
je.entry_date,
|
||||
je.description,
|
||||
je.fiscal_year,
|
||||
je.version,
|
||||
COALESCE(SUM(jl.debit), 0) as debit_total,
|
||||
COALESCE(SUM(jl.credit), 0) as credit_total,
|
||||
STRING_AGG(DISTINCT CASE WHEN jl.tax_rate IS NOT NULL THEN jl.tax_rate::text END, ', ' ORDER BY CASE WHEN jl.tax_rate IS NOT NULL THEN jl.tax_rate::text END) as tax_rates
|
||||
FROM journal_entries je
|
||||
LEFT JOIN journal_lines jl ON je.journal_entry_id = jl.journal_entry_id
|
||||
WHERE je.is_deleted = false
|
||||
AND je.description NOT LIKE %s
|
||||
AND je.journal_entry_id NOT IN (
|
||||
SELECT parent_entry_id
|
||||
FROM journal_entries
|
||||
WHERE parent_entry_id IS NOT NULL
|
||||
)
|
||||
AND je.entry_date >= %s AND je.entry_date <= %s
|
||||
AND je.description LIKE %s
|
||||
GROUP BY je.journal_entry_id, je.entry_date, je.description, je.fiscal_year, je.version
|
||||
ORDER BY je.entry_date DESC, je.journal_entry_id DESC, je.version DESC
|
||||
"""
|
||||
|
||||
cur2.execute(sql, ['%[逆仕訳]%', '2025-06-01', '2025-06-30', '%逸速ビル%'])
|
||||
results = cur2.fetchall()
|
||||
|
||||
print(f"\n検索結果({len(results)}件):")
|
||||
for r in results:
|
||||
print(f"ID: {r['journal_entry_id']}, Date: {r['entry_date']}, Desc: {r['description']}, Tax: {r['tax_rates']}")
|
||||
|
||||
cur2.close()
|
||||
conn2.close()
|
||||
Reference in New Issue
Block a user