RejectedBillItem.php 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  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->hasOne('App\RejectedBill', 'id', 'id_rejected_bill');
  19. }
  20. public function quality(){
  21. return $this->belongsTo(QualityLabel::class, 'id_quality_label', 'id');
  22. }
  23. public function wmsReflectSku(){
  24. $bill=$this->rejectedBill()->first();
  25. $wmsReflectReceive=$bill->wmsReflectReceive()->first();
  26. if(!$wmsReflectReceive){
  27. $wmsReflectReceive=WMSReflectReceive::where('ASNREFERENCE3',$bill['logistic_number_return'])->orderBy('id','desc')->first();
  28. if(!$wmsReflectReceive)return null;
  29. }
  30. return $wmsReflectReceive->skus()->where('ALTERNATE_SKU1',$this['barcode_goods']);
  31. }
  32. public function injectCommodityName(){
  33. if(!$this['name_goods'])return;
  34. $barcode=$this['barcode_goods'];
  35. $name=$this['name_goods'];
  36. $owner=Owner::where('name',$this->rejectedBill->owner->name)->first();
  37. $commodity=Commodity::whereHas('barcodes', function (Builder $query)use($barcode){
  38. $query->where('code',$barcode);
  39. })->where('owner_id',$owner ? $owner['id'] : null)->first();
  40. if($commodity){
  41. if($commodity['name']!=$name){
  42. $commodity['name']=$name;
  43. }
  44. if(!$commodity['owner_id']){
  45. $commodity['owner_id']=$owner?$owner['id']:null;
  46. }
  47. $commodity->update();
  48. }
  49. else{
  50. $commodity = new Commodity();
  51. $commodity['name']=$name;
  52. $commodity['owner_id']=$owner?$owner['id']:null;
  53. $commodity->save();
  54. $commodity->newBarcode($barcode);
  55. }
  56. }
  57. public function getQualityLabelAttribute(){
  58. return $this->quality['name']??'';
  59. }
  60. }