diff --git a/sf_manufacturing/models/mrp_production.py b/sf_manufacturing/models/mrp_production.py index d60a2497..29ce69c7 100644 --- a/sf_manufacturing/models/mrp_production.py +++ b/sf_manufacturing/models/mrp_production.py @@ -1306,6 +1306,7 @@ class MrpProduction(models.Model): raise_user_error=not self.env.context.get('from_orderpoint')) productions = self.env['mrp.production'].sudo().search( [('origin', '=', self.origin)], order='id desc', limit=1) + productions.write({'programming_no': self.programming_no, 'is_remanufacture': True}) move = self.env['stock.move'].search([('origin', '=', productions.name)], order='id desc') for mo in move: domain = [] @@ -1332,7 +1333,6 @@ class MrpProduction(models.Model): mo_move.write({'reference': sfp_move.reference, 'partner_id': sfp_move.partner_id.id, 'picking_id': sfp_move.picking_id.id, 'picking_type_id': sfp_move.picking_type_id.id, 'production_id': False}) - productions.write({'programming_no': self.programming_no, 'is_remanufacture': True}) # productions.procurement_group_id.mrp_production_ids.move_dest_ids.write( # {'group_id': self.env['procurement.group'].search([('name', '=', sale_order.name)])}) stock_picking_remanufacture = self.env['stock.picking'].search([('origin', '=', productions.name)]) diff --git a/sf_manufacturing/models/stock.py b/sf_manufacturing/models/stock.py index 79f5cdea..031672b8 100644 --- a/sf_manufacturing/models/stock.py +++ b/sf_manufacturing/models/stock.py @@ -975,14 +975,19 @@ class ReStockMove(models.Model): 创建调拨单时,在此新增或修改调拨单的数据 """ res = super(ReStockMove, self)._get_new_picking_values() - if self[0].origin and self.picking_type_id.name in ['生产发料', '内部调拨']: - production = self.env['mrp.production'].search([('name', '=', self[0].origin)], limit=1, order='id asc') - if not production: - return res - productions = self.env['mrp.production'].search( - [('origin', '=', production.origin), ('product_id', '=', production.product_id.id)]) - res['origin'] = ','.join(productions.mapped('name')) - res['retrospect_ref'] = production.product_id.name + ## 制造订单报废生成的新制造订单不走合并 + production_remanufacture = None + if 'origin' in res: + if self.picking_type_id.name in ['生产发料', '内部调拨']: + production_remanufacture = self.env['mrp.production'].search( + [('name', '=', res['origin']), ('is_remanufacture', '=', True)]) + if not production_remanufacture: + if self[0].origin and self.picking_type_id.name in ['生产发料', '内部调拨']: + production = self.env['mrp.production'].search([('name', '=', self[0].origin)], limit=1, order='id asc') + productions = self.env['mrp.production'].search( + [('origin', '=', production.origin), ('product_id', '=', production.product_id.id)]) + res['origin'] = ','.join(productions.mapped('name')) + res['retrospect_ref'] = production.product_id.name return res diff --git a/sf_manufacturing/wizard/production_technology_re_adjust_wizard.py b/sf_manufacturing/wizard/production_technology_re_adjust_wizard.py index 774dbd74..746c953e 100644 --- a/sf_manufacturing/wizard/production_technology_re_adjust_wizard.py +++ b/sf_manufacturing/wizard/production_technology_re_adjust_wizard.py @@ -14,7 +14,7 @@ class ProductionTechnologyReAdjustWizard(models.TransientModel): def confirm(self): if self.is_technology_re_adjust is True: - domain = [('origin', '=', self.origin), ('state', '=', 'technology_to_confirmed'), + domain = [('origin', '=', self.origin), ('state', '=', 'confirmed'), ('product_id', '=', self.production_id.product_id.id)] else: domain = [('id', '=', self.production_id.id)]