客供料调拨单合并
This commit is contained in:
@@ -1480,7 +1480,7 @@ class MrpProduction(models.Model):
|
|||||||
"""
|
"""
|
||||||
重载创建制造订单的方法,单个制造订单,同一成品只创建一个采购组,用于后续单据的创建
|
重载创建制造订单的方法,单个制造订单,同一成品只创建一个采购组,用于后续单据的创建
|
||||||
"""
|
"""
|
||||||
product_group_id = {}
|
group_id = self.env["procurement.group"].create({'name':vals_list[0].get('origin')}).id
|
||||||
for vals in vals_list:
|
for vals in vals_list:
|
||||||
if not vals.get('name', False) or vals['name'] == _('New'):
|
if not vals.get('name', False) or vals['name'] == _('New'):
|
||||||
picking_type_id = vals.get('picking_type_id')
|
picking_type_id = vals.get('picking_type_id')
|
||||||
@@ -1489,15 +1489,7 @@ class MrpProduction(models.Model):
|
|||||||
vals['picking_type_id'] = picking_type_id
|
vals['picking_type_id'] = picking_type_id
|
||||||
vals['name'] = self.env['stock.picking.type'].browse(picking_type_id).sequence_id.next_by_id()
|
vals['name'] = self.env['stock.picking.type'].browse(picking_type_id).sequence_id.next_by_id()
|
||||||
if not vals.get('procurement_group_id'):
|
if not vals.get('procurement_group_id'):
|
||||||
product_id = self.env['product.product'].browse(vals['product_id'])
|
vals['procurement_group_id'] = group_id
|
||||||
if product_id.product_tmpl_id.single_manufacturing:
|
|
||||||
if product_id.id not in product_group_id.keys():
|
|
||||||
procurement_group_vals = self._prepare_procurement_group_vals(vals)
|
|
||||||
group_id = self.env["procurement.group"].create(procurement_group_vals).id
|
|
||||||
vals['procurement_group_id'] = group_id
|
|
||||||
product_group_id[product_id.id] = group_id
|
|
||||||
else:
|
|
||||||
vals['procurement_group_id'] = product_group_id[product_id.id]
|
|
||||||
return super(MrpProduction, self).create(vals_list)
|
return super(MrpProduction, self).create(vals_list)
|
||||||
|
|
||||||
@api.depends('procurement_group_id.stock_move_ids.created_purchase_line_id.order_id',
|
@api.depends('procurement_group_id.stock_move_ids.created_purchase_line_id.order_id',
|
||||||
|
|||||||
@@ -72,35 +72,6 @@ class StockRule(models.Model):
|
|||||||
moves_values_by_company = defaultdict(list)
|
moves_values_by_company = defaultdict(list)
|
||||||
mtso_products_by_locations = defaultdict(list)
|
mtso_products_by_locations = defaultdict(list)
|
||||||
|
|
||||||
# To handle the `mts_else_mto` procure method, we do a preliminary loop to
|
|
||||||
# isolate the products we would need to read the forecasted quantity,
|
|
||||||
# in order to to batch the read. We also make a sanitary check on the
|
|
||||||
# `location_src_id` field.
|
|
||||||
|
|
||||||
# list1 = []
|
|
||||||
# for item in procurements:
|
|
||||||
# num = int(item[0].product_qty)
|
|
||||||
# if num > 1:
|
|
||||||
# for no in range(1, num+1):
|
|
||||||
#
|
|
||||||
# Procurement = namedtuple('Procurement', ['product_id', 'product_qty',
|
|
||||||
# 'product_uom', 'location_id', 'name', 'origin',
|
|
||||||
# 'company_id',
|
|
||||||
# 'values'])
|
|
||||||
# s = Procurement(product_id=item[0].product_id,product_qty=1.0,product_uom=item[0].product_uom,
|
|
||||||
# location_id=item[0].location_id,
|
|
||||||
# name=item[0].name,
|
|
||||||
# origin=item[0].origin,
|
|
||||||
# company_id=item[0].company_id,
|
|
||||||
# values=item[0].values,
|
|
||||||
# )
|
|
||||||
# item1 = list(item)
|
|
||||||
# item1[0]=s
|
|
||||||
#
|
|
||||||
# list1.append(tuple(item1))
|
|
||||||
# else:
|
|
||||||
# list1.append(item)
|
|
||||||
|
|
||||||
for procurement, rule in procurements:
|
for procurement, rule in procurements:
|
||||||
if not rule.location_src_id:
|
if not rule.location_src_id:
|
||||||
msg = _('No source location defined on stock rule: %s!') % (rule.name,)
|
msg = _('No source location defined on stock rule: %s!') % (rule.name,)
|
||||||
@@ -618,15 +589,21 @@ class StockPicking(models.Model):
|
|||||||
item.address_of_delivery = sale_info.address_of_delivery
|
item.address_of_delivery = sale_info.address_of_delivery
|
||||||
|
|
||||||
# 设置外协出入单的名称
|
# 设置外协出入单的名称
|
||||||
def _get_name_Res(self, rescode):
|
def _get_name_Res(self, rescode,sequence):
|
||||||
last_picking = self.sudo().search([('name', 'ilike', rescode)], order='create_date desc,id desc', limit=1)
|
last_picking = self.sudo().search([('name', 'ilike', rescode)], order='name desc', limit=1)
|
||||||
if not last_picking:
|
sequence_id = sequence.next_by_id()
|
||||||
num = "%04d" % 1
|
name_without_prefix = last_picking.name.removeprefix(rescode)
|
||||||
|
try:
|
||||||
|
name_value = int(name_without_prefix) # 假设 name 是一个数字字符串
|
||||||
|
except ValueError:
|
||||||
|
name_value = 0
|
||||||
|
if name_value >= int(sequence_id.removeprefix(rescode)):
|
||||||
|
sequence.write({
|
||||||
|
'number_next': name_value + 1,
|
||||||
|
})
|
||||||
|
return sequence.next_by_id()
|
||||||
else:
|
else:
|
||||||
logging.info('编号:' + last_picking.name)
|
return sequence_id
|
||||||
m = int(last_picking.name[-3:]) + 1
|
|
||||||
num = "%04d" % m
|
|
||||||
return '%s%s' % (rescode, num)
|
|
||||||
|
|
||||||
def button_validate(self):
|
def button_validate(self):
|
||||||
res = super().button_validate()
|
res = super().button_validate()
|
||||||
@@ -787,12 +764,15 @@ class ReStockMove(models.Model):
|
|||||||
|
|
||||||
def _get_new_picking_values_Res(self, item, sorted_workorders, rescode):
|
def _get_new_picking_values_Res(self, item, sorted_workorders, rescode):
|
||||||
picking_type_id = self.mapped('picking_type_id').id
|
picking_type_id = self.mapped('picking_type_id').id
|
||||||
|
sequence = False
|
||||||
if rescode == 'WH/OCOUT/':
|
if rescode == 'WH/OCOUT/':
|
||||||
picking_type_id = self.env.ref('sf_manufacturing.outcontract_picking_out').id
|
picking_type_id = self.env.ref('sf_manufacturing.outcontract_picking_out').id
|
||||||
|
sequence = self.env.ref('sf_manufacturing.sequence_stock_picking_out')
|
||||||
elif rescode == 'WH/OCIN/':
|
elif rescode == 'WH/OCIN/':
|
||||||
picking_type_id = self.env.ref('sf_manufacturing.outcontract_picking_in').id
|
picking_type_id = self.env.ref('sf_manufacturing.outcontract_picking_in').id
|
||||||
|
sequence = self.env.ref('sf_manufacturing.sequence_stock_picking_in')
|
||||||
return {
|
return {
|
||||||
'name': self.env['stock.picking']._get_name_Res(rescode),
|
'name': self.env['stock.picking']._get_name_Res(rescode,sequence),
|
||||||
'origin': item.name,
|
'origin': item.name,
|
||||||
'surface_technics_parameters_id': sorted_workorders.surface_technics_parameters_id.id,
|
'surface_technics_parameters_id': sorted_workorders.surface_technics_parameters_id.id,
|
||||||
'company_id': self.mapped('company_id').id,
|
'company_id': self.mapped('company_id').id,
|
||||||
|
|||||||
Reference in New Issue
Block a user