diff --git a/sf_manufacturing/controllers/main.py b/sf_manufacturing/controllers/main.py
index 3dd73017..8a289e75 100644
--- a/sf_manufacturing/controllers/main.py
+++ b/sf_manufacturing/controllers/main.py
@@ -45,6 +45,8 @@ class JikimoSaleRoutePicking(Sf_Bf_Connect):
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)
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
order_id.confirm_to_supply_method()
except Exception as e:
diff --git a/sf_manufacturing/models/sale_order.py b/sf_manufacturing/models/sale_order.py
index cb214bc9..84afa4c6 100644
--- a/sf_manufacturing/models/sale_order.py
+++ b/sf_manufacturing/models/sale_order.py
@@ -190,7 +190,29 @@ class SaleOrder(models.Model):
'target': 'new',
'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):
_inherit = 'sale.order.line'
diff --git a/sf_manufacturing/wizard/rework_wizard.py b/sf_manufacturing/wizard/rework_wizard.py
index 7fc935a0..8ddc353b 100644
--- a/sf_manufacturing/wizard/rework_wizard.py
+++ b/sf_manufacturing/wizard/rework_wizard.py
@@ -125,12 +125,16 @@ class ReworkWizard(models.TransientModel):
# 1、单独返工CNC工单则不解绑托盘RFID,如单独返工装夹预调工单,则自动解绑托盘RFID;
# 2、返工CNC工单和装夹预调工单则自动解绑RFID
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:
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: (
- wk.routing_type != '装夹预调' and
wk.processing_panel == clamp_workorder_id.processing_panel)).write({'rfid_code': None})
# 返工工单状态设置为【返工】
rework_workorder_ids.write({'state': 'rework'})
diff --git a/sf_sale/__manifest__.py b/sf_sale/__manifest__.py
index c12f94fd..94c97825 100644
--- a/sf_sale/__manifest__.py
+++ b/sf_sale/__manifest__.py
@@ -17,6 +17,7 @@
'wizard/sale_order_wizard_views.xml',
'wizard/purchase_order_wizard_views.xml',
'data/cron_data.xml',
+ 'data/documents_data.xml',
'views/sale_team.xml',
'views/sale_order_view.xml',
'views/res_partner_view.xml',
diff --git a/sf_sale/data/documents_data.xml b/sf_sale/data/documents_data.xml
new file mode 100644
index 00000000..d8182c75
--- /dev/null
+++ b/sf_sale/data/documents_data.xml
@@ -0,0 +1,15 @@
+
+
+
+
+
+ 销售合同
+ 存放销售合同相关文件
+ 8
+
+
+ 下单凭证
+
+
+
+
\ No newline at end of file
diff --git a/sf_sale/models/sale_order.py b/sf_sale/models/sale_order.py
index 487bfd53..1366500d 100644
--- a/sf_sale/models/sale_order.py
+++ b/sf_sale/models/sale_order.py
@@ -63,6 +63,10 @@ class ReSaleOrder(models.Model):
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,
deadline_of_delivery, payments_way, pay_way, order_number, state='sale',
diff --git a/sf_sale/views/sale_order_view.xml b/sf_sale/views/sale_order_view.xml
index 0574f5d5..05460a61 100644
--- a/sf_sale/views/sale_order_view.xml
+++ b/sf_sale/views/sale_order_view.xml
@@ -198,7 +198,20 @@
-
+
+
+
+
+
+
+
+
+
+
+