Sindbad~EG File Manager
<?php
namespace App\Filament\Resources;
use App\Filament\Resources\StockBalanceTanpaGudangResource\Pages;
use App\Models\VwStockSummaryMonthly;
use Filament\Forms;
use Filament\Forms\Form;
use Filament\Resources\Resource;
use Filament\Tables\Table;
use Illuminate\Support\Facades\DB;
class StockBalanceTanpaGudangResource extends Resource
{
protected static ?string $model = VwStockSummaryMonthly::class;
protected static ?string $navigationIcon = 'heroicon-o-chart-bar';
protected static ?string $navigationLabel = 'Laporan Saldo Bulanan Barang';
protected static ?string $modelLabel = 'Saldo Bulanan';
protected static ?string $pluralModelLabel = 'Laporan Saldo Bulanan Barang';
protected static ?string $navigationGroup = 'Laporan';
public static function form(Form $form): Form
{
return $form->schema([
Forms\Components\Section::make('Filter Laporan')
->schema([
Forms\Components\Select::make('tahun')
->label('Tahun')
->options(function () {
return DB::table('vw_stock_kartu_stock')
->selectRaw('YEAR(TGL_AWAL_BULAN) as tahun')
->distinct()
->orderBy('tahun', 'desc')
->pluck('tahun', 'tahun')
->toArray();
})
->default(date('Y'))
->searchable(),
]),
]);
}
/**
* Table kamu jangan taruh di Resource kalau mau stateful filter + query custom.
* Nanti table() kita taruh di Pages\List... agar bisa akses $this->tableFilters.
*/
public static function table(Table $table): Table
{
return $table;
}
protected static function bulanOptions(): array
{
// return DB::table('vw_stock_summary_monthly_base')
return DB::table('vw_stock_kartu_stock')
->selectRaw("DATE_FORMAT(TGL_INV, '%Y-%m') AS bulan")
->groupBy('bulan')
->orderBy('bulan', 'desc')
->pluck('bulan', 'bulan')
->toArray();
}
public static function getRelations(): array
{
return [];
}
public static function getPages(): array
{
return [
'index' => Pages\ListStockBalanceTanpaGudangs::route('/'),
];
}
}
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists