mirror of
https://github.com/himool/HimoolERP.git
synced 2024-09-21 07:16:02 +08:00
131 lines
4.6 KiB
Python
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',
|
|
]
|