Browse Source

订单取消与完成

lizhen_gitee 1 year ago
parent
commit
0ee316168a

+ 30 - 12
application/admin/controller/Order.php

@@ -4,6 +4,7 @@ namespace app\admin\controller;
 
 use app\common\controller\Backend;
 use think\Db;
+use app\common\service\UserService;
 /**
  * 用户订单
  *
@@ -141,20 +142,20 @@ class Order extends Backend
             return $this->view->fetch();
         }
 
-        $reason = input('reason','');
+        $reason = input('cancel_reason','');
 
-        $info = Db::name('order')->where('id',$id)->where('company_id',$this->auth->company_id)->find();
+        $info = Db::name('order')->where('id',$id)->find();
         if($info['status'] == 4){
             $this->error('当前订单已经取消');
         }
-        if($info['status'] != 0 && $info['status'] != 2){
+        if($info['status'] != 2){
             $this->error('当前订单状态不能取消');
         }
         if($info['ordertype'] == 3){
             $this->error('套餐订单不能取消');
         }
         $time = time();
-        //同步到预约单
+        //同步到预约单,这一步不该有
         if (!empty($info['pre_order_id'])) {
             $preOrderWhere['id'] = $info['pre_order_id'];
             $preOrder = Db::name('pre_order')->where($preOrderWhere)->find();
@@ -185,20 +186,38 @@ class Order extends Backend
      */
     public function finish(){
         $id = input('id',0);
+        if(!$this->request->ispost()){
+            $this->assign('id',$id);
+            $info = Db::name('order')->where('id',$id)->find();
+            $this->assign('info',$info);
+            $this->assign('staff_id',$this->auth->staff_id);
+
+            //是否弹出保养
+            $baoyang_switch = Db::name('servicetype')->where('id',$info['servicetype_id'])->value('baoyang_switch');
+            $this->assign('baoyang_switch',$baoyang_switch);
+
+            return $this->view->fetch();
+        }
 
         Db::startTrans();
-        $info = Db::name('order')->where('id',$id)->where('company_id',$this->auth->company_id)->lock(true)->find();
+        $info = Db::name('order')->where('id',$id)->lock(true)->find();
         if($info['status'] != 2){
             Db::rollback();
             $this->error('当前订单不能完成');
         }
 
+        //保养更新
+        $next_date       = input('next_date','');
+        $next_carlicheng = input('next_carlicheng','');
+        $baoyang_data = [
+            'next_date'       => $next_date,
+            'next_carlicheng' => $next_carlicheng,
+        ];
+
         //完成
         $time = time();
-        $updateData = ['status'=>3,'finish_time'=>time(),'staff_id'=>$this->auth->id];
-        if (empty($info['hexiao_time'])) {
-            $updateData['hexiao_time'] = $time;
-        }
+        $updateData = ['status'=>3,'finish_time'=>time(),'staff_id'=>$this->auth->staff_id];
+        $updateData = array_merge($updateData,$baoyang_data);
         $rs = Db::name('order')->where('id',$id)->update($updateData);
         if($rs === false){
             Db::rollback();
@@ -219,10 +238,9 @@ class Order extends Backend
         $userService = new UserService();
         $params['order_id'] = $id;
         $userService->msgOrder($params);
-        //是否弹出保养
-        $baoyang_switch = Db::name('servicetype')->where('id',$info['servicetype_id'])->value('baoyang_switch');
 
-        $this->success('操作成功',$baoyang_switch);
+
+        $this->success('操作成功');
     }
 
 }

+ 19 - 0
application/admin/view/order/cancel.html

@@ -0,0 +1,19 @@
+<form id="edit-form" class="form-horizontal" role="form" data-toggle="validator" method="POST" action="">
+
+    <input type="hidden" name="id" value="{$id}">
+
+    <div class="form-group">
+        <label class="control-label col-xs-12 col-sm-2">{:__('Cancel_reason')}:</label>
+        <div class="col-xs-12 col-sm-8">
+            <input id="c-cancel_reason" class="form-control" name="cancel_reason" type="text" value="">
+        </div>
+    </div>
+
+    <div class="form-group layer-footer">
+        <label class="control-label col-xs-12 col-sm-2"></label>
+        <div class="col-xs-12 col-sm-8">
+            <button type="submit" class="btn btn-primary btn-embossed disabled">{:__('OK')}</button>
+            <button type="reset" class="btn btn-default btn-embossed">{:__('Reset')}</button>
+        </div>
+    </div>
+</form>

+ 40 - 0
application/admin/view/order/finish.html

@@ -0,0 +1,40 @@
+<form id="edit-form" class="form-horizontal" role="form" data-toggle="validator" method="POST" action="">
+
+    <input type="hidden" name="id" value="{$id}">
+
+    <div class="form-group">
+        <label class="control-label col-xs-12 col-sm-2">{:__('Orderno')}:</label>
+        <div class="col-xs-12 col-sm-8">
+            <input  class="form-control" disabled type="text" value="{$info.orderno}">
+        </div>
+    </div>
+    <div class="form-group">
+        <label class="control-label col-xs-12 col-sm-2">操作店员:</label>
+        <div class="col-xs-12 col-sm-8">
+            <input id="c-staff_id" data-rule="required" disabled data-source="company_staff/index" data-field="truename" class="form-control selectpage" type="text" value="{$staff_id|htmlentities}">
+        </div>
+    </div>
+
+    <?php if($baoyang_switch == 1){ ?>
+        <div class="form-group">
+            <label class="control-label col-xs-12 col-sm-2">{:__('Next_date')}:</label>
+            <div class="col-xs-12 col-sm-8">
+                <input id="c-next_date" class="form-control" type="text" name="next_date" value="">
+            </div>
+        </div>
+        <div class="form-group">
+            <label class="control-label col-xs-12 col-sm-2">{:__('Next_carlicheng')}:</label>
+            <div class="col-xs-12 col-sm-8">
+                <input id="c-next_carlicheng" class="form-control" type="text" name="next_carlicheng" value="">
+            </div>
+        </div>
+    <?php } ?>
+
+    <div class="form-group layer-footer">
+        <label class="control-label col-xs-12 col-sm-2"></label>
+        <div class="col-xs-12 col-sm-8">
+            <button type="submit" class="btn btn-primary btn-embossed disabled">{:__('OK')}</button>
+            <button type="reset" class="btn btn-default btn-embossed">{:__('Reset')}</button>
+        </div>
+    </div>
+</form>

+ 3 - 5
application/api/controller/company/Order.php

@@ -100,14 +100,14 @@ class Order extends Apic
         if($info['status'] == 4){
             $this->error('当前订单已经取消');
         }
-        if($info['status'] != 0 && $info['status'] != 2){
+        if($info['status'] != 2){
             $this->error('当前订单状态不能取消');
         }
         if($info['ordertype'] == 3){
             $this->error('套餐订单不能取消');
         }
         $time = time();
-        //同步到预约单
+        //同步到预约单,这一步不该有
         if (!empty($info['pre_order_id'])) {
             $preOrderWhere['id'] = $info['pre_order_id'];
             $preOrder = Db::name('pre_order')->where($preOrderWhere)->find();
@@ -147,9 +147,7 @@ class Order extends Apic
         //完成
         $time = time();
         $updateData = ['status'=>3,'finish_time'=>time(),'staff_id'=>$this->auth->id];
-        if (empty($info['hexiao_time'])) {
-            $updateData['hexiao_time'] = $time;
-        }
+
         $rs = Db::name('order')->where('id',$id)->update($updateData);
         if($rs === false){
             Db::rollback();

+ 14 - 2
public/assets/js/backend/order.js

@@ -84,7 +84,7 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
                                     title:'取消',
                                     icon:'fa fa-exclamation-circle',
                                     classname:'btn btn-xs btn-info btn-dialog',
-                                    url:'order/cancel/order_id/{ids}?dialog=1',
+                                    url:'order/cancel/id/{ids}?dialog=1',
                                     target:'_self',
                                     extend: 'data-area=["90%","90%"]',
                                     hidden:function($row){
@@ -100,9 +100,15 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
                                     title:'完成',
                                     icon:'fa fa-exclamation-circle',
                                     classname:'btn btn-xs btn-info btn-dialog',
-                                    url:'order/finish/order_id/{ids}?dialog=1',
+                                    url:'order/finish/id/{ids}?dialog=1',
                                     target:'_self',
                                     extend: 'data-area=["90%","90%"]',
+                                    hidden:function($row){
+                                        if($row['status'] == 2){
+                                            return false;
+                                        }
+                                        return true;
+                                    }
                                 },
 
                             ],
@@ -123,6 +129,12 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
         submitordernew: function () {
             Controller.api.bindevent();
         },
+        cancel: function () {
+            Controller.api.bindevent();
+        },
+        finish: function () {
+            Controller.api.bindevent();
+        },
         api: {
             bindevent: function () {
                 Form.api.bindevent($("form[role=form]"));