cqpCow 1 tahun lalu
induk
melakukan
e29bc1726c

+ 2 - 1
app/Http/Controllers/Api/SalesOrderController.php

@@ -86,7 +86,8 @@ class SalesOrderController extends BaseController
     public function salesOrderDispatchSale(Request $request)
     {
         $service = new SalesOrderService();
-        list($status,$data) = $service->salesOrderDispatchSale($request->all());
+        $userData = $request->userData->toArray();
+        list($status,$data) = $service->salesOrderDispatchSale($request->all(),$userData);
 
         if($status){
             return $this->json_return(200,'',$data);

+ 33 - 7
app/Service/SalesOrderService.php

@@ -839,17 +839,26 @@ class SalesOrderService extends Service
      * @param $data
      * @return array
      */
-    public function salesOrderDispatchSale($data){
-        list($status,$msg) = $this->salesOrderDispatchSaleRule($data);
+    public function salesOrderDispatchSale($data, $user){
+        list($status,$msg) = $this->salesOrderDispatchSaleRule($data, $user);
         if(! $status) return [false,$msg];
 
         try {
             DB::beginTransaction();
             $time = time();
-            SalesOrder::where('del_time',0)->where('id',$msg['id'])->update([
-                'state' => SalesOrder::State_three,
-                'dispatch_time_first' => $time,
-            ]);
+
+            if(empty($data['is_company'])){
+                SalesOrder::where('del_time',0)->where('id',$msg['id'])->update([
+                    'state' => SalesOrder::State_three,
+                    'dispatch_time_first' => $time,
+                ]);
+            }else{
+                SalesOrder::where('del_time',0)->where('id',$msg['id'])->update([
+                    'state' => SalesOrder::State_four,
+                    'dispatch_time_first' => $time,
+                    'dispatch_time_second' => $time,
+                ]);
+            }
 
             SeeRange::where('del_time',0)
                 ->where('data_id',$msg['id'])
@@ -885,6 +894,18 @@ class SalesOrderService extends Service
                 SeeRange::insert($insert);
             }
 
+            if(! empty($data['is_company'])){
+                $insert = [];
+                $insert[] = [
+                    'data_id' => $msg['id'],
+                    'data_type' => SeeRange::type_seven,
+                    'param_id' => $data['is_company'],
+                    'type' => SeeRange::data_three,
+                    'crt_time' => $time,
+                ];
+                SeeRange::insert($insert);
+            }
+
             DB::commit();
         }catch (\Exception $exception){
             DB::rollBack();
@@ -899,7 +920,7 @@ class SalesOrderService extends Service
      * @param $data
      * @return array
      */
-    public function salesOrderDispatchSaleRule($data){
+    public function salesOrderDispatchSaleRule(&$data, $user){
         if(empty($data['id'])) return [false,'请选择合同派单'];
         $sale = SalesOrder::where('del_time',0)
             ->where('id',$data['id'])
@@ -915,6 +936,11 @@ class SalesOrderService extends Service
         if(! $bool) return [false,'合同产品不能为空'];
         if(empty($data['dispatch_depart_one']) && empty($data['dispatch_employee'])) return [false, '请指派部门或人员'];
 
+        //如果是分社的合同 派销售以后直接 分社结束
+        $top_depart_id = $user['head'] ?? [];
+        $top_depart_id = $top_depart_id['id'] ?? 0;
+        if($top_depart_id != $sale['top_depart_id']) $data['is_company'] = $sale['top_depart_id'];
+
         return [true, $sale];
     }