123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192 |
- # coding=utf-8
- from django.db.models import Q
- from rest_framework import serializers
- from apps.customer.models import *
- from apps.vehicle_order.models import *
- from apps.product_order.models import *
- from apps.base import Formater
- from utils.exceptions import CustomError
- from apps.maint_order.models import MaintOrderReserve
- class CustomerVehicleSerializer(serializers.ModelSerializer):
- class Meta:
- model = CustomerVehicle
- fields = '__all__'
- def create(self, validated_data):
- customer = self.context['request'].customer
- validated_data['customer'] = customer
- instance = super(CustomerVehicleSerializer, self).create(validated_data)
- return instance
- class CustomerAddressSerializer(serializers.ModelSerializer):
- full_addr = serializers.SerializerMethodField()
- def get_full_addr(self, obj):
- full_addr = obj.area + obj.addr
- return full_addr
- class Meta:
- model = CustomerAddress
- fields = '__all__'
- def create(self, validated_data):
- customer = self.context['request'].customer
- validated_data['customer'] = customer
- if validated_data['default']:
- CustomerAddress.objects.filter(customer=customer).update(default=False)
- instance = super(CustomerAddressSerializer, self).create(validated_data)
- return instance
- class ProductOrderSerializer(serializers.ModelSerializer):
- product_name = serializers.CharField(source='product.name', read_only=True)
- name = serializers.CharField(source='customer.name', read_only=True)
- customer_name = serializers.CharField(source='customer_address.name', read_only=True)
- customer_tel = serializers.CharField(source='customer_address.tel', read_only=True)
- area = serializers.CharField(source='customer_address.area', read_only=True)
- addr = serializers.CharField(source='customer_address.addr', read_only=True)
- status_text = serializers.CharField(source='get_status_display', read_only=True)
- create_time = serializers.DateTimeField(format='%Y-%m-%d %H:%M', read_only=True)
- price = serializers.SerializerMethodField()
- amount = serializers.SerializerMethodField()
- def get_price(self, obj):
- return Formater.formatPriceShow(obj.price)
- def get_amount(self, obj):
- return Formater.formatAmountShow(obj.amount)
- class Meta:
- model = ProductOrder
- fields = '__all__'
- def create(self, validated_data):
- validated_data['customer'] = self.context['request'].customer
- validated_data['price'] = Formater.formatPrice(validated_data['price'])
- validated_data['amount'] = validated_data['price'] * validated_data['count']
- instance = super(ProductOrderSerializer, self).create(validated_data)
- no = instance.generateNo()
- instance.no = no
- instance.save()
- return instance
- class VehicleDriveReserveSerializer(serializers.ModelSerializer):
- shop_name = serializers.CharField(source='shop.name', read_only=True)
- brand_name = serializers.CharField(source='model.series.brand.name', read_only=True)
- series_name = serializers.CharField(source='model.series.name', read_only=True)
- model_name = serializers.CharField(source='model.name', read_only=True)
- customer_name = serializers.CharField(source='customer.name', read_only=True)
- status_text = serializers.CharField(source='get_status_display', read_only=True)
- create_time = serializers.DateTimeField(format='%Y-%m-%d %H:%M', read_only=True)
- date = serializers.DateField(format='%Y-%m-%d')
- img1_url = serializers.SerializerMethodField()
- img2_url = serializers.SerializerMethodField()
- def get_img1_url(self, obj):
- if obj.img1:
- return '%s%s' % (settings.MEDIA_URL, obj.img1.picture)
- return ''
- def get_img2_url(self, obj):
- if obj.img2:
- return '%s%s' % (settings.MEDIA_URL, obj.img2.picture)
- return ''
- class Meta:
- model = VehicleDriveReserve
- fields = '__all__'
- def create(self, validated_data):
- customer = self.context['request'].customer
- validated_data['customer'] = customer
- instance = super(VehicleDriveReserveSerializer, self).create(validated_data)
- return instance
- class VehicleInquirySerializer(serializers.ModelSerializer):
- shop_name = serializers.CharField(source='shop.name', read_only=True)
- brand_name = serializers.CharField(source='model.series.brand.name', read_only=True)
- series_name = serializers.CharField(source='model.series.name', read_only=True)
- model_name = serializers.CharField(source='model.name', read_only=True)
- customer_name = serializers.CharField(source='customer.name', read_only=True)
- status_text = serializers.CharField(source='get_status_display', read_only=True)
- create_time = serializers.DateTimeField(format='%Y-%m-%d %H:%M', read_only=True)
- displace_text = serializers.SerializerMethodField()
- def get_displace_text(self, obj):
- return obj.displace and u'是' or u'否'
- class Meta:
- model = VehicleInquiry
- fields = '__all__'
- def create(self, validated_data):
- customer = self.context['request'].customer
- validated_data['customer'] = customer
- instance = super(VehicleInquirySerializer, self).create(validated_data)
- return instance
- class UsedVehicleInquirySerializer(serializers.ModelSerializer):
- brand_name = serializers.CharField(source='brand.name', read_only=True)
- customer_name = serializers.CharField(source='customer.name', read_only=True)
- customer_tel = serializers.CharField(source='customer.tel', read_only=True)
- status_text = serializers.CharField(source='get_status_display', read_only=True)
- gender_text = serializers.CharField(source='get_gender_display', read_only=True)
- create_time = serializers.DateTimeField(format='%Y-%m-%d %H:%M', read_only=True)
- class Meta:
- model = UsedVehicleInquiry
- fields = '__all__'
- def create(self, validated_data):
- customer = self.context['request'].customer
- validated_data['customer'] = customer
- instance = super(UsedVehicleInquirySerializer, self).create(validated_data)
- return instance
- class UsedVehicleEstimateSerializer(serializers.ModelSerializer):
- brand_name = serializers.CharField(source='brand.name', read_only=True)
- customer_name = serializers.CharField(source='customer.name', read_only=True)
- customer_tel = serializers.CharField(source='customer.tel', read_only=True)
- status_text = serializers.CharField(source='get_status_display', read_only=True)
- create_time = serializers.DateTimeField(format='%Y-%m-%d %H:%M', read_only=True)
- plate_date = serializers.DateField(format='%Y-%m-%d')
- class Meta:
- model = UsedVehicleEstimate
- fields = '__all__'
- def create(self, validated_data):
- customer = self.context['request'].customer
- validated_data['customer'] = customer
- instance = super(UsedVehicleEstimateSerializer, self).create(validated_data)
- return instance
- class MaintOrderReserveSerializer(serializers.ModelSerializer):
- shop_name = serializers.CharField(source='shop.name', read_only=True)
- model_name = serializers.CharField(source='vehicle.model', read_only=True)
- customer_name = serializers.CharField(source='customer.name', read_only=True)
- status_text = serializers.CharField(source='get_status_display', read_only=True)
- create_time = serializers.DateTimeField(format='%Y-%m-%d %H:%M', read_only=True)
- date = serializers.DateField(format='%Y-%m-%d')
- class Meta:
- model = MaintOrderReserve
- fields = '__all__'
- def create(self, validated_data):
- customer = self.context['request'].customer
- validated_data['customer'] = customer
- instance = super(MaintOrderReserveSerializer, self).create(validated_data)
- return instance
|