物料消耗计算

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 rdata = request.data
serializer = self.get_serializer(data=rdata) serializer = self.get_serializer(data=rdata)
serializer.is_valid(raise_exception=True) serializer.is_valid(raise_exception=True)
res_d_list = []
res = [] res = []
for i in rdata: for i in rdata:
materials = InputMaterial.objects.filter(subproduction__product__id=i['id'], 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') subproduction__is_deleted=False, is_deleted=False, material__type__in=[3,4]).order_by('material__number')\
for m in materials: .values('material__id', 'material__name', 'material__number', 'material__type', 'count', 'material__count')
for x in res: l_m = list(materials)
if x['id'] == m.material.id: for m in l_m:
x['count'] = x['count'] + m.count*i['count'] if m['material__id'] in res_d_list:
break index = res_d_list.index(m['material__id'])
res[index]['count'] = res[index]['count'] + m['count']*i['count']
else: 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) return Response(res)