Files
crmApi/apps/shop/selectors/order.py
T
2024-01-22 13:01:42 +03:30

47 lines
2.0 KiB
Python

from apps.shop.models import Order as OrderModel
from apps.customer.models import CustomerResponsible as CustomerResponsibleModel
from apps.cuser.models import CuserRole as CuserRoleModel
from rest_framework import exceptions
from utils.custom_permissions import workspace_admin_up
from apps.customer.models import Customer as CustomerModel
def retrieve_order(cuser_role_uuid: str, order_id: int, workspace_uuid: str) -> OrderModel:
try:
cuser_role = CuserRoleModel.objects.select_related('role_type').get
role_type = cuser_role.role_type
if role_type.role_name_en == 'workspace_customer':
customer = CustomerModel.objects.get(cuser_role=cuser_role)
order_obj = OrderModel.objects.get(id=order_id, sys_ws__uuid=workspace_uuid, customer=customer)
return order_obj
if role_type.role_name_en in ('workspace_owner', 'workspace_operator', 'workspace_admin'):
order_obj = OrderModel.objects.get(id=order_id, sys_ws__uuid=workspace_uuid)
return order_obj
except Exception as exp:
message = f'Error Retrieve Order: {exp}'
raise exceptions.ValidationError({'error': message})
def list_order(cuser_role_uuid: str, workspace_uuid: str) -> OrderModel:
try:
cuser_role = CuserRoleModel.objects.select_related('role_type').get(uuid=cuser_role_uuid)
role_type = cuser_role.role_type
if role_type.role_name_en == 'workspace_customer':
customer = CustomerModel.objects.get(cuser_role=cuser_role)
orders_obj = OrderModel.objects.filter(sys_ws__uuid=workspace_uuid, customer=customer).order_by('-created_at')
return orders_obj
if role_type.role_name_en in ('workspace_owner', 'workspace_operator', 'workspace_admin'):
orders_obj = OrderModel.objects.filter(sys_ws__uuid=workspace_uuid).order_by('-created_at')
return orders_obj
except Exception as exp:
message = f'Error Fetching List Order: {exp}'
raise exceptions.ValidationError({'error': message})