ProcessesContent.php 1.8 KB

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