Роли, переделывание отчета, изменение на главной странице
This commit is contained in:
@@ -20,9 +20,7 @@ class IndexController extends Controller
|
||||
|
||||
$fillableModel =
|
||||
|
||||
$departments = Department::with(['lpu'])->whereHas('lpu', function ($query) {
|
||||
$query->where('mainlpuid', 1);
|
||||
})->get();
|
||||
$departments = Department::all();
|
||||
|
||||
return Inertia::render('Report/Index', [
|
||||
'depatments' => $departments,
|
||||
|
||||
24
app/Http/Controllers/Web/ReportController.php
Normal file
24
app/Http/Controllers/Web/ReportController.php
Normal file
@@ -0,0 +1,24 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Web;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use Illuminate\Http\Request;
|
||||
use Inertia\Inertia;
|
||||
|
||||
class ReportController extends Controller
|
||||
{
|
||||
public function index(Request $request)
|
||||
{
|
||||
$user = $request->user();
|
||||
$department = $user->department;
|
||||
|
||||
$beds = $department->metrikaDefault()->where('rf_metrika_item_id', 1)->first()->value;
|
||||
|
||||
return Inertia::render('Report/Index', [
|
||||
'department' => [
|
||||
'beds' => $beds
|
||||
],
|
||||
]);
|
||||
}
|
||||
}
|
||||
@@ -3,9 +3,13 @@
|
||||
namespace App\Http\Controllers\Web;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Models\Department;
|
||||
use App\Models\MetrikaForm;
|
||||
use App\Models\MetrikaGroup;
|
||||
use App\Models\MetrikaItem;
|
||||
use App\Models\MetrikaResult;
|
||||
use App\Models\Report;
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
@@ -15,6 +19,64 @@ use Inertia\Inertia;
|
||||
class StatisticController extends Controller
|
||||
{
|
||||
public function index(Request $request)
|
||||
{
|
||||
$user = $request->user();
|
||||
|
||||
$userDepartment = $user->department;
|
||||
|
||||
$data = [];
|
||||
|
||||
$departments = Department::select('department_id', 'name_short')->get();
|
||||
|
||||
foreach ($departments as $department) {
|
||||
$allCount = MetrikaResult::whereHas('report', function ($query) use ($userDepartment, $department) {
|
||||
$query->where('rf_department_id', $department->department_id);
|
||||
})->where('rf_metrika_item_id', 3)
|
||||
->sum(DB::raw('value::integer'));
|
||||
|
||||
$leaveCount = MetrikaResult::whereHas('report', function ($query) use ($userDepartment, $department) {
|
||||
$query->where('rf_department_id', $department->department_id);
|
||||
})->where('rf_metrika_item_id', 7)
|
||||
->sum(DB::raw('value::integer'));
|
||||
|
||||
$consistCount = optional(MetrikaResult::where('rf_metrika_item_id', 8)
|
||||
->whereHas('report', function (Builder $query) use ($department) {
|
||||
$query->where('rf_department_id', $department->department_id);
|
||||
})->join('reports', 'metrika_results.rf_report_id', '=', 'reports.report_id')
|
||||
->select('metrika_results.value')
|
||||
->orderBy('reports.sent_at', 'desc')
|
||||
)->value('value') ?? 0;
|
||||
|
||||
$beds = (int)optional($department->metrikaDefault()
|
||||
->where('rf_metrika_item_id', 1)
|
||||
->first())->value ?? 0;
|
||||
|
||||
$occupiedBeds = (int)optional(Report::where('rf_department_id', $department->department_id)
|
||||
->join('metrika_results', 'reports.report_id', '=', 'metrika_results.rf_report_id')
|
||||
->where('metrika_results.rf_metrika_item_id', 8)
|
||||
->orderBy('reports.sent_at', 'desc')
|
||||
->first())->value ?? 0;
|
||||
|
||||
$percentLoadedBeds = $beds > 0 ? $occupiedBeds * 100 / $beds : 0;
|
||||
|
||||
$data[] = [
|
||||
'department' => $department->name_short,
|
||||
'beds' => $beds,
|
||||
'all' => $allCount,
|
||||
'plan' => '0',
|
||||
'emergency' => '0',
|
||||
'leave' => $leaveCount,
|
||||
'consist' => $consistCount,
|
||||
'percentLoadedBeds' => $percentLoadedBeds,
|
||||
];
|
||||
}
|
||||
|
||||
return Inertia::render('Statistic/Index', [
|
||||
'data' => $data
|
||||
]);
|
||||
}
|
||||
|
||||
public function indexOld(Request $request)
|
||||
{
|
||||
$user = Auth::user();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user