1.制造模块内配置下的所有模型增加管理员(admin)权限
2.工单上的工件配送优化验证及对应的页面上新增工件配送按钮
This commit is contained in:
@@ -201,18 +201,18 @@ class ResMrpWorkOrder(models.Model):
|
||||
except:
|
||||
raise UserError("参数计算有误")
|
||||
|
||||
# def button_workpiece_delivery(self):
|
||||
# if self.routing_type == '装夹预调':
|
||||
# if not self.workpiece_delivery_ids:
|
||||
# raise UserError('请添加【工件配送】信息')
|
||||
# else:
|
||||
# for item in self.workpiece_delivery_ids:
|
||||
# if not item.feeder_station_start:
|
||||
# raise UserError('【工件配送】明细中请输入起点接驳站')
|
||||
# if not item.workpiece_code:
|
||||
# raise UserError('请对【同运工件】进行扫描')
|
||||
# else:
|
||||
# workpiece_code
|
||||
def button_workpiece_delivery(self):
|
||||
if self.routing_type == '装夹预调':
|
||||
if not self.workpiece_delivery_ids:
|
||||
raise UserError('请添加【工件配送】信息')
|
||||
else:
|
||||
for item in self.workpiece_delivery_ids:
|
||||
if not item.feeder_station_start:
|
||||
raise UserError('【工件配送】明细中请输入起点接驳站')
|
||||
if not item.workpiece_code:
|
||||
raise UserError('请对【同运工件】进行扫描')
|
||||
else:
|
||||
item.write({'task_delivery_time': fields.Datetime.now()})
|
||||
|
||||
# 拼接工单对象属性值
|
||||
def json_workorder_str(self, k, production, route):
|
||||
@@ -757,9 +757,28 @@ class SfWorkOrderBarcodes(models.Model):
|
||||
'tray_model_id': stock_move_line.product_id.fixture_model_id.id
|
||||
})
|
||||
workorder.button_start()
|
||||
# elif stock_move_line.product_id.categ_type == '坯料':
|
||||
# if stock_move_line.production_id.production_line_id.id == workorder.production_id.production_line_id.id
|
||||
# workorder.
|
||||
else:
|
||||
embryo_stock_lot = self.env['stock.lot'].search([('name', '=', barcode)])
|
||||
if embryo_stock_lot:
|
||||
embryo_stock_move_line = self.env['stock.move.line'].search(
|
||||
[('product_id', '=', embryo_stock_lot.product_id.id),
|
||||
('reference', '=', workorder.production_id.name),
|
||||
('lot_id', '=', embryo_stock_lot.id),
|
||||
('product_category_name', '=', '坯料')])
|
||||
if embryo_stock_move_line:
|
||||
workpiece_delivery = self.env['sf.workpiece.delivery'].search(
|
||||
[('workorder_id', '=', workorder.id)], limit=1, order='id asc')
|
||||
if workpiece_delivery:
|
||||
embryo_workpiece_code = workpiece_delivery.workpiece_code
|
||||
if workpiece_delivery.workpiece_code and embryo_stock_lot.name not in \
|
||||
workpiece_delivery.workpiece_code:
|
||||
embryo_workpiece_code = workpiece_delivery.workpiece_code + ',' + \
|
||||
embryo_stock_lot.name
|
||||
if not workpiece_delivery.workpiece_code:
|
||||
embryo_workpiece_code = embryo_stock_lot.name
|
||||
workpiece_delivery.write({'workpiece_code': embryo_workpiece_code})
|
||||
else:
|
||||
raise UserError('工件生产线不一致,请重新确认')
|
||||
|
||||
|
||||
class WorkPieceDelivery(models.Model):
|
||||
|
||||
@@ -6,8 +6,8 @@ import os
|
||||
from odoo import models, fields, api, _
|
||||
from odoo.exceptions import ValidationError
|
||||
from odoo.modules import get_resource_path
|
||||
# from OCC.Extend.DataExchange import read_step_file
|
||||
# from OCC.Extend.DataExchange import write_stl_file
|
||||
from OCC.Extend.DataExchange import read_step_file
|
||||
from OCC.Extend.DataExchange import write_stl_file
|
||||
|
||||
|
||||
class ResProductMo(models.Model):
|
||||
|
||||
@@ -25,6 +25,8 @@ access_mrp_workcenter_productivity_manager,mrp_workcenter_productivity,model_mrp
|
||||
|
||||
access_sf_workpiece_delivery,sf_workpiece_delivery,model_sf_workpiece_delivery,sf_base.group_sf_mrp_user,1,0,0,0
|
||||
access_sf_workpiece_delivery_manager,sf_workpiece_delivery,model_sf_workpiece_delivery,sf_base.group_sf_mrp_manager,1,1,1,0
|
||||
access_sf_workpiece_delivery_admin,sf_workpiece_delivery_admin,model_sf_workpiece_delivery,base.group_system,1,1,1,0
|
||||
|
||||
|
||||
access_mrp_workcenter_productivity_loss_manager,mrp.workcenter.productivity.loss,mrp.model_mrp_workcenter_productivity_loss,sf_base.group_sf_mrp_user,1,1,1,0
|
||||
access_mrp_workcenter_productivity_loss,mrp.workcenter.productivity.loss,mrp.model_mrp_workcenter_productivity_loss,sf_base.group_sf_mrp_user,1,0,0,0
|
||||
|
||||
|
@@ -123,6 +123,9 @@
|
||||
context="{'default_workcenter_id': workcenter_id}" class="btn-danger"
|
||||
groups="sf_base.group_sf_mrp_user"
|
||||
attrs="{'invisible': ['|', '|', ('production_state', 'in', ('draft', 'done', 'cancel')), ('working_state', '!=', 'blocked'),('name','=','获取CNC加工程序')]}"/>
|
||||
<button name="button_workpiece_delivery" type="object" string="工件配送"
|
||||
attrs="{'invisible': [('routing_type','!=','装夹预调')]}"/>
|
||||
|
||||
</xpath>
|
||||
<xpath expr="//page[1]" position="before">
|
||||
<page string="开料要求" attrs='{"invisible": [("routing_type","!=","切割")]}'>
|
||||
@@ -401,11 +404,11 @@
|
||||
</group>
|
||||
</page>
|
||||
<page string="工件配送" attrs='{"invisible": [("routing_type","!=","装夹预调")]}'>
|
||||
<field name="workpiece_delivery_ids" widget="one2many">
|
||||
<field name="workpiece_delivery_ids">
|
||||
<tree editable="bottom">
|
||||
<field name="production_id" invisible="1"/>
|
||||
<field name="workpiece_code"/>
|
||||
<field name="feeder_station_start"/>
|
||||
<field name="feeder_station_start" force_save="1"/>
|
||||
<field name="feeder_station_destination"/>
|
||||
<field name="production_line_id"/>
|
||||
<field name="task_delivery_time"/>
|
||||
|
||||
Reference in New Issue
Block a user