增加入库记录接口 admin/record/warehouse

FFIB 4 lat temu
rodzic
commit
7a95967acf
3 zmienionych plików z 59 dodań i 1 usunięć
  1. 39 1
      api/admin_views.py
  2. 1 0
      api/urls.py
  3. 19 0
      logs/models.py

+ 39 - 1
api/admin_views.py

@@ -18,6 +18,7 @@ from coupon.models import UserCouponInfo
18 18
 from integral.models import SaleclerkSubmitLogInfo
19 19
 from mch.models import AdministratorInfo, ConsumeInfoSubmitLogInfo, ModelInfo, DistributorInfo
20 20
 from member.models import GoodsOrderInfo
21
+from logs.models import MchInfoEncryptLogInfo
21 22
 from statistic.models import ConsumeModelSaleStatisticInfo, ConsumeSaleStatisticInfo, ConsumeUserStatisticInfo
22 23
 from utils.error.errno_utils import (AdministratorStatusCode, ProductBrandStatusCode, ProductCouponStatusCode,
23 24
                                      ProductMachineStatusCode, UserStatusCode)
@@ -721,4 +722,41 @@ def member_goods_order_update(request):
721 722
     GoodsOrderInfo.objects.filter(pk=order_id, status=True).update(tracking_number=tracking_number)
722 723
 
723 724
     return response(200, 'Get Member Goods Order Update Success', u'获取会员商品订单修改成功')
724
-    
725
+
726
+def record_warehouse(request):
727
+    brand_id = request.POST.get('brand_id', settings.KODO_DEFAULT_BRAND_ID)
728
+    admin_id = request.POST.get('admin_id', '')
729
+    model_name = request.POST.get('model_name', '')
730
+    sn = request.POST.get('sn', '')
731
+    start_time = request.POST.get('start_time', '')
732
+    end_time = request.POST.get('end_time', '')
733
+    page = request.POST.get('page', 1)
734
+    num = request.POST.get('num', 20)
735
+
736
+    if brand_id != settings.KODO_DEFAULT_BRAND_ID:
737
+        return response(ProductBrandStatusCode.BRAND_NOT_MATCH)
738
+
739
+    try:
740
+        administrator = AdministratorInfo.objects.get(admin_id=admin_id, user_status=AdministratorInfo.ACTIVATED, status=True)
741
+    except AdministratorInfo.DoesNotExist:
742
+        return response(AdministratorStatusCode.ADMINISTRATOR_NOT_FOUND)
743
+    
744
+    models = ModelInfo.objects.filter(model_name__icontains=model_name, status=True).values_list('pk', flat=True)
745
+    logs = MchInfoEncryptLogInfo.objects.filter(model_pk__in=models, sn__icontains=sn, status=True)
746
+
747
+    if start_time and end_time:
748
+        start_time = datetime.strptime(start_time, '%Y%m%d')
749
+        end_time = datetime.strptime(end_time+' 23:59:59', '%Y%m%d %H:%M:%S')
750
+        logs = logs.filter(created_at__range=(start_time, end_time))
751
+    
752
+    logs = logs.order_by('-created_at')
753
+    
754
+    count = logs.count()
755
+    logs, left = pagination(logs, page, num)
756
+    logs = [log.admindata for log in logs]
757
+
758
+    return response(200, 'Get Warehouse Record Success', u'获取入库记录成功', data={
759
+        'logs': logs,
760
+        'left': left,
761
+        'count': count
762
+    })

+ 1 - 0
api/urls.py

@@ -319,6 +319,7 @@ urlpatterns += [
319 319
 
320 320
     url(r'^admin/record/consumer$', admin_views.record_consumer, name='record_consumer'),
321 321
     url(r'^admin/record/sale$', admin_views.record_sale, name='record_sale'),
322
+    url(r'^admin/record/warehouse$', admin_views.record_warehouse, name='record_warehouse'),
322 323
 
323 324
     url(r'^admin/list/model$', admin_views.model_list, name='model_list'),
324 325
     url(r'^admin/list/distributor$', admin_views.distributor_list, name='distributor_list'),

+ 19 - 0
logs/models.py

@@ -3,7 +3,9 @@
3 3
 from django.db import models
4 4
 from django.utils.translation import ugettext_lazy as _
5 5
 from django_models_ext import BaseModelMixin, upload_file_url, upload_path
6
+from mch.models import ModelInfo, OperatorInfo
6 7
 from shortuuidfield import ShortUUIDField
8
+from TimeConvert import TimeConvert as tc
7 9
 
8 10
 
9 11
 class MchInfoEncryptLogInfo(BaseModelMixin):
@@ -34,6 +36,23 @@ class MchInfoEncryptLogInfo(BaseModelMixin):
34 36
 
35 37
     def __unicode__(self):
36 38
         return unicode(self.pk)
39
+    
40
+    @property
41
+    def admindata(self):
42
+        model = ModelInfo.objects.get(pk=self.model_pk, status=True)
43
+        try:
44
+            operator_name = OperatorInfo.objects.get(operator_id=self.operator_id).name
45
+        except:
46
+            operator_name = '深圳捷成'
47
+
48
+        return {
49
+            'sn': self.sn,
50
+            'model_pk': self.model_pk,
51
+            'model_uni_name': model.model_uni_name,
52
+            'model_name': model.model_name,
53
+            'operator_name': operator_name,
54
+            'created_at': tc.local_string(utc_dt=self.created_at, format='%Y-%m-%d %H:%M:%S')
55
+        }
37 56
 
38 57
 
39 58
 class MchInfoDecryptLogInfo(BaseModelMixin):