eloquent($this->applyScopes($this->query())) ->editColumn('moon.region.name', function ($row) { return $row->moon->region->name; }) ->editColumn('moon.constellation.name', function ($row) { return $row->moon->constellation->name; }) ->editColumn('moon.solar_system.name', function ($row) { return $row->moon->solar_system->name; }) ->editColumn('moon.planet.name', function ($row) { return $row->moon->planet->name; }) ->editColumn('moon.solar_system.sovereignty', function ($row) { return view('web::partials.sovereignty', ['sovereignty' => $row->moon->solar_system->sovereignty])->render(); }) ->editColumn('indicators', function ($row) { return view('web::tools.moons.partials.indicators', compact('row'))->render(); }) ->editColumn('action', function ($row) { return view('web::tools.moons.buttons.action', compact('row'))->render(); }) ->editColumn('raw_value', function ($row) { return number_format($row->raw_value, 2) . ' ISK'; }) ->editColumn('refined_value', function ($row) { return number_format($row->refined_value, 2) . ' ISK'; }) ->rawColumns(['moon.solar_system.sovereignty', 'indicators', 'action']) ->with('stats', [ 'ubiquitous' => $this->applyScopes(UniverseMoonReport::query()->ubiquitous())->count(), 'common' => $this->applyScopes(UniverseMoonReport::query()->common())->count(), 'uncommon' => $this->applyScopes(UniverseMoonReport::query()->uncommon())->count(), 'rare' => $this->applyScopes(UniverseMoonReport::query()->rare())->count(), 'exceptional' => $this->applyScopes(UniverseMoonReport::query()->exceptional())->count(), ]) ->toJson(); } /** * @return \Yajra\DataTables\Html\Builder */ public function html() { return $this->builder() ->dom('Brtip') ->columns($this->getColumns()) ->addAction() ->parameters([ 'drawCallback' => 'function(settings) { ids_to_names(); $("[data-toggle=tooltip]").tooltip(); $(".moon-stats .badge-success").text(settings.js> ]) ->postAjax([ 'data' => 'function (d) { d.region_id = $("#dt-filters-region").val() === null ? 0 : $("#dt-filters-region").val(); d.constellation_id = $("#dt-filters-constellation").val() === null ? 0 : $("#dt-filters-constellation").val(); d.system_id = $("#dt-filters-system").val() === null ? 0 : $("#dt-filters-system").val(); d.rank_selection = $("#dt-filters-rank").val() === null ? [] : $("#dt-filters-rank").val(); d.product_selection = $("#dt-filters-product").val() === null ? [] : $("#dt-filters-product").val(); }', ]); } /** * @return mixed */ public function query() { $mining_volume = CorporationIndustryMiningExtraction::BASE_DRILLING_VOLUME; $reprocessing_yield = floatval(setting('reprocessing_yield') ?: 0.80); $hours_per_month = 30 * 24; return UniverseMoonReport::with('moon', 'moon.planet', 'moon.solar_system', 'moon.constellation', 'moon.region', 'moon.solar_system.sovereignty', 'moon.solar_system.sovereignty.faction', 'moon.solar_system.sovereignty.alliance', 'moon.solar_system.sovereignty.corporation', 'content') ->select() //this is not an SQL injection since $mining_volume is a constant int on a class ->selectRaw('(SELECT SUM(rate * ? * ?/invTypes.volume*market_prices.adjusted_price) FROM universe_moon_contents JOIN invTypes ON invTypes.typeID=u> ->selectRaw('(select SUM((select SUM(invTypeMaterials.quantity*market_prices.adjusted_price) from invTypeMaterials join market_prices on market_pr> } /** * @return array */ public function getColumns() { return [ ['data' => 'moon.name', 'title' => trans_choice('web::moons.moon', 1)], ['data' => 'moon.region.name', 'title' => trans_choice('web::moons.region', 1)], ['data' => 'moon.constellation.name', 'title' => trans_choice('web::moons.constellation', 1)], ['data' => 'moon.solar_system.name', 'title' => trans_choice('web::moons.system', 1)], ['data' => 'moon.planet.name', 'title' => trans_choice('web::moons.planet', 1)], ['data' => 'moon.solar_system.sovereignty', 'title' => trans_choice('web::moons.sovereignty', 1), 'orderable' => false, 'searchable' => false], ['data' => 'indicators', 'title' => trans_choice('web::moons.indicator', 0), 'orderable' => false, 'searchable' => false], ['data' => 'raw_value', 'title' => trans('web::moons.raw_value'), 'searchable' => false], ['data' => 'refined_value', 'title' => trans('web::moons.refined_value'), 'searchable' => false], ]; } }