- fusion_claims: separated field service logic, updated controllers/views - fusion_tasks: updated task views and map integration - fusion_authorizer_portal: added page 11 signing, schedule booking, migrations - fusion_shipping: new standalone shipping module (Canada Post, FedEx, DHL, Purolator) - fusion_ltc_management: new standalone LTC management module
69 lines
2.1 KiB
Python
69 lines
2.1 KiB
Python
# -*- coding: utf-8 -*-
|
|
# Copyright 2024-2026 Nexa Systems Inc.
|
|
# License OPL-1 (Odoo Proprietary License v1.0)
|
|
|
|
from odoo import models, fields, api, _
|
|
|
|
|
|
class FusionLTCFormSubmission(models.Model):
|
|
_name = 'fusion.ltc.form.submission'
|
|
_description = 'LTC Form Submission'
|
|
_order = 'submitted_date desc, id desc'
|
|
|
|
name = fields.Char(
|
|
string='Reference',
|
|
required=True,
|
|
copy=False,
|
|
readonly=True,
|
|
default=lambda self: _('New'),
|
|
)
|
|
form_type = fields.Selection([
|
|
('repair', 'Repair Request'),
|
|
], string='Form Type', default='repair', required=True, index=True)
|
|
repair_id = fields.Many2one(
|
|
'fusion.ltc.repair',
|
|
string='Repair Request',
|
|
ondelete='set null',
|
|
index=True,
|
|
)
|
|
facility_id = fields.Many2one(
|
|
'fusion.ltc.facility',
|
|
string='Facility',
|
|
index=True,
|
|
)
|
|
client_name = fields.Char(string='Client Name')
|
|
room_number = fields.Char(string='Room Number')
|
|
product_serial = fields.Char(string='Product Serial #')
|
|
is_emergency = fields.Boolean(string='Emergency')
|
|
submitted_date = fields.Datetime(
|
|
string='Submitted Date',
|
|
default=fields.Datetime.now,
|
|
readonly=True,
|
|
)
|
|
ip_address = fields.Char(string='IP Address', readonly=True)
|
|
status = fields.Selection([
|
|
('submitted', 'Submitted'),
|
|
('processed', 'Processed'),
|
|
('rejected', 'Rejected'),
|
|
], string='Status', default='submitted', tracking=True)
|
|
|
|
@api.model_create_multi
|
|
def create(self, vals_list):
|
|
for vals in vals_list:
|
|
if vals.get('name', _('New')) == _('New'):
|
|
vals['name'] = self.env['ir.sequence'].next_by_code(
|
|
'fusion.ltc.form.submission'
|
|
) or _('New')
|
|
return super().create(vals_list)
|
|
|
|
def action_view_repair(self):
|
|
self.ensure_one()
|
|
if not self.repair_id:
|
|
return
|
|
return {
|
|
'type': 'ir.actions.act_window',
|
|
'res_model': 'fusion.ltc.repair',
|
|
'view_mode': 'form',
|
|
'res_id': self.repair_id.id,
|
|
}
|