forked from erp-dev/erp
feat: auto complete stock change
This commit is contained in:
@@ -1,9 +1,38 @@
|
||||
from rest_framework import viewsets
|
||||
from rest_framework.exceptions import PermissionDenied
|
||||
from rest_framework.pagination import LimitOffsetPagination
|
||||
from . import serializers
|
||||
|
||||
|
||||
class BaseViewSet(viewsets.ModelViewSet):
|
||||
permission_classes = [] # 允许所有访问
|
||||
pagination_class = LimitOffsetPagination
|
||||
|
||||
def get_queryset(self):
|
||||
qs = super().get_queryset()
|
||||
# 如果是超级用户,返回所有数据
|
||||
# TODO: 测试结束后要取注释
|
||||
# if self.request.user.is_superuser:
|
||||
# return qs
|
||||
return qs.filter(merchant=self.request.user.employee.merchant)
|
||||
|
||||
def perform_create(self, serializer):
|
||||
try:
|
||||
merchant = self.request.user.employee.merchant
|
||||
serializer.save(merchant_id=merchant.id)
|
||||
except AttributeError:
|
||||
raise PermissionDenied("无权限创建该对象")
|
||||
|
||||
|
||||
class QuickInputViewSet(viewsets.ModelViewSet):
|
||||
queryset = serializers.basic_models.QuickInput.objects
|
||||
serializer_class = serializers.QuickInputSerializer
|
||||
|
||||
def filter_queryset(self, queryset):
|
||||
qs = super().filter_queryset(queryset)
|
||||
group = self.request.query_params.get('group')
|
||||
if group:
|
||||
qs = qs.filter(group=group)
|
||||
return qs
|
||||
|
||||
|
||||
class ProductViewSet(BaseViewSet):
|
||||
@@ -35,6 +64,17 @@ class CustomerViewSet(BaseViewSet):
|
||||
queryset = serializers.basic_models.Customer.objects
|
||||
serializer_class = serializers.CustomerSerializer
|
||||
|
||||
def perform_create(self, serializer):
|
||||
merchant = self.request.user.employee.merchant
|
||||
employee = self.request.user.employee
|
||||
serializer.save(merchant=merchant, created_by=employee)
|
||||
|
||||
def get_queryset(self):
|
||||
qs = super().get_queryset()
|
||||
# 应用可见性过滤
|
||||
from basic_info.services import CustomerVisibilityService
|
||||
return CustomerVisibilityService.filter_customers_for_employee(qs, self.request.user)
|
||||
|
||||
|
||||
class VehicleTypeViewSet(BaseViewSet):
|
||||
queryset = serializers.basic_models.VehicleType.objects
|
||||
|
||||
Reference in New Issue
Block a user