RejectedBillItem.php 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. <?php
  2. namespace App;
  3. use Illuminate\Database\Eloquent\Collection;
  4. use Illuminate\Database\Eloquent\Model;
  5. use Illuminate\Database\Eloquent\SoftDeletes;
  6. /**
  7. * @property mixed rejectedBill
  8. */
  9. class RejectedBillItem extends Model
  10. {
  11. use SoftDeletes;
  12. protected $fillable=['id_rejected_bill','barcode_goods','name_goods','amount','id_quality_label',
  13. 'batch_number','validity_at','made_at','is_checked','remark','is_loaded'];
  14. protected $appends = ['quality_label'];
  15. public function rejectedBill(){
  16. return $this->belongsTo('App\RejectedBill', 'id_rejected_bill', 'id');
  17. }
  18. public function wmsReflectSku(){
  19. $bill=$this->rejectedBill()->first();
  20. $wmsReflectReceive=$bill->wmsReflectReceive()->first();
  21. if(!$wmsReflectReceive){
  22. $wmsReflectReceive=WMSReflectReceive::where('ASNREFERENCE3',$bill['logistic_number_return'])->orderBy('id','desc')->first();
  23. if(!$wmsReflectReceive)return null;
  24. }
  25. return $wmsReflectReceive->skus()->where('ALTERNATE_SKU1',$this['barcode_goods']);
  26. }
  27. public function injectCommodityName(){
  28. if(!$this['name_goods'])return;
  29. $barcode=$this['barcode_goods'];
  30. $name=$this['name_goods'];
  31. $commodity=Commodity::where('barcode', $barcode)->first();
  32. if($commodity){
  33. if($commodity['name']!=$name){
  34. $commodity['name']=$name;
  35. }
  36. if(!$commodity['owner_name']){
  37. $commodity['owner_name']=$this->rejectedBill->owner->name;
  38. }
  39. $commodity->update();
  40. }
  41. else{
  42. $commodity = new Commodity();
  43. $commodity['barcode']=$barcode;
  44. $commodity['name']=$name;
  45. $commodity['owner_name']=$this->rejectedBill->owner->name;
  46. $commodity->save();
  47. }
  48. }
  49. public function getQualityLabelAttribute(){
  50. $label=QualityLabel::find($this['id_quality_label']);
  51. return $label['name'];
  52. }
  53. }