diff --git a/app/[locale]/(protected)/contributor/agenda-setting/event-modal.tsx b/app/[locale]/(protected)/contributor/agenda-setting/event-modal.tsx index 9840e9b4..57445c81 100644 --- a/app/[locale]/(protected)/contributor/agenda-setting/event-modal.tsx +++ b/app/[locale]/(protected)/contributor/agenda-setting/event-modal.tsx @@ -108,8 +108,8 @@ const EventModal = ({ const router = useRouter(); const pathname = usePathname(); const [isLoading, setIsLoading] = useState(false); - const [checkedLevels, setCheckedLevels] = useState(new Set()); - const [expandedPolda, setExpandedPolda] = useState([{}]); + const [checkedLevels, setCheckedLevels] = useState>(new Set()); + const [expandedPolda, setExpandedPolda] = useState>({}); const [audioFile, setAudioFile] = useState(null); const [isRecording, setIsRecording] = useState(false); const [timer, setTimer] = useState(120); @@ -151,7 +151,13 @@ const EventModal = ({ satker: false, international: false, }); - const levelNumber = getCookiesDecrypt("ulne"); + + // State untuk melacak apakah perubahan berasal dari checkbox Jenis Agenda + const [isUpdatingFromJenisAgenda, setIsUpdatingFromJenisAgenda] = useState(false); + // State untuk melacak jenis perubahan spesifik + const [jenisAgendaChangeType, setJenisAgendaChangeType] = useState(""); + + const levelNumber = Number(getCookiesDecrypt("ulne")) || 0; const userLevelId = getCookiesDecrypt("ulie"); const poldaState = Cookies.get("state"); const [agendaType, setAgendaType] = React.useState(""); @@ -253,15 +259,242 @@ const EventModal = ({ fetchDetailData(); }, [event, setValue]); + // useEffect untuk sinkronisasi checkbox modal dengan Jenis Agenda + useEffect(() => { + if (listDest.length > 0 && isUpdatingFromJenisAgenda && jenisAgendaChangeType) { + syncModalWithJenisAgenda(); + } + }, [isUpdatingFromJenisAgenda, jenisAgendaChangeType]); + + // useEffect untuk update wilayahPublish ketika pilihan modal berubah + useEffect(() => { + if (!isUpdatingFromJenisAgenda && listDest.length > 0) { + updateWilayahPublishFromModal(); + } + }, [checkedLevels, isUpdatingFromJenisAgenda]); + + // Fungsi untuk update wilayahPublish berdasarkan checkbox modal + const updateWilayahPublishFromModal = () => { + // Hanya update jika tidak sedang dalam proses update dari Jenis Agenda + if (!isUpdatingFromJenisAgenda && listDest.length > 0) { + // Hitung item yang dipilih berdasarkan checkedLevels + const checkedPoldaCount = listDest.filter((item: any) => + item.levelNumber === 2 && + item.name !== "SATKER POLRI" && + checkedLevels.has(Number(item.id)) + ).length; + + const checkedPolresCount = listDest.reduce((total: number, item: any) => { + if (item.subDestination) { + return total + item.subDestination.filter((sub: any) => checkedLevels.has(Number(sub.id))).length; + } + return total; + }, 0); + + const satkerItem: any = listDest.find((item: any) => item.name === "SATKER POLRI"); + const checkedSatkerCount = satkerItem ? ( + (checkedLevels.has(Number(satkerItem.id)) ? 1 : 0) + + (satkerItem.subDestination?.filter((sub: any) => checkedLevels.has(Number(sub.id))).length || 0) + ) : 0; + + // Checkbox aktif jika ADA item yang dipilih dalam kategori tersebut + const hasSelectedPolda = checkedPoldaCount > 0; + const hasSelectedPolres = checkedPolresCount > 0; + const hasSelectedSatker = checkedSatkerCount > 0; + + // Update arrays untuk backend + const newSelectedPolda = listDest + .filter((item: any) => + item.levelNumber === 2 && + item.name !== "SATKER POLRI" && + checkedLevels.has(Number(item.id)) + ) + .map((item: any) => String(item.id)); + + const newSelectedPolres: string[] = []; + listDest.forEach((item: any) => { + if (item.subDestination) { + item.subDestination.forEach((sub: any) => { + if (checkedLevels.has(Number(sub.id))) { + newSelectedPolres.push(String(sub.id)); + } + }); + } + }); + + const newSelectedSatker: string[] = []; + if (satkerItem) { + if (checkedLevels.has(Number(satkerItem.id))) { + newSelectedSatker.push(String(satkerItem.id)); + } + if (satkerItem.subDestination) { + satkerItem.subDestination.forEach((sub: any) => { + if (checkedLevels.has(Number(sub.id))) { + newSelectedSatker.push(String(sub.id)); + } + }); + } + } + + // Update state arrays + setSelectedPolda(newSelectedPolda); + setSelectedPolres(newSelectedPolres); + setSelectedSatker(newSelectedSatker); + + // Update wilayahPublish berdasarkan yang dipilih di modal + setWilayahPublish(prev => { + const newState = { ...prev }; + + // Update individual checkboxes + newState.polda = hasSelectedPolda; + newState.polres = hasSelectedPolres; + newState.satker = hasSelectedSatker; + + // Update checkbox "semua" berdasarkan level user + if (levelNumber === 1) { + // Level 1: semua checkbox harus aktif (nasional, polda, polres, satker, international) + newState.semua = newState.nasional && hasSelectedPolda && hasSelectedPolres && hasSelectedSatker && newState.international; + } else if (levelNumber === 2) { + // Level 2: hanya polres yang perlu aktif + newState.semua = hasSelectedPolres; + } else { + newState.semua = false; + } + + return newState; + }); + + // Update agendaType berdasarkan checkbox yang aktif + const selectedKeys = []; + if (hasSelectedPolda) selectedKeys.push(wilayahValueMap.polda); + if (hasSelectedPolres) selectedKeys.push(wilayahValueMap.polres); + if (hasSelectedSatker) selectedKeys.push(wilayahValueMap.satker); + + setAgendaType(selectedKeys.join(",")); + } + }; + + // Fungsi untuk sinkronisasi checkbox modal dengan Jenis Agenda + const syncModalWithJenisAgenda = () => { + // Hanya jalankan sinkronisasi jika perubahan berasal dari checkbox Jenis Agenda + if (isUpdatingFromJenisAgenda) { + const newCheckedLevels = new Set(checkedLevels); + + // Handle checklist actions - menambahkan semua item ke modal + if (jenisAgendaChangeType === "polda_checked") { + // Checklist semua polda + listDest.forEach((item: any) => { + if (item.levelNumber === 2 && item.name !== "SATKER POLRI") { + newCheckedLevels.add(Number(item.id)); + } + }); + } else if (jenisAgendaChangeType === "polres_checked") { + // Checklist semua polres, tapi hanya yang poldanya sudah di-checklist + listDest.forEach((item: any) => { + if (item.levelNumber === 2 && item.name !== "SATKER POLRI" && newCheckedLevels.has(Number(item.id))) { + if (item.subDestination) { + item.subDestination.forEach((polres: any) => { + newCheckedLevels.add(Number(polres.id)); + }); + } + } + }); + } else if (jenisAgendaChangeType === "satker_checked") { + // Checklist satker + const satkerItem: any = listDest.find((item: any) => item.name === "SATKER POLRI"); + if (satkerItem) { + newCheckedLevels.add(Number(satkerItem.id)); + if (satkerItem.subDestination) { + satkerItem.subDestination.forEach((sub: any) => { + newCheckedLevels.add(Number(sub.id)); + }); + } + } + } + // Handle unchecklist actions - menghapus item dari modal + else if (jenisAgendaChangeType === "polres_unchecked") { + // Clear polres dari checkedLevels + listDest.forEach((item: any) => { + if (item.subDestination) { + item.subDestination.forEach((polres: any) => { + newCheckedLevels.delete(Number(polres.id)); + }); + } + }); + } else if (jenisAgendaChangeType === "polda_unchecked") { + // Clear polda dan polres dari checkedLevels + listDest.forEach((item: any) => { + if (item.levelNumber === 2 && item.name !== "SATKER POLRI") { + newCheckedLevels.delete(Number(item.id)); + // Juga clear polres dari polda ini + if (item.subDestination) { + item.subDestination.forEach((polres: any) => { + newCheckedLevels.delete(Number(polres.id)); + }); + } + } + }); + setWilayahPublish(prev => ({ ...prev, polres: false })); + } else if (jenisAgendaChangeType === "satker_unchecked") { + // Clear satker dari checkedLevels + const satkerItem: any = listDest.find((item: any) => item.name === "SATKER POLRI"); + if (satkerItem) { + newCheckedLevels.delete(Number(satkerItem.id)); + if (satkerItem.subDestination) { + satkerItem.subDestination.forEach((sub: any) => { + newCheckedLevels.delete(Number(sub.id)); + }); + } + } + } + + setCheckedLevels(newCheckedLevels); + + // Reset flag setelah sinkronisasi selesai + setIsUpdatingFromJenisAgenda(false); + setJenisAgendaChangeType(""); + } + }; + useEffect(() => { setIsDatePickerOpen(false); }, [onClose]); + useEffect(() => { + async function fetchPoldaPolres() { + try { + const response = await getUserLevelForAssignments(); + setListDest(response?.data?.data.list); + const initialExpandedState = response?.data?.data.list.reduce( + (acc: any, polda: any) => { + acc[polda.id] = false; + return acc; + }, + {} + ); + setExpandedPolda(initialExpandedState); + } catch (error) { + console.error("Error fetching Polda/Polres data:", error); + } + } + fetchPoldaPolres(); + }, []); + const handleCheckboxChange = (levelId: number) => { setCheckedLevels((prev) => { const updatedLevels = new Set(prev); - if (updatedLevels.has(levelId)) { + const isCurrentlyChecked = updatedLevels.has(levelId); + + if (isCurrentlyChecked) { updatedLevels.delete(levelId); + + // Jika ini adalah POLDA yang di-unchecklist, unchecklist juga semua polres di bawahnya + const poldaItem = listDest.find((item: any) => Number(item.id) === levelId) as any; + if (poldaItem && poldaItem.subDestination) { + poldaItem.subDestination.forEach((polres: any) => { + updatedLevels.delete(Number(polres.id)); + }); + } } else { updatedLevels.add(levelId); } @@ -279,6 +512,10 @@ const EventModal = ({ }; const toggleWilayah = (key: string) => { + // Set flag bahwa perubahan berasal dari checkbox Jenis Agenda + setIsUpdatingFromJenisAgenda(true); + setJenisAgendaChangeType(key + (wilayahPublish[key as keyof typeof wilayahPublish] ? "_unchecked" : "_checked")); + setWilayahPublish((prev: any) => { let newState = { ...prev }; if (key === "semua") { @@ -294,15 +531,96 @@ const EventModal = ({ if (newChecked) { setAgendaType("0,1,2,3,4,5"); + // Checklist semua item di modal ketika "semua" di-checklist + const allCheckedLevels = new Set(); + listDest.forEach((item: any) => { + allCheckedLevels.add(Number(item.id)); + if (item.subDestination) { + item.subDestination.forEach((sub: any) => { + allCheckedLevels.add(Number(sub.id)); + }); + } + }); + setCheckedLevels(allCheckedLevels); } else { setAgendaType(""); + // Clear semua pilihan modal ketika "semua" di-unchecklist + setCheckedLevels(new Set()); } return newState; } + // Validasi khusus untuk POLRES + if (key === "polres" && !prev[key]) { + // Cek apakah ada POLDA yang sudah dipilih di modal + const hasSelectedPolda = listDest.some((item: any) => + item.levelNumber === 2 && + item.name !== "SATKER POLRI" && + checkedLevels.has(Number(item.id)) + ); + + if (!hasSelectedPolda) { + // Jika tidak ada POLDA yang dipilih, tampilkan peringatan dan batalkan + alert("Harap pilih POLDA di Modal terlebih dahulu sebelum mengaktifkan checkbox POLRES."); + // Reset flag karena perubahan dibatalkan + setIsUpdatingFromJenisAgenda(false); + setJenisAgendaChangeType(""); + return prev; // Batalkan perubahan + } + } + newState[key] = !prev[key]; - newState.semua = false; + + // Jika checkbox di-unchecklist, clear pilihan modal yang sesuai + if (prev[key]) { + const newCheckedLevels = new Set(checkedLevels); + if (key === "polda") { + // Clear polda dan polres + listDest.forEach((item: any) => { + if (item.levelNumber === 2 && item.name !== "SATKER POLRI") { + newCheckedLevels.delete(Number(item.id)); + if (item.subDestination) { + item.subDestination.forEach((polres: any) => { + newCheckedLevels.delete(Number(polres.id)); + }); + } + } + }); + } else if (key === "polres") { + // Clear polres + listDest.forEach((item: any) => { + if (item.subDestination) { + item.subDestination.forEach((polres: any) => { + newCheckedLevels.delete(Number(polres.id)); + }); + } + }); + } else if (key === "satker") { + // Clear satker + const satkerItem: any = listDest.find((item: any) => item.name === "SATKER POLRI"); + if (satkerItem) { + newCheckedLevels.delete(Number(satkerItem.id)); + if (satkerItem.subDestination) { + satkerItem.subDestination.forEach((sub: any) => { + newCheckedLevels.delete(Number(sub.id)); + }); + } + } + } + setCheckedLevels(newCheckedLevels); + } + + // Update checkbox "semua" berdasarkan status semua checkbox lainnya + // Untuk level 1: semua, nasional, polda, polres, satker, international harus aktif + // Untuk level 2: semua, polres harus aktif + if (levelNumber === 1) { + newState.semua = newState.nasional && newState.polda && newState.polres && newState.satker && newState.international; + } else if (levelNumber === 2) { + newState.semua = newState.polres; + } else { + newState.semua = false; + } const selectedKeys = Object.entries(newState) .filter(([k, v]) => v && k !== "semua") @@ -452,7 +770,7 @@ const EventModal = ({ const onDeleteEventAction = async () => { try { - } catch (error) {} + } catch (error) { } }; const handleOpenDeleteModal = (eventId: string) => { @@ -632,7 +950,7 @@ const EventModal = ({ ); }; - const handleRemoveFile = (id: number) => {}; + const handleRemoveFile = (id: number) => { }; async function doDelete(id: any) { loading(); @@ -800,7 +1118,8 @@ const EventModal = ({ - {roleId === 1 && ( + {levelNumber === 1 && ( + <>
- )} -
Polda - {wilayahPublish.polda && ( - - setSelectedPolda(data) - } - /> - )}
- {(roleId === 1 || roleId === 4 || roleId === 3) && ( + + )} + + {(levelNumber === 1 || levelNumber === 2) && (
Polres - {wilayahPublish.polres && ( - - setSelectedPolres(data) - } - /> - )}
)} - {(roleId === 1 || roleId === 2) && ( + + {levelNumber === 1 && ( + <>
Satker - {wilayahPublish.satker && ( - - setSelectedSatker(data) - } - /> - )}
- )} - {roleId === 1 && (
+ )} + +
+ + + + + + + + Daftar Wilayah Polda dan Polres + + +
+ {listDest?.map((polda: any) => ( +
+ + {expandedPolda[polda.id] && ( +
+ + {polda?.subDestination?.map((polres: any) => ( + + ))} +
+ )} +
+ ))} +
+
+
+
@@ -1102,8 +1482,7 @@ const EventModal = ({ type="button" onClick={onPlayPause} disabled={isPlaying} - className={`flex items-center gap-2 ${ - isPlaying + className={`flex items-center gap-2 ${isPlaying ? "bg-gray-300 cursor-not-allowed" : "bg-primary text-white" } p-2 rounded`} diff --git a/app/[locale]/(protected)/contributor/schedule/calendar-polri/component/columns.tsx b/app/[locale]/(protected)/contributor/schedule/calendar-polri/component/columns.tsx index 255f01cc..c0672f25 100644 --- a/app/[locale]/(protected)/contributor/schedule/calendar-polri/component/columns.tsx +++ b/app/[locale]/(protected)/contributor/schedule/calendar-polri/component/columns.tsx @@ -214,7 +214,7 @@ const useTableColumns = () => { ); }, }, - + // { // id: "actions", // accessorKey: "action", diff --git a/components/form/contest/contest-detail-form.tsx b/components/form/contest/contest-detail-form.tsx index 7db533cb..984c3d3e 100644 --- a/components/form/contest/contest-detail-form.tsx +++ b/components/form/contest/contest-detail-form.tsx @@ -118,9 +118,9 @@ export default function FormContestDetail() { const [detail, setDetail] = useState(); const [refresh] = useState(false); const [date, setDate] = useState(); - const [listDest, setListDest] = useState([]); - const [checkedLevels, setCheckedLevels] = useState(new Set()); - const [expandedPolda, setExpandedPolda] = useState([{}]); + const [listDest, setListDest] = useState([]); + const [checkedLevels, setCheckedLevels] = useState>(new Set()); + const [expandedPolda, setExpandedPolda] = useState>({}); const [isLoading, setIsLoading] = useState(false); const [audioFile, setAudioFile] = useState(null); const [imageFiles, setImageFiles] = useState([]); @@ -153,6 +153,11 @@ export default function FormContestDetail() { satker: false, }); + // State untuk melacak apakah perubahan berasal dari checkbox Pelaksana Tugas + const [isUpdatingFromPelaksana, setIsUpdatingFromPelaksana] = useState(false); + // State untuk melacak jenis perubahan spesifik + const [pelaksanaChangeType, setPelaksanaChangeType] = useState(""); + const { control, handleSubmit, @@ -192,6 +197,16 @@ export default function FormContestDetail() { fetchPoldaPolres(); }, []); + // useEffect untuk sinkronisasi checkbox modal dengan Pelaksana Tugas + // Ketika unitSelection berubah dari checkbox Pelaksana Tugas: + // - Jika di-checklist: checklist semua item sesuai kategori di modal + // - Jika di-unchecklist: unchecklist semua item di modal + useEffect(() => { + if (listDest.length > 0) { + syncModalWithUnitSelection(); + } + }, [unitSelection, listDest]); + useEffect(() => { async function initState() { if (id) { @@ -237,16 +252,160 @@ export default function FormContestDetail() { } }, [detail?.targetOutput]); + // Fungsi untuk update unitSelection berdasarkan checkbox modal + // Checkbox di Pelaksana Tugas hanya akan aktif jika SEMUA item dalam kategori tersebut dichecklist + const updateUnitSelectionFromModal = (levelId: number) => { + setTimeout(() => { + // Hitung total item yang tersedia untuk setiap kategori + const totalPolda = listDest.filter((item: any) => + item.levelNumber === 2 && item.name !== "SATKER POLRI" + ).length; + + const totalPolres = listDest.reduce((total: number, item: any) => { + if (item.subDestination) { + return total + item.subDestination.length; + } + return total; + }, 0); + + const satkerItem = listDest.find((item: any) => item.name === "SATKER POLRI"); + const totalSatker = satkerItem ? (1 + (satkerItem.subDestination?.length || 0)) : 0; + + // Hitung item yang dichecklist untuk setiap kategori + const checkedPoldaCount = listDest.filter((item: any) => + item.levelNumber === 2 && + item.name !== "SATKER POLRI" && + checkedLevels.has(item.id) + ).length; + + const checkedPolresCount = listDest.reduce((total: number, item: any) => { + if (item.subDestination) { + return total + item.subDestination.filter((sub: any) => checkedLevels.has(sub.id)).length; + } + return total; + }, 0); + + const checkedSatkerCount = satkerItem ? ( + (checkedLevels.has(satkerItem.id) ? 1 : 0) + + (satkerItem.subDestination?.filter((sub: any) => checkedLevels.has(sub.id)).length || 0) + ) : 0; + + // Checkbox hanya aktif jika SEMUA item dalam kategori tersebut dichecklist + const hasCheckedPolda = totalPolda > 0 && checkedPoldaCount === totalPolda; + const hasCheckedPolres = totalPolres > 0 && checkedPolresCount === totalPolres; + const hasCheckedSatker = totalSatker > 0 && checkedSatkerCount === totalSatker; + + // Update unitSelection berdasarkan checkbox yang aktif di modal + setUnitSelection(prev => ({ + ...prev, + polda: hasCheckedPolda, + polres: hasCheckedPolres, + satker: hasCheckedSatker, + // allUnit hanya true jika semua kategori terpenuhi + allUnit: hasCheckedPolda && hasCheckedPolres && hasCheckedSatker + })); + }, 0); + }; + const handleCheckboxChange = (levelId: number) => { setCheckedLevels((prev) => { const updatedLevels = new Set(prev); - if (updatedLevels.has(levelId)) { + const isCurrentlyChecked = updatedLevels.has(levelId); + + if (isCurrentlyChecked) { updatedLevels.delete(levelId); + + // Jika ini adalah POLDA yang di-unchecklist, unchecklist juga semua polres di bawahnya + const poldaItem = listDest.find((item: any) => item.id === levelId); + if (poldaItem && poldaItem.subDestination) { + poldaItem.subDestination.forEach((polres: any) => { + updatedLevels.delete(polres.id); + }); + } } else { updatedLevels.add(levelId); } return updatedLevels; }); + + // Update unitSelection berdasarkan perubahan di modal + updateUnitSelectionFromModal(levelId); + }; + + // Fungsi untuk sinkronisasi checkbox modal dengan Pelaksana Tugas + const syncModalWithUnitSelection = () => { + // Hanya jalankan sinkronisasi jika perubahan berasal dari checkbox Pelaksana Tugas + if (isUpdatingFromPelaksana) { + // Khusus untuk unchecklist POLRES: hanya unchecklist polres, pertahankan polda + if (pelaksanaChangeType === "polres_unchecked") { + const newCheckedLevels = new Set(checkedLevels); + + // Hapus semua polres dari modal, tapi pertahankan polda + listDest.forEach((item: any) => { + if (item.subDestination && item.levelNumber === 2 && item.name !== "SATKER POLRI") { + item.subDestination.forEach((polres: any) => { + newCheckedLevels.delete(polres.id); + }); + } + }); + + setCheckedLevels(newCheckedLevels); + } + // Untuk perubahan lainnya, jalankan logika normal + else if (unitSelection.polda || unitSelection.polres || unitSelection.satker) { + // Mulai dengan checkbox yang sudah ada untuk mempertahankan pilihan manual user + const newCheckedLevels = new Set(checkedLevels); + + listDest.forEach((item: any) => { + // Jika polda dichecklist, checklist semua polda (levelNumber 2, bukan SATKER POLRI) + if (unitSelection.polda && item.levelNumber === 2 && item.name !== "SATKER POLRI") { + newCheckedLevels.add(item.id); + } + + // Jika satker dichecklist, checklist SATKER POLRI dan sub-itemnya + if (unitSelection.satker && item.name === "SATKER POLRI") { + newCheckedLevels.add(item.id); + if (item.subDestination) { + item.subDestination.forEach((sub: any) => { + newCheckedLevels.add(sub.id); + }); + } + } + + // Jika polres dichecklist + if (unitSelection.polres && item.subDestination) { + // Jika checkbox POLDA di Pelaksana Tugas juga aktif, checklist semua polres + if (unitSelection.polda && item.levelNumber === 2 && item.name !== "SATKER POLRI") { + item.subDestination.forEach((polres: any) => { + newCheckedLevels.add(polres.id); + }); + } + // Jika checkbox POLDA di Pelaksana Tugas tidak aktif, tapi ada POLDA yang dichecklist di modal + else if (!unitSelection.polda && item.levelNumber === 2 && item.name !== "SATKER POLRI") { + // Cek apakah POLDA ini sudah dichecklist di modal + if (checkedLevels.has(item.id)) { + // Jika ya, checklist semua polres dari POLDA ini + item.subDestination.forEach((polres: any) => { + newCheckedLevels.add(polres.id); + }); + } + } + } + }); + + setCheckedLevels(newCheckedLevels); + } else { + // Jika tidak ada unitSelection yang aktif, unchecklist semua item di modal + // Setelah itu user bisa checklist secara manual + setCheckedLevels(new Set()); + } + + // Reset flag setelah sinkronisasi selesai + setTimeout(() => { + setIsUpdatingFromPelaksana(false); + setPelaksanaChangeType(""); + }, 100); + } }; const handlePoldaPolresChange = () => { @@ -691,7 +850,7 @@ export default function FormContestDetail() { }} /> ))} @@ -706,6 +865,10 @@ export default function FormContestDetail() { id={key} checked={unitSelection[key as keyof typeof unitSelection]} onCheckedChange={(value) => { + // Set flag bahwa perubahan berasal dari checkbox Pelaksana Tugas + setIsUpdatingFromPelaksana(true); + setPelaksanaChangeType(key + (value ? "_checked" : "_unchecked")); + if (key === "allUnit") { const newValue = Boolean(value); setUnitSelection({ @@ -716,6 +879,22 @@ export default function FormContestDetail() { satker: newValue, }); } else { + // Validasi khusus untuk POLRES + if (key === "polres" && value) { + // Cek apakah ada POLDA yang sudah dichecklist di modal + const hasCheckedPolda = listDest.some((item: any) => + item.levelNumber === 2 && + item.name !== "SATKER POLRI" && + checkedLevels.has(item.id) + ); + + if (!hasCheckedPolda) { + // Jika tidak ada POLDA yang dichecklist di modal, tampilkan peringatan dan batalkan + alert("Harap pilih POLDA di Modal List terlebih dahulu sebelum mengaktifkan checkbox POLRES."); + return; // Batalkan perubahan + } + } + setUnitSelection((prev) => { const updated = { ...prev, [key]: Boolean(value) }; // Update 'allUnit' jika semua sub-checkbox true @@ -728,7 +907,7 @@ export default function FormContestDetail() { }} /> ))} @@ -758,7 +937,12 @@ export default function FormContestDetail() { /> {polda.name} - {expandedPolda[polda.id] && (
+ {polda?.subDestination?.map((polres: any) => (
)} - ); - })} + ))} diff --git a/docs/USER_LEVEL_RESPONSE.json b/docs/USER_LEVEL_RESPONSE.json new file mode 100644 index 00000000..14fec6a9 --- /dev/null +++ b/docs/USER_LEVEL_RESPONSE.json @@ -0,0 +1,3554 @@ +{ + "success": true, + "data": { + "list": [ + { + "id": 219, + "name": "POLDA METRO JAYA", + "levelNumber": 2, + "subDestination": [ + { + "id": 223, + "name": "POLRES METRO JAKARTA PUSAT", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 224, + "name": "POLRES METRO JAKARTA UTARA", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 225, + "name": "POLRES METRO JAKARTA BARAT", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 226, + "name": "POLRES METRO JAKARTA SELATAN", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 258, + "name": "POLRES METRO JAKARTA TIMUR", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 259, + "name": "POLRES METRO TANGERANG", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 260, + "name": "POLRES KPPT TANJUNG PRIUK", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 261, + "name": "POLRES SOEKARNO HATTA", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 262, + "name": "POLRES METRO BEKASI", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 263, + "name": "POLRES METRO KEPULAUAN SERIBU", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 264, + "name": "POLRES BEKASI", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 265, + "name": "POLRESTA DEPOK", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 266, + "name": "POLRES TANGERANG SELATAN", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 267, + "name": "POLRES TANGERANG", + "levelNumber": 3, + "subDestination": null + } + ] + }, + { + "id": 220, + "name": "POLDA JAWA BARAT", + "levelNumber": 2, + "subDestination": [ + { + "id": 268, + "name": "POLRESTABES BANDUNG", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 269, + "name": "POLRESTA BANDUNG", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 270, + "name": "POLRESTA BOGOR KOTA", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 271, + "name": "POLRESTA CIREBON", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 272, + "name": "POLRES BOGOR", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 273, + "name": "POLRES CIREBON KOTA", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 274, + "name": "POLRES INDRAMAYU", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 275, + "name": "POLRES KUNINGAN", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 276, + "name": "POLRES MAJALENGKA", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 277, + "name": "POLRES CIMAHI", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 278, + "name": "POLRES PURWAKARTA", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 279, + "name": "POLRES KARAWANG", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 280, + "name": "POLRES TASIKMALAYA KOTA", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 281, + "name": "POLRES TASIKMALAYA", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 282, + "name": "POLRES GARUT", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 283, + "name": "POLRES SUMEDANG", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 284, + "name": "POLRES SUKABUMI KOTA", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 285, + "name": "POLRES SUKABUMI", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 286, + "name": "POLRES SUBANG", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 287, + "name": "POLRES CIAMIS", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 288, + "name": "POLRES CIANJUR", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 289, + "name": "POLRES BANJAR KOTA", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 290, + "name": "POLRES PANGANDARAN", + "levelNumber": 3, + "subDestination": null + } + ] + }, + { + "id": 221, + "name": "POLDA JAWA TENGAH", + "levelNumber": 2, + "subDestination": [ + { + "id": 291, + "name": "POLRES BOYOLALI", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 292, + "name": "POLRES KLATEN", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 293, + "name": "POLRES KARANGANYAR", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 294, + "name": "POLRES SUKOHARJO", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 295, + "name": "POLRES SRAGEN", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 296, + "name": "POLRES WONOGIRI", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 297, + "name": "POLRESTABES SURAKARTA", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 298, + "name": "POLRES DEMAK", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 299, + "name": "POLRES KENDAL", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 300, + "name": "POLRES SALATIGA", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 301, + "name": "POLRES PATI", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 302, + "name": "POLRES JEPARA", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 303, + "name": "POLRES MAGELANG KOTA", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 304, + "name": "POLRES MAGELANG", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 305, + "name": "POLRES PURWOREJO", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 306, + "name": "POLRES KEBUMEN", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 307, + "name": "POLRES TEMANGGUNG", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 308, + "name": "POLRES WONOSOBO", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 309, + "name": "POLRES BANYUMAS", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 310, + "name": "POLRES PURBALINGGA", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 311, + "name": "POLRES BANJAR NEGARA", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 312, + "name": "POLRES CILACAP", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 313, + "name": "POLRES PEKALONGAN", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 314, + "name": "POLRES BATANG", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 315, + "name": "POLRES PEMALANG", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 316, + "name": "POLRES TEGAL KOTA", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 317, + "name": "POLRES TEGAL", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 318, + "name": "POLRES BREBES", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 319, + "name": "POLRES GROBOGAN", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 320, + "name": "POLRES REMBANG", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 321, + "name": "POLRES KUDUS", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 322, + "name": "POLRES BLORA", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 323, + "name": "POLRES PEKALONGAN KOTA", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 324, + "name": "POLRESTABES SEMARANG", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 325, + "name": "POLRES SEMARANG", + "levelNumber": 3, + "subDestination": null + } + ] + }, + { + "id": 222, + "name": "POLDA JAWA TIMUR", + "levelNumber": 2, + "subDestination": [ + { + "id": 326, + "name": "POLRESTABES SURABAYA", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 327, + "name": "POLRES KPPP TANJUNG PERAK", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 328, + "name": "POLRES SIDOARJO", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 329, + "name": "POLRES GRESIK", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 330, + "name": "POLRES MALANG", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 331, + "name": "POLRESTA MALANG", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 332, + "name": "POLRES PASURUAN", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 333, + "name": "POLRESTA PASURUAN", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 334, + "name": "POLRES PROBOLINGGO", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 335, + "name": "POLRESTA PROBOLINGGO", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 336, + "name": "POLRES LUMAJANG", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 337, + "name": "POLRES BATU", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 338, + "name": "POLRES BONDOWOSO", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 339, + "name": "POLRES SITUBONDO", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 340, + "name": "POLRES BANYUWANGI", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 341, + "name": "POLRES JEMBER", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 342, + "name": "POLRES KEDIRI", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 343, + "name": "POLRESTA KEDIRI", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 344, + "name": "POLRES TULUNGGAGUNG", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 345, + "name": "POLRES NGANJUK", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 346, + "name": "POLRES TRENGGALEK", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 347, + "name": "POLRESTA BLITAR", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 348, + "name": "POLRES BLITAR", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 349, + "name": "POLRES MADIUN", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 350, + "name": "POLRESTA MADIUN", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 351, + "name": "POLRES NGAWI", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 352, + "name": "POLRES MAGETAN", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 353, + "name": "POLRES PONOROGO", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 354, + "name": "POLRES PACITAN", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 355, + "name": "POLRES BOJONEGORO", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 356, + "name": "POLRES LAMONGAN", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 357, + "name": "POLRES TUBAN", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 358, + "name": "POLRES MOJOKERTO", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 359, + "name": "POLRESTA MOJOKERTO", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 360, + "name": "POLRES JOMBANG", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 361, + "name": "POLRES PAMEKASAN", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 362, + "name": "POLRES BANGKALAN", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 363, + "name": "POLRES SAMPANG", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 364, + "name": "POLRES SUMENEP", + "levelNumber": 3, + "subDestination": null + } + ] + }, + { + "id": 227, + "name": "POLDA BALI", + "levelNumber": 2, + "subDestination": [ + { + "id": 365, + "name": "POLRESTA DENPASAR", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 366, + "name": "POLRES BULELENG", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 367, + "name": "POLRES TABANAN", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 368, + "name": "POLRES GIANYAR", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 369, + "name": "POLRES KLUNGKUNG", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 370, + "name": "POLRES BANGLI", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 371, + "name": "POLRES KARANGASEM", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 372, + "name": "POLRES JEMBRANA", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 373, + "name": "POLRES BADUNG", + "levelNumber": 3, + "subDestination": null + } + ] + }, + { + "id": 228, + "name": "POLDA BANGKA BELITUNG", + "levelNumber": 2, + "subDestination": [ + { + "id": 374, + "name": "POLRES PANGKAL PINANG", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 375, + "name": "POLRES BANGKA", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 376, + "name": "POLRES BELITUNG", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 377, + "name": "POLRES BANGKA TENGAH", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 378, + "name": "POLRES BANGKA SELATAN", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 379, + "name": "POLRES BANGKA BARAT", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 380, + "name": "POLRES BELITUNG TIMUR", + "levelNumber": 3, + "subDestination": null + } + ] + }, + { + "id": 229, + "name": "POLDA BANTEN", + "levelNumber": 2, + "subDestination": [ + { + "id": 392, + "name": "POLRES SERANG", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 393, + "name": "POLRES PANDEGLANG", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 394, + "name": "POLRES LEBAK", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 395, + "name": "POLRESTA TANGERANG", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 396, + "name": "POLRES SERANG KOTA", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 397, + "name": "POLRES CILEGON", + "levelNumber": 3, + "subDestination": null + } + ] + }, + { + "id": 230, + "name": "POLDA BENGKULU", + "levelNumber": 2, + "subDestination": [ + { + "id": 381, + "name": "POLRES BENGKULU", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 382, + "name": "POLRES BENGKULU UTARA", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 383, + "name": "POLRES REJANG LEBONG", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 384, + "name": "POLRES BENGKULU SELATAN", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 385, + "name": "POLRES MUKO MUKO", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 386, + "name": "POLRES SELUMA", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 387, + "name": "POLRES KAUR", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 388, + "name": "POLRES KEPAHIANG", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 389, + "name": "POLRES BENGKULU TENGAH", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 390, + "name": "POLRES LEBONG", + "levelNumber": 3, + "subDestination": null + } + ] + }, + { + "id": 231, + "name": "POLDA DAERAH ISTIMEWA YOGYAKARTA", + "levelNumber": 2, + "subDestination": [ + { + "id": 398, + "name": "POLRES SLEMAN", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 399, + "name": "POLRESTABES YOGYAKARTA", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 400, + "name": "POLRES BANTUL", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 401, + "name": "POLRES KULON PROGO", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 402, + "name": "POLRES GUNUNG KIDUL", + "levelNumber": 3, + "subDestination": null + } + ] + }, + { + "id": 232, + "name": "POLDA GORONTALO", + "levelNumber": 2, + "subDestination": [ + { + "id": 403, + "name": "POLRES GORONTALO", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 404, + "name": "POLRES GORONTALO KOTA", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 405, + "name": "POLRES BOALEMO", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 406, + "name": "POLRES PAHUWATO", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 407, + "name": "POLRES GORONTALO UTARA", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 408, + "name": "POLRES BONE BOLANGO", + "levelNumber": 3, + "subDestination": null + } + ] + }, + { + "id": 233, + "name": "POLDA JAMBI", + "levelNumber": 2, + "subDestination": [ + { + "id": 409, + "name": "POLRESTABES JAMBI", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 410, + "name": "POLRES BATANGHARI", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 411, + "name": "POLRES BUNGO", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 412, + "name": "POLRES KERINCI", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 413, + "name": "POLRES TANJUNG JABUNG BARAT", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 414, + "name": "POLRES TANJUNG JABUNG TIMUR", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 415, + "name": "POLRES MERANGIN", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 416, + "name": "POLRES TEBO", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 417, + "name": "POLRES SAROLANGUN", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 418, + "name": "POLRES MUARO JAMBI", + "levelNumber": 3, + "subDestination": null + } + ] + }, + { + "id": 234, + "name": "POLDA KALIMANTAN BARAT", + "levelNumber": 2, + "subDestination": [ + { + "id": 419, + "name": "POLRESTA PONTIANAK KOTA", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 420, + "name": "POLRES PONTIANAK", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 421, + "name": "POLRES SINGKAWANG", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 422, + "name": "POLRES SAMBAS", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 423, + "name": "POLRES BENGKAYANG", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 424, + "name": "POLRES LANDAK", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 425, + "name": "POLRES SANGGAU", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 426, + "name": "POLRES SEKADAU", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 427, + "name": "POLRES SINTANG", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 428, + "name": "POLRES MELAWI", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 429, + "name": "POLRES KAPUAS HULU", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 430, + "name": "POLRES KETAPANG", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 431, + "name": "POLRES KAYONG UTARA", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 432, + "name": "POLRES KUBU RAYA", + "levelNumber": 3, + "subDestination": null + } + ] + }, + { + "id": 235, + "name": "POLDA KALIMANTAN SELATAN", + "levelNumber": 2, + "subDestination": [ + { + "id": 433, + "name": "POLRESTABES BANJARMASIN", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 434, + "name": "POLRESTA BANJARBARU", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 435, + "name": "POLRES BANJAR", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 436, + "name": "POLRES TAPIN", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 437, + "name": "POLRES HULU SUNGAI SELATAN", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 438, + "name": "POLRES HULU SUNGAI TENGAH", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 439, + "name": "POLRES HULU SUNGAI UTARA", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 440, + "name": "POLRES TABALONG", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 441, + "name": "POLRES BALANGAN", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 442, + "name": "POLRES KOTABARU", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 443, + "name": "POLRES TANAH BUMBU", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 444, + "name": "POLRES TANAH LAUT", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 445, + "name": "POLRES BARITO KOALA", + "levelNumber": 3, + "subDestination": null + } + ] + }, + { + "id": 236, + "name": "POLDA KALTARA", + "levelNumber": 2, + "subDestination": [ + { + "id": 446, + "name": "POLRES TARAKAN", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 447, + "name": "POLRES BULUNGAN", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 448, + "name": "POLRES MALINAU", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 449, + "name": "POLRES NUNUKAN", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 450, + "name": "POLRES TANA TIDUNG", + "levelNumber": 3, + "subDestination": null + } + ] + }, + { + "id": 237, + "name": "POLDA KALIMANTAN TENGAH", + "levelNumber": 2, + "subDestination": [ + { + "id": 451, + "name": "POLRES KOTAWARINGIN TIMUR", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 452, + "name": "POLRES KOTAWARINGIN BARAT", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 453, + "name": "POLRES KATINGAN", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 454, + "name": "POLRES PALANGKARAYA", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 455, + "name": "POLRES PULAU PISANG", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 456, + "name": "POLRES BARITO SELATAN", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 457, + "name": "POLRES BARITO UTARA", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 458, + "name": "POLRES BARITO TIMUR", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 459, + "name": "POLRES KAPUAS", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 460, + "name": "POLRES SERUYAN", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 461, + "name": "POLRES SUKAMARA", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 462, + "name": "POLRES LAMANDAU", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 463, + "name": "POLRES GUNUNG MAS", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 464, + "name": "POLRES MURUNG RAYA", + "levelNumber": 3, + "subDestination": null + } + ] + }, + { + "id": 238, + "name": "POLDA KALIMANTAN TIMUR", + "levelNumber": 2, + "subDestination": [ + { + "id": 465, + "name": "POLRES BALIKPAPAN", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 466, + "name": "POLRES BERAU", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 467, + "name": "POLRES BONTANG", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 468, + "name": "POLRES BULUNGAN", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 469, + "name": "POLRES KUTAI KERTANEGARA", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 470, + "name": "POLRES KUTAI BARAT", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 471, + "name": "POLRES KUTAI TIMUR", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 472, + "name": "POLRES MALINAU", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 473, + "name": "POLRES PASER", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 474, + "name": "POLRES PENAJAM PASER UTARA", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 475, + "name": "POLRES TARAKAN", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 476, + "name": "POLRESTA SAMARINDA", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 477, + "name": "POLRES NUNUKAN", + "levelNumber": 3, + "subDestination": null + } + ] + }, + { + "id": 239, + "name": "POLDA KEPULAUAN RIAU", + "levelNumber": 2, + "subDestination": [ + { + "id": 478, + "name": "POLRESTA BARELANG", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 479, + "name": "POLRESTA TANJUNG PINANG", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 480, + "name": "POLRES BINTAN", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 481, + "name": "POLRES KARIMUN", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 482, + "name": "POLRES LINGGA", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 483, + "name": "POLRES NATUNA", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 484, + "name": "POLRES ANAMBAS", + "levelNumber": 3, + "subDestination": null + } + ] + }, + { + "id": 240, + "name": "POLDA LAMPUNG", + "levelNumber": 2, + "subDestination": [ + { + "id": 485, + "name": "POLTABES BANDAR LAMPUNG", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 486, + "name": "POLRES LAMPUNG SELATAN", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 487, + "name": "POLRES METRO", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 488, + "name": "POLRES LAMPUNG UTARA", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 489, + "name": "POLRES LAMPUNG BARAT", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 490, + "name": "POLRES TULANG BAWANG", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 491, + "name": "POLRES TANGGAMUS", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 492, + "name": "POLRES LAMPUNG TIMUR", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 493, + "name": "POLRES WAY KANAN", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 494, + "name": "POLRES LAMPUNG TENGAH", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 495, + "name": "POLRES PASAWARAN", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 496, + "name": "POLRES PRINGSEWU", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 497, + "name": "POLRES MESUJI", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 498, + "name": "POLRES TULANG BAWANG BARAT", + "levelNumber": 3, + "subDestination": null + } + ] + }, + { + "id": 241, + "name": "POLDA MALUKU", + "levelNumber": 2, + "subDestination": [ + { + "id": 499, + "name": "POLRES MALUKU TENGAH", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 500, + "name": "POLRES MALUKU TENGGARA", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 501, + "name": "POLRES MALUKU TENGGARA BARAT", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 502, + "name": "POLRES BURU", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 503, + "name": "POLRES SERAM BAGIAN TIMUR", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 504, + "name": "POLRES SERAM BAGIAN BARAT", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 505, + "name": "POLRES KEPULAUAN ARU", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 506, + "name": "POLRES MALUKU BARAT DAYA", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 507, + "name": "POLRES BURU SELATAN", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 508, + "name": "POLRESTA AMBON", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 509, + "name": "POLRESTA TUAL", + "levelNumber": 3, + "subDestination": null + } + ] + }, + { + "id": 242, + "name": "POLDA MALUKU UTARA", + "levelNumber": 2, + "subDestination": [ + { + "id": 510, + "name": "POLRES HALMAHERA BARAT", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 511, + "name": "POLRES HALMAHERA TENGAH", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 512, + "name": "POLRES HALMAHERA SELATAN", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 513, + "name": "POLRES HALMAHERA UTARA", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 514, + "name": "POLRES HALMAHERA TIMUR", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 515, + "name": "POLRES KEPULAUAN SULA", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 516, + "name": "POLRES KEPULAUAN MOROTAI", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 517, + "name": "POLRESTA TERNATE", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 518, + "name": "POLRESTA TIDORE KEPULAUAN", + "levelNumber": 3, + "subDestination": null + } + ] + }, + { + "id": 243, + "name": "POLDA ACEH", + "levelNumber": 2, + "subDestination": [ + { + "id": 519, + "name": "POLRESTA BANDA ACEH", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 520, + "name": "POLRES ACEH BESAR", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 521, + "name": "POLRES PIDIE", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 522, + "name": "POLRES ACEH BARAT", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 523, + "name": "POLRES ACEH SELATAN", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 524, + "name": "POLRES ACEH TENGAH", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 525, + "name": "POLRES ACEH TENGGARA", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 526, + "name": "POLRES SABANG", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 527, + "name": "POLRES BIREUEN", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 528, + "name": "POLRES ACEH SINGKIL", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 529, + "name": "POLRES SIMEULUE", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 530, + "name": "POLRES ACEH TAMIANG", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 531, + "name": "POLRES GAYO LUES", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 532, + "name": "POLRES LHOKSEUMAWE", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 533, + "name": "POLRES LANGSA", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 534, + "name": "POLRES SUBULUSSALAM", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 535, + "name": "POLRES PIDIE JAYA", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 536, + "name": "POLRES BENER MERIAH", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 537, + "name": "POLRES NAGAN RAYA", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 538, + "name": "POLRES ACEH BARAT DAYA", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 539, + "name": "POLRES ACEH SINGKIL", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 540, + "name": "POLRES ACEH UTARA", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 541, + "name": "POLRES ACEH TIMUR", + "levelNumber": 3, + "subDestination": null + } + ] + }, + { + "id": 244, + "name": "POLDA NTB", + "levelNumber": 2, + "subDestination": [ + { + "id": 542, + "name": "POLRES LOMBOK BARAT", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 543, + "name": "POLRES LOMBOK UTARA", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 544, + "name": "POLRES LOMBOK TENGAH", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 545, + "name": "POLRES LOMBOK TIMUR", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 546, + "name": "POLRES SUMBAWA", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 547, + "name": "POLRES SUMBAWA BARAT", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 548, + "name": "POLRES DOMPU", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 549, + "name": "POLRES BIMA", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 550, + "name": "POLRESTA BIMA", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 551, + "name": "POLRES MATARAM", + "levelNumber": 3, + "subDestination": null + } + ] + }, + { + "id": 245, + "name": "POLDA NTT", + "levelNumber": 2, + "subDestination": [ + { + "id": 552, + "name": "POLRESTA KUPANG", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 553, + "name": "POLRES KUPANG", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 554, + "name": "POLRES TIMOR TENGAH SELATAN", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 555, + "name": "POLRES TIMOR TENGAH UTARA", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 556, + "name": "POLRES BELU", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 557, + "name": "POLRES ALOR", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 558, + "name": "POLRES FLORES TIMUR", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 559, + "name": "POLRES SIKKA", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 560, + "name": "POLRES ENDE", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 561, + "name": "POLRES NGADA", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 562, + "name": "POLRES MANGGARAI", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 563, + "name": "POLRES MANGGARAI BARAT", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 564, + "name": "POLRES MANGGARAI TIMUR", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 565, + "name": "POLRES SUMBA TIMUR", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 566, + "name": "POLRES SUMBA TENGAH", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 567, + "name": "POLRES SUMBA BARAT DAYA", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 568, + "name": "POLRES SUMBA BARAT", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 569, + "name": "POLRES LEMBATA", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 570, + "name": "POLRES ROTE NDAO", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 571, + "name": "POLRES NAGEKEO", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 572, + "name": "POLRES SABU RAIJUA", + "levelNumber": 3, + "subDestination": null + } + ] + }, + { + "id": 246, + "name": "POLDA PAPUA", + "levelNumber": 2, + "subDestination": [ + { + "id": 573, + "name": "POLRES MERAUKE", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 574, + "name": "POLRES JAYAWIJAYA", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 575, + "name": "POLRES JAYAPURA", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 576, + "name": "POLRES NABIRE", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 577, + "name": "POLRES KEPULAUAN YAPEN", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 578, + "name": "POLRES BIAK NUMFOR", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 579, + "name": "POLRES PUNCAK JAYA", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 580, + "name": "POLRES PANIAI", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 581, + "name": "POLRES MIMIKA", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 582, + "name": "POLRES SARMI", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 583, + "name": "POLRES KEEROM", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 584, + "name": "POLRES PEGUNUNGAN BINTANG", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 585, + "name": "POLRES YAHUKIMO", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 586, + "name": "POLRES TOLIKARA", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 587, + "name": "POLRES WAROPEN", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 588, + "name": "POLRES BOVEN DIGOEL", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 589, + "name": "POLRES MAPPI", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 590, + "name": "POLRES ASMAT", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 591, + "name": "POLRES SUPIORI", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 592, + "name": "POLRES MEMBERAMO RAYA", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 593, + "name": "POLRES MEMBERAMO TENGAH", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 594, + "name": "POLRES YALIMO", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 595, + "name": "POLRES LANNY JAYA", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 596, + "name": "POLRES NDUGA", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 597, + "name": "POLRES PUNCAK", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 598, + "name": "POLRES DOGIYAI", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 599, + "name": "POLRES INTAN JAYA", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 600, + "name": "POLRES DEIYAI", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 601, + "name": "POLRESTA JAYAPURA", + "levelNumber": 3, + "subDestination": null + } + ] + }, + { + "id": 247, + "name": "POLDA PAPUA BARAT", + "levelNumber": 2, + "subDestination": [ + { + "id": 602, + "name": "POLRES SORONG", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 603, + "name": "POLRESTA SORONG", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 604, + "name": "POLRES MANOKWARI", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 605, + "name": "POLRES FAK FAK", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 606, + "name": "POLRES RAJA AMPAT", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 607, + "name": "POLRES TELUK BINTUNI", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 608, + "name": "POLRES TELUK WONDAMA", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 609, + "name": "POLRES KAIMANA", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 610, + "name": "POLRES TAMBRAUW", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 611, + "name": "POLRES MAYBRAT", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 612, + "name": "POLRES SORONG SELATAN", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 613, + "name": "POLRES MANOKWARI SELATAN", + "levelNumber": 3, + "subDestination": null + } + ] + }, + { + "id": 248, + "name": "POLDA RIAU", + "levelNumber": 2, + "subDestination": [ + { + "id": 614, + "name": "POLTABES PEKANBARU", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 615, + "name": "POLRES INDRAGIRI HULU", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 616, + "name": "POLRES DUMAI", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 617, + "name": "POLRES KAMPAR", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 618, + "name": "POLRES INDRAGIRI HILIR", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 619, + "name": "POLRES BENGKALIS", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 620, + "name": "POLRES PELALAWAN", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 621, + "name": "POLRES ROKAN HILIR", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 622, + "name": "POLRES ROKAN HULU", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 623, + "name": "POLRES SIAK", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 624, + "name": "POLRES KUANTAN SINGINGI", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 625, + "name": "POLRES KEPULAUAN MERANTI", + "levelNumber": 3, + "subDestination": null + } + ] + }, + { + "id": 249, + "name": "POLDA SULAWESI SELATAN", + "levelNumber": 2, + "subDestination": [ + { + "id": 626, + "name": "POLRESTABES MAKASSAR", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 627, + "name": "POLRES PELABUHAN MAKASSAR", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 628, + "name": "POLRES MAROS", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 629, + "name": "POLRES PANGKAJENE DAN KEPULAUAN", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 630, + "name": "POLRES GOWA", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 631, + "name": "POLRES TAKALAR", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 632, + "name": "POLRES JENEPONTO", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 633, + "name": "POLRES BANTAENG", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 634, + "name": "POLRES BULUKUMBA", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 635, + "name": "POLRES KEPULAUAN SELAYAR", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 636, + "name": "POLRES BONE", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 637, + "name": "POLRES SOPPENG", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 638, + "name": "POLRES WAJO", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 639, + "name": "POLRES SINJAI", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 640, + "name": "POLRES PAREPARE", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 641, + "name": "POLRES BARRU", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 642, + "name": "POLRES PINRANG", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 643, + "name": "POLRES SIDENRENG RAPPANG", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 644, + "name": "POLRES ENREKANG", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 645, + "name": "POLRES TANA TORAJA", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 646, + "name": "POLRES TORAJA UTARA", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 647, + "name": "POLRES LUWU", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 648, + "name": "POLRES LUWU UTARA", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 649, + "name": "POLRES LUWU TIMUR", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 650, + "name": "POLRES PALOPO", + "levelNumber": 3, + "subDestination": null + } + ] + }, + { + "id": 250, + "name": "POLDA SULAWESI BARAT", + "levelNumber": 2, + "subDestination": [ + { + "id": 651, + "name": "POLRESTA MAMUJU", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 652, + "name": "POLRES PASANGKAYU", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 653, + "name": "POLRES MAMUJU TENGAH", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 654, + "name": "POLRES MAJENE", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 655, + "name": "POLRES POLEWALI MANDAR", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 656, + "name": "POLRES MAMASA", + "levelNumber": 3, + "subDestination": null + } + ] + }, + { + "id": 251, + "name": "POLDA SULAWESI TENGAH", + "levelNumber": 2, + "subDestination": [ + { + "id": 657, + "name": "POLRES BANGGAI", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 658, + "name": "POLRES POSO", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 659, + "name": "POLRES DONGGALA", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 660, + "name": "POLRES TOLI TOLI", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 661, + "name": "POLRES BUOL", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 662, + "name": "POLRES MOROWALI", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 663, + "name": "POLRES BANGGAI KEPULAUAN", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 664, + "name": "POLRES PARIGI MOUTONG", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 665, + "name": "POLRES TOJO UNA UNA", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 666, + "name": "POLRES SIGI", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 667, + "name": "POLRESTA PALU", + "levelNumber": 3, + "subDestination": null + } + ] + }, + { + "id": 252, + "name": "POLDA SULAWESI TENGGARA", + "levelNumber": 2, + "subDestination": [ + { + "id": 668, + "name": "POLRESTA KENDARI", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 669, + "name": "POLRES KONAWE", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 670, + "name": "POLRES KONAWE SELATAN", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 671, + "name": "POLRES KOLAKA", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 672, + "name": "POLRES KOLAKA UTARA", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 673, + "name": "POLRES BOMBANA", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 674, + "name": "POLRES BAUBAU", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 675, + "name": "POLRES BUTON", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 676, + "name": "POLRES MUNA", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 677, + "name": "POLRES WAKATOBI", + "levelNumber": 3, + "subDestination": null + } + ] + }, + { + "id": 253, + "name": "POLDA SULAWESI UTARA", + "levelNumber": 2, + "subDestination": [ + { + "id": 678, + "name": "POLRES BOLAANG MONGONDOW", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 679, + "name": "POLRES MINAHASA", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 680, + "name": "POLRES KEPULAUAN SANGIHE", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 681, + "name": "POLRES KEPULAUAN TALAUD", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 682, + "name": "POLRES MINAHASA SELATAN", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 683, + "name": "POLRES MINAHASA UTARA", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 684, + "name": "POLRES MINAHASA TENGGARA", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 685, + "name": "POLRES BOLAANG MONGONDOW UTARA", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 686, + "name": "POLRES KEPULAUAN SIAU TAGULANDANG", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 687, + "name": "POLRES BOLAANG MONGONDOW TIMUR", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 688, + "name": "POLRES BOLAANG MONGONDOW SELATAN", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 689, + "name": "POLRESTA MANADO", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 690, + "name": "POLRESTA BITUNG", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 691, + "name": "POLRESTA TOMOHON", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 692, + "name": "POLRES KOTAMOBAGU", + "levelNumber": 3, + "subDestination": null + } + ] + }, + { + "id": 254, + "name": "POLDA SUMATERA BARAT", + "levelNumber": 2, + "subDestination": [ + { + "id": 693, + "name": "POLRESTABES PADANG", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 694, + "name": "POLRES PESISIR SELATAN", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 695, + "name": "POLRES PASAMAN", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 696, + "name": "POLRES BUKITTINGGI", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 697, + "name": "POLRES PADANG PARIAMAN", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 698, + "name": "POLRES TANAH DATAR", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 699, + "name": "POLRES SAWAH LUNTO SIJUNJUNG", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 700, + "name": "POLRES SOLOK", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 701, + "name": "POLRES AGAM", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 702, + "name": "POLRES KEP. MENTAWAI", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 703, + "name": "POLRES SIJUNJUNG", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 704, + "name": "POLRES LIMAPULUH KOTA", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 705, + "name": "POLRES DHARMASRAYA", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 706, + "name": "POLRES SOLOK SELATAN", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 707, + "name": "POLRES PASAMAN BARAT", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 708, + "name": "POLRESTA SOLOK", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 709, + "name": "POLRESTA PADANG PANJANG", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 710, + "name": "POLRESTA PARIAMAN", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 711, + "name": "POLRES PAYAKUMBUH", + "levelNumber": 3, + "subDestination": null + } + ] + }, + { + "id": 255, + "name": "POLDA SUMATERA SELATAN", + "levelNumber": 2, + "subDestination": [ + { + "id": 712, + "name": "POLRESTABES PALEMBANG", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 713, + "name": "POLRES MUSI BANYUASIN", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 714, + "name": "POLRES OGAN KOMERING ILIR", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 715, + "name": "POLRES MUARA ENIM", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 716, + "name": "POLRES LAHAT", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 717, + "name": "POLRES OGAN KOMERING ULU", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 718, + "name": "POLRES LUBUK LINGGAU", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 719, + "name": "POLRES PAGARALAM", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 720, + "name": "POLRES BANYUASIN", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 721, + "name": "POLRES PRABUMULIH", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 722, + "name": "POLRES MUSI RAWAS", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 723, + "name": "POLRES OKU TIMUR", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 724, + "name": "POLRES OKU SELATAN", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 725, + "name": "POLRES OGAN ILIR", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 726, + "name": "POLRES EMPAT LAWANG", + "levelNumber": 3, + "subDestination": null + } + ] + }, + { + "id": 256, + "name": "POLDA SUMATERA UTARA", + "levelNumber": 2, + "subDestination": [ + { + "id": 727, + "name": "POLRES DELI SERDANG", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 728, + "name": "POLRES LANGKAT", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 729, + "name": "POLRES MANDAILING NATAL", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 730, + "name": "POLRES TANAH KARO", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 731, + "name": "POLRES SIMALUNGUN", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 732, + "name": "POLRES ASAHAN", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 733, + "name": "POLRES LABUHAN BATU", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 734, + "name": "POLRES TAPANULI UTARA", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 735, + "name": "POLRES TAPANULI SELATAN", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 736, + "name": "POLRES TAPANULI TENGAH", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 737, + "name": "POLRES NIAS", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 738, + "name": "POLRES KP3 BELAWAN", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 739, + "name": "POLRES DAIRI", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 740, + "name": "POLRESTABES MEDAN", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 741, + "name": "POLRES TEBING TINGGI", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 742, + "name": "POLRES BINJAI", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 743, + "name": "POLRES GUNUNGSITOLI", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 744, + "name": "POLRESTA PADANG SIDEMPUAN", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 745, + "name": "POLRES TANJUNGBALAI", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 746, + "name": "POLRES SIBOLGA", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 747, + "name": "POLRES PEMATANG SIANTAR", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 748, + "name": "POLRES NIAS BARAT", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 749, + "name": "POLRES NIAS UTARA", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 750, + "name": "POLRES LABUAN BATU UTARA", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 751, + "name": "POLRES LABUAN BATU SELATAN", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 752, + "name": "POLRES PADANG LAWAS", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 753, + "name": "POLRES PADANG LAWAS UTARA", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 754, + "name": "POLRES BATU BARA", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 755, + "name": "POLRES SERDANG BEDAGAI", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 756, + "name": "POLRES SAMOSIR", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 757, + "name": "POLRES HUMBAHAS", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 758, + "name": "POLRES PAKPAK BARAT", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 759, + "name": "POLRES NIAS SELATAN", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 760, + "name": "POLRES TOBA SAMOSIR", + "levelNumber": 3, + "subDestination": null + } + ] + }, + { + "id": 761, + "name": "SATKER POLRI", + "levelNumber": 2, + "subDestination": [ + { + "id": 762, + "name": "ITWASUM", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 763, + "name": "BAINTELKAM", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 764, + "name": "BAHARKAM", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 765, + "name": "BARESKRIM", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 766, + "name": "LEMDIKLAT", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 767, + "name": "SOPS POLRI", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 768, + "name": "SRENA", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 769, + "name": "SSDM", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 770, + "name": "SLOG", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 771, + "name": "KOORSAHLI", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 772, + "name": "DIVPROPAM", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 773, + "name": "DIVKUM", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 774, + "name": "DIVHUBINTER", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 775, + "name": "DIVTIK", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 776, + "name": "KORLANTAS", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 777, + "name": "KORBRIMOB", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 778, + "name": "DENSUS 88", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 779, + "name": "PUSLITBANG", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 780, + "name": "PUSKEU", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 781, + "name": "PUSDOKKES", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 782, + "name": "PUSJARAH", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 783, + "name": "SETUM", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 784, + "name": "YANMA", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 785, + "name": "KOORSPRIPIM", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 786, + "name": "KORPOLAIRUD BAHARKAM", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 787, + "name": "KORSABHARA BAHARKAM", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 788, + "name": "KORBINMAS BAHARKAM", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 789, + "name": "DIT TIPIDUM BARESKRIM", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 790, + "name": "DIT TIPIDEKSUS BARESKRIM", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 791, + "name": "DIT TIPIDKOR BARESKRIM", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 792, + "name": "DIT TIPIDNARKOBA BARESKRIM", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 793, + "name": "DIT TIPIDTER BARESKRIM", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 794, + "name": "DIT TIPIDSIBER BARESKRIM", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 795, + "name": "PUSLABFOR BARESKRIM", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 796, + "name": "PUSINAFIS BARESKRIM", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 797, + "name": "PUSIKNAS BARESKRIM", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 798, + "name": "STIK LEMDIKLAT", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 799, + "name": "AKPOL LEMDIKLAT", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 800, + "name": "SESPIM LEMDIKLAT", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 801, + "name": "SETUKPA LEMDIKLAT", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 802, + "name": "SEPOLWAN LEMDIKLAT", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 803, + "name": "SEBASA LEMDIKLAT", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 804, + "name": "RUMKIT BHAYANGKARA TK I PUSDOKKES", + "levelNumber": 3, + "subDestination": null + }, + { + "id": 805, + "name": "POLRI TV", + "levelNumber": 3, + "subDestination": null + } + ] + } + ] + }, + "message": null, + "errorCode": null +} \ No newline at end of file