Update Pendidikan dan Pelatihan
This commit is contained in:
@@ -23,7 +23,7 @@ use BackedEnum;
|
||||
|
||||
class SurveyPetaniController extends Controller
|
||||
{
|
||||
private const GAP_ENUM_CLASS = 'App\\Enums\\PendidikanPelatihan\\PelatihanGap';
|
||||
private const GAP_ENUM_CLASS = 'App\\Enums\\PendidikanPelatihan\\PelatihanGAP';
|
||||
public function index()
|
||||
{
|
||||
$colors = $this->colors();
|
||||
|
||||
@@ -6,7 +6,9 @@ use App\Http\Controllers\Controller;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Gate;
|
||||
use Illuminate\Support\Str;
|
||||
use Illuminate\Validation\Rule;
|
||||
|
||||
use App\Enums\PendidikanPelatihan\PelatihanGAP;
|
||||
use App\Models\Pertanian\Petani;
|
||||
use App\Models\Pertanian\SurveyPelatihan;
|
||||
use App\Models\Pertanian\SurveySertifikasi;
|
||||
@@ -44,15 +46,22 @@ class PendidikanPelatihanController extends Controller
|
||||
$validatedData = $request->validate([
|
||||
'riwayat_pelatihan' => ['nullable', 'array'],
|
||||
|
||||
'riwayat_pelatihan.*.jenis_pelatihan' => ['nullable', 'string', 'max:255'],
|
||||
'riwayat_pelatihan.*.jenis_pelatihan' => ['nullable', 'string', Rule::enum(PelatihanGAP::class)],
|
||||
'riwayat_pelatihan.*.jenis_pelatihan_lainnya' => [
|
||||
'nullable', 'string', 'max:255',
|
||||
'required_if:riwayat_pelatihan.*.jenis_pelatihan,' . PelatihanGAP::LAINNYA->value,
|
||||
],
|
||||
'riwayat_pelatihan.*.penyelenggara' => ['nullable', 'string', 'max:255'],
|
||||
'riwayat_pelatihan.*.tahun' => ['nullable', 'integer', 'min:1900', 'max:' . date('Y')],
|
||||
], [
|
||||
'riwayat_pelatihan.*.jenis_pelatihan.enum' => 'Jenis pelatihan yang dipilih tidak valid.',
|
||||
'riwayat_pelatihan.*.jenis_pelatihan_lainnya.required_if' => 'Jenis pelatihan lainnya wajib diisi jika memilih Lainnya.',
|
||||
'riwayat_pelatihan.*.tahun.integer' => 'Tahun pelatihan harus berupa angka.',
|
||||
'riwayat_pelatihan.*.tahun.min' => 'Tahun pelatihan tidak valid.',
|
||||
'riwayat_pelatihan.*.tahun.max' => 'Tahun pelatihan tidak boleh melebihi tahun saat ini.',
|
||||
], [
|
||||
'riwayat_pelatihan.*.jenis_pelatihan' => 'jenis pelatihan',
|
||||
'riwayat_pelatihan.*.jenis_pelatihan_lainnya' => 'jenis pelatihan lainnya',
|
||||
'riwayat_pelatihan.*.penyelenggara' => 'penyelenggara',
|
||||
'riwayat_pelatihan.*.tahun' => 'tahun pelatihan',
|
||||
]);
|
||||
@@ -66,10 +75,15 @@ class PendidikanPelatihanController extends Controller
|
||||
continue;
|
||||
}
|
||||
|
||||
// Jika memilih "Lainnya", yang disimpan adalah teks isian bebasnya
|
||||
$jenisPelatihan = ($item['jenis_pelatihan'] ?? null) === PelatihanGAP::LAINNYA->value
|
||||
? trim($item['jenis_pelatihan_lainnya'])
|
||||
: ($item['jenis_pelatihan'] ?? null);
|
||||
|
||||
$petani->surveyPelatihan()->create([
|
||||
'uid' => 'SPL-' . strtoupper(Str::random(10)),
|
||||
'petani_id' => $petani->id,
|
||||
'jenis_pelatihan' => $item['jenis_pelatihan'] ?? null,
|
||||
'jenis_pelatihan' => $jenisPelatihan,
|
||||
'penyelenggara' => $item['penyelenggara'] ?? null,
|
||||
'tahun_pelaksanaan' => $item['tahun'] ?? null,
|
||||
'created_by' => auth()->id(),
|
||||
|
||||
Reference in New Issue
Block a user