OracleDOCOrderHeader.php 3.0 KB

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