iproduct 去除军检

This commit is contained in:
caoqianming 2022-01-07 09:43:32 +08:00
parent e4bce6b453
commit 7d033ca12c
5 changed files with 6 additions and 35 deletions

View File

@ -14,4 +14,4 @@ class IProductFilterSet(filters.FilterSet):
order = filters.NumberFilter(field_name="wproduct__subproduction_plan__production_plan__order")
class Meta:
model = IProduct
fields = ['material', 'warehouse', 'batch', 'order', 'is_mtested', 'is_mtestok', 'material__type']
fields = ['material', 'warehouse', 'batch', 'order', 'material__type']

View File

@ -94,9 +94,6 @@ class IProduct(BaseModel):
batch = models.CharField('所属批次号', max_length=100, default='')
wproduct = models.ForeignKey('wpm.wproduct', on_delete=models.CASCADE, verbose_name='关联的动态产品', db_constraint=False,
null=True, blank=True, related_name='iproduct_wproduct')
is_mtested = models.BooleanField('是否军检', default=False)
is_mtestok = models.BooleanField('是否军检合格', null=True, blank=True)
remark_mtest = models.TextField('军检备注', null=True, blank=True)
is_saled = models.BooleanField('是否售出', default=False)
class FIFOItemProduct(BaseModel):

View File

@ -40,6 +40,9 @@ class MaterialBatchSerializer(serializers. ModelSerializer):
class IProductListSerializer(serializers.ModelSerializer):
material_= MaterialSimpleSerializer(source='material', read_only=True)
warehouse_ = WareHouseSimpleSerializer(source='warehouse', read_only=True)
is_mtested = serializers.BooleanField(source='wproduct.is_mtested', read_only=True)
is_mtestok = serializers.BooleanField(source='wproduct.is_mtestok', read_only=True)
remark_mtest = serializers.CharField(source='wproduct.remark_mtest', read_only=True)
class Meta:
model = IProduct
fields = '__all__'
@ -148,8 +151,3 @@ class InmTestRecordCreateSerializer(serializers.ModelSerializer):
model = TestRecord
fields = ['form', 'record_data', 'is_testok', 'fifo_item']
class IProductMtestSerializer(serializers.ModelSerializer):
class Meta:
model = IProduct
fields = ['remark_mtest', 'is_mtestok']

View File

@ -34,9 +34,6 @@ def update_inm(instance:FIFO, type:int=1):
ip['wproduct'] = wp
ip['number'] = m.number
ip['material'] = m.material
ip['is_mtested'] = wp.is_mtested
ip['is_mtestok'] = wp.is_mtestok
ip['remark_mtest'] = wp.remark_mtest
ips2.append(IProduct(**ip))
IProduct.objects.bulk_create(ips2)

View File

@ -7,7 +7,7 @@ from rest_framework.viewsets import GenericViewSet, ModelViewSet
from apps.inm.filters import IProductFilterSet, MbFilterSet
from apps.inm.models import FIFO, FIFOItem, IProduct, MaterialBatch, WareHouse,Inventory
from apps.inm.serializers import FIFOItemSerializer, FIFOInPurSerializer, FIFOListSerializer, IProductListSerializer, IProductMtestSerializer, InmTestRecordCreateSerializer, MaterialBatchQuerySerializer, MaterialBatchSerializer, WareHouseSerializer, WareHouseCreateUpdateSerializer,InventorySerializer
from apps.inm.serializers import FIFOItemSerializer, FIFOInPurSerializer, FIFOListSerializer, IProductListSerializer, 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
@ -171,25 +171,4 @@ class IProductViewSet(ListModelMixin, GenericViewSet):
filterset_class = IProductFilterSet
search_fields = []
ordering_fields = ['create_time']
ordering = ['-create_time']
@action(methods=['post'], detail=True, perms_map={'post':'*'}, serializer_class=IProductMtestSerializer)
@transaction.atomic
def mtest(self, request, pk=None):
"""
军检
"""
obj = self.get_object()
if obj.is_mtested:
raise exceptions.APIException('已进行军检')
if obj.wproduct:
if obj.wproduct.material.type != Material.MA_TYPE_GOOD:
raise exceptions.APIException('军检必须是成品')
obj.remark_mtest = request.data.get('remark_mtest', None)
obj.is_mtested = True
is_mtestok = request.data.get('is_mtestok')
obj.is_mtestok = is_mtestok
if is_mtestok:
WpmServies.update_plan_state_by_mtestok(obj.wproduct.subproduction_plan.production_plan)
obj.save()
return Response()
ordering = ['-create_time']