Change clerk sale two steps

Brightcells 7 anos atrás
pai
commit
7de87ec340

+ 13 - 5
page/sale_views.py

@@ -36,6 +36,8 @@ def clerk_sale_oauth(request):
36 36
 @transaction.atomic
37 37
 def clerk_sale_submit_api(request):
38 38
     """ 店员信息提交 """
39
+    step = int(request.POST.get('step', 1))
40
+
39 41
     clerk_id = request.POST.get('clerk_id', '')
40 42
     model_id = request.POST.get('model_id', '')
41 43
     code = request.POST.get('code', '')
@@ -80,18 +82,24 @@ def clerk_sale_submit_api(request):
80 82
         return response(ProductStatusCode.PRODUCT_NOT_FOUND)
81 83
 
82 84
     # 产品是否使用
83
-    if product.code_status:
85
+    if step == 1 and product.code_status:
84 86
         return response(ProductStatusCode.PRODUCT_HAS_USED)
87
+    if step == 2 and not product.code_status:
88
+        return response(ProductStatusCode.PRODUCT_NOT_USED)
85 89
 
86 90
     # 产品使用
87 91
     product.code_status = True
88 92
     product.integral_status = True
89 93
     product.franchiser_id = clerk.franchiser_id
90 94
     product.clerk_id = clerk.clerk_id
91
-    product.consumer_name = name
92
-    product.consumer_sex = sex
93
-    product.consumer_age = age
94
-    product.consumer_phone = phone
95
+    if name:
96
+        product.consumer_name = name
97
+    if sex:
98
+        product.consumer_sex = sex
99
+    if age:
100
+        product.consumer_age = age
101
+    if phone:
102
+        product.consumer_phone = phone
95 103
     product.save()
96 104
 
97 105
     # 店员积分

+ 1 - 1
page/templates/page/clerk_info.html

@@ -7,7 +7,7 @@
7 7
         <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
8 8
         <meta name="format-detection" content="telephone=no,email=no,address=no">
9 9
         <meta name="viewport" content="width=device-width,initial-scale=1.0,user-scalable=no">
10
-        <title>店员信息</title>
10
+        <title>我的积分</title>
11 11
 
12 12
         <link href="https://res.wx.qq.com/open/libs/weui/0.4.3/weui.min.css" rel="stylesheet" type="text/css" />
13 13
 

+ 126 - 54
page/templates/page/clerk_sale.html

@@ -22,67 +22,75 @@
22 22
     </head>
23 23
     <body>
24 24
         <div class="container" >
25
-            <div class="weui_cells_title">机器信息</div>
26
-            <div class="weui_cells weui_cells_form">
27
-                <div class="weui_cell weui_cell_select weui_select_after">
28
-                    <div class="weui_cell_hd"><label for="" class="weui_label">型号</label></div>
29
-                    <div class="weui_cell_bd weui_cell_primary">
30
-                        <select id="model" class="weui_select" name="select">
31
-                            {% for model in models %}
32
-                            <option value="{{ model.model_id }}">{{ model.model_name }}</option>
33
-                            {% endfor %}
34
-                        </select>
25
+            <div id="machine_info">
26
+                <div class="weui_cells_title">机器信息</div>
27
+                <div class="weui_cells weui_cells_form">
28
+                    <div class="weui_cell weui_cell_select weui_select_after">
29
+                        <div class="weui_cell_hd"><label for="" class="weui_label">型号</label></div>
30
+                        <div class="weui_cell_bd weui_cell_primary">
31
+                            <select id="model" class="weui_select" name="select">
32
+                                {% for model in models %}
33
+                                <option value="{{ model.model_id }}">{{ model.model_name }}</option>
34
+                                {% endfor %}
35
+                            </select>
36
+                        </div>
35 37
                     </div>
36
-                </div>
37
-                <div class="weui_cell">
38
-                    <div class="weui_cell_hd"><label for="" class="weui_label">机身码</label></div>
39
-                    <div class="weui_cell_bd weui_cell_primary">
40
-                        <input id="code" class="weui_input" type="text" value="" placeholder="请输入机身码">
38
+                    <div class="weui_cell">
39
+                        <div class="weui_cell_hd"><label for="" class="weui_label">机身码</label></div>
40
+                        <div class="weui_cell_bd weui_cell_primary">
41
+                            <input id="code" class="weui_input" type="text" value="" placeholder="请输入机身码">
42
+                        </div>
43
+                        <a id="scan" href="javascript:;" class="weui_btn weui_btn_mini weui_btn_default">扫码</a>
41 44
                     </div>
42
-                    <a id="scan" href="javascript:;" class="weui_btn weui_btn_mini weui_btn_default">扫码</a>
43 45
                 </div>
46
+
47
+                <br>
48
+
49
+                <button id="submit1" class="weui_btn weui_btn_warn">确认</button>
44 50
             </div>
45 51
 
46
-            <div class="weui_cells_title">消费者信息</div>
47
-            <div class="weui_cells weui_cells_form">
48
-                <div class="weui_cell">
49
-                    <div class="weui_cell_hd"><label for="" class="weui_label">姓名</label></div>
50
-                    <div class="weui_cell_bd weui_cell_primary">
51
-                        <input id="name" class="weui_input" type="text" value="" placeholder="请输入消费者姓名">
52
+            <div id="customer_info" style="display: none;">
53
+                <div class="weui_cells_title">消费者信息</div>
54
+                <div class="weui_cells weui_cells_form">
55
+                    <div class="weui_cell">
56
+                        <div class="weui_cell_hd"><label for="" class="weui_label">姓名</label></div>
57
+                        <div class="weui_cell_bd weui_cell_primary">
58
+                            <input id="name" class="weui_input" type="text" value="" placeholder="请输入消费者姓名">
59
+                        </div>
52 60
                     </div>
53
-                </div>
54
-                <div class="weui_cell weui_cell_select weui_select_after">
55
-                    <div class="weui_cell_hd"><label for="" class="weui_label">性别</label></div>
56
-                    <div class="weui_cell_bd weui_cell_primary">
57
-                        <select id="sex" class="weui_select" name="select">
58
-                            <option value="1">男</option>
59
-                            <option value="0">女</option>
60
-                        </select>
61
+                    <div class="weui_cell weui_cell_select weui_select_after">
62
+                        <div class="weui_cell_hd"><label for="" class="weui_label">性别</label></div>
63
+                        <div class="weui_cell_bd weui_cell_primary">
64
+                            <select id="sex" class="weui_select" name="select">
65
+                                <option value="1">男</option>
66
+                                <option value="0">女</option>
67
+                            </select>
68
+                        </div>
61 69
                     </div>
62
-                </div>
63
-                <div class="weui_cell weui_cell_select weui_select_after">
64
-                    <div class="weui_cell_hd"><label for="" class="weui_label">年龄</label></div>
65
-                    <div class="weui_cell_bd weui_cell_primary">
66
-                        <select id="age" class="weui_select" name="select">
67
-                            <option value="1">20周岁以下</option>
68
-                            <option value="2">20~30周岁</option>
69
-                            <option value="3">30~40周岁</option>
70
-                            <option value="4">40~50周岁</option>
71
-                            <option value="5">50周岁以上</option>
72
-                        </select>
70
+                    <div class="weui_cell weui_cell_select weui_select_after">
71
+                        <div class="weui_cell_hd"><label for="" class="weui_label">年龄</label></div>
72
+                        <div class="weui_cell_bd weui_cell_primary">
73
+                            <select id="age" class="weui_select" name="select">
74
+                                <option value="1">20周岁以下</option>
75
+                                <option value="2">20~30周岁</option>
76
+                                <option value="3">30~40周岁</option>
77
+                                <option value="4">40~50周岁</option>
78
+                                <option value="5">50周岁以上</option>
79
+                            </select>
80
+                        </div>
73 81
                     </div>
74
-                </div>
75
-                <div class="weui_cell">
76
-                    <div class="weui_cell_hd"><label for="" class="weui_label">手机号</label></div>
77
-                    <div class="weui_cell_bd weui_cell_primary">
78
-                        <input id="phone" class="weui_input" type="text" required="required" pattern="[0-9]{11}" value="" placeholder="请输入消费者手机号">
82
+                    <div class="weui_cell">
83
+                        <div class="weui_cell_hd"><label for="" class="weui_label">手机号</label></div>
84
+                        <div class="weui_cell_bd weui_cell_primary">
85
+                            <input id="phone" class="weui_input" type="text" required="required" pattern="[0-9]{11}" value="" placeholder="请输入消费者手机号">
86
+                        </div>
79 87
                     </div>
80 88
                 </div>
81
-            </div>
82 89
 
83
-            <br>
90
+                <br>
84 91
 
85
-            <button id="submit" class="weui_btn weui_btn_warn">确认</button>
92
+                <button id="submit2" class="weui_btn weui_btn_warn">确认</button>
93
+            </div>
86 94
 
87 95
             <div class="weui_dialog_alert" id="dialog" style="display: none">
88 96
                 <div class="weui_mask"></div>
@@ -95,6 +103,17 @@
95 103
                 </div>
96 104
             </div>
97 105
 
106
+            <div class="weui_dialog_alert" id="dialog2" style="display: none">
107
+                <div class="weui_mask"></div>
108
+                <div class="weui_dialog">
109
+                    <div class="weui_dialog_hd"><strong id="title" class="weui_dialog_title">弹窗标题</strong></div>
110
+                    <div id="content" class="weui_dialog_bd">弹窗内容,告知当前页面信息等</div>
111
+                    <div class="weui_dialog_ft">
112
+                        <a href="javascript:;" class="weui_btn_dialog primary">确定</a>
113
+                    </div>
114
+                </div>
115
+            </div>
116
+
98 117
             <div id="toast" style="display: none;">
99 118
                 <div class="weui_mask_transparent"></div>
100 119
                 <div class="weui_toast">
@@ -113,6 +132,12 @@
113 132
                     $('#dialog').show();
114 133
                 }
115 134
 
135
+                function show_error_dialog2(title, content) {
136
+                    $('#dialog2 #title').text(title);
137
+                    $('#dialog2 #content').text(content);
138
+                    $('#dialog2').show();
139
+                }
140
+
116 141
                 function data_check() {
117 142
                     var clerk_id = "{{ clerk_info.clerk_id }}";
118 143
                     if (!clerk_id) {
@@ -126,6 +151,27 @@
126 151
                         return false;
127 152
                     }
128 153
 
154
+                    return {
155
+                        step: 1,
156
+                        clerk_id: clerk_id,
157
+                        model_id: $('#model option:checked').val(),
158
+                        code: code,
159
+                    }
160
+                }
161
+
162
+                function data_check2() {
163
+                    var clerk_id = "{{ clerk_info.clerk_id }}";
164
+                    if (!clerk_id) {
165
+                        show_error_dialog('微信授权', '微信授权失败,请重新打开页面');
166
+                        return false;
167
+                    }
168
+
169
+                    var code = $('#code').val();
170
+                    if (!code) {
171
+                        show_error_dialog('机身码', '机身码错误,请检查重新输入');
172
+                        return false;
173
+                    }
174
+
129 175
                     var name = $('#name').val();
130 176
                     if (!name) {
131 177
                         show_error_dialog('姓名', '姓名错误,请检查重新输入');
@@ -139,6 +185,7 @@
139 185
                     }
140 186
 
141 187
                     return {
188
+                        step: 2,
142 189
                         clerk_id: clerk_id,
143 190
                         model_id: $('#model option:checked').val(),
144 191
                         code: code,
@@ -149,7 +196,7 @@
149 196
                     }
150 197
                 }
151 198
 
152
-                $('#submit').click(function () {
199
+                $('#submit1').click(function () {
153 200
                     var check_result = data_check();
154 201
                     if (check_result){
155 202
                         $.ajax({
@@ -158,10 +205,29 @@
158 205
                             data: check_result,
159 206
                             success: function(data) {
160 207
                                 if (data.status == 200) {
161
-                                    $('#toast').show();
162
-                                    setTimeout(function () {
163
-                                        $('#toast').hide();
164
-                                    }, 1000);
208
+{#                                    $('#toast').show();#}
209
+{#                                    setTimeout(function () {#}
210
+{#                                        $('#toast').hide();#}
211
+{#                                    }, 1000);#}
212
+                                    show_error_dialog2('成功', '机器信息提交成功');
213
+                                } else {
214
+                                    show_error_dialog('错误', data.description);
215
+                                }
216
+                            }
217
+                        })
218
+                    }
219
+                });
220
+
221
+                $('#submit2').click(function () {
222
+                    var check_result = data_check2();
223
+                    if (check_result){
224
+                        $.ajax({
225
+                            type: 'POST',
226
+                            url: '{{ domain }}api/clerk/sale/submit',
227
+                            data: check_result,
228
+                            success: function(data) {
229
+                                if (data.status == 200) {
230
+                                    show_error_dialog('成功', '消费者信息提交成功');
165 231
                                 } else {
166 232
                                     show_error_dialog('错误', data.description);
167 233
                                 }
@@ -173,6 +239,12 @@
173 239
                 $('#dialog .weui_btn_dialog').click(function () {
174 240
                     $('#dialog').hide();
175 241
                 })
242
+
243
+                $('#dialog2 .weui_btn_dialog').click(function () {
244
+                    $('#dialog2').hide();
245
+                    $('#machine_info').hide();
246
+                    $('#customer_info').show();
247
+                })
176 248
             });
177 249
         </script>
178 250
         <script type="text/javascript" src="http://res.wx.qq.com/open/js/jweixin-1.0.0.js"></script>

+ 1 - 0
utils/error/errno_utils.py

@@ -28,6 +28,7 @@ class ProductStatusCode(BaseStatusCode):
28 28
     PRODUCT_NOT_FOUND = StatusCodeField(402001, 'Product Not Found', description=u'产品不存在')
29 29
     # 状态
30 30
     PRODUCT_HAS_USED = StatusCodeField(402011, 'Product Has Used', description=u'产品已使用')
31
+    PRODUCT_NOT_USED = StatusCodeField(402012, 'Product Not Used', description=u'产品未使用')
31 32
 
32 33
 
33 34
 class OrderStatusCode(BaseStatusCode):