add: add new api
This commit is contained in:
@@ -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()
|
||||
|
||||
@@ -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()),
|
||||
]
|
||||
)),
|
||||
]
|
||||
@@ -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
|
||||
)
|
||||
Reference in New Issue
Block a user