From 8bc7cd0391369c48690e3ce2cf1b297df4c9fb42 Mon Sep 17 00:00:00 2001 From: "jinling.yang" Date: Wed, 9 Nov 2022 10:38:35 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8E=BB=E6=8E=89=E4=B8=8D=E9=9C=80=E8=A6=81?= =?UTF-8?q?=E7=9A=84=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sf_bpm_api/models/product_template.py | 86 --------------------------- sf_bpm_api/models/sale_order.py | 34 ----------- 2 files changed, 120 deletions(-) delete mode 100644 sf_bpm_api/models/product_template.py delete mode 100644 sf_bpm_api/models/sale_order.py diff --git a/sf_bpm_api/models/product_template.py b/sf_bpm_api/models/product_template.py deleted file mode 100644 index 08f2237c..00000000 --- a/sf_bpm_api/models/product_template.py +++ /dev/null @@ -1,86 +0,0 @@ -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)) - model_materials_id = fields.Many2one('mrs.production.materials', string='材料') - model_materials_type_id = fields.Many2one('mrs.materials.model', string='型号') - # 胚料的长,宽,高 - embryo_long = fields.Float('长[mm]', digits=(16, 3)) - embryo_width = fields.Float('宽[mm]', digits=(16, 3)) - embryo_height = fields.Float('高[mm]', digits=(16, 3)) - embryo_materials_id = fields.Many2one('mrs.production.materials', string='材料') - embryo_materials_type_id = fields.Many2one('mrs.materials.model', 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'], - 'model_materials_id': self.env['mrs.production.materials'].search( - [('materials_no', '=', item['texture_code'])]).id, - 'model_materials_type_id': self.env['mrs.materials.model'].search( - [('materials_no', '=', item['texture_type_code'])]).id, - 'default_code': '%s-%s' % (order_number, i), - 'barcode': item['barcode'], - 'active': True - } - copy_product_id.sudo().write(vals) - return copy_product_id - - -class ResProductCategory(models.Model): - _inherit = "product.category" - - is_embryo = fields.Boolean('胚料') - - -class ResMrpBom(models.Model): - _inherit = 'mrp.bom' - - # 业务平台分配工厂后在智能工厂先创建销售订单再创建该产品后再次进行创建bom - def bom_create(self, product): - bom_id = self.env['mrp.bom'].create({ - 'product_tmpl_id': product.product_tmpl_id.id, - 'type': 'normal', - 'product_qty': 1, - 'product_uom_id': 1 - }) - return bom_id - - # 生成产品BOM匹配胚料,胚料的匹配规则: - # 一、匹配的胚料类别需要带有胚料的标签; - # 二、胚料的材料型号与生成产品的材料型号一致; - # 三、胚料的长宽高均要大于模型的长宽高; - # 四、如果匹配成功多个胚料,则选取体积最小的胚料; - def bom_create_Line(self, product): - embryo = self.env['product.product'].search( - [('categ_id.is_embryo', '=', True), ('embryo_materials_type_id', '=', product.model_materials_type_id.id), - ('embryo_long', '>', product.model_long), ('embryo_width', '>', product.model_width), - ('embryo_height', '>', product.model_height) - ], - limit=1, - order='volume desc' - ) - vals = { - 'bom_id': self.id, - 'product_id': embryo.id, - 'product_tmpl_id': embryo.product_tmpl_id.id, - 'product_qty': 1, - 'product_uom_id': 1 - } - return self.env['mrp.bom.line'].create(vals) diff --git a/sf_bpm_api/models/sale_order.py b/sf_bpm_api/models/sale_order.py deleted file mode 100644 index 1618a4e3..00000000 --- a/sf_bpm_api/models/sale_order.py +++ /dev/null @@ -1,34 +0,0 @@ -from odoo import models, fields -from odoo.exceptions import ValidationError -import datetime - - -class ReSaleOrder(models.Model): - _inherit = 'sale.order' - - deadline_of_delivery = fields.Date('交货截止日期') - - # 业务平台分配工厂后在智能工厂先创建销售订单 - def sale_order_create(self, deadline_of_delivery, company_id): - now_time = datetime.datetime.now() - order_id = self.env['sale.order'].sudo().create({ - 'company_id': company_id.id, - 'date_order': now_time, - 'name': self.env['ir.sequence'].next_by_code('sale.order', sequence_date=now_time), - 'partner_id': 8, - 'state': 'sale', - 'user_id': 6, - 'deadline_of_delivery': deadline_of_delivery - }) - return order_id - - # 业务平台分配工厂时在创建完产品后再创建销售明细信息 - def sale_order_create_line(self, product, item): - vals = { - 'order_id': self.id, - 'product_id': product.id, - 'name': '%s/%s/%s/%s/%s' % (item['model_long'], item['model_width'], item['model_height'], item['model_volume'], product.model_materials_id.name), - 'price_unit': item['price'], - 'product_uom_qty': item['number'] - } - return self.env['sale.order.line'].create(vals)