feat: Add payment information fields and media handling for proposal template and banner in CooperationResource

This commit is contained in:
Yoga Pangestu 2026-01-09 13:09:58 +07:00
parent 7e1c688c78
commit b97b8a3708

View File

@ -16,6 +16,7 @@
use App\Models\Cooperation; use App\Models\Cooperation;
use BackedEnum; use BackedEnum;
use Filament\Actions\Action; use Filament\Actions\Action;
use Filament\Infolists\Components\ImageEntry;
use Filament\Infolists\Components\TextEntry; use Filament\Infolists\Components\TextEntry;
use Filament\Resources\Resource; use Filament\Resources\Resource;
use Filament\Schemas\Components\Grid; use Filament\Schemas\Components\Grid;
@ -25,6 +26,7 @@
use Filament\Tables\Table; use Filament\Tables\Table;
use Illuminate\Database\Eloquent\Builder; use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\SoftDeletingScope; use Illuminate\Database\Eloquent\SoftDeletingScope;
use Joaopaulolndev\FilamentPdfViewer\Infolists\Components\PdfViewerEntry;
use UnitEnum; use UnitEnum;
class CooperationResource extends Resource class CooperationResource extends Resource
@ -94,7 +96,7 @@ public static function infolist(Schema $schema): Schema
TextEntry::make('title') TextEntry::make('title')
->label('Judul'), ->label('Judul'),
Grid::make(4) Grid::make(3)
->schema([ ->schema([
TextEntry::make('initial_submission_date') TextEntry::make('initial_submission_date')
->label('Tanggal Pengajuan Awal') ->label('Tanggal Pengajuan Awal')
@ -113,24 +115,31 @@ public static function infolist(Schema $schema): Schema
->label('Deadline Verifikasi') ->label('Deadline Verifikasi')
->date('l, d F Y') ->date('l, d F Y')
->placeholder('Belum ditentukan'), ->placeholder('Belum ditentukan'),
TextEntry::make('payment_amount')
->label('Jumlah Pembayaran')
->money('IDR')
->placeholder('Belum ditentukan'),
TextEntry::make('payment_date')
->label('Tanggal Pembayaran')
->date('l, d F Y')
->placeholder('Belum dibayar'),
]), ]),
Section::make('Informasi Pembayaran') Grid::make(2)
->schema([ ->schema([
Grid::make(2) PdfViewerEntry::make('proposal_template')
->schema([ ->label('Template Proposal')
TextEntry::make('payment_amount') ->getStateUsing(fn ($record) => optional($record->getMedia('cooperations')->where('custom_properties.doc_type', 'proposal-template')->sortByDesc('created_at')->first())->getPathRelativeToRoot())
->label('Jumlah Pembayaran') ->disk(config('filesystems.default')),
->money('IDR')
->placeholder('Belum ditentukan'),
TextEntry::make('payment_date') ImageEntry::make('banner')
->label('Tanggal Pembayaran') ->label('Banner')
->date('l, d F Y') ->getStateUsing(fn ($record) => optional($record->getMedia('banners')->sortByDesc('created_at')->first())->getPathRelativeToRoot())
->placeholder('Belum dibayar'), ->disk(config('filesystems.default'))
]), ->visible(fn ($record) => $record->getMedia('banners')->isNotEmpty()),
]) ]),
->visible(fn ($record) => $record->payment_amount || $record->payment_date),
TextEntry::make('description') TextEntry::make('description')
->label('Deskripsi') ->label('Deskripsi')