
PK 
<?php
use Illuminate\Support\Facades\Route;
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;
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
| All application web routes
|--------------------------------------------------------------------------
*/
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
});
/* ===============================
| Dashboard
|===============================*/
Route::get('/', [DashboardController::class, 'index'])
->name('dashboard');
/* ===============================
| 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}')
->middleware(['web'])
->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 Management
|===============================*/
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 Management
|===============================*/
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');
/* ===============================
| Statutory & 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']);
});
/* ===============================
| Fallback
|===============================*/
Route::fallback(function () {
return redirect()->route('dashboard');
});


PK 99