diff --git a/sf_base/models/process.py b/sf_base/models/process.py index e6ef6348..ec793560 100644 --- a/sf_base/models/process.py +++ b/sf_base/models/process.py @@ -6,6 +6,7 @@ class ModelType(models.Model): _description = '模型类型' name = fields.Char('名称') + embryo_tolerance = fields.Integer('胚料的容余量') routing_tmpl_ids = fields.One2many('sf.model.type.routing.sort', 'model_type_id', '工序模板') diff --git a/sf_base/models/product_template.py b/sf_base/models/product_template.py index 4bfb9eae..348f1b91 100644 --- a/sf_base/models/product_template.py +++ b/sf_base/models/product_template.py @@ -1,4 +1,4 @@ -from odoo import models, fields,api +from odoo import models, fields, api from odoo.exceptions import ValidationError @@ -9,7 +9,7 @@ class ResProductTemplate(models.Model): model_long = fields.Float('模型长[mm]', digits=(16, 3)) model_width = fields.Float('模型宽[mm]', digits=(16, 3)) model_height = fields.Float('模型高[mm]', digits=(16, 3)) - model_volume = fields.Float('模型体积[mm³]', digits=(16, 3)) + model_volume = fields.Float('模型体积[mm³]', digits=(16, 3), compute='_compute_model_volume', store=True) model_precision = fields.Float('精度要求', digits=(16, 3)) model_type_id = fields.Many2one('sf.model.type', string='模型类型') model_processing_panel = fields.Char('模型加工面板') @@ -20,19 +20,22 @@ class ResProductTemplate(models.Model): model_number = fields.Integer('模型数量', default=1) model_remark = fields.Char('模型备注说明') - long = fields.Float('长[mm]', digits=(16, 3), onchange='count_embryo_size') - width = fields.Float('宽[mm]', digits=(16, 3), onchange='count_embryo_size') - height = fields.Float('高[mm]', digits=(16, 3), onchange='count_embryo_size') + long = fields.Float('长[mm]', digits=(16, 3), onchange='add_product_size') + width = fields.Float('宽[mm]', digits=(16, 3), onchange='add_product_size') + height = fields.Float('高[mm]', digits=(16, 3), onchange='add_product_size') materials_id = fields.Many2one('mrs.production.materials', string='材料') materials_type_id = fields.Many2one('mrs.materials.model', string='材料型号') - volume = fields.Float(compute='_compute_volume', store=True) @api.depends('long', 'width', 'height') def _compute_volume(self): self.volume = self.long * self.width * self.height + @api.depends('model_long', 'model_width', 'model_height') + def _compute_model_volume(self): + self.model_volume = self.model_long * self.model_width * self.model_height + # 业务平台分配工厂后在智能工厂先创建销售订单再创建该产品 def product_create(self, product_id, item, order_id, order_number, i): copy_product_id = product_id.with_user(self.env.ref("base.user_admin")).copy() @@ -63,24 +66,23 @@ class ResProductTemplate(models.Model): copy_product_id.sudo().write(vals) return copy_product_id - # 在产品上增加模型类型和加工的面(例如:A、B) , - # 并根据模型类型计算出产品的胚料尺寸; - # @api.onchange('model_type_id') - # def count_embryo_size(self): - # if not self.model_type_id: - # return - # bom = self.env['product.product'].search( - # [('categ_id.is_embryo', '=', True), ('product_tmpl_id', '=', self.id)], - # limit=1, - # order='volume desc' - # ) - # for item in self: - # item.embryo_long = bom.embryo_long + 1 - # item.embryo_width = bom.embryo_width + 1 - # item.embryo_height = bom.embryo_height + 1 - - - + # 根据模型类型默认给模型的长高宽加配置的长度; + @api.onchange('model_type_id') + def add_product_size(self): + if not self.model_type_id: + return + model_type = self.env['sf.model.type'].search( + [('id', '=', self.model_type_id.id)]) + print(self.model_long) + print(self.model_width) + print(self.model_height) + for item in self: + print(item.model_long) + print(item.model_width) + print(item.model_height) + item.model_long = item.model_long + model_type.embryo_tolerance + item.model_width = item.model_width + model_type.embryo_tolerance + item.model_height = item.model_width + model_type.embryo_tolerance class ResProductCategory(models.Model): @@ -134,14 +136,3 @@ class ResMrpBom(models.Model): 'product_uom_id': 1 } return self.env['mrp.bom.line'].create(vals) - - - - - - - - - - - diff --git a/sf_base/views/mrs_base_view.xml b/sf_base/views/mrs_base_view.xml index 4cff9e87..927cc8dc 100644 --- a/sf_base/views/mrs_base_view.xml +++ b/sf_base/views/mrs_base_view.xml @@ -531,12 +531,16 @@