OracleDOCOrderHeader.php 3.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. <?php
  2. namespace App;
  3. use App\Services\LogisticService;
  4. use App\Services\OwnerService;
  5. use App\Traits\HasCompositePrimaryKey;
  6. use App\Traits\ModelTimeFormat;
  7. use Illuminate\Database\Eloquent\Model;
  8. use App\Traits\ModelLogChanging;
  9. use Illuminate\Database\Eloquent\Relations\BelongsTo;
  10. use Illuminate\Database\Eloquent\Relations\HasMany;
  11. class OracleDOCOrderHeader extends Model
  12. {
  13. use ModelLogChanging;
  14. use ModelTimeFormat;
  15. protected $connection="oracle";
  16. protected $table="DOC_Order_Header";
  17. protected $primaryKey="ORDERNO";
  18. public $timestamps=false;
  19. function getIncrementing()
  20. {
  21. return false;
  22. }
  23. protected $appends=[
  24. 'oracleBASCustomer_descr_c',
  25. 'oracleBASCode_codename_c'
  26. ];
  27. protected $fillable=[
  28. 'NOTES','ReleaseStatus','SoStatus','WaveNo'
  29. ];
  30. /*
  31. * column: OrderNo=>编号,SOStatus=>订单状态,WAREHOUSEID=>仓库,CustomerID=>客户,
  32. * ConsigneeID=>收货人,ConsigneeName=>收货人名称,C_Tel1=>收货人电话,CarrierName=>承运人,
  33. * IssuePartyName=>下单方名称,WaveNo=>波次编号,SOReference1=>客户订单号,soreference5=>快递单号,EDISENDFLAG2=>快递获取标记,
  34. * EDISendTime2=>快递获取时间,Notes=>备注,ERPCANCELFLAG=>接口取消标记,
  35. * Picking_Print_Flag=>拣货单打印标记,EDISENDFLAG=>接口回传标记,ReleaseStatus=>订单冻结标记,C_Address1=>收货人地址,
  36. * */
  37. public function oracleDOCOrderDetails(){
  38. return $this->hasMany('App\OracleDOCOrderDetail','orderno','orderno');
  39. }
  40. public function oracleBASCustomer(){
  41. return $this->hasOne('App\OracleBasCustomer','customerid','customerid');
  42. }
  43. public function oracleBASCode(){
  44. return $this->hasOne('App\OracleBasCode','code','sostatus')->where('codeid','SO_STS');
  45. }
  46. public function actAllocationDetails(){
  47. return $this->hasMany('App\OracleActAllocationDetails','orderno','orderno');
  48. }
  49. public function getOracleBASCustomerDescrCAttribute(){
  50. return $this['oracleBASCustomer']['descr_c']??'';
  51. }
  52. public function getOracleBASCodeCodenameCAttribute(){
  53. return $this['oracleBASCode']['codename_c'] ??'';
  54. }
  55. public function hasUn(){
  56. return $this->hasMany('App\OracleDOCOrderDetail','orderno','orderno');
  57. }
  58. public function orderType(){
  59. return $this->hasOne('App\OracleBasCode','code','ordertype')->where('codeid','SO_TYP');
  60. }
  61. public function docOrderDeliveryInfo(): HasMany
  62. {
  63. return $this->hasMany(OracleDocOrderDeliveryInfo::class,'orderno','orderno');
  64. }
  65. public function oracleDOCWaveDetail(): BelongsTo
  66. {
  67. return $this->belongsTo(OracleDOCWaveDetails::class,'orderno','orderno');
  68. }
  69. public function getLogistic()
  70. {
  71. /** @var LogisticService $logistic_service */
  72. $logistic_service = app('LogisticService');
  73. if(!$this['carrierid'])return null;
  74. return $logistic_service->getLogisticByCode($this['carrierid']);
  75. }
  76. public function getOwner()
  77. {
  78. /** @var OwnerService $owner_service */
  79. $owner_service = app('OwnerService');
  80. return $owner_service->codeGetOwner($this['customerid']);
  81. }
  82. }