diff --git a/src/views/SimproV2/CreatedProyek/ReportAnalysis.js b/src/views/SimproV2/CreatedProyek/ReportAnalysis.js index d797a83..581cb0c 100644 --- a/src/views/SimproV2/CreatedProyek/ReportAnalysis.js +++ b/src/views/SimproV2/CreatedProyek/ReportAnalysis.js @@ -1,25 +1,142 @@ -import React, {useState} from 'react' -import { Modal, ModalHeader, ModalBody, ModalFooter, Card, CardHeader, CardBody, Table } from 'reactstrap'; +import React, {useState, useEffect} from 'react' +import { Modal, ModalHeader, ModalBody, ModalFooter, Card, CardHeader, CardBody } from 'reactstrap'; import { TabContent, TabPane, Nav, NavItem, NavLink, Row, Col, Input } from 'reactstrap'; import { Button } from 'reactstrap'; +import axios from "../../../const/interceptorApi"; +import { + NotificationManager, +} from "react-notifications"; +import { BASE_SIMPRO_LUMEN } from "../../../const/ApiConst"; import 'antd/dist/antd.css'; import './style.css' +import { Select, Table } from 'antd'; +const { Option } = Select - - const ReportAnalysis = ({ openDialog, closeDialog, toggleDialog }) => { +const ReportAnalysis = ({ openDialog, closeDialog, toggleDialog }) => { + const token = localStorage.getItem("token"); const [activeTab, setActiveTab] = useState('1'); const [search, setSearch] = useState(''); + const [dataTable, setDatatable] = useState([]); + const [dataTableActivityToHr, setDataTableActivityToHr] = useState([]); + const [hrList, setHrList] = useState([]); + const [selectedHr, setSelectedHr] = useState(null); + const toggle = (tab) => { if (activeTab !== tab) { setActiveTab(tab); } }; + const HEADER = { + headers: { + "Content-Type": "application/json", + Authorization: `Bearer ${token}`, + }, + }; + + const columns = [ + {title: "Activity Name", dataIndex: "name", key: "name"} + ] + + const columnActivityToHr = [ + {title: "Activity Name", dataIndex: "join_first_name", key: "join_first_name"} + ] + + useEffect(() => { + if (search) { + getDataActivity() + } + }, [search]); + + useEffect(() => { + if (selectedHr) { + getDataActivityToHr() + } + }, [selectedHr]); + + useEffect(() => { + getDataHr() + }, []); + const handleSearch = (e) => { const value = e.target.value; setSearch(value); }; + const getDataHr = async () => { + const result = await axios + .get(`${BASE_SIMPRO_LUMEN}/human-resource/list`, HEADER) + .then((res) => res) + .catch((error) => error.response); + + if (result && result.data && result.data.code == 200) { + let dataRes = result.data.data || []; + setHrList(dataRes); + } else { + NotificationManager.error("Gagal Mengambil Data!!", "Failed"); + } + } + const getDataActivityToHr = async () => { + const payload = { + columns: [ + { + name: "user_id", + logic_operator: "=", + value: selectedHr, + operator: "AND", + }, + ], + joins: [ + { + name: "m_activity", + column_join: "activity_id", + column_results: ["name"] + } + ], + orders: { columns: ["id"], ascending: false }, + paging: { start: 0, length: -1 }, + }; + + const result = await axios + .post(`${BASE_SIMPRO_LUMEN}/user-to-activity/search-analysis`, payload, HEADER) + .then((res) => res) + .catch((error) => error.response); + + if (result && result.data && result.data.code == 200) { + let dataRes = result.data.data || []; + setDataTableActivityToHr(dataRes); + } else { + NotificationManager.error("Gagal Mengambil Data!!", "Failed"); + } + }; + + const getDataActivity = async () => { + const payload = { + columns: [ + { + name: "name", + logic_operator: "ilike", + value: search, + operator: "AND", + }, + ], + orders: { columns: ["id"], ascending: false }, + paging: { start: 0, length: -1 }, + }; + + const result = await axios + .post(`${BASE_SIMPRO_LUMEN}/activity/search`, payload, HEADER) + .then((res) => res) + .catch((error) => error.response); + + if (result && result.data && result.data.code == 200) { + let dataRes = result.data.data || []; + + setDatatable(dataRes); + } else { + NotificationManager.error("Gagal Mengambil Data!!", "Failed"); + } + }; return ( <> @@ -55,6 +172,8 @@ import './style.css' - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
#First NameLast NameUsername
1MarkOtto@mdo
2JacobThornton@fat
3Larrythe Bird@twitter
+ @@ -108,13 +204,13 @@ import './style.css' - - - - - - - + @@ -124,36 +220,13 @@ import './style.css' Hello World -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
#First NameLast NameUsername
1MarkOtto@mdo
2JacobThornton@fat
3Larrythe Bird@twitter
+