OracleDocAsnHerderService.php 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. <?php
  2. namespace App\Services;
  3. use App\Jobs\RejectedPushJob;
  4. use App\OracleDOCASNHeader;
  5. use App\Traits\ServiceAppAop;
  6. use Couchbase\DocIdSearchQuery;
  7. class OracleDocAsnHerderService
  8. {
  9. use ServiceAppAop;
  10. // protected $modelClass=OracleDocAsnHerder::class;
  11. public function getWmsAsnOnStartDateCreate($startDate)
  12. {
  13. if (!$startDate) return null;
  14. return OracleDOCASNHeader::query()
  15. ->with(['asnType', 'asnStatus'])
  16. ->select('asnno', 'asnstatus', 'asntype', 'addtime', 'edittime', 'customerid', 'notes', 'warehouseid', 'asnreference3', 'asnreference2')
  17. ->where('addTime', '>=', $startDate)
  18. ->whereColumn('edittime', '=', 'addTime')
  19. ->orderByDesc('addtime')
  20. ->get();
  21. }
  22. public function getWmsAsnOnStartDateEdit($startDate)
  23. {
  24. if (!$startDate) return null;
  25. return OracleDOCASNHeader::query()
  26. ->with(['asnType', 'asnStatus'])
  27. ->select('asnno', 'asnstatus', 'asntype', 'addtime', 'edittime', 'customerid', 'notes', 'warehouseid', 'asnreference3', 'asnreference2')
  28. ->where('EditTime', '>=', $startDate)
  29. ->whereColumn('EditTime', '<>', 'addTime')
  30. ->orderByDesc('EditTime')
  31. ->get();
  32. }
  33. public function getToBeProcessAsnDetailsByCustomId($customId,$page = 1, $perGage= 20)
  34. {
  35. return OracleDOCASNHeader::query()
  36. ->with(['asnType', 'asnStatus', 'basCustomer','asnDetails' => function ($query) {
  37. $query->with(['lineStatus', 'qualityStatus', 'basSku']);
  38. }])
  39. ->whereIn("AsnStatus", ['00', '30'])
  40. ->whereIn('asnType',['B2BRK','CGRK','CSKC','DBRK','F10','F21','F31','F32','HHRK','QTRK'])
  41. ->where('CustomerId', $customId)->orderByDesc('addTime')->forPage($page,$perGage)->get();
  42. }
  43. public function getToBeProcessAsnCountByCustomId($customId): int
  44. {
  45. return OracleDOCASNHeader::query()
  46. ->with(['asnType', 'asnStatus', 'basCustomer','asnDetails' => function ($query) {
  47. $query->with(['lineStatus', 'qualityStatus', 'basSku']);
  48. }])
  49. ->whereIn("AsnStatus", ['00', '30'])
  50. ->whereIn('asnType',['B2BRK','CGRK','CSKC','DBRK','F10','F21','F31','F32','HHRK','QTRK'])
  51. ->where('CustomerId', $customId)->count();
  52. }
  53. public function rejectPush($asnHerders)
  54. {
  55. if (count($asnHerders)>0){
  56. $collect=collect();
  57. foreach ($asnHerders as $asnHerder){
  58. if ($asnHerders->asntype=='THRK'&&$asnHerder->asnreference3){
  59. $collect->push(array($asnHerder->asnno,$asnHerder->asnreference3));
  60. }
  61. }
  62. RejectedPushJob::dispatch($collect);
  63. }
  64. }
  65. }