make default stake holder when creating assignment
This commit is contained in:
@@ -258,6 +258,7 @@ class StakeHolders(BaseModel):
|
||||
null=True
|
||||
)
|
||||
share_percent = models.FloatField(default=0)
|
||||
default = models.BooleanField(default=False)
|
||||
|
||||
def __str__(self):
|
||||
return f'Device: {self.assignment.device.serial}-organization: {self.organization.name}'
|
||||
|
||||
@@ -182,13 +182,14 @@ class DeviceAssignmentViewSet(viewsets.ModelViewSet):
|
||||
|
||||
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 client
|
||||
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)
|
||||
@@ -204,6 +205,15 @@ class DeviceAssignmentViewSet(viewsets.ModelViewSet):
|
||||
assignment.client.organization.has_pos = True
|
||||
assignment.client.organization.save()
|
||||
|
||||
# after pos device assignment, must set owner
|
||||
# as default stake holder
|
||||
pos_models.StakeHolders.objects.create(
|
||||
assignment=assignment,
|
||||
device=assignment.device,
|
||||
organization=assignment.client.organization,
|
||||
default=True
|
||||
)
|
||||
|
||||
return Response(serializer.data, status=status.HTTP_201_CREATED)
|
||||
return Response(serializer.errors, status=status.HTTP_403_FORBIDDEN)
|
||||
|
||||
@@ -225,6 +235,12 @@ class DeviceAssignmentViewSet(viewsets.ModelViewSet):
|
||||
if serializer.is_valid():
|
||||
assignment = serializer.save()
|
||||
|
||||
if assignment.client.organization:
|
||||
# update default stake holder for device (assignment)
|
||||
stake_holder = assignment.stake_holders.filter(default=True).first()
|
||||
stake_holder.organization = assignment.client.organization
|
||||
stake_holder.save()
|
||||
|
||||
return Response(serializer.data, status=status.HTTP_200_OK)
|
||||
return Response(serializer.errors, status=status.HTTP_403_FORBIDDEN)
|
||||
|
||||
|
||||
@@ -3,15 +3,11 @@ from apps.warehouse.services.services import can_buy_from_inventory
|
||||
from apps.pos_device.mixins.pos_device_mixin import POSDeviceMixin
|
||||
from apps.core.mixins.search_mixin import DynamicSearchMixin
|
||||
from apps.warehouse import models as warehouse_models
|
||||
from common.helpers import get_organization_by_user
|
||||
from rest_framework.permissions import AllowAny
|
||||
from rest_framework.decorators import action
|
||||
from rest_framework.response import Response
|
||||
from rest_framework import viewsets, filters
|
||||
from rest_framework import viewsets
|
||||
from apps.herd.models import Rancher
|
||||
from django.db import transaction
|
||||
from rest_framework import status
|
||||
import typing
|
||||
|
||||
|
||||
class InventoryEntryViewSet(viewsets.ModelViewSet, DynamicSearchMixin, POSDeviceMixin):
|
||||
@@ -113,4 +109,4 @@ class InventoryQuotaSaleTransactionViewSet(viewsets.ModelViewSet, DynamicSearchM
|
||||
page = self.paginate_queryset(queryset)
|
||||
if page is not None:
|
||||
serializer = self.get_serializer(page, many=True)
|
||||
return self.get_paginated_response(serializer.data)
|
||||
return self.get_paginated_response(serializer.data)
|
||||
|
||||
Reference in New Issue
Block a user