| 
									
										
										
										
											2022-03-06 02:02:12 +11:00
										 |  |  | <?php | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | namespace App\Http\Controllers; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-05-15 01:22:47 +10:00
										 |  |  | use App\Models\DNS; | 
					
						
							| 
									
										
										
										
											2022-05-16 14:42:48 +10:00
										 |  |  | use App\Models\Home; | 
					
						
							| 
									
										
										
										
											2022-05-15 01:22:47 +10:00
										 |  |  | use App\Models\Labels; | 
					
						
							| 
									
										
										
										
											2022-03-06 02:02:12 +11:00
										 |  |  | use App\Models\Pricing; | 
					
						
							| 
									
										
										
										
											2022-05-16 15:43:51 +10:00
										 |  |  | use App\Models\Settings; | 
					
						
							| 
									
										
										
										
											2022-03-06 02:02:12 +11:00
										 |  |  | use App\Process; | 
					
						
							|  |  |  | use Illuminate\Support\Facades\Session; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class HomeController extends Controller | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  |     public function __construct() | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         $this->middleware('auth'); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     public function index() | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |         $p = new Process(); | 
					
						
							|  |  |  |         $p->startTimer(); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-05-16 16:22:19 +10:00
										 |  |  |         //Get & set the settings, 1 minute cache
 | 
					
						
							| 
									
										
										
										
											2022-05-16 15:43:51 +10:00
										 |  |  |         $settings = Settings::getSettings(); | 
					
						
							|  |  |  |         Settings::setSettingsToSession($settings); | 
					
						
							| 
									
										
										
										
											2022-03-06 02:02:12 +11:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-05-16 16:22:19 +10:00
										 |  |  |         //Check for past due date and refresh the due date if so:
 | 
					
						
							|  |  |  |         $due_soon = Home::doDueSoon(Home::dueSoonData()); | 
					
						
							| 
									
										
										
										
											2022-05-16 15:43:51 +10:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-05-16 16:22:19 +10:00
										 |  |  |         //Orders services most recently added first, cached with limit from settings
 | 
					
						
							|  |  |  |         $recently_added = Home::recentlyAdded(); | 
					
						
							| 
									
										
										
										
											2022-03-06 02:02:12 +11:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-05-16 16:22:19 +10:00
										 |  |  |         //Get count tally for each of the services type
 | 
					
						
							|  |  |  |         $service_count = Home::doServicesCount(Home::servicesCount()); | 
					
						
							| 
									
										
										
										
											2022-03-06 02:02:12 +11:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-05-16 16:22:19 +10:00
										 |  |  |         //Get pricing for weekly, monthly, yearly, 2 yearly
 | 
					
						
							|  |  |  |         $pricing_breakdown = Home::breakdownPricing(Pricing::allPricing()); | 
					
						
							| 
									
										
										
										
											2022-03-06 02:02:12 +11:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-05-16 16:22:19 +10:00
										 |  |  |         //Summary of servers specs
 | 
					
						
							|  |  |  |         $server_summary = Home::serverSummary(); | 
					
						
							| 
									
										
										
										
											2022-05-16 14:42:48 +10:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-03-06 02:02:12 +11:00
										 |  |  |         $p->stopTimer(); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-03-31 11:38:21 +11:00
										 |  |  |         $information = [ | 
					
						
							| 
									
										
										
										
											2022-05-16 16:22:19 +10:00
										 |  |  |             'servers' => $service_count['servers'], | 
					
						
							|  |  |  |             'domains' => $service_count['domains'], | 
					
						
							|  |  |  |             'shared' => $service_count['shared'], | 
					
						
							|  |  |  |             'reseller' => $service_count['reseller'], | 
					
						
							|  |  |  |             'misc' => $service_count['other'], | 
					
						
							|  |  |  |             'seedbox' => $service_count['seedbox'], | 
					
						
							| 
									
										
										
										
											2022-05-15 01:22:47 +10:00
										 |  |  |             'labels' => Labels::labelsCount(), | 
					
						
							|  |  |  |             'dns' => DNS::dnsCount(), | 
					
						
							| 
									
										
										
										
											2022-05-16 16:22:19 +10:00
										 |  |  |             'total_services' => $service_count['total'], | 
					
						
							| 
									
										
										
										
											2022-05-16 14:42:48 +10:00
										 |  |  |             'total_inactive' => $pricing_breakdown['inactive_count'], | 
					
						
							|  |  |  |             'total_cost_weekly' => number_format($pricing_breakdown['total_cost_weekly'], 2), | 
					
						
							| 
									
										
										
										
											2023-08-18 19:26:00 +10:00
										 |  |  |             'total_cost_monthly' => number_format($pricing_breakdown['total_cost_monthly'], 2), | 
					
						
							| 
									
										
										
										
											2022-05-16 14:42:48 +10:00
										 |  |  |             'total_cost_yearly' => number_format($pricing_breakdown['total_cost_yearly'], 2), | 
					
						
							|  |  |  |             'total_cost_2_yearly' => number_format(($pricing_breakdown['total_cost_yearly'] * 2), 2), | 
					
						
							| 
									
										
										
										
											2022-03-06 02:02:12 +11:00
										 |  |  |             'due_soon' => $due_soon, | 
					
						
							|  |  |  |             'newest' => $recently_added, | 
					
						
							| 
									
										
										
										
											2022-03-09 13:18:30 +11:00
										 |  |  |             'execution_time' => number_format($p->getTimeTaken(), 2), | 
					
						
							| 
									
										
										
										
											2022-05-29 16:46:55 +10:00
										 |  |  |             'servers_summary' => $server_summary, | 
					
						
							|  |  |  |             'currency' => Session::get('dashboard_currency') | 
					
						
							| 
									
										
										
										
											2023-03-31 11:38:21 +11:00
										 |  |  |         ]; | 
					
						
							| 
									
										
										
										
											2022-03-06 02:02:12 +11:00
										 |  |  | 
 | 
					
						
							|  |  |  |         return view('home', compact('information')); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | } |