From 99247b7a4461ac66cc251f70d98f74586f22c507 Mon Sep 17 00:00:00 2001 From: amaliadwiy Date: Wed, 19 Nov 2025 16:58:19 +0800 Subject: [PATCH] upd: dashboard admin Deskripsi: - update sk penghasilan - update sk kelakuan baik - update sk kelahiran NO Issues --- src/components/ModalSurat.tsx | 22 ++++- src/components/surat/SKKelahiran.tsx | 113 +++++++++++++++++++++++ src/components/surat/SKKelakuanBaik.tsx | 114 ++++++++++++++++++++++++ src/components/surat/SKPenghasilan.tsx | 112 +++++++++++++++++++++++ src/lib/categoryPelayananSurat.ts | 6 +- 5 files changed, 361 insertions(+), 6 deletions(-) create mode 100644 src/components/surat/SKKelahiran.tsx create mode 100644 src/components/surat/SKKelakuanBaik.tsx create mode 100644 src/components/surat/SKPenghasilan.tsx diff --git a/src/components/ModalSurat.tsx b/src/components/ModalSurat.tsx index 20cc099..33fb181 100644 --- a/src/components/ModalSurat.tsx +++ b/src/components/ModalSurat.tsx @@ -6,9 +6,12 @@ import html2canvas from "html2canvas"; import jsPDF from "jspdf"; import { useRef } from "react"; import useSWR from "swr"; +import SKKelahiran from "./surat/SKKelahiran"; +import SKKelakuanBaik from "./surat/SKKelakuanBaik"; +import SKPenghasilan from "./surat/SKPenghasilan"; +import SKTidakMampu from "./surat/SKTidakMampu"; import SKUsaha from "./surat/SKUsaha"; import SKYatim from "./surat/SKYatimPiatu"; -import SKTidakMampu from "./surat/SKTidakMampu"; export default function ModalSurat({ open, onClose, surat }: { open: boolean, onClose: () => void, surat: string }) { const A4Style = { @@ -99,8 +102,21 @@ export default function ModalSurat({ open, onClose, surat }: { open: boolean, on >
{ - data && data.data && data.data.surat.idCategory == "skusaha" - ? + data && data.data + ? data.data.surat.idCategory == "skusaha" + ? + : data.data.surat.idCategory == "skkelahiran" + ? + : data.data.surat.idCategory == "skkelakuanbaik" + ? + : data.data.surat.idCategory == "skpenghasilan" + ? + : data.data.surat.idCategory == "sktidakmampu" + ? + : data.data.surat.idCategory == "skyatimpiatu" + ? + : <> + : <> }
diff --git a/src/components/surat/SKKelahiran.tsx b/src/components/surat/SKKelahiran.tsx new file mode 100644 index 0000000..08b58d3 --- /dev/null +++ b/src/components/surat/SKKelahiran.tsx @@ -0,0 +1,113 @@ +import _ from "lodash"; + +export default function SKKelahiran({ data }: { data: any }) { + const getValue = (jenis: string) => + _.upperFirst( + data.surat.dataText.find((item: any) => item.jenis === jenis)?.value || "" + ); + + return ( +
+ + {/* HEADER */} +
+ PEMERINTAH KABUPATEN/KOTA {_.upperCase(data.setting.desaKabupaten)}
+ KECAMATAN {_.upperCase(data.setting.desaKecamatan)}
+ DESA / KELURAHAN {_.upperCase(data.setting.desaNama)}
+ Alamat: {data.setting.desaAlamat} +
+ + {/* JUDUL */} +
+ SURAT KETERANGAN KELAHIRAN
+ Nomor : {data.surat.noSurat} +
+ + {/* PEMBUKA */} +
+ Yang bertanda tangan di bawah ini, {data.setting.perbekelJabatan} + {` ${data.setting.desaNama}, Kecamatan ${data.setting.desaKecamatan}, Kabupaten/Kota ${data.setting.desaKabupaten}`} + , dengan ini menerangkan bahwa: +
+ + {/* DATA KELAHIRAN ANAK */} +
+ Telah lahir seorang anak pada: + + + + + + + + + +
Tanggal Lahir:{getValue("tanggal lahir anak")}
Pukul:{getValue("pukul lahir anak")}
Tempat Kelahiran:{getValue("tempat lahir anak")}
Jenis Kelamin:{getValue("jenis kelamin anak")}
Anak ke:{getValue("anak ke")}
Nama Anak:{getValue("nama anak")}
+
+ + {/* DATA IBU */} +
+ Dari seorang ibu bernama: + + + + + + + + +
Nama Lengkap Ibu:{getValue("nama ibu")}
NIK:{getValue("nik ibu")}
Tempat & Tanggal Lahir:{getValue("tempat tanggal lahir ibu")}
Pekerjaan:{getValue("pekerjaan ibu")}
Alamat:{getValue("alamat ibu")}
+
+ + {/* DATA AYAH */} +
+ Dan seorang ayah bernama: + + + + + + + + +
Nama Lengkap Ayah:{getValue("nama ayah")}
NIK:{getValue("nik ayah")}
Tempat & Tanggal Lahir:{getValue("tempat tanggal lahir ayah")}
Pekerjaan:{getValue("pekerjaan ayah")}
Alamat:{getValue("alamat ayah")}
+
+ + {/* DATA PELAPOR */} +
+ Berdasarkan laporan dari: + + + + + + +
Nama Pelapor:{getValue("nama pelapor")}
Hubungan dengan Anak:{getValue("hubungan pelapor")}
Alamat:{getValue("alamat pelapor")}
+
+ + {/* PENUTUP */} +
+ Demikian Surat Keterangan Kelahiran ini dibuat dengan sebenarnya agar dapat digunakan sebagaimana mestinya. +
+ + {/* TEMPAT TANGGAL */} + + + + + +
Dikeluarkan di:{data.setting.desaNama}
Pada tanggal:{data.surat.createdAt}
+ + {/* TANDA TANGAN */} +
+
+ Kepala Desa / Lurah {data.setting.desaNama} +



+ {data.setting.perbekelNama}
+ NIP. {data.setting.perbekelNIP} +
+
+ +
+ ); +} diff --git a/src/components/surat/SKKelakuanBaik.tsx b/src/components/surat/SKKelakuanBaik.tsx new file mode 100644 index 0000000..876e55c --- /dev/null +++ b/src/components/surat/SKKelakuanBaik.tsx @@ -0,0 +1,114 @@ +import _ from "lodash"; + +export default function SKKelakuanBaik({ data }: { data: any }) { + const getValue = (jenis: string) => + _.upperFirst( + data.surat.dataText.find((item: any) => item.jenis === jenis)?.value || "" + ); + + return ( +
+ + {/* HEADER */} +
+ SURAT KETERANGAN KELAKUAN BAIK
+ (PENGANTAR SKCK)
+ Nomor: {data.surat.noSurat} +
+ + {/* PEMBUKA */} +
+ Yang bertanda tangan di bawah ini menerangkan dengan sebenarnya bahwa: +
+ + {/* IDENTITAS PENDUDUK */} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Nama lengkap:{getValue("nama")}
NIK:{getValue("nik")}
Tempat/Tgl Lahir:{getValue("tempat tanggal lahir")}
Jenis Kelamin:{getValue("jenis kelamin")}
Agama:{getValue("agama")}
Pekerjaan:{getValue("pekerjaan")}
Alamat:{getValue("alamat")}
+ + {/* ISI */} +
+ Adalah benar penduduk yang berdomisili di wilayah kami dan selama tinggal di lingkungan + Desa {data.setting.desaNama}, berkelakuan baik, tidak pernah terlibat perbuatan melanggar hukum, + serta dikenal sopan dan aktif dalam kegiatan kemasyarakatan. +
+ +
+ Surat keterangan ini diberikan sebagai pengantar permohonan penerbitan Surat Keterangan + Catatan Kepolisian (SKCK) ke Polsek/Polres {getValue("polsek")}. +
+ +
+ Surat ini berlaku selama 6 (enam) bulan sejak tanggal diterbitkan, kecuali terdapat perubahan + data yang mendasar. +
+ +
+ Demikian surat keterangan ini dibuat dengan sebenarnya untuk dipergunakan sebagaimana mestinya. +
+ + {/* TANGGAL */} + + + + + + + + + + + + + +
Dikeluarkan di:{data.setting.desaNama}
Pada tanggal:{data.surat.createdAt}
+ + {/* TANDA TANGAN */} +
+
+ Kepala Desa {data.setting.desaNama} +



+ {data.setting.perbekelNama}
+ NIP. {data.setting.perbekelNIP} +
+
+ +
+ ); +} diff --git a/src/components/surat/SKPenghasilan.tsx b/src/components/surat/SKPenghasilan.tsx new file mode 100644 index 0000000..d42eb6c --- /dev/null +++ b/src/components/surat/SKPenghasilan.tsx @@ -0,0 +1,112 @@ +import _ from "lodash"; + +export default function SKPenghasilan({ data }: { data: any }) { + const getValue = (jenis: string) => + _.upperFirst( + data.surat.dataText.find((item: any) => item.jenis === jenis)?.value || "" + ); + + return ( +
+ {/* HEADER */} +
+ PEMERINTAH KABUPATEN {_.upperCase(data.setting.desaKabupaten)}
+ KECAMATAN {_.upperCase(data.setting.desaKecamatan)}
+ DESA / KELURAHAN {_.upperCase(data.setting.desaNama)}
+ Alamat: {data.setting.desaAlamat}
+ Kode Pos: {data.setting.desaPos} +
+ + {/* JUDUL */} +
+ SURAT KETERANGAN PENGHASILAN
+ Nomor: {data.surat.noSurat} +
+ + {/* YANG BERTANDA TANGAN */} +
+ Yang bertanda tangan di bawah ini: + + + + + + + + + + + + + + + + + + + + + + + +
Nama:{data.setting.perbekelNama}
Jabatan:{data.setting.perbekelJabatan}
Kecamatan:{data.setting.desaKecamatan}
Kabupaten:{data.setting.desaKabupaten}
+
+ + {/* IDENTITAS */} +
+ Dengan ini menerangkan bahwa: + + + + + + + + +
Nama:{getValue("nama")}
Jenis Kelamin:{getValue("jenis kelamin")}
Tempat / Tanggal Lahir:{getValue("tempat tanggal lahir")}
Pekerjaan:{getValue("pekerjaan")}
Alamat:{getValue("alamat")}
+
+ + {/* PENGHASILAN */} +
+ Berdasarkan keterangan yang bersangkutan, orang tersebut memiliki penghasilan rata-rata: + + + + + + + + +
Penghasilan: + Rp {getValue("penghasilan")} + {" "} + ({getValue("penghasilan terbilang")}) per bulan +
+
+ + {/* KEPERLUAN */} +
+ Surat keterangan ini dibuat untuk keperluan: {getValue("alasan permohonan")}. +
+ +
+ Demikian surat keterangan ini dibuat dengan sebenarnya untuk dapat dipergunakan sebagaimana mestinya. +
+ + {/* TANGGAL & TANDA TANGAN */} +
+ Dikeluarkan di {data.setting.desaNama}
+ Pada tanggal {data.surat.createdAt} +
+ +
+
+ Kepala Desa / Lurah {data.setting.desaNama} +



+ {data.setting.perbekelNama}
+ NIP. {data.setting.perbekelNIP} +
+
+
+ ); +} diff --git a/src/lib/categoryPelayananSurat.ts b/src/lib/categoryPelayananSurat.ts index e4a27e3..0db02cb 100644 --- a/src/lib/categoryPelayananSurat.ts +++ b/src/lib/categoryPelayananSurat.ts @@ -36,7 +36,7 @@ export const categoryPelayananSurat = [ { name: "pengantar kelian", desc: "Surat Pengantar Kelian Banjar Dinas" }, { name: "surat lahir", desc: "Fotokopi Surat Keterangan Lahir dari Bidan/Dokter (jika ada)" } ], - dataText: ["nama ayah", "nama ibu", "nama anak", "tanggal lahir", "tempat lahir", "jenis kelamin", "nama pelapor"] + dataText: ["nama ayah", "nama ibu", "nama anak", "tanggal lahir anak", "pukul lahir anak", "tempat lahir anak", "jenis kelamin anak", "anak ke", "nik ibu", "tempat tanggal lahir ibu", "pekerjaan ibu", "alamat ibu", "nik ayah", "tempat tanggal lahir ayah", "pekerjaan ayah", "alamat ayah", "nama pelapor", "hubungan pelapor", "alamat pelapor"] }, { id: "skkelakuanbaik", @@ -45,7 +45,7 @@ export const categoryPelayananSurat = [ { name: "pengantar kelian", desc: "Surat Pengantar Kelian Banjar Dinas" }, { name: "ktp/kk", desc: "Fotokopi KTP atau Kartu Keluarga" } ], - dataText: ["nik", "nama", "tempat tanggal lahir", "jenis kelamin", "alamat", "keperluan"] + dataText: ["nik", "nama", "tempat tanggal lahir", "jenis kelamin", "alamat", "polsek"] }, { id: "skkematian", @@ -65,7 +65,7 @@ export const categoryPelayananSurat = [ { name: "ktp ortu/kk", desc: "Fotokopi KTP orang tua atau Kartu Keluarga" }, { name: "surat pernyataan", desc: "Surat Pernyataan Penghasilan bermaterai" } ], - dataText: ["nama", "nik", "alamat", "pekerjaan", "jenis usaha", "penghasilan"] + dataText: ["nama", "nik", "alamat", "pekerjaan", "jenis usaha", "penghasilan", "alasan permohonan"] }, { id: "sktempatusaha",