You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
67 lines
2.3 KiB
67 lines
2.3 KiB
from rest_framework import viewsets
|
|
|
|
from warehouse.models import Warehouse, Stock
|
|
from .models import Product, Employee, Position, StorageLocation, Contractor, SupplyContract, Truck, Inventory
|
|
from django.http import JsonResponse
|
|
from .models import Inventory
|
|
from .serializers import (
|
|
ProductSerializer, EmployeeSerializer, PositionSerializer,
|
|
StorageLocationSerializer, ContractorSerializer, SupplyContractSerializer, TruckSerializer
|
|
)
|
|
|
|
def conduct_inventory(request, warehouse_id):
|
|
warehouse = Warehouse.objects.get(id=warehouse_id)
|
|
stock_items = Stock.objects.filter(location__warehouse=warehouse)
|
|
|
|
inventory_results = []
|
|
for stock_item in stock_items:
|
|
recorded_quantity = stock_item.quantity
|
|
# Симуляция фактического количества (можно заменить на ввод пользователя)
|
|
actual_quantity = recorded_quantity - 5 # Пример: уменьшение на 5 для теста
|
|
inventory = Inventory.objects.create(
|
|
warehouse=warehouse,
|
|
storage_location=stock_item.location,
|
|
product=stock_item.product,
|
|
actual_quantity=actual_quantity,
|
|
recorded_quantity=recorded_quantity,
|
|
)
|
|
inventory_results.append(inventory)
|
|
|
|
return JsonResponse({
|
|
"message": "Инвентаризация завершена",
|
|
"results": [str(result) for result in inventory_results],
|
|
})
|
|
|
|
class ProductViewSet(viewsets.ModelViewSet):
|
|
queryset = Product.objects.all()
|
|
serializer_class = ProductSerializer
|
|
|
|
|
|
class EmployeeViewSet(viewsets.ModelViewSet):
|
|
queryset = Employee.objects.all()
|
|
serializer_class = EmployeeSerializer
|
|
|
|
|
|
class PositionViewSet(viewsets.ModelViewSet):
|
|
queryset = Position.objects.all()
|
|
serializer_class = PositionSerializer
|
|
|
|
|
|
class StorageLocationViewSet(viewsets.ModelViewSet):
|
|
queryset = StorageLocation.objects.all()
|
|
serializer_class = StorageLocationSerializer
|
|
|
|
|
|
class ContractorViewSet(viewsets.ModelViewSet):
|
|
queryset = Contractor.objects.all()
|
|
serializer_class = ContractorSerializer
|
|
|
|
|
|
class SupplyContractViewSet(viewsets.ModelViewSet):
|
|
queryset = SupplyContract.objects.all()
|
|
serializer_class = SupplyContractSerializer
|
|
|
|
|
|
class TruckViewSet(viewsets.ModelViewSet):
|
|
queryset = Truck.objects.all()
|
|
serializer_class = TruckSerializer |