cqpCow 11 mesiacov pred
rodič
commit
f5aa50b7e0

+ 13 - 0
app/Http/Controllers/Api/SalesOrderController.php

@@ -109,4 +109,17 @@ class SalesOrderController extends BaseController
             return $this->json_return(201,$data);
         }
     }
+
+    public function batchConfirm(Request $request)
+    {
+        $service = new SalesOrderService();
+        $userData = $request->userData->toArray();
+        list($status,$data) = $service->batchConfirm($request->all(),$userData);
+
+        if($status){
+            return $this->json_return(200,'',$data);
+        }else{
+            return $this->json_return(201,$data);
+        }
+    }
 }

+ 2 - 0
app/Model/OrderOperation.php

@@ -38,6 +38,7 @@ class OrderOperation extends Model
     const twenty_two = 22;
     const twenty_three = 23;
     const twenty_four = 24;
+    const twenty_five = 25;
 
     public static $type = [
         self::zero => '系统设置变更 ',
@@ -65,5 +66,6 @@ class OrderOperation extends Model
         self::twenty_two => '收付款单弃审',
         self::twenty_three => '客户分配',
         self::twenty_four => '客户移交',
+        self::twenty_five => '合同批量确认',
     ];
 }

+ 13 - 0
app/Service/OrderOperationService.php

@@ -14,4 +14,17 @@ class OrderOperationService extends Service
         $model->type = $data['type'];
         $model->save();
     }
+
+    public function batchAdd($data,$user){
+        $insert = [];
+        foreach ($data['order_number'] as $value){
+            $insert[] = [
+                'order_number' => $value,
+                'msg' => $data['msg'],
+                'user_id' => $user['id'] ?? 0,
+                'type' => $data['type']
+            ];
+        }
+        OrderOperation::insert($insert);
+    }
 }

+ 28 - 0
app/Service/SalesOrderService.php

@@ -1434,4 +1434,32 @@ class SalesOrderService extends Service
 
         return $state;
     }
+
+    public function batchConfirm($data,$user){
+        if(empty($data['order_number']) || ! is_array($data['order_number'])) return [false, '批量确认数据不正确'];
+
+        $result = SalesOrder::where('del_time',0)
+            ->whereIn('order_number',$data['order_number'])
+            ->select('state','order_number','model_type')
+            ->get()->toArray();
+        if(empty($result)) return [false, '未找到数据'];
+        $result = array_column($result,null,'order_number');
+
+        foreach ($data as $value){
+            if(! isset($result[$value['order_number']])) return [false, $value['order_number'] . '不存在或已被删除'];
+            $tmp =  $result[$value['order_number']];
+            if($tmp['model_type'] != SalesOrder::Model_type_four) return [false, '单据'. $value['order_number'] . '非线上订单,操作失败'];
+            if($tmp['state'] != SalesOrder::State_zero) return [false, '请确认单据'. $value['order_number'] . '的状态,操作失败'];
+        }
+
+        SalesOrder::whereIn('order_number',$data['order_number'])->update(['state' => SalesOrder::State_two]);
+
+        (new OrderOperationService())->batchAdd([
+            'order_number' => $data['order_number'],
+            'msg' => OrderOperation::$type[OrderOperation::twenty_five],
+            'type' => OrderOperation::twenty_five
+        ],$user);
+
+        return [true, ''];
+    }
 }

+ 1 - 0
routes/api.php

@@ -180,6 +180,7 @@ Route::group(['middleware'=> ['checkLogin']],function ($route){
     $route->any('takeOrderDel', 'Api\TakeOrderController@takeOrderDel');
 
     //合同
+    $route->any('batchConfirm', 'Api\SalesOrderController@batchConfirm');
     $route->any('salesOrderGet', 'Api\SalesOrderController@salesOrderGet');
     $route->any('salesOrderList', 'Api\SalesOrderController@salesOrderList');
     $route->any('salesOrderEdit', 'Api\SalesOrderController@salesOrderEdit');