Files
MKM/app/Filament/Resources/ClientResource/RelationManagers/TransmittalsRelationManager.php
2024-08-05 08:04:35 +08:00

63 lines
1.8 KiB
PHP

<?php
namespace App\Filament\Resources\ClientResource\RelationManagers;
use App\Commands\Transmittal\GenerateTransmittalSeries;
use App\Commands\Transmittal\StoreTransmittalCommand;
use App\DataObjects\CreateTransmittalDTO;
use App\Filament\Resources\TransmittalResource;
use App\Models\Branch;
use App\Models\Client;
use App\Models\Transmittal;
use App\Processes\Transmittal\CreateTransmittalProcess;
use Filament\Actions\Action;
use Filament\Actions\CreateAction;
use Filament\Forms;
use Filament\Forms\Components\DatePicker;
use Filament\Forms\Components\Repeater;
use Filament\Forms\Components\Select;
use Filament\Forms\Components\Textarea;
use Filament\Forms\Components\TextInput;
use Filament\Forms\Form;
use Filament\Resources\RelationManagers\RelationManager;
use Filament\Tables;
use Filament\Tables\Table;
use Illuminate\Database\Eloquent\Model;
class TransmittalsRelationManager extends RelationManager
{
protected static string $relationship = 'transmittals';
public static function canViewForRecord(Model $ownerRecord, string $pageClass): bool
{
return auth()->user()->can('update_transmittal');
}
protected CreateTransmittalProcess $transmittalProcess;
public function __construct()
{
$this->transmittalProcess = new CreateTransmittalProcess();
}
public function form(Form $form): Form
{
return TransmittalResource::form($form)
->fill(
['client_id' => $this->getOwnerRecord()->id]
);
}
public function table(Table $table): Table
{
return TransmittalResource::table($table)->headerActions([
Tables\Actions\Action::make('New Transmittal')->action('openCreateForm')
]);
}
public function openCreateForm() {
return redirect()->route('filament.admin.resources.transmittals.create');
}
}