修复表面工艺
This commit is contained in:
@@ -12,6 +12,7 @@
|
|||||||
<field name="state" select="multi" string="状态" icon="fa-building" enable_counters="1"/>
|
<field name="state" select="multi" string="状态" icon="fa-building" enable_counters="1"/>
|
||||||
|
|
||||||
<field name="construction_period_status" select="multi" icon="fa-building" enable_counters="1"/>
|
<field name="construction_period_status" select="multi" icon="fa-building" enable_counters="1"/>
|
||||||
|
<field name="tag_type" select="multi" icon="fa-building" enable_counters="1"/>
|
||||||
<!-- <field name="manual_quotation" select="multi" string="" icon="fa-building" enable_counters="1"/>-->
|
<!-- <field name="manual_quotation" select="multi" string="" icon="fa-building" enable_counters="1"/>-->
|
||||||
</searchpanel>
|
</searchpanel>
|
||||||
|
|
||||||
|
|||||||
@@ -691,7 +691,7 @@ class MrpProduction(models.Model):
|
|||||||
# # 根据工序设计生成工单
|
# # 根据工序设计生成工单
|
||||||
for route in production.technology_design_ids:
|
for route in production.technology_design_ids:
|
||||||
workorder_has = self.env['mrp.workorder'].search(
|
workorder_has = self.env['mrp.workorder'].search(
|
||||||
[('technology_design_id', '=', route.id), ('production_id', '=', production.id)])
|
[('name', '=', route.route_id.name), ('production_id', '=', production.id)])
|
||||||
if not workorder_has:
|
if not workorder_has:
|
||||||
if route.route_id.routing_type not in ['表面工艺']:
|
if route.route_id.routing_type not in ['表面工艺']:
|
||||||
workorders_values.append(
|
workorders_values.append(
|
||||||
@@ -1469,12 +1469,10 @@ class MrpProduction(models.Model):
|
|||||||
def action_view_purchase_orders(self):
|
def action_view_purchase_orders(self):
|
||||||
self.ensure_one()
|
self.ensure_one()
|
||||||
if self.product_id.product_tmpl_id.single_manufacturing == True:
|
if self.product_id.product_tmpl_id.single_manufacturing == True:
|
||||||
production = self.env['mrp.production'].search(
|
production = self.env['mrp.production'].search([('origin', '=', self.origin), ('product_id', '=', self.product_id.id)], limit=1, order='id asc')
|
||||||
[('origin', '=', self.origin), ('product_id', '=', self.product_id.id)], limit=1, order='id asc')
|
|
||||||
else:
|
else:
|
||||||
production = self
|
production = self
|
||||||
purchase_order_ids = (
|
purchase_order_ids = (production.procurement_group_id.stock_move_ids.created_purchase_line_id.order_id | production.procurement_group_id.stock_move_ids.move_orig_ids.purchase_line_id.order_id).ids
|
||||||
production.procurement_group_id.stock_move_ids.created_purchase_line_id.order_id | production.procurement_group_id.stock_move_ids.move_orig_ids.purchase_line_id.order_id).ids
|
|
||||||
action = {
|
action = {
|
||||||
'res_model': 'purchase.order',
|
'res_model': 'purchase.order',
|
||||||
'type': 'ir.actions.act_window',
|
'type': 'ir.actions.act_window',
|
||||||
@@ -1492,7 +1490,6 @@ class MrpProduction(models.Model):
|
|||||||
})
|
})
|
||||||
return action
|
return action
|
||||||
|
|
||||||
|
|
||||||
class sf_detection_result(models.Model):
|
class sf_detection_result(models.Model):
|
||||||
_name = 'sf.detection.result'
|
_name = 'sf.detection.result'
|
||||||
_description = "检测结果"
|
_description = "检测结果"
|
||||||
|
|||||||
@@ -141,8 +141,8 @@ class ResMrpWorkOrder(models.Model):
|
|||||||
|
|
||||||
# 是否绑定托盘
|
# 是否绑定托盘
|
||||||
is_trayed = fields.Boolean(string='是否绑定托盘', default=False)
|
is_trayed = fields.Boolean(string='是否绑定托盘', default=False)
|
||||||
|
|
||||||
tag_type = fields.Selection([("重新加工", "重新加工")], string="标签", tracking=True)
|
tag_type = fields.Selection([("重新加工", "重新加工")], string="标签", tracking=True)
|
||||||
|
|
||||||
technology_design_id = fields.Many2one('sf.technology.design')
|
technology_design_id = fields.Many2one('sf.technology.design')
|
||||||
|
|
||||||
def _compute_default_construction_period_status(self):
|
def _compute_default_construction_period_status(self):
|
||||||
@@ -235,7 +235,7 @@ class ResMrpWorkOrder(models.Model):
|
|||||||
for workorder in self:
|
for workorder in self:
|
||||||
if workorder.routing_type == '表面工艺':
|
if workorder.routing_type == '表面工艺':
|
||||||
domain = [('origin', '=', workorder.production_id.name), ('state', 'not in', ['cancel']),
|
domain = [('origin', '=', workorder.production_id.name), ('state', 'not in', ['cancel']),
|
||||||
('partner_id', '=', workorder.supplier_id.id)]
|
('partner_id', '!=', False)]
|
||||||
previous_workorder = self.env['mrp.workorder'].search(
|
previous_workorder = self.env['mrp.workorder'].search(
|
||||||
[('sequence', '=', workorder.sequence - 1), ('routing_type', '=', '表面工艺'),
|
[('sequence', '=', workorder.sequence - 1), ('routing_type', '=', '表面工艺'),
|
||||||
('production_id', '=', workorder.production_id.id)])
|
('production_id', '=', workorder.production_id.id)])
|
||||||
@@ -244,8 +244,6 @@ class ResMrpWorkOrder(models.Model):
|
|||||||
process_product = self.env['product.template']._get_process_parameters_product(
|
process_product = self.env['product.template']._get_process_parameters_product(
|
||||||
previous_workorder.surface_technics_parameters_id)
|
previous_workorder.surface_technics_parameters_id)
|
||||||
domain += [('partner_id', '=', process_product.partner_id.id)]
|
domain += [('partner_id', '=', process_product.partner_id.id)]
|
||||||
else:
|
|
||||||
domain += [('surface_technics_parameters_id', '=', workorder.surface_technics_parameters_id.id)]
|
|
||||||
picking_ids = self.env['stock.picking'].search(domain, order='id asc')
|
picking_ids = self.env['stock.picking'].search(domain, order='id asc')
|
||||||
workorder.surface_technics_picking_count = len(picking_ids)
|
workorder.surface_technics_picking_count = len(picking_ids)
|
||||||
workorder.picking_ids = picking_ids.ids
|
workorder.picking_ids = picking_ids.ids
|
||||||
@@ -285,14 +283,12 @@ class ResMrpWorkOrder(models.Model):
|
|||||||
# else:
|
# else:
|
||||||
domain = [('purchase_type', '=', 'consignment'), ('origin', '=', ','.join(production_list))]
|
domain = [('purchase_type', '=', 'consignment'), ('origin', '=', ','.join(production_list))]
|
||||||
purchase = self.env['purchase.order'].search(domain)
|
purchase = self.env['purchase.order'].search(domain)
|
||||||
purchase_num = 0
|
|
||||||
if not purchase:
|
if not purchase:
|
||||||
order.surface_technics_purchase_count = 0
|
order.surface_technics_purchase_count = 0
|
||||||
for line in purchase.order_line:
|
for line in purchase.order_line:
|
||||||
if line.product_id.server_product_process_parameters_id == order.surface_technics_parameters_id:
|
if line.product_id.server_product_process_parameters_id == order.surface_technics_parameters_id:
|
||||||
if line.product_qty == len(production_no_remanufacture):
|
if line.product_qty == len(production_no_remanufacture):
|
||||||
purchase_num += 1
|
order.surface_technics_purchase_count = len(purchase)
|
||||||
order.surface_technics_purchase_count = purchase_num
|
|
||||||
else:
|
else:
|
||||||
order.surface_technics_purchase_count = 0
|
order.surface_technics_purchase_count = 0
|
||||||
|
|
||||||
@@ -313,16 +309,10 @@ class ResMrpWorkOrder(models.Model):
|
|||||||
# else:
|
# else:
|
||||||
domain = [('origin', '=', ','.join(production_list)), ('purchase_type', '=', 'consignment')]
|
domain = [('origin', '=', ','.join(production_list)), ('purchase_type', '=', 'consignment')]
|
||||||
purchase_orders = self.env['purchase.order'].search(domain)
|
purchase_orders = self.env['purchase.order'].search(domain)
|
||||||
purchase_orders_id = None
|
|
||||||
for line in purchase_orders.order_line:
|
|
||||||
if line.product_id.server_product_process_parameters_id == self.surface_technics_parameters_id:
|
|
||||||
if line.product_qty == len(production_no_remanufacture):
|
|
||||||
purchase_orders_id = line.order_id.id
|
|
||||||
order.surface_technics_purchase_count = purchase_num
|
|
||||||
result = {
|
result = {
|
||||||
"type": "ir.actions.act_window",
|
"type": "ir.actions.act_window",
|
||||||
"res_model": "purchase.order",
|
"res_model": "purchase.order",
|
||||||
"res_id": purchase_orders_id,
|
"res_id": purchase_orders.id,
|
||||||
# "domain": [['id', 'in', self.purchase_id]],
|
# "domain": [['id', 'in', self.purchase_id]],
|
||||||
"name": _("Purchase Orders"),
|
"name": _("Purchase Orders"),
|
||||||
'view_mode': 'form',
|
'view_mode': 'form',
|
||||||
|
|||||||
@@ -286,6 +286,8 @@ class StockRule(models.Model):
|
|||||||
mrp_production = self.env['mrp.production'].sudo().search([('name', '=', production.origin)], limit=1)
|
mrp_production = self.env['mrp.production'].sudo().search([('name', '=', production.origin)], limit=1)
|
||||||
if mrp_production:
|
if mrp_production:
|
||||||
sale_order = self.env['sale.order'].sudo().search([('name', '=', mrp_production.origin)])
|
sale_order = self.env['sale.order'].sudo().search([('name', '=', mrp_production.origin)])
|
||||||
|
else:
|
||||||
|
mrp_production = production
|
||||||
if sale_order:
|
if sale_order:
|
||||||
# sale_order.write({'schedule_status': 'to schedule'})
|
# sale_order.write({'schedule_status': 'to schedule'})
|
||||||
self.env['sf.production.plan'].sudo().with_company(company_id).create({
|
self.env['sf.production.plan'].sudo().with_company(company_id).create({
|
||||||
@@ -293,7 +295,7 @@ class StockRule(models.Model):
|
|||||||
'order_deadline': sale_order.deadline_of_delivery,
|
'order_deadline': sale_order.deadline_of_delivery,
|
||||||
'production_id': production.id,
|
'production_id': production.id,
|
||||||
'date_planned_start': production.date_planned_start,
|
'date_planned_start': production.date_planned_start,
|
||||||
'origin': production.origin,
|
'origin': mrp_production.origin,
|
||||||
'product_qty': production.product_qty,
|
'product_qty': production.product_qty,
|
||||||
'product_id': production.product_id.id,
|
'product_id': production.product_id.id,
|
||||||
'state': 'draft',
|
'state': 'draft',
|
||||||
|
|||||||
@@ -32,6 +32,7 @@
|
|||||||
</field>
|
</field>
|
||||||
<xpath expr="//field[@name='qty_remaining']" position="after">
|
<xpath expr="//field[@name='qty_remaining']" position="after">
|
||||||
<field name="manual_quotation" optional="show"/>
|
<field name="manual_quotation" optional="show"/>
|
||||||
|
<field name="tag_type" optional="show"/>
|
||||||
<field name="construction_period_status" optional="show" widget="badge"
|
<field name="construction_period_status" optional="show" widget="badge"
|
||||||
decoration-success="construction_period_status == '正常'"
|
decoration-success="construction_period_status == '正常'"
|
||||||
decoration-warning="construction_period_status == '预警'"
|
decoration-warning="construction_period_status == '预警'"
|
||||||
|
|||||||
@@ -21,6 +21,7 @@ class ProductionTechnologyReAdjustWizard(models.TransientModel):
|
|||||||
technology_designs = self.env['sf.technology.design'].sudo().search(
|
technology_designs = self.env['sf.technology.design'].sudo().search(
|
||||||
[('production_id', '=', self.production_id.id), ('active', 'in', [True, False])])
|
[('production_id', '=', self.production_id.id), ('active', 'in', [True, False])])
|
||||||
productions = self.env['mrp.production'].search(domain)
|
productions = self.env['mrp.production'].search(domain)
|
||||||
|
|
||||||
for production_item in productions:
|
for production_item in productions:
|
||||||
# 该制造订单的其他同一销售订单的制造订单的工艺设计处理
|
# 该制造订单的其他同一销售订单的制造订单的工艺设计处理
|
||||||
if production_item != self.production_id:
|
if production_item != self.production_id:
|
||||||
@@ -79,8 +80,12 @@ class ProductionTechnologyReAdjustWizard(models.TransientModel):
|
|||||||
if line.product_id.server_product_process_parameters_id == workorder.surface_technics_parameters_id:
|
if line.product_id.server_product_process_parameters_id == workorder.surface_technics_parameters_id:
|
||||||
purchase_order.write({'state': 'cancel'})
|
purchase_order.write({'state': 'cancel'})
|
||||||
else:
|
else:
|
||||||
|
if special.route_id.routing_type == '表面工艺':
|
||||||
|
display_name = special.process_parameters_id.display_name
|
||||||
|
else:
|
||||||
|
display_name = special.route_id.display_name
|
||||||
workorder = self.env['mrp.workorder'].search(
|
workorder = self.env['mrp.workorder'].search(
|
||||||
[('technology_design_id', '=', special.id), ('production_id', '=', special.production_id.id)])
|
[('name', '=', display_name), ('production_id', '=', special.production_id.id)])
|
||||||
if not workorder:
|
if not workorder:
|
||||||
if special.route_id.routing_type == '表面工艺':
|
if special.route_id.routing_type == '表面工艺':
|
||||||
product_production_process = self.env['product.template'].search(
|
product_production_process = self.env['product.template'].search(
|
||||||
|
|||||||
@@ -46,8 +46,8 @@ class ProductionTechnologyWizard(models.TransientModel):
|
|||||||
if ro.route_id.routing_type == '表面工艺':
|
if ro.route_id.routing_type == '表面工艺':
|
||||||
domain += [('process_parameters_id', '=', ro.process_parameters_id.id)]
|
domain += [('process_parameters_id', '=', ro.process_parameters_id.id)]
|
||||||
elif ro.route_id.routing_tag == 'special' and ro.is_auto is False:
|
elif ro.route_id.routing_tag == 'special' and ro.is_auto is False:
|
||||||
# display_name = ro.route_id.display_name
|
display_name = ro.route_id.display_name
|
||||||
domain += [('id', '=', ro.route_id.id)]
|
domain += [('name', 'ilike', display_name)]
|
||||||
elif ro.panel is not False:
|
elif ro.panel is not False:
|
||||||
domain += [('panel', '=', ro.panel)]
|
domain += [('panel', '=', ro.panel)]
|
||||||
td_upd = self.env['sf.technology.design'].sudo().search(domain)
|
td_upd = self.env['sf.technology.design'].sudo().search(domain)
|
||||||
|
|||||||
@@ -15,6 +15,8 @@ class ReworkWizard(models.TransientModel):
|
|||||||
production_id = fields.Many2one('mrp.production', string='制造订单号')
|
production_id = fields.Many2one('mrp.production', string='制造订单号')
|
||||||
workorder_ids = fields.Many2many('mrp.workorder', 'rework_wizard_to_work_order', string='所有工单',
|
workorder_ids = fields.Many2many('mrp.workorder', 'rework_wizard_to_work_order', string='所有工单',
|
||||||
domain="[('production_id', '=', production_id),('state','=','done')]")
|
domain="[('production_id', '=', production_id),('state','=','done')]")
|
||||||
|
hidden_workorder_ids = fields.Many2many('mrp.workorder', 'rework_wizard_to_work_order_hidden',
|
||||||
|
string='所有工单(hidden)')
|
||||||
rework_reason = fields.Selection(
|
rework_reason = fields.Selection(
|
||||||
[("programming", "编程"), ("cutter", "刀具"), ("clamping", "装夹"),
|
[("programming", "编程"), ("cutter", "刀具"), ("clamping", "装夹"),
|
||||||
("operate computer", "操机"),
|
("operate computer", "操机"),
|
||||||
|
|||||||
@@ -12,6 +12,7 @@
|
|||||||
<field name="tool_state" invisible="True"/>
|
<field name="tool_state" invisible="True"/>
|
||||||
<field name="routing_type" invisible="True"/>
|
<field name="routing_type" invisible="True"/>
|
||||||
<field name="processing_panel_id" invisible="1"/>
|
<field name="processing_panel_id" invisible="1"/>
|
||||||
|
<field name="hidden_workorder_ids" invisible="1"/>
|
||||||
<group>
|
<group>
|
||||||
<field name="workorder_ids" string="工序" attrs='{"invisible": [("routing_type","=","装夹预调")]}'>
|
<field name="workorder_ids" string="工序" attrs='{"invisible": [("routing_type","=","装夹预调")]}'>
|
||||||
<tree create="0" editable='bottom' delete="0">
|
<tree create="0" editable='bottom' delete="0">
|
||||||
|
|||||||
@@ -259,10 +259,10 @@ class sf_production_plan(models.Model):
|
|||||||
# sale_obj = self.env['sale.order'].search([('name', '=', record.origin)])
|
# sale_obj = self.env['sale.order'].search([('name', '=', record.origin)])
|
||||||
# if 'S' in sale_obj.name:
|
# if 'S' in sale_obj.name:
|
||||||
# sale_obj.schedule_status = 'to process'
|
# sale_obj.schedule_status = 'to process'
|
||||||
mrp_production_ids = record.production_id._get_children().ids
|
# mrp_production_ids = record.production_id._get_children().ids
|
||||||
print('mrp_production_ids', mrp_production_ids)
|
# print('mrp_production_ids', mrp_production_ids)
|
||||||
for i in mrp_production_ids:
|
# for i in mrp_production_ids:
|
||||||
record.env['mrp.production'].sudo().browse(i).schedule_state = '已排'
|
# record.env['mrp.production'].sudo().browse(i).schedule_state = '已排'
|
||||||
# record.production_id.date_planned_start = record.date_planned_start
|
# record.production_id.date_planned_start = record.date_planned_start
|
||||||
# record.production_id.date_planned_finished = record.date_planned_finished
|
# record.production_id.date_planned_finished = record.date_planned_finished
|
||||||
record.sudo().production_id.production_line_id = record.production_line_id.id
|
record.sudo().production_id.production_line_id = record.production_line_id.id
|
||||||
|
|||||||
Reference in New Issue
Block a user