schema([ Select::make('origen')->options([ 'confeccion' => 'Confección', 'tintoreria' => 'Tintorería', 'acabados' => 'Acabados', 'bodega' => 'Bodega', ])->required(), Select::make('destino')->options([ 'confeccion' => 'Confección', 'tintoreria' => 'Tintorería', 'acabados' => 'Acabados', 'bodega' => 'Bodega', ])->required(), TextInput::make('cantidad_enviada')->numeric()->required(), TextInput::make('cantidad_recibida')->numeric()->nullable(), TextInput::make('prendas_defectuosas')->numeric()->nullable(), TextInput::make('reparaciones')->numeric()->nullable(), TextInput::make('saldos')->numeric()->nullable(), TextInput::make('residual')->numeric()->disabled()->dehydrated(false), DateTimePicker::make('fecha_envio')->nullable(), DateTimePicker::make('fecha_recepcion')->nullable(), Select::make('estado')->options([ 'pendiente' => 'Pendiente', 'realizado' => 'Realizado', 'recibido' => 'Recibido', ])->default('pendiente'), Textarea::make('notas')->columnSpanFull(), ]); } public static function table(Table $table): Table { return $table ->columns([ TextColumn::make('id')->sortable(), TextColumn::make('origen'), TextColumn::make('destino'), TextColumn::make('cantidad_enviada'), TextColumn::make('cantidad_recibida'), TextColumn::make('prendas_defectuosas'), TextColumn::make('reparaciones'), TextColumn::make('saldos'), TextColumn::make('residual'), TextColumn::make('estado'), TextColumn::make('fecha_envio')->dateTime(), TextColumn::make('fecha_recepcion')->dateTime(), TextColumn::make('referencia_type')->label('Referencia'), ]) ->filters([ SelectFilter::make('orden_produccion_id') ->label('Orden de Producción') ->options(function () { return \App\Models\OrdenProduccion::orderBy('id', 'desc')->pluck('numero_orden', 'id')->toArray(); }) ->searchable(), ]) ->actions([ Tables\Actions\EditAction::make(), Tables\Actions\DeleteAction::make(), ]) ->bulkActions([ Tables\Actions\DeleteBulkAction::make(), ]); } public static function getRelations(): array { return [ ]; } public static function getPages(): array { return [ 'index' => Pages\ListTrasladoPrendas::route('/'), 'create' => Pages\CreateTrasladoPrenda::route('/create'), 'edit' => Pages\EditTrasladoPrenda::route('/{record}/edit'), ]; } public static function getNavigationBadge(): ?string { try { if (! \Illuminate\Support\Facades\Schema::hasTable('traslados_prenda')) { return null; } return (string) \App\Models\TrasladoPrenda::count(); } catch (\Exception $e) { return null; } } }