SSW/TITPへの請求マスタ誤適用問題: applicable_visa_typeの未参照
概要
月次管理状況生成時に、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.pyのgenerate_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でデータが異なるか確認
- [ ] ローカルで問題が発生していない理由を特定
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗