Accept Merge Request #135: (feature/sf接口前后置检查以及注释 -> develop)

Merge Request: sf获取cnc程序工单自动开始获取

Created By: @龚启豪
Accepted By: @龚启豪
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/135?initial=true
This commit is contained in:
龚启豪
2023-02-16 17:50:58 +08:00
4 changed files with 24 additions and 11 deletions

View File

@@ -21,6 +21,7 @@ class MrpProduction(models.Model):
for production in self:
production.maintenance_count = len(production.request_ids)
#维修模块按钮
def button_maintenance_req(self):
self.ensure_one()
return {
@@ -34,7 +35,7 @@ class MrpProduction(models.Model):
},
'domain': [('production_id', '=', self.id)],
}
#打开维修模块请求
def open_maintenance_request_mo(self):
self.ensure_one()
action = {
@@ -135,6 +136,8 @@ class MrpProduction(models.Model):
for workorder in production.workorder_ids:
workorder.duration_expected = workorder._get_duration_expected()
#在之前的销售单上重新生成制造订单
def create_production1_values(self, production):
production_values_str = {'origin': production.origin,
'product_id': production.product_id.id,
@@ -156,6 +159,7 @@ class MrpProduction(models.Model):
'user_id': production.user_id.id}
return production_values_str
#工单排序
def _reset_work_order_sequence1(self, k):
for rec in self:
current_sequence = 1
@@ -166,6 +170,7 @@ class MrpProduction(models.Model):
for a in sfa:
print(a)
#在制造订单上新增工单
def _create_workorder1(self, k):
for production in self:
if not production.bom_id or not production.product_id:
@@ -228,7 +233,11 @@ class MrpProduction(models.Model):
for work in rec.workorder_ids:
work.sequence = current_sequence
current_sequence += 1
if work.name == '获取CNC加工程序':
work.button_start()
work.fetchCNC()
#创建工单并进行排序
def _create_workorder(self):
res = self._create_workorder3()
self._reset_work_order_sequence()

View File

@@ -136,6 +136,7 @@ class ResMrpWorkOrder(models.Model):
except:
raise UserError("参数计算有误")
#拼接工单对象属性值
def json_workorder_str(self, k, production, route):
workorders_values_str = [0, '', {
'product_uom_id': production.product_uom_id.id,
@@ -153,7 +154,7 @@ class ResMrpWorkOrder(models.Model):
}]
return workorders_values_str
# 工作中心看板按钮
# 维修模块按钮
def button_maintenance_req(self):
self.ensure_one()
return {
@@ -199,6 +200,7 @@ class ResMrpWorkOrder(models.Model):
else:
raise UserError('托盘码不能为空')
#托盘扫码绑定
def gettray_auto(self, barcode):
if barcode != False:
values = self.env['sf.tray'].search([("code", "=", barcode)])

View File

@@ -24,6 +24,7 @@ class Tray(models.Model):
else:
self.state = '空闲'
#解绑托盘
def unclamp(self):
self.workorder_id = False
self.production_id = False

View File

@@ -22,13 +22,13 @@
<field name="date_planned_finished" string="计划结束日期" optional="show"/>
</xpath>
<xpath expr="//button[@name='button_start']" position="attributes">
<attribute name="attrs">{'invisible': ['|', '|', '|','|', ('production_state','in', ('draft', 'done',
<attribute name="attrs">{'invisible': ['|', '|', '|','|','|', ('production_state','in', ('draft', 'done',
'cancel')), ('working_state', '=', 'blocked'), ('state', 'in', ('done', 'cancel')),
('is_user_working', '!=', False),("user_permissions","=",False)]}
('is_user_working', '!=', False),("user_permissions","=",False),("name","=","获取CNC加工程序")]}
</attribute>
</xpath>
<xpath expr="//button[@name='%(mrp.act_mrp_block_workcenter_wo)d']" position="attributes">
<attribute name="attrs">{'invisible': [("user_permissions","=",False)]}</attribute>
<attribute name="attrs">{'invisible': ['|',("user_permissions","=",False),("name","=","获取CNC加工程序")]}</attribute>
<attribute name="string">停工</attribute>
</xpath>
<xpath expr="//button[@name='action_open_wizard']" position="attributes">
@@ -103,20 +103,21 @@
<xpath expr="//field[@name='state']" position="before">
<field name='user_permissions' invisible="1"/>
<field name='name' invisible="1"/>
<button name="button_start" type="object" string="开始" class="btn-success"
attrs="{'invisible': ['|', '|', '|','|', ('production_state','in', ('draft', 'done',
attrs="{'invisible': ['|', '|', '|','|','|', ('production_state','in', ('draft', 'done',
'cancel')), ('working_state', '=', 'blocked'), ('state', 'in', ('done', 'cancel')),
('is_user_working', '!=', False),('user_permissions','=',False)]}"/>
('is_user_working', '!=', False),('user_permissions','=',False),('name','=','获取CNC加工程序')]}"/>
<button name="button_pending" type="object" string="暂停" class="btn-warning"
attrs="{'invisible': ['|', '|', ('production_state', 'in', ('draft', 'done', 'cancel')), ('working_state', '=', 'blocked'), ('is_user_working', '=', False)]}"/>
attrs="{'invisible': ['|', '|','|', ('production_state', 'in', ('draft', 'done', 'cancel')), ('working_state', '=', 'blocked'), ('is_user_working', '=', False),('name','=','获取CNC加工程序')]}"/>
<button name="button_finish" type="object" string="完成" class="btn-success"
attrs="{'invisible': ['|', '|', ('production_state', 'in', ('draft', 'done', 'cancel')), ('working_state', '=', 'blocked'), ('is_user_working', '=', False)]}"/>
attrs="{'invisible': ['|', '|','|', ('production_state', 'in', ('draft', 'done', 'cancel')), ('working_state', '=', 'blocked'), ('is_user_working', '=', False),('name','=','获取CNC加工程序')]}"/>
<button name="%(mrp.act_mrp_block_workcenter_wo)d" type="action" string="停工"
context="{'default_workcenter_id': workcenter_id}" class="btn-danger"
attrs="{'invisible': ['|', '|', ('production_state', 'in', ('draft', 'done', 'cancel')), ('working_state', '=', 'blocked'),('user_permissions','=',False)]}"/>
attrs="{'invisible': ['|', '|','|', ('production_state', 'in', ('draft', 'done', 'cancel')), ('working_state', '=', 'blocked'),('user_permissions','=',False),('name','=','获取CNC加工程序')]}"/>
<button name="button_unblock" type="object" string="Unblock"
context="{'default_workcenter_id': workcenter_id}" class="btn-danger"
attrs="{'invisible': ['|', ('production_state', 'in', ('draft', 'done', 'cancel')), ('working_state', '!=', 'blocked')]}"/>
attrs="{'invisible': ['|', '|', ('production_state', 'in', ('draft', 'done', 'cancel')), ('working_state', '!=', 'blocked'),('name','=','获取CNC加工程序')]}"/>
</xpath>
<!-- 隐藏物料清单-->
<xpath expr="//page[@name='components']" position="attributes">