修正
This commit is contained in:
88
check_income_tax.py
Normal file
88
check_income_tax.py
Normal file
@@ -0,0 +1,88 @@
|
||||
#!/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()
|
||||
Reference in New Issue
Block a user