device assignment bug-assignment information-bug of organizations list for assignment

This commit is contained in:
2025-08-16 14:22:00 +03:30
parent ebd3aee47f
commit 1d07501ecf
10 changed files with 120 additions and 25 deletions

View File

@@ -164,15 +164,8 @@ class DeviceAssignmentViewSet(viewsets.ModelViewSet):
queryset = pos_models.DeviceAssignment.objects.all()
serializer_class = device_serializer.DeviceAssignmentSerializer
@action(
methods=['post'],
detail=False,
url_path='assignment',
url_name='assignment',
name='assignment',
)
@transaction.atomic
def device_assignment(self, request):
def create(self, request, *args, **kwargs):
""" assign pos device to client by company """
if 'organization' not in request.data.keys():
@@ -180,12 +173,22 @@ class DeviceAssignmentViewSet(viewsets.ModelViewSet):
request.data.update({'organization': organization.id})
if 'client_data' in request.data.keys():
client = CustomOperations().custom_create(
request=request,
view=POSClientViewSet(),
data=request.data['client_data']
)
request.data.update({'client': client['id']})
# if client will be an organization
if request.data['client_data']['is_organization']:
client = pos_models.POSClient.objects.filter(
organization_id=request.data['client_data']['organization']
)
if client.exists():
request.data.update({'client': client.first().id})
else:
client = CustomOperations().custom_create(
request=request,
view=POSClientViewSet(),
data=request.data['client_data']
)
request.data.update({'client': client['id']})
# create assignment
serializer = self.serializer_class(data=request.data)
@@ -193,8 +196,9 @@ class DeviceAssignmentViewSet(viewsets.ModelViewSet):
assignment = serializer.save()
# set organization having pos status
assignment.organization.has_pos = True
assignment.organization.save()
if assignment.client.organization:
assignment.client.organization.has_pos = True
assignment.client.organization.save()
return Response(serializer.data, status=status.HTTP_201_CREATED)
return Response(serializer.errors, status=status.HTTP_403_FORBIDDEN)