cqpCow 1 år sedan
förälder
incheckning
53568ed895
2 ändrade filer med 56 tillägg och 11 borttagningar
  1. 14 2
      app/Http/Controllers/Api/SalesOrderController.php
  2. 42 9
      app/Service/SalesOrderService.php

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

@@ -83,10 +83,22 @@ class SalesOrderController extends BaseController
         }
     }
 
-    public function salesOrderDispatch(Request $request)
+    public function salesOrderDispatchSale(Request $request)
     {
         $service = new SalesOrderService();
-        list($status,$data) = $service->salesOrderDispatch($request->all());
+        list($status,$data) = $service->salesOrderDispatchSale($request->all());
+
+        if($status){
+            return $this->json_return(200,'',$data);
+        }else{
+            return $this->json_return(201,$data);
+        }
+    }
+
+    public function salesOrderDispatchCompany(Request $request)
+    {
+        $service = new SalesOrderService();
+        list($status,$data) = $service->salesOrderDispatchCompany($request->all());
 
         if($status){
             return $this->json_return(200,'',$data);

+ 42 - 9
app/Service/SalesOrderService.php

@@ -5,6 +5,7 @@ namespace App\Service;
 use App\Model\BasicType;
 use App\Model\Construction;
 use App\Model\Customer;
+use App\Model\Depart;
 use App\Model\Employee;
 use App\Model\Product;
 use App\Model\SalesOrder;
@@ -303,7 +304,7 @@ class SalesOrderService extends Service
         $sales = $sales->toArray();
         $customer = Customer::where('id',$sales['customer_id'])->value('title');
         $sales['customer_title'] = $customer;
-        $sales['employee_one'] = $sales['employee_two'] = $sales['employee_three'] = $sales['product'] = [];
+        $sales['employee_one'] = $sales['employee_two'] = $sales['employee_three'] = $sales['product'] = $sales['dispatch_depart_one'] = $sales['dispatch_employee'] = $sales['dispatch_depart_two'] = [];
         $array = [
             $sales['order_type'],
             $sales['deal_type'],
@@ -360,6 +361,38 @@ class SalesOrderService extends Service
         $sales['crt_name'] = $emp_map[$sales['crt_id']] ?? '';
         $sales['crt_time'] = $sales['crt_time'] ? date("Y-m-d H:i:s",$sales['crt_time']): '';
 
+        //派单后数据
+        $range = SalesOrderRange::where('del_time',0)
+            ->where('sales_order_id',$data['id'])
+            ->get()->toArray();
+        $emp_map = Employee::whereIn('id',array_unique(array_column($range,'employee_id')))
+            ->pluck('emp_name','id')
+            ->toArray();
+        $depart_map = Depart::whereIn('id',array_unique(array_column($range,'depart_id')))
+            ->pluck('title','id')
+            ->toArray();
+        foreach ($range as $value){
+            if($value['type'] == SalesOrderRange::type_one){
+                $tmp = [
+                    'id' => $value['depart_id'],
+                    'name' => $depart_map[$value['depart_id']],
+                ];
+                $sales['dispatch_depart_one'][] = $tmp;
+            }elseif ($value['type'] == SalesOrderRange::type_two){
+                $tmp = [
+                    'id' => $value['employee_id'],
+                    'name' => $emp_map[$value['employee_id']] ?? '',
+                ];
+                $sales['dispatch_employee'][] = $tmp;
+            }elseif ($value['type'] == SalesOrderRange::type_three){
+                $tmp = [
+                    'id' => $value['employee_id'],
+                    'name' => $depart_map[$value['depart_id']],
+                ];
+                $sales['dispatch_depart_two'][] = $tmp;
+            }
+        }
+
         return [true, $sales];
     }
 
@@ -569,9 +602,9 @@ class SalesOrderService extends Service
                 'del_time' => $time
             ]);
 
-            if(! empty($data['depart'])){
+            if(! empty($data['dispatch_depart_one'])){
                 $insert = [];
-                foreach ($data['depart'] as $value){
+                foreach ($data['dispatch_depart_one'] as $value){
                     $insert[] = [
                         'sales_order_id' => $msg['id'],
                         'depart_id' => $value,
@@ -582,9 +615,9 @@ class SalesOrderService extends Service
                 SalesOrderRange::insert($insert);
             }
 
-            if(! empty($data['employee'])){
+            if(! empty($data['dispatch_employee'])){
                 $insert = [];
-                foreach ($data['employee'] as $value){
+                foreach ($data['dispatch_employee'] as $value){
                     $insert[] = [
                         'sales_order_id' => $msg['id'],
                         'employee_id' => $value,
@@ -613,7 +646,7 @@ class SalesOrderService extends Service
         if($sale['state'] > SalesOrder::State_one) return [false,'请确认合同状态,操作失败'];
         $sale = $sale->toArray();
 
-        if(empty($data['depart']) && empty($data['employee'])) return [false, '请指派部门或人员'];
+        if(empty($data['dispatch_depart_one']) && empty($data['dispatch_employee'])) return [false, '请指派部门或人员'];
 
         return [true, $sale];
     }
@@ -636,9 +669,9 @@ class SalesOrderService extends Service
             SalesOrderOtherFee::where('del_time',0)
                 ->where('sales_order_id',$msg['id'])
                 ->update(['del_time' => $time]);
-            if(! empty($data['depart'])){
+            if(! empty($data['dispatch_depart_two'])){
                 $insert = [];
-                foreach ($data['depart'] as $value){
+                foreach ($data['dispatch_depart_two'] as $value){
                     $insert[] = [
                         'sales_order_id' => $msg['id'],
                         'depart_id' => $value,
@@ -679,7 +712,7 @@ class SalesOrderService extends Service
             ->exists();
         if(! $bool) return [false,'合同已下施工,操作失败'];
 
-        if(empty($data['depart'])) return [false, '请指派总社或分社'];
+        if(empty($data['dispatch_depart_two'])) return [false, '请指派总社或分社'];
         if(empty($value['other_fee_1'])) return [false,'价格不能为空'];
         $res = $this->checkNumber($value['other_fee_1']);
         if(! $res) return [false,'价格请输入不超过两位小数并且大于0的数值'];