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:
@@ -21,6 +21,7 @@ class MrpProduction(models.Model):
|
|||||||
for production in self:
|
for production in self:
|
||||||
production.maintenance_count = len(production.request_ids)
|
production.maintenance_count = len(production.request_ids)
|
||||||
|
|
||||||
|
#维修模块按钮
|
||||||
def button_maintenance_req(self):
|
def button_maintenance_req(self):
|
||||||
self.ensure_one()
|
self.ensure_one()
|
||||||
return {
|
return {
|
||||||
@@ -34,7 +35,7 @@ class MrpProduction(models.Model):
|
|||||||
},
|
},
|
||||||
'domain': [('production_id', '=', self.id)],
|
'domain': [('production_id', '=', self.id)],
|
||||||
}
|
}
|
||||||
|
#打开维修模块请求
|
||||||
def open_maintenance_request_mo(self):
|
def open_maintenance_request_mo(self):
|
||||||
self.ensure_one()
|
self.ensure_one()
|
||||||
action = {
|
action = {
|
||||||
@@ -135,6 +136,8 @@ class MrpProduction(models.Model):
|
|||||||
for workorder in production.workorder_ids:
|
for workorder in production.workorder_ids:
|
||||||
workorder.duration_expected = workorder._get_duration_expected()
|
workorder.duration_expected = workorder._get_duration_expected()
|
||||||
|
|
||||||
|
|
||||||
|
#在之前的销售单上重新生成制造订单
|
||||||
def create_production1_values(self, production):
|
def create_production1_values(self, production):
|
||||||
production_values_str = {'origin': production.origin,
|
production_values_str = {'origin': production.origin,
|
||||||
'product_id': production.product_id.id,
|
'product_id': production.product_id.id,
|
||||||
@@ -156,6 +159,7 @@ class MrpProduction(models.Model):
|
|||||||
'user_id': production.user_id.id}
|
'user_id': production.user_id.id}
|
||||||
return production_values_str
|
return production_values_str
|
||||||
|
|
||||||
|
#工单排序
|
||||||
def _reset_work_order_sequence1(self, k):
|
def _reset_work_order_sequence1(self, k):
|
||||||
for rec in self:
|
for rec in self:
|
||||||
current_sequence = 1
|
current_sequence = 1
|
||||||
@@ -166,6 +170,7 @@ class MrpProduction(models.Model):
|
|||||||
for a in sfa:
|
for a in sfa:
|
||||||
print(a)
|
print(a)
|
||||||
|
|
||||||
|
#在制造订单上新增工单
|
||||||
def _create_workorder1(self, k):
|
def _create_workorder1(self, k):
|
||||||
for production in self:
|
for production in self:
|
||||||
if not production.bom_id or not production.product_id:
|
if not production.bom_id or not production.product_id:
|
||||||
@@ -228,7 +233,11 @@ class MrpProduction(models.Model):
|
|||||||
for work in rec.workorder_ids:
|
for work in rec.workorder_ids:
|
||||||
work.sequence = current_sequence
|
work.sequence = current_sequence
|
||||||
current_sequence += 1
|
current_sequence += 1
|
||||||
|
if work.name == '获取CNC加工程序':
|
||||||
|
work.button_start()
|
||||||
|
work.fetchCNC()
|
||||||
|
|
||||||
|
#创建工单并进行排序
|
||||||
def _create_workorder(self):
|
def _create_workorder(self):
|
||||||
res = self._create_workorder3()
|
res = self._create_workorder3()
|
||||||
self._reset_work_order_sequence()
|
self._reset_work_order_sequence()
|
||||||
|
|||||||
@@ -136,6 +136,7 @@ class ResMrpWorkOrder(models.Model):
|
|||||||
except:
|
except:
|
||||||
raise UserError("参数计算有误")
|
raise UserError("参数计算有误")
|
||||||
|
|
||||||
|
#拼接工单对象属性值
|
||||||
def json_workorder_str(self, k, production, route):
|
def json_workorder_str(self, k, production, route):
|
||||||
workorders_values_str = [0, '', {
|
workorders_values_str = [0, '', {
|
||||||
'product_uom_id': production.product_uom_id.id,
|
'product_uom_id': production.product_uom_id.id,
|
||||||
@@ -153,7 +154,7 @@ class ResMrpWorkOrder(models.Model):
|
|||||||
}]
|
}]
|
||||||
return workorders_values_str
|
return workorders_values_str
|
||||||
|
|
||||||
# 工作中心看板按钮
|
# 维修模块按钮
|
||||||
def button_maintenance_req(self):
|
def button_maintenance_req(self):
|
||||||
self.ensure_one()
|
self.ensure_one()
|
||||||
return {
|
return {
|
||||||
@@ -199,6 +200,7 @@ class ResMrpWorkOrder(models.Model):
|
|||||||
else:
|
else:
|
||||||
raise UserError('托盘码不能为空')
|
raise UserError('托盘码不能为空')
|
||||||
|
|
||||||
|
#托盘扫码绑定
|
||||||
def gettray_auto(self, barcode):
|
def gettray_auto(self, barcode):
|
||||||
if barcode != False:
|
if barcode != False:
|
||||||
values = self.env['sf.tray'].search([("code", "=", barcode)])
|
values = self.env['sf.tray'].search([("code", "=", barcode)])
|
||||||
|
|||||||
@@ -24,6 +24,7 @@ class Tray(models.Model):
|
|||||||
else:
|
else:
|
||||||
self.state = '空闲'
|
self.state = '空闲'
|
||||||
|
|
||||||
|
#解绑托盘
|
||||||
def unclamp(self):
|
def unclamp(self):
|
||||||
self.workorder_id = False
|
self.workorder_id = False
|
||||||
self.production_id = False
|
self.production_id = False
|
||||||
|
|||||||
@@ -22,13 +22,13 @@
|
|||||||
<field name="date_planned_finished" string="计划结束日期" optional="show"/>
|
<field name="date_planned_finished" string="计划结束日期" optional="show"/>
|
||||||
</xpath>
|
</xpath>
|
||||||
<xpath expr="//button[@name='button_start']" position="attributes">
|
<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')),
|
'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>
|
</attribute>
|
||||||
</xpath>
|
</xpath>
|
||||||
<xpath expr="//button[@name='%(mrp.act_mrp_block_workcenter_wo)d']" position="attributes">
|
<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>
|
<attribute name="string">停工</attribute>
|
||||||
</xpath>
|
</xpath>
|
||||||
<xpath expr="//button[@name='action_open_wizard']" position="attributes">
|
<xpath expr="//button[@name='action_open_wizard']" position="attributes">
|
||||||
@@ -103,20 +103,21 @@
|
|||||||
<xpath expr="//field[@name='state']" position="before">
|
<xpath expr="//field[@name='state']" position="before">
|
||||||
|
|
||||||
<field name='user_permissions' invisible="1"/>
|
<field name='user_permissions' invisible="1"/>
|
||||||
|
<field name='name' invisible="1"/>
|
||||||
<button name="button_start" type="object" string="开始" class="btn-success"
|
<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')),
|
'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"
|
<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"
|
<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="停工"
|
<button name="%(mrp.act_mrp_block_workcenter_wo)d" type="action" string="停工"
|
||||||
context="{'default_workcenter_id': workcenter_id}" class="btn-danger"
|
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"
|
<button name="button_unblock" type="object" string="Unblock"
|
||||||
context="{'default_workcenter_id': workcenter_id}" class="btn-danger"
|
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>
|
||||||
<!-- 隐藏物料清单-->
|
<!-- 隐藏物料清单-->
|
||||||
<xpath expr="//page[@name='components']" position="attributes">
|
<xpath expr="//page[@name='components']" position="attributes">
|
||||||
|
|||||||
Reference in New Issue
Block a user