1
0
forked from erp-dev/erp
Files
erpnew/api_man/views.py

114 lines
3.8 KiB
Python

from rest_framework import viewsets
from rest_framework.exceptions import PermissionDenied
from rest_framework.pagination import LimitOffsetPagination
from . import serializers
class BaseViewSet(viewsets.ModelViewSet):
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):
queryset = serializers.basic_models.Product.objects
serializer_class = serializers.ProductSerializer
class WareHouseViewSet(BaseViewSet):
queryset = serializers.basic_models.WareHouse.objects
serializer_class = serializers.WareHouseSerializer
class ProductCategoryViewSet(BaseViewSet):
queryset = serializers.basic_models.ProductCategory.objects
serializer_class = serializers.ProductCategorySerializer
class SupplierViewSet(BaseViewSet):
queryset = serializers.basic_models.Supplier.objects
serializer_class = serializers.SupplierSerializer
class EmployeeViewSet(BaseViewSet):
queryset = serializers.basic_models.Employee.objects
serializer_class = serializers.EmployeeSerializer
class EmployeeTypeViewSet(BaseViewSet):
queryset = serializers.basic_models.EmployeeType.objects
serializer_class = serializers.EmployeeTypeSerializer
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
serializer_class = serializers.VehicleTypeSerializer
class BankAccountViewSet(BaseViewSet):
queryset = serializers.basic_models.BankAccount.objects
serializer_class = serializers.BankAccountSerializer
class DeviceInfoViewSet(BaseViewSet):
queryset = serializers.basic_models.DeviceInfo.objects
serializer_class = serializers.DeviceInfoSerializer
class VehicleTransportRecordViewSet(BaseViewSet):
queryset = serializers.basic_models.VehicleTransportRecord.objects
serializer_class = serializers.VehicleTransportRecordSerializer
class UserProfileViewSet(BaseViewSet):
queryset = serializers.basic_models.UserProfile.objects
serializer_class = serializers.UserProfileSerializer
def filter_queryset(self, queryset):
try:
merchant = self.request.user.employee.merchant
return super().filter_queryset(queryset).filter(merchant=merchant)
except AttributeError:
raise PermissionDenied("无权限访问该对象")