Zhouzhendong 5 лет назад
Родитель
Сommit
610cdedd5b
2 измененных файлов с 17 добавлено и 6 удалено
  1. 15 3
      app/Http/Controllers/OrderController.php
  2. 2 3
      app/Http/Controllers/TestController.php

+ 15 - 3
app/Http/Controllers/OrderController.php

@@ -86,6 +86,10 @@ class OrderController extends Controller
         //分箱号
         $picktotraceids = json_decode($result['picktotraceids'],true);
         $rejectedBill_collect = collect();// 保存生成的rejectedBill
+        foreach ($result['orders'] as $order){
+            $blacklist = ["00","10","20","30","90"/*,"99"*/];
+            if (array_search($order->sostatus,$blacklist) !== false)return ['success'=>false,'data'=>'“'.$order->orderno."”状态异常,无法操作"];
+        }
         foreach ($result['orders'] as $order){
             //不存在时将当前快递单号视为分箱号
             if (!($picktotraceids[$order->orderno] ?? false))$picktotraceids[$order->orderno] = [$order->soreference5];
@@ -109,13 +113,21 @@ class OrderController extends Controller
                 ]);
                 $rejectedBill_collect->push($rejectedBill);// 保存生成的rejectedBill
                 LogService::log(__METHOD__,"生成退货单",json_encode($order),Auth::user()['id']);
-                if ($commodities[$order->orderno] ?? false){
-                    foreach ($commodities[$order->orderno] as $orderCommodities){
+                $cms = $commodities[$order->orderno] ?? [];
+                if (count($picktotraceids[$order->orderno]) > 1 && $cms){
+                    $sql = <<<sql
+ SELECT sum(QTY) qty,sku FROM ACT_ALLOCATION_DETAILS where ORDERNO = ? and PICKTOTRACEID = ? GROUP BY sku
+sql;
+                    $acts = DB::connection("oracle")->select(DB::raw($sql),[$order->orderno,$orderno]);
+                    $skus = array_column($acts,"sku");
+                    foreach ($cms as $orderCommodities){
+                        $index = array_search($orderCommodities["sku"],$skus);
+                        if ($index === false)continue;
                         array_push($rejectedBillItems,[
                             'id_rejected_bill' => $rejectedBill->id,
                             'barcode_goods' => $orderCommodities['alternate_sku1'],
                             'name_goods' => $orderCommodities['descr_c'],
-                            'amount' => $orderCommodities['qtyordered'],
+                            'amount' => $acts[$index]->qty,//$orderCommodities['qtyordered'],
                             'id_quality_label' => 1,
                             'created_at' => date('Y-m-d H:i:s'),
                         ]);

+ 2 - 3
app/Http/Controllers/TestController.php

@@ -156,9 +156,8 @@ sql;
     }
     public function zzd()
     {
-        $a = [1,2,3,4,5];
-        $c = [1,2,3,5,6];
-        dd(array_diff($c,$a));
+        $a = DB::connection("oracle")->select(DB::raw("select * from BAS_CUSTOMER"));
+        dd(array_column($a,"descr_c"));
     }
 
     public function zzd1()