44 lines
2.1 KiB
Python
Executable File
44 lines
2.1 KiB
Python
Executable File
from odoo import models, fields, api
|
|
|
|
class MON_MissingComponentWizard(models.TransientModel):
|
|
_name = 'mon_missing_component_wizard'
|
|
_description = 'Wizard for Handling Missing Components'
|
|
|
|
missing_component_line_ids = fields.One2many(
|
|
'mon_missing_component_line', 'wizard_id', string="Missing Components"
|
|
)
|
|
mon_id = fields.Many2one('sos_mon', string="Related SFG Record")
|
|
|
|
def confirm_selections(self):
|
|
mon_record = self.mon_id.id
|
|
line_model = self.env['sos_mon_line_material']
|
|
min_line_model = self.env['sos_min_line_material']
|
|
min_record = self.env['sos_min'].search([('mon_no', '=', mon_record)], limit=1)
|
|
for line in self.missing_component_line_ids:
|
|
if line.alternative_component_id.id:
|
|
line_model.create({'mon_id': mon_record,'com_type':'exits',
|
|
'component_id':line.alternative_component_id.id,
|
|
'quantity':line.missing_component_quantity
|
|
})
|
|
min_line_model.create({'min_id': min_record.id,'com_type':'exits',
|
|
'component_id':line.alternative_component_id.id,
|
|
'quantity':line.missing_component_quantity
|
|
})
|
|
else:
|
|
line_model.create({'mon_id': mon_record,'com_type':'new',
|
|
'new_component_id':line.missing_component_name,
|
|
'quantity':line.missing_component_quantity
|
|
})
|
|
min_line_model.create({'min_id': min_record.id,'com_type':'new',
|
|
'new_component_id':line.missing_component_name,
|
|
'quantity':line.missing_component_quantity
|
|
})
|
|
|
|
class MON_MissingComponentLine(models.TransientModel):
|
|
_name = 'mon_missing_component_line'
|
|
_description = 'Line for each missing component'
|
|
|
|
wizard_id = fields.Many2one('mon_missing_component_wizard', string="Wizard")
|
|
missing_component_name = fields.Char("Missing Component", readonly=True)
|
|
missing_component_quantity=fields.Float(string="Qty", default=1)
|
|
alternative_component_id = fields.Many2one('sos_material', string="Select Alternative") |