diff --git a/sf_bf_connect/__manifest__.py b/sf_bf_connect/__manifest__.py
index bcec62fa..af572074 100644
--- a/sf_bf_connect/__manifest__.py
+++ b/sf_bf_connect/__manifest__.py
@@ -13,8 +13,8 @@
'depends': ['sf_base', 'sf_sale', 'sf_dlm'],
'data': [
'views/res_partner_view.xml',
- 'views/view.xml',
- 'report/bill_report.xml',
+ # 'views/view.xml',
+ # 'report/bill_report.xml',
],
'demo': [
],
diff --git a/sf_bf_connect/models/__init__.py b/sf_bf_connect/models/__init__.py
index 21f9d732..43a269e9 100644
--- a/sf_bf_connect/models/__init__.py
+++ b/sf_bf_connect/models/__init__.py
@@ -1,5 +1,5 @@
from . import http
from . import models
from . import process_status
-from . import jd_eclp
+# from . import jd_eclp
diff --git a/sf_bf_connect/models/process_status.py b/sf_bf_connect/models/process_status.py
index 34acc2b6..e5f33a4d 100644
--- a/sf_bf_connect/models/process_status.py
+++ b/sf_bf_connect/models/process_status.py
@@ -115,7 +115,7 @@ class FinishStatusChange(models.Model):
# default_code = fields.Char(string='内部编码')
- def button_validate(self):
+ def button_validate1(self):
# Clean-up the context key at validation to avoid forcing the creation of immediate
# transfers.
ctx = dict(self.env.context)
diff --git a/sf_manufacturing/models/mrp_production.py b/sf_manufacturing/models/mrp_production.py
index 0e388d20..b6e7f3e5 100644
--- a/sf_manufacturing/models/mrp_production.py
+++ b/sf_manufacturing/models/mrp_production.py
@@ -1,4 +1,6 @@
# -*- coding: utf-8 -*-
+import re
+
from odoo import api, fields, models, _
@@ -57,11 +59,12 @@ class MrpProduction(models.Model):
def action_generate_serial(self):
self.ensure_one()
+ iot_code = self.env['stock.lot']._get_next_serial(self.company_id, self.product_id) or self.env['ir.sequence'].next_by_code('stock.lot.serial')
+ iot_code_name = re.sub('[\u4e00-\u9fa5]', "", iot_code)
self.lot_producing_id = self.env['stock.lot'].create({
'product_id': self.product_id.id,
'company_id': self.company_id.id,
- 'name': self.env['stock.lot']._get_next_serial(self.company_id, self.product_id) or self.env[
- 'ir.sequence'].next_by_code('stock.lot.serial'),
+ 'name': iot_code_name,
})
if self.move_finished_ids.filtered(lambda m: m.product_id == self.product_id).move_line_ids:
self.move_finished_ids.filtered(
@@ -235,6 +238,7 @@ class MrpProduction(models.Model):
current_sequence += 1
if work.name == '获取CNC加工程序':
work.button_start()
+ #work.button_finish()
work.fetchCNC()
#创建工单并进行排序
diff --git a/sf_manufacturing/models/mrp_workorder.py b/sf_manufacturing/models/mrp_workorder.py
index 852db2d7..2fadcf19 100644
--- a/sf_manufacturing/models/mrp_workorder.py
+++ b/sf_manufacturing/models/mrp_workorder.py
@@ -202,10 +202,24 @@ class ResMrpWorkOrder(models.Model):
else:
raise UserError('托盘码不能为空')
+ #验证坯料序列号是否正确
+ def pro_code_is_ok(self,barcode):
+ if barcode!=False:
+ if barcode != self.pro_code:
+ raise UserError('坯料序列号错误')
+ return False
+ else:
+ return True
+
+ pro_code = fields.Char(string='坯料序列号')
+
+ pro_code_ok = fields.Boolean(default=False)
+
#托盘扫码绑定
def gettray_auto(self, barcode):
if barcode != False:
values = self.env['sf.tray'].search([("code", "=", barcode)])
+
if values:
if values.state == "占用":
raise UserError('该托盘已占用')
@@ -378,8 +392,11 @@ class ResMrpWorkOrder(models.Model):
}]
return workorders_values_str
+
# 重写工单开始按钮方法
def button_start(self):
+ if self.routing_type == '装夹':
+ self.pro_code = self.production_id.move_raw_ids[0].move_line_ids[0].lot_id.name
if self.state == 'waiting' or self.state == 'ready' or self.state == 'progress':
self.ensure_one()
if any(not time.date_end for time in self.time_ids.filtered(lambda t: t.user_id.id == self.env.user.id)):
@@ -538,10 +555,15 @@ class SfWorkOrderBarcodes(models.Model):
_inherit = ["mrp.workorder", "barcodes.barcode_events_mixin"]
def on_barcode_scanned(self, barcode):
- tray_code = self.env['sf.tray'].search([('code', '=', barcode)])
- self.tray_code = tray_code.code
workorder = self.env['mrp.workorder'].browse(self.ids)
- self.tray_id = workorder.gettray_auto(barcode)
+ if "*" not in barcode:
+ tray_code = self.env['sf.tray'].search([('code', '=', barcode)])
+ self.tray_code = tray_code.code
+ self.tray_id = workorder.gettray_auto(barcode)
+ else:
+ self.pro_code_ok = workorder.pro_code_is_ok(barcode)
+
+
# return {
# 'type': 'ir.actions.act_window',
diff --git a/sf_manufacturing/views/mrp_workorder_view.xml b/sf_manufacturing/views/mrp_workorder_view.xml
index 2a847788..f31af8d9 100644
--- a/sf_manufacturing/views/mrp_workorder_view.xml
+++ b/sf_manufacturing/views/mrp_workorder_view.xml
@@ -166,9 +166,15 @@