出入库增加need_test字段

This commit is contained in:
caoqianming 2022-01-14 15:51:35 +08:00
parent 490440cad3
commit 75ff28535a
7 changed files with 47 additions and 21 deletions

View File

@ -3,9 +3,12 @@ from django_filters import rest_framework as filters
from apps.mtm.models import Material
from .models import IProduct, MaterialBatch
from django.utils import timezone
class MbFilterSet(filters.FilterSet):
material = filters.ModelMultipleChoiceFilter(field_name="material", queryset=Material.objects.all())
tag = filters.CharFilter(method="filter_tag")
class Meta:
model = MaterialBatch
fields = ['material', 'warehouse']
@ -17,8 +20,8 @@ class MbFilterSet(filters.FilterSet):
class IProductFilterSet(filters.FilterSet):
order = filters.NumberFilter(field_name="wproduct__subproduction_plan__production_plan__order")
class Meta:
model = IProduct
fields = ['material', 'warehouse', 'batch', 'order', 'material__type']

View File

@ -0,0 +1,33 @@
# Generated by Django 3.2.9 on 2022-01-14 07:51
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('system', '0003_auto_20210812_0909'),
('inm', '0026_alter_fifo_inout_date'),
]
operations = [
migrations.RemoveField(
model_name='fifoitem',
name='is_tested',
),
migrations.AddField(
model_name='fifoitem',
name='files',
field=models.ManyToManyField(to='system.File', verbose_name='上传材料'),
),
migrations.AddField(
model_name='fifoitem',
name='need_test',
field=models.BooleanField(default=False, verbose_name='是否需要复验'),
),
migrations.AlterField(
model_name='fifoitem',
name='is_testok',
field=models.BooleanField(blank=True, null=True, verbose_name='是否复验合格'),
),
]

View File

@ -84,8 +84,8 @@ class FIFOItem(BaseModel):
"""
出入库详细条目
"""
is_tested = models.BooleanField('是否已检', default=False)
is_testok = models.BooleanField('是否检验合格', default=False)
need_test = models.BooleanField('是否需要复', default=False)
is_testok = models.BooleanField('是否复验合格', null=True, blank=True)
warehouse = models.ForeignKey(
WareHouse, on_delete=models.CASCADE, verbose_name='仓库')
material = models.ForeignKey(
@ -96,6 +96,7 @@ class FIFOItem(BaseModel):
on_delete=models.CASCADE)
subproduction_plan = models.ForeignKey(
SubProductionPlan, verbose_name='关联子生产计划', on_delete=models.CASCADE, null=True, blank=True)
files = models.ManyToManyField(File, verbose_name='上传材料')
class IProduct(BaseModel):

View File

@ -1,8 +1,7 @@
from django.shortcuts import render
from rest_framework import serializers
from rest_framework import exceptions
from rest_framework.exceptions import APIException
from rest_framework.mixins import DestroyModelMixin, ListModelMixin, RetrieveModelMixin
from rest_framework.mixins import DestroyModelMixin, ListModelMixin
from rest_framework.viewsets import GenericViewSet, ModelViewSet
from apps.inm.filters import IProductFilterSet, MbFilterSet
@ -11,17 +10,13 @@ from apps.inm.serializers import FIFOItemSerializer, FIFOInPurSerializer, FIFOLi
InmTestRecordCreateSerializer, MaterialBatchQuerySerializer, MaterialBatchSerializer, WareHouseSerializer, \
WareHouseCreateUpdateSerializer, InventorySerializer
from apps.inm.signals import update_inm
from apps.mtm.models import Material
from apps.pm.services import PmService
from apps.qm.models import TestRecordItem
from apps.system.mixins import CreateUpdateModelAMixin, OptimizationMixin
from apps.system.mixins import CreateUpdateModelAMixin
from rest_framework.decorators import action
from rest_framework.response import Response
from django.db import transaction
from django.utils import timezone
from apps.wpm.services import WpmServies
# Create your views here.
@ -168,7 +163,7 @@ class FIFOViewSet(ListModelMixin, DestroyModelMixin, GenericViewSet):
审核通过
"""
obj = self.get_object()
for i in FIFOItem.objects.filter(fifo=obj):
for i in FIFOItem.objects.filter(fifo=obj, need_test=True):
if not i.is_testok:
raise APIException('未检验通过, 不可审核')
if obj.is_audited:

View File

@ -150,8 +150,7 @@ class SaleViewSet(CreateUpdateCustomMixin, ListModelMixin, RetrieveModelMixin, C
warehouse = WareHouse.objects.get(id=i['warehouse'])
material = Material.objects.get(id=i['material'])
fifoitem = FIFOItem()
fifoitem.is_tested = True
fifoitem.is_testok = True
fifoitem.need_test = False
fifoitem.warehouse = warehouse
fifoitem.material = material
fifoitem.count = i['total']

View File

@ -69,7 +69,6 @@ class PickSerializer(serializers.Serializer):
if isLowLevel:
iproducts = i.pop('iproducts')
i['fifo'] = fifo
i['is_testok'] = True # 默认检验合格
i['subproduction_plan'] = sp
fifoitem = FIFOItem.objects.create(**i)
# 创建再下一个层级

View File

@ -248,8 +248,6 @@ class WProductViewSet(ListModelMixin, RetrieveModelMixin, GenericViewSet):
for i in wproducts_a:
spi = SubProductionPlan.objects.get(pk=i['subproduction_plan'])
fifoitem = FIFOItem()
fifoitem.is_tested = True
fifoitem.is_testok = True
fifoitem.warehouse = warehouse
fifoitem.material = Material.objects.get(pk=i['material'])
fifoitem.count = i['total']
@ -303,8 +301,6 @@ class WProductViewSet(ListModelMixin, RetrieveModelMixin, GenericViewSet):
create_by=request.user, remark=remark)
# 创建入库明细
fifoitem = FIFOItem()
fifoitem.is_tested = True
fifoitem.is_testok = True
fifoitem.warehouse = warehouse
fifoitem.material = material
fifoitem.count = 1 # 单个半成品入库