SSW/TITPへの請求マスタ誤適用問題: applicable_visa_typeの未参照

Resolved 💬 2 comments Opened Dec 4, 2025 by kimiyoshi Closed Dec 4, 2025

概要

月次管理状況生成時に、SSWにMONTHLY_MGMT_FEE(月次監理費)、TITPにMONTHLY_SUPPORT_FEE(月次登録支援費)が誤って適用される問題。

現象

2025年11月の請求データ:

| コード | タイプ | 件数 | 問題 |
|--------|--------|------|------|
| MONTHLY_MGMT_FEE | SSW | 26 | ❌ SSWには不要 |
| MONTHLY_MGMT_FEE | TITP | 246 | ✅ 正しい |
| MONTHLY_SUPPORT_FEE | SSW | 181 | ✅ 正しい |
| MONTHLY_SUPPORT_FEE | TITP | 193 | ❌ TITPには不要 |

原因

monthly_management_status.pygenerate_monthly_status()メソッド(823-831行目)で、企業別料金設定をチェックする際にapplicable_visa_typeを参照していない。

# 問題のコード
if not should_apply and resident.current_employer_id:
    enterprise_rate = self.env['billing.enterprise.rate'].search([
        ('billing_master_id', '=', master.id),
        ('enterprise_id', '=', resident.current_employer_id.id),
        ('active', '=', True),
    ], limit=1)
    if enterprise_rate:
        should_apply = True  # ← SSW/TITP関係なく適用してしまう

データ問題

billing_masterテーブルのapplicable_visa_typeが適切に設定されていない:

| code | name | applicable_visa_type |
|------|------|---------------------|
| MONTHLY_MGMT_FEE | 月次監理費 | all ← 問題(titpにすべき) |
| MONTHLY_SUPPORT_FEE | 月次登録支援費 | all ← 問題(sswにすべき) |

修正案

1. データ修正

UPDATE billing_master SET applicable_visa_type = 'titp' WHERE code = 'MONTHLY_MGMT_FEE';
UPDATE billing_master SET applicable_visa_type = 'ssw' WHERE code = 'MONTHLY_SUPPORT_FEE';

2. ロジック修正

generate_monthly_status()の企業別設定チェック時にapplicable_visa_typeを参照

3. UI修正

請求マスタ画面でapplicable_visa_typeを設定可能にする

調査事項

  • [ ] ローカル環境とStagingでデータが異なるか確認
  • [ ] ローカルで問題が発生していない理由を特定

View original on GitHub ↗

This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗