add: income-expence delete api

This commit is contained in:
behruz-dev
2025-09-25 16:37:41 +05:00
parent e854e5a7fe
commit 7ee8531aee
13 changed files with 214 additions and 7 deletions

View File

@@ -5,7 +5,7 @@ from rest_framework.response import Response
from django_filters.rest_framework.backends import DjangoFilterBackend
from core.apps.finance.models import Income
from core.apps.finance.models import Income, DeletedIncome
from core.apps.finance.serializers import income as serializers
from core.apps.accounts.permissions.permissions import HasRolePermission
from core.apps.finance.filters.income import IncomeFilter
@@ -76,4 +76,38 @@ class CounterpartyIncomeListApiView(generics.GenericAPIView):
if page is not None:
ser = self.serializer_class(page, many=True)
return self.get_paginated_response(ser.data)
class IncomeDeleteApiView(generics.GenericAPIView):
serializer_class = serializers.IncomeDeleteSerializer
queryset = Income.objects.all()
permission_classes = [HasRolePermission]
def post(self, request, id):
income = get_object_or_404(Income, id=id)
serializer = self.serializer_class(data=request.data)
if serializer.is_valid(raise_exception=True):
comment = serializer.validated_data.get('comment')
DeletedIncome.objects.create(
income=income,
comment=comment
)
income.is_deleted = True
if income.currency == 'uzs':
income.cash_transaction.expence_balance_uzs -= income.price
income.cash_transaction.total_balance_uzs -= income.price
income.payment_type.total_uzs -= income.price
else:
income.cash_transaction.expence_balance_usd -= income.price
income.cash_transaction.total_balance_usd -= income.price
income.payment_type.total_usd -= income.price
income.cash_transaction.save()
income.payment_type.save()
income.save()
return Response(
{
'success': True,
'message': 'Income deleted',
}, status=200
)