diff --git a/src/views/SimproV2/CreatedProyek/ReportAnalysis.js b/src/views/SimproV2/CreatedProyek/ReportAnalysis.js index df7915e..b74c6c8 100644 --- a/src/views/SimproV2/CreatedProyek/ReportAnalysis.js +++ b/src/views/SimproV2/CreatedProyek/ReportAnalysis.js @@ -24,6 +24,7 @@ const ReportAnalysis = ({ openDialog, closeDialog, toggleDialog, projectId }) => const [dataTable, setDatatable] = useState([]); const [dataTableActivityToHr, setDataTableActivityToHr] = useState([]); const [hrList, setHrList] = useState([]); + const [groupedActivity, setGroupedActivity] = useState([]); const [selectedHr, setSelectedHr] = useState(null); const toggle = (tab) => { @@ -102,6 +103,23 @@ const ReportAnalysis = ({ openDialog, closeDialog, toggleDialog, projectId }) => getDataHr() }, []); + useEffect(() => { + if (projectId) { + getGroupedActivity() + getDataHr() + } + }, [projectId]); + + const handleClose = () => { + setAvgActivityHr(0); + setSelectedHr(null); + setDataTableActivityToHr([]); + setAvgActivity(0); + setSearch(''); + setDatatable([]) + closeDialog() + } + const handleSearch = (e) => { const value = e.target.value; setSearch(value); @@ -131,8 +149,27 @@ const ReportAnalysis = ({ openDialog, closeDialog, toggleDialog, projectId }) => } const getDataHr = async () => { + const payload = { + columns: [ + { + name: "proyek_id", + logic_operator: "=", + value: projectId, + operator: "AND", + }, + ], + joins: [ + { + name: "m_users", + column_join: "user_id", + column_results: ["id", "name"] + }, + ], + orders: { columns: ["id"], ascending: false }, + paging: { start: 0, length: -1 }, + }; const result = await axios - .get(`${BASE_SIMPRO_LUMEN}/human-resource/list`, HEADER) + .post(`${BASE_SIMPRO_LUMEN}/user-to-proyek/search`, payload, HEADER) .then((res) => res) .catch((error) => error.response); @@ -209,6 +246,33 @@ const ReportAnalysis = ({ openDialog, closeDialog, toggleDialog, projectId }) => } }; + const getGroupedActivity = async () => { + const payload = { + columns: [ + { + name: "proyek_id", + logic_operator: "=", + value: projectId, + operator: "AND", + }, + ], + orders: { columns: ["id"], ascending: false }, + paging: { start: 0, length: -1 }, + }; + + const result = await axios + .post(`${BASE_SIMPRO_LUMEN}/activity/search-analysis-prep`, payload, HEADER) + .then((res) => res) + .catch((error) => error.response); + + if (result && result.data && result.data.code == 200) { + let dataRes = result.data.data || []; + setGroupedActivity(dataRes); + } else { + NotificationManager.error("Gagal Mengambil Data!!", "Failed"); + } + }; + const getDataActivity = async () => { setAvgActivity(0); let sum = 0; @@ -216,7 +280,7 @@ const ReportAnalysis = ({ openDialog, closeDialog, toggleDialog, projectId }) => columns: [ { name: "name", - logic_operator: "ilike", + logic_operator: "=", value: search, operator: "AND", }, @@ -251,7 +315,7 @@ const ReportAnalysis = ({ openDialog, closeDialog, toggleDialog, projectId }) => return ( <> - Report Analysis + Report Analysis @@ -282,15 +346,13 @@ const ReportAnalysis = ({ openDialog, closeDialog, toggleDialog, projectId }) => - + setSearch(val)} placeholder="Select Activity" filterOption={(input, option) => + option.children.toLowerCase().indexOf(input.toLowerCase()) >= 0 + } style={{ width: 200 }}> + {groupedActivity && groupedActivity.map((res, index) => ( + {`${res.name}`} + ))} + @@ -321,7 +383,7 @@ const ReportAnalysis = ({ openDialog, closeDialog, toggleDialog, projectId }) => option.children.toLowerCase().indexOf(input.toLowerCase()) >= 0 } style={{ width: 200 }}> {hrList && hrList.map(res => ( - {`${res.name}`} + {`${res.join_first_name}`} ))} @@ -342,7 +404,7 @@ const ReportAnalysis = ({ openDialog, closeDialog, toggleDialog, projectId }) => - Close + Close