Skip to content

Commit f0995fa

Browse files
authored
Rilis v2510.0.0 (#1341)
2 parents f91d222 + df88a56 commit f0995fa

10 files changed

Lines changed: 206 additions & 89 deletions

File tree

app/Http/Controllers/Api/SuratController.php

Lines changed: 38 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737
use App\Models\DataDesa;
3838
use App\Models\Penduduk;
3939
use App\Models\Surat;
40+
use Http;
4041
use Illuminate\Http\Request;
4142
use Illuminate\Support\Arr;
4243
use Illuminate\Support\Facades\Log;
@@ -85,7 +86,9 @@ public function store(Request $request)
8586
if (! $this->settings['tte']) {
8687
return response()->json('Kecamatan belum mengaktifkan modul TTE', 400);
8788
}
88-
89+
// dd($request->all());
90+
// kirim ke log
91+
Log::debug('Request API: '.json_encode($request->all()));
8992
$validator = Validator::make($request->all(), [
9093
'desa_id' => 'required',
9194
'nik' => 'required|integer|digits:16',
@@ -105,10 +108,34 @@ public function store(Request $request)
105108
return response()->json("Kode desa {$request->desa_id} tidak terdaftar di kecamatan", 400);
106109
}
107110

108-
if (! Penduduk::where('nik', $request->nik)->exists()) {
109-
Log::debug("Penduduk dengan NIK {$request->nik} tidak terdaftar di kecamatan");
110-
111-
return response()->json("Penduduk dengan NIK {$request->nik} tidak terdaftar di kecamatan", 400);
111+
// sesuaikan jika api gabungan aktif
112+
// jika api gabungan aktif, maka pengecekan penduduk melalui api gabungan
113+
if ($this->isDatabaseGabungan()) {
114+
$url = $this->settings['api_server_database_gabungan'].'/api/v1/opendk';
115+
$response = Http::withHeaders([
116+
'Accept' => 'application/ld+json',
117+
'Content-Type' => 'application/json; charset=utf-8',
118+
'Authorization' => 'Bearer ' . ($this->settings['api_key_database_gabungan'] ?? ''),
119+
])->post("{$url}/penduduk-nik-tanggalahir", [
120+
'nik' => $request->nik,
121+
]);
122+
123+
if ($response->failed()) {
124+
Log::debug("Penduduk dengan NIK {$request->nik} tidak terdaftar di kecamatan melalui API Gabungan");
125+
126+
return response()->json("Penduduk dengan NIK {$request->nik} tidak terdaftar di kecamatan melalui API Gabungan", 400);
127+
}
128+
129+
// kirim log
130+
Log::debug('Response API: '.json_encode($response->json()));
131+
$nama_penduduk = $response->json('data.nama');
132+
} else {
133+
if (! $penduduk = Penduduk::where('nik', $request->nik)->first()) {
134+
Log::debug("Penduduk dengan NIK {$request->nik} tidak terdaftar di kecamatan");
135+
136+
return response()->json("Penduduk dengan NIK {$request->nik} tidak terdaftar di kecamatan", 400);
137+
}
138+
$nama_penduduk = $penduduk->nama;
112139
}
113140

114141
$file = $request->file('file');
@@ -125,6 +152,7 @@ public function store(Request $request)
125152
'tanggal' => $request->tanggal,
126153
'nomor' => $request->nomor,
127154
'nama' => $request->nama,
155+
'nama_penduduk' => $nama_penduduk,
128156
'file' => $file_name,
129157
'verifikasi_camat' => StatusVerifikasiSurat::MenungguVerifikasi,
130158
'verifikasi_sekretaris' => $this->settings['pemeriksaan_sekretaris'] ? StatusVerifikasiSurat::MenungguVerifikasi : StatusVerifikasiSurat::TidakAktif,
@@ -159,7 +187,12 @@ public function download(Request $request)
159187
return response()->json("Kode desa {$request->desa_id} tidak terdaftar di kecamatan", 400);
160188
}
161189

190+
Log::debug("Kode desa {$request->desa_id} dan nomor surat {$request->nomor}");
191+
192+
// Model::whereRaw("REPLACE(kolom, ' ', '') = ?", ['227/IX/2025'])->get();
193+
162194
$surat = Surat::where('desa_id', $request->desa_id)->where('nomor', $request->nomor)->firstOrFail();
195+
// $surat = Surat::where('desa_id', $request->desa_id)->whereRaw("REPLACE(nomor, ' ', '') = ?", [$request->nomor])->firstOrFail();
163196

164197
$file = public_path("storage/surat/{$surat->file}");
165198

app/Http/Controllers/Surat/PermohonanController.php

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
use App\Enums\StatusSurat;
3636
use App\Enums\StatusVerifikasiSurat;
3737
use App\Http\Controllers\Controller;
38+
use App\Models\DataDesa;
3839
use App\Models\LogTte;
3940
use App\Models\Surat;
4041
use GuzzleHttp\Exception\ClientException;
@@ -48,6 +49,7 @@ class PermohonanController extends Controller
4849
{
4950
public function index()
5051
{
52+
// dd(!$this->isDatabaseGabungan(), DataDesa::pluck('desa_id'));
5153
$page_title = 'Permohonan Surat';
5254
$page_description = 'Daftar Permohonan Surat';
5355

@@ -56,7 +58,10 @@ public function index()
5658

5759
public function getData()
5860
{
59-
return DataTables::of(Surat::permohonan())
61+
// jika bukan database gabungan maka surat akan difilter berdasarkan desa yang tersimpan di DataDesa
62+
return DataTables::of(Surat::permohonan()->when(!$this->isDatabaseGabungan(), function ($query) {
63+
$query->whereIn('desa_id', DataDesa::pluck('desa_id'));
64+
}))
6065
->addColumn('aksi', function ($row) {
6166
$user = auth()->user()->pengurus_id;
6267
$isAllow = false;
@@ -83,6 +88,12 @@ public function getData()
8388
->editColumn('nama', function ($row) {
8489
return "Surat {$row->nama}";
8590
})
91+
->editColumn('nama_penduduk', function ($row) {
92+
if (isset($row->penduduk) && !empty($row->penduduk->nama)) {
93+
return $row->penduduk->nama;
94+
}
95+
return $row->nama_penduduk;
96+
})
8697
->editColumn('log_verifikasi', function ($row) {
8798
if ($row->log_verifikasi == LogVerifikasiSurat::ProsesTTE) {
8899
return "<span class='label label-primary'>Menunggu Ditandatangani {$this->settings['sebutan_camat']}</span>";
@@ -266,7 +277,10 @@ public function ditolak()
266277

267278
public function getDataDitolak()
268279
{
269-
return DataTables::of(Surat::ditolak())
280+
// jika bukan database gabungan maka surat akan difilter berdasarkan desa yang tersimpan di DataDesa
281+
return DataTables::of(Surat::ditolak()->when(!$this->isDatabaseGabungan(), function ($query) {
282+
$query->whereIn('desa_id', DataDesa::pluck('desa_id'));
283+
}))
270284
->editColumn('nama', function ($row) {
271285
return "Surat {$row->nama}";
272286
})

app/Models/Surat.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ class Surat extends Model
4545
'desa_id',
4646
'nik',
4747
'pengurus_id',
48+
'nama_penduduk',
4849
'tanggal',
4950
'nomor',
5051
'nama',

catatan_rilis.md

Lines changed: 4 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,31 +1,13 @@
1-
Di rilis versi v2509.0.0 di versi ini terdapat modul komentar pada artikel dan perbaikan lain yang diminta Komunitas.
2-
3-
Terima kasih pada @Madeersani telah ikut berkontribusi
1+
Di rilis versi v2510.0.0 di versi ini terdapat modul komentar pada artikel dan perbaikan lain yang diminta Komunitas.
42

53
#### FITUR
64

7-
1. [#1285](https://github.com/OpenSID/OpenDK/issues/1285) Penambahan fungsi expor pada halaman data desa.
8-
2. [#1305](https://github.com/OpenSID/OpenDK/issues/1305) Penambahan pengaturan untuk penyebutan desa/kelurahan atau yang lainnya.
9-
3. [#1286](https://github.com/OpenSID/OpenDK/issues/1286) Penambahan fungsi expor pada halaman data suplemen.
10-
4. [#1287](https://github.com/OpenSID/OpenDK/issues/1287) Penambahan fungsi expor pada halaman laporan penduduk.
11-
5. [#1288](https://github.com/OpenSID/OpenDK/issues/1288) Penambahan fungsi expor pada halaman AKI & AKB.
12-
6. [#1289](https://github.com/OpenSID/OpenDK/issues/1289) Penambahan fungsi expor pada halaman Imunisasi.
13-
7. [#1290](https://github.com/OpenSID/OpenDK/issues/1290) Penambahan fungsi expor pada halaman toilet & sanitasi.
14-
8. [#1291](https://github.com/OpenSID/OpenDK/issues/1291) Penambahan fungsi expor pada halaman epidemi penyakit.
15-
9. [#1292](https://github.com/OpenSID/OpenDK/issues/1292) Penambahan fungsi expor pada halaman tingkat pendidikan.
16-
10. [#1293](https://github.com/OpenSID/OpenDK/issues/1293) Penambahan fungsi expor pada halaman daftar siswa putus sekolah.
17-
11. [#1297](https://github.com/OpenSID/OpenDK/issues/1297) Penambahan fungsi expor excel pada halaman anggaran & realisasi.
18-
12. [#1284](https://github.com/OpenSID/OpenDK/issues/1284) Penambahan fungsi expor excel pada halaman keluarga.
19-
13. [#1295](https://github.com/OpenSID/OpenDK/issues/1295) Penambahan fungsi expor excel pada halaman program bantuan.
20-
14. [#1300](https://github.com/OpenSID/OpenDK/issues/1300) Penambahan fungsi expor excel pada halaman data pembangunan.
21-
15. [#1299](https://github.com/OpenSID/OpenDK/issues/1299) Penambahan export di halaman laporan APBDes.
22-
16. [#1298](https://github.com/OpenSID/OpenDK/issues/1298) Penambahan fungsi expor excel pada halaman APBDes
235

246
#### BUG
257

26-
8+
1. [#1301](https://github.com/OpenSID/OpenDK/issues/1301) Penyesuaian permohonan surat dengan api satudata.
9+
2. [#1337](https://github.com/OpenSID/OpenDK/issues/1337) Ubah link panduan ke panduan.opendesa.id.
2710

2811
#### TEKNIS
2912

30-
1. [#1304](https://github.com/OpenSID/OpenDK/issues/1304) Penambahan test e2e testing.
31-
2. [#1323](https://github.com/OpenSID/OpenDK/issues/1323) Perbaikan Konsistensi bahasa baku silahkan menjadi silakan.
13+
1. [#1329](https://github.com/OpenSID/OpenDK/issues/1329) PhpSpreadsheet vulnerable to SSRF when reading and displaying a processed HTML document in the browser.

0 commit comments

Comments
 (0)