diff --git a/app/Filament/Resources/CustomerResource.php b/app/Filament/Resources/CustomerResource.php index 9e1751a..99304e2 100644 --- a/app/Filament/Resources/CustomerResource.php +++ b/app/Filament/Resources/CustomerResource.php @@ -9,7 +9,6 @@ use Filament\Forms\Components\Section; use Filament\Forms\Components\TextInput; use Filament\Forms\Form; -use Filament\Resources\RelationManagers\RelationGroup; use Filament\Resources\Resource; use Filament\Tables; use Filament\Tables\Columns\TextColumn; @@ -62,10 +61,10 @@ public static function table(Table $table): Table public static function getRelations(): array { return [ - RelationGroup::make('Relations', [ - ContactsRelationManager::class, - ShippingEntriesRelationManager::class, - ]), + // RelationGroup::make('Relations', [ + ContactsRelationManager::class, + ShippingEntriesRelationManager::class, + // ]), ]; } diff --git a/app/Filament/Resources/InvoiceReportResource.php b/app/Filament/Resources/InvoiceReportResource.php new file mode 100644 index 0000000..cba1d2c --- /dev/null +++ b/app/Filament/Resources/InvoiceReportResource.php @@ -0,0 +1,82 @@ +<?php + +namespace App\Filament\Resources; + +use App\Filament\Resources\InvoiceReportResource\Pages; +use App\Models\Order; +use Filament\Forms\Components\DatePicker; +use Filament\Forms\Components\Toggle; +use Filament\Forms\Form; +use Filament\Resources\Resource; +use Filament\Tables; +use Filament\Tables\Actions\Action; +use Filament\Tables\Table; + +class InvoiceReportResource extends Resource +{ + protected static ?string $model = Order::class; + + protected static ?string $navigationIcon = 'heroicon-o-rectangle-stack'; + + protected static ?string $navigationGroup = 'Reports'; + + protected static ?string $navigationLabel = 'Invoice Reports'; + + protected static ?int $navigationSort = 2; + + public static function form(Form $form): Form + { + return $form + ->schema([ + // + ]); + } + + public static function table(Table $table): Table + { + return $table + ->columns([ + Tables\Columns\TextColumn::make('company_name') + ->searchable(), + ]) + ->filters([ + Tables\Filters\Filter::make('date_from') + ->form([ + DatePicker::make('date_from'), + ]), + Tables\Filters\Filter::make('date_until') + ->form([ + DatePicker::make('date_from'), + ]), + Tables\Filters\Filter::make('paid') + ->form([ + Toggle::make('paid'), + ]), + ], layout: Tables\Enums\FiltersLayout::AboveContent) + ->actions([ + Action::make('generateReport') + ->label('Make Report') + ->icon('lucide-sticky-note'), + ]); + } + + public static function getEloquentQuery(): \Illuminate\Database\Eloquent\Builder + { + return Order::query() + ->has('invoice'); + } + + public static function getRelations(): array + { + return [ + // + ]; + } + + public static function getPages(): array + { + return [ + 'index' => Pages\ListInvoiceReports::route('/'), + ]; + } +} diff --git a/app/Filament/Resources/InvoiceReportResource/Pages/CreateInvoiceReport.php b/app/Filament/Resources/InvoiceReportResource/Pages/CreateInvoiceReport.php new file mode 100644 index 0000000..418e481 --- /dev/null +++ b/app/Filament/Resources/InvoiceReportResource/Pages/CreateInvoiceReport.php @@ -0,0 +1,11 @@ +<?php + +namespace App\Filament\Resources\InvoiceReportResource\Pages; + +use App\Filament\Resources\InvoiceReportResource; +use Filament\Resources\Pages\CreateRecord; + +class CreateInvoiceReport extends CreateRecord +{ + protected static string $resource = InvoiceReportResource::class; +} diff --git a/app/Filament/Resources/InvoiceReportResource/Pages/EditInvoiceReport.php b/app/Filament/Resources/InvoiceReportResource/Pages/EditInvoiceReport.php new file mode 100644 index 0000000..ca7dbaf --- /dev/null +++ b/app/Filament/Resources/InvoiceReportResource/Pages/EditInvoiceReport.php @@ -0,0 +1,20 @@ +<?php + +namespace App\Filament\Resources\InvoiceReportResource\Pages; + +use App\Filament\Resources\InvoiceReportResource; +use Filament\Actions; +use Filament\Resources\Pages\EditRecord; + +class EditInvoiceReport extends EditRecord +{ + protected static string $resource = InvoiceReportResource::class; + + protected function getHeaderActions(): array + { + return [ + Actions\ViewAction::make(), + Actions\DeleteAction::make(), + ]; + } +} diff --git a/app/Filament/Resources/InvoiceReportResource/Pages/ListInvoiceReports.php b/app/Filament/Resources/InvoiceReportResource/Pages/ListInvoiceReports.php new file mode 100644 index 0000000..12f06c4 --- /dev/null +++ b/app/Filament/Resources/InvoiceReportResource/Pages/ListInvoiceReports.php @@ -0,0 +1,20 @@ +<?php + +namespace App\Filament\Resources\InvoiceReportResource\Pages; + +use App\Filament\Resources\InvoiceReportResource; +use Filament\Resources\Pages\ListRecords; + +class ListInvoiceReports extends ListRecords +{ + protected static string $resource = InvoiceReportResource::class; + + protected static ?string $title = 'Invoice Reports'; + + protected function getHeaderActions(): array + { + return [ + // Actions\CreateAction::make(), + ]; + } +} diff --git a/app/Filament/Resources/InvoiceReportResource/Pages/ViewInvoiceReport.php b/app/Filament/Resources/InvoiceReportResource/Pages/ViewInvoiceReport.php new file mode 100644 index 0000000..7a28647 --- /dev/null +++ b/app/Filament/Resources/InvoiceReportResource/Pages/ViewInvoiceReport.php @@ -0,0 +1,19 @@ +<?php + +namespace App\Filament\Resources\InvoiceReportResource\Pages; + +use App\Filament\Resources\InvoiceReportResource; +use Filament\Resources\Pages\ViewRecord; + +class ViewInvoiceReport extends ViewRecord +{ + protected static string $resource = InvoiceReportResource::class; + + protected static ?string $title = 'View Invoice Report'; + + protected function getHeaderActions(): array + { + return [ + ]; + } +} diff --git a/app/Filament/Resources/ReportResource.php b/app/Filament/Resources/ReportResource.php deleted file mode 100644 index 7eb2b47..0000000 --- a/app/Filament/Resources/ReportResource.php +++ /dev/null @@ -1,62 +0,0 @@ -<?php - -namespace App\Filament\Resources; - -use App\Filament\Resources\ReportResource\Pages; -use App\Models\Report; -use Filament\Forms\Form; -use Filament\Resources\Resource; -use Filament\Tables; -use Filament\Tables\Table; - -class ReportResource extends Resource -{ - protected static ?string $model = Report::class; - - protected static ?string $navigationIcon = 'lucide-text-search'; - - protected static ?string $navigationGroup = 'Reports'; - - public static function form(Form $form): Form - { - return $form - ->schema([ - // - ]); - } - - public static function table(Table $table): Table - { - return $table - ->columns([ - // - ]) - ->filters([ - // - ]) - ->actions([ - Tables\Actions\EditAction::make(), - ]) - ->bulkActions([ - Tables\Actions\BulkActionGroup::make([ - Tables\Actions\DeleteBulkAction::make(), - ]), - ]); - } - - public static function getRelations(): array - { - return [ - // - ]; - } - - public static function getPages(): array - { - return [ - 'index' => Pages\ListReports::route('/'), - 'create' => Pages\CreateReport::route('/create'), - 'edit' => Pages\EditReport::route('/{record}/edit'), - ]; - } -} diff --git a/app/Filament/Resources/ReportResource/Pages/CreateReport.php b/app/Filament/Resources/ReportResource/Pages/CreateReport.php deleted file mode 100644 index ba9b656..0000000 --- a/app/Filament/Resources/ReportResource/Pages/CreateReport.php +++ /dev/null @@ -1,11 +0,0 @@ -<?php - -namespace App\Filament\Resources\ReportResource\Pages; - -use App\Filament\Resources\ReportResource; -use Filament\Resources\Pages\CreateRecord; - -class CreateReport extends CreateRecord -{ - protected static string $resource = ReportResource::class; -} diff --git a/app/Filament/Resources/ReportResource/Pages/EditReport.php b/app/Filament/Resources/ReportResource/Pages/EditReport.php deleted file mode 100644 index 9891713..0000000 --- a/app/Filament/Resources/ReportResource/Pages/EditReport.php +++ /dev/null @@ -1,19 +0,0 @@ -<?php - -namespace App\Filament\Resources\ReportResource\Pages; - -use App\Filament\Resources\ReportResource; -use Filament\Actions; -use Filament\Resources\Pages\EditRecord; - -class EditReport extends EditRecord -{ - protected static string $resource = ReportResource::class; - - protected function getHeaderActions(): array - { - return [ - Actions\DeleteAction::make(), - ]; - } -} diff --git a/app/Filament/Resources/ReportResource/Pages/ListReports.php b/app/Filament/Resources/ReportResource/Pages/ListReports.php deleted file mode 100644 index 65bc4fb..0000000 --- a/app/Filament/Resources/ReportResource/Pages/ListReports.php +++ /dev/null @@ -1,19 +0,0 @@ -<?php - -namespace App\Filament\Resources\ReportResource\Pages; - -use App\Filament\Resources\ReportResource; -use Filament\Actions; -use Filament\Resources\Pages\ListRecords; - -class ListReports extends ListRecords -{ - protected static string $resource = ReportResource::class; - - protected function getHeaderActions(): array - { - return [ - Actions\CreateAction::make(), - ]; - } -} diff --git a/app/Filament/Resources/ServiceTypeResource.php b/app/Filament/Resources/ServiceTypeResource.php index 6cd55c6..cead1e0 100644 --- a/app/Filament/Resources/ServiceTypeResource.php +++ b/app/Filament/Resources/ServiceTypeResource.php @@ -120,7 +120,7 @@ public static function getPages(): array return [ 'index' => Pages\ListServiceTypes::route('/'), 'create' => Pages\CreateServiceType::route('/create'), - 'edit' => Pages\EditServiceType::route('/{record}/edit'), + // 'edit' => Pages\EditServiceType::route('/{record}/edit'), ]; } } diff --git a/app/Http/Controllers/CustomerController.php b/app/Http/Controllers/CustomerController.php index 7a8920f..dd97181 100644 --- a/app/Http/Controllers/CustomerController.php +++ b/app/Http/Controllers/CustomerController.php @@ -65,4 +65,9 @@ public function destroy(Customer $customer): RedirectResponse return redirect()->route('management.index')->with('status', 'Customer deleted successfully.'); } + + public function pdf(Customer $customer, ?bool $paid = false, ?string $created_from = null, ?string $created_until = null): RedirectResponse + { + dd($customer, $paid, $created_from, $created_until); + } } diff --git a/public/invoice-tn-in-24-0001.pdf b/public/invoice-tn-in-24-0001.pdf new file mode 100644 index 0000000..fc3195f Binary files /dev/null and b/public/invoice-tn-in-24-0001.pdf differ diff --git a/routes/web.php b/routes/web.php index f4ab838..79707e5 100644 --- a/routes/web.php +++ b/routes/web.php @@ -21,11 +21,6 @@ Route::get('/management/{tab?}', [ManagementController::class, 'index'])->name('management.index'); -// Customers -Route::resource('customers', CustomerController::class); -Route::get('/customers/{customer}/{tab}', [CustomerController::class, 'show'])->name('customers.show'); -Route::post('/customers/request-destroy', [CustomerController::class, 'requestDestroy'])->name('customers.requestDestroy'); - // OrderProducts Route::resource('order-products', OrderProductController::class); @@ -41,3 +36,5 @@ Route::get('orders/{order}/pdf', [OrderController::class, 'pdf'])->name('orders.pdf'); Route::get('invoices/{invoice}/pdf', [InvoiceController::class, 'pdf'])->name('invoice.pdf'); + +Route::get('customers/{customer}/pdf', [CustomerController::class, 'pdf'])->name('customer.pdf');