HimoolERP/apps/option/views.py
2021-11-11 00:23:25 +08:00

131 lines
4.6 KiB
Python

from extensions.permissions import *
from extensions.exceptions import *
from extensions.viewsets import *
from apps.option.serializers import *
from apps.option.permissions import *
from apps.option.filters import *
from apps.option.schemas import *
from apps.system.models import *
from apps.data.models import *
from apps.goods.models import *
# System
class RoleOptionViewSet(OptionViewSet):
serializer_class = RoleOptionSerializer
permission_classes = [IsAuthenticated, RoleOptionPermission]
search_fields = ['name']
queryset = Role.objects.all()
class UserOptionViewSet(OptionViewSet):
serializer_class = UserOptionSerializer
permission_classes = [IsAuthenticated, UserOptionPermission]
search_fields = ['username', 'name']
queryset = User.objects.filter(is_active=True)
# Data
class WarehouseOptionViewSet(OptionViewSet):
serializer_class = WarehouseOptionSerializer
permission_classes = [IsAuthenticated, WarehouseOptionPermission]
filterset_fields = ['manager']
search_fields = ['number', 'name']
ordering_fields = ['id', 'number', 'order']
ordering = ['order', 'number', 'id']
queryset = Warehouse.objects.filter(is_active=True)
class ClientOptionViewSet(OptionViewSet):
serializer_class = ClientOptionSerializer
permission_classes = [IsAuthenticated, ClientOptionPermission]
filterset_fields = ['level', 'category', 'has_arrears']
search_fields = ['number', 'name']
ordering_fields = ['id', 'number', 'order']
ordering = ['order', 'number', 'id']
queryset = Client.objects.filter(is_active=True)
class SupplierOptionViewSet(OptionViewSet):
serializer_class = SupplierOptionSerializer
permission_classes = [IsAuthenticated, SupplierOptionPermission]
filterset_fields = ['category', 'has_arrears']
search_fields = ['number', 'name']
ordering_fields = ['id', 'number', 'order']
ordering = ['order', 'number', 'id']
queryset = Supplier.objects.filter(is_active=True)
class AccountOptionViewSet(OptionViewSet):
serializer_class = AccountOptionSerializer
permission_classes = [IsAuthenticated, AccountOptionPermission]
search_fields = ['number', 'name']
ordering_fields = ['id', 'number', 'order']
ordering = ['order', 'number', 'id']
queryset = Account.objects.filter(is_active=True)
class ChargeItemOptionViewSet(OptionViewSet):
serializer_class = ChargeItemOptionSerializer
permission_classes = [IsAuthenticated, ChargeItemOptionPermission]
search_fields = ['name']
queryset = ChargeItem.objects.all()
class ClientCategoryOptionViewSet(OptionViewSet):
serializer_class = ClientCategoryOptionSerializer
permission_classes = [IsAuthenticated, ClientCategoryOptionPermission]
search_fields = ['name']
queryset = ClientCategory.objects.all()
class SupplierCategoryOptionViewSet(OptionViewSet):
serializer_class = SupplierCategoryOptionSerializer
permission_classes = [IsAuthenticated, SupplierCategoryOptionPermission]
search_fields = ['name']
queryset = SupplierCategory.objects.all()
class GoodsCategoryOptionViewSet(OptionViewSet):
serializer_class = GoodsCategoryOptionSerializer
permission_classes = [IsAuthenticated, GoodsCategoryOptionPermission]
search_fields = ['name']
queryset = GoodsCategory.objects.all()
class GoodsUnitOptionViewSet(OptionViewSet):
serializer_class = GoodsUnitOptionSerializer
permission_classes = [IsAuthenticated, GoodsUnitOptionPermission]
search_fields = ['name']
queryset = GoodsUnit.objects.all()
# Goods
class GoodsOptionViewSet(OptionViewSet):
serializer_class = GoodsOptionSerializer
permission_classes = [IsAuthenticated, GoodsOptionPermission]
filterset_fields = ['category']
search_fields = ['number', 'name']
ordering_fields = ['id', 'number', 'order']
ordering = ['order', 'number', 'id']
queryset = Goods.objects.filter(is_active=True)
class BatchOptionViewSet(OptionViewSet):
serializer_class = BatchOptionSerializer
permission_classes = [IsAuthenticated, BatchOptionPermission]
filterset_fields = ['warehouse', 'goods']
ordering_fields = ['id', 'number']
ordering = ['-number', 'id']
select_related_fields = ['goods__unit']
queryset = Batch.objects.filter(has_stock=True)
__all__ = [
'RoleOptionViewSet', 'UserOptionViewSet',
'WarehouseOptionViewSet', 'ClientOptionViewSet', 'SupplierOptionViewSet', 'AccountOptionViewSet',
'ChargeItemOptionViewSet', 'ClientCategoryOptionViewSet', 'SupplierCategoryOptionViewSet',
'GoodsCategoryOptionViewSet', 'GoodsUnitOptionViewSet',
'GoodsOptionViewSet', 'BatchOptionViewSet',
]