public function createMonthlyPaymentRequest() { $startDate = Carbon::now()->firstOfMonth()->subMonth(); $endDate = Carbon::now()->firstOfMonth()->subMonth()->lastOfMonth(); $date = $startDate->format('Y-m'); $check = PaymentRequestBaseModel::where(array('publisher_id' => $this->id, 'date' => $date))->first(); $websiteLists = $this->publisherSite->lists('id'); if (empty($check)) { $tracking = new TrackingSummaryBaseModel(); $data = $tracking->sumEarnPerCampaign($websiteLists, $startDate, $endDate); $campaigns = $data['campaign']; $total = $data['total']; $pr = new PaymentRequestBaseModel(); $pr->publisher_id = $this->id; $pr->date = $date; $pr->amount = $total; $pr->save(); if (!empty($campaigns)) { foreach ($campaigns as $campaignID => $campaign) { $prd = new PaymentRequestDetailBaseModel(); $prd->publisher_id = $this->id; $prd->campaign_id = $campaignID; $prd->amount = $campaign['cost']; $prd->impression = $campaign['impression']; $prd->click = $campaign['click']; if ($campaign['click'] != 0 && $campaign['impression'] != 0) { $prd->ctr = $campaign['click'] / $campaign['impression']; } else { $prd->ctr = 0; } $prd->date = $date; $prd->payment_request_id = $pr->id; $prd->save(); } } } }