Slink/sos_inventory/models/sos_deliverables_config.py

149 lines
7.2 KiB
Python
Executable File

from odoo import models, fields, api
class SosTestingParameters(models.Model):
_name = 'sos_deliverables_config'
_description = 'SOS FG Deliverables'
_rec_name='fg_name'
fg_name = fields.Selection(
[
('BHMS 1.2V', 'BHMS 1.2V'),
('BHMS 2V', 'BHMS 2V'),
('BHMS 12V', 'BHMS 12V'),
('BHMS 48V', 'BHMS 48V'),
('BMS-HV', 'BMS-HV'),
('BMS-LV 100A', 'BMS-LV 100A'),
('BMS-LV 40A', 'BMS-LV 40A'),
('SBMS 55A', 'SBMS 55A'),
('MC 250W', 'MC 250W'),
('HeartTarang', 'HeartTarang')
],
string="Product Name",required=True)
communication_type = fields.Selection([
('wired', 'Wired'),
('wireless', 'Wireless')
], string="Communication Type")
slave_type = fields.Selection([
('15S Individual Slave', '15S Individual Slave'),
('90S Electrical Panel', '90S Electrical Panel'),
('60S Electrical Panel', '60S Electrical Panel')
], string="Slave Type")
fg_ids = fields.One2many('sos_fg_deliverables', 'ref_id', string= 'FG Deliverables',copy=True)
sfg_ids = fields.One2many('sos_sfg_deliverables', 'ref_id', string= 'SFG Deliverables',copy=True)
material_ids = fields.One2many('sos_material_deliverables', 'ref_id', string='Material Deliverables',copy=True)
installation_kit_ids = fields.One2many('sos_installation_kit_deliverables', 'ref_id', string='Installation Kit',copy=True)
miscellaneous_ids = fields.One2many('sos_miscellaneous_deliverables', 'ref_id', string='Miscellaneous',copy=True)
customer_name = fields.Char(string="Customer Name")
customer_location = fields.Char(string="Customer Location")
class SOS_FG_Deliverables(models.Model):
_name = 'sos_fg_deliverables'
_description = 'FG Deliverables'
sequence = fields.Integer(string="sequence")
item_type = fields.Selection([
('Master Panel', 'Master Panel'),
('CT Module', 'CT Module'),
('Slave Module', 'Slave Module'),
('Internet Module', 'Internet Module')
], string="Type",default="Master Panel")
component_id = fields.Many2one('sos_fg',string="FG Name", required=True)
description = fields.Text(string="Description")
quantity = fields.Float(string="Quantity",default=1)
uom = fields.Selection([('meters', 'Meters'),('Nos', 'Nos'),('coils', 'Coils'), ('litre', 'litre'), ('kg', 'Kilogram'), ('Packs', 'Packs')], default="Nos",string="Uom")
fg_code = fields.Char(related="component_id.fg_code",string="FG Code")
ref_id = fields.Many2one('sos_deliverables_config', ondelete='cascade')
add_production_cost = fields.Boolean(string="Include in Costing",default=True)
class SOS_SFG_Deliverables(models.Model):
_name = 'sos_sfg_deliverables'
_description = 'SFG Deliverables'
sequence = fields.Integer(string="sequence")
item_type = fields.Selection([
('Master Panel', 'Master Panel'),
('CT Module', 'CT Module'),
('Battery Count', 'Battery Count'),
('Slave Module', 'Slave Module'),
('Internet Module', 'Internet Module')
], string="Type",default="Master Panel")
component_id = fields.Many2one('sos_sfg', string="SFG Name", required=True)
quantity = fields.Float(string="Quantity",default=1)
description = fields.Text(string="Description")
uom = fields.Selection([('meters', 'Meters'),('Nos', 'Nos'),('coils', 'Coils'), ('litre', 'litre'), ('kg', 'Kilogram'), ('Packs', 'Packs')], default="Nos",string="Uom")
description = fields.Text(string="Description")
ref_id = fields.Many2one('sos_deliverables_config', ondelete='cascade')
add_production_cost = fields.Boolean(string="Include in Costing",default=True)
@api.onchange('component_id')
def _onchange_component_id(self):
if self.component_id:
self.description = self.component_id.description
self.uom = self.component_id.uom
else:
self.description = ''
class SOS_Material_Deliverables(models.Model):
_name = 'sos_material_deliverables'
_description = 'Material Deliverables'
sequence = fields.Integer(string="sequence")
item_type = fields.Selection([
('Master Panel', 'Master Panel'),
('CT Module', 'CT Module'),
('Battery Count', 'Battery Count'),
('Slave Module', 'Slave Module'),
('Internet Module', 'Internet Module')
], string="Type",default="Master Panel")
component_id = fields.Many2one('sos_material', string="Material Name", required=True)
description = fields.Text(string="Description")
quantity = fields.Float(string="Quantity")
uom = fields.Selection([('meters', 'Meters'),('Nos', 'Nos'),('coils', 'Coils'), ('litre', 'litre'), ('kg', 'Kilogram'), ('Packs', 'Packs')], default="Nos",string="Uom")
currency_id = fields.Many2one('res.currency', string='Currency')
description = fields.Text(string="Description")
ref_id = fields.Many2one('sos_deliverables_config', ondelete='cascade')
add_production_cost = fields.Boolean(string="Include in Costing",default=True)
@api.onchange('component_id')
def _onchange_component_id(self):
if self.component_id:
self.description = self.component_id.description
self.uom = self.component_id.uom
else:
self.description = ''
class SOS_Installation_Kit_Deliverables(models.Model):
_name = 'sos_installation_kit_deliverables'
_description = 'Installation Kit Delieverables'
sequence = fields.Integer(string="sequence")
item_type = fields.Selection([
('Master Panel', 'Master Panel'),
('CT Module', 'CT Module'),
('Slave Module', 'Slave Module'),
('Internet Module', 'Internet Module')
], string="Type",default="Master Panel")
component_id = fields.Many2one('sos_material', string="Material Name", required=True)
description = fields.Text(string="Description")
quantity = fields.Float(string="Quantity")
uom = fields.Selection([('meters', 'Meters'),('Nos', 'Nos'),('coils', 'Coils'), ('litre', 'litre'), ('kg', 'Kilogram'), ('Packs', 'Packs')], default="Nos",string="Uom")
ref_id = fields.Many2one('sos_deliverables_config', ondelete='cascade')
add_production_cost = fields.Boolean(string="Include in Costing",default=True)
@api.onchange('component_id')
def _onchange_component_id(self):
if self.component_id:
self.description = self.component_id.description
self.uom = self.component_id.uom
else:
self.description = ''
class SOS_Miscellaneous_Deliverables(models.Model):
_name = 'sos_miscellaneous_deliverables'
_description = 'Miscellaneous Delieverables'
sequence = fields.Integer(string="sequence")
name = fields.Char(string='Name')
cost = fields.Float(string='Cost')
quantity = fields.Integer(string="Quantity")
item_type = fields.Selection([
('Master Panel', 'Master Panel'),
('CT Module', 'CT Module'),
('Slave Module', 'Slave Module'),
('Internet Module', 'Internet Module')
], string="Type",default="Master Panel")
ref_id = fields.Many2one('sos_deliverables_config', ondelete='cascade')