OracleDOCOrderHeaderService.php 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. <?php
  2. namespace App\Services;
  3. use App\OracleDOCOrderDetail;
  4. use App\OracleDOCOrderHeader;
  5. use App\Owner;
  6. Class OracleDOCOrderHeaderService
  7. {
  8. static $columns =[
  9. 'orderno','customerid','ordertime','soreference1','consigneeid','c_contact','consigneename','c_address1',
  10. 'c_city','c_province','userdefine1','addtime','edittime','notes','carrierid','carriername','lastshipmenttime','edisendflag',
  11. 'c_tel2','transportation','warehouseid'
  12. ];
  13. function first(array $params){
  14. $order = OracleDOCOrderHeader::query();
  15. foreach ($params as $column => $value){
  16. $order->where($column, $value);
  17. }
  18. return $order->first();
  19. }
  20. public function getWmsOrderOnStartDateCreate($startDate){
  21. /** @var Owner $owners */
  22. $owners = app(OrderTrackingOwnerService::class)->getTrackingOrderOwner();
  23. return OracleDOCOrderHeader::query()
  24. ->with(['oracleDOCOrderDetails', 'actAllocationDetails','oracleBASCode'])
  25. ->where('addTime','>=',$startDate)
  26. ->whereIn('customerID',data_get($owners,'*.code'))
  27. ->get();
  28. }
  29. public function getWmsOrderOnStartDateEdit($startDate){
  30. /** @var Owner $owners */
  31. $owners = app(OrderTrackingOwnerService::class)->getTrackingOrderOwner();
  32. return OracleDOCOrderHeader::query()
  33. ->with(['oracleDOCOrderDetails', 'actAllocationDetails','oracleBASCode'])
  34. ->where('EditTime','>=',$startDate)
  35. ->whereColumn('EditTime','<>','addTime')
  36. ->whereIn('customerID',data_get($owners,'*.code'))
  37. ->get();
  38. }
  39. /**
  40. * @param OracleDOCOrderHeader $orderHeader
  41. * @return array|mixed
  42. */
  43. public function getLogisticNumbers($orderHeader)
  44. {
  45. if(!$orderHeader ?? false){return [];}
  46. $actAllocationDetails = $orderHeader->actAllocationDetails ?? [];
  47. return array_diff(data_get($actAllocationDetails,'*.picktotraceid'),['','*',null]) ;
  48. }
  49. }