make default stake holder when creating assignment
This commit is contained in:
@@ -258,6 +258,7 @@ class StakeHolders(BaseModel):
|
|||||||
null=True
|
null=True
|
||||||
)
|
)
|
||||||
share_percent = models.FloatField(default=0)
|
share_percent = models.FloatField(default=0)
|
||||||
|
default = models.BooleanField(default=False)
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return f'Device: {self.assignment.device.serial}-organization: {self.organization.name}'
|
return f'Device: {self.assignment.device.serial}-organization: {self.organization.name}'
|
||||||
|
|||||||
@@ -182,13 +182,14 @@ class DeviceAssignmentViewSet(viewsets.ModelViewSet):
|
|||||||
|
|
||||||
if client.exists():
|
if client.exists():
|
||||||
request.data.update({'client': client.first().id})
|
request.data.update({'client': client.first().id})
|
||||||
else:
|
|
||||||
client = CustomOperations().custom_create(
|
# create client
|
||||||
request=request,
|
client = CustomOperations().custom_create(
|
||||||
view=POSClientViewSet(),
|
request=request,
|
||||||
data=request.data['client_data']
|
view=POSClientViewSet(),
|
||||||
)
|
data=request.data['client_data']
|
||||||
request.data.update({'client': client['id']})
|
)
|
||||||
|
request.data.update({'client': client['id']})
|
||||||
|
|
||||||
# create assignment
|
# create assignment
|
||||||
serializer = self.serializer_class(data=request.data)
|
serializer = self.serializer_class(data=request.data)
|
||||||
@@ -204,6 +205,15 @@ class DeviceAssignmentViewSet(viewsets.ModelViewSet):
|
|||||||
assignment.client.organization.has_pos = True
|
assignment.client.organization.has_pos = True
|
||||||
assignment.client.organization.save()
|
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.data, status=status.HTTP_201_CREATED)
|
||||||
return Response(serializer.errors, status=status.HTTP_403_FORBIDDEN)
|
return Response(serializer.errors, status=status.HTTP_403_FORBIDDEN)
|
||||||
|
|
||||||
@@ -225,6 +235,12 @@ class DeviceAssignmentViewSet(viewsets.ModelViewSet):
|
|||||||
if serializer.is_valid():
|
if serializer.is_valid():
|
||||||
assignment = serializer.save()
|
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.data, status=status.HTTP_200_OK)
|
||||||
return Response(serializer.errors, status=status.HTTP_403_FORBIDDEN)
|
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.pos_device.mixins.pos_device_mixin import POSDeviceMixin
|
||||||
from apps.core.mixins.search_mixin import DynamicSearchMixin
|
from apps.core.mixins.search_mixin import DynamicSearchMixin
|
||||||
from apps.warehouse import models as warehouse_models
|
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.permissions import AllowAny
|
||||||
from rest_framework.decorators import action
|
from rest_framework.decorators import action
|
||||||
from rest_framework.response import Response
|
from rest_framework import viewsets
|
||||||
from rest_framework import viewsets, filters
|
|
||||||
from apps.herd.models import Rancher
|
from apps.herd.models import Rancher
|
||||||
from django.db import transaction
|
from django.db import transaction
|
||||||
from rest_framework import status
|
|
||||||
import typing
|
|
||||||
|
|
||||||
|
|
||||||
class InventoryEntryViewSet(viewsets.ModelViewSet, DynamicSearchMixin, POSDeviceMixin):
|
class InventoryEntryViewSet(viewsets.ModelViewSet, DynamicSearchMixin, POSDeviceMixin):
|
||||||
|
|||||||
Reference in New Issue
Block a user