Add contract management and invoice settings pages
- Created a new Blade view for managing brand contracts with forms for adding and editing contracts, including client and category selection. - Implemented success message notifications for contract actions. - Added a new Blade view for invoice settings, allowing customization of invoice number format, header branding, and default values for new invoices. - Introduced a new PDF view for generating rate cards with customizable styles based on user profile settings. - Developed a profile management page for rate cards, enabling users to update their identity, appearance, and visibility settings.
This commit is contained in:
@@ -2,12 +2,14 @@
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
use App\Http\Controllers\BrandContractController;
|
||||
use App\Http\Controllers\ClientCategoryController;
|
||||
use App\Http\Controllers\ClientController;
|
||||
use App\Http\Controllers\ContentBriefController;
|
||||
use App\Http\Controllers\DashboardController;
|
||||
use App\Http\Controllers\EventController;
|
||||
use App\Http\Controllers\InvoiceController;
|
||||
use App\Http\Controllers\InvoiceSettingsController;
|
||||
use App\Http\Controllers\MediaFileController;
|
||||
use App\Http\Controllers\NotificationSettingController;
|
||||
use App\Http\Controllers\RateCardController;
|
||||
@@ -28,6 +30,16 @@ Route::prefix('client-categories')->name('client-categories.')->group(function (
|
||||
Route::delete('/{category}', [ClientCategoryController::class, 'destroy'])->name('destroy');
|
||||
});
|
||||
|
||||
// Brand Contracts
|
||||
Route::prefix('contracts')->name('contracts.')->group(function (): void {
|
||||
Route::get('/', [BrandContractController::class, 'index'])->name('index');
|
||||
Route::post('/', [BrandContractController::class, 'store'])->name('store');
|
||||
Route::put('/{contract}', [BrandContractController::class, 'update'])->name('update');
|
||||
Route::delete('/{contract}', [BrandContractController::class, 'destroy'])->name('destroy');
|
||||
Route::patch('/{contract}/toggle', [BrandContractController::class, 'toggle'])->name('toggle');
|
||||
Route::get('/check', [BrandContractController::class, 'check'])->name('check');
|
||||
});
|
||||
|
||||
// Schedule & Calendar
|
||||
Route::prefix('schedule')->name('schedule.')->group(function (): void {
|
||||
Route::get('/', [EventController::class, 'index'])->name('index');
|
||||
@@ -48,9 +60,15 @@ Route::prefix('social-hub')->name('social-hub.')->group(function (): void {
|
||||
// Financial – Invoices
|
||||
Route::resource('invoices', InvoiceController::class);
|
||||
Route::get('/invoices/{invoice}/pdf', [InvoiceController::class, 'pdf'])->name('invoices.pdf');
|
||||
Route::get('/invoice-settings', [InvoiceSettingsController::class, 'edit'])->name('invoice-settings.edit');
|
||||
Route::post('/invoice-settings', [InvoiceSettingsController::class, 'update'])->name('invoice-settings.update');
|
||||
|
||||
// Financial – Rate Cards
|
||||
Route::get('/rate-cards/public', [RateCardController::class, 'public'])->name('rate-cards.public');
|
||||
Route::get('/rate-cards/pdf', [RateCardController::class, 'pdf'])->name('rate-cards.pdf');
|
||||
Route::get('/rate-cards/profile', [RateCardController::class, 'profilePage'])->name('rate-cards.profile');
|
||||
Route::post('/rate-cards/profile', [RateCardController::class, 'profileUpdate'])->name('rate-cards.profile.update');
|
||||
Route::get('/files/profile-logo', [RateCardController::class, 'serveProfileLogo'])->name('files.serve-profile-logo');
|
||||
Route::resource('rate-cards', RateCardController::class)->except(['show']);
|
||||
|
||||
// Content Strategy – Kanban
|
||||
|
||||
Reference in New Issue
Block a user