#!/usr/bin/env python3 """ 所得税表の確認スクリプト ユーザーが提供したデータ: - 月収(控除後): 356,600円 - 扶養人数: 3人 - 期待される所得税: 5,840円 """ import sys import os sys.path.insert(0, os.path.join(os.path.dirname(__file__), 'backend')) from decimal import Decimal from datetime import date from app.core.database import get_connection def check_income_tax(): """所得税テーブルを確認""" monthly_income = Decimal("356600") dependents_count = 3 target_date = date(2025, 1, 22) print(f"検索条件:") print(f" 月収: {monthly_income}円") print(f" 扶養人数: {dependents_count}人") print(f" 適用日: {target_date}") print() with get_connection() as conn: with conn.cursor() as cur: # 全てのデータを確認 print("=== 3人扶養の全データ ===") cur.execute( """ SELECT * FROM income_tax_table WHERE dependents_count = %s ORDER BY monthly_income_from """, (dependents_count,) ) results = cur.fetchall() print(f"総件数: {len(results)}") # 月収356,600円が属する範囲を探す for row in results: if (row["monthly_income_from"] <= monthly_income <= row["monthly_income_to"]): print(f"\n✓ 月収 {monthly_income} が属する範囲:") print(f" From: {row['monthly_income_from']}") print(f" To: {row['monthly_income_to']}") print(f" 税額: {row['tax_amount']}円") print(f" 有効期間: {row['valid_from']} ~ {row['valid_to']}") break else: print(f"\n✗ 月収 {monthly_income} が属する範囲が見つかりません") print("\n該当の近い範囲:") for row in results[-5:]: print(f" {row['monthly_income_from']} ~ {row['monthly_income_to']}: {row['tax_amount']}円") # 現在の年度で検索(元の検索ロジックをシミュレート) print("\n=== 元の検索ロジック(valid_from/toで検索)===") cur.execute( """ SELECT * FROM income_tax_table WHERE valid_from <= %s AND (valid_to IS NULL OR valid_to >= %s) AND dependents_count = %s AND monthly_income_from <= %s AND monthly_income_to >= %s ORDER BY valid_from DESC LIMIT 1 """, (target_date, target_date, dependents_count, monthly_income, monthly_income) ) result = cur.fetchone() if result: print(f"検索結果:") print(f" 月収範囲: {result['monthly_income_from']} ~ {result['monthly_income_to']}") print(f" 税額: {result['tax_amount']}円") print(f" 有効期間: {result['valid_from']} ~ {result['valid_to']}") else: print("検索結果: なし") if __name__ == "__main__": check_income_tax()