Merge branch 'main' of https://git.probindo.com/Probindo/database-pertani-web
This commit is contained in:
@@ -5,6 +5,7 @@ namespace App\Http\Controllers\Web\Bumdes;
|
|||||||
use App\Enums\Bumdes\JabatanBumdes;
|
use App\Enums\Bumdes\JabatanBumdes;
|
||||||
use App\Enums\Pendidikan;
|
use App\Enums\Pendidikan;
|
||||||
use App\Http\Controllers\Controller;
|
use App\Http\Controllers\Controller;
|
||||||
|
use App\Models\Bumdes\KelembagaanAktorBumdes;
|
||||||
use App\Models\Bumdes\PengurusBumdes;
|
use App\Models\Bumdes\PengurusBumdes;
|
||||||
use App\Models\Wilayah\Provinsi;
|
use App\Models\Wilayah\Provinsi;
|
||||||
use Carbon\Carbon;
|
use Carbon\Carbon;
|
||||||
@@ -22,10 +23,7 @@ class PengurusBumdesController extends Controller
|
|||||||
}
|
}
|
||||||
|
|
||||||
$query = PengurusBumdes::with([
|
$query = PengurusBumdes::with([
|
||||||
'desaKelurahan:id,nama,kecamatan_id',
|
...$this->wilayahRelationsWithoutProgramScope(),
|
||||||
'desaKelurahan.kecamatan:id,nama,kabupaten_kota_id',
|
|
||||||
'desaKelurahan.kecamatan.kabupatenKota:id,nama,provinsi_id',
|
|
||||||
'desaKelurahan.kecamatan.kabupatenKota.provinsi:id,nama',
|
|
||||||
'creator:id,name',
|
'creator:id,name',
|
||||||
])
|
])
|
||||||
->orderBy('created_at', 'desc');
|
->orderBy('created_at', 'desc');
|
||||||
@@ -70,7 +68,7 @@ class PengurusBumdesController extends Controller
|
|||||||
abort(403);
|
abort(403);
|
||||||
}
|
}
|
||||||
|
|
||||||
$provinsi = Provinsi::select('id', 'kode', 'nama')->orderBy('kode', 'asc')->get();
|
$provinsi = $this->provinsiOptions();
|
||||||
$jabatan = JabatanBumdes::options();
|
$jabatan = JabatanBumdes::options();
|
||||||
$pendidikan = Pendidikan::options();
|
$pendidikan = Pendidikan::options();
|
||||||
|
|
||||||
@@ -106,10 +104,10 @@ class PengurusBumdesController extends Controller
|
|||||||
abort(403);
|
abort(403);
|
||||||
}
|
}
|
||||||
|
|
||||||
$pengurus = $this->pengurusQuery()->with([
|
$pengurus = $this->pengurusQuery()
|
||||||
'desaKelurahan.kecamatan.kabupatenKota.provinsi',
|
->with($this->wilayahRelationsWithoutProgramScope())
|
||||||
])->findOrFail($id);
|
->findOrFail($id);
|
||||||
$provinsi = Provinsi::select('id', 'kode', 'nama')->orderBy('kode', 'asc')->get();
|
$provinsi = $this->provinsiOptions();
|
||||||
$jabatan = JabatanBumdes::options();
|
$jabatan = JabatanBumdes::options();
|
||||||
$pendidikan = Pendidikan::options();
|
$pendidikan = Pendidikan::options();
|
||||||
|
|
||||||
@@ -152,11 +150,41 @@ class PengurusBumdesController extends Controller
|
|||||||
abort(403);
|
abort(403);
|
||||||
}
|
}
|
||||||
|
|
||||||
$pengurus = $this->pengurusQuery()->with([
|
$pengurus = $this->pengurusQuery()
|
||||||
'desaKelurahan.kecamatan.kabupatenKota.provinsi',
|
->with([
|
||||||
])->findOrFail($id);
|
...$this->wilayahRelationsWithoutProgramScope(),
|
||||||
|
'kelembagaanAktor',
|
||||||
|
])
|
||||||
|
->findOrFail($id);
|
||||||
|
$kelembagaanAktor = $pengurus->kelembagaanAktor;
|
||||||
|
|
||||||
return view('bumdes.kelembagaan-aktor.index', compact('pengurus'));
|
return view('bumdes.kelembagaan-aktor.index', array_merge(
|
||||||
|
compact('pengurus', 'kelembagaanAktor'),
|
||||||
|
$this->kelembagaanAktorOptions()
|
||||||
|
));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function storeKelembagaanAktor(Request $request, string $id)
|
||||||
|
{
|
||||||
|
if (! Gate::any(['super_admin', 'admin', 'fasilitator'])) {
|
||||||
|
abort(403);
|
||||||
|
}
|
||||||
|
|
||||||
|
$pengurus = $this->pengurusQuery()->findOrFail($id);
|
||||||
|
$validatedData = $this->validatedKelembagaanAktorData($request);
|
||||||
|
|
||||||
|
KelembagaanAktorBumdes::updateOrCreate(
|
||||||
|
['pengurus_bumdes_id' => $pengurus->id],
|
||||||
|
[
|
||||||
|
...$this->formatKelembagaanAktorData($validatedData),
|
||||||
|
'created_by' => $pengurus->kelembagaanAktor?->created_by ?? auth()->id(),
|
||||||
|
'updated_by' => auth()->id(),
|
||||||
|
]
|
||||||
|
);
|
||||||
|
|
||||||
|
return redirect()
|
||||||
|
->route('bumdes.kelembagaan-aktor.index', $pengurus->id)
|
||||||
|
->with('success', 'Data kelembagaan dan aktor BUMDes berhasil disimpan.');
|
||||||
}
|
}
|
||||||
|
|
||||||
private function pengurusQuery()
|
private function pengurusQuery()
|
||||||
@@ -170,6 +198,24 @@ class PengurusBumdesController extends Controller
|
|||||||
return $query;
|
return $query;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private function provinsiOptions()
|
||||||
|
{
|
||||||
|
return Provinsi::withoutGlobalScope('program')
|
||||||
|
->select('id', 'kode', 'nama')
|
||||||
|
->orderBy('kode', 'asc')
|
||||||
|
->get();
|
||||||
|
}
|
||||||
|
|
||||||
|
private function wilayahRelationsWithoutProgramScope(): array
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'desaKelurahan' => fn ($query) => $query->withoutGlobalScope('program')->select('id', 'nama', 'kecamatan_id'),
|
||||||
|
'desaKelurahan.kecamatan' => fn ($query) => $query->withoutGlobalScope('program')->select('id', 'nama', 'kabupaten_kota_id'),
|
||||||
|
'desaKelurahan.kecamatan.kabupatenKota' => fn ($query) => $query->withoutGlobalScope('program')->select('id', 'nama', 'provinsi_id'),
|
||||||
|
'desaKelurahan.kecamatan.kabupatenKota.provinsi' => fn ($query) => $query->withoutGlobalScope('program')->select('id', 'nama'),
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
private function validatedData(Request $request): array
|
private function validatedData(Request $request): array
|
||||||
{
|
{
|
||||||
return $request->validate([
|
return $request->validate([
|
||||||
@@ -215,4 +261,320 @@ class PengurusBumdesController extends Controller
|
|||||||
|
|
||||||
return $data;
|
return $data;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private function validatedKelembagaanAktorData(Request $request): array
|
||||||
|
{
|
||||||
|
$this->normalizeKelembagaanAktorInput($request);
|
||||||
|
$maxYear = now()->year + 1;
|
||||||
|
|
||||||
|
return $request->validate([
|
||||||
|
'status_badan_hukum' => ['nullable', Rule::in(array_keys($this->statusBadanHukumOptions()))],
|
||||||
|
'nomor_dasar_hukum' => ['nullable', 'string', 'max:255'],
|
||||||
|
'tahun_dasar_hukum' => ['nullable', 'integer', 'digits:4', 'min:1900', 'max:' . $maxYear],
|
||||||
|
'status_keaktifan' => ['nullable', Rule::in(array_keys($this->statusKeaktifanOptions()))],
|
||||||
|
'alasan_tidak_aktif' => ['nullable', 'string'],
|
||||||
|
'unit_usaha' => ['nullable', 'array'],
|
||||||
|
'unit_usaha.*' => ['string', Rule::in(array_keys($this->unitUsahaOptions()))],
|
||||||
|
'unit_usaha_jasa_lainnya' => ['nullable', 'string', 'max:255'],
|
||||||
|
'status_unit_komoditas' => ['nullable', Rule::in(array_keys($this->statusUnitKomoditasOptions()))],
|
||||||
|
'nama_unit_komoditas' => ['nullable', 'string', 'max:255'],
|
||||||
|
'status_ad_art' => ['nullable', Rule::in(array_keys($this->statusAdArtOptions()))],
|
||||||
|
'tahun_ad_art' => ['nullable', 'integer', 'digits:4', 'min:1900', 'max:' . $maxYear],
|
||||||
|
'pengurus_inti' => ['nullable', 'array'],
|
||||||
|
'pengurus_inti.*.jabatan' => ['nullable', 'string', 'max:255'],
|
||||||
|
'pengurus_inti.*.nama' => ['nullable', 'string', 'max:255'],
|
||||||
|
'pengurus_inti.*.aktif' => ['nullable', 'boolean'],
|
||||||
|
'memiliki_staf' => ['nullable', 'boolean'],
|
||||||
|
'jumlah_staf' => ['nullable', 'integer', 'min:0'],
|
||||||
|
'unit_usaha_staf' => ['nullable', 'string'],
|
||||||
|
'modal_awal' => ['nullable', 'integer', 'min:0'],
|
||||||
|
'tahun_modal_awal' => ['nullable', 'integer', 'digits:4', 'min:1900', 'max:' . $maxYear],
|
||||||
|
'pernah_penambahan_modal' => ['nullable', 'boolean'],
|
||||||
|
'penambahan_modal' => ['nullable', 'array'],
|
||||||
|
'penambahan_modal.*.tahun' => ['nullable', 'integer', 'digits:4', 'min:1900', 'max:' . $maxYear],
|
||||||
|
'penambahan_modal.*.jumlah' => ['nullable', 'integer', 'min:0'],
|
||||||
|
'aset_produktif' => ['nullable', 'array'],
|
||||||
|
'aset_produktif.*.aset' => ['nullable', 'string', 'max:255'],
|
||||||
|
'aset_produktif.*.dipilih' => ['nullable', 'boolean'],
|
||||||
|
'aset_produktif.*.jumlah' => ['nullable', 'string', 'max:255'],
|
||||||
|
'aset_produktif.*.kondisi' => ['nullable', 'string', 'max:255'],
|
||||||
|
'aset_produktif_lainnya' => ['nullable', 'string', 'max:255'],
|
||||||
|
'status_kepemilikan_aset' => ['nullable', Rule::in(array_keys($this->statusKepemilikanAsetOptions()))],
|
||||||
|
'infrastruktur_pascapanen' => ['nullable', 'array'],
|
||||||
|
'infrastruktur_pascapanen.*.infrastruktur' => ['nullable', 'string', 'max:255'],
|
||||||
|
'infrastruktur_pascapanen.*.dipilih' => ['nullable', 'boolean'],
|
||||||
|
'infrastruktur_pascapanen.*.jumlah' => ['nullable', 'string', 'max:255'],
|
||||||
|
'infrastruktur_pascapanen.*.kondisi' => ['nullable', Rule::in(array_keys($this->kondisiInfrastrukturOptions()))],
|
||||||
|
'infrastruktur_pascapanen_lainnya' => ['nullable', 'string', 'max:255'],
|
||||||
|
], $this->kelembagaanAktorValidationMessages(), $this->kelembagaanAktorValidationAttributes());
|
||||||
|
}
|
||||||
|
|
||||||
|
private function normalizeKelembagaanAktorInput(Request $request): void
|
||||||
|
{
|
||||||
|
foreach (['modal_awal'] as $field) {
|
||||||
|
if ($request->has($field)) {
|
||||||
|
$request->merge([$field => preg_replace('/\D/', '', (string) $request->input($field))]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$penambahanModal = collect($request->input('penambahan_modal', []))
|
||||||
|
->map(function ($row) {
|
||||||
|
if (isset($row['jumlah'])) {
|
||||||
|
$row['jumlah'] = preg_replace('/\D/', '', (string) $row['jumlah']);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $row;
|
||||||
|
})
|
||||||
|
->all();
|
||||||
|
|
||||||
|
if ($request->has('penambahan_modal')) {
|
||||||
|
$request->merge(['penambahan_modal' => $penambahanModal]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private function formatKelembagaanAktorData(array $data): array
|
||||||
|
{
|
||||||
|
$payload = array_merge([
|
||||||
|
'status_badan_hukum' => null,
|
||||||
|
'nomor_dasar_hukum' => null,
|
||||||
|
'tahun_dasar_hukum' => null,
|
||||||
|
'status_keaktifan' => null,
|
||||||
|
'alasan_tidak_aktif' => null,
|
||||||
|
'unit_usaha' => [],
|
||||||
|
'unit_usaha_jasa_lainnya' => null,
|
||||||
|
'status_unit_komoditas' => null,
|
||||||
|
'nama_unit_komoditas' => null,
|
||||||
|
'status_ad_art' => null,
|
||||||
|
'tahun_ad_art' => null,
|
||||||
|
'pengurus_inti' => [],
|
||||||
|
'memiliki_staf' => null,
|
||||||
|
'jumlah_staf' => null,
|
||||||
|
'unit_usaha_staf' => null,
|
||||||
|
'modal_awal' => null,
|
||||||
|
'tahun_modal_awal' => null,
|
||||||
|
'pernah_penambahan_modal' => null,
|
||||||
|
'penambahan_modal' => [],
|
||||||
|
'aset_produktif' => [],
|
||||||
|
'aset_produktif_lainnya' => null,
|
||||||
|
'status_kepemilikan_aset' => null,
|
||||||
|
'infrastruktur_pascapanen' => [],
|
||||||
|
'infrastruktur_pascapanen_lainnya' => null,
|
||||||
|
], $data);
|
||||||
|
|
||||||
|
$payload['unit_usaha'] = array_values($payload['unit_usaha'] ?? []);
|
||||||
|
$payload['pengurus_inti'] = $this->filterRows($payload['pengurus_inti'] ?? [], ['nama', 'aktif']);
|
||||||
|
$payload['penambahan_modal'] = $this->filterRows($payload['penambahan_modal'] ?? [], ['tahun', 'jumlah']);
|
||||||
|
$payload['aset_produktif'] = $this->filterRows($payload['aset_produktif'] ?? [], ['dipilih', 'jumlah', 'kondisi']);
|
||||||
|
$payload['infrastruktur_pascapanen'] = $this->filterRows($payload['infrastruktur_pascapanen'] ?? [], ['dipilih', 'jumlah', 'kondisi']);
|
||||||
|
|
||||||
|
if (($payload['status_keaktifan'] ?? null) !== 'tidak_aktif_vakum') {
|
||||||
|
$payload['alasan_tidak_aktif'] = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (! in_array('jasa_lainnya', $payload['unit_usaha'], true)) {
|
||||||
|
$payload['unit_usaha_jasa_lainnya'] = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (($payload['status_unit_komoditas'] ?? null) !== 'ya') {
|
||||||
|
$payload['nama_unit_komoditas'] = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (($payload['status_ad_art'] ?? null) !== 'ada_lengkap') {
|
||||||
|
$payload['tahun_ad_art'] = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (! (bool) ($payload['memiliki_staf'] ?? false)) {
|
||||||
|
$payload['jumlah_staf'] = null;
|
||||||
|
$payload['unit_usaha_staf'] = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (! (bool) ($payload['pernah_penambahan_modal'] ?? false)) {
|
||||||
|
$payload['penambahan_modal'] = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (! collect($payload['aset_produktif'] ?? [])->contains(fn ($row) => ($row['aset'] ?? null) === 'lainnya')) {
|
||||||
|
$payload['aset_produktif_lainnya'] = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (! collect($payload['infrastruktur_pascapanen'] ?? [])->contains(fn ($row) => ($row['infrastruktur'] ?? null) === 'lainnya')) {
|
||||||
|
$payload['infrastruktur_pascapanen_lainnya'] = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $payload;
|
||||||
|
}
|
||||||
|
|
||||||
|
private function filterRows(array $rows, array $valueKeys): array
|
||||||
|
{
|
||||||
|
return collect($rows)
|
||||||
|
->map(function ($row) {
|
||||||
|
return collect($row)
|
||||||
|
->map(fn ($value) => $value === '' ? null : $value)
|
||||||
|
->all();
|
||||||
|
})
|
||||||
|
->filter(function ($row) use ($valueKeys) {
|
||||||
|
foreach ($valueKeys as $key) {
|
||||||
|
if (filled($row[$key] ?? null)) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
})
|
||||||
|
->values()
|
||||||
|
->all();
|
||||||
|
}
|
||||||
|
|
||||||
|
private function kelembagaanAktorOptions(): array
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'statusBadanHukumOptions' => $this->statusBadanHukumOptions(),
|
||||||
|
'statusKeaktifanOptions' => $this->statusKeaktifanOptions(),
|
||||||
|
'unitUsahaOptions' => $this->unitUsahaOptions(),
|
||||||
|
'statusUnitKomoditasOptions' => $this->statusUnitKomoditasOptions(),
|
||||||
|
'statusAdArtOptions' => $this->statusAdArtOptions(),
|
||||||
|
'pengurusIntiRows' => $this->pengurusIntiRows(),
|
||||||
|
'asetProduktifRows' => $this->asetProduktifRows(),
|
||||||
|
'statusKepemilikanAsetOptions' => $this->statusKepemilikanAsetOptions(),
|
||||||
|
'infrastrukturPascapanenRows' => $this->infrastrukturPascapanenRows(),
|
||||||
|
'kondisiInfrastrukturOptions' => $this->kondisiInfrastrukturOptions(),
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
private function statusBadanHukumOptions(): array
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'sudah_berbadan_hukum' => 'Sudah berbadan hukum (terdaftar Kemenkumham)',
|
||||||
|
'proses_pendaftaran' => 'Proses pendaftaran',
|
||||||
|
'belum_berbadan_hukum' => 'Belum berbadan hukum',
|
||||||
|
'tidak_tahu' => 'Tidak tahu',
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
private function statusKeaktifanOptions(): array
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'aktif_penuh' => 'Aktif beroperasi penuh',
|
||||||
|
'aktif_terbatas' => 'Aktif tapi terbatas (sebagian unit usaha berjalan)',
|
||||||
|
'tidak_aktif_vakum' => 'Tidak aktif/vakum',
|
||||||
|
'berdiri_belum_beroperasi' => 'Sudah berdiri tapi belum pernah beroperasi',
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
private function unitUsahaOptions(): array
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'simpan_pinjam' => 'Simpan pinjam',
|
||||||
|
'perdagangan_toko_desa' => 'Perdagangan/toko desa',
|
||||||
|
'pengelolaan_air_bersih' => 'Pengelolaan air bersih',
|
||||||
|
'wisata_desa_agrowisata' => 'Wisata desa/agrowisata',
|
||||||
|
'pengelolaan_hasil_pertanian_komoditas' => 'Pengelolaan hasil pertanian/komoditas',
|
||||||
|
'penyewaan_alat_aset' => 'Penyewaan alat/aset',
|
||||||
|
'jasa_lainnya' => 'Jasa lainnya',
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
private function statusUnitKomoditasOptions(): array
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'ya' => 'Ya, ada unit khusus',
|
||||||
|
'ditangani_pengurus_inti' => 'Tidak ada unit khusus, ditangani langsung pengurus inti',
|
||||||
|
'direncanakan' => 'Belum ada, masih direncanakan',
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
private function statusAdArtOptions(): array
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'ada_lengkap' => 'Ada, lengkap',
|
||||||
|
'ada_tidak_lengkap' => 'Ada tapi tidak lengkap',
|
||||||
|
'tidak_ada' => 'Tidak ada',
|
||||||
|
'tidak_tahu' => 'Tidak tahu',
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
private function pengurusIntiRows(): array
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'penasihat_kepala_desa' => 'Penasihat (Kepala Desa)',
|
||||||
|
'ketua_pengawas' => 'Ketua Pengawas',
|
||||||
|
'direktur_ketua_bumdes' => 'Direktur/Ketua BUMDes',
|
||||||
|
'sekretaris' => 'Sekretaris',
|
||||||
|
'bendahara' => 'Bendahara',
|
||||||
|
'kepala_unit_usaha_komoditas' => 'Kepala Unit Usaha Komoditas',
|
||||||
|
'lainnya' => 'Lainnya',
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
private function asetProduktifRows(): array
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'bangunan_kantor' => 'Bangunan / kantor',
|
||||||
|
'gudang_penyimpanan' => 'Gudang penyimpanan',
|
||||||
|
'kendaraan_operasional_angkut' => 'Kendaraan operasional/angkut',
|
||||||
|
'lahan_usaha' => 'Lahan usaha',
|
||||||
|
'alat_pengolahan_komoditas' => 'Alat pengolahan komoditas',
|
||||||
|
'lainnya' => 'Lainnya',
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
private function statusKepemilikanAsetOptions(): array
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'milik_bumdes_sendiri' => 'Milik BUMDes sendiri',
|
||||||
|
'milik_desa_dipinjamkan_dikelola' => 'Milik desa (dipinjamkan/dikelola)',
|
||||||
|
'sewa_pinjam_pihak_lain' => 'Sewa/pinjam pihak lain',
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
private function infrastrukturPascapanenRows(): array
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'gudang_penyimpanan_hasil_panen' => 'Gudang penyimpanan hasil panen',
|
||||||
|
'alat_mesin_pengering' => 'Alat/mesin pengering',
|
||||||
|
'mesin_pulper_huller' => 'Mesin pulper/huller',
|
||||||
|
'timbangan' => 'Timbangan',
|
||||||
|
'alat_sortasi' => 'Alat sortasi',
|
||||||
|
'lainnya' => 'Lainnya',
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
private function kondisiInfrastrukturOptions(): array
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'baik_berfungsi' => 'Baik dan berfungsi',
|
||||||
|
'rusak_tidak_terpakai' => 'Rusak/tidak terpakai',
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
private function kelembagaanAktorValidationMessages(): array
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'integer' => ':attribute harus berupa angka.',
|
||||||
|
'digits' => ':attribute harus terdiri dari :digits digit.',
|
||||||
|
'min' => ':attribute tidak boleh kurang dari :min.',
|
||||||
|
'max' => ':attribute tidak valid.',
|
||||||
|
'in' => ':attribute tidak valid.',
|
||||||
|
'array' => ':attribute harus berupa daftar data.',
|
||||||
|
'boolean' => ':attribute harus dipilih.',
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
private function kelembagaanAktorValidationAttributes(): array
|
||||||
|
{
|
||||||
|
return [
|
||||||
|
'status_badan_hukum' => 'Status badan hukum',
|
||||||
|
'nomor_dasar_hukum' => 'Nomor dasar hukum',
|
||||||
|
'tahun_dasar_hukum' => 'Tahun dasar hukum',
|
||||||
|
'status_keaktifan' => 'Status keaktifan',
|
||||||
|
'unit_usaha' => 'Unit usaha',
|
||||||
|
'status_unit_komoditas' => 'Unit usaha komoditas',
|
||||||
|
'status_ad_art' => 'Dokumen AD/ART',
|
||||||
|
'memiliki_staf' => 'Status staf/karyawan',
|
||||||
|
'jumlah_staf' => 'Jumlah staf',
|
||||||
|
'modal_awal' => 'Modal awal',
|
||||||
|
'tahun_modal_awal' => 'Tahun modal awal',
|
||||||
|
'pernah_penambahan_modal' => 'Status penambahan modal',
|
||||||
|
'status_kepemilikan_aset' => 'Status kepemilikan aset',
|
||||||
|
];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -51,9 +51,13 @@ class DesaKelurahanController extends Controller
|
|||||||
return response()->json($desa);
|
return response()->json($desa);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getByKecamatan($kecamatan_id)
|
public function getByKecamatan(Request $request, $kecamatan_id)
|
||||||
{
|
{
|
||||||
$desa = DesaKelurahan::where('kecamatan_id', $kecamatan_id)
|
$query = $request->boolean('all_wilayah')
|
||||||
|
? DesaKelurahan::withoutGlobalScope('program')
|
||||||
|
: DesaKelurahan::query();
|
||||||
|
|
||||||
|
$desa = $query->where('kecamatan_id', $kecamatan_id)
|
||||||
->orderBy('nama', 'asc')
|
->orderBy('nama', 'asc')
|
||||||
->get();
|
->get();
|
||||||
|
|
||||||
|
|||||||
@@ -51,9 +51,13 @@ class KabupatenKotaController extends Controller
|
|||||||
return response()->json($kabupaten);
|
return response()->json($kabupaten);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getByProvinsi($provinsi_id)
|
public function getByProvinsi(Request $request, $provinsi_id)
|
||||||
{
|
{
|
||||||
$kabupaten = KabupatenKota::where('provinsi_id', $provinsi_id)
|
$query = $request->boolean('all_wilayah')
|
||||||
|
? KabupatenKota::withoutGlobalScope('program')
|
||||||
|
: KabupatenKota::query();
|
||||||
|
|
||||||
|
$kabupaten = $query->where('provinsi_id', $provinsi_id)
|
||||||
->orderBy('nama', 'asc')
|
->orderBy('nama', 'asc')
|
||||||
->get();
|
->get();
|
||||||
|
|
||||||
|
|||||||
@@ -51,9 +51,13 @@ class KecamatanController extends Controller
|
|||||||
return response()->json($kecamatan);
|
return response()->json($kecamatan);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getByKabupaten($kabupaten_id)
|
public function getByKabupaten(Request $request, $kabupaten_id)
|
||||||
{
|
{
|
||||||
$kecamatan = Kecamatan::where('kabupaten_kota_id', $kabupaten_id)
|
$query = $request->boolean('all_wilayah')
|
||||||
|
? Kecamatan::withoutGlobalScope('program')
|
||||||
|
: Kecamatan::query();
|
||||||
|
|
||||||
|
$kecamatan = $query->where('kabupaten_kota_id', $kabupaten_id)
|
||||||
->orderBy('nama', 'asc')
|
->orderBy('nama', 'asc')
|
||||||
->get();
|
->get();
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,71 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Models\Bumdes;
|
||||||
|
|
||||||
|
use App\Models\User;
|
||||||
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||||
|
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||||
|
|
||||||
|
class KelembagaanAktorBumdes extends Model
|
||||||
|
{
|
||||||
|
use SoftDeletes;
|
||||||
|
|
||||||
|
protected $table = 'bumdes_kelembagaan_aktor';
|
||||||
|
|
||||||
|
protected $fillable = [
|
||||||
|
'pengurus_bumdes_id',
|
||||||
|
'status_badan_hukum',
|
||||||
|
'nomor_dasar_hukum',
|
||||||
|
'tahun_dasar_hukum',
|
||||||
|
'status_keaktifan',
|
||||||
|
'alasan_tidak_aktif',
|
||||||
|
'unit_usaha',
|
||||||
|
'unit_usaha_jasa_lainnya',
|
||||||
|
'status_unit_komoditas',
|
||||||
|
'nama_unit_komoditas',
|
||||||
|
'status_ad_art',
|
||||||
|
'tahun_ad_art',
|
||||||
|
'pengurus_inti',
|
||||||
|
'memiliki_staf',
|
||||||
|
'jumlah_staf',
|
||||||
|
'unit_usaha_staf',
|
||||||
|
'modal_awal',
|
||||||
|
'tahun_modal_awal',
|
||||||
|
'pernah_penambahan_modal',
|
||||||
|
'penambahan_modal',
|
||||||
|
'aset_produktif',
|
||||||
|
'aset_produktif_lainnya',
|
||||||
|
'status_kepemilikan_aset',
|
||||||
|
'infrastruktur_pascapanen',
|
||||||
|
'infrastruktur_pascapanen_lainnya',
|
||||||
|
'created_by',
|
||||||
|
'updated_by',
|
||||||
|
'deleted_by',
|
||||||
|
];
|
||||||
|
|
||||||
|
protected $casts = [
|
||||||
|
'tahun_dasar_hukum' => 'integer',
|
||||||
|
'tahun_ad_art' => 'integer',
|
||||||
|
'unit_usaha' => 'array',
|
||||||
|
'pengurus_inti' => 'array',
|
||||||
|
'memiliki_staf' => 'boolean',
|
||||||
|
'jumlah_staf' => 'integer',
|
||||||
|
'modal_awal' => 'decimal:2',
|
||||||
|
'tahun_modal_awal' => 'integer',
|
||||||
|
'pernah_penambahan_modal' => 'boolean',
|
||||||
|
'penambahan_modal' => 'array',
|
||||||
|
'aset_produktif' => 'array',
|
||||||
|
'infrastruktur_pascapanen' => 'array',
|
||||||
|
];
|
||||||
|
|
||||||
|
public function pengurusBumdes(): BelongsTo
|
||||||
|
{
|
||||||
|
return $this->belongsTo(PengurusBumdes::class, 'pengurus_bumdes_id');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function creator(): BelongsTo
|
||||||
|
{
|
||||||
|
return $this->belongsTo(User::class, 'created_by');
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -9,6 +9,7 @@ use App\Models\Wilayah\DesaKelurahan;
|
|||||||
use Carbon\Carbon;
|
use Carbon\Carbon;
|
||||||
use Illuminate\Database\Eloquent\Model;
|
use Illuminate\Database\Eloquent\Model;
|
||||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||||
|
use Illuminate\Database\Eloquent\Relations\HasOne;
|
||||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||||
|
|
||||||
class PengurusBumdes extends Model
|
class PengurusBumdes extends Model
|
||||||
@@ -105,4 +106,9 @@ class PengurusBumdes extends Model
|
|||||||
{
|
{
|
||||||
return $this->belongsTo(User::class, 'created_by');
|
return $this->belongsTo(User::class, 'created_by');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function kelembagaanAktor(): HasOne
|
||||||
|
{
|
||||||
|
return $this->hasOne(KelembagaanAktorBumdes::class, 'pengurus_bumdes_id');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,50 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
|
||||||
|
return new class extends Migration
|
||||||
|
{
|
||||||
|
public function up(): void
|
||||||
|
{
|
||||||
|
Schema::create('bumdes_kelembagaan_aktor', function (Blueprint $table) {
|
||||||
|
$table->id();
|
||||||
|
$table->foreignId('pengurus_bumdes_id')->unique()->constrained('bumdes_pengurus')->onDelete('cascade');
|
||||||
|
$table->string('status_badan_hukum')->nullable();
|
||||||
|
$table->string('nomor_dasar_hukum')->nullable();
|
||||||
|
$table->unsignedSmallInteger('tahun_dasar_hukum')->nullable();
|
||||||
|
$table->string('status_keaktifan')->nullable();
|
||||||
|
$table->text('alasan_tidak_aktif')->nullable();
|
||||||
|
$table->json('unit_usaha')->nullable();
|
||||||
|
$table->string('unit_usaha_jasa_lainnya')->nullable();
|
||||||
|
$table->string('status_unit_komoditas')->nullable();
|
||||||
|
$table->string('nama_unit_komoditas')->nullable();
|
||||||
|
$table->string('status_ad_art')->nullable();
|
||||||
|
$table->unsignedSmallInteger('tahun_ad_art')->nullable();
|
||||||
|
$table->json('pengurus_inti')->nullable();
|
||||||
|
$table->boolean('memiliki_staf')->nullable();
|
||||||
|
$table->unsignedInteger('jumlah_staf')->nullable();
|
||||||
|
$table->text('unit_usaha_staf')->nullable();
|
||||||
|
$table->decimal('modal_awal', 18, 2)->nullable();
|
||||||
|
$table->unsignedSmallInteger('tahun_modal_awal')->nullable();
|
||||||
|
$table->boolean('pernah_penambahan_modal')->nullable();
|
||||||
|
$table->json('penambahan_modal')->nullable();
|
||||||
|
$table->json('aset_produktif')->nullable();
|
||||||
|
$table->string('aset_produktif_lainnya')->nullable();
|
||||||
|
$table->string('status_kepemilikan_aset')->nullable();
|
||||||
|
$table->json('infrastruktur_pascapanen')->nullable();
|
||||||
|
$table->string('infrastruktur_pascapanen_lainnya')->nullable();
|
||||||
|
$table->foreignId('created_by')->nullable()->constrained('users')->onDelete('set null');
|
||||||
|
$table->foreignId('updated_by')->nullable()->constrained('users')->onDelete('set null');
|
||||||
|
$table->foreignId('deleted_by')->nullable()->constrained('users')->onDelete('set null');
|
||||||
|
$table->timestamps();
|
||||||
|
$table->softDeletes();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
public function down(): void
|
||||||
|
{
|
||||||
|
Schema::dropIfExists('bumdes_kelembagaan_aktor');
|
||||||
|
}
|
||||||
|
};
|
||||||
@@ -1,7 +1,530 @@
|
|||||||
@extends('layout.main')
|
@extends('layout.main')
|
||||||
|
|
||||||
|
@php
|
||||||
|
$fieldValue = function (string $field, $default = null) use ($kelembagaanAktor) {
|
||||||
|
return old($field, data_get($kelembagaanAktor, $field, $default));
|
||||||
|
};
|
||||||
|
|
||||||
|
$arrayValue = function (string $field) use ($fieldValue) {
|
||||||
|
return (array) $fieldValue($field, []);
|
||||||
|
};
|
||||||
|
|
||||||
|
$rowValue = function (string $field, string $keyName, string $key) use ($fieldValue) {
|
||||||
|
return collect((array) $fieldValue($field, []))->firstWhere($keyName, $key) ?? [];
|
||||||
|
};
|
||||||
|
|
||||||
|
$rupiahValue = function ($value) {
|
||||||
|
if (! filled($value)) {
|
||||||
|
return '';
|
||||||
|
}
|
||||||
|
|
||||||
|
if (is_numeric($value)) {
|
||||||
|
return number_format((float) $value, 0, ',', '.');
|
||||||
|
}
|
||||||
|
|
||||||
|
return preg_replace('/\D/', '', (string) $value);
|
||||||
|
};
|
||||||
|
@endphp
|
||||||
|
|
||||||
@section('content')
|
@section('content')
|
||||||
<div class="container-xxl flex-grow-1 container-p-y">
|
<div class="container-xxl flex-grow-1 container-p-y">
|
||||||
|
@if (session('success'))
|
||||||
|
<div class="alert alert-success">{{ session('success') }}</div>
|
||||||
|
@endif
|
||||||
|
|
||||||
|
@if ($errors->any())
|
||||||
|
<div class="alert alert-danger">
|
||||||
|
<ul class="mb-0">
|
||||||
|
@foreach ($errors->all() as $error)
|
||||||
|
<li>{{ $error }}</li>
|
||||||
|
@endforeach
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
@endif
|
||||||
|
|
||||||
@include('bumdes.profil.header', ['pengurus' => $pengurus])
|
@include('bumdes.profil.header', ['pengurus' => $pengurus])
|
||||||
|
|
||||||
|
<form method="POST" action="{{ route('bumdes.kelembagaan-aktor.store', $pengurus->id) }}" id="kelembagaanAktorForm">
|
||||||
|
@csrf
|
||||||
|
|
||||||
|
<div class="card mb-6">
|
||||||
|
<div class="card-header border-bottom">
|
||||||
|
<h5 class="card-title mb-0">Status Keberadaan, Keaktifan, Kepengurusan dan Modal BUMDes</h5>
|
||||||
|
</div>
|
||||||
|
<div class="card-body pt-6">
|
||||||
|
<h5 class="pb-4 border-bottom mb-4">Status Keberadaan dan Keaktifan</h5>
|
||||||
|
|
||||||
|
<div class="mb-5 form-control-validation">
|
||||||
|
<label class="form-label d-block fw-semibold">Apakah BUMDes sudah berbadan hukum?</label>
|
||||||
|
<div class="d-flex flex-column">
|
||||||
|
@foreach($statusBadanHukumOptions as $value => $label)
|
||||||
|
<div>
|
||||||
|
<div class="form-check">
|
||||||
|
<input class="form-check-input" type="radio" id="status-badan-hukum-{{ $value }}" name="status_badan_hukum" value="{{ $value }}" @checked($fieldValue('status_badan_hukum') === $value)>
|
||||||
|
<label class="form-check-label" for="status-badan-hukum-{{ $value }}">{{ $label }}</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
@endforeach
|
||||||
|
</div>
|
||||||
|
@error('status_badan_hukum')<div class="invalid-feedback d-block">{{ $message }}</div>@enderror
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-6 mb-5 form-control-validation">
|
||||||
|
<label class="form-label" for="nomor-dasar-hukum">Dasar hukum pendirian BUMDes (Peraturan Desa/SK) - Nomor</label>
|
||||||
|
<input type="text" class="form-control @error('nomor_dasar_hukum') is-invalid @enderror" id="nomor-dasar-hukum" name="nomor_dasar_hukum" value="{{ $fieldValue('nomor_dasar_hukum') }}" placeholder="Contoh: Perdes No. 02/2024">
|
||||||
|
@error('nomor_dasar_hukum')<div class="invalid-feedback">{{ $message }}</div>@enderror
|
||||||
|
</div>
|
||||||
|
<div class="col-md-3 mb-5 form-control-validation">
|
||||||
|
<label class="form-label" for="tahun-dasar-hukum">Tahun ditetapkan</label>
|
||||||
|
<input type="number" class="form-control @error('tahun_dasar_hukum') is-invalid @enderror" id="tahun-dasar-hukum" name="tahun_dasar_hukum" value="{{ $fieldValue('tahun_dasar_hukum') }}" placeholder="Contoh: 2024">
|
||||||
|
@error('tahun_dasar_hukum')<div class="invalid-feedback">{{ $message }}</div>@enderror
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="mb-5 form-control-validation">
|
||||||
|
<label class="form-label d-block fw-semibold">Bagaimana status keaktifan BUMDes?</label>
|
||||||
|
<div class="d-flex flex-column">
|
||||||
|
@foreach($statusKeaktifanOptions as $value => $label)
|
||||||
|
<div>
|
||||||
|
<div class="form-check">
|
||||||
|
<input class="form-check-input" type="radio" id="status-keaktifan-{{ $value }}" name="status_keaktifan" value="{{ $value }}" @checked($fieldValue('status_keaktifan') === $value)>
|
||||||
|
<label class="form-check-label" for="status-keaktifan-{{ $value }}">{{ $label }}</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
@endforeach
|
||||||
|
</div>
|
||||||
|
@error('status_keaktifan')<div class="invalid-feedback d-block">{{ $message }}</div>@enderror
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="mb-5 form-control-validation" id="alasan-tidak-aktif-wrapper">
|
||||||
|
<label class="form-label" for="alasan-tidak-aktif">Jika tidak aktif/vakum, apa alasan utamanya?</label>
|
||||||
|
<textarea class="form-control @error('alasan_tidak_aktif') is-invalid @enderror" id="alasan-tidak-aktif" name="alasan_tidak_aktif" rows="2" placeholder="Tuliskan alasan utama BUMDes tidak aktif/vakum">{{ $fieldValue('alasan_tidak_aktif') }}</textarea>
|
||||||
|
@error('alasan_tidak_aktif')<div class="invalid-feedback">{{ $message }}</div>@enderror
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<h5 class="pb-4 border-bottom mb-4 mt-4">Unit Usaha dan Dokumen Kelembagaan</h5>
|
||||||
|
|
||||||
|
<div class="mb-5 form-control-validation">
|
||||||
|
<label class="form-label d-block fw-semibold">Unit usaha yang dimiliki BUMDes saat ini (boleh pilih lebih dari satu)</label>
|
||||||
|
<div class="d-flex flex-column">
|
||||||
|
@foreach($unitUsahaOptions as $value => $label)
|
||||||
|
<div>
|
||||||
|
<div class="form-check">
|
||||||
|
<input class="form-check-input" type="checkbox" id="unit-usaha-{{ $value }}" name="unit_usaha[]" value="{{ $value }}" @checked(in_array($value, $arrayValue('unit_usaha'), true))>
|
||||||
|
<label class="form-check-label" for="unit-usaha-{{ $value }}">{{ $label }}</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
@endforeach
|
||||||
|
</div>
|
||||||
|
@error('unit_usaha')<div class="invalid-feedback d-block">{{ $message }}</div>@enderror
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row" id="unit-usaha-jasa-lainnya-wrapper">
|
||||||
|
<div class="col-md-6 mb-5 form-control-validation">
|
||||||
|
<label class="form-label" for="unit-usaha-jasa-lainnya">Jasa lainnya</label>
|
||||||
|
<input type="text" class="form-control @error('unit_usaha_jasa_lainnya') is-invalid @enderror" id="unit-usaha-jasa-lainnya" name="unit_usaha_jasa_lainnya" value="{{ $fieldValue('unit_usaha_jasa_lainnya') }}" placeholder="Sebutkan jasa lainnya">
|
||||||
|
@error('unit_usaha_jasa_lainnya')<div class="invalid-feedback">{{ $message }}</div>@enderror
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="mb-5 form-control-validation">
|
||||||
|
<label class="form-label d-block fw-semibold">Apakah ada unit usaha khusus yang menangani komoditas kopi/kakao/vanili/kemiri?</label>
|
||||||
|
<div class="d-flex flex-column">
|
||||||
|
@foreach($statusUnitKomoditasOptions as $value => $label)
|
||||||
|
<div>
|
||||||
|
<div class="form-check">
|
||||||
|
<input class="form-check-input" type="radio" id="status-unit-komoditas-{{ $value }}" name="status_unit_komoditas" value="{{ $value }}" @checked($fieldValue('status_unit_komoditas') === $value)>
|
||||||
|
<label class="form-check-label" for="status-unit-komoditas-{{ $value }}">{{ $label }}</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
@endforeach
|
||||||
|
</div>
|
||||||
|
@error('status_unit_komoditas')<div class="invalid-feedback d-block">{{ $message }}</div>@enderror
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row" id="nama-unit-komoditas-wrapper">
|
||||||
|
<div class="col-md-6 mb-5 form-control-validation">
|
||||||
|
<label class="form-label" for="nama-unit-komoditas">Nama unit usaha komoditas</label>
|
||||||
|
<input type="text" class="form-control @error('nama_unit_komoditas') is-invalid @enderror" id="nama-unit-komoditas" name="nama_unit_komoditas" value="{{ $fieldValue('nama_unit_komoditas') }}" placeholder="Contoh: Unit Pengolahan Kopi">
|
||||||
|
@error('nama_unit_komoditas')<div class="invalid-feedback">{{ $message }}</div>@enderror
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="mb-5 form-control-validation">
|
||||||
|
<label class="form-label d-block fw-semibold">Apakah ada dokumen kelembagaan (AD/ART)?</label>
|
||||||
|
<div class="d-flex flex-column">
|
||||||
|
@foreach($statusAdArtOptions as $value => $label)
|
||||||
|
<div>
|
||||||
|
<div class="form-check">
|
||||||
|
<input class="form-check-input" type="radio" id="status-ad-art-{{ $value }}" name="status_ad_art" value="{{ $value }}" @checked($fieldValue('status_ad_art') === $value)>
|
||||||
|
<label class="form-check-label" for="status-ad-art-{{ $value }}">{{ $label }}</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
@endforeach
|
||||||
|
</div>
|
||||||
|
@error('status_ad_art')<div class="invalid-feedback d-block">{{ $message }}</div>@enderror
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row" id="tahun-ad-art-wrapper">
|
||||||
|
<div class="col-md-3 mb-5 form-control-validation">
|
||||||
|
<label class="form-label" for="tahun-ad-art">Terakhir diperbarui tahun</label>
|
||||||
|
<input type="number" class="form-control @error('tahun_ad_art') is-invalid @enderror" id="tahun-ad-art" name="tahun_ad_art" value="{{ $fieldValue('tahun_ad_art') }}" placeholder="Contoh: 2024">
|
||||||
|
@error('tahun_ad_art')<div class="invalid-feedback">{{ $message }}</div>@enderror
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<h5 class="pb-4 border-bottom mb-4 mt-4">Kepengurusan dan Staf</h5>
|
||||||
|
<label class="form-label d-block fw-semibold">Catat pengurus inti yang aktif menjabat saat ini</label>
|
||||||
|
<div class="table-responsive mb-5">
|
||||||
|
<table class="table table-bordered align-middle">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th style="width: 30%;">Jabatan</th>
|
||||||
|
<th>Nama</th>
|
||||||
|
<th style="width: 22%;">Keaktifan</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
@foreach($pengurusIntiRows as $key => $label)
|
||||||
|
@php
|
||||||
|
$savedRow = $rowValue('pengurus_inti', 'jabatan', $key);
|
||||||
|
$aktifValue = old("pengurus_inti.$loop->index.aktif", data_get($savedRow, 'aktif'));
|
||||||
|
@endphp
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<input type="hidden" name="pengurus_inti[{{ $loop->index }}][jabatan]" value="{{ $key }}">
|
||||||
|
{{ $label }}
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<input type="text" class="form-control" name="pengurus_inti[{{ $loop->index }}][nama]" value="{{ old("pengurus_inti.$loop->index.nama", data_get($savedRow, 'nama')) }}">
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<div class="d-flex flex-column">
|
||||||
|
<div class="form-check mb-0">
|
||||||
|
<input class="form-check-input" type="radio" id="pengurus-inti-{{ $key }}-aktif" name="pengurus_inti[{{ $loop->index }}][aktif]" value="1" @checked((string) $aktifValue === '1')>
|
||||||
|
<label class="form-check-label" for="pengurus-inti-{{ $key }}-aktif">Aktif</label>
|
||||||
|
</div>
|
||||||
|
<div class="form-check mb-0">
|
||||||
|
<input class="form-check-input" type="radio" id="pengurus-inti-{{ $key }}-tidak" name="pengurus_inti[{{ $loop->index }}][aktif]" value="0" @checked((string) $aktifValue === '0')>
|
||||||
|
<label class="form-check-label" for="pengurus-inti-{{ $key }}-tidak">Tidak</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
@endforeach
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="mb-5 form-control-validation">
|
||||||
|
<label class="form-label d-block fw-semibold">Apakah BUMDes memiliki staf/karyawan di luar pengurus inti?</label>
|
||||||
|
<div class="d-flex flex-column">
|
||||||
|
<div class="form-check">
|
||||||
|
<input class="form-check-input" type="radio" id="memiliki-staf-ya" name="memiliki_staf" value="1" @checked((string) $fieldValue('memiliki_staf') === '1')>
|
||||||
|
<label class="form-check-label" for="memiliki-staf-ya">Ya</label>
|
||||||
|
</div>
|
||||||
|
<div class="form-check">
|
||||||
|
<input class="form-check-input" type="radio" id="memiliki-staf-tidak" name="memiliki_staf" value="0" @checked((string) $fieldValue('memiliki_staf') === '0')>
|
||||||
|
<label class="form-check-label" for="memiliki-staf-tidak">Tidak ada, dikelola langsung pengurus</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
@error('memiliki_staf')<div class="invalid-feedback d-block">{{ $message }}</div>@enderror
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="row" id="staf-detail-wrapper">
|
||||||
|
<div class="col-md-3 mb-5 form-control-validation">
|
||||||
|
<label class="form-label" for="jumlah-staf">Jumlah staf</label>
|
||||||
|
<div class="input-group">
|
||||||
|
<input type="number" min="0" class="form-control @error('jumlah_staf') is-invalid @enderror" id="jumlah-staf" name="jumlah_staf" value="{{ $fieldValue('jumlah_staf') }}">
|
||||||
|
<span class="input-group-text">orang</span>
|
||||||
|
</div>
|
||||||
|
@error('jumlah_staf')<div class="invalid-feedback d-block">{{ $message }}</div>@enderror
|
||||||
|
</div>
|
||||||
|
<div class="col-md-9 mb-5 form-control-validation">
|
||||||
|
<label class="form-label" for="unit-usaha-staf">Jika ada, untuk unit usaha apa staf tersebut bekerja?</label>
|
||||||
|
<input type="text" class="form-control @error('unit_usaha_staf') is-invalid @enderror" id="unit-usaha-staf" name="unit_usaha_staf" value="{{ $fieldValue('unit_usaha_staf') }}" placeholder="Contoh: Unit perdagangan/toko desa">
|
||||||
|
@error('unit_usaha_staf')<div class="invalid-feedback">{{ $message }}</div>@enderror
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<h5 class="pb-4 border-bottom mb-4 mt-4">Modal dan Aset</h5>
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-4 mb-5 form-control-validation">
|
||||||
|
<label class="form-label" for="modal-awal">Besaran modal awal BUMDes (jika diketahui)</label>
|
||||||
|
<div class="input-group">
|
||||||
|
<span class="input-group-text">Rp</span>
|
||||||
|
<input type="text" inputmode="numeric" class="form-control rupiah-input @error('modal_awal') is-invalid @enderror" id="modal-awal" name="modal_awal" value="{{ $rupiahValue($fieldValue('modal_awal')) }}">
|
||||||
|
</div>
|
||||||
|
@error('modal_awal')<div class="invalid-feedback d-block">{{ $message }}</div>@enderror
|
||||||
|
</div>
|
||||||
|
<div class="col-md-3 mb-5 form-control-validation">
|
||||||
|
<label class="form-label" for="tahun-modal-awal">Tahun diterima</label>
|
||||||
|
<input type="number" class="form-control @error('tahun_modal_awal') is-invalid @enderror" id="tahun-modal-awal" name="tahun_modal_awal" value="{{ $fieldValue('tahun_modal_awal') }}" placeholder="Contoh: 2024">
|
||||||
|
@error('tahun_modal_awal')<div class="invalid-feedback">{{ $message }}</div>@enderror
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="mb-5 form-control-validation">
|
||||||
|
<label class="form-label d-block fw-semibold">Apakah BUMDes pernah menerima penambahan modal sejak pertama kali berdiri?</label>
|
||||||
|
<div class="d-flex flex-column">
|
||||||
|
<div class="form-check">
|
||||||
|
<input class="form-check-input" type="radio" id="penambahan-modal-ya" name="pernah_penambahan_modal" value="1" @checked((string) $fieldValue('pernah_penambahan_modal') === '1')>
|
||||||
|
<label class="form-check-label" for="penambahan-modal-ya">Ya, pernah</label>
|
||||||
|
</div>
|
||||||
|
<div class="form-check">
|
||||||
|
<input class="form-check-input" type="radio" id="penambahan-modal-tidak" name="pernah_penambahan_modal" value="0" @checked((string) $fieldValue('pernah_penambahan_modal') === '0')>
|
||||||
|
<label class="form-check-label" for="penambahan-modal-tidak">Tidak pernah menerima penambahan modal</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
@error('pernah_penambahan_modal')<div class="invalid-feedback d-block">{{ $message }}</div>@enderror
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="penambahan-modal-wrapper">
|
||||||
|
<label class="form-label d-block fw-semibold">Jika BUMDes pernah menerima penambahan modal, isi rincian penambahan modal 3 tahun terakhir</label>
|
||||||
|
<div class="table-responsive mb-5">
|
||||||
|
<table class="table table-bordered align-middle">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>Tahun</th>
|
||||||
|
<th>Jumlah (Rp)</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
@for($i = 0; $i < 3; $i++)
|
||||||
|
@php $savedRow = data_get($fieldValue('penambahan_modal', []), $i, []); @endphp
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<input type="number" class="form-control" name="penambahan_modal[{{ $i }}][tahun]" value="{{ old("penambahan_modal.$i.tahun", data_get($savedRow, 'tahun')) }}" placeholder="Contoh: 2024">
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<div class="input-group">
|
||||||
|
<span class="input-group-text">Rp</span>
|
||||||
|
<input type="text" inputmode="numeric" class="form-control rupiah-input" name="penambahan_modal[{{ $i }}][jumlah]" value="{{ $rupiahValue(old("penambahan_modal.$i.jumlah", data_get($savedRow, 'jumlah'))) }}">
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
@endfor
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<label class="form-label d-block fw-semibold">Aset produktif yang dimiliki BUMDes (boleh pilih lebih dari satu, lewati jika tidak ada)</label>
|
||||||
|
<div class="table-responsive mb-5">
|
||||||
|
<table class="table table-bordered align-middle">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th style="width: 34%;">Aset Produktif</th>
|
||||||
|
<th>Jumlah</th>
|
||||||
|
<th>Kondisi</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
@foreach($asetProduktifRows as $key => $label)
|
||||||
|
@php
|
||||||
|
$savedRow = $rowValue('aset_produktif', 'aset', $key);
|
||||||
|
$dipilih = old("aset_produktif.$loop->index.dipilih", data_get($savedRow, 'dipilih'));
|
||||||
|
@endphp
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<input type="hidden" name="aset_produktif[{{ $loop->index }}][aset]" value="{{ $key }}">
|
||||||
|
<div class="form-check">
|
||||||
|
<input class="form-check-input aset-produktif-check" type="checkbox" id="aset-produktif-{{ $key }}" name="aset_produktif[{{ $loop->index }}][dipilih]" value="1" data-target="{{ $key }}" @checked((string) $dipilih === '1')>
|
||||||
|
<label class="form-check-label" for="aset-produktif-{{ $key }}">{{ $label }}</label>
|
||||||
|
</div>
|
||||||
|
@if($key === 'lainnya')
|
||||||
|
<input type="text" class="form-control mt-2" id="aset-produktif-lainnya" name="aset_produktif_lainnya" value="{{ $fieldValue('aset_produktif_lainnya') }}" placeholder="Sebutkan aset lainnya">
|
||||||
|
@endif
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<input type="text" class="form-control" name="aset_produktif[{{ $loop->index }}][jumlah]" value="{{ old("aset_produktif.$loop->index.jumlah", data_get($savedRow, 'jumlah')) }}">
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<input type="text" class="form-control" name="aset_produktif[{{ $loop->index }}][kondisi]" value="{{ old("aset_produktif.$loop->index.kondisi", data_get($savedRow, 'kondisi')) }}" placeholder="Contoh: Baik, rusak ringan">
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
@endforeach
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="mb-5 form-control-validation">
|
||||||
|
<label class="form-label d-block fw-semibold">Status kepemilikan aset (lewati jika tidak ada)</label>
|
||||||
|
<div class="d-flex flex-column">
|
||||||
|
@foreach($statusKepemilikanAsetOptions as $value => $label)
|
||||||
|
<div>
|
||||||
|
<div class="form-check">
|
||||||
|
<input class="form-check-input" type="radio" id="status-kepemilikan-aset-{{ $value }}" name="status_kepemilikan_aset" value="{{ $value }}" @checked($fieldValue('status_kepemilikan_aset') === $value)>
|
||||||
|
<label class="form-check-label" for="status-kepemilikan-aset-{{ $value }}">{{ $label }}</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
@endforeach
|
||||||
|
</div>
|
||||||
|
@error('status_kepemilikan_aset')<div class="invalid-feedback d-block">{{ $message }}</div>@enderror
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<label class="form-label d-block fw-semibold">Ketersediaan infrastruktur pascapanen untuk komoditas kopi/kakao/vanili/kemiri</label>
|
||||||
|
<div class="table-responsive mb-5">
|
||||||
|
<table class="table table-bordered align-middle">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th style="width: 34%;">Infrastruktur Pascapanen</th>
|
||||||
|
<th>Jumlah</th>
|
||||||
|
<th style="width: 34%;">Kondisi</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
@foreach($infrastrukturPascapanenRows as $key => $label)
|
||||||
|
@php
|
||||||
|
$savedRow = $rowValue('infrastruktur_pascapanen', 'infrastruktur', $key);
|
||||||
|
$dipilih = old("infrastruktur_pascapanen.$loop->index.dipilih", data_get($savedRow, 'dipilih'));
|
||||||
|
$kondisiValue = old("infrastruktur_pascapanen.$loop->index.kondisi", data_get($savedRow, 'kondisi'));
|
||||||
|
@endphp
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<input type="hidden" name="infrastruktur_pascapanen[{{ $loop->index }}][infrastruktur]" value="{{ $key }}">
|
||||||
|
<div class="form-check">
|
||||||
|
<input class="form-check-input infrastruktur-check" type="checkbox" id="infrastruktur-{{ $key }}" name="infrastruktur_pascapanen[{{ $loop->index }}][dipilih]" value="1" data-target="{{ $key }}" @checked((string) $dipilih === '1')>
|
||||||
|
<label class="form-check-label" for="infrastruktur-{{ $key }}">{{ $label }}</label>
|
||||||
|
</div>
|
||||||
|
@if($key === 'lainnya')
|
||||||
|
<input type="text" class="form-control mt-2" id="infrastruktur-pascapanen-lainnya" name="infrastruktur_pascapanen_lainnya" value="{{ $fieldValue('infrastruktur_pascapanen_lainnya') }}" placeholder="Sebutkan infrastruktur lainnya">
|
||||||
|
@endif
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<input type="text" class="form-control" name="infrastruktur_pascapanen[{{ $loop->index }}][jumlah]" value="{{ old("infrastruktur_pascapanen.$loop->index.jumlah", data_get($savedRow, 'jumlah')) }}">
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<div class="d-flex flex-column">
|
||||||
|
@foreach($kondisiInfrastrukturOptions as $kondisi => $kondisiLabel)
|
||||||
|
<div class="form-check mb-0">
|
||||||
|
<input class="form-check-input" type="radio" id="infrastruktur-{{ $key }}-{{ $kondisi }}" name="infrastruktur_pascapanen[{{ $loop->parent->index }}][kondisi]" value="{{ $kondisi }}" @checked($kondisiValue === $kondisi)>
|
||||||
|
<label class="form-check-label" for="infrastruktur-{{ $key }}-{{ $kondisi }}">{{ $kondisiLabel }}</label>
|
||||||
|
</div>
|
||||||
|
@endforeach
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
@endforeach
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="mt-4 text-end">
|
||||||
|
<a href="{{ route('bumdes.index') }}" class="btn btn-secondary me-2 wave-effect wave-light">Kembali</a>
|
||||||
|
<button type="submit" class="btn btn-success data-submit wave-effect wave-light">
|
||||||
|
<i class="ti tabler-device-floppy me-2"></i>Simpan Kelembagaan dan Aktor
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
</div>
|
</div>
|
||||||
@endsection
|
@endsection
|
||||||
|
|
||||||
|
@push('scripts')
|
||||||
|
<script>
|
||||||
|
'use strict';
|
||||||
|
$(document).ready(function () {
|
||||||
|
function onlyDigits(value) {
|
||||||
|
return String(value || '').replace(/\D/g, '');
|
||||||
|
}
|
||||||
|
|
||||||
|
function formatRupiah(value) {
|
||||||
|
return onlyDigits(value).replace(/\B(?=(\d{3})+(?!\d))/g, '.');
|
||||||
|
}
|
||||||
|
|
||||||
|
function toggleWrapper($wrapper, enabled) {
|
||||||
|
$wrapper.toggleClass('d-none', !enabled);
|
||||||
|
setFieldsEnabled($wrapper, enabled);
|
||||||
|
}
|
||||||
|
|
||||||
|
function setFieldsEnabled($wrapper, enabled) {
|
||||||
|
$wrapper.find('input, textarea, select').prop('disabled', !enabled);
|
||||||
|
|
||||||
|
if (!enabled) {
|
||||||
|
$wrapper.find('input:not([type="radio"]):not([type="checkbox"]), textarea').val('');
|
||||||
|
$wrapper.find('input[type="radio"], input[type="checkbox"]').prop('checked', false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function syncStatusKeaktifan() {
|
||||||
|
setFieldsEnabled($('#alasan-tidak-aktif-wrapper'), $('input[name="status_keaktifan"]:checked').val() === 'tidak_aktif_vakum');
|
||||||
|
}
|
||||||
|
|
||||||
|
function syncUnitUsahaLainnya() {
|
||||||
|
toggleWrapper($('#unit-usaha-jasa-lainnya-wrapper'), $('input[name="unit_usaha[]"][value="jasa_lainnya"]').is(':checked'));
|
||||||
|
}
|
||||||
|
|
||||||
|
function syncUnitKomoditas() {
|
||||||
|
toggleWrapper($('#nama-unit-komoditas-wrapper'), $('input[name="status_unit_komoditas"]:checked').val() === 'ya');
|
||||||
|
}
|
||||||
|
|
||||||
|
function syncAdArt() {
|
||||||
|
toggleWrapper($('#tahun-ad-art-wrapper'), $('input[name="status_ad_art"]:checked').val() === 'ada_lengkap');
|
||||||
|
}
|
||||||
|
|
||||||
|
function syncStaf() {
|
||||||
|
setFieldsEnabled($('#staf-detail-wrapper'), $('input[name="memiliki_staf"]:checked').val() === '1');
|
||||||
|
}
|
||||||
|
|
||||||
|
function syncPenambahanModal() {
|
||||||
|
setFieldsEnabled($('#penambahan-modal-wrapper'), $('input[name="pernah_penambahan_modal"]:checked').val() === '1');
|
||||||
|
}
|
||||||
|
|
||||||
|
function syncAsetLainnya() {
|
||||||
|
$('#aset-produktif-lainnya').prop('disabled', !$('input.aset-produktif-check[data-target="lainnya"]').is(':checked'));
|
||||||
|
|
||||||
|
if ($('#aset-produktif-lainnya').prop('disabled')) {
|
||||||
|
$('#aset-produktif-lainnya').val('');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function syncInfrastrukturLainnya() {
|
||||||
|
$('#infrastruktur-pascapanen-lainnya').prop('disabled', !$('input.infrastruktur-check[data-target="lainnya"]').is(':checked'));
|
||||||
|
|
||||||
|
if ($('#infrastruktur-pascapanen-lainnya').prop('disabled')) {
|
||||||
|
$('#infrastruktur-pascapanen-lainnya').val('');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$(document).on('input', '.rupiah-input', function () {
|
||||||
|
const cursorAtEnd = this.selectionStart === this.value.length;
|
||||||
|
this.value = formatRupiah(this.value);
|
||||||
|
|
||||||
|
if (cursorAtEnd) {
|
||||||
|
this.setSelectionRange(this.value.length, this.value.length);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
$('.rupiah-input').each(function () {
|
||||||
|
this.value = formatRupiah(this.value);
|
||||||
|
});
|
||||||
|
|
||||||
|
$('input[name="status_keaktifan"]').on('change', syncStatusKeaktifan);
|
||||||
|
$('input[name="unit_usaha[]"]').on('change', syncUnitUsahaLainnya);
|
||||||
|
$('input[name="status_unit_komoditas"]').on('change', syncUnitKomoditas);
|
||||||
|
$('input[name="status_ad_art"]').on('change', syncAdArt);
|
||||||
|
$('input[name="memiliki_staf"]').on('change', syncStaf);
|
||||||
|
$('input[name="pernah_penambahan_modal"]').on('change', syncPenambahanModal);
|
||||||
|
$('.aset-produktif-check').on('change', syncAsetLainnya);
|
||||||
|
$('.infrastruktur-check').on('change', syncInfrastrukturLainnya);
|
||||||
|
|
||||||
|
$('#kelembagaanAktorForm').on('submit', function () {
|
||||||
|
$(this).find('.rupiah-input').each(function () {
|
||||||
|
this.value = onlyDigits(this.value);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
syncStatusKeaktifan();
|
||||||
|
syncUnitUsahaLainnya();
|
||||||
|
syncUnitKomoditas();
|
||||||
|
syncAdArt();
|
||||||
|
syncStaf();
|
||||||
|
syncPenambahanModal();
|
||||||
|
syncAsetLainnya();
|
||||||
|
syncInfrastrukturLainnya();
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
@endpush
|
||||||
|
|||||||
@@ -164,7 +164,7 @@
|
|||||||
|
|
||||||
if (provinsiId) {
|
if (provinsiId) {
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url: '{{ route("kabupatenkota.byprovinsi", ":id") }}'.replace(':id', provinsiId),
|
url: '{{ route("kabupatenkota.byprovinsi", ":id") }}'.replace(':id', provinsiId) + '?all_wilayah=1',
|
||||||
method: 'GET',
|
method: 'GET',
|
||||||
success: function(data) {
|
success: function(data) {
|
||||||
$(`${prefix}-kabupaten`).empty().append('<option value="">Pilih Kabupaten/Kota</option>');
|
$(`${prefix}-kabupaten`).empty().append('<option value="">Pilih Kabupaten/Kota</option>');
|
||||||
@@ -184,7 +184,7 @@
|
|||||||
|
|
||||||
if (kabupatenId) {
|
if (kabupatenId) {
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url: '{{ route("kecamatan.bykabupatenkota", ":id") }}'.replace(':id', kabupatenId),
|
url: '{{ route("kecamatan.bykabupatenkota", ":id") }}'.replace(':id', kabupatenId) + '?all_wilayah=1',
|
||||||
method: 'GET',
|
method: 'GET',
|
||||||
success: function(data) {
|
success: function(data) {
|
||||||
$(`${prefix}-kecamatan`).empty().append('<option value="">Pilih Kecamatan</option>');
|
$(`${prefix}-kecamatan`).empty().append('<option value="">Pilih Kecamatan</option>');
|
||||||
@@ -203,7 +203,7 @@
|
|||||||
|
|
||||||
if (kecamatanId) {
|
if (kecamatanId) {
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url: '{{ route("desakelurahan.bykecamatan", ":id") }}'.replace(':id', kecamatanId),
|
url: '{{ route("desakelurahan.bykecamatan", ":id") }}'.replace(':id', kecamatanId) + '?all_wilayah=1',
|
||||||
method: 'GET',
|
method: 'GET',
|
||||||
success: function(data) {
|
success: function(data) {
|
||||||
$(`${prefix}-desa`).empty().append('<option value="">Pilih Desa/Kelurahan</option>');
|
$(`${prefix}-desa`).empty().append('<option value="">Pilih Desa/Kelurahan</option>');
|
||||||
|
|||||||
+3
-1
@@ -247,7 +247,9 @@ Route::middleware('auth')
|
|||||||
Route::put('/aset-keuangan', [App\Http\Controllers\Web\Produktivitas\AsetKelompokTaniController::class, 'update'])->name('aset-keuangan.update');
|
Route::put('/aset-keuangan', [App\Http\Controllers\Web\Produktivitas\AsetKelompokTaniController::class, 'update'])->name('aset-keuangan.update');
|
||||||
Route::resource('bantuan-penilaian', App\Http\Controllers\Web\Produktivitas\BantuanKelompokTaniController::class)->only(['index', 'store', 'destroy'])->parameters(['bantuan-penilaian' => 'bantuan']);
|
Route::resource('bantuan-penilaian', App\Http\Controllers\Web\Produktivitas\BantuanKelompokTaniController::class)->only(['index', 'store', 'destroy'])->parameters(['bantuan-penilaian' => 'bantuan']);
|
||||||
});
|
});
|
||||||
// BUMDES routes...
|
|
||||||
|
// BUMDES
|
||||||
|
Route::post('bumdes/{bumdes}/kelembagaan-aktor', [App\Http\Controllers\Web\Bumdes\PengurusBumdesController::class, 'storeKelembagaanAktor'])->name('bumdes.kelembagaan-aktor.store');
|
||||||
Route::get('bumdes/{bumdes}/kelembagaan-aktor', [App\Http\Controllers\Web\Bumdes\PengurusBumdesController::class, 'kelembagaanAktor'])->name('bumdes.kelembagaan-aktor.index');
|
Route::get('bumdes/{bumdes}/kelembagaan-aktor', [App\Http\Controllers\Web\Bumdes\PengurusBumdesController::class, 'kelembagaanAktor'])->name('bumdes.kelembagaan-aktor.index');
|
||||||
Route::resource('bumdes', App\Http\Controllers\Web\Bumdes\PengurusBumdesController::class);
|
Route::resource('bumdes', App\Http\Controllers\Web\Bumdes\PengurusBumdesController::class);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user