hujingpei 4 年 前
コミット
6881d55253
3 ファイル変更20 行追加7 行削除
  1. 7 5
      apps/customer/serializers.py
  2. 5 0
      apps/customer/views.py
  3. 8 2
      apps/order/models.py

+ 7 - 5
apps/customer/serializers.py

@@ -162,11 +162,13 @@ class NewCustomerSerializer(serializers.ModelSerializer):
 
     def update(self, instance, validated_data):
         instance = super(NewCustomerSerializer, self).update(instance, validated_data)
-        # order = Order.objects.filter(customer=instance)
-        # if not order:
-        #     Order.objects.create(customer=instance, service_user_id=instance.track_user.id)
-        # if order:
-        #     Order.objects.filter(customer=instance)
+        order = Order.objects.filter(customer=instance).first()
+        if not order:
+            order = Order.objects.create(customer=instance, service_user_id=instance.track_user.id, status=Order.NORMAL)
+            order.no = order.get_no()
+            order.save()
+        if order:
+            Order.objects.filter(no=order.no).update(customer=instance)
         return instance
 
 

+ 5 - 0
apps/customer/views.py

@@ -156,6 +156,11 @@ class NewCustomerViewSet(CustomModelViewSet):
         f = NewCustomerFilter(self.request.GET, queryset=queryset)
         return f.qs
 
+    def perform_update(self, serializer):
+        super(NewCustomerViewSet, self).perform_update(serializer)
+        instance = serializer.instance
+        validated_data = serializer.validated_data
+
     def paginate_queryset(self, queryset):
         if self.paginator is None or self.request.GET.get('export'):
             return None

+ 8 - 2
apps/order/models.py

@@ -1,6 +1,7 @@
 # coding=utf-8
 from django.db import models
 from django.conf import settings
+from django.utils import timezone
 
 from apps.option.models import Option
 from apps.customer.models import NewCustomer
@@ -13,7 +14,7 @@ class Order(models.Model):
         (NORMAL, u'正常'),
         (ABANDONED, u'放弃'),
     )
-
+    no = models.CharField(max_length=50, verbose_name='单号', blank=True)
     customer = models.ForeignKey(NewCustomer, related_name='order_customer', verbose_name=u"订单客户",
                                  on_delete=models.PROTECT)
     service_user = models.ForeignKey(settings.AUTH_USER_MODEL,related_name='order_service_user', verbose_name=u"服务人员",
@@ -28,4 +29,9 @@ class Order(models.Model):
         default_permissions = ()
         permissions = [
             ('view_order', u'查看'),
-        ]
+        ]
+
+    def get_no(self):
+        now = timezone.now()
+        no = '%s%d-%s' % ('DD', self.service_user.id, now.strftime('%Y%m%d%H%M%S'))
+        return no