物料消耗计算

This commit is contained in:
caoqianming 2021-10-13 13:22:26 +08:00
parent 243613bfdf
commit 4913162ff8
1 changed files with 12 additions and 7 deletions

View File

@ -66,15 +66,20 @@ class ResourceViewSet(GenericViewSet):
rdata = request.data
serializer = self.get_serializer(data=rdata)
serializer.is_valid(raise_exception=True)
res_d_list = []
res = []
for i in rdata:
materials = InputMaterial.objects.filter(subproduction__product__id=i['id'],
subproduction__is_deleted=False, is_deleted=False, material__type__in=[3,4]).order_by('material__number')
for m in materials:
for x in res:
if x['id'] == m.material.id:
x['count'] = x['count'] + m.count*i['count']
break
subproduction__is_deleted=False, is_deleted=False, material__type__in=[3,4]).order_by('material__number')\
.values('material__id', 'material__name', 'material__number', 'material__type', 'count', 'material__count')
l_m = list(materials)
for m in l_m:
if m['material__id'] in res_d_list:
index = res_d_list.index(m['material__id'])
res[index]['count'] = res[index]['count'] + m['count']*i['count']
else:
res.append({'id':m.material.id, 'name':m.material.name, 'type':m.material.type, 'number':m.material.number, 'count':m.count*i['count']})
res_d_list.append(m['material__id'])
res.append({'id':m['material__id'], 'name':m['material__name'],
'type':m['material__type'], 'number':m['material__number'],
'count':m['count']*i['count'], 'inv_count':m['material__count']})
return Response(res)