OrderTracking.php 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. <?php
  2. namespace App;
  3. use App\Traits\ModelTimeFormat;
  4. use Illuminate\Database\Eloquent\Model;
  5. class OrderTracking extends Model
  6. {
  7. use ModelTimeFormat;
  8. protected $fillable = [
  9. 'order_package_commodity_id','owner_id','web_order_number',
  10. 'pick_up_at','sale','client','order_client_code',
  11. 'order_remark','pallet_total','planning_sent_at',
  12. 'is_on_duty_shift','is_arrival','signed_at',
  13. 'receive_bill_status','remark','gross_weight','bulk'];
  14. protected $appends =[
  15. 'ownerName','sku','packageWeight','packageBulk','orderCity','packageLogisticNumber','packageLogistic','orderClientNumber'
  16. ];
  17. public function commodities(){
  18. return $this->hasOne(OrderPackageCommodities::class,'id','order_package_commodity_id');
  19. }
  20. public function owner(){
  21. return $this->hasOne(Owner::class,'id','owner_id');
  22. }
  23. public function uploadFile()
  24. {
  25. return $this->hasOne(UploadFile::class,'table_id','order_client_code')->where('table_name','order_trackings');
  26. }
  27. public function getOwnerNameAttribute(){
  28. return $this->owner['name'] ?? '';
  29. }
  30. public function getSkuAttribute(){
  31. return ['sku' => $this->commodities['commodity']['sku'] ?? '',
  32. 'skuName' => $this->commodities['commodity']['name'] ?? '',
  33. 'skuAmount' => $this->commodities['amount'] ?? ''];
  34. }
  35. public function getPackageWeightAttribute(){
  36. return $this->commodities->package['weight'] ?? '';
  37. }
  38. public function getPackageBulkAttribute(){
  39. return $this->commodities->package['bulk'] ?? '';
  40. }
  41. public function getOrderCityAttribute(){
  42. return $this->commodities->package->order['city'] ?? '';
  43. }
  44. public function getPackageLogisticNumberAttribute(){
  45. return $this->commodities->package['logistic_number'] ?? '';
  46. }
  47. public function getPackageLogisticAttribute(){
  48. return $this->commodities->package->order->logistic['name'] ?? '';
  49. }
  50. public function getOrderClientNumberAttribute(){
  51. return $this->commodities->package->order['client_code'] ?? '';
  52. }
  53. }