Explorar o código

快递件流程结束

cqpCow hai 1 ano
pai
achega
208cc1f91e
Modificáronse 2 ficheiros con 39 adicións e 28 borrados
  1. 29 8
      app/Service/InvoiceOrderService.php
  2. 10 20
      app/Service/PurchaseOrderService.php

+ 29 - 8
app/Service/InvoiceOrderService.php

@@ -18,7 +18,7 @@ class InvoiceOrderService extends Service
         try{
             DB::beginTransaction();
             $material_model = InvoiceOrder::where('order_number',$data['order_number'])->first();
-            $material_model->contact_order_number = $data['contact_order_number'];
+            $material_model->sales_order_id = $data['sales_order_id'];
             $material_model->send = $data['send'];
             $material_model->send_time = $data['send_time'];
             $material_model->take = $data['take'];
@@ -42,6 +42,11 @@ class InvoiceOrderService extends Service
                         'product_id' => $value['product_id'],
                         'number' => $value['number'],
                         'mark' => $value['mark'] ?? '',
+                        'title' => $value['title'] ?? '',
+                        'code' => $value['code'] ?? '',
+                        'size' => $value['size'] ?? '',
+                        'unit' => $value['unit'] ?? 0,
+                        'bar_code' => $value['bar_code'] ?? '',
                     ];
                 }
                 InvoiceOrderInfo::insert($sub);
@@ -67,7 +72,7 @@ class InvoiceOrderService extends Service
             DB::beginTransaction();
             $material_model = new InvoiceOrder();
             $material_model->order_number = $data['order_number'];
-            $material_model->contact_order_number = $data['contact_order_number'];
+            $material_model->sales_order_id = $data['sales_order_id'];
             $material_model->send = $data['send'];
             $material_model->send_time = $data['send_time'];
             $material_model->take = $data['take'];
@@ -89,6 +94,11 @@ class InvoiceOrderService extends Service
                         'product_id' => $value['product_id'],
                         'number' => $value['number'],
                         'mark' => $value['mark'] ?? '',
+                        'title' => $value['title'] ?? '',
+                        'code' => $value['code'] ?? '',
+                        'size' => $value['size'] ?? '',
+                        'unit' => $value['unit'] ?? 0,
+                        'bar_code' => $value['bar_code'] ?? '',
                     ];
                 }
                 InvoiceOrderInfo::insert($sub);
@@ -111,15 +121,25 @@ class InvoiceOrderService extends Service
 
         $order = InvoiceOrder::where('order_number',$data['order_number'])
             ->where('del_time',0)
-            ->select('id','order_number','contact_order_number','depart_id','send','send_time','take','take_address','take_phone','logistics_company','logistics_number','crt_id','mark','state')
+            ->select('id','order_number','sales_order_id','send','send_time','take','take_address','take_phone','logistics_company','logistics_number','crt_id','mark','state')
             ->first();
         if(empty($order)) return [false, '发货订单不存在或已被删除'];
+        $order = $order->toArray();
+        $order['state_title'] = InvoiceOrder::$name[$order['state']] ?? '';
+        $sales = SalesOrder::where('id',$order['sales_order_id'])->value('order_number');
+        $order['sales_order_number'] = $sales;
 
+        $emp_map = Employee::whereIn('id',array_unique(array_merge_recursive([$order['crt_id'],[$order['send']]])))
+            ->pluck('emp_name','id')
+            ->toArray();
         $info = InvoiceOrderInfo::where('del_time',0)
             ->where('order_number',$data['order_number'])
-            ->select('id','order_number','depart_id','product_id','number','mark')
+            ->select('id','order_number','depart_id','product_id','number','mark','title','code','size','unit','bar_code')
             ->get()->toArray();
         $order['product'] = $info;
+        $order['send_name'] = $emp_map[$order['send']] ?? '';
+        $order['crt_name'] = $emp_map[$order['crt_id']] ?? '';
+        $order['crt_time'] = $order['crt_time'] ? date("Y-m-d H:i:s",$order['crt_time']): '';
 
         return [true, $order];
     }
@@ -154,10 +174,9 @@ class InvoiceOrderService extends Service
 
     public function getList($data,$user){
         $model = InvoiceOrder::where('del_time',0)
-            ->select('id','order_number','contact_order_number','depart_id','send','send_time','take','take_address','take_phone','logistics_company','logistics_number','crt_id','mark','state')
+            ->select('id','order_number','sales_order_id','depart_id','send','send_time','take','take_address','take_phone','logistics_company','logistics_number','crt_id','mark','state')
             ->orderby('id', 'desc');
         if(! empty($data['order_number'])) $model->where('order_number', 'LIKE', '%'.$data['order_number'].'%');
-        if(! empty($data['contact_order_number'])) $model->where('contact_order_number', 'LIKE', '%'.$data['contact_order_number'].'%');
         if(! empty($data['depart_id'])) $model->where('depart_id', $data['depart_id']);
         if(isset($data['state'])) $model->where('state',$data['state']);
         if(! empty($data['crt_time'][0]) && ! empty($data['crt_time'][1])) {
@@ -184,12 +203,14 @@ class InvoiceOrderService extends Service
                     ->pluck('emp_name','id')
                     ->toArray();
 
+        $sales = SalesOrder::whereIn('id',array_unique(array_column($data['data'],'sales_order_id')))->pluck('order_number','id')->toArray();
         foreach ($data['data'] as $key => $value){
             $data['data'][$key]['crt_time'] = $value['crt_time'] ? date("Y-m-d H:i:s",$value['crt_time']) : '';
             $data['data'][$key]['depart_name'] = $depart_map[$value['depart_id']] ?? '';
             $data['data'][$key]['crt_name'] = $emp_map[$value['crt_id']] ?? '';
             $data['data'][$key]['send_name'] = $emp_map[$value['send']] ?? '';
             $data['data'][$key]['state_name'] = InvoiceOrder::$name[$value['state']] ?? '';
+            $data['data'][$key]['sales_order_number'] = $sales[$value['sales_order_id']] ?? '';
         }
 
         return $data;
@@ -199,9 +220,9 @@ class InvoiceOrderService extends Service
         if($this->isEmpty($data,'send')) return [false,'发货人不能为空!'];
         if($this->isEmpty($data,'product')) return [false,'产品不能为空!'];
         if(! empty($data['send_time'])) $data['send_time'] = $this->changeDateToDateMin($data['send_time']);
-        if(! empty($data['contact_order_number'])) {
+        if(! empty($data['sales_order_id'])) {
             $sales = SalesOrder::where('del_time',0)
-                ->where('order_number',$data['contact_order_number'])
+                ->where('id',$data['sales_order_id'])
                 ->first();
             if(empty($sales)) return [false,'合同不存在或已被删除'];
             if($sales['sales_order_type'] != SalesOrder::Order_type_two) return [false,'非快递件合同'];

+ 10 - 20
app/Service/PurchaseOrderService.php

@@ -37,13 +37,8 @@ class PurchaseOrderService extends Service
                 ->where('del_time',0)
                 ->update(['del_time' => time()]);
             if(!empty($data['product'])){
-                $pro = Product::whereIn('id',array_column($data['product'],'product_id'))
-                    ->select('bar_code','code','size','title','id')
-                    ->get()->toArray();
-                $pro = array_column($pro,null,'id');
                 $sub = [];
                 foreach ($data['product'] as $value){
-                    $tmp = $pro[$value['product_id']] ?? [];
                     $sub[] = [
                         'order_number' => $data['order_number'],
                         'depart_id' => $data['depart_id'] ?? 0,
@@ -51,11 +46,11 @@ class PurchaseOrderService extends Service
                         'number' => $value['number'],
                         'price' => $value['price'],
                         'mark' => $value['mark'] ?? '',
-                        'title' => $tmp['title'],
-                        'code' => $tmp['code'] ?? '',
-                        'size' => $tmp['size'] ?? '',
-                        'unit' => $tmp['unit'] ?? 0,
-                        'bar_code' => $tmp['bar_code'] ?? '',
+                        'title' => $value['title'] ?? '',
+                        'code' => $value['code'] ?? '',
+                        'size' => $value['size'] ?? '',
+                        'unit' => $value['unit'] ?? 0,
+                        'bar_code' => $value['bar_code'] ?? '',
                     ];
                 }
                 PurchaseOrderInfo::insert($sub);
@@ -92,13 +87,8 @@ class PurchaseOrderService extends Service
             $material_model->save();
 
             if(!empty($data['product'])){
-                $pro = Product::whereIn('id',array_column($data['product'],'product_id'))
-                    ->select('bar_code','code','size','title','id')
-                    ->get()->toArray();
-                $pro = array_column($pro,null,'id');
                 $sub = [];
                 foreach ($data['product'] as $value){
-                    $tmp = $pro[$value['product_id']] ?? [];
                     $sub[] = [
                         'order_number' => $data['order_number'],
                         'depart_id' => $data['depart_id'] ?? 0,
@@ -106,11 +96,11 @@ class PurchaseOrderService extends Service
                         'number' => $value['number'],
                         'price' => $value['price'],
                         'mark' => $value['mark'] ?? '',
-                        'title' => $tmp['title'],
-                        'code' => $tmp['code'] ?? '',
-                        'size' => $tmp['size'] ?? '',
-                        'unit' => $tmp['unit'] ?? 0,
-                        'bar_code' => $tmp['bar_code'] ?? '',
+                        'title' => $value['title'] ?? '',
+                        'code' => $value['code'] ?? '',
+                        'size' => $value['size'] ?? '',
+                        'unit' => $value['unit'] ?? 0,
+                        'bar_code' => $value['bar_code'] ?? '',
                     ];
                 }
                 PurchaseOrderInfo::insert($sub);