40 lines
3.0 KiB
PHP
40 lines
3.0 KiB
PHP
<?php
|
|
|
|
use Illuminate\Support\Facades\Route;
|
|
use Modules\FinancialManagement\Http\Controllers\FinanceController;
|
|
|
|
Route::middleware(['web', 'auth', 'permission:finance.access'])->group(function () {
|
|
// Invoices
|
|
Route::get('finance', [FinanceController::class, 'index'])->name('finance.index');
|
|
Route::get('finance/create', [FinanceController::class, 'create'])->name('finance.create');
|
|
Route::post('finance', [FinanceController::class, 'store'])->name('finance.store');
|
|
Route::get('finance/{invoice}', [FinanceController::class, 'show'])->name('finance.show');
|
|
|
|
// Invoice lifecycle
|
|
Route::patch('finance/{invoice}/submit', [FinanceController::class, 'submit'])->name('finance.submit');
|
|
Route::patch('finance/{invoice}/approve', [FinanceController::class, 'approve'])->name('finance.approve');
|
|
Route::patch('finance/{invoice}/reject', [FinanceController::class, 'reject'])->name('finance.reject');
|
|
Route::patch('finance/{invoice}/send', [FinanceController::class, 'send'])->name('finance.send');
|
|
Route::post('finance/{invoice}/send-payment-proof', [FinanceController::class, 'sendPaymentProof'])->name('finance.send-payment-proof');
|
|
Route::patch('finance/{invoice}/receive-payment', [FinanceController::class, 'receivePayment'])->name('finance.receive-payment');
|
|
Route::get('finance/{invoice}/payment-proof/view', [FinanceController::class, 'viewPaymentProof'])->name('finance.payment-proof.view');
|
|
Route::post('finance/{invoice}/apply-penalty', [FinanceController::class, 'applyPenalty'])->name('finance.apply-penalty');
|
|
Route::post('finance/{invoice}/payment', [FinanceController::class, 'recordPayment'])->name('finance.payment');
|
|
Route::patch('finance/{invoice}/confirm-payment', [FinanceController::class, 'confirmPayment'])->name('finance.confirm-payment');
|
|
|
|
// Retention
|
|
Route::get('retention', [FinanceController::class, 'retention'])->name('retention.index');
|
|
Route::post('retention/projects/{project}/submit', [FinanceController::class, 'submitRetentionRelease'])->name('retention.submit');
|
|
Route::patch('retention/{retentionEntry}/paid', [FinanceController::class, 'markRetentionAsPaid'])->name('retention.paid');
|
|
Route::patch('retention/{retentionEntry}/confirm', [FinanceController::class, 'confirmRetentionPayment'])->name('retention.confirm');
|
|
Route::get('retention/{retentionEntry}/media/view', [FinanceController::class, 'viewRetentionMedia'])->name('retention.media.view');
|
|
});
|
|
|
|
Route::middleware(['web', 'auth'])->group(function () {
|
|
// Cash Advances (Accessible to Supervisors, Site Techs, PMs, and Admins)
|
|
Route::get('cash-advances', [FinanceController::class, 'cashAdvances'])->name('cash-advances.index');
|
|
Route::post('cash-advances', [FinanceController::class, 'storeCashAdvance'])->name('cash-advances.store');
|
|
Route::patch('cash-advances/{cashAdvance:ulid}/approve', [FinanceController::class, 'approveCashAdvance'])->name('cash-advances.approve');
|
|
Route::patch('cash-advances/{cashAdvance:ulid}/reject', [FinanceController::class, 'rejectCashAdvance'])->name('cash-advances.reject');
|
|
});
|