|
|
@@ -230,11 +230,15 @@ class OrderTrackingService
|
|
|
$BasSKUs = app(OracleBasSkuService::class)->获取BasSKu_通过WMSOrderHeaders($orderHeaders);
|
|
|
$BasSKUs_code_sku_map = $dataService->dataHeader(['customerid','sku'],$BasSKUs);
|
|
|
$order_nos = data_get($orderHeaders,'*.orderno');
|
|
|
- $order_package_commodities = OrderPackageCommodities::query()
|
|
|
- ->with('package.order')
|
|
|
- ->whereHas('package.order',function($query) use ($order_nos){
|
|
|
- $query->whereIn('code',$order_nos);
|
|
|
- })->get();
|
|
|
+
|
|
|
+ $order_package_commodities = OrderPackageCommodities::query()->with(['package.order','commodity'])
|
|
|
+ ->whereIn('order_package_id',function($query)use($order_nos){
|
|
|
+ $query->from('order_packages')->select('id')->whereIn('order_id',function($query)use($order_nos){
|
|
|
+ $query->from('orders')->select('id')->whereIn('code',$order_nos);
|
|
|
+ });
|
|
|
+ })
|
|
|
+ ->get();
|
|
|
+
|
|
|
$order_package_commodities_ids = data_get($order_package_commodities,'*.id');
|
|
|
$order_trackings = OrderTracking::query()->whereIn('order_package_commodity_id',$order_package_commodities_ids)->get();
|
|
|
$is_exist_ids = data_get($order_trackings,'*.order_package_commodity_id');
|
|
|
@@ -268,10 +272,16 @@ class OrderTrackingService
|
|
|
$basSkU = $dataService->getKeyValue(['customerid'=>$owner->code,'sku'=>$item->commodity->sku],$BasSKUs_code_sku_map);
|
|
|
$gross_weight = round($basSkU->grossweight * $item->amount, 2);
|
|
|
$bulk = round($basSkU->cube * $item->amount, 2);
|
|
|
+
|
|
|
+ $order_client_code = $order->client_code;
|
|
|
+ if($param['client']=='天猫'){
|
|
|
+ $order_client_code = $this->get_d_edit_03($order_header,$item) ;
|
|
|
+ }
|
|
|
+
|
|
|
$params[] =[
|
|
|
'order_package_commodity_id' => $item->id,
|
|
|
'owner_id' => $order->owner_id,
|
|
|
- 'order_client_code' =>$order->client_code,
|
|
|
+ 'order_client_code' =>$order_client_code,
|
|
|
'sale' => $param['sale'],
|
|
|
'client' => $param['client'],
|
|
|
'created_at' => $order->created_at,
|
|
|
@@ -294,6 +304,25 @@ class OrderTrackingService
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ public function get_d_edit_03($orderHeader,$orderPackageCommodity){
|
|
|
+ $sku_line_no = null;
|
|
|
+ foreach ($orderHeader->actAllocationDetails as $actAllocationDetail) {
|
|
|
+ if($actAllocationDetail->picktotraceid == $orderPackageCommodity->package->logistic_number
|
|
|
+ && $orderPackageCommodity->commodity->sku == $actAllocationDetail->sku){
|
|
|
+ $sku_line_no = $actAllocationDetail->skulineno;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if($sku_line_no==null)return null;
|
|
|
+ foreach ($orderHeader->oracleDOCOrderDetails as $oracleDOCOrderDetail) {
|
|
|
+ if($oracleDOCOrderDetail->orderlineno == $sku_line_no) {
|
|
|
+ return $oracleDOCOrderDetail['d_edi_03'];
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
public function updateByWmsOrderHeaders($orderHeaders)
|
|
|
{
|
|
|
if(!$orderHeaders){return ;}
|
|
|
@@ -301,11 +330,15 @@ class OrderTrackingService
|
|
|
$dataService = app(DataHandlerService::class);
|
|
|
$order_nos = data_get($orderHeaders,'*.orderno');
|
|
|
|
|
|
- $order_package_commodities = OrderPackageCommodities::query()->with('package.order')
|
|
|
- ->whereHas('package.order',function($query) use ($order_nos){
|
|
|
- $query->whereIn('code',$order_nos);
|
|
|
+ $order_package_commodities = OrderPackageCommodities::query()
|
|
|
+ ->with(['package.order','commodity'])
|
|
|
+ ->whereIn('order_package_id',function($query)use($order_nos){
|
|
|
+ $query->from('order_packages')->select('id')->whereIn('order_id',function($query)use($order_nos){
|
|
|
+ $query->from('orders')->select('id')->whereIn('code',$order_nos);
|
|
|
+ });
|
|
|
})->get();
|
|
|
|
|
|
+
|
|
|
$orderTrackings = OrderTracking::query()->whereIn('order_package_commodity_id',data_get($order_package_commodities,'*.id'))->get();
|
|
|
|
|
|
$order_tracking_id_map = [];
|
|
|
@@ -458,9 +491,14 @@ class OrderTrackingService
|
|
|
{
|
|
|
if($orderHeaders->count() == 0){return collect();}
|
|
|
$orderNos = data_get($orderHeaders,'*.orderno');
|
|
|
- return OrderTracking::query()->with('commodities.package.order')
|
|
|
- ->whereHas('commodities.package.order',function($query)use($orderNos){
|
|
|
- $query->whereIn('code',$orderNos);
|
|
|
+ return OrderPackageCommodities::query()
|
|
|
+ ->with('commodities.package.order')
|
|
|
+ ->whereIn('order_package_commodity_id',function($query)use($orderNos){
|
|
|
+ $query->from('order_package_commodities')->select('id')->whereIn('order_package_id',function($query)use($orderNos) {
|
|
|
+ $query->from('order_packages')->select('id')->whereIn('order_id', function ($query) use ($orderNos) {
|
|
|
+ $query->from('orders')->select('id')->whereIn('code', $orderNos);
|
|
|
+ });
|
|
|
+ });
|
|
|
})->get();
|
|
|
}
|
|
|
|
|
|
@@ -528,4 +566,5 @@ class OrderTrackingService
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+
|
|
|
}
|