Accept Merge Request #2096: (feature/6694 -> develop)

Merge Request: 取消采购申请合并明细行的代码,会导致其他后续单据的问题

Created By: @胡尧
Accepted By: @胡尧
URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/2096?initial=true
This commit is contained in:
胡尧
2025-05-08 16:47:22 +08:00
committed by Coding

View File

@@ -46,38 +46,38 @@ 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, procurement.values['group_id'], rule) not in procurements_dict:
procurements_dict[(procurement.product_id, procurement.values['group_id'], rule)] = { # procurements_dict[(procurement.product_id, procurement.values['group_id'], rule)] = {
'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, procurement.values['group_id'], rule)]['product_qty'] += procurement.product_qty
new_procurements = [] # new_procurements = []
for k, p in procurements_dict.items(): # for k, p in procurements_dict.items():
new_procurements.append(( # new_procurements.append((
self.env['procurement.group'].Procurement( # self.env['procurement.group'].Procurement(
product_id=p['product_id'], # product_id=p['product_id'],
product_qty=p['product_qty'], # product_qty=p['product_qty'],
product_uom=p['product_uom'], # product_uom=p['product_uom'],
location_id=p['location_id'], # location_id=p['location_id'],
name=p['name'], # name=p['name'],
origin=p['origin'], # origin=p['origin'],
company_id=p['company_id'], # company_id=p['company_id'],
values=p['values'] # values=p['values']
), p['rule']) # ), p['rule'])
) # )
res = super(StockRule, self)._run_buy(new_procurements) res = super(StockRule, self)._run_buy(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: