OracleDocAsnHerderService.php 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. <?php
  2. namespace App\Services;
  3. use App\OracleDOCASNHeader;
  4. use App\Traits\ServiceAppAop;
  5. class OracleDocAsnHerderService
  6. {
  7. use ServiceAppAop;
  8. // protected $modelClass=OracleDocAsnHerder::class;
  9. public function getWmsAsnOnStartDateCreate($startDate)
  10. {
  11. if (!$startDate) return null;
  12. return OracleDOCASNHeader::query()
  13. ->with(['asnType', 'asnStatus'])
  14. ->select('asnno', 'asnstatus', 'asntype', 'addtime', 'edittime', 'customerid', 'notes', 'warehouseid', 'asnreference3', 'asnreference2')
  15. ->where('addTime', '>=', $startDate)
  16. ->whereColumn('edittime', '=', 'addTime')
  17. ->orderByDesc('addtime')
  18. ->get();
  19. }
  20. public function getWmsAsnOnStartDateEdit($startDate)
  21. {
  22. if (!$startDate) return null;
  23. return OracleDOCASNHeader::query()
  24. ->with(['asnType', 'asnStatus'])
  25. ->select('asnno', 'asnstatus', 'asntype', 'addtime', 'edittime', 'customerid', 'notes', 'warehouseid', 'asnreference3', 'asnreference2')
  26. ->where('EditTime', '>=', $startDate)
  27. ->whereColumn('EditTime', '<>', 'addTime')
  28. ->orderByDesc('EditTime')
  29. ->get();
  30. }
  31. public function getToBeProcessAsnDetailsByCustomId($customId,$page = 1, $perGage= 20)
  32. {
  33. return OracleDOCASNHeader::query()
  34. ->with(['asnType', 'asnStatus', 'basCustomer','asnDetails' => function ($query) {
  35. $query->with(['lineStatus', 'qualityStatus', 'basSku']);
  36. }])
  37. ->whereIn("AsnStatus", ['00', '30'])
  38. ->where('CustomerId', $customId)->orderByDesc('addtime')->forPage($page,$perGage)->get();
  39. }
  40. public function getToBeProcessAsnCountByCustomId($customId): int
  41. {
  42. return OracleDOCASNHeader::query()
  43. ->with(['asnType', 'asnStatus', 'basCustomer','asnDetails' => function ($query) {
  44. $query->with(['lineStatus', 'qualityStatus', 'basSku']);
  45. }])
  46. ->whereIn("AsnStatus", ['00', '30'])
  47. ->where('CustomerId', $customId)->count();
  48. }
  49. }