from rest_framework import serializers from .models import Sale, SaleLine, Product, Customer, ReconciliationJar class SaleLineSerializer(serializers.ModelSerializer): class Meta: model = SaleLine fields = ['id', 'sale', 'product', 'unit_price', 'quantity'] class SaleSerializer(serializers.ModelSerializer): class Meta: model = Sale fields = ['id', 'customer', 'date', 'saleline_set'] class ProductSerializer(serializers.ModelSerializer): class Meta: model = Product fields = ['id', 'name', 'price', 'measuring_unit', 'categories'] class CustomerSerializer(serializers.ModelSerializer): class Meta: model = Customer fields = ['id', 'name', 'address', 'email', 'phone'] class ReconciliationJarSerializer(serializers.ModelSerializer): class Meta: model = ReconciliationJar fields = [ 'id', 'date_time', 'reconcilier', 'cash_taken', 'cash_discrepancy', 'total_cash_purchases', ] class PaymentMethodSerializer(serializers.Serializer): text = serializers.CharField() value = serializers.CharField() def to_representation(self, instance): return { 'text': instance[1], 'value': instance[0], } class SaleForRenconciliationSerializer(serializers.Serializer): id = serializers.IntegerField() date = serializers.DateTimeField() payment_method = serializers.CharField() customer = serializers.SerializerMethodField() total = serializers.SerializerMethodField() def get_customer(self, sale): return { 'id': sale.customer.id, 'name': sale.customer.name, } def get_total(self, sale): return sale.get_total()