|
|
@@ -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'),
|
|
|
]);
|