feat(billing): renewals, coupons, VAT numbering, billing cycles and invoice payment tracking

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
baodev0
2026-10-19 16:37:56 +07:00
co-authored by Claude Sonnet 5.5
parent ea9a53f742
commit 25f23d541e
134 changed files with 4926 additions and 185 deletions
+8
View File
@@ -2,6 +2,7 @@
use App\Http\Controllers\Api\Admin\Bank\BankController;
use App\Http\Controllers\Api\Admin\Invoice\InvoiceController;
use App\Http\Controllers\Api\Admin\Invoice\InvoiceVatController;
use App\Http\Controllers\Api\Admin\Order\OrderController;
use App\Http\Controllers\Api\Admin\Payment\PaymentController;
use App\Http\Controllers\Api\Admin\Report\ExportController;
@@ -45,6 +46,7 @@ Route::prefix('invoices')
'perm:invoice.edit',
);
// Send mail notification
Route::get('{id}/pdf', 'pdf')->middleware('perm:invoice.view')->whereNumber('id');
Route::post('{id}/send-mail', 'sendMail')->middleware('perm:invoice.edit');
Route::post('{id}/send-mail/preview', 'previewMail')->middleware('perm:invoice.edit');
});
@@ -97,3 +99,9 @@ Route::prefix('transactions')
Route::post('{uuid}/reject', 'reject')->middleware('perm:customer.edit');
Route::delete('{uuid}', 'destroy')->middleware('perm:customer.edit');
});
Route::prefix('invoices/{id}/vat')->controller(InvoiceVatController::class)->whereNumber('id')->group(function () {
Route::get('/', 'show')->middleware('perm:invoice.view');
Route::put('/', 'update')->middleware('perm:invoice.edit');
Route::post('issue', 'issue')->middleware('perm:invoice.edit');
});