OracleDOCOrderHeader.php 2.8 KB

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