@@ -556,3 +556,52 @@ def statistic_consumer(request): |
||
556 | 556 |
'model_logs': model_logs, |
557 | 557 |
'province_logs': province_logs, |
558 | 558 |
}) |
559 |
+ |
|
560 |
+def record_consumer(request): |
|
561 |
+ brand_id = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_ID) |
|
562 |
+ admin_id = request.POST.get('admin_id', '') |
|
563 |
+ start_time = request.POST.get('start_time', '') |
|
564 |
+ end_time = request.POST.get('end_time', '') |
|
565 |
+ model_name = request.POST.get('model_name', '') |
|
566 |
+ phone = request.POST.get('phone', '') |
|
567 |
+ |
|
568 |
+ if brand_id != settings.KODO_DEFAULT_BRAND_ID: |
|
569 |
+ return response(ProductBrandStatusCode.BRAND_NOT_MATCH) |
|
570 |
+ |
|
571 |
+ try: |
|
572 |
+ administrator = AdministratorInfo.objects.get(admin_id=admin_id, user_status=AdministratorInfo.ACTIVATED, status=True) |
|
573 |
+ except AdministratorInfo.DoesNotExist: |
|
574 |
+ return response(AdministratorStatusCode.ADMINISTRATOR_NOT_FOUND) |
|
575 |
+ |
|
576 |
+ logs = ConsumeInfoSubmitLogInfo.objects.filter(ymd__gte=start_time, ymd__lte=end_time, test_user=False, model_uni_name__contains=model_name, phone__contains=phone) |
|
577 |
+ |
|
578 |
+ logs = [log.admindata for log in logs] |
|
579 |
+ |
|
580 |
+ return response(200, 'Get Consumer Record Success', u'获取消费者销售记录成功', data={ |
|
581 |
+ 'logs': logs |
|
582 |
+ }) |
|
583 |
+ |
|
584 |
+def record_sale(request): |
|
585 |
+ brand_id = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_ID) |
|
586 |
+ admin_id = request.POST.get('admin_id', '') |
|
587 |
+ start_time = request.POST.get('start_time', '') |
|
588 |
+ end_time = request.POST.get('end_time', '') |
|
589 |
+ model_name = request.POST.get('model_name', '') |
|
590 |
+ clerk_name = request.POST.get('clerk_name', '') |
|
591 |
+ distributor_name = request.POST.get('distributor_name', '') |
|
592 |
+ |
|
593 |
+ if brand_id != settings.KODO_DEFAULT_BRAND_ID: |
|
594 |
+ return response(ProductBrandStatusCode.BRAND_NOT_MATCH) |
|
595 |
+ |
|
596 |
+ try: |
|
597 |
+ administrator = AdministratorInfo.objects.get(admin_id=admin_id, user_status=AdministratorInfo.ACTIVATED, status=True) |
|
598 |
+ except AdministratorInfo.DoesNotExist: |
|
599 |
+ return response(AdministratorStatusCode.ADMINISTRATOR_NOT_FOUND) |
|
600 |
+ |
|
601 |
+ logs = SaleclerkSubmitLogInfo.objects.filter(ymd__gte=start_time, ymd__lte=end_time, test_user=False, test_sn=False, model_uni_name__contains=model_name, clerk_name__contains=clerk_name, distributor_name__contains=distributor_name) |
|
602 |
+ |
|
603 |
+ logs = [log.admindata for log in logs] |
|
604 |
+ |
|
605 |
+ return response(200, 'Get Sale Record Success', u'获取销售员销售记录成功', data={ |
|
606 |
+ 'logs': logs |
|
607 |
+ }) |
@@ -309,6 +309,9 @@ urlpatterns += [ |
||
309 | 309 |
|
310 | 310 |
url(r'^admin/dashboard$', admin_views.dashboard, name='dashboard'), |
311 | 311 |
url(r'^admin/statistic/consumer$', admin_views.statistic_consumer, name='statistic_consumer'), |
312 |
+ |
|
313 |
+ url(r'^admin/record/consumer$', admin_views.record_consumer, name='record_consumer'), |
|
314 |
+ url(r'^admin/record/sale$', admin_views.record_sale, name='record_sale'), |
|
312 | 315 |
] |
313 | 316 |
|
314 | 317 |
urlpatterns += [ |
@@ -2,7 +2,8 @@ |
||
2 | 2 |
|
3 | 3 |
from django.db import models |
4 | 4 |
from django.utils.translation import ugettext_lazy as _ |
5 |
-from django_models_ext import BaseModelMixin, upload_path |
|
5 |
+from django_models_ext import BaseModelMixin, upload_path, upload_file_path, upload_file_url |
|
6 |
+from TimeConvert import TimeConvert as tc |
|
6 | 7 |
|
7 | 8 |
from mch.models import ModelInfo |
8 | 9 |
|
@@ -124,3 +125,30 @@ class SaleclerkSubmitLogInfo(BaseModelMixin): |
||
124 | 125 |
|
125 | 126 |
def __unicode__(self): |
126 | 127 |
return unicode(self.pk) |
128 |
+ |
|
129 |
+ @property |
|
130 |
+ def image_path(self): |
|
131 |
+ return upload_file_path(self.image) |
|
132 |
+ |
|
133 |
+ @property |
|
134 |
+ def image_url(self): |
|
135 |
+ return upload_file_url(self.image) |
|
136 |
+ |
|
137 |
+ @property |
|
138 |
+ def admindata(self): |
|
139 |
+ return { |
|
140 |
+ 'pk': self.pk, |
|
141 |
+ 'model_name': self.model_name, |
|
142 |
+ 'model_uni_name': self.model_uni_name, |
|
143 |
+ 'code': self.code, |
|
144 |
+ 'trackingNo': self.trackingNo, |
|
145 |
+ 'is_staff_delete': self.is_staff_delete, |
|
146 |
+ 'code_version': self.code_version, |
|
147 |
+ 'clerk_name': self.clerk_name, |
|
148 |
+ 'distributor_name': self.distributor_name, |
|
149 |
+ 'remark': self.remark, |
|
150 |
+ 'dupload': self.dupload, |
|
151 |
+ 'has_scan': self.has_scan, |
|
152 |
+ 'image': self.image_url, |
|
153 |
+ 'created_at': tc.local_string(utc_dt=self.created_at, format='%Y-%m-%d'), |
|
154 |
+ } |
@@ -695,6 +695,20 @@ class ConsumeInfoSubmitLogInfo(BaseModelMixin): |
||
695 | 695 |
'dupload': self.dupload, |
696 | 696 |
'created_at': tc.local_string(utc_dt=self.created_at, format='%Y-%m-%d'), |
697 | 697 |
} |
698 |
+ |
|
699 |
+ @property |
|
700 |
+ def admindata(self): |
|
701 |
+ return { |
|
702 |
+ 'pk': self.pk, |
|
703 |
+ 'user_id': self.user_id, |
|
704 |
+ 'model_name': self.model_name, |
|
705 |
+ 'model_uni_name': self.model_uni_name, |
|
706 |
+ 'serialNo': self.serialNo, |
|
707 |
+ 'phone': self.phone, |
|
708 |
+ 'code_version': self.code_version, |
|
709 |
+ 'dupload': self.dupload, |
|
710 |
+ 'created_at': tc.local_string(utc_dt=self.created_at, format='%Y-%m-%d'), |
|
711 |
+ } |
|
698 | 712 |
|
699 | 713 |
|
700 | 714 |
class ActivityInfo(BaseModelMixin): |