import datetime import base64 from odoo import models, fields class ReSaleOrder(models.Model): _inherit = 'sale.order' deadline_of_delivery = fields.Date('订单交期', tracking=True) person_of_delivery = fields.Char('交货人') telephone_of_delivery = fields.Char('交货人电话号码') address_of_delivery = fields.Char('交货人地址') payments_way = fields.Selection([('现结', '现结'), ('月结', '月结')], '结算方式', default='现结', tracking=True) pay_way = fields.Selection([('转账', '转账'), ('微信', '微信'), ('支付宝', '支付宝')], '支付方式') payment_term_id = fields.Many2one( comodel_name='account.payment.term', string="交付条件", compute='_compute_payment_term_id', store=True, readonly=False, precompute=True, check_company=True, tracking=True, domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]") # 业务平台分配工厂后在智能工厂先创建销售订单 def sale_order_create(self, company_id, delivery_name, delivery_telephone, delivery_address, deadline_of_delivery, payments_way, pay_way): now_time = datetime.datetime.now() partner = self.get_customer() 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': partner.id, 'state': 'draft', 'person_of_delivery': delivery_name, 'telephone_of_delivery': delivery_telephone, 'address_of_delivery': delivery_address, 'deadline_of_delivery': deadline_of_delivery, 'payments_way': payments_way, 'pay_way': pay_way, }) return order_id def get_customer(self): customer = self.env['res.partner'].search([('name', '=', '业务平台')]) if customer: return customer else: partner = self.env['res.partner'].create({'name': '业务平台'}) return partner # 业务平台分配工厂时在创建完产品后再创建销售明细信息 def sale_order_create_line(self, product, item): vals = { 'order_id': self.id, 'product_id': product.id, 'name': '%s/%s/%s/%s/±%s/%s' % ( product.model_long, product.model_width, product.model_height, product.model_volume, product.model_machining_precision, product.materials_id.name), 'price_unit': product.list_price, 'product_uom_qty': item['number'], 'model_glb_file': base64.b64decode(item['model_file']), } return self.env['sale.order.line'].create(vals) class ResaleOrderLine(models.Model): _inherit = 'sale.order.line' model_glb_file = fields.Binary('模型的glb文件')