WMSReflectReceive.php 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  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=['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','ASNREFERENCE3','logistic_number_return');
  14. }
  15. /**
  16. * @param $logisticNumberReturn
  17. * @return Collection
  18. */
  19. static function downloadedSkus($logisticNumberReturn){
  20. $wmsReceives=WMSReflectReceive::with('skus')->where('ASNREFERENCE3',$logisticNumberReturn)->get();
  21. $downloadedItems=[];
  22. foreach ($wmsReceives as $wmsReceive){
  23. $wmsReceive->skus()->each(function (WMSReflectReceiveSku $sku)use(&$downloadedItems){
  24. $repeated=false;
  25. foreach($downloadedItems as $item){
  26. if($item['ALTERNATE_SKU1']==$sku['ALTERNATE_SKU1']){
  27. $repeated=true;
  28. break;
  29. }
  30. }
  31. if(!$repeated){
  32. $downloadedItems[]=$sku;
  33. }
  34. });
  35. }
  36. return new Collection($downloadedItems);
  37. }
  38. }