add: income-expence delete api
This commit is contained in:
@@ -6,7 +6,7 @@ from rest_framework.response import Response
|
||||
from django_filters.rest_framework.backends import DjangoFilterBackend
|
||||
|
||||
from core.apps.accounts.permissions.permissions import HasRolePermission
|
||||
from core.apps.finance.models import Expence
|
||||
from core.apps.finance.models import Expence, DeletedExpence
|
||||
from core.apps.finance.serializers import expence as serializers
|
||||
from core.apps.finance.filters.expence import ExpenceFilter
|
||||
from core.apps.counterparty.models import Counterparty
|
||||
@@ -107,4 +107,39 @@ class ChangeExpenceStatusApiView(views.APIView):
|
||||
'message': 'expence status successfully updated',
|
||||
},
|
||||
status=200
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
class ExpenceDeleteApiView(generics.GenericAPIView):
|
||||
serializer_class = serializers.ExpenceDeleteSerializer
|
||||
queryset = Expence.objects.all()
|
||||
permission_classes = [HasRolePermission]
|
||||
|
||||
def post(self, request, id):
|
||||
expence = get_object_or_404(Expence, id=id)
|
||||
serializer = self.serializer_class(data=request.data)
|
||||
if serializer.is_valid(raise_exception=True):
|
||||
comment = serializer.validated_data.get('comment')
|
||||
DeletedExpence.objects.create(
|
||||
expence=expence,
|
||||
comment=comment
|
||||
)
|
||||
expence.is_deleted = True
|
||||
if expence.currency == 'uzs':
|
||||
expence.cash_transaction.expence_balance_uzs += expence.price
|
||||
expence.cash_transaction.total_balance_uzs += expence.price
|
||||
expence.payment_type.total_uzs += expence.price
|
||||
else:
|
||||
expence.cash_transaction.expence_balance_usd += expence.price
|
||||
expence.cash_transaction.total_balance_usd += expence.price
|
||||
expence.payment_type.total_usd += expence.price
|
||||
|
||||
expence.cash_transaction.save()
|
||||
expence.payment_type.save()
|
||||
expence.save()
|
||||
return Response(
|
||||
{
|
||||
'success': True,
|
||||
'message': 'Expence deleted',
|
||||
}, status=200
|
||||
)
|
||||
Reference in New Issue
Block a user