Files
Odoo-Modules/fusion_claims/wizard/mod_funding_approved_wizard.py
2026-02-22 01:22:18 -05:00

75 lines
2.8 KiB
Python

# -*- coding: utf-8 -*-
from odoo import models, fields, api, _
from odoo.exceptions import UserError
from markupsafe import Markup
import logging
_logger = logging.getLogger(__name__)
class ModFundingApprovedWizard(models.TransientModel):
_name = 'fusion_claims.mod.funding.approved.wizard'
_description = 'MOD - Record Funding Approval'
sale_order_id = fields.Many2one('sale.order', required=True, readonly=True)
# Case details
case_worker_id = fields.Many2one(
'res.partner', string='Case Worker',
help='March of Dimes case worker assigned to this case',
)
hvmp_reference = fields.Char(string='HVMP Reference #')
@api.model
def default_get(self, fields_list):
res = super().default_get(fields_list)
if self.env.context.get('active_id'):
order = self.env['sale.order'].browse(self.env.context['active_id'])
res['sale_order_id'] = order.id
if order.x_fc_case_worker:
res['case_worker_id'] = order.x_fc_case_worker.id
if order.x_fc_case_reference:
res['hvmp_reference'] = order.x_fc_case_reference
return res
def action_confirm(self):
"""Record funding approval - just case worker and reference."""
self.ensure_one()
order = self.sale_order_id
vals = {
'x_fc_mod_status': 'funding_approved',
'x_fc_case_approved': fields.Date.today(),
}
if self.case_worker_id:
vals['x_fc_case_worker'] = self.case_worker_id.id
if self.hvmp_reference:
vals['x_fc_case_reference'] = self.hvmp_reference
order.write(vals)
# Log to chatter
parts = ['<strong>Funding Approved by March of Dimes</strong>']
parts.append(f'Date: {fields.Date.today().strftime("%B %d, %Y")}')
if self.case_worker_id:
parts.append(f'Case Worker: {self.case_worker_id.name}')
if self.hvmp_reference:
parts.append(f'HVMP Reference: {self.hvmp_reference}')
order.message_post(
body=Markup('<div class="alert alert-success">' + '<br/>'.join(parts) + '</div>'),
message_type='notification', subtype_xmlid='mail.mt_note',
)
return {'type': 'ir.actions.act_window_close'}
class ModFundingApprovedWizardLine(models.TransientModel):
_name = 'fusion_claims.mod.funding.approved.wizard.line'
_description = 'MOD PCA - Line Preview'
wizard_id = fields.Many2one('fusion_claims.mod.pca.received.wizard', ondelete='cascade')
product_name = fields.Char(string='Product', readonly=True)
quantity = fields.Float(string='Qty', readonly=True)
line_total = fields.Float(string='Line Total', readonly=True)
mod_amount = fields.Float(string='MOD Pays', readonly=True)
client_amount = fields.Float(string='Client Pays', readonly=True)