Add all files
This commit is contained in:
33
app/Admin/Resources/OrderResource/Pages/CreateOrder.php
Normal file
33
app/Admin/Resources/OrderResource/Pages/CreateOrder.php
Normal file
@@ -0,0 +1,33 @@
|
||||
<?php
|
||||
|
||||
namespace App\Admin\Resources\OrderResource\Pages;
|
||||
|
||||
use App\Admin\Resources\OrderResource;
|
||||
use App\Models\Invoice;
|
||||
use Filament\Resources\Pages\CreateRecord;
|
||||
|
||||
class CreateOrder extends CreateRecord
|
||||
{
|
||||
protected static string $resource = OrderResource::class;
|
||||
|
||||
protected function afterCreate(): void
|
||||
{
|
||||
$invoice = new Invoice([
|
||||
'user_id' => $this->record->user_id,
|
||||
'currency_code' => $this->record->currency_code,
|
||||
'due_at' => now()->addDays(7),
|
||||
]);
|
||||
$invoice->save();
|
||||
|
||||
foreach ($this->record->services as $service) {
|
||||
$invoice->items()->create([
|
||||
'description' => $service->description,
|
||||
'price' => $service->price,
|
||||
'quantity' => $service->quantity,
|
||||
'reference_id' => $service->id,
|
||||
'reference_type' => get_class($service),
|
||||
]);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
19
app/Admin/Resources/OrderResource/Pages/EditOrder.php
Normal file
19
app/Admin/Resources/OrderResource/Pages/EditOrder.php
Normal file
@@ -0,0 +1,19 @@
|
||||
<?php
|
||||
|
||||
namespace App\Admin\Resources\OrderResource\Pages;
|
||||
|
||||
use App\Admin\Resources\OrderResource;
|
||||
use Filament\Actions;
|
||||
use Filament\Resources\Pages\EditRecord;
|
||||
|
||||
class EditOrder extends EditRecord
|
||||
{
|
||||
protected static string $resource = OrderResource::class;
|
||||
|
||||
protected function getHeaderActions(): array
|
||||
{
|
||||
return [
|
||||
Actions\DeleteAction::make(),
|
||||
];
|
||||
}
|
||||
}
|
||||
19
app/Admin/Resources/OrderResource/Pages/ListOrders.php
Normal file
19
app/Admin/Resources/OrderResource/Pages/ListOrders.php
Normal file
@@ -0,0 +1,19 @@
|
||||
<?php
|
||||
|
||||
namespace App\Admin\Resources\OrderResource\Pages;
|
||||
|
||||
use App\Admin\Resources\OrderResource;
|
||||
use Filament\Actions;
|
||||
use Filament\Resources\Pages\ListRecords;
|
||||
|
||||
class ListOrders extends ListRecords
|
||||
{
|
||||
protected static string $resource = OrderResource::class;
|
||||
|
||||
protected function getHeaderActions(): array
|
||||
{
|
||||
return [
|
||||
Actions\CreateAction::make(),
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
<?php
|
||||
|
||||
namespace App\Admin\Resources\OrderResource\RelationManagers;
|
||||
|
||||
use App\Admin\Resources\ServiceResource;
|
||||
use Filament\Resources\RelationManagers\RelationManager;
|
||||
use Filament\Tables;
|
||||
use Filament\Tables\Table;
|
||||
|
||||
class ServiceRelationManager extends RelationManager
|
||||
{
|
||||
protected static string $relationship = 'services';
|
||||
|
||||
// Renaem to Order Products
|
||||
public static string $name = 'Products/Services';
|
||||
|
||||
public static ?string $label = 'Products/Services';
|
||||
|
||||
public function table(Table $table): Table
|
||||
{
|
||||
return $table
|
||||
->recordTitleAttribute('product.name')
|
||||
->columns([
|
||||
Tables\Columns\TextColumn::make('product.name'),
|
||||
Tables\Columns\TextColumn::make('quantity'),
|
||||
Tables\Columns\TextColumn::make('formattedPrice')->label('Price'),
|
||||
])
|
||||
->filters([
|
||||
//
|
||||
])
|
||||
->actions([
|
||||
Tables\Actions\ViewAction::make()->url(fn ($record) => ServiceResource::getUrl('edit', ['record' => $record])),
|
||||
])
|
||||
->bulkActions([
|
||||
Tables\Actions\BulkActionGroup::make([
|
||||
Tables\Actions\DeleteBulkAction::make(),
|
||||
]),
|
||||
]);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user