ultimatepos/Modules/ManagementTools/Routes/web.php

130 lines
8.9 KiB
PHP

<?php
use Modules\ManagementTools\Http\Controllers\DailyReportController;
use Modules\ManagementTools\Http\Controllers\ProjectCategoryController;
use Modules\ManagementTools\Http\Controllers\EmployeeTaskController;
use Modules\ManagementTools\Http\Controllers\InstallController;
use Modules\ManagementTools\Http\Controllers\ScoreCardController;
use Modules\ManagementTools\Http\Controllers\ScoreController;
use Modules\ManagementTools\Http\Controllers\SkillController;
use Modules\ManagementTools\Http\Controllers\TaskReportController;
use Modules\ManagementTools\Http\Controllers\TeamController;
use Modules\ManagementTools\Http\Controllers\TicketController;
use Modules\ManagementTools\Http\Controllers\ToolController;
use Modules\ManagementTools\Http\Controllers\UrgentMessageController;
use Modules\ManagementTools\Http\Controllers\ExecutiveCockpitController;
Route::middleware('web', 'authh', 'auth', 'SetSessionData', 'language', 'timezone', 'AdminSidebarMenu')
->prefix('management-tools')
->group(function () {
Route::get('/install', [InstallController::class, 'index']);
Route::post('/install', [InstallController::class, 'install']);
Route::get('/install/uninstall', [InstallController::class, 'uninstall']);
Route::get('/install/update', [InstallController::class, 'update']);
// Skills
Route::get('/skills/report', [SkillController::class, 'report']);
Route::get('/skills', [SkillController::class, 'index']);
Route::get('/skills/create', [SkillController::class, 'create']);
Route::post('/skills', [SkillController::class, 'store']);
Route::get('/skills/{id}/edit', [SkillController::class, 'edit']);
Route::put('/skills/{id}', [SkillController::class, 'update']);
Route::delete('/skills/{id}', [SkillController::class, 'destroy']);
// Tools
Route::get('/tools', [ToolController::class, 'index']);
Route::get('/tools/create', [ToolController::class, 'create']);
Route::post('/tools', [ToolController::class, 'store']);
Route::get('/tools/{id}/edit', [ToolController::class, 'edit']);
Route::put('/tools/{id}', [ToolController::class, 'update']);
Route::delete('/tools/{id}', [ToolController::class, 'destroy']);
// Daily reports
Route::get('/daily-reports/users', [DailyReportController::class, 'employees']);
Route::get('/daily-reports/UserTasks/counts', [EmployeeTaskController::class, 'tabCounts']);
Route::get('/daily-reports/UserTasks/tab/{tab}', [EmployeeTaskController::class, 'tabContent']);
Route::get('/daily-reports/UserTasks', [EmployeeTaskController::class, 'index']);
Route::get('/daily-reports', [DailyReportController::class, 'index']);
Route::post('/daily-reports', [DailyReportController::class, 'store']);
Route::get('/employee-reports', fn () => redirect()->action([DailyReportController::class, 'employees']));
Route::get('/employee-tasks', fn () => redirect()->action([EmployeeTaskController::class, 'index']));
Route::get('/report-analytics', [DailyReportController::class, 'analytics']);
Route::get('/executive-cockpit', [ExecutiveCockpitController::class, 'index']);
Route::get('/executive-cockpit/content', [ExecutiveCockpitController::class, 'content']);
Route::get('/executive-cockpit/drill-tab', [ExecutiveCockpitController::class, 'drillTab']);
Route::post('/executive-cockpit/targets', [ExecutiveCockpitController::class, 'saveTargets']);
Route::get('/executive-cockpit/pdf', [ExecutiveCockpitController::class, 'exportPdf']);
Route::get('/executive-cockpit/board-pack-pdf', [ExecutiveCockpitController::class, 'exportBoardPackPdf']);
Route::post('/executive-cockpit/notes', [ExecutiveCockpitController::class, 'saveNote']);
Route::post('/daily-reports/{id}/feedback', [DailyReportController::class, 'feedback']);
Route::get('/daily-reports/{id}/comments', [DailyReportController::class, 'comments']);
Route::post('/daily-reports/{id}/comments', [DailyReportController::class, 'storeComment']);
// Phase 2 — employee tasks (CRUD actions; list page at daily-reports/UserTasks)
Route::get('/employee-tasks/create', [EmployeeTaskController::class, 'create']);
Route::post('/employee-tasks', [EmployeeTaskController::class, 'store']);
Route::get('/employee-tasks/submit-form', [EmployeeTaskController::class, 'createSubmitForm']);
Route::post('/employee-tasks/submit-own', [EmployeeTaskController::class, 'submitOwn']);
Route::delete('/employee-tasks/submit-own/{id}', [EmployeeTaskController::class, 'deleteOwn']);
Route::post('/employee-tasks/{id}/approve', [EmployeeTaskController::class, 'approve']);
Route::post('/employee-tasks/{id}/reject', [EmployeeTaskController::class, 'reject']);
Route::get('/employee-tasks/{id}/edit', [EmployeeTaskController::class, 'edit']);
Route::put('/employee-tasks/{id}', [EmployeeTaskController::class, 'update']);
Route::delete('/employee-tasks/{id}', [EmployeeTaskController::class, 'destroy']);
// Project categories (ProfessionalProject)
Route::get('/project-categories', [ProjectCategoryController::class, 'index']);
Route::get('/project-categories/create', [ProjectCategoryController::class, 'create']);
Route::post('/project-categories', [ProjectCategoryController::class, 'store']);
Route::get('/project-categories/{id}/edit', [ProjectCategoryController::class, 'edit']);
Route::put('/project-categories/{id}', [ProjectCategoryController::class, 'update']);
Route::delete('/project-categories/{id}', [ProjectCategoryController::class, 'destroy']);
Route::get('/project-categories/{category_id}/projects', [ProjectCategoryController::class, 'projects']);
Route::get('/task-report', [TaskReportController::class, 'index']);
Route::get('/task-report/user-list', [TaskReportController::class, 'userList']);
Route::get('/task-report/change-timeline/{task_id}/{user_id}/{date?}', [TaskReportController::class, 'changeTimeline']);
Route::post('/task-report/change-timeline', [TaskReportController::class, 'storeTimelineChange']);
Route::get('/task-report/scores/{user_id}/{task_id}', [TaskReportController::class, 'taskScores']);
Route::post('/task-report/scores/{user_id}/{task_id}', [TaskReportController::class, 'storeTaskScore']);
Route::delete('/task-report/scores/{user_id}/{score_id}/{task_id}', [TaskReportController::class, 'destroyTaskScore']);
Route::post('/task-report/timeline', [TaskReportController::class, 'storeTimeLine']);
Route::delete('/task-report/timeline/{id}', [TaskReportController::class, 'destroyTimeLine']);
Route::get('/score-cards', [ScoreCardController::class, 'index']);
Route::get('/score-cards/create', [ScoreCardController::class, 'create']);
Route::post('/score-cards', [ScoreCardController::class, 'store']);
Route::get('/score-cards/{id}/edit', [ScoreCardController::class, 'edit']);
Route::put('/score-cards/{id}', [ScoreCardController::class, 'update']);
Route::delete('/score-cards/{id}', [ScoreCardController::class, 'destroy']);
Route::get('/my-scores', [ScoreController::class, 'myScores']);
Route::get('/scores', [ScoreController::class, 'index']);
Route::get('/scores/create', [ScoreController::class, 'create']);
Route::post('/scores', [ScoreController::class, 'store']);
Route::get('/scores/{id}/edit', [ScoreController::class, 'edit']);
Route::put('/scores/{id}', [ScoreController::class, 'update']);
Route::delete('/scores/{id}', [ScoreController::class, 'destroy']);
Route::get('/urgent-messages', [UrgentMessageController::class, 'index']);
Route::get('/urgent-messages/create', [UrgentMessageController::class, 'create']);
Route::post('/urgent-messages', [UrgentMessageController::class, 'store']);
Route::get('/urgent-messages/{id}/edit', [UrgentMessageController::class, 'edit']);
Route::put('/urgent-messages/{id}', [UrgentMessageController::class, 'update']);
Route::delete('/urgent-messages/{id}', [UrgentMessageController::class, 'destroy']);
Route::get('/team', [TeamController::class, 'index']);
Route::get('/team/{user_id}/edit', [TeamController::class, 'edit']);
Route::put('/team/{user_id}', [TeamController::class, 'update']);
// Support tickets
Route::get('/tickets', [TicketController::class, 'index']);
Route::get('/tickets/create', [TicketController::class, 'create']);
Route::post('/tickets', [TicketController::class, 'store']);
Route::get('/tickets/{id}', [TicketController::class, 'show']);
Route::post('/tickets/{id}/reply', [TicketController::class, 'reply']);
Route::put('/tickets/{id}', [TicketController::class, 'update']);
Route::delete('/tickets/{id}', [TicketController::class, 'destroy']);
});