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.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()
|
||||||
|
|||||||
@@ -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()),
|
||||||
]
|
]
|
||||||
)),
|
)),
|
||||||
]
|
]
|
||||||
@@ -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
|
||||||
|
)
|
||||||
Reference in New Issue
Block a user