diff --git a/src/pages/Membership/DetailUser.js b/src/pages/Membership/DetailUser.js index 0e58d21..35a5b06 100644 --- a/src/pages/Membership/DetailUser.js +++ b/src/pages/Membership/DetailUser.js @@ -171,20 +171,17 @@ export const DetailUser = observer(() => { } modalLoader.setLoading(true); try { - const response = await store.transaction.exportTransaction(store.membership.dataDetail.id, dataDate) - console.log('responseiniyak', response); - message.success("Success export"); + await store.transaction.exportTransaction(store.membership.dataDetail, dataDate) + // console.log('responseiniyak', response); + // message.success("Success export"); setModalExport(false); modalLoader.setLoading(false); - return response; } catch (e) { + setModalExport(false); console.error(e, "apa errornya"); message.error(e.response?.body?.message || "Failed to export"); - setModalExport(false); modalLoader.setLoading(false); } - setModalExport(false); - modalLoader.setLoading(false); }; const columns = [ @@ -563,17 +560,19 @@ export const DetailUser = observer(() => { )} {store.authentication.userData.role === "Admin" && ( + <> - )} + + )} diff --git a/src/pages/Profile/Profile.js b/src/pages/Profile/Profile.js index 5c3b7ce..3d9cf97 100644 --- a/src/pages/Profile/Profile.js +++ b/src/pages/Profile/Profile.js @@ -23,7 +23,7 @@ import { BreadcumbComponent } from "../../component/BreadcumbComponent"; import { LINKS } from "../../routes/app"; import { useStore } from "../../utils/useStore"; import { observer } from "mobx-react-lite"; -import { FilterOutlined } from "@ant-design/icons"; +import { FilterOutlined, ExportOutlined } from "@ant-design/icons"; import { format, parseISO } from "date-fns"; import { appConfig } from "../../config/app"; import { ModalLoaderContext } from "../../utils/modal"; @@ -34,12 +34,14 @@ const { RangePicker } = DatePicker; export const Profile = observer(() => { const store = useStore(); const [form] = Form.useForm(); + const [formExport] = Form.useForm(); const { id } = useParams(); const modalLoader = useContext(ModalLoaderContext); const [filterStart, setFilterStart] = useState([]); const [filterEnd, setFilterEnd] = useState([]); const [actionFilter, setAction] = useState(false); const [visible, setVisible] = useState(false); + const [modalExport, setModalExport] = useState(false); const routeData = [ { @@ -383,6 +385,27 @@ export const Profile = observer(() => { setVisible(false); form.resetFields(); }; + + const handleSubmitExport = async () => { + const date = formExport.getFieldsValue(); + const dataDate ={ + dateStart: moment(date.tanggal_export).format("YYYY-MM-DD") + } + modalLoader.setLoading(true); + try { + await store.transaction.exportTransaction(store.authentication.profileData, dataDate) + // console.log('responseiniyak', response); + // message.success("Success export"); + setModalExport(false); + modalLoader.setLoading(false); + } catch (e) { + setModalExport(false); + console.error(e, "apa errornya"); + message.error(e.response?.body?.message || "Failed to export"); + modalLoader.setLoading(false); + } + }; + return (
{ : dataRoute } /> - + {console.log(store.authentication.profileData?.userDetail,':)')} + + {store.authentication.userData.role === "Admin Partner" ? ( + Profile + + + + + + + ): + Profile} @@ -982,6 +1029,28 @@ export const Profile = observer(() => { + { + setModalExport(false); + }} + > + + +
+ + + +
+ +
+
); }); diff --git a/src/store/transaction.js b/src/store/transaction.js index 7e51aad..1ac8c0a 100644 --- a/src/store/transaction.js +++ b/src/store/transaction.js @@ -5,6 +5,7 @@ import axios from "axios"; import {appConfig} from "../config/app"; import fileDownload from "react-file-download"; import {TokenUtil} from "../utils/token"; +import {message} from "antd"; export class Transaction { page = 0; @@ -273,24 +274,26 @@ export class Transaction { } } - async exportTransaction(id,dateStart) { + exportTransaction(data,date) { try { axios({ - url: appConfig.apiUrl + `/excel/history-user/export/${id}`, + url: appConfig.apiUrl + `/excel/history-user/export/${data.id}`, headers: {"Authorization" : `Bearer ${TokenUtil.accessToken}`}, method: 'POST', - data: dateStart, + data: date, responseType: 'blob' }).then((response) => { var fileDownload = require('react-file-download'); - fileDownload(response.data, `Mutasi Transaki IRS 2022-12-08.xlsx`); + message.success("Success export"); + fileDownload(response.data, `Mutasi Transaki ${data.userDetail.name} ${date.dateStart}.xlsx`); return fileDownload; }).catch(function (error) { - return error.message; + message.error("No data to export"); + return error; }); } catch (e) { - console.error(e) + console.error(e,':)') } } }