83 lines
3.2 KiB
Python
83 lines
3.2 KiB
Python
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([('转账', '转账'), ('微信', '微信'), ('支付宝', '支付宝')], '支付方式')
|
|
check_status = fields.Selection([('unchecked', '未审核'), ('checked', '已审核')], '审核状态', default='unchecked')
|
|
|
|
|
|
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 action_check(self):
|
|
self.check_status = 'checked'
|
|
|
|
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文件')
|
|
|
|
|
|
class ResCrmTeam(models.Model):
|
|
_inherit = 'crm.team'
|
|
|
|
|