33 lines
1.4 KiB
Python
33 lines
1.4 KiB
Python
from odoo import models, fields
|
|
from odoo.exceptions import ValidationError
|
|
|
|
|
|
class ResProductTemplate(models.Model):
|
|
_inherit = 'product.template'
|
|
|
|
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_precision = fields.Float('精度要求', digits=(16, 3))
|
|
materials_id = fields.Many2one('mrs.production.materials', string='材料')
|
|
|
|
# 业务平台分配工厂后在智能工厂先创建销售订单再创建该产品
|
|
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()
|
|
copy_product_id.product_tmpl_id.active = True
|
|
vals = {
|
|
'name': '%s-%s' % (order_id.name, i),
|
|
'model_long': item['model_long'],
|
|
'model_width': item['model_width'],
|
|
'model_height': item['model_height'],
|
|
'model_volume': item['model_volume'],
|
|
'list_price': item['price'],
|
|
'materials_id': self.env['mrs.production.materials'].sudo().search(
|
|
[('materials_no', '=', item['texture_code'])]).id,
|
|
'default_code': '%s-%s' % (order_number, i),
|
|
'barcode': item['barcode'],
|
|
'active': True
|
|
}
|
|
return copy_product_id.sudo().create(vals)
|