update 20.10.2025
This commit is contained in:
parent
8c11130b5d
commit
a939cd51ef
616 changed files with 84821 additions and 4121 deletions
88
app/Http/Controllers/LevelReportsController.php
Normal file
88
app/Http/Controllers/LevelReportsController.php
Normal file
|
|
@ -0,0 +1,88 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Services\LevelReportService;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Http\Response;
|
||||
|
||||
class LevelReportsController extends Controller
|
||||
{
|
||||
private $levelReportService;
|
||||
|
||||
public function __construct(LevelReportService $levelReportService)
|
||||
{
|
||||
$this->levelReportService = $levelReportService;
|
||||
}
|
||||
|
||||
/**
|
||||
* Zeige Level-Aufstieg Reports
|
||||
*/
|
||||
public function index(Request $request)
|
||||
{
|
||||
// Filter aus Request extrahieren
|
||||
$filters = [
|
||||
'month' => $request->get('month'),
|
||||
'year' => $request->get('year'),
|
||||
'user_id' => $request->get('user_id'),
|
||||
'only_not_updated' => $request->boolean('not_updated')
|
||||
];
|
||||
|
||||
// Lade Level-Aufstiege
|
||||
$promotions = $this->levelReportService->getLevelPromotions($filters);
|
||||
$statistics = $this->levelReportService->getStatistics($promotions);
|
||||
|
||||
// Verfügbare Jahre für Filter
|
||||
$availableYears = range(date('Y'), date('Y') - 5);
|
||||
$availableMonths = [
|
||||
1 => 'Januar',
|
||||
2 => 'Februar',
|
||||
3 => 'März',
|
||||
4 => 'April',
|
||||
5 => 'Mai',
|
||||
6 => 'Juni',
|
||||
7 => 'Juli',
|
||||
8 => 'August',
|
||||
9 => 'September',
|
||||
10 => 'Oktober',
|
||||
11 => 'November',
|
||||
12 => 'Dezember'
|
||||
];
|
||||
|
||||
return view('admin.level-reports.index', compact(
|
||||
'promotions',
|
||||
'statistics',
|
||||
'filters',
|
||||
'availableYears',
|
||||
'availableMonths'
|
||||
));
|
||||
}
|
||||
|
||||
/**
|
||||
* CSV Export
|
||||
*/
|
||||
public function export(Request $request)
|
||||
{
|
||||
// Filter aus Request extrahieren
|
||||
$filters = [
|
||||
'month' => $request->get('month'),
|
||||
'year' => $request->get('year'),
|
||||
'user_id' => $request->get('user_id'),
|
||||
'only_not_updated' => $request->boolean('not_updated')
|
||||
];
|
||||
|
||||
// Lade Level-Aufstiege
|
||||
$promotions = $this->levelReportService->getLevelPromotions($filters);
|
||||
|
||||
if ($promotions->isEmpty()) {
|
||||
return redirect()->back()->with('error', 'Keine Daten für Export gefunden.');
|
||||
}
|
||||
|
||||
// Erstelle CSV
|
||||
$filename = 'level_promotions_' . date('Y-m-d_H-i-s') . '.csv';
|
||||
$filepath = $this->levelReportService->exportToCsv($promotions, $filename);
|
||||
|
||||
// Download CSV
|
||||
return response()->download($filepath, $filename)->deleteFileAfterSend(true);
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue