payments = $payments; $this->format = $httpStatusCode; $this->admin_logs = $admin_logs; $this->ratings = $ratings; $this->mobileAnalytics = $mobileAnalytics; $this->registration = $registration; } /** * TOP UP REPORT * * */ public function top_up(Request $request) { $params = [ 'search' => ($request->has('_search') ? $request->get('_search') : NULL), 'page_size' => ($request->has('page_size') ? $request->get('page_size') : 10), 'page' => ($request->has('page') ? $request->get('page') : 10), 'date_start' => ($request->has('date_start') ? $request->get('date_start') : null), 'date_end' => ($request->has('date_end') ? $request->get('date_end') : null), 'sorting' => ParameterHelper::prepareSortingParameter($request) ]; if(ParameterHelper::validateStartEndDate($params)) { return $this->format->unprocessableEntity('Start date must not be greater than end date'); } $list = $this->payments->report_topUp($params); if(count($list)) { $additionals = $this->format->success("Success",[],false); $data = ReportTopUpResource::collection($list)->additional($additionals); return $data->response()->setStatusCode(200); } else { return $this->format->success("No records found",[]); } } public function export_top_up() { $filename = "reports_top_up" . date("mdY") . ".csv"; $this->admin_logs->log(0,'REPORT_TOPUP','EXPORT',$filename); return Excel::download(new ReportTopUpExport($this->payments), $filename); } /** * STATION RATING REPORT * * */ public function station_rating(Request $request) { $params = [ 'search' => ($request->has('_search') ? $request->get('_search') : NULL), 'page_size' => ($request->has('page_size') ? $request->get('page_size') : 10), 'page' => ($request->has('page') ? $request->get('page') : 10), 'date_start' => ($request->has('date_start') ? $request->get('date_start') : null), 'date_end' => ($request->has('date_end') ? $request->get('date_end') : null), 'sorting' => ParameterHelper::prepareSortingParameter($request) ]; if(ParameterHelper::validateStartEndDate($params)) { return $this->format->unprocessableEntity('Start date must not be greater than end date'); } $list = $this->ratings->report_stationRatings($params); if(count($list)) { $additionals = $this->format->success("Success",[],false); $data = ReportStationRatingsResource::collection($list)->additional($additionals); return $data->response()->setStatusCode(200); } else { return $this->format->success("No records found",[]); } } public function export_station_rating() { $filename = "reports_station_rating" . date("mdY") . ".csv"; $this->admin_logs->log(0,'REPORT_STATIONRATINGS','EXPORT',$filename); return Excel::download(new ReportStationRatingsExport($this->ratings), $filename); } /** * MOBILE USAGE REPORT * * */ public function mobile_usage(Request $request) { $params = [ 'page_size' => ($request->has('page_size') ? $request->get('page_size') : 10), 'page' => ($request->has('page') ? $request->get('page') : 10), 'date_start' => ($request->has('date_start') ? $request->get('date_start') : null), 'date_end' => ($request->has('date_end') ? $request->get('date_end') : null), 'sorting' => ParameterHelper::prepareSortingParameter($request) ]; if(ParameterHelper::validateStartEndDate($params)) { return $this->format->unprocessableEntity('Start date must not be greater than end date'); } $list = $this->mobileAnalytics->report_mobileUsage($params); if(count($list)) { $additionals = $this->format->success("Success",[],false); $data = ReportMobileUsageResource::collection($list)->additional($additionals); return $data->response()->setStatusCode(200); } else { return $this->format->success("No records found",[]); } } public function export_mobile_usage() { $filename = "reports_mobile_usage" . date("mdY") . ".csv"; $this->admin_logs->log(0,'REPORT_MOBILEUSAGE','EXPORT',$filename); return Excel::download(new ReportMobileUsageExport($this->mobileAnalytics), $filename); } /** * REGISTRATION * * */ public function registration(Request $request) { $params = [ 'page_size' => ($request->has('page_size') ? $request->get('page_size') : 10), 'page' => ($request->has('page') ? $request->get('page') : 10), 'date_start' => ($request->has('date_start') ? $request->get('date_start') : null), 'date_end' => ($request->has('date_end') ? $request->get('date_end') : null), 'sorting' => ParameterHelper::prepareSortingParameter($request) ]; $list = $this->registration->report_registration($params); if(count($list)){ $additionals = $this->format->success("Success",[],false); $data = RegistrationResource::collection($list)->additional($additionals); return $data->response()->setStatusCode(200); }else{ return $this->format->success("No records found",[]); } } public function export_registration() { $filename = "registration" . date("mdY") . ".csv"; $this->admin_logs->log(0,'REPORT_REGISTRATION','EXPORT',$filename); return Excel::download(new ReportRegistrationExport($this->registration), $filename); } }