Accept Merge Request #2158: (feature/销售订单优化 -> develop)
Merge Request: Merge branch 'feature/消息通知优化' into feature/销售订单优化 Created By: @禹翔辉 Reviewed By: @胡尧 Approved By: @胡尧 Accepted By: @禹翔辉 URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/2158
This commit is contained in:
@@ -45,6 +45,8 @@ class JikimoSaleRoutePicking(Sf_Bf_Connect):
|
|||||||
product.product_tmpl_id.is_customer_provided = True if item['embryo_redundancy_id'] else False
|
product.product_tmpl_id.is_customer_provided = True if item['embryo_redundancy_id'] else False
|
||||||
order_id.with_user(request.env.ref("base.user_admin")).sale_order_create_line(product, item)
|
order_id.with_user(request.env.ref("base.user_admin")).sale_order_create_line(product, item)
|
||||||
i += 1
|
i += 1
|
||||||
|
if kw.get('contract_file_name') and kw.get('contract_file'):
|
||||||
|
order_id.create_sale_documents(kw.get('contract_file_name'), kw.get('contract_file'))
|
||||||
res['factory_order_no'] = order_id.name
|
res['factory_order_no'] = order_id.name
|
||||||
order_id.confirm_to_supply_method()
|
order_id.confirm_to_supply_method()
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
|
|||||||
@@ -190,7 +190,29 @@ class SaleOrder(models.Model):
|
|||||||
'target': 'new',
|
'target': 'new',
|
||||||
'res_id': wizard.id,
|
'res_id': wizard.id,
|
||||||
}
|
}
|
||||||
|
def create_sale_documents(self, contract_file_name, contract_file):
|
||||||
|
# 创建ir.attachment记录
|
||||||
|
attachment = self.env['ir.attachment'].sudo().create({
|
||||||
|
'name': contract_file_name,
|
||||||
|
'type': 'binary',
|
||||||
|
'datas': contract_file,
|
||||||
|
'res_model': 'sale.order',
|
||||||
|
})
|
||||||
|
|
||||||
|
# 获取默认的文档文件夹
|
||||||
|
workspace = self.env.ref('sf_sale.documents_sales_contracts_folder_1').id
|
||||||
|
|
||||||
|
# 创建 documents.document 记录
|
||||||
|
document = self.env['documents.document'].sudo().create({
|
||||||
|
'name': contract_file_name,
|
||||||
|
'attachment_id': attachment.id,
|
||||||
|
'folder_id': workspace,
|
||||||
|
'res_model': 'sale.order'
|
||||||
|
})
|
||||||
|
|
||||||
|
self.write({
|
||||||
|
'contract_document_id': document.id
|
||||||
|
})
|
||||||
|
|
||||||
class SaleOrderLine(models.Model):
|
class SaleOrderLine(models.Model):
|
||||||
_inherit = 'sale.order.line'
|
_inherit = 'sale.order.line'
|
||||||
|
|||||||
@@ -125,12 +125,16 @@ class ReworkWizard(models.TransientModel):
|
|||||||
# 1、单独返工CNC工单则不解绑托盘RFID,如单独返工装夹预调工单,则自动解绑托盘RFID;
|
# 1、单独返工CNC工单则不解绑托盘RFID,如单独返工装夹预调工单,则自动解绑托盘RFID;
|
||||||
# 2、返工CNC工单和装夹预调工单则自动解绑RFID
|
# 2、返工CNC工单和装夹预调工单则自动解绑RFID
|
||||||
clamp_workorder_ids = rework_workorder_ids.filtered(lambda rp: rp.routing_type == '装夹预调')
|
clamp_workorder_ids = rework_workorder_ids.filtered(lambda rp: rp.routing_type == '装夹预调')
|
||||||
|
|
||||||
|
vals_list = [{
|
||||||
|
'id': order.id,
|
||||||
|
'rfid_code_old': order.rfid_code,
|
||||||
|
'rfid_code': False
|
||||||
|
} for order in rework_workorder_ids]
|
||||||
|
rework_workorder_ids.write(vals_list)
|
||||||
if clamp_workorder_ids:
|
if clamp_workorder_ids:
|
||||||
for clamp_workorder_id in clamp_workorder_ids:
|
for clamp_workorder_id in clamp_workorder_ids:
|
||||||
rfid_code = clamp_workorder_id.rfid_code
|
|
||||||
clamp_workorder_id.write({'rfid_code_old': rfid_code, 'rfid_code': False})
|
|
||||||
self.production_id.workorder_ids.filtered(lambda wk: (
|
self.production_id.workorder_ids.filtered(lambda wk: (
|
||||||
wk.routing_type != '装夹预调' and
|
|
||||||
wk.processing_panel == clamp_workorder_id.processing_panel)).write({'rfid_code': None})
|
wk.processing_panel == clamp_workorder_id.processing_panel)).write({'rfid_code': None})
|
||||||
# 返工工单状态设置为【返工】
|
# 返工工单状态设置为【返工】
|
||||||
rework_workorder_ids.write({'state': 'rework'})
|
rework_workorder_ids.write({'state': 'rework'})
|
||||||
|
|||||||
@@ -17,6 +17,7 @@
|
|||||||
'wizard/sale_order_wizard_views.xml',
|
'wizard/sale_order_wizard_views.xml',
|
||||||
'wizard/purchase_order_wizard_views.xml',
|
'wizard/purchase_order_wizard_views.xml',
|
||||||
'data/cron_data.xml',
|
'data/cron_data.xml',
|
||||||
|
'data/documents_data.xml',
|
||||||
'views/sale_team.xml',
|
'views/sale_team.xml',
|
||||||
'views/sale_order_view.xml',
|
'views/sale_order_view.xml',
|
||||||
'views/res_partner_view.xml',
|
'views/res_partner_view.xml',
|
||||||
|
|||||||
15
sf_sale/data/documents_data.xml
Normal file
15
sf_sale/data/documents_data.xml
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<odoo>
|
||||||
|
<data noupdate="1">
|
||||||
|
<!-- 创建采购合同文件夹 -->
|
||||||
|
<record id="documents_sales_contracts_folder" model="documents.folder">
|
||||||
|
<field name="name">销售合同</field>
|
||||||
|
<field name="description">存放销售合同相关文件</field>
|
||||||
|
<field name="sequence">8</field>
|
||||||
|
</record>
|
||||||
|
<record id="documents_sales_contracts_folder_1" model="documents.folder">
|
||||||
|
<field name="name">下单凭证</field>
|
||||||
|
<field name="parent_folder_id" ref="documents_sales_contracts_folder"/>
|
||||||
|
</record>
|
||||||
|
</data>
|
||||||
|
</odoo>
|
||||||
@@ -63,6 +63,10 @@ class ReSaleOrder(models.Model):
|
|||||||
|
|
||||||
model_display_version = fields.Char('模型展示版本', default="v1")
|
model_display_version = fields.Char('模型展示版本', default="v1")
|
||||||
|
|
||||||
|
contract_document_id = fields.Many2one('documents.document', string='合同文件')
|
||||||
|
contract_file = fields.Binary(related='contract_document_id.datas', string='合同文件内容')
|
||||||
|
contract_file_name = fields.Char(related='contract_document_id.attachment_id.name', string='文件名')
|
||||||
|
|
||||||
# 业务平台分配工厂后在智能工厂先创建销售订单
|
# 业务平台分配工厂后在智能工厂先创建销售订单
|
||||||
def sale_order_create(self, company_id, delivery_name, delivery_telephone, delivery_address,
|
def sale_order_create(self, company_id, delivery_name, delivery_telephone, delivery_address,
|
||||||
deadline_of_delivery, payments_way, pay_way, order_number, state='sale',
|
deadline_of_delivery, payments_way, pay_way, order_number, state='sale',
|
||||||
|
|||||||
@@ -198,7 +198,20 @@
|
|||||||
</div>
|
</div>
|
||||||
<field name="date_order" attrs="{'invisible': [('state', 'in', ['done', 'cancel'])], 'required': True}" nolabel="1"/>
|
<field name="date_order" attrs="{'invisible': [('state', 'in', ['done', 'cancel'])], 'required': True}" nolabel="1"/>
|
||||||
</xpath>
|
</xpath>
|
||||||
|
<xpath expr="//notebook/page[@name='customer_signature']" position="after">
|
||||||
|
<page string="合同" name="contract_documents"
|
||||||
|
attrs="{'invisible': [('contract_document_id', '=', False)]}">
|
||||||
|
<group>
|
||||||
|
<group>
|
||||||
|
<field name="contract_document_id" invisible="1"/>
|
||||||
|
<field name="contract_file_name" invisible="1"/>
|
||||||
|
<field name="contract_file"
|
||||||
|
widget="adaptive_viewer"
|
||||||
|
filename="contract_file_name"/>
|
||||||
|
</group>
|
||||||
|
</group>
|
||||||
|
</page>
|
||||||
|
</xpath>
|
||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user