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:
@@ -45,22 +45,22 @@
|
||||
</div>
|
||||
|
||||
{{-- ── Stat Pills (BELOW schedule) ─────────────────────────── --}}
|
||||
<div class="grid grid-cols-2 gap-3 mb-4">
|
||||
<div class="stat-pill">
|
||||
<div class="grid grid-cols-2 sm:grid-cols-4 gap-3 mb-4">
|
||||
<a href="{{ route('clients.index') }}" class="stat-pill hover:shadow-md transition-shadow">
|
||||
<div class="text-2xl lg:text-3xl font-extrabold text-pink-500">{{ $stats['total_clients'] }}</div>
|
||||
<div class="text-xs lg:text-sm font-semibold text-gray-600">Total Clients</div>
|
||||
<div class="text-xs text-gray-400">{{ $stats['active_clients'] }} active</div>
|
||||
</div>
|
||||
<div class="stat-pill">
|
||||
</a>
|
||||
<a href="{{ route('schedule.index') }}" class="stat-pill hover:shadow-md transition-shadow">
|
||||
<div class="text-2xl lg:text-3xl font-extrabold text-purple-500">{{ $stats['upcoming_events'] }}</div>
|
||||
<div class="text-xs lg:text-sm font-semibold text-gray-600">Upcoming Events</div>
|
||||
<div class="text-xs text-gray-400">Next 3 months</div>
|
||||
</div>
|
||||
<div class="stat-pill">
|
||||
</a>
|
||||
<a href="{{ route('invoices.index') }}" class="stat-pill hover:shadow-md transition-shadow">
|
||||
<div class="text-2xl lg:text-3xl font-extrabold text-amber-500">{{ $stats['pending_invoices'] }}</div>
|
||||
<div class="text-xs lg:text-sm font-semibold text-gray-600">Pending Invoices</div>
|
||||
<div class="text-xs text-gray-400">Awaiting payment</div>
|
||||
</div>
|
||||
</a>
|
||||
<div class="stat-pill">
|
||||
<div class="text-lg lg:text-2xl font-extrabold text-emerald-500 leading-tight">
|
||||
Rp {{ number_format($stats['total_revenue'], 0, ',', '.') }}
|
||||
@@ -70,6 +70,25 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{-- ── Secondary Stats ──────────────────────────────────────── --}}
|
||||
<div class="grid grid-cols-3 gap-3 mb-4">
|
||||
<a href="{{ route('client-categories.index') }}" class="stat-pill hover:shadow-md transition-shadow">
|
||||
<div class="text-2xl font-extrabold text-indigo-500">{{ $stats['total_categories'] }}</div>
|
||||
<div class="text-xs font-semibold text-gray-600">Categories</div>
|
||||
<div class="text-xs text-gray-400">{{ $stats['total_subcategories'] }} subcategories</div>
|
||||
</a>
|
||||
<a href="{{ route('contracts.index') }}" class="stat-pill hover:shadow-md transition-shadow">
|
||||
<div class="text-2xl font-extrabold text-rose-500">{{ $stats['active_contracts'] }}</div>
|
||||
<div class="text-xs font-semibold text-gray-600">Brand Contracts</div>
|
||||
<div class="text-xs text-gray-400">{{ $stats['total_contracts'] }} total</div>
|
||||
</a>
|
||||
<a href="{{ route('files.index') }}" class="stat-pill hover:shadow-md transition-shadow">
|
||||
<div class="text-2xl font-extrabold text-teal-500">{{ $stats['total_files'] }}</div>
|
||||
<div class="text-xs font-semibold text-gray-600">Files Saved</div>
|
||||
<div class="text-xs text-gray-400">In file manager</div>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
{{-- ── Bottom Row ───────────────────────────────────────────── --}}
|
||||
<div class="grid grid-cols-1 lg:grid-cols-3 gap-4">
|
||||
|
||||
|
||||
Reference in New Issue
Block a user