|
|
|
import React, { useEffect, useRef, useState } from "react"
|
|
|
|
import { MultiSelect } from "react-multi-select-component"
|
|
|
|
import { Col, Label, Row } from "reactstrap"
|
|
|
|
import Select from "react-select"
|
|
|
|
import { Button as ButtonP } from "primereact/button"
|
|
|
|
import { isObjEmpty } from "../util"
|
|
|
|
import $ from "jquery"
|
|
|
|
import collect from "collect.js"
|
|
|
|
const NipPengampu = ({ dataSend, setDataSend, activeTab, toast, setHiddenGraphMatoa, dataOpsi }) => {
|
|
|
|
const [kanwil, setKanwil] = useState({})
|
|
|
|
const [kpp, setKpp] = useState({})
|
|
|
|
const [seksi, setSeksi] = useState([])
|
|
|
|
const [ar, setAr] = useState([])
|
|
|
|
|
|
|
|
const [kanwilSelected, setKanwilSelected] = useState(null)
|
|
|
|
const [kppSelected, setKppSelected] = useState({})
|
|
|
|
const [seksiSelected, setSeksiSelected] = useState([])
|
|
|
|
const [arSelected, setArSelected] = useState([])
|
|
|
|
const base_url = "<?=base_url()?>"
|
|
|
|
useEffect(() => {
|
|
|
|
$.ajax({
|
|
|
|
url: base_url + "kewilayahan/ref/kanwil",
|
|
|
|
method: "GET",
|
|
|
|
dataType: "json",
|
|
|
|
success: (data) => {
|
|
|
|
setKanwil(data)
|
|
|
|
}
|
|
|
|
})
|
|
|
|
}, [])
|
|
|
|
|
|
|
|
useEffect(() => {
|
|
|
|
setKpp(null)
|
|
|
|
setSeksi([])
|
|
|
|
setAr([])
|
|
|
|
setKppSelected(null)
|
|
|
|
setSeksiSelected([])
|
|
|
|
setArSelected([])
|
|
|
|
if (kanwilSelected && !isObjEmpty(kanwilSelected)) {
|
|
|
|
const kanwil = kanwilSelected.value
|
|
|
|
$.ajax({
|
|
|
|
url: base_url + "kewilayahan/ref/kpp",
|
|
|
|
method: "GET",
|
|
|
|
dataType: "json",
|
|
|
|
data: { kanwil },
|
|
|
|
success: (data) => {
|
|
|
|
setKpp(data)
|
|
|
|
}
|
|
|
|
})
|
|
|
|
}
|
|
|
|
}, [kanwilSelected])
|
|
|
|
|
|
|
|
useEffect(() => {
|
|
|
|
setSeksi([])
|
|
|
|
setAr([])
|
|
|
|
setSeksiSelected([])
|
|
|
|
setArSelected([])
|
|
|
|
if (kppSelected && !isObjEmpty(kppSelected)) {
|
|
|
|
// const kpp = collect(kppSelected).pluck("value").all()
|
|
|
|
const kpp = kppSelected.value
|
|
|
|
$.ajax({
|
|
|
|
url: base_url + "kewilayahan/ref/seksi",
|
|
|
|
method: "GET",
|
|
|
|
dataType: "json",
|
|
|
|
data: { kpp },
|
|
|
|
success: (data) => {
|
|
|
|
setSeksi(data)
|
|
|
|
}
|
|
|
|
})
|
|
|
|
}
|
|
|
|
}, [kppSelected])
|
|
|
|
|
|
|
|
useEffect(() => {
|
|
|
|
setAr([])
|
|
|
|
setArSelected([])
|
|
|
|
const seksi = collect(seksiSelected).pluck("value").all()
|
|
|
|
if (seksi.length && !isObjEmpty(seksiSelected)) {
|
|
|
|
const kpp = kppSelected.value
|
|
|
|
|
|
|
|
$.ajax({
|
|
|
|
url: base_url + "kewilayahan/ref/ar",
|
|
|
|
method: "POST",
|
|
|
|
dataType: "json",
|
|
|
|
data: { kpp, seksi },
|
|
|
|
success: (data) => {
|
|
|
|
setAr(data)
|
|
|
|
}
|
|
|
|
})
|
|
|
|
}
|
|
|
|
}, [seksiSelected])
|
|
|
|
const buttonProsesOnClick = () => {
|
|
|
|
const nip_ar_pengampu = collect(arSelected).pluck("value").all()
|
|
|
|
if (nip_ar_pengampu.length) {
|
|
|
|
setDataSend({ opsiWilZona: dataOpsi.pengampu.key, nip_ar_pengampu })
|
|
|
|
setHiddenGraphMatoa(true)
|
|
|
|
} else {
|
|
|
|
toast.current.show({ severity: "info", summary: "Info", detail: "AR Pengampu harus dipilih" })
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return (
|
|
|
|
<>
|
|
|
|
<Row>
|
|
|
|
<Col md="3">
|
|
|
|
<Label className="form-label" for="basicInput">
|
|
|
|
Kanwil
|
|
|
|
</Label>
|
|
|
|
<Select
|
|
|
|
placeholder="Pilih Kanwil"
|
|
|
|
className="basic-single w-100"
|
|
|
|
onChange={(e) => {
|
|
|
|
setKanwilSelected(e)
|
|
|
|
}}
|
|
|
|
classNamePrefix="select"
|
|
|
|
// defaultValue={kanwilSelected}
|
|
|
|
value={kanwilSelected}
|
|
|
|
isClearable={false}
|
|
|
|
options={kanwil}
|
|
|
|
/>
|
|
|
|
</Col>
|
|
|
|
<Col md="3">
|
|
|
|
<Label className="form-label" for="Pilih KPP">
|
|
|
|
KPP
|
|
|
|
</Label>
|
|
|
|
<Select
|
|
|
|
placeholder="Pilih KPP"
|
|
|
|
className="basic-single w-100"
|
|
|
|
onChange={(e) => {
|
|
|
|
setKppSelected(e)
|
|
|
|
}}
|
|
|
|
classNamePrefix="select"
|
|
|
|
// defaultValue={kanwilSelected}
|
|
|
|
value={kppSelected}
|
|
|
|
isClearable={false}
|
|
|
|
options={kpp}
|
|
|
|
/>
|
|
|
|
</Col>
|
|
|
|
<Col md="3">
|
|
|
|
<Label className="form-label" for="Pilih Seksi">
|
|
|
|
Seksi
|
|
|
|
</Label>
|
|
|
|
<MultiSelect
|
|
|
|
className="me-1 w-full"
|
|
|
|
hasSelectAll={true}
|
|
|
|
debounceDuration={300}
|
|
|
|
options={seksi}
|
|
|
|
value={seksiSelected}
|
|
|
|
onChange={(e) => {
|
|
|
|
setSeksiSelected(e)
|
|
|
|
}}
|
|
|
|
labelledBy="Pilih Seksi"
|
|
|
|
overrideStrings={{ allItemsAreSelected: "Semua dipilih", selectSomeItems: "Pilih Seksi" }}
|
|
|
|
/>
|
|
|
|
</Col>
|
|
|
|
<Col md="3">
|
|
|
|
<Label className="form-label" for="Pilih AR">
|
|
|
|
AR
|
|
|
|
</Label>
|
|
|
|
<MultiSelect
|
|
|
|
className="me-1 w-full"
|
|
|
|
hasSelectAll={true}
|
|
|
|
debounceDuration={300}
|
|
|
|
options={ar}
|
|
|
|
value={arSelected}
|
|
|
|
onChange={(e) => {
|
|
|
|
setArSelected(e)
|
|
|
|
}}
|
|
|
|
labelledBy="Pilih AR"
|
|
|
|
overrideStrings={{ allItemsAreSelected: "Semua dipilih", selectSomeItems: "Pilih AR" }}
|
|
|
|
/>
|
|
|
|
</Col>
|
|
|
|
</Row>
|
|
|
|
<Row className="mt-2">
|
|
|
|
<Col sm="12">
|
|
|
|
<ButtonP onClick={() => buttonProsesOnClick()} label="Proses" severity="" rounded className="w-10rem text-white text-base" />
|
|
|
|
</Col>
|
|
|
|
</Row>
|
|
|
|
</>
|
|
|
|
)
|
|
|
|
}
|
|
|
|
|
|
|
|
export default NipPengampu
|