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.debit_usd += validated_data.get('price')
expence.counterparty.total_debit += expence.price expence.counterparty.total_debit += expence.price
expence.counterparty.save() 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() cash_transaction.save()
payment_type.save() payment_type.save()

View File

@@ -37,6 +37,7 @@ urlpatterns = [
'<uuid:party_id>/order/<uuid:order_id>/remove/', party_views.OrderDeleteToPartyApiView.as_view() '<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('<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.models import Party, PartyAmount, DeletedParty, Order
from core.apps.orders.filters.party import PartyFilter from core.apps.orders.filters.party import PartyFilter
from core.apps.orders.tasks.order import create_inventory from core.apps.orders.tasks.order import create_inventory
from core.apps.finance.models import Expence
class PartyCreateApiView(generics.GenericAPIView): class PartyCreateApiView(generics.GenericAPIView):
@@ -165,3 +166,28 @@ class PartyChangeStatusToIsMadeApiView(generics.GenericAPIView):
status=200 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
)