61 lines
2.7 KiB
PHP
61 lines
2.7 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Requests\Koperasi;
|
|
|
|
use App\Enums\Koperasi\AlasanPinjamanKoperasi;
|
|
use App\Enums\Koperasi\BentukPembayaranKoperasi;
|
|
use App\Enums\Koperasi\JawabanYaTidakKoperasi;
|
|
use App\Enums\Koperasi\KetersediaanKoperasi;
|
|
use App\Services\Koperasi\SosialEkonomiKoperasiService;
|
|
use Illuminate\Validation\Rule;
|
|
|
|
class StoreSosialEkonomiKoperasiRequest extends KoperasiTabRequest
|
|
{
|
|
protected function prepareForValidation(): void
|
|
{
|
|
parent::prepareForValidation();
|
|
$policy = app(SosialEkonomiKoperasiService::class);
|
|
$this->merge($policy->normalize($this->all(), $policy->context($this->route('pengurusKoperasi'))));
|
|
}
|
|
|
|
public function rules(): array
|
|
{
|
|
$rules = [
|
|
'momen_simpanan_terbesar' => ['nullable', 'string', 'max:255'],
|
|
'alasan_pinjaman_lainnya' => ['nullable', 'string', 'max:255'],
|
|
'pembayaran_selain_uang' => ['nullable', Rule::enum(KetersediaanKoperasi::class)],
|
|
'bentuk_pembayaran_lainnya' => ['nullable', 'string', 'max:255'],
|
|
'perhitungan_harga_pasar' => ['nullable', Rule::enum(JawabanYaTidakKoperasi::class)],
|
|
'alasan_bukan_harga_pasar' => ['nullable', 'string'],
|
|
'alasan_pinjaman' => ['nullable', 'array'],
|
|
'alasan_pinjaman.*' => [Rule::enum(AlasanPinjamanKoperasi::class)],
|
|
'bentuk_pembayaran_barang' => ['nullable', 'array'],
|
|
'bentuk_pembayaran_barang.*' => [Rule::enum(BentukPembayaranKoperasi::class)],
|
|
'simpanan_terbesar' => ['nullable', 'integer', 'min:0'],
|
|
];
|
|
$policy = app(SosialEkonomiKoperasiService::class);
|
|
foreach ($policy->requiredFields() as $field) {
|
|
$rules[$field][] = Rule::requiredIf(fn () => $policy->active($field, $this->all(), $policy->context($this->route('pengurusKoperasi'))));
|
|
}
|
|
|
|
return $rules;
|
|
}
|
|
|
|
public function attributes(): array
|
|
{
|
|
return [
|
|
'simpanan_terbesar' => 'Simpanan Wajib Terbesar per Anggota',
|
|
'momen_simpanan_terbesar' => 'Bulan dan Momen Setoran Lebih Tinggi',
|
|
'alasan_pinjaman' => 'Keperluan Utama Pinjaman',
|
|
'alasan_pinjaman.*' => 'Keperluan Utama Pinjaman',
|
|
'alasan_pinjaman_lainnya' => 'Keperluan Pinjaman Lainnya',
|
|
'pembayaran_selain_uang' => 'Pembayaran Pinjaman Selain Uang',
|
|
'bentuk_pembayaran_barang' => 'Bentuk Pembayaran Selain Uang',
|
|
'bentuk_pembayaran_barang.*' => 'Bentuk Pembayaran Selain Uang',
|
|
'bentuk_pembayaran_lainnya' => 'Bentuk Pembayaran Lainnya',
|
|
'perhitungan_harga_pasar' => 'Penilaian Hasil Bumi Sesuai Harga Pasar',
|
|
'alasan_bukan_harga_pasar' => 'Alasan Tidak Menggunakan Harga Pasar',
|
|
];
|
|
}
|
|
}
|