generateNavigationItems([ ViewClient::class, EditClient::class, GeneralLedger::class, TrialBalance::class, ]); } public static function form(Schema $schema): Schema { return $schema ->components([ TextInput::make('firstname')->label('First Name')->required(), TextInput::make('middlename')->label('Middle Name')->nullable(), TextInput::make('lastname')->label('Last Name')->required(), Grid::make()->schema([ TextInput::make('company')->label('Company')->required(), Select::make('type_id') ->relationship('type', 'type') ->label('Type')->required(), ])->columns(2), ])->columns(3); } public static function table(Table $table): Table { return $table ->columns([ TextColumn::make('firstname')->label('First Name')->searchable(), TextColumn::make('middlename')->label('Middle Name'), TextColumn::make('lastname')->label('Last Name'), TextColumn::make('company')->label('Company')->searchable(), TextColumn::make('type.type')->label('Type'), ]) ->filters([ Filter::make('Vatable') ->query(fn (Builder $query) => $query->orWhereHas('type', function (Builder $query) { $query->where('type', 'Vatable'); })), Filter::make('Non-Vatable') ->query(fn (Builder $query) => $query->orWhereHas('type', function (Builder $query) { $query->where('type', 'Non Vatable'); })), ]) ->recordActions([ ViewAction::make(), EditAction::make(), DeleteAction::make()->requiresConfirmation(), ]) ->toolbarActions([ BulkActionGroup::make([ DeleteBulkAction::make(), ]), ]); } public static function getRelations(): array { return [ AccountsRelationManager::class, BranchesRelationManager::class, TransmittalsRelationManager::class, SalesRelationManager::class, ExpensesRelationManager::class, JournalsRelationManager::class, DiscountRelationManager::class, ]; } public static function getPages(): array { return [ 'view' => ViewClient::route('/{record}'), 'edit' => EditClient::route('/{record}/edit'), 'index' => ListClients::route('/'), 'general-ledger' => GeneralLedger::route('/{record}/general-ledger'), 'trial-balance' => TrialBalance::route('/{record}/trial-balance'), ]; } public static function saveBranch($data): Branch { $createBranchProcess = new CreateBranchProcess; $payload = new CreateBranchDTO(data: $data); return $createBranchProcess->run($payload)->branch; } }