修复表面工艺外协
This commit is contained in:
@@ -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))
|
||||||
|
|
||||||
|
|||||||
@@ -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()
|
||||||
|
|
||||||
|
|||||||
@@ -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):
|
||||||
|
|||||||
Reference in New Issue
Block a user