WMSReflectReceive.php 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. <?php
  2. namespace App;
  3. use Illuminate\Database\Eloquent\Model;
  4. use Illuminate\Support\Collection;
  5. class WMSReflectReceive extends Model
  6. {
  7. protected $fillable=['id_rejected_bill','is_uploaded','ASNNO','WAREHOUSEID','CUSTOMERID','ASNTYPE','ASNREFERENCE1',
  8. 'ASNREFERENCE2','ASNREFERENCE3','NOTES','USERDEFINE1','USERDEFINE2','USERDEFINE3'];
  9. function skus(){
  10. return $this->hasMany('App\WMSReflectReceiveSku','wms_receive_id','id');
  11. }
  12. function bill(){
  13. return $this->belongsTo('App\RejectedBill','id_rejected_bill','id');
  14. }
  15. /**
  16. * @param $logisticNumberReturn
  17. * @param bool $withOutUploaded
  18. * @return Collection
  19. */
  20. static function downloadedSkus($logisticNumberReturn, $withOutUploaded=false){
  21. $wmsReceives=WMSReflectReceive::with('skus')->where('ASNREFERENCE3',$logisticNumberReturn);
  22. if($withOutUploaded)
  23. $wmsReceives=$wmsReceives->where('is_uploaded',0);
  24. $wmsReceives=$wmsReceives->get();
  25. $downloadedItems=[];
  26. foreach ($wmsReceives as $wmsReceive){
  27. $wmsReceive->skus()->each(function (WMSReflectReceiveSku $sku)use(&$downloadedItems){
  28. $repeated=false;
  29. foreach($downloadedItems as $item){
  30. if($item['id']==$sku['id']){
  31. $repeated=true;
  32. break;
  33. }
  34. }
  35. if(!$repeated){
  36. $downloadedItems[]=$sku;
  37. }
  38. });
  39. }
  40. return new Collection($downloadedItems);
  41. }
  42. }