"散客模式", 2 => "大客户模式", 3 => "同步筛单下单", ]; const PAY_TYPE_DEFAULT = 2; const PAY_TYPE = [ 0 => "发货人付款(现付)(大客户模式不支持寄付)", 1 => "收货人付款(到付)", 2 => "发货人付款(月结)", ]; const BACK_SIGN_BILL_DEFAULT = 0; const BACK_SIGN_BILL = [ 0 => "无需返单", 1 => "签收单原单返回", 2 => "电子签收单(签名图需要另外对接查询接口)", ]; public function district() { //区 return $this->belongsTo(Region::class,"district_id","id")->where("type",3); } public function owner(){ return $this->hasOne('App\Owner','id','owner_id'); } public function logistic(){ return $this->hasOne('App\Logistic','id','logistic_id'); } public function originationCity() { //始发市 return $this->hasOne(Region::class,'id','origination_city_id'); } public function destinationCity() { //目的市 return $this->hasOne(Region::class,'id','destination_city_id'); } public function wmsCommodities(){ return $this->hasMany('App\WMSWaybillOrder','OrderNo','wms_bill_number'); } public function priceModel(){ return $this->hasOne('App\WaybillPriceModel','id','waybill_price_model_id'); } public function amountUnit(){ return $this->hasOne('App\Unit','id','amount_unit_id'); } public function warehouseWeightUnit(){ return $this->hasOne('App\Unit','id','warehouse_weight_unit_id'); } public function carrierWeightUnit(){ return $this->hasOne('App\Unit','id','carrier_weight_unit_id'); } public function warehouseWeightUnitOther(){ return $this->hasOne('App\Unit','id','warehouse_weight_unit_id_other'); } public function carrierWeightUnitOther(){ return $this->hasOne('App\Unit','id','carrier_weight_unit_id_other'); } public function carType(){ return $this->hasOne('App\CarType','id','carType_id'); } public function waybillAuditLogs(){ return $this->hasMany('App\WaybillAuditLog','waybill_id','id')->orderByDesc("created_at"); } public function uploadFiles(){ return $this->hasMany(UploadFile::class,'table_id','id')->where('table_name','waybills'); } public function order() { //订单 return $this->belongsTo(Order::class); } public function orderByCode() { //订单 return $this->hasOne(Order::class,'code','wms_bill_number'); } public function deliveryType() { //订单 return $this->hasOne(DeliveryType::class,'id','deliveryType_id'); } static public function setWeightByOrderCode($orderCode,$weight){ if(empty($orderCode))return; $waybill=Waybill::query()->where('wms_bill_number',$orderCode)->where('status','!=','已完结') ->where('status','!=','无模型')->first(); if ($waybill){ $waybill->warehouse_weight_other=$weight; $waybill->warehouse_weight_unit_id_other=1; $waybill->update(); } } /** * @return Builder */ public static function filterAuthorities(){ $ownerQuery = app("OwnerService")->getQuery(); return (new static)->newQuery()->leftJoin("orders","waybills.order_id","orders.id") ->leftJoin("owners","orders.owner_id","owners.id") ->selectRaw(<<where(function ($query)use($ownerQuery){ /** @var Builder $query */ $query->whereIn('waybills.owner_id',$ownerQuery)-> orWhereIn("orders.owner_id",$ownerQuery); }); } public function ownerWayBillFeeDetail(): HasOne { return $this->hasOne(OwnerWayBillFeeDetail::class); } public function getDestinationAttribute($value) { return $this->relations["order"]["address"] ?? $value; } public function getCarrierNameAttribute() { return $this->relations["logistic"]["name"] ?? ""; } public function getAmountUnitNameAttribute() { return $this->relations["amountUnit"]["name"] ?? "件"; } public function getRemoveRelationAttribute() { $this->unsetRelations(); $this->offsetUnset("remove_relation"); } }