其他出库
This commit is contained in:
parent
13f29342c6
commit
0bae0d4c53
|
@ -4,7 +4,7 @@ from rest_framework.response import Response
|
|||
from celery import shared_task
|
||||
import os
|
||||
import subprocess
|
||||
from server.settings_pro import DATABASES, BACKUP_DATABASE_PATH
|
||||
from server.settings_pro import DATABASES, BACKUP_PATH, SH_PATH
|
||||
|
||||
@shared_task
|
||||
def backup_database():
|
||||
|
@ -17,14 +17,14 @@ def backup_database():
|
|||
DATABASES['default']['USER'],
|
||||
DATABASES['default']['PASSWORD'],
|
||||
DATABASES['default']['NAME'],
|
||||
BACKUP_DATABASE_PATH,
|
||||
BACKUP_PATH + '/database',
|
||||
name)
|
||||
completed = subprocess.run(command, shell=True, capture_output=True, text=True)
|
||||
return completed
|
||||
|
||||
@shared_task
|
||||
def reload_server():
|
||||
command = 'bash /home/lighthouse/hberp/hb_server/sh/git.sh'
|
||||
command = 'bash {}/git.sh'.format(SH_PATH)
|
||||
completed = subprocess.run(command, shell=True, capture_output=True, text=True)
|
||||
return completed
|
||||
|
||||
|
@ -36,7 +36,7 @@ def reload_server_only():
|
|||
|
||||
@shared_task
|
||||
def backup_media():
|
||||
command = 'bash /home/lighthouse/hberp/hb_server/sh/backup_media.sh'
|
||||
command = 'bash {}/backup_media.sh'.format(SH_PATH)
|
||||
completed = subprocess.run(command, shell=True, capture_output=True, text=True)
|
||||
return completed
|
||||
|
||||
|
|
|
@ -142,6 +142,36 @@ class MaterialBatchQuerySerializer(serializers.Serializer):
|
|||
warehouse = serializers.IntegerField(label="仓库ID", required=False)
|
||||
materials = serializers.ListField(child=serializers.IntegerField(label="物料ID"), required=False)
|
||||
|
||||
class FIFODetailOutOtherSerializer(serializers.Serializer):
|
||||
material_batch = serializers.PrimaryKeyRelatedField(queryset=MaterialBatch.objects.all(), label="物料批次ID")
|
||||
count = serializers.IntegerField(label="数量", min_value=0)
|
||||
|
||||
class FIFOOutOtherSerializer(serializers.ModelSerializer):
|
||||
"""
|
||||
其他出库序列化
|
||||
"""
|
||||
details = FIFODetailOutOtherSerializer(many=True, required=False)
|
||||
|
||||
class Meta:
|
||||
model = FIFO
|
||||
fields = ['details']
|
||||
|
||||
def create(self, validated_data):
|
||||
details = validated_data.pop('details')
|
||||
with transaction.atomic():
|
||||
validated_data['type'] = FIFO.FIFO_TYPE_OTHER_OUT
|
||||
validated_data['number'] = 'CK' + ranstr(7)
|
||||
obj = FIFO(**validated_data)
|
||||
obj.save()
|
||||
for i in details:
|
||||
mb = i['material_batch']
|
||||
i['material'] = mb.material
|
||||
i['batch'] = mb.batch
|
||||
i['warehouse'] = mb.warehouse
|
||||
i['fifo'] = obj
|
||||
FIFOItem.objects.create(**i)
|
||||
return obj
|
||||
|
||||
class FIFOInOtherSerializer(serializers.ModelSerializer):
|
||||
"""
|
||||
其他入库序列化
|
||||
|
|
|
@ -59,7 +59,7 @@ class InmService:
|
|||
pu_order_item.delivered_count = delivered_count
|
||||
pu_order_item.save()
|
||||
|
||||
elif instance.type in [FIFO.FIFO_TYPE_DO_OUT, FIFO.FIFO_TYPE_SALE_OUT]: # 生产领料 销售出库
|
||||
elif instance.type in [FIFO.FIFO_TYPE_DO_OUT, FIFO.FIFO_TYPE_SALE_OUT, FIFO.FIFO_TYPE_OTHER_OUT]: # 生产领料 销售出库
|
||||
# 更新相关表
|
||||
for i in FIFOItem.objects.filter(fifo=instance):
|
||||
material = i.material
|
||||
|
|
|
@ -6,7 +6,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 FIFOInOtherSerializer, FIFOItemCreateSerializer, FIFOItemSerializer, FIFOInPurSerializer, FIFOItemUpdateSerializer, FIFOListSerializer, IProductListSerializer, \
|
||||
from apps.inm.serializers import FIFOInOtherSerializer, FIFOItemCreateSerializer, FIFOItemSerializer, FIFOInPurSerializer, FIFOItemUpdateSerializer, FIFOListSerializer, FIFOOutOtherSerializer, IProductListSerializer, \
|
||||
InmTestRecordCreateSerializer, MaterialBatchQuerySerializer, MaterialBatchSerializer, WareHouseSerializer, \
|
||||
WareHouseCreateUpdateSerializer, InventorySerializer
|
||||
from apps.inm.services import InmService
|
||||
|
@ -183,6 +183,17 @@ class FIFOViewSet(ListModelMixin, DestroyModelMixin, GenericViewSet):
|
|||
serializer.save(create_by=request.user)
|
||||
return Response()
|
||||
|
||||
@action(methods=['post'], detail=False, perms_map={'post': 'fifo_out_other'},
|
||||
serializer_class=FIFOOutOtherSerializer)
|
||||
def out_other(self, request, pk=None):
|
||||
"""
|
||||
其他出库
|
||||
"""
|
||||
serializer = self.get_serializer(data=request.data)
|
||||
serializer.is_valid(raise_exception=True)
|
||||
serializer.save(create_by=request.user)
|
||||
return Response()
|
||||
|
||||
@action(methods=['post'], detail=True, perms_map={'post': 'fifo_audit'}, serializer_class=serializers.Serializer)
|
||||
@transaction.atomic
|
||||
def audit(self, request, pk=None):
|
||||
|
|
Loading…
Reference in New Issue