Bladeren bron

快递件流程结束

cqpCow 1 jaar geleden
bovenliggende
commit
eb247d2dea
2 gewijzigde bestanden met toevoegingen van 41 en 3 verwijderingen
  1. 1 1
      app/Model/PurchaseOrderInfo.php
  2. 40 2
      app/Service/PurchaseOrderService.php

+ 1 - 1
app/Model/PurchaseOrderInfo.php

@@ -8,7 +8,7 @@ class PurchaseOrderInfo extends Model
 {
     protected $table = "purchase_order_info"; //指定表
     const CREATED_AT = 'crt_time';
-    const UPDATED_AT = 'upd_time';
+    const UPDATED_AT = null;
     protected $dateFormat = 'U';
     const STATE_ZERO = 0;//未发货
     const STATE_ONE = 1;//部分已发货

+ 40 - 2
app/Service/PurchaseOrderService.php

@@ -4,8 +4,10 @@ namespace App\Service;
 
 use App\Model\Depart;
 use App\Model\Employee;
+use App\Model\Product;
 use App\Model\PurchaseOrder;
 use App\Model\PurchaseOrderInfo;
+use App\Model\SalesOrder;
 use Illuminate\Support\Facades\DB;
 
 class PurchaseOrderService extends Service
@@ -17,6 +19,7 @@ class PurchaseOrderService extends Service
         try{
             DB::beginTransaction();
             $material_model = PurchaseOrder::where('order_number',$data['order_number'])->first();
+            $material_model->order_number = $data['order_number'];
             $material_model->depart_id = $data['depart_id'] ?? 0;
             $material_model->rate = $data['rate'] ?? 0;
             $material_model->total = $data['total'] ?? 0;
@@ -34,8 +37,13 @@ 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,
@@ -43,6 +51,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'] ?? '',
                     ];
                 }
                 PurchaseOrderInfo::insert($sub);
@@ -63,6 +76,7 @@ class PurchaseOrderService extends Service
         try{
             DB::beginTransaction();
             $material_model = new PurchaseOrder();
+            $material_model->order_number = $data['order_number'];
             $material_model->depart_id = $data['depart_id'] ?? 0;
             $material_model->rate = $data['rate'] ?? 0;
             $material_model->total = $data['total'] ?? 0;
@@ -78,8 +92,13 @@ 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,
@@ -87,6 +106,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'] ?? '',
                     ];
                 }
                 PurchaseOrderInfo::insert($sub);
@@ -106,15 +130,26 @@ class PurchaseOrderService extends Service
 
         $order = PurchaseOrder::where('order_number',$data['order_number'])
             ->where('del_time',0)
-            ->select('id','order_number','depart_id','mark','state','crt_id','order_type','sales_order_id','supplier','purchase_id','rate','total','other_fee','discount_fee','purchase_total')
+            ->select('id','order_number','depart_id','mark','state','crt_id','order_type','sales_order_id','supplier','purchase_id','rate','total','other_fee','discount_fee','purchase_total','crt_time')
             ->first();
         if(empty($order)) return [false, '采购订单不存在或已被删除'];
+        $order = $order->toArray();
+        $order['order_type_title'] = PurchaseOrder::$order_type[$order['order_type']] ?? '';
+        $order['state_title'] = PurchaseOrder::$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['purchase_id']],array_column($order,'crt_id'))))
+            ->pluck('emp_name','id')
+            ->toArray();
+        $order['purchase_title'] = $emp_map[$order['purchase_id']];
 
         $info = PurchaseOrderInfo::where('del_time',0)
             ->where('order_number',$data['order_number'])
-            ->select('id','order_number','depart_id','product_id','number','mark','price')
+            ->select('id','order_number','depart_id','product_id','number','mark','price','title','size','code','bar_code')
             ->get()->toArray();
         $order['product'] = $info;
+        $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];
     }
@@ -176,12 +211,15 @@ class PurchaseOrderService 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]['purchase_name'] = $emp_map[$value['purchase_id']] ?? '';
             $data['data'][$key]['order_type_title'] = PurchaseOrder::$order_type[$value['order_type']] ?? '';
+            $data['data'][$key]['state_title'] = PurchaseOrder::$name[$value['state']] ?? '';
+            $data['data'][$key]['sales_order_number'] = $sales[$value['sales_order_id']] ?? '';
         }
 
         return $data;