feat: 装箱字段简化
This commit is contained in:
parent
393e528434
commit
28900d3218
|
@ -0,0 +1,18 @@
|
||||||
|
# Generated by Django 3.2.12 on 2025-08-01 06:00
|
||||||
|
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('inm', '0035_auto_20250731_1404'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='mioitem',
|
||||||
|
name='pack_index',
|
||||||
|
field=models.PositiveSmallIntegerField(blank=True, null=True, verbose_name='装箱序号'),
|
||||||
|
),
|
||||||
|
]
|
|
@ -185,6 +185,9 @@ class MIOItem(BaseModel):
|
||||||
|
|
||||||
is_testok = models.BooleanField('检验是否合格', null=True, blank=True)
|
is_testok = models.BooleanField('检验是否合格', null=True, blank=True)
|
||||||
note = models.TextField('备注', null=True, blank=True)
|
note = models.TextField('备注', null=True, blank=True)
|
||||||
|
pack_index = models.PositiveSmallIntegerField('装箱序号', null=True, blank=True)
|
||||||
|
|
||||||
|
# 以下字段暂时不用
|
||||||
pack = models.ForeignKey(Pack, verbose_name='关联装箱单', on_delete=models.SET_NULL, related_name='mioitem_pack', null=True, blank=True)
|
pack = models.ForeignKey(Pack, verbose_name='关联装箱单', on_delete=models.SET_NULL, related_name='mioitem_pack', null=True, blank=True)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
|
|
|
@ -428,4 +428,5 @@ class PackSerializer(CustomModelSerializer):
|
||||||
|
|
||||||
class PackMioSerializer(serializers.Serializer):
|
class PackMioSerializer(serializers.Serializer):
|
||||||
mioitems = serializers.ListField(child=serializers.CharField(), label="明细ID")
|
mioitems = serializers.ListField(child=serializers.CharField(), label="明细ID")
|
||||||
pack = serializers.CharField(label="包装箱ID")
|
pack_index = serializers.IntegerField(label="包装箱序号")
|
||||||
|
# pack = serializers.CharField(label="包装箱ID")
|
|
@ -3,7 +3,7 @@ from rest_framework.routers import DefaultRouter
|
||||||
from apps.inm.views import (
|
from apps.inm.views import (
|
||||||
WarehouseVIewSet, MaterialBatchViewSet, MIOViewSet,
|
WarehouseVIewSet, MaterialBatchViewSet, MIOViewSet,
|
||||||
MIOItemViewSet, MioDoViewSet, MioSaleViewSet,
|
MIOItemViewSet, MioDoViewSet, MioSaleViewSet,
|
||||||
MioPurViewSet, MioOtherViewSet, MIOItemwViewSet, PackViewSet)
|
MioPurViewSet, MioOtherViewSet, MIOItemwViewSet)
|
||||||
|
|
||||||
API_BASE_URL = 'api/inm/'
|
API_BASE_URL = 'api/inm/'
|
||||||
HTML_BASE_URL = 'dhtml/inm/'
|
HTML_BASE_URL = 'dhtml/inm/'
|
||||||
|
@ -19,7 +19,7 @@ router.register('mio/pur', MioPurViewSet)
|
||||||
router.register('mio/other', MioOtherViewSet)
|
router.register('mio/other', MioOtherViewSet)
|
||||||
router.register('mioitem', MIOItemViewSet, basename='mioitem')
|
router.register('mioitem', MIOItemViewSet, basename='mioitem')
|
||||||
router.register('mioitemw', MIOItemwViewSet, basename='mioitemw')
|
router.register('mioitemw', MIOItemwViewSet, basename='mioitemw')
|
||||||
router.register('pack', PackViewSet, basename='pack')
|
# router.register('pack', PackViewSet, basename='pack')
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
path(API_BASE_URL, include(router.urls)),
|
path(API_BASE_URL, include(router.urls)),
|
||||||
]
|
]
|
||||||
|
|
|
@ -236,6 +236,29 @@ class MIOViewSet(CustomModelViewSet):
|
||||||
return Response()
|
return Response()
|
||||||
|
|
||||||
|
|
||||||
|
@action(methods=['post'], detail=True, perms_map={'post': 'mio.update'}, serializer_class=PackMioSerializer)
|
||||||
|
@transaction.atomic
|
||||||
|
def pack_mioitem(self, request, *args, **kwargs):
|
||||||
|
"""装箱
|
||||||
|
|
||||||
|
装箱
|
||||||
|
"""
|
||||||
|
mio:MIO = self.get_object()
|
||||||
|
if mio.submit_time is not None:
|
||||||
|
raise ParseError('该出入库已提交不可装箱')
|
||||||
|
vdata = PackMioSerializer(data=request.data)
|
||||||
|
pack_index = vdata["pack_index"]
|
||||||
|
mioitems = vdata["mioitems"]
|
||||||
|
if not mioitems:
|
||||||
|
raise ParseError('未选择明细')
|
||||||
|
for id in mioitems:
|
||||||
|
mioitem = MIOItem.objects.get(id=id)
|
||||||
|
if mioitem.mio != mio:
|
||||||
|
raise ParseError('存在明细不属于该箱')
|
||||||
|
mioitem.pack_index = pack_index
|
||||||
|
mioitem.save(update_fields=['pack_index', 'update_time'])
|
||||||
|
return Response()
|
||||||
|
|
||||||
class PackViewSet(CustomListModelMixin, BulkCreateModelMixin, BulkDestroyModelMixin, CustomGenericViewSet):
|
class PackViewSet(CustomListModelMixin, BulkCreateModelMixin, BulkDestroyModelMixin, CustomGenericViewSet):
|
||||||
"""
|
"""
|
||||||
list: 装箱记录
|
list: 装箱记录
|
||||||
|
|
Loading…
Reference in New Issue