修复收料入库单明细不对的问题

This commit is contained in:
胡尧
2025-05-08 17:29:41 +08:00
parent 18c7b22319
commit 5dc16c039c

View File

@@ -46,38 +46,39 @@ class StockRule(models.Model):
def _run_buy(self, procurements): def _run_buy(self, procurements):
# 如果补货组相同,并且产品相同,则合并 # 如果补货组相同,并且产品相同,则合并
# procurements_dict = defaultdict() procurements_dict = defaultdict()
# for procurement, rule in procurements: for procurement, rule in procurements:
# if (procurement.product_id, procurement.values['group_id'], rule) not in procurements_dict: if (procurement.product_id.id, procurement.values['group_id'], rule.id) not in procurements_dict:
# procurements_dict[(procurement.product_id, procurement.values['group_id'], rule)] = { procurements_dict[(procurement.product_id.id, procurement.values['group_id'], rule.id)] = {
# 'product_id': procurement.product_id, 'product_id': procurement.product_id,
# 'product_qty': procurement.product_qty, 'product_qty': procurement.product_qty,
# 'product_uom': procurement.product_uom, 'product_uom': procurement.product_uom,
# 'location_id': procurement.location_id, 'location_id': procurement.location_id,
# 'name': procurement.name, 'name': procurement.name,
# 'origin': procurement.origin, 'origin': procurement.origin,
# 'company_id': procurement.company_id, 'company_id': procurement.company_id,
# 'values': procurement.values, 'values': procurement.values,
# 'rule': rule 'rule': rule
# } }
# else: else:
# procurements_dict[(procurement.product_id, procurement.values['group_id'], rule)]['product_qty'] += procurement.product_qty procurements_dict[(procurement.product_id.id, procurement.values['group_id'], rule.id)]['product_qty'] += procurement.product_qty
# new_procurements = [] procurements_dict[(procurement.product_id.id, procurement.values['group_id'], rule.id)]['values']['move_dest_ids'] |= procurement.values['move_dest_ids']
# for k, p in procurements_dict.items(): new_procurements = []
# new_procurements.append(( for k, p in procurements_dict.items():
# self.env['procurement.group'].Procurement( new_procurements.append((
# product_id=p['product_id'], self.env['procurement.group'].Procurement(
# product_qty=p['product_qty'], product_id=p['product_id'],
# product_uom=p['product_uom'], product_qty=p['product_qty'],
# location_id=p['location_id'], product_uom=p['product_uom'],
# name=p['name'], location_id=p['location_id'],
# origin=p['origin'], name=p['name'],
# company_id=p['company_id'], origin=p['origin'],
# values=p['values'] company_id=p['company_id'],
# ), p['rule']) values=p['values']
# ) ), p['rule'])
)
res = super(StockRule, self)._run_buy(procurements) res = super(StockRule, self)._run_buy(new_procurements)
# 判断是否根据规则生成新的采购申请单据,如果生成则修改状态为 approved # 判断是否根据规则生成新的采购申请单据,如果生成则修改状态为 approved
origins = list(set([procurement[0].origin for procurement in procurements])) origins = list(set([procurement[0].origin for procurement in procurements]))
for origin in origins: for origin in origins: