
PK 
<?php
use Illuminate\Support\Facades\Route;
/*
|--------------------------------------------------------------------------
| Controllers
|--------------------------------------------------------------------------
*/
use App\Http\Controllers\AdminAuthController;
use App\Http\Controllers\DashboardController;
use App\Http\Controllers\EmployeeController;
use App\Http\Controllers\AttendanceController;
use App\Http\Controllers\PayrollController;
use App\Http\Controllers\PayslipController;
use App\Http\Controllers\ReportController;
use App\Http\Controllers\LoanController;
use App\Http\Controllers\CompanyController;
use App\Http\Controllers\EmployeeSalaryStructureController;
use App\Http\Controllers\SalaryComponentController;
Route::get('/clear-cache', function () {
$exitViewCode = \Artisan::call('view:clear');
$exitRouteCode = \Artisan::call('route:clear');
$exitCacheCode = \Artisan::call('cache:clear');
$exitConfigClearCode = \Artisan::call('config:clear');
$exitConfigCode = \Artisan::call('config:cache');
return 'DONE cache'; //Return anything
});
/*
|--------------------------------------------------------------------------
| ADMIN AUTH (Public Routes)
|--------------------------------------------------------------------------
*/
Route::get('/admin/login', [AdminAuthController::class, 'showLogin'])
->name('admin.login');
Route::post('/admin/login', [AdminAuthController::class, 'login'])
->name('admin.login.post');
Route::post('/admin/logout', [AdminAuthController::class, 'logout'])
->name('admin.logout');
/*
|--------------------------------------------------------------------------
| PROTECTED ROUTES (Login Required)
|--------------------------------------------------------------------------
*/
Route::middleware('admin.auth')->group(function () {
/*
|--------------------------------------------------------------------------
| Dashboard
|--------------------------------------------------------------------------
*/
Route::get('/', function () {
return redirect()->route('dashboard');
});
Route::get('/dashboard', [DashboardController::class, 'index'])
->name('dashboard');
/*
|--------------------------------------------------------------------------
| Clear Cache (Remove in Production if not needed)
|--------------------------------------------------------------------------
*/
/*Route::get('/clear-cache', function () {
\Artisan::call('optimize:clear');
return 'Cache Cleared';
});*/
/*
|--------------------------------------------------------------------------
| Company Settings
|--------------------------------------------------------------------------
*/
Route::prefix('company')->name('company.')->group(function () {
Route::get('settings', [CompanyController::class, 'edit'])
->name('settings');
Route::post('settings', [CompanyController::class, 'update'])
->name('settings.update');
});
/*
|--------------------------------------------------------------------------
| Employee Management
|--------------------------------------------------------------------------
*/
Route::resource('employees', EmployeeController::class);
/*
|--------------------------------------------------------------------------
| Employee Salary Structure
|--------------------------------------------------------------------------
*/
Route::prefix('employees/{employee}')->group(function () {
Route::get('salary-structure',
[EmployeeSalaryStructureController::class, 'create']
)->name('salary-structure.create');
Route::post('salary-structure',
[EmployeeSalaryStructureController::class, 'store']
)->name('salary-structure.store');
Route::put('salary-structure',
[EmployeeSalaryStructureController::class, 'update']
)->name('salary-structure.update');
});
/*
|--------------------------------------------------------------------------
| Attendance
|--------------------------------------------------------------------------
*/
Route::resource('attendance', AttendanceController::class)
->except(['show']);
Route::get('attendance/day/{data}',
[AttendanceController::class,'editDay']
)->name('attendance.editDay');
Route::post('attendance/day/save',
[AttendanceController::class,'saveDay']
)->name('attendance.saveDay');
/*
|--------------------------------------------------------------------------
| Payroll
|--------------------------------------------------------------------------
*/
Route::post('/payroll/bulk-finalize',
[PayrollController::class, 'bulkFinalize']
)->name('payroll.bulkFinalize');
Route::post('/payroll/bulk-delete',
[PayrollController::class, 'bulkDelete']
)->name('payroll.bulkDelete');
Route::get('/payroll/{payroll}/payslip',
[PayrollController::class, 'downloadPayslip']
)->name('payroll.payslip');
Route::resource('payroll', PayrollController::class);
/*
|--------------------------------------------------------------------------
| Payslips
|--------------------------------------------------------------------------
*/
Route::get('payslips/{payroll}',
[PayslipController::class, 'show']
)->name('payslips.show');
Route::get('payslip/{payroll}/download',
[PayslipController::class, 'download']
)->name('payslip.download');
Route::post('payslips/{payroll}/regenerate',
[PayslipController::class, 'regenerate']
)->name('payslips.regenerate');
Route::post('payslips/{payroll}/email',
[PayslipController::class, 'email']
)->name('payslips.email');
/*
|--------------------------------------------------------------------------
| Reports
|--------------------------------------------------------------------------
*/
Route::prefix('reports')->group(function () {
Route::get('pf-ecr',
[ReportController::class, 'pfEcr']
)->name('reports.pf');
Route::get('esi',
[ReportController::class, 'esi']
)->name('reports.esi');
Route::get('professional-tax',
[ReportController::class, 'pt']
)->name('reports.pt');
Route::get('form16/{employee}',
[ReportController::class, 'form16']
)->name('reports.form16');
Route::get('registers',
[ReportController::class, 'registers']
)->name('reports.registers');
});
/*
|--------------------------------------------------------------------------
| Loans
|--------------------------------------------------------------------------
*/
Route::resource('loans', LoanController::class);
Route::get('loan-reports',
[LoanController::class, 'report']
)->name('loan.reports');
Route::get('loans/{loan}/recoveries',
[LoanController::class, 'recoveries']
)->name('loans.recoveries');
/*
|--------------------------------------------------------------------------
| Exports
|--------------------------------------------------------------------------
*/
Route::prefix('exports')->group(function () {
Route::get('employees', [ReportController::class, 'exportEmployees']);
Route::get('payroll', [ReportController::class, 'exportPayroll']);
Route::get('pf', [ReportController::class, 'exportPf']);
Route::get('esi', [ReportController::class, 'exportEsi']);
Route::get('bank-advice', [ReportController::class, 'exportBankAdvice']);
});
/*
|--------------------------------------------------------------------------
| salary components
|--------------------------------------------------------------------------
*/
Route::resource('salary-components', SalaryComponentController::class);
});
/*
|--------------------------------------------------------------------------
| Fallback
|--------------------------------------------------------------------------
*/
Route::fallback(function () {
return redirect()->route('admin.login');
});
Route::post('/admin/logout', [AdminAuthController::class, 'logout'])
->name('admin.logout');


PK 99