出入库增加need_test字段
This commit is contained in:
parent
490440cad3
commit
75ff28535a
|
@ -3,22 +3,25 @@ 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']
|
||||
|
||||
|
||||
def filter_tag(self, queryset, name, value):
|
||||
if value == 'expired':
|
||||
queryset = queryset.exclude(expiration_date=None).filter(expiration_date__lte = timezone.now())
|
||||
queryset = queryset.exclude(expiration_date=None).filter(expiration_date__lte=timezone.now())
|
||||
return queryset
|
||||
|
||||
|
||||
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']
|
||||
fields = ['material', 'warehouse', 'batch', 'order', 'material__type']
|
||||
|
|
|
@ -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='是否复验合格'),
|
||||
),
|
||||
]
|
|
@ -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):
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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']
|
||||
|
|
|
@ -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)
|
||||
# 创建再下一个层级
|
||||
|
|
|
@ -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 # 单个半成品入库
|
||||
|
|
Loading…
Reference in New Issue