Files
database-pertani-web/app/Http/Requests/Koperasi/StoreSosialEkonomiKoperasiRequest.php
T
2026-11-06 22:38:45 +07:00

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',
];
}
}