group(function () { // Authentication Route::post('/login', AuthController::class); // Menu Route Route::group(['prefix' => 'menu', 'controller' => MenuController::class], function () { Route::post('/add', 'add'); Route::get('/edit/{id}', 'edit'); Route::put('/update/{id}', 'update'); Route::delete('/delete/{id}', 'delete'); Route::post('/search', 'search'); Route::get('/management/{id}', 'listMenu'); Route::get('/list', 'list'); }); // Role Menu Route Route::group(['prefix' => 'role-menu', 'controller' => RoleMenuController::class], function () { Route::post('/add', 'add'); Route::get('/get-role/{id}', 'listMenu'); Route::put('/update/{id}', 'update'); Route::delete('/delete/{id}', 'delete'); Route::delete('/delete-byrole/{id}', 'deleteByRole'); Route::post('/search', 'search'); }); // auth widdleware Route::middleware('auth')->group(function () { // Dasboard Route Route::group(['prefix' => 'dashboard', 'controller' => DashboardBoDController::class], function () { Route::get('/get-company-cashflow[/{year}]', 'getCompanyCashFlow'); // project expenditure Route::get('/get-invoice-outstanding[/{year}]', 'getInvoiceOutstanding'); // project invoice vs cash in Route::get('/get-total-project-per-schedule-health[/{year}]', 'getTotalProjectPerScheduleHealth'); Route::get('/get-total-project-per-budget-health[/{year}]', 'getTotalProjectPerBudgetHealth'); Route::get('/get-total-project-schedule-health-per-division[/{year}]', 'getTotalProjectScheduleHealthPerDivision'); Route::get('/get-total-project-budget-health-per-division[/{year}]', 'getTotalProjectBudgetHealthPerDivision'); Route::get('/get-total-project-per-phase[/{year}]', 'getTotalProjectPerPhase'); Route::get('/get-total-project-per-division[/{year}]', 'getTotalProjectPerDivision'); Route::get('/get-total-project-value-per-division[/{year}]', 'getTotalProjectValuePerDivision'); Route::get('/get-detail-expenditure[/{year}]', 'getDetailExpenditure'); }); // Role Route Route::group(['prefix' => 'role', 'controller' => RoleController::class], function () { Route::post('/search', 'search'); Route::post('/add', 'add'); Route::get('/edit/{id}', 'edit'); Route::put('/update/{id}', 'update'); Route::delete('/delete/{id}', 'delete'); Route::get('/list', 'list'); }); // document-project Route Route::group(['prefix' => 'document-project', 'controller' => ProjectDokumenController::class], function () { Route::post('/upload', 'uploadProjectDokumen'); Route::get('/get/{id}', 'dokumenByProyekId'); Route::delete('/delete/{id}', 'delete'); Route::post('/search', 'searchDocProject'); Route::get('/download/{id}', 'downloadDokumen'); }); // document-activity Route Route::group(['prefix' => 'document-activity', 'controller' => ActivityDokumenController::class], function () { Route::post('/upload', 'uploadProjectDokumen'); Route::get('/get/{id}', 'dokumenByActivityId'); Route::delete('/delete/{id}', 'delete'); Route::post('/search', 'searchDocProject'); Route::get('/download/{id}', 'downloadDokumen'); }); // Project Route Route::group(['prefix' => 'project', 'controller' => ProjectController::class], function () { Route::post('/search', 'search'); Route::post('/add', 'add'); Route::put('/update/{id}', 'update'); Route::get('/edit/{id}', 'edit'); Route::get('/detail/{id}', 'detail'); Route::delete('/delete/{id}', 'delete'); Route::get('/list', 'list'); Route::get('/set-baseline/{gantt_id}', 'setBaseline'); Route::get('/synchronize-report/{gantt_id}', 'synchronizeReport'); Route::get('/manpower/{proyek_id}', 'getManpower'); Route::get('/manpower/assigned/{gantt_id}', 'getAssignedHR'); Route::post('/get-s-curve', 'getSCurve'); Route::post('/calculate-s-curve', 'calculateSCurve'); Route::post('/s-curve-command', 'sCurveCommand'); Route::post('/get-linear-s-curve', 'getLinearSCurve'); Route::post('/get-overdue-activities', 'getOverdueActivities'); Route::post('/get-integration-invoice', 'getInvoiceIntegration'); Route::post('/get-report-distribution', 'getReportDistribution'); }); // project-charter Route Route::group(['prefix' => 'project-charter', 'controller' => ProjectCharterController::class], function () { Route::post('/search', 'search'); Route::post('/add', 'add'); Route::put('/update/{id}', 'update'); }); // divisi Route Route::group(['prefix' => 'divisi', 'controller' => DivisiController::class], function () { Route::post('/add', 'add'); Route::get('/edit/{id}', 'edit'); Route::put('/update/{id}', 'update'); Route::post('/search', 'search'); Route::delete('/delete/{id}', 'delete'); Route::get('/list', 'list'); }); // config-alert Route Route::group(['prefix' => 'config-alert', 'controller' => ConfigAlertController::class], function () { Route::post('/search', 'search'); Route::post('/add', 'add'); Route::get('/edit/{id}', 'edit'); Route::put('/update/{id}', 'update'); Route::delete('/delete/{id}', 'delete'); Route::get('/list', 'list'); }); // config-alert-to-user Route Route::group(['prefix' => 'config-alert-to-user', 'controller' => ConfigAlertUserController::class], function () { Route::post('/search', 'search'); Route::post('/add', 'add'); Route::put('/update/{id}', 'update'); Route::delete('/delete/{id}', 'delete'); }); Route::get('config-alert/get-user/{id}', [ConfigAlertUserController::class, 'getConfigUser']); // human-resource Route Route::group(['prefix' => 'human-resource', 'controller' => HumanResourceController::class], function () { Route::post('/search', 'search'); Route::post('/add', 'add'); Route::get('/edit/{id}', 'edit'); Route::put('/update/{id}', 'update'); Route::delete('/delete/{id}', 'delete'); Route::get('/list', 'list'); Route::get('/select', 'select'); Route::post('/check-old-password/{id}', 'checkOldPassword'); Route::get('/sync', 'sync'); }); // project-role Route::group(['prefix' => 'project-role', 'controller' => ProjectRoleController::class], function () { Route::post('/search', 'search'); Route::post('/add', 'add'); Route::get('/edit/{id}', 'edit'); Route::put('/update/{id}', 'update'); Route::delete('/delete/{id}', 'delete'); Route::get('/list', 'list'); Route::get('/select', 'select'); }); // project-type Route Route::group(['prefix' => 'project-type', 'controller' => ProjectTypeController::class], function () { Route::post('/search', 'search'); Route::post('/add', 'add'); Route::get('/edit/{id}', 'edit'); Route::put('/update/{id}', 'update'); Route::delete('/delete/{id}', 'delete'); Route::get('/list', 'list'); }); // project-phase Route Route::group(['prefix' => 'project-phase', 'controller' => ProjectPhaseController::class], function () { Route::post('/search', 'search'); Route::post('/add', 'add'); Route::get('/edit/{id}', 'edit'); Route::put('/update/{id}', 'update'); Route::delete('/delete/{id}', 'delete'); Route::get('/list', 'list'); }); // user-to-project Route Route::post('/user-to-project/assign', UserProyekController::class); // request-material Route Route::group(['prefix' => 'request-material', 'controller' => RequestMaterialController::class], function () { Route::post('/add', 'add'); Route::post('/search', 'search'); Route::get('/edit/{id}', 'edit'); Route::put('/update/{id}', 'update'); Route::delete('/delete/{id}', 'delete'); Route::get('/list', 'list'); Route::get('/get-material-integration', 'getMaterialIntegration'); Route::put('/update-warehouse-site/{id}', 'updateWarehouseSite'); }); // material-to-project Route Route::post('/material-to-project/assign', [MaterialProjectController::class, 'assignMaterial']); // material-resource Route Route::group(['prefix' => 'material-resource', 'controller' => MaterialResourceController::class], function () { Route::post('/add', 'add'); Route::post('/search', 'search'); Route::get('/update/{id}', 'edit'); Route::put('/update/{id}', 'update'); Route::delete('/delete/{id}', 'delete'); Route::get('/list', 'list'); Route::get('/select', 'select'); }); // tools-to-project Route Route::group(['prefix' => 'tools-to-project', 'controller' => ToolsProjectController::class], function () { Route::post('/assign', 'assignTools'); Route::get('/search', 'searchTools'); }); // tools-resource Route Route::group(['prefix' => 'tools-resource', 'controller' => ToolsResourceController::class], function () { Route::post('/add', 'add'); Route::post('/search', 'search'); Route::get('/edit/{id}', 'edit'); Route::put('/update/{id}', 'update'); Route::delete('/delete/{id}', 'delete'); Route::get('/list', 'list'); Route::get('/select', 'select'); }); // req-tools Route Route::group(['prefix' => 'req-tools', 'controller' => ToolsRequestController::class], function () { Route::post('/add', 'add'); Route::get('/edit/{id}', 'edit'); Route::put('/update/{id}', 'update'); Route::post('/search', 'search'); Route::delete('/delete/{id}', 'delete'); Route::get('/list', 'list'); }); // Version Gantt Route Route::group(['prefix' => 'version-gantt', 'controller' => VersionGanttController::class], function () { Route::post('/add', 'add'); Route::get('/edit/{id}', 'edit'); Route::put('/update/{id}', 'update'); Route::post('/search', 'search'); Route::delete('/delete/{id}', 'delete'); Route::get('/list', 'list'); }); // user-to-version-gantt Route Route::group(['prefix' => 'user-to-version-gantt', 'controller' => UserToVersionGanttController::class], function () { Route::post('/add', 'UserToVersionGanttController@add'); Route::post('/add-multiple', 'UserToVersionGanttController@addMultiple'); Route::get('/edit/{id}', 'UserToVersionGanttController@edit'); Route::put('/update/{id}', 'UserToVersionGanttController@update'); Route::post('/search', 'UserToVersionGanttController@search'); Route::delete('/delete/{id}', 'UserToVersionGanttController@delete'); Route::get('/list', 'UserToVersionGanttController@list'); Route::get('/get-by-gantt/{gantt_id}', 'UserToVersionGanttController@getByUserGantt'); }); // user-to-activity Route Route::group(['prefix' => 'user-to-activity', 'controller' => UserToActivityController::class], function () { Route::post('/add', 'add'); Route::post('/add-multiple', 'addMultiple'); Route::get('/edit/{id}', 'edit'); Route::put('/update/{id}', 'update'); Route::post('/search', 'search'); Route::post('/list-filtered', 'listFiltered'); Route::delete('/delete/{id}', 'delete'); Route::get('/list', 'list'); Route::get('/datatables', 'datatables'); }); Route::controller(ActivityController::class)->group(function () { // sumVolActualM Route Route::get('/sumVolActualM/{id}', 'sumVolumeActualMaterial'); // activity Route Route::prefix('activity')->group(function () { Route::get('/{id}/{proyek_id}/get', 'getByGanttId'); Route::get('/search', 'search'); Route::post('/import', 'import'); Route::post('/import-update', 'importUpdate'); Route::post('/import-old', 'importOld'); }); // task Route Route::prefix('task')->group(function () { Route::post('', 'add'); Route::get('/edit/{id}', 'edit'); Route::put('/{id}', 'update'); Route::put('/update-regular/{id}', 'updateRegular'); Route::delete('/{id}', 'delete'); Route::get('/get-update/{id}', 'getUpdate'); }); Route::post('/tmp-import/upload', 'uploadTmpImport'); }); // link Route Route::group(['prefix' => 'link', 'controller' => LinkController::class], function () { Route::post('', 'add'); Route::put('/{id}', 'update'); Route::delete('/{id}', 'delete'); }); // template-gantt Route Route::group(['prefix' => 'template-gantt', 'controller' => TemplateGanttController::class], function () { Route::post('/add', 'add'); Route::get('/edit/{id}', 'edit'); Route::put('/update/{id}', 'update'); Route::post('/search', 'search'); Route::delete('/delete/{id}', 'delete'); Route::get('/list', 'list'); Route::get('/get-tree/{id}', 'getTreeByTypeProject'); }); // comment-activity Route Route::group(['prefix' => 'comment-activity', 'controller' => CommentActivityController::class], function () { Route::post('/add', 'add'); Route::get('/edit/{id}', 'edit'); Route::put('/update/{id}', 'update'); Route::post('/search', 'search'); Route::delete('/delete/{id}', 'delete'); Route::get('/list', 'list'); }); Route::group(['prefix' => 'presence', 'controller' => PresenceController::class], function () { Route::post('/add', 'add'); Route::get('/edit/{id}', 'edit'); Route::put('/update/{id}', 'update'); Route::post('/search', 'search'); Route::delete('/delete/{id}', 'delete'); Route::get('/list', 'list'); Route::get('/clockinout/{id}', 'clockinout'); Route::post('/reportk3', 'reportK3'); Route::get('/bulk-update-location', 'bulkUpdateLocation'); }); // permit Route Route::group(['prefix' => 'permit', 'controller' => AbsentController::class], function () { Route::post('/add', 'add'); Route::get('/edit/{id}', 'edit'); Route::put('/update/{id}', 'update'); Route::post('/search', 'search'); Route::delete('/delete/{id}', 'delete'); Route::get('/list', 'list'); }); // assign-tools Route Route::group(['prefix' => 'assign-tools', 'controller' => AssignToolsController::class], function () { Route::post('/add', 'add'); Route::get('/edit/{id}', 'edit'); Route::put('/update/{id}', 'update'); Route::post('/search', 'search'); Route::delete('/delete/{id}', 'delete'); Route::get('/list', 'list'); Route::get('/datatables', 'datatables'); }); // assign-material Route Route::group(['prefix' => 'assign-material', 'controller' => AssignMaterialController::class], function () { Route::post('/add', 'add'); Route::get('/edit/{id}', 'edit'); Route::put('/update/{id}', 'update'); Route::post('/search', 'search'); Route::delete('/delete/{id}', 'delete'); Route::get('/list', 'list'); Route::get('/datatables', 'datatables'); Route::get('/datatablesForReportActivity', 'datatablesForReportActivity'); Route::post('/ForReportActivityByMaterial', 'ForReportActivityByMaterial'); }); // image Route Route::group(['prefix' => 'image', 'controller' => ImageController::class], function () { Route::post('/search', 'search'); Route::delete('/delete/{id}', 'delete'); Route::delete('/delete/{id}/{category}', 'deleteByRef'); Route::post('/upload', 'uploadImage'); Route::get('/{id}/{category}', 'getByRefId'); }); // panic-button Route Route::group(['prefix' => 'panic-button', 'controller' => PanicButtonController::class], function () { Route::post('/add', 'add'); Route::get('/edit/{id}', 'edit'); Route::put('/update/{id}', 'update'); Route::post('/search', 'search'); Route::delete('/delete/{id}', 'delete'); Route::get('/list', 'list'); }); // rate-sallary Route Route::group(['prefix' => 'rate-sallary', 'controller' => RateSallaryController::class], function () { Route::post('/add', 'add'); Route::get('/edit/{id}', 'edit'); Route::put('/update/{id}', 'update'); Route::post('/search', 'search'); Route::delete('/delete/{id}', 'delete'); Route::get('/list', 'list'); }); // project-participants Route Route::group(['prefix' => 'project-participants', 'controller' => ProjectParticipantsController::class], function () { Route::post('/add', 'add'); Route::get('/edit/{id}', 'edit'); Route::put('/update/{id}', 'update'); Route::post('/search', 'search'); Route::delete('/delete/{id}', 'delete'); Route::delete('/delete-by-proyek/{id}', 'deleteByProyek'); Route::get('/list', 'list'); Route::get('/{where}/{val}', 'customWhere'); }); // project-approval Route Route::group(['prefix' => 'project-approval', 'controller' => ProjectApprovalController::class], function () { Route::post('/add', 'add'); Route::get('/edit/{id}', 'edit'); Route::put('/update/{id}', 'update'); Route::post('/search', 'search'); Route::delete('/delete/{id}', 'delete'); Route::delete('/delete-by-proyek/{id}', 'deleteByProyek'); Route::get('/list', 'list'); Route::get('/{where}/{val}', 'customWhere'); }); // project-milestone Route Route::group(['prefix' => 'project-milestone', 'controller' => ProjectMileStoneController::class], function () { Route::post('/add', 'add'); Route::get('/edit/{id}', 'edit'); Route::put('/update/{id}', 'update'); Route::post('/search', 'search'); Route::delete('/delete/{id}', 'delete'); Route::delete('/delete-by-proyek/{id}', 'deleteByProyek'); Route::get('/list', 'list'); Route::get('/select', 'select'); Route::get('/{where}/{val}', 'customWhere'); }); // report-activity Route Route::group(['prefix' => 'report-activity', 'controller' => ReportActivityController::class], function () { Route::post('/add', 'add'); Route::get('/edit/{id}', 'edit'); Route::put('/update/{id}', 'update'); Route::post('/search', 'search'); Route::delete('/delete/{id}', 'delete'); Route::get('/list', 'list'); Route::post('/search-point', 'searchPoint'); Route::get('/datatables', 'datatables'); }); // report-activity-material Route Route::group(['prefix' => 'report-activity-material', 'controller' => ReportActivityMaterialController::class], function () { Route::post('/add', 'add'); Route::post('/search', 'search'); Route::delete('/delete/{id}', 'delete'); Route::get('/list', 'list'); Route::get('/datatables', 'datatables'); Route::post('/update-status', 'updateStatusStartFinish'); }); // waypoint Route Route::group(['prefix' => 'waypoint', 'controller' => WaypointController::class], function () { Route::post('/add', 'add'); Route::post('/add-bulk', 'addBulk'); Route::get('/edit/{id}', 'edit'); Route::put('/update/{id}', 'update'); Route::post('/search', 'search'); Route::delete('/delete/{id}', 'delete'); Route::get('/list', 'list'); }); // holiday Route Route::group(['prefix' => 'holiday', 'controller' => HolidayController::class], function () { Route::post('/add', 'add'); Route::get('/edit/{id}', 'edit'); Route::put('/update/{id}', 'update'); Route::post('/search', 'search'); Route::delete('/delete/{id}', 'delete'); Route::get('/list', 'list'); Route::get('/datatables', 'datatables'); }); // satuan Route Route::group(['prefix' => 'satuan', 'controller' => SatuanController::class], function () { Route::post('/add', 'add'); Route::get('/edit/{id}', 'edit'); Route::put('/update/{id}', 'update'); Route::post('/search', 'search'); Route::delete('/delete/{id}', 'delete'); Route::get('/list', 'list'); }); // checklist-k3 Route Route::group(['prefix' => 'checklist-k3', 'controller' => ChecklistK3Controller::class], function () { Route::post('/add', 'add'); Route::get('/edit/{id}', 'edit'); Route::put('/update/{id}', 'update'); Route::post('/search', 'search'); Route::delete('/delete/{id}', 'delete'); Route::get('/list', 'list'); }); // report-k3 Route Route::group(['prefix' => 'report-k3', 'controller' => ReportK3Controller::class], function () { Route::post('/add', 'add'); Route::get('/edit/{id}', 'edit'); Route::put('/update/{id}', 'update'); Route::post('/search', 'search'); Route::delete('/delete/{id}', 'delete'); Route::get('/list', 'list'); }); // report-k3-detail Route Route::group(['prefix' => 'report-k3-detail', 'controller' => ReportK3DetailController::class], function () { Route::post('/add', 'add'); Route::get('/edit/{id}', 'edit'); Route::put('/update/{id}', 'update'); Route::post('/search', 'search'); Route::delete('/delete/{id}', 'delete'); Route::get('/list', 'list'); }); // user-to-proyek Route Route::group(['prefix' => 'user-to-proyek', 'controller' => UserToProyekController::class], function () { Route::post('/add', 'add'); Route::get('/edit/{id}', 'edit'); Route::put('/update/{id}', 'update'); Route::post('/search', 'search'); Route::delete('/delete/{id}', 'delete'); Route::get('/list', 'list'); Route::get('/select', 'select'); Route::get('/get-employee-integration', 'getEmployeeIntegration'); }); // folder-document-proyek Route Route::group(['prefix' => 'folder-document-proyek', 'controller' => FolderDocumentProyekController::class], function () { Route::post('/add', 'add'); Route::get('/edit/{id}', 'edit'); Route::put('/update/{id}', 'update'); Route::post('/search', 'search'); Route::delete('/delete/{id}', 'delete'); Route::get('/list', 'list'); Route::get('/get-tree/{id}', 'getTree'); }); // office-hours Route Route::group(['prefix' => 'office-hours', 'controller' => OfficeHoursController::class], function () { Route::post('/add', 'add'); Route::get('/edit/{id}', 'edit'); Route::put('/update/{id}', 'update'); Route::post('/search', 'search'); Route::delete('/delete/{id}', 'delete'); Route::get('/list', 'list'); }); // gantt-show-hide Route Route::group(['prefix' => 'gantt-show-hide', 'controller' => ShowHideColumnController::class], function () { Route::get('/get-by-gantt/{gantt_id}', 'getByUserGantt'); Route::post('/add', 'add'); Route::post('/update/{gantt_id}', 'update'); Route::get('/get-column-by-type/{type}', 'getColumnByType'); }); // shift Route Route::group(['prefix' => 'shift', 'controller' => ShiftController::class], function () { Route::post('/add', 'add'); Route::get('/edit/{id}', 'edit'); Route::put('/update/{id}', 'update'); Route::post('/search', 'search'); Route::delete('/delete/{id}', 'delete'); Route::get('/list', 'list'); }); // user-monthly-shift Route Route::group(['prefix' => 'user-monthly-shift', 'controller' => UserMonthlyShiftController::class], function () { Route::post('/add', 'add'); Route::put('/update/{id}', 'update'); Route::post('/search', 'search'); Route::delete('/delete/{id}', 'delete'); Route::delete('/delete-at/{yyyymm}', 'deleteYYYYMM'); Route::get('/list', 'list'); Route::post('/import', 'import'); Route::get('/list/{yyyymm}', 'listYYYYMM'); }); // user-to-shift Route::group(['prefix' => 'user-to-shift', 'controller' => UserToShiftController::class], function () { Route::post('/add', 'add'); Route::get('/edit/{id}', 'edit'); Route::put('/update/{id}', 'update'); Route::post('/search', 'search'); Route::delete('/delete/{id}', 'delete'); Route::get('/list', 'list'); }); // control-monitoring & currency Route Route::post('/control-monitoring/search', [ControlMonitoringController::class, 'search']); Route::get('/currency/list', [CurrencyController::class, 'list']); // project-to-checklist-k3 Route Route::group(['prefix' => 'project-to-checklist-k3', 'controller' => ProjectToChecklistK3Controller::class], function () { Route::post('/add', 'add'); Route::post('/add-multiple', 'addMultiple'); Route::get('/edit/{id}', 'edit'); Route::put('/update/{id}', 'update'); Route::post('/search', 'search'); Route::delete('/delete/{id}', 'delete'); Route::get('/list', 'list'); }); // project-comment Route Route::group(['prefix' => 'project-comment', 'controller' => ProjectCommentController::class], function () { Route::post('/add', 'add'); Route::put('/update/{id}', 'update'); Route::post('/search', 'search'); }); // hierarchy-ftths Route Route::group(['prefix' => 'hierarchy-ftths', 'controller' => HierarchyFtthController::class], function () { Route::get('', 'index'); Route::post('', 'store'); Route::post('/search', 'search'); Route::get('/{id}', 'show'); Route::put('/{id}', 'update'); Route::delete('/{id}', 'destroy'); Route::get('/tree/{project_id}', 'getTreeByProject'); Route::get('/tree-gantt/{gantt_id}', 'getTreeByGantt'); }); // map-monitoring Route Route::post('/map-monitoring/search', [MapMonitoringController::class, 'search']); }); // End Auth Middleware }); // End cors Middleware