Accept Merge Request #2097: (feature/6694 -> develop)
Merge Request: 修复收料入库单明细不对的问题 Created By: @胡尧 Accepted By: @胡尧 URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/2097?initial=true
This commit is contained in:
@@ -46,38 +46,39 @@ class StockRule(models.Model):
|
||||
|
||||
def _run_buy(self, procurements):
|
||||
# 如果补货组相同,并且产品相同,则合并
|
||||
# procurements_dict = defaultdict()
|
||||
# for procurement, rule in procurements:
|
||||
# if (procurement.product_id, procurement.values['group_id'], rule) not in procurements_dict:
|
||||
# procurements_dict[(procurement.product_id, procurement.values['group_id'], rule)] = {
|
||||
# 'product_id': procurement.product_id,
|
||||
# 'product_qty': procurement.product_qty,
|
||||
# 'product_uom': procurement.product_uom,
|
||||
# 'location_id': procurement.location_id,
|
||||
# 'name': procurement.name,
|
||||
# 'origin': procurement.origin,
|
||||
# 'company_id': procurement.company_id,
|
||||
# 'values': procurement.values,
|
||||
# 'rule': rule
|
||||
# }
|
||||
# else:
|
||||
# procurements_dict[(procurement.product_id, procurement.values['group_id'], rule)]['product_qty'] += procurement.product_qty
|
||||
# new_procurements = []
|
||||
# for k, p in procurements_dict.items():
|
||||
# new_procurements.append((
|
||||
# self.env['procurement.group'].Procurement(
|
||||
# product_id=p['product_id'],
|
||||
# product_qty=p['product_qty'],
|
||||
# product_uom=p['product_uom'],
|
||||
# location_id=p['location_id'],
|
||||
# name=p['name'],
|
||||
# origin=p['origin'],
|
||||
# company_id=p['company_id'],
|
||||
# values=p['values']
|
||||
# ), p['rule'])
|
||||
# )
|
||||
procurements_dict = defaultdict()
|
||||
for procurement, rule in procurements:
|
||||
if (procurement.product_id.id, procurement.values['group_id'], rule.id) not in procurements_dict:
|
||||
procurements_dict[(procurement.product_id.id, procurement.values['group_id'], rule.id)] = {
|
||||
'product_id': procurement.product_id,
|
||||
'product_qty': procurement.product_qty,
|
||||
'product_uom': procurement.product_uom,
|
||||
'location_id': procurement.location_id,
|
||||
'name': procurement.name,
|
||||
'origin': procurement.origin,
|
||||
'company_id': procurement.company_id,
|
||||
'values': procurement.values,
|
||||
'rule': rule
|
||||
}
|
||||
else:
|
||||
procurements_dict[(procurement.product_id.id, procurement.values['group_id'], rule.id)]['product_qty'] += procurement.product_qty
|
||||
procurements_dict[(procurement.product_id.id, procurement.values['group_id'], rule.id)]['values']['move_dest_ids'] |= procurement.values['move_dest_ids']
|
||||
new_procurements = []
|
||||
for k, p in procurements_dict.items():
|
||||
new_procurements.append((
|
||||
self.env['procurement.group'].Procurement(
|
||||
product_id=p['product_id'],
|
||||
product_qty=p['product_qty'],
|
||||
product_uom=p['product_uom'],
|
||||
location_id=p['location_id'],
|
||||
name=p['name'],
|
||||
origin=p['origin'],
|
||||
company_id=p['company_id'],
|
||||
values=p['values']
|
||||
), p['rule'])
|
||||
)
|
||||
|
||||
res = super(StockRule, self)._run_buy(procurements)
|
||||
res = super(StockRule, self)._run_buy(new_procurements)
|
||||
# 判断是否根据规则生成新的采购申请单据,如果生成则修改状态为 approved
|
||||
origins = list(set([procurement[0].origin for procurement in procurements]))
|
||||
for origin in origins:
|
||||
|
||||
Reference in New Issue
Block a user