selectRaw(implode(',',self::$columns)) ->with(['oracleBASCustomer'=>function($query){ $query->selectRaw('BAS_CUSTOMER.CustomerID,BAS_CUSTOMER.Customer_Type,BAS_CUSTOMER.Descr_C,BAS_CUSTOMER.Active_Flag'); },'oracleDOCOrderDetails'=>function($query){ $query->selectRaw('doc_order_details.orderNo,doc_order_details.customerid,doc_order_details.sku,doc_order_details.QtyOrdered,doc_order_details.Location,doc_order_details.OrderLineNo,doc_order_details.d_edi_03'); }, 'actAllocationDetails'=>function($query){ $query->selectRaw('ACT_Allocation_Details.AllocationDetailsID,ACT_Allocation_Details.OrderNo,ACT_Allocation_Details.Qty_Each,ACT_Allocation_Details.PickToTraceID,ACT_Allocation_Details.CustomerID,ACT_Allocation_Details.Sku,ACT_Allocation_Details.Location,ACT_Allocation_Details.SkuLineNo,ACT_Allocation_Details.OrderLineno'); },'oracleBASCode'=>function($query){ $query->selectRaw('BAS_Codes.CodeID,BAS_Codes.CodeName_C,BAS_Codes.Code'); },'orderType'=>function($query){ $query->selectRaw('BAS_Codes.CodeID,BAS_Codes.CodeName_C,BAS_Codes.Code'); }]); } function first(array $params){ $order = OracleDOCOrderHeader::query(); foreach ($params as $column => $value){ $order->where($column, $value); } return $order->first(); } public function getWmsOrderOnStartDateCreate($startDate){ /** @var Owner $owners */ $owners = app(OrderTrackingOwnerService::class)->getTrackingOrderOwner(); return OracleDOCOrderHeader::query() ->with(['oracleDOCOrderDetails', 'actAllocationDetails','oracleBASCode','oracleBASCustomer']) ->where('DOC_Order_Header.addTime','>=',$startDate) ->whereIn('DOC_Order_Header.customerID',data_get($owners,'*.code')) ->get(); } public function getWmsOrderOnStartDateEdit($startDate){ /** @var Owner $owners */ $owners = app(OrderTrackingOwnerService::class)->getTrackingOrderOwner(); return OracleDOCOrderHeader::query() ->with(['oracleDOCOrderDetails', 'actAllocationDetails','oracleBASCode','oracleBASCustomer']) ->where('DOC_Order_Header.EditTime','>=',$startDate) ->whereColumn('DOC_Order_Header.EditTime','<>','DOC_Order_Header.addTime') ->whereIn('DOC_Order_Header.customerID',data_get($owners,'*.code')) ->get(); } /** * @param OracleDOCOrderHeader $orderHeader * @return array|mixed */ public function getLogisticNumbers($orderHeader) { if(!$orderHeader ?? false){return [];} $actAllocationDetails = $orderHeader->actAllocationDetails ?? []; return array_unique(array_diff(data_get($actAllocationDetails,'*.picktotraceid'),['','*',null])); } public function getWMSOrderOnStartDate($startDate) { return $this->getQuery()->where('DOC_Order_Header.addTime','>=',$startDate) ->whereColumn('DOC_Order_Header.editTime','=','DOC_Order_Header.addTime') ->orderByDesc('DOC_Order_Header.addTime') ->get(); } public function getWMSOrderOnEditDate($startDate){ return $this->getQuery()->where('DOC_Order_Header.editTime','>=',$startDate) ->whereColumn('DOC_Order_Header.editTime','!=','DOC_Order_Header.addTime') ->orderByDesc('DOC_Order_Header.editTime') ->get(); } public function getOrderInfoByOrderNos($orderNos) { if(empty($orderNos))return collect(); if(count($orderNos) == 0)return collect(); return $this->getQuery()->whereIn('DOC_Order_Header.OrderNo',$orderNos)->get(); } public function loadMissing($orderHeaders) { return $orderHeaders->loadMissing(['oracleBASCustomer'=>function($query){ $query->selectRaw('BAS_CUSTOMER.CustomerID,BAS_CUSTOMER.Customer_Type,BAS_CUSTOMER.Descr_C,BAS_CUSTOMER.Active_Flag'); },'oracleDOCOrderDetails'=>function($query){ $query->selectRaw('doc_order_details.orderNo,doc_order_details.customerid,doc_order_details.sku,doc_order_details.QtyOrdered,doc_order_details.Location,doc_order_details.OrderLineNo,doc_order_details.d_edi_03'); }, 'actAllocationDetails'=>function($query){ $query->selectRaw('ACT_Allocation_Details.AllocationDetailsID,ACT_Allocation_Details.OrderNo,ACT_Allocation_Details.Qty_Each,ACT_Allocation_Details.PickToTraceID,ACT_Allocation_Details.CustomerID,ACT_Allocation_Details.Sku,ACT_Allocation_Details.Location,ACT_Allocation_Details.SkuLineNo,ACT_Allocation_Details.OrderLineno'); },'oracleBASCode'=>function($query){ $query->selectRaw('BAS_Codes.CodeID,BAS_Codes.CodeName_C,BAS_Codes.Code'); },'orderType'=>function($query){ $query->selectRaw('BAS_Codes.CodeID,BAS_Codes.CodeName_C,BAS_Codes.Code'); }]); } }