iproduct 去除军检
This commit is contained in:
parent
e4bce6b453
commit
7d033ca12c
|
@ -14,4 +14,4 @@ class IProductFilterSet(filters.FilterSet):
|
||||||
order = filters.NumberFilter(field_name="wproduct__subproduction_plan__production_plan__order")
|
order = filters.NumberFilter(field_name="wproduct__subproduction_plan__production_plan__order")
|
||||||
class Meta:
|
class Meta:
|
||||||
model = IProduct
|
model = IProduct
|
||||||
fields = ['material', 'warehouse', 'batch', 'order', 'is_mtested', 'is_mtestok', 'material__type']
|
fields = ['material', 'warehouse', 'batch', 'order', 'material__type']
|
|
@ -94,9 +94,6 @@ class IProduct(BaseModel):
|
||||||
batch = models.CharField('所属批次号', max_length=100, default='')
|
batch = models.CharField('所属批次号', max_length=100, default='')
|
||||||
wproduct = models.ForeignKey('wpm.wproduct', on_delete=models.CASCADE, verbose_name='关联的动态产品', db_constraint=False,
|
wproduct = models.ForeignKey('wpm.wproduct', on_delete=models.CASCADE, verbose_name='关联的动态产品', db_constraint=False,
|
||||||
null=True, blank=True, related_name='iproduct_wproduct')
|
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)
|
is_saled = models.BooleanField('是否售出', default=False)
|
||||||
|
|
||||||
class FIFOItemProduct(BaseModel):
|
class FIFOItemProduct(BaseModel):
|
||||||
|
|
|
@ -40,6 +40,9 @@ class MaterialBatchSerializer(serializers. ModelSerializer):
|
||||||
class IProductListSerializer(serializers.ModelSerializer):
|
class IProductListSerializer(serializers.ModelSerializer):
|
||||||
material_= MaterialSimpleSerializer(source='material', read_only=True)
|
material_= MaterialSimpleSerializer(source='material', read_only=True)
|
||||||
warehouse_ = WareHouseSimpleSerializer(source='warehouse', 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:
|
class Meta:
|
||||||
model = IProduct
|
model = IProduct
|
||||||
fields = '__all__'
|
fields = '__all__'
|
||||||
|
@ -148,8 +151,3 @@ class InmTestRecordCreateSerializer(serializers.ModelSerializer):
|
||||||
model = TestRecord
|
model = TestRecord
|
||||||
fields = ['form', 'record_data', 'is_testok', 'fifo_item']
|
fields = ['form', 'record_data', 'is_testok', 'fifo_item']
|
||||||
|
|
||||||
|
|
||||||
class IProductMtestSerializer(serializers.ModelSerializer):
|
|
||||||
class Meta:
|
|
||||||
model = IProduct
|
|
||||||
fields = ['remark_mtest', 'is_mtestok']
|
|
|
@ -34,9 +34,6 @@ def update_inm(instance:FIFO, type:int=1):
|
||||||
ip['wproduct'] = wp
|
ip['wproduct'] = wp
|
||||||
ip['number'] = m.number
|
ip['number'] = m.number
|
||||||
ip['material'] = m.material
|
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))
|
ips2.append(IProduct(**ip))
|
||||||
IProduct.objects.bulk_create(ips2)
|
IProduct.objects.bulk_create(ips2)
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,7 @@ from rest_framework.viewsets import GenericViewSet, ModelViewSet
|
||||||
from apps.inm.filters import IProductFilterSet, MbFilterSet
|
from apps.inm.filters import IProductFilterSet, MbFilterSet
|
||||||
|
|
||||||
from apps.inm.models import FIFO, FIFOItem, IProduct, MaterialBatch, WareHouse,Inventory
|
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.inm.signals import update_inm
|
||||||
from apps.mtm.models import Material
|
from apps.mtm.models import Material
|
||||||
from apps.pm.services import PmService
|
from apps.pm.services import PmService
|
||||||
|
@ -172,24 +172,3 @@ class IProductViewSet(ListModelMixin, GenericViewSet):
|
||||||
search_fields = []
|
search_fields = []
|
||||||
ordering_fields = ['create_time']
|
ordering_fields = ['create_time']
|
||||||
ordering = ['-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()
|
|
Loading…
Reference in New Issue