![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/job-board.corals.io/Corals/modules/Reservation/Widgets/ |
<?php namespace Corals\Modules\Reservation\Widgets; use \Corals\Modules\Reservation\Charts\TopServicesCategories; use Corals\Modules\Reservation\Models\Service; class TopServicesCategoriesWidget { function run($args) { $data = Service::query() ->join('utility_model_has_category', function ($joinCategories) { $joinCategories->on('res_services.id', 'utility_model_has_category.model_id') ->where('utility_model_has_category.model_type', getMorphAlias(Service::class)); })->join('utility_categories', 'utility_model_has_category.category_id', 'utility_categories.id') ->leftJoin('res_reservations', function ($joinReservations) { $joinReservations->on('res_services.id', 'res_reservations.object_id') ->where('res_reservations.object_type', getMorphAlias(Service::class)); })->groupBy('utility_model_has_category.category_id') ->selectRaw("count(res_reservations.id) as res_count, utility_categories.name as cat_name") ->pluck('res_count', 'cat_name') ->toArray(); $chart = new TopServicesCategories(); $chart->labels(array_keys($data)); $chart->dataset(trans('Reservation::labels.widget.top_services_categories'), 'pie', array_values($data)); $chart->options([ 'plugins' => '{ colorschemes: { scheme: \'brewer.Paired12\' } }' ]); return view('Corals::chart')->with(['chart' => $chart])->render(); } }