forked from erp-dev/erp
feat: statement for supplier and customer
This commit is contained in:
37
api_v1/views/business/statements/serializers.py
Normal file
37
api_v1/views/business/statements/serializers.py
Normal file
@@ -0,0 +1,37 @@
|
||||
from rest_framework import serializers
|
||||
|
||||
|
||||
class StatementRecordSerializer(serializers.Serializer):
|
||||
source_type = serializers.CharField()
|
||||
source_label = serializers.CharField()
|
||||
source_id = serializers.IntegerField()
|
||||
occurred_at = serializers.DateField()
|
||||
recorded_at = serializers.DateTimeField()
|
||||
status = serializers.IntegerField()
|
||||
status_label = serializers.CharField()
|
||||
counterparty = serializers.IntegerField()
|
||||
counterparty_name = serializers.CharField()
|
||||
positive_amount = serializers.DecimalField(max_digits=15, decimal_places=2)
|
||||
negative_amount = serializers.DecimalField(max_digits=15, decimal_places=2)
|
||||
extra = serializers.DictField(required=False)
|
||||
|
||||
|
||||
class StatementResponseSerializer(serializers.Serializer):
|
||||
counterparty = serializers.IntegerField()
|
||||
counterparty_name = serializers.CharField()
|
||||
records = StatementRecordSerializer(many=True)
|
||||
summary = serializers.SerializerMethodField()
|
||||
|
||||
def get_summary(self, obj):
|
||||
summary_builder = self.context.get('summary_builder')
|
||||
if callable(summary_builder):
|
||||
return summary_builder(obj)
|
||||
return self.context.get('summary')
|
||||
|
||||
def to_representation(self, instance):
|
||||
data = super().to_representation(instance)
|
||||
if data.get('summary') is None:
|
||||
data.pop('summary', None)
|
||||
return data
|
||||
|
||||
|
||||
Reference in New Issue
Block a user