add: add new api

This commit is contained in:
behruz-dev
2025-09-11 15:20:56 +05:00
parent 6a89d228a9
commit c9ef7b7620
3 changed files with 31 additions and 0 deletions

View File

@@ -357,6 +357,10 @@ class PartyExpenceCreateSerializer(serializers.ModelSerializer):
expence.counterparty.debit_usd += validated_data.get('price')
expence.counterparty.total_debit += expence.price
expence.counterparty.save()
if expence.party.currency == 'usd':
expence.party.party_amount.payment_amount -= validated_data.get('price')
expence.party.party_amount.paid_amount += validated_data.get('price')
expence.party.save()
cash_transaction.save()
payment_type.save()

View File

@@ -37,6 +37,7 @@ urlpatterns = [
'<uuid:party_id>/order/<uuid:order_id>/remove/', party_views.OrderDeleteToPartyApiView.as_view()
),
path('<uuid:party_id>/is_made/', party_views.PartyChangeStatusToIsMadeApiView.as_view()),
path('pay/', party_views.PartyPaymentApiView.as_view()),
]
)),
]

View File

@@ -10,6 +10,7 @@ from core.apps.orders.serializers import party as serializers
from core.apps.orders.models import Party, PartyAmount, DeletedParty, Order
from core.apps.orders.filters.party import PartyFilter
from core.apps.orders.tasks.order import create_inventory
from core.apps.finance.models import Expence
class PartyCreateApiView(generics.GenericAPIView):
@@ -165,3 +166,28 @@ class PartyChangeStatusToIsMadeApiView(generics.GenericAPIView):
status=200
)
class PartyPaymentApiView(generics.GenericAPIView):
serializer_class = serializers.PartyExpenceCreateSerializer
queryset = Expence.objects.all()
permission_classes = [HasRolePermission]
def post(self, request):
ser = self.serializer_class(data=request.data)
if ser.is_valid():
ser.save()
return Response(
{
'success': True,
'message': 'partiyage tolov qilindi'
},
status=200
)
return Response(
{
'success': False,
'message': 'partiyaga tolov qilishda xatolik yuz berdi',
'error': ser.errors,
},
status=400
)