RejectedBillItem.php 2.2 KB

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