47 lines
1.8 KiB
PHP
47 lines
1.8 KiB
PHP
<?php
|
|
|
|
namespace App\Services\Koperasi;
|
|
|
|
use App\Enums\Koperasi\AlasanPinjamanKoperasi;
|
|
use App\Enums\Koperasi\BentukPembayaranKoperasi;
|
|
use App\Enums\Koperasi\JawabanYaTidakKoperasi;
|
|
use App\Enums\Koperasi\JenisKoperasi;
|
|
use App\Enums\Koperasi\KetersediaanKoperasi;
|
|
use App\Models\Koperasi\PengurusKoperasi;
|
|
|
|
class SosialEkonomiKoperasiService extends KoperasiSurveyService
|
|
{
|
|
public function context(?PengurusKoperasi $model): array
|
|
{
|
|
return ['jenis_koperasi' => $model?->jenis_koperasi];
|
|
}
|
|
|
|
public function dependencies(): array
|
|
{
|
|
$when = fn (string $field, array $values, string $source = 'form') => [
|
|
'field' => $field, 'values' => $values, 'source' => $source,
|
|
];
|
|
$simpanPinjam = $when('jenis_koperasi', [JenisKoperasi::SIMPAN_PINJAM->value], 'profile');
|
|
|
|
return [
|
|
'alasan_pinjaman' => [$simpanPinjam],
|
|
'alasan_pinjaman_lainnya' => [$when('alasan_pinjaman', [AlasanPinjamanKoperasi::LAINNYA->value])],
|
|
'pembayaran_selain_uang' => [$simpanPinjam],
|
|
'bentuk_pembayaran_barang' => [$when('pembayaran_selain_uang', [KetersediaanKoperasi::ADA->value])],
|
|
'bentuk_pembayaran_lainnya' => [$when('bentuk_pembayaran_barang', [BentukPembayaranKoperasi::LAINNYA->value])],
|
|
'perhitungan_harga_pasar' => [$when('bentuk_pembayaran_barang', [BentukPembayaranKoperasi::HASIL_BUMI->value])],
|
|
'alasan_bukan_harga_pasar' => [$when('perhitungan_harga_pasar', [JawabanYaTidakKoperasi::TIDAK->value])],
|
|
];
|
|
}
|
|
|
|
public function requiredFields(): array
|
|
{
|
|
return ['alasan_pinjaman_lainnya', 'bentuk_pembayaran_barang', 'bentuk_pembayaran_lainnya', 'perhitungan_harga_pasar', 'alasan_bukan_harga_pasar'];
|
|
}
|
|
|
|
protected function arrayFields(): array
|
|
{
|
|
return ['alasan_pinjaman', 'bentuk_pembayaran_barang'];
|
|
}
|
|
}
|