add: add new field for cash transaction create api

This commit is contained in:
behruz-dev
2025-09-05 17:35:01 +05:00
parent 60328e9f51
commit e8b1ef9fb9

View File

@@ -2,7 +2,7 @@ from django.db import transaction
from rest_framework import serializers
from core.apps.finance.models import CashTransaction
from core.apps.finance.models import CashTransaction, CashTransactionFolder
from core.apps.accounts.models import User
from core.apps.finance.models import PaymentType
@@ -37,11 +37,17 @@ class CashTransactionCreateSerializer(serializers.Serializer):
employee_ids = serializers.ListSerializer(child=serializers.UUIDField())
name = serializers.CharField()
status = serializers.BooleanField()
folder_id = serializers.UUIDField(required=False)
def validate(self, data):
payment_type = PaymentType.objects.filter(id=data['id']).first()
if payment_type:
raise serializers.ValidationError("Payment Type not found")
if data.get('folder_id'):
folder = CashTransactionFolder.objects.filter(id=data.get('folder_id')).first()
if not folder:
raise serializers.ValidationError("Cash Transaction Folder not found")
data['folder'] = folder
data['payment_type'] = payment_type
return data
@@ -51,7 +57,8 @@ class CashTransactionCreateSerializer(serializers.Serializer):
cash_transaction = CashTransaction.objects.create(
name=validated_data.get('name'),
payment_type=validated_data.get('payment_type'),
status=validated_data.get('status')
status=validated_data.get('status'),
folder=validated_data.get('folder')
)
cash_transaction.employees.set(employee_ids)
cash_transaction.save()