Feat: Agregada gestión de tablas ISR en settings

- Nueva tabla isr_tables y isr_brackets en BD
- Controlador IsrController para CRUD de tablas ISR
- Integración con pestaña ISR en settings
- Soporte para importación via CSV
- Captura manual de brackets
This commit is contained in:
2026-04-21 13:22:01 -06:00
parent 66df616eee
commit 4abf89c57f
11 changed files with 778 additions and 24 deletions

View File

@@ -4,6 +4,7 @@ use App\Http\Controllers\AuthController;
use App\Http\Controllers\CalendarController;
use App\Http\Controllers\DashboardController;
use App\Http\Controllers\ExpenseController;
use App\Http\Controllers\IsrController;
use App\Http\Controllers\MonthController;
use App\Http\Controllers\ReportController;
use App\Http\Controllers\SaleController;
@@ -66,6 +67,16 @@ Route::middleware(['auth'])->group(function () {
// Settings
Route::get('/settings', [SettingsController::class, 'index'])->name('settings.index');
Route::put('/settings', [SettingsController::class, 'update'])->name('settings.update');
// ISR Tables
Route::prefix('settings/isr')->name('settings.isr.')->group(function () {
Route::get('/', [IsrController::class, 'index'])->name('index');
Route::post('/', [IsrController::class, 'store'])->name('store');
Route::delete('/{isrTable}', [IsrController::class, 'destroy'])->name('destroy');
Route::get('/{isrTable}/edit', [IsrController::class, 'edit'])->name('edit');
Route::put('/{isrTable}/brackets', [IsrController::class, 'updateBrackets'])->name('brackets.update');
Route::post('/{isrTable}/upload', [IsrController::class, 'uploadCsv'])->name('upload');
});
});
// Webhook de Telegram (público, sin auth)