where(function ($query) { $query->where(function ($query) { $query->where('admin_status', '6') ->where(function ($query) { $query->where('term', 'x2_cash') ->orwhere('term', 'x2_cheque') ->orwhere('term', 'x2_ba'); }); }) ->orwhere(function ($query) { $query->where('admin_status', '7') ->where(function ($query) { $query->where('term', 'x1_cash') ->orwhere('term', 'x1_cheque') ->orwhere('term', 'x1_ba'); }); }); })->where('is_cancel', 0); } public function scopeInCompleteOrders($query){ return $query->where(function ($query) { $query->where(function ($query) { $query->where('admin_status', '<', '6') ->where(function ($query) { $query->where('term', 'x2_cash') ->orwhere('term', 'x2_cheque') ->orwhere('term', 'x2_ba'); }); }) ->orwhere(function ($query) { $query->where('status', '<', '7') ->where(function ($query) { $query->where('term', 'x1_cash') ->orwhere('term', 'x1_cheque') ->orwhere('term', 'x1_ba'); }); }); })->where('is_cancel', 0); } public function scopeUserBooking($query, $userId){ if($userId){ return $query->where('user_id', $userId); } return $query; } public function user(){ return $this->belongsTo(User::class); } public function supplierBooking(){ return $this->hasOne(SupplierBooking::class); } public function chinaBankSlip(){ return $this->hasMany(ChinaBankSlip::class); } public function userBankSlip(){ return $this->hasOne(UserBankSlip::class); } public function purchaseOrder(){ return $this->hasOne(PurchaseOrder::class); } public function invoice(){ return $this->hasOne(Invoice::class); } public static function boot() { parent::boot(); self::deleting(function($booking) { $booking->userBankSlip()->delete(); $booking->supplierBooking()->delete(); $booking->chinaBankSlip()->each(function($bankslip) { $bankslip->delete(); }); $booking->purchaseOrder()->delete(); $booking->invoice()->delete(); }); } }