RejectedBillItem.php 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  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. use App\Traits\ModelLogChanging;
  11. class RejectedBillItem extends Model
  12. {
  13. use ModelLogChanging;
  14. use ModelTimeFormat;
  15. use SoftDeletes;
  16. protected $fillable=['id_rejected_bill','barcode_goods','name_goods','amount','id_quality_label',
  17. 'batch_number','validity_at','made_at','is_checked','remark','is_loaded'];
  18. protected $appends = ['quality_label'];
  19. public function rejectedBill(){
  20. return $this->hasOne('App\RejectedBill', 'id', 'id_rejected_bill');
  21. }
  22. public function quality(){
  23. return $this->belongsTo(QualityLabel::class, 'id_quality_label', 'id');
  24. }
  25. public function uploadFiles(){
  26. return $this->hasMany(UploadFile::class,'table_id','id')->where('table_name','rejected_bill_items');
  27. }
  28. public function wmsReflectSku(){
  29. $bill=$this->rejectedBill()->first();
  30. $wmsReflectReceive=$bill->wmsReflectReceive()->first();
  31. if(!$wmsReflectReceive){
  32. $wmsReflectReceive=WMSReflectReceive::where('ASNREFERENCE3',$bill['logistic_number_return'])->orderBy('id','desc')->first();
  33. if(!$wmsReflectReceive)return null;
  34. }
  35. return $wmsReflectReceive->skus()->where('ALTERNATE_SKU1',$this['barcode_goods']);
  36. }
  37. public function injectCommodityName(){
  38. if(!$this['name_goods'])return;
  39. $barcode=$this['barcode_goods'];
  40. $name=$this['name_goods'];
  41. $owner=Owner::where('name',$this->rejectedBill->owner->name)->first();
  42. $commodity=Commodity::whereHas('barcodes', function (Builder $query)use($barcode){
  43. $query->where('code',$barcode);
  44. })->where('owner_id',$owner ? $owner['id'] : null)->first();
  45. if($commodity){
  46. if($commodity['name']!=$name){
  47. $commodity['name']=$name;
  48. }
  49. if(!$commodity['owner_id']){
  50. $commodity['owner_id']=$owner?$owner['id']:null;
  51. }
  52. $commodity->update();
  53. }
  54. else{
  55. $commodity = new Commodity();
  56. $commodity['name']=$name;
  57. $commodity['owner_id']=$owner?$owner['id']:null;
  58. $commodity->save();
  59. $commodity->newBarcode($barcode);
  60. }
  61. }
  62. public function getQualityLabelAttribute(){
  63. return $this->quality['name']??'';
  64. }
  65. }