| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- <?php
- namespace App\Services;
- use App\OracleDOCOrderDetail;
- use App\OracleDOCOrderHeader;
- use App\Owner;
- use Illuminate\Support\Arr;
- use Illuminate\Support\Str;
- Class OracleDOCOrderHeaderService
- {
- static $columns =[
- 'DOC_Order_Header.OrderNo','DOC_Order_Header.CustomerID','DOC_Order_Header.OrderTime',
- 'DOC_Order_Header.SOReference1', 'DOC_Order_Header.ConsigneeID','DOC_Order_Header.C_Contact',
- 'DOC_Order_Header.ConsigneeName','DOC_Order_Header.C_Address1', 'DOC_Order_Header.C_City',
- 'DOC_Order_Header.C_Province','DOC_Order_Header.UserDefine1','DOC_Order_Header.AddTime',
- 'DOC_Order_Header.EditTime','DOC_Order_Header.Notes','DOC_Order_Header.CarrierID',
- 'DOC_Order_Header.CarrierName', 'DOC_Order_Header.LastShipmentTime','DOC_Order_Header.EDISendFlag',
- 'DOC_Order_Header.SOReference5', 'DOC_Order_Header.C_Tel2','DOC_Order_Header.Transportation',
- 'DOC_Order_Header.WareHouseId','DOC_Order_Header.SOStatus','DOC_Order_Header.C_Tel1','DOC_Order_Header.C_District',
- 'DOC_Order_Header.IssuePartyName'
- ];
- 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 OracleDOCOrderHeader::query()->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');
- }, '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');
- },'oracleBASCode'=>function($query){
- $query->selectRaw('BAS_Codes.CodeID,BAS_Codes.CodeName_C,BAS_Codes.Code');
- }])
- ->where('DOC_Order_Header.addTime','>=',$startDate)
- ->orderByDesc('DOC_Order_Header.addTime')
- ->get();
- }
- public function getWMSOrderOnEditDate($startDate){
- return OracleDOCOrderHeader::query()->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');
- }, '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');
- },'oracleBASCode'=>function($query){
- $query->selectRaw('BAS_Codes.CodeID,BAS_Codes.CodeName_C,BAS_Codes.Code');
- }])
- ->where('DOC_Order_Header.editTime','>=',$startDate)
- ->whereColumn('DOC_Order_Header.editTime','!=','DOC_Order_Header.addTime')
- ->orderByDesc('DOC_Order_Header.editTime')
- ->get();
- }
- }
|