修复表面工艺外协

This commit is contained in:
jinling.yang
2024-08-09 15:39:58 +08:00
parent 34e858ffe4
commit a9b7f99944
3 changed files with 23 additions and 11 deletions

View File

@@ -139,9 +139,19 @@ class ResMrpWorkOrder(models.Model):
def _compute_surface_technics_picking_ids(self): def _compute_surface_technics_picking_ids(self):
for workorder in self: for workorder in self:
if workorder.routing_type == '表面工艺': if workorder.routing_type == '表面工艺':
picking_ids = self.env['stock.picking'].search( domain = [('origin', '=', workorder.production_id.name)]
[('surface_technics_parameters_id', '=', workorder.surface_technics_parameters_id)], order='id asc') previous_workorder = self.env['mrp.workorder'].search(
[('sequence', '=', workorder.sequence - 1), ('routing_type', '=', '表面工艺'),
('production_id', '=', workorder.production_id.id)])
if previous_workorder:
process_product = self.env['product.template']._get_process_parameters_product(
previous_workorder.surface_technics_parameters_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')
workorder.surface_technics_picking_count = len(picking_ids) workorder.surface_technics_picking_count = len(picking_ids)
workorder.picking_ids = picking_ids.ids
else: else:
workorder.surface_technics_picking_count = 0 workorder.surface_technics_picking_count = 0
@@ -1065,7 +1075,7 @@ class ResMrpWorkOrder(models.Model):
('location_dest_id', '=', self.env['stock.location'].search( ('location_dest_id', '=', self.env['stock.location'].search(
[('barcode', 'ilike', 'VL-SPOC')]).id), [('barcode', 'ilike', 'VL-SPOC')]).id),
('origin', '=', self.production_id.name)]) ('origin', '=', self.production_id.name)])
if move_out: if move_out.state != 'done':
move_out.write({'state': 'assigned'}) move_out.write({'state': 'assigned'})
self.env['stock.move.line'].create(move_out.get_move_line(self.production_id, self)) self.env['stock.move.line'].create(move_out.get_move_line(self.production_id, self))

View File

@@ -658,7 +658,7 @@ class ResProductMo(models.Model):
tax_id = self.env['account.tax'].sudo().search( tax_id = self.env['account.tax'].sudo().search(
[('type_tax_use', '=', 'sale'), ('amount', '=', item.get('tax')), ('price_include', '=', 'True')]) [('type_tax_use', '=', 'sale'), ('amount', '=', item.get('tax')), ('price_include', '=', 'True')])
if tax_id: if tax_id:
vals.update({'taxes_id':[(6,0,[int(tax_id)])]}) vals.update({'taxes_id': [(6, 0, [int(tax_id)])]})
copy_product_id.sudo().write(vals) copy_product_id.sudo().write(vals)
product_id.product_tmpl_id.active = False product_id.product_tmpl_id.active = False
return copy_product_id return copy_product_id
@@ -756,8 +756,10 @@ class ResProductMo(models.Model):
for item in templates: for item in templates:
if len(self.search([('name', '=', item.name)])) > 1: if len(self.search([('name', '=', item.name)])) > 1:
raise UserError('产品名称【%s】已存在' % item.name) raise UserError('产品名称【%s】已存在' % item.name)
if len(self.search([('server_product_process_parameters_id', '=', item.server_product_process_parameters_id)])) > 1: if item.categ_type == '表面工艺':
raise UserErro('表面工艺参数为【%s】的产品已存在' % item.server_product_process_parameters_id.name) if len(self.search([('server_product_process_parameters_id', '=',
item.server_product_process_parameters_id.id)])) > 1:
raise UserError('表面工艺参数为【%s】的产品已存在' % item.server_product_process_parameters_id.name)
if "create_product_product" not in self._context: if "create_product_product" not in self._context:
templates._create_variant_ids() templates._create_variant_ids()

View File

@@ -587,7 +587,7 @@ class StockPicking(models.Model):
[('barcode', 'ilike', 'VL-SPOC')]).id), [('barcode', 'ilike', 'VL-SPOC')]).id),
('origin', '=', self.origin)]) ('origin', '=', self.origin)])
production = self.env['mrp.production'].search([('name', '=', self.origin)]) production = self.env['mrp.production'].search([('name', '=', self.origin)])
if move_in: if move_in.state != 'done':
move_in.write({'state': 'assigned'}) move_in.write({'state': 'assigned'})
self.env['stock.move.line'].create(move_in.get_move_line(production, None)) self.env['stock.move.line'].create(move_in.get_move_line(production, None))
@@ -597,7 +597,7 @@ class StockPicking(models.Model):
def create_outcontract_picking(self, sorted_workorders_arr, item): def create_outcontract_picking(self, sorted_workorders_arr, item):
m = 0 m = 0
for sorted_workorders in sorted_workorders_arr: for sorted_workorders in sorted_workorders_arr:
pick_ids = [] # pick_ids = []
if m == 0: if m == 0:
outcontract_stock_move = self.env['stock.move'].search( outcontract_stock_move = self.env['stock.move'].search(
[('workorder_id', '=', sorted_workorders.id), ('production_id', '=', item.id)]) [('workorder_id', '=', sorted_workorders.id), ('production_id', '=', item.id)])
@@ -616,7 +616,7 @@ class StockPicking(models.Model):
outcontract_picking_type_out)) outcontract_picking_type_out))
picking_out = self.create( picking_out = self.create(
moves_out._get_new_picking_values_Res(item, sorted_workorders, 'WH/OCOUT/')) moves_out._get_new_picking_values_Res(item, sorted_workorders, 'WH/OCOUT/'))
pick_ids.append(picking_out.id) # pick_ids.append(picking_out.id)
moves_out.write( moves_out.write(
{'picking_id': picking_out.id, 'state': 'waiting', 'workorder_id': sorted_workorders.id}) {'picking_id': picking_out.id, 'state': 'waiting', 'workorder_id': sorted_workorders.id})
moves_out._assign_picking_post_process(new=new_picking) moves_out._assign_picking_post_process(new=new_picking)
@@ -625,12 +625,12 @@ class StockPicking(models.Model):
outcontract_picking_type_in)) outcontract_picking_type_in))
picking_in = self.create( picking_in = self.create(
moves_in._get_new_picking_values_Res(item, sorted_workorders, 'WH/OCIN/')) moves_in._get_new_picking_values_Res(item, sorted_workorders, 'WH/OCIN/'))
pick_ids.append(picking_in.id) # pick_ids.append(picking_in.id)
moves_in.write( moves_in.write(
{'picking_id': picking_in.id, 'state': 'waiting', 'workorder_id': sorted_workorders.id}) {'picking_id': picking_in.id, 'state': 'waiting', 'workorder_id': sorted_workorders.id})
moves_in._assign_picking_post_process(new=new_picking) moves_in._assign_picking_post_process(new=new_picking)
m += 1 m += 1
sorted_workorders.write({'picking_ids': [(6, 0, pick_ids)]}) # sorted_workorders.write({'picking_ids': [(6, 0, pick_ids)]})
class ReStockMove(models.Model): class ReStockMove(models.Model):