| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131 |
- <?php
- namespace App;
- use App\Traits\ModelTimeFormat;
- use Illuminate\Database\Eloquent\Model;
- class Order extends Model
- {
- //
- use ModelTimeFormat;
- protected $fillable = [
- 'id', 'batch_id', 'owner_id', 'status',
- 'created_at', 'code', 'shop_id', 'owner_id', 'client_code',
- 'logistic_id', 'consignee_name', 'consignee_phone', 'province',
- 'city', 'district', 'address', 'wms_status','warehouse_id','wms_edittime'];
- /*
- * wms订单号 code=>DOC_ORDER_HEADER[orderno]
- * wms客户订单号 client_code=>DOC_ORDER_HEADER['soreference1']
- * wms订单状态 wms_status=>
- * 仓库 warehouse_id=>DOC_ORDER_HEADER['WAREHOUSEID']
- */
- protected $appends = [
- 'logisticNumbers',
- 'amount',
- 'commodityPackages'
- ];
- public function logistic()
- {
- return $this->hasOne(Logistic::class, 'id', 'logistic_id');
- }
- public function issue()
- {
- return $this->belongsTo(OrderIssue::class, 'id', 'order_id');
- }
- public function shop()
- {
- return $this->belongsTo(Shop::class, 'shop_id', 'id');
- }
- public function owner()
- {
- return $this->hasOne(Owner::class, 'id', 'owner_id');
- }
- public function packages()
- {
- return $this->hasMany(OrderPackage::class,'order_id','id');
- }
- public function warehouse()
- {
- return $this->hasOne(Warehouse::class, 'id', 'owner_id');
- }
- public function orderCommodities(){
- return $this->hasMany('App\OrderCommodity','order_id','id');
- }
- public function bin(){
- $bin= $this->hasOne('App\OrderBin','order_id','id');
- if($bin->count()>0)return $bin;
- $this->batch()->first()->assignBins();
- return $this->hasOne('App\OrderBin','order_id','id');
- }
- public function batch(){
- return $this->belongsTo('App\Batch', 'batch_id','id');
- }
- public function getLogisticNumbersAttribute()
- {
- $packages = $this->packages;
- if (!$packages) {
- return [];
- } else {
- $arr = [];
- foreach ($packages as $package) {
- array_push($arr, $package->logistic_number);
- }
- return $arr;
- }
- }
- public function getAmountAttribute()
- {
- $packages = $this->packages;
- if (!$packages) {
- return 0;
- } else {
- $count = 0;
- foreach ($packages as $package) {
- foreach ($package->commodities as $item) {
- $count += $item->amount;
- }
- }
- return $count;
- }
- }
- public function getCommodityPackagesAttribute()
- {
- $packages = $this->packages;
- if (!$packages) {
- return 0;
- } else {
- $count = 0;
- foreach ($packages as $package) {
- foreach ($package->commodities as $item) {
- $count++;
- }
- }
- return $count;
- }
- }
- public function delete()
- {
- $this->packages()->delete();
- return parent::delete();
- }
- public function deleteSafe()
- {
- return parent::delete();
- }
- }
|