month = $month; $this->year = $year; } public function getUserBusinessByMonthYear(){ return UserBusiness::select('user_businesses.*') ->where('user_businesses.month', '=', $this->month) ->where('user_businesses.year', '=', $this->year) ->where(function($q) { return $q->where('user_businesses.commission_pp_total', '>', 0) ->orWhere('user_businesses.commission_shop_sales', '>', 0); }) ->get(); } public function addUserCreditItem($userBusiness) { $date = HTMLHelper::getMonth($userBusiness->month).' '.$userBusiness->year; if($userBusiness->commission_shop_sales > 0){ if($this->hasNotUserCreditItem($userBusiness, 1)){ UserCreditItem::create([ 'user_id' => $userBusiness->user_id, 'user_business_id' => $userBusiness->id, 'credit' => $userBusiness->commission_shop_sales, 'message' => 'Provision Shop '.$date, 'status' => 1, ]); } } if($userBusiness->commission_pp_total > 0){ if($this->hasNotUserCreditItem($userBusiness, 2)){ UserCreditItem::create([ 'user_id' => $userBusiness->user_id, 'user_business_id' => $userBusiness->id, 'credit' => $userBusiness->commission_pp_total, 'message' => 'Provision Payline '.$date, 'status' => 2, ]); } } if($userBusiness->commission_growth_total > 0){ if($this->hasNotUserCreditItem($userBusiness, 5)){ UserCreditItem::create([ 'user_id' => $userBusiness->user_id, 'user_business_id' => $userBusiness->id, 'credit' => $userBusiness->commission_growth_total, 'message' => 'Provision Wachstumsbonus '.$date, 'status' => 5, ]); } } return $userBusiness; } public function getUserCreditItemUsersByMonthYear(){ return UserCreditItem::select('user_credit_items.*') ->where('paid', '=', false) ->groupBy('user_id') ->get(); } public function makeCreditPaymentPDF($user_id, $credit_send_mail) { //$user_id = 2; $user = User::findOrFail($user_id); $data = []; if($credit_send_mail){ $data['credit_send_mail'] = false; } $credit_repo = new CreditRepository($user); return $credit_repo->create($data); } private function hasNotUserCreditItem($userBusiness, $status){ return (UserCreditItem::where('user_business_id', $userBusiness->id) ->where('user_id', $userBusiness->user_id)->where('status', $status)->count() > 0) ? false : true; } }