ProcessesContent.php 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. <?php
  2. namespace App;
  3. use Illuminate\Database\Eloquent\Model;
  4. use App\Traits\ModelTimeFormat;
  5. use App\Traits\ModelLogChanging;
  6. class ProcessesContent extends Model
  7. {
  8. use ModelLogChanging;
  9. use ModelTimeFormat;
  10. protected $fillable=[
  11. 'process_id','bill_type','commodity_id','wms_code','amount','type'
  12. ];
  13. protected $appends=[
  14. 'commodity_name',
  15. 'sign_commodity_name_mark',
  16. 'sign_commodity_sku_mark',
  17. 'sign_commodity_barcode_mark',
  18. ];
  19. public function process(){
  20. return $this->belongsTo('App\Process','process_id','id');
  21. }
  22. public function commodity(){
  23. return $this->belongsTo('App\Commodity','commodity_id','id');
  24. }
  25. public function signCommodityName(){
  26. return $this->hasOne('App\Sign','signable_id','id')
  27. ->where('signable_type','processes_contents')->where('field','commodity_name');
  28. }
  29. public function signCommoditySku(){
  30. return $this->hasOne('App\Sign','signable_id','id')
  31. ->where('signable_type','processes_contents')->where('field','commodity_sku');
  32. }
  33. public function signCommodityBarcode(){
  34. return $this->hasOne('App\Sign','signable_id','id')
  35. ->where('signable_type','processes_contents')->where('field','commodity_barcode');
  36. }
  37. public function getCommodityNameAttribute()
  38. {
  39. return $this['commodity']? $this['commodity']['name']:null;
  40. }
  41. public function getSignCommodityNameMarkAttribute()
  42. {
  43. return $this['signCommodityName']? $this['signCommodityName']['mark']:null;
  44. }
  45. public function getSignCommoditySkuMarkAttribute()
  46. {
  47. return $this['signCommoditySku']? $this['signCommoditySku']['mark']:null;
  48. }
  49. public function getSignCommodityBarcodeMarkAttribute()
  50. {
  51. return $this['signCommodityBarcode']? $this['signCommodityBarcode']['mark']:null;
  52. }
  53. }