wizardfrom done
This commit is contained in:
parent
5284a36bc6
commit
ab188f7a12
|
@ -2,12 +2,16 @@
|
||||||
|
|
||||||
namespace App\Filament\Pages;
|
namespace App\Filament\Pages;
|
||||||
|
|
||||||
use App\Models\Listform;
|
use App\Models\Parameter;
|
||||||
use App\Models\Mahasiswa;
|
use App\Models\Mahasiswa;
|
||||||
use Filament\Forms\Components\Wizard;
|
use Filament\Forms\Components\Wizard;
|
||||||
use Filament\Forms\Components\TextInput;
|
use Filament\Forms\Components\TextInput;
|
||||||
use Filament\Forms\Components\Select;
|
use Filament\Forms\Components\Select;
|
||||||
use Filament\Forms\Components\FileUpload;
|
use Filament\Forms\Components\FileUpload;
|
||||||
|
use Filament\Forms\Components\Radio;
|
||||||
|
use Filament\Forms\Components\Section;
|
||||||
|
use Filament\Forms\Components\Grid;
|
||||||
|
use Filament\Forms\Components\Fieldset;
|
||||||
use Filament\Forms\Concerns\InteractsWithForms;
|
use Filament\Forms\Concerns\InteractsWithForms;
|
||||||
use Filament\Pages\Page;
|
use Filament\Pages\Page;
|
||||||
use Filament\Forms\Form;
|
use Filament\Forms\Form;
|
||||||
|
@ -35,8 +39,7 @@ public function form(Form $form): Form
|
||||||
{
|
{
|
||||||
return $form
|
return $form
|
||||||
->schema([
|
->schema([
|
||||||
Wizard::make()
|
Wizard::make([
|
||||||
->steps([
|
|
||||||
Wizard\Step::make('Biodata Mahasiswa')
|
Wizard\Step::make('Biodata Mahasiswa')
|
||||||
->schema([
|
->schema([
|
||||||
TextInput::make('noreg_kipk')->label('No. Registrasi KIP-K')->required(),
|
TextInput::make('noreg_kipk')->label('No. Registrasi KIP-K')->required(),
|
||||||
|
@ -53,16 +56,54 @@ public function form(Form $form): Form
|
||||||
|
|
||||||
Wizard\Step::make('Parameter Penilaian')
|
Wizard\Step::make('Parameter Penilaian')
|
||||||
->schema([
|
->schema([
|
||||||
Select::make('kepemilikan_kip')
|
Section::make('Kepemilikan KIP')
|
||||||
->label('Kepemilikan KIP')
|
->schema([
|
||||||
|
Radio::make('kepemilikan_kip')
|
||||||
->options([
|
->options([
|
||||||
'Memiliki KIP' => 'Memiliki KIP',
|
'Memiliki KIP' => 'Memiliki KIP',
|
||||||
'Tidak Memiliki KIP' => 'Tidak Memiliki KIP',
|
'Tidak Memiliki KIP' => 'Tidak Memiliki KIP',
|
||||||
])
|
])
|
||||||
->required(),
|
->required()
|
||||||
|
->inline()
|
||||||
|
->reactive(),
|
||||||
|
|
||||||
|
FileUpload::make('berkas_kip')
|
||||||
|
->label('Bukti Kepemilikan KIP')
|
||||||
|
->disk('berkas')
|
||||||
|
->directory('kip')
|
||||||
|
->visibility('public')
|
||||||
|
->preserveFilenames()
|
||||||
|
->downloadable()
|
||||||
|
->openable()
|
||||||
|
->acceptedFileTypes(['application/pdf'])
|
||||||
|
->visible(fn (callable $get) => $get('kepemilikan_kip') === 'Memiliki KIP')
|
||||||
|
->required(fn (callable $get) => $get('kepemilikan_kip') === 'Memiliki KIP'),
|
||||||
|
]),
|
||||||
|
|
||||||
|
Section::make('Tingkatan Desil')
|
||||||
|
->schema([
|
||||||
|
Radio::make('terdata_dtks')
|
||||||
|
->options([
|
||||||
|
'Terdata' => 'Terdata',
|
||||||
|
'Tidak Terdata' => 'Tidak Terdata',
|
||||||
|
])
|
||||||
|
->required()
|
||||||
|
->inline()
|
||||||
|
->reactive(),
|
||||||
|
|
||||||
|
FileUpload::make('berkas_dtks')
|
||||||
|
->label('Bukti Terdata di DTKS')
|
||||||
|
->disk('berkas')
|
||||||
|
->directory('dtks')
|
||||||
|
->visibility('public')
|
||||||
|
->preserveFilenames()
|
||||||
|
->downloadable()
|
||||||
|
->openable()
|
||||||
|
->acceptedFileTypes(['application/pdf'])
|
||||||
|
->visible(fn (callable $get) => $get('terdata_dtks') === 'Terdata')
|
||||||
|
->required(fn (callable $get) => $get('terdata_dtks') === 'Terdata'),
|
||||||
|
|
||||||
Select::make('tingkatan_desil')
|
Select::make('tingkatan_desil')
|
||||||
->label('Tingkatan Desil')
|
|
||||||
->options([
|
->options([
|
||||||
'Desil 1' => 'Desil 1',
|
'Desil 1' => 'Desil 1',
|
||||||
'Desil 2' => 'Desil 2',
|
'Desil 2' => 'Desil 2',
|
||||||
|
@ -71,47 +112,105 @@ public function form(Form $form): Form
|
||||||
'Desil 5' => 'Desil 5',
|
'Desil 5' => 'Desil 5',
|
||||||
])
|
])
|
||||||
->required(),
|
->required(),
|
||||||
|
]),
|
||||||
|
|
||||||
FileUpload::make('berkas_sktm')
|
Section::make('Upload Berkas Bukti Bantuan Pemerintah')
|
||||||
->label('Upload SKTM')
|
->schema([
|
||||||
->directory('berkas-sktm')
|
FileUpload::make('berkas_1')
|
||||||
|
->label('Berkas Bukti 1')
|
||||||
|
->disk('berkas')
|
||||||
|
->directory('ekonomi')
|
||||||
|
->visibility('public')
|
||||||
->preserveFilenames()
|
->preserveFilenames()
|
||||||
|
->downloadable()
|
||||||
|
->openable()
|
||||||
->acceptedFileTypes(['application/pdf'])
|
->acceptedFileTypes(['application/pdf'])
|
||||||
->required(),
|
->required(),
|
||||||
|
|
||||||
FileUpload::make('berkas_ppke')
|
FileUpload::make('berkas_2')
|
||||||
->label('Upload PPKE')
|
->label('Berkas Bukti 2 (Opsional)')
|
||||||
->directory('berkas-ppke')
|
->disk('berkas')
|
||||||
|
->directory('ekonomi')
|
||||||
|
->visibility('public')
|
||||||
->preserveFilenames()
|
->preserveFilenames()
|
||||||
|
->downloadable()
|
||||||
|
->openable()
|
||||||
->acceptedFileTypes(['application/pdf']),
|
->acceptedFileTypes(['application/pdf']),
|
||||||
|
|
||||||
FileUpload::make('berkas_pmk')
|
FileUpload::make('berkas_3')
|
||||||
->label('Upload PMK')
|
->label('Berkas Bukti 3 (Opsional)')
|
||||||
->directory('berkas-pmk')
|
->disk('berkas')
|
||||||
->preserveFilenames()
|
->directory('ekonomi')
|
||||||
->acceptedFileTypes(['application/pdf']),
|
->visibility('public')
|
||||||
|
|
||||||
FileUpload::make('berkas_pkh')
|
|
||||||
->label('Upload PKH')
|
|
||||||
->directory('berkas-pkh')
|
|
||||||
->preserveFilenames()
|
|
||||||
->acceptedFileTypes(['application/pdf']),
|
|
||||||
|
|
||||||
FileUpload::make('berkas_kks')
|
|
||||||
->label('Upload KKS')
|
|
||||||
->directory('berkas-kks')
|
|
||||||
->preserveFilenames()
|
->preserveFilenames()
|
||||||
|
->downloadable()
|
||||||
|
->openable()
|
||||||
->acceptedFileTypes(['application/pdf']),
|
->acceptedFileTypes(['application/pdf']),
|
||||||
]),
|
]),
|
||||||
|
|
||||||
|
Section::make('Status Orang Tua')
|
||||||
|
->schema([
|
||||||
|
Grid::make(2)
|
||||||
|
->schema([
|
||||||
|
Fieldset::make('Status Ayah')
|
||||||
|
->schema([
|
||||||
|
Radio::make('status_ayah')
|
||||||
|
->options([
|
||||||
|
'Hidup' => 'Hidup',
|
||||||
|
'Wafat' => 'Wafat',
|
||||||
])
|
])
|
||||||
->submitAction('Submit') // Ubah submitAction ke string
|
->required()
|
||||||
|
->inline()
|
||||||
|
->reactive(),
|
||||||
|
|
||||||
|
FileUpload::make('bukti_wafat_ayah')
|
||||||
|
->label('Bukti Kematian Ayah')
|
||||||
|
->disk('berkas')
|
||||||
|
->directory('wafat')
|
||||||
|
->visibility('public')
|
||||||
|
->preserveFilenames()
|
||||||
|
->downloadable()
|
||||||
|
->openable()
|
||||||
|
->acceptedFileTypes(['application/pdf'])
|
||||||
|
->visible(fn (callable $get) => $get('status_ayah') === 'Wafat')
|
||||||
|
->required(fn (callable $get) => $get('status_ayah') === 'Wafat'),
|
||||||
|
]),
|
||||||
|
|
||||||
|
Fieldset::make('Status Ibu')
|
||||||
|
->schema([
|
||||||
|
Radio::make('status_ibu')
|
||||||
|
->options([
|
||||||
|
'Hidup' => 'Hidup',
|
||||||
|
'Wafat' => 'Wafat',
|
||||||
|
])
|
||||||
|
->required()
|
||||||
|
->inline()
|
||||||
|
->reactive(),
|
||||||
|
|
||||||
|
FileUpload::make('bukti_wafat_ibu')
|
||||||
|
->label('Bukti Kematian Ibu')
|
||||||
|
->disk('berkas')
|
||||||
|
->directory('wafat')
|
||||||
|
->visibility('public')
|
||||||
|
->preserveFilenames()
|
||||||
|
->downloadable()
|
||||||
|
->openable()
|
||||||
|
->acceptedFileTypes(['application/pdf'])
|
||||||
|
->visible(fn (callable $get) => $get('status_ibu') === 'Wafat')
|
||||||
|
->required(fn (callable $get) => $get('status_ibu') === 'Wafat'),
|
||||||
|
]),
|
||||||
|
]),
|
||||||
|
]),
|
||||||
|
]),
|
||||||
|
])
|
||||||
|
->submitAction(view('filament.pages.wizard-form-submit-button'))
|
||||||
])
|
])
|
||||||
->statePath('data');
|
->statePath('data');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function saveData(): void
|
public function submit()
|
||||||
{
|
{
|
||||||
$data = $this->form->getState(); // Ambil data dari form
|
$data = $this->form->getState();
|
||||||
|
|
||||||
DB::beginTransaction();
|
DB::beginTransaction();
|
||||||
try {
|
try {
|
||||||
|
@ -129,17 +228,22 @@ public function saveData(): void
|
||||||
'alamat' => $data['alamat'],
|
'alamat' => $data['alamat'],
|
||||||
]);
|
]);
|
||||||
|
|
||||||
// Simpan data listform
|
// Simpan data parameter
|
||||||
Listform::create([
|
Parameter::create([
|
||||||
'mahasiswa_id' => $mahasiswa->id,
|
'mahasiswa_id' => $mahasiswa->id,
|
||||||
'kepemilikan_kip' => $data['kepemilikan_kip'],
|
'kepemilikan_kip' => $data['kepemilikan_kip'],
|
||||||
|
'berkas_kip' => $data['berkas_kip'] ?? null,
|
||||||
|
'terdata_dtks' => $data['terdata_dtks'],
|
||||||
|
'berkas_dtks' => $data['berkas_dtks'] ?? null,
|
||||||
'tingkatan_desil' => $data['tingkatan_desil'],
|
'tingkatan_desil' => $data['tingkatan_desil'],
|
||||||
'berkas_sktm' => $data['berkas_sktm'] ?? null,
|
'berkas_1' => $data['berkas_1'],
|
||||||
'berkas_ppke' => $data['berkas_ppke'] ?? null,
|
'berkas_2' => $data['berkas_2'] ?? null,
|
||||||
'berkas_pmk' => $data['berkas_pmk'] ?? null,
|
'berkas_3' => $data['berkas_3'] ?? null,
|
||||||
'berkas_pkh' => $data['berkas_pkh'] ?? null,
|
'status_ayah' => $data['status_ayah'],
|
||||||
'berkas_kks' => $data['berkas_kks'] ?? null,
|
'bukti_wafat_ayah' => $data['bukti_wafat_ayah'] ?? null,
|
||||||
'status' => 'belum_divalidasi',
|
'status_ibu' => $data['status_ibu'],
|
||||||
|
'bukti_wafat_ibu' => $data['bukti_wafat_ibu'] ?? null,
|
||||||
|
'status' => 'belum_validasi',
|
||||||
]);
|
]);
|
||||||
|
|
||||||
DB::commit();
|
DB::commit();
|
||||||
|
@ -150,7 +254,7 @@ public function saveData(): void
|
||||||
->body('Data berhasil disimpan')
|
->body('Data berhasil disimpan')
|
||||||
->send();
|
->send();
|
||||||
|
|
||||||
$this->redirect('/admin/listforms');
|
$this->redirect('/admin/parameters');
|
||||||
|
|
||||||
} catch (\Exception $e) {
|
} catch (\Exception $e) {
|
||||||
DB::rollBack();
|
DB::rollBack();
|
||||||
|
|
|
@ -0,0 +1,7 @@
|
||||||
|
<x-filament::button
|
||||||
|
type="submit"
|
||||||
|
wire:click="submit"
|
||||||
|
class="w-full"
|
||||||
|
>
|
||||||
|
Simpan Data
|
||||||
|
</x-filament::button>
|
Loading…
Reference in New Issue