Merge branch 'develop' into 'devops-staging'
Develop See merge request empatnusabangsa/ppob/ppob-frontend!8
This commit is contained in:
commit
eba489971c
|
@ -1,23 +1,11 @@
|
|||
import React, { useContext, useEffect, useState } from "react";
|
||||
import {
|
||||
Button,
|
||||
Form,
|
||||
Input,
|
||||
message,
|
||||
Modal,
|
||||
Select,
|
||||
Space,
|
||||
Table,
|
||||
Tag,
|
||||
List,
|
||||
Divider,
|
||||
} from "antd";
|
||||
import { observer } from "mobx-react-lite";
|
||||
import { ExclamationCircleOutlined } from "@ant-design/icons";
|
||||
import { useHistory } from "react-router-dom";
|
||||
import { useStore } from "../utils/useStore";
|
||||
import { LINKS } from "../routes/app";
|
||||
import { ModalLoaderContext } from "../utils/modal";
|
||||
import React, {useContext, useState} from "react";
|
||||
import {Button, Divider, Form, Input, List, message, Modal, Space, Table, Tag,} from "antd";
|
||||
import {observer} from "mobx-react-lite";
|
||||
import {ExclamationCircleOutlined} from "@ant-design/icons";
|
||||
import {useHistory} from "react-router-dom";
|
||||
import {useStore} from "../utils/useStore";
|
||||
import {LINKS} from "../routes/app";
|
||||
import {ModalLoaderContext} from "../utils/modal";
|
||||
|
||||
export const PartnerComponent = observer((props) => {
|
||||
const store = useStore();
|
||||
|
@ -223,15 +211,15 @@ export const PartnerComponent = observer((props) => {
|
|||
pagination={{
|
||||
onChange: async (page) => {
|
||||
store.partner.pageSize = page.pageSize;
|
||||
store.partner.page = page.current;
|
||||
store.partner.page = page.current - 1;
|
||||
modalLoader.setLoading(true);
|
||||
await store.partner.getData();
|
||||
modalLoader.setLoading(false);
|
||||
},
|
||||
pageSize: store.partner.pageSize,
|
||||
total: store.partner.total_data,
|
||||
current: store.partner.page,
|
||||
style: { marginBottom: "1rem", marginRight: "1rem" },
|
||||
current: store.partner.page + 1,
|
||||
style: {marginBottom: "1rem", marginRight: "1rem"},
|
||||
}}
|
||||
dataSource={store.partner.data}
|
||||
style={{ padding: 0 }}
|
||||
|
|
|
@ -281,15 +281,15 @@ export const ProductComponent = observer((props) => {
|
|||
pagination={{
|
||||
onChange: async (page) => {
|
||||
store.product.pageSize = page.pageSize;
|
||||
store.product.page = page.current;
|
||||
store.product.page = page.current - 1;
|
||||
modalLoader.setLoading(true);
|
||||
await store.product.getData();
|
||||
modalLoader.setLoading(false);
|
||||
},
|
||||
pageSize: store.product.pageSize,
|
||||
total: store.product.total_data,
|
||||
current: store.product.page,
|
||||
style: { marginBottom: "1rem", marginRight: "1rem" },
|
||||
current: store.product.page + 1,
|
||||
style: {marginBottom: "1rem", marginRight: "1rem"},
|
||||
}}
|
||||
dataSource={store.product.data}
|
||||
style={{ padding: 0 }}
|
||||
|
|
|
@ -125,15 +125,15 @@ export const SubcategoryComponent = observer((props) => {
|
|||
pagination={{
|
||||
onChange: async (page) => {
|
||||
store.subcategory.pageSize = page.pageSize;
|
||||
store.subcategory.page = page.current;
|
||||
store.subcategory.page = page.current - 1;
|
||||
modalLoader.setLoading(true);
|
||||
await store.subcategory.getData();
|
||||
modalLoader.setLoading(false);
|
||||
},
|
||||
pageSize: store.subcategory.pageSize,
|
||||
total: store.subcategory.total_data,
|
||||
current: store.subcategory.page,
|
||||
style: { marginBottom: "1rem", marginRight: "1rem" },
|
||||
current: store.subcategory.page + 1,
|
||||
style: {marginBottom: "1rem", marginRight: "1rem"},
|
||||
}}
|
||||
dataSource={store.subcategory.data}
|
||||
style={{ padding: 0 }}
|
||||
|
|
|
@ -1,23 +1,12 @@
|
|||
import React, { useContext, useState } from "react";
|
||||
import {
|
||||
Button,
|
||||
Form,
|
||||
Input,
|
||||
message,
|
||||
Modal,
|
||||
Space,
|
||||
Table,
|
||||
Tag,
|
||||
List,
|
||||
Divider,
|
||||
} from "antd";
|
||||
import { observer } from "mobx-react-lite";
|
||||
import { ExclamationCircleOutlined } from "@ant-design/icons";
|
||||
import { useHistory } from "react-router-dom";
|
||||
import { useStore } from "../utils/useStore";
|
||||
import { LINKS } from "../routes/app";
|
||||
import { TopupsaldoModal } from "./TopupsaldoModal";
|
||||
import { ModalLoaderContext } from "../utils/modal";
|
||||
import React, {useContext, useState} from "react";
|
||||
import {Button, Divider, Form, Input, List, message, Modal, Space, Table, Tag,} from "antd";
|
||||
import {observer} from "mobx-react-lite";
|
||||
import {ExclamationCircleOutlined} from "@ant-design/icons";
|
||||
import {useHistory} from "react-router-dom";
|
||||
import {useStore} from "../utils/useStore";
|
||||
import {LINKS} from "../routes/app";
|
||||
import {TopupsaldoModal} from "./TopupsaldoModal";
|
||||
import {ModalLoaderContext} from "../utils/modal";
|
||||
|
||||
export const SupplierComponent = observer((props) => {
|
||||
const store = useStore();
|
||||
|
@ -231,15 +220,15 @@ export const SupplierComponent = observer((props) => {
|
|||
pagination={{
|
||||
onChange: async (page) => {
|
||||
store.supplier.pageSize = page.pageSize;
|
||||
store.supplier.page = page.current;
|
||||
store.supplier.page = page.current - 1;
|
||||
modalLoader.setLoading(true);
|
||||
await store.supplier.getData();
|
||||
modalLoader.setLoading(false);
|
||||
},
|
||||
pageSize: store.supplier.pageSize,
|
||||
total: store.supplier.total_data,
|
||||
current: store.supplier.page,
|
||||
style: { marginBottom: "1rem", marginRight: "1rem" },
|
||||
current: store.supplier.page + 1,
|
||||
style: {marginBottom: "1rem", marginRight: "1rem"},
|
||||
}}
|
||||
dataSource={store.supplier.data}
|
||||
style={{ padding: 0 }}
|
||||
|
|
|
@ -207,22 +207,22 @@ export const DesktopLayout = observer(() => {
|
|||
)}
|
||||
<SubMenu
|
||||
key="payback-main"
|
||||
icon={<ProfileOutlined />}
|
||||
title="Payback"
|
||||
icon={<ProfileOutlined/>}
|
||||
title="Created"
|
||||
>
|
||||
{store.authentication.userData.role !== "Retail" && (
|
||||
<Menu.Item key="payback-to-user">
|
||||
<Link to={LINKS.PAYBACK}>
|
||||
<PayCircleOutlined />
|
||||
<span>Payback To</span>
|
||||
<PayCircleOutlined/>
|
||||
<span>Confirmation</span>
|
||||
</Link>
|
||||
</Menu.Item>
|
||||
)}
|
||||
{store.authentication.userData.role !== "Admin" && (
|
||||
<Menu.Item key="payback-from-user">
|
||||
<Link to={LINKS.PAYBACK_FROM_USER}>
|
||||
<Link to={LINKS.PAYBACK_CREATED}>
|
||||
<AlipayOutlined/>
|
||||
<span>Payback</span>
|
||||
<span>Created</span>
|
||||
</Link>
|
||||
</Menu.Item>
|
||||
)}
|
||||
|
|
|
@ -131,16 +131,16 @@ export const MenuList = observer((props) => {
|
|||
{store.authentication.userData.role !== "Retail" && (
|
||||
<Menu.Item key="payback-to-user">
|
||||
<Link to={LINKS.PAYBACK}>
|
||||
<PayCircleOutlined />
|
||||
<span>Payback To</span>
|
||||
<PayCircleOutlined/>
|
||||
<span>Confirmation</span>
|
||||
</Link>
|
||||
</Menu.Item>
|
||||
)}
|
||||
{store.authentication.userData.role !== "Admin" && (
|
||||
<Menu.Item key="payback-from-user">
|
||||
<Link to={LINKS.PAYBACK_FROM_USER}>
|
||||
<Link to={LINKS.PAYBACK_CREATED}>
|
||||
<AlipayOutlined/>
|
||||
<span>Payback</span>
|
||||
<span>Created</span>
|
||||
</Link>
|
||||
</Menu.Item>
|
||||
)}
|
||||
|
|
|
@ -340,15 +340,15 @@ export const Membership = observer(() => {
|
|||
pagination={{
|
||||
onChange: async (page) => {
|
||||
store.membership.pageSize = page.pageSize;
|
||||
store.membership.page = page.current;
|
||||
store.membership.page = page.current - 1;
|
||||
modalLoader.setLoading(true);
|
||||
await getData();
|
||||
modalLoader.setLoading(false);
|
||||
},
|
||||
pageSize: store.membership.pageSize,
|
||||
total: store.membership.total_data,
|
||||
current: store.membership.page,
|
||||
style: { marginBottom: "1rem", marginRight: "1rem" },
|
||||
current: store.membership.page + 1,
|
||||
style: {marginBottom: "1rem", marginRight: "1rem"},
|
||||
}}
|
||||
dataSource={store.membership.data}
|
||||
style={{ padding: 0 }}
|
||||
|
|
|
@ -1,12 +1,13 @@
|
|||
import React, {useContext, useEffect} from "react";
|
||||
import {Button, Card, Col, Divider, Image, Input, List, message, Row, Space, Table,} from "antd";
|
||||
import {Button, Card, Col, Divider, Image, Input, List, message, Modal, Row, Space, Table,} from "antd";
|
||||
import {useStore} from "../../utils/useStore";
|
||||
import {observer} from "mobx-react-lite";
|
||||
import {CheckCircleOutlined, CloseOutlined, FilterOutlined,} from "@ant-design/icons";
|
||||
import {CheckCircleOutlined, CheckOutlined, CloseOutlined, FilterOutlined, StopOutlined,} from "@ant-design/icons";
|
||||
import {BreadcumbComponent} from "../../component/BreadcumbComponent";
|
||||
import {LINKS} from "../../routes/app";
|
||||
import {ModalLoaderContext} from "../../utils/modal";
|
||||
import {appConfig} from "../../config/app";
|
||||
import {capitalize} from "lodash";
|
||||
|
||||
const {Search} = Input;
|
||||
|
||||
|
@ -18,7 +19,7 @@ export const Payback = observer(() => {
|
|||
const init = async () => {
|
||||
try {
|
||||
modalLoader.setLoading(true);
|
||||
await store.payback.getData();
|
||||
await store.payback.getDataConfirmation();
|
||||
modalLoader.setLoading(false);
|
||||
} catch (e) {
|
||||
modalLoader.setLoading(false);
|
||||
|
@ -33,7 +34,6 @@ export const Payback = observer(() => {
|
|||
init();
|
||||
}, []);
|
||||
|
||||
|
||||
const columns = [
|
||||
{
|
||||
title: "Picture",
|
||||
|
@ -67,7 +67,19 @@ export const Payback = observer(() => {
|
|||
<Space size="middle">
|
||||
<Button
|
||||
onClick={async () => {
|
||||
await handleAction(record, "accept");
|
||||
Modal.confirm({
|
||||
title: `Are you sure Accept this submission?`,
|
||||
icon: <CheckOutlined/>,
|
||||
okText: "Accept",
|
||||
cancelText: "Cancel",
|
||||
okType: "primary",
|
||||
onOk() {
|
||||
handleAction(record.id, "accept");
|
||||
},
|
||||
onCancel() {
|
||||
console.log("Cancel");
|
||||
},
|
||||
})
|
||||
}}
|
||||
icon={<CheckCircleOutlined/>}
|
||||
style={{
|
||||
|
@ -80,7 +92,20 @@ export const Payback = observer(() => {
|
|||
</Button>
|
||||
<Button
|
||||
onClick={async () => {
|
||||
await handleAction(record, "reject");
|
||||
Modal.confirm({
|
||||
title: `Are you sure Reject this submission?`,
|
||||
icon: <StopOutlined/>,
|
||||
okText: "Reject",
|
||||
cancelText: "Cancel",
|
||||
okType: "primary",
|
||||
onOk() {
|
||||
handleAction(record.id, "reject");
|
||||
},
|
||||
onCancel() {
|
||||
console.log("Cancel");
|
||||
},
|
||||
})
|
||||
|
||||
}}
|
||||
icon={<CloseOutlined/>}
|
||||
style={{
|
||||
|
@ -105,26 +130,25 @@ export const Payback = observer(() => {
|
|||
},
|
||||
{
|
||||
route: LINKS.PAYBACK,
|
||||
name: <span style={{fontWeight: "bold"}}>Payback</span>,
|
||||
name: <span style={{fontWeight: "bold"}}>Payback Confirmation</span>,
|
||||
},
|
||||
];
|
||||
|
||||
const onSubmit = async (data) => {
|
||||
const handleAction = async (id, type) => {
|
||||
modalLoader.setLoading(true);
|
||||
try {
|
||||
// await store.payback.create(data);
|
||||
// message.success("Success Add New Member");
|
||||
// await store.payback.getData();
|
||||
const response = await store.payback.confirmPayback(id, {status: capitalize(type)});
|
||||
if (response.body.status !== 201) {
|
||||
message.error(`Failed ${capitalize(type)} Payback`);
|
||||
}
|
||||
message.success(`Success ${capitalize(type)} Payback`);
|
||||
} catch (e) {
|
||||
console.error(e, "apa errornya");
|
||||
message.error("Failed Add Member");
|
||||
message.error("Failed Handler Action Payback");
|
||||
}
|
||||
modalLoader.setLoading(false);
|
||||
};
|
||||
|
||||
const handleAction = async (record, type) => {
|
||||
};
|
||||
|
||||
return (
|
||||
<div className={["ppob-container"].join(" ")}>
|
||||
<BreadcumbComponent data={routeData}/>
|
||||
|
@ -146,16 +170,6 @@ export const Payback = observer(() => {
|
|||
marginBottom: store.ui.mediaQuery.isMobile ? 10 : 0,
|
||||
}}
|
||||
/>
|
||||
{/* {store.authentication.userData.role !== "Admin" && (
|
||||
<Button
|
||||
onClick={() => {
|
||||
setInitialData({});
|
||||
setVisibleModal(true);
|
||||
}}
|
||||
>
|
||||
<PlusSquareOutlined /> New
|
||||
</Button>
|
||||
)} */}
|
||||
</Col>
|
||||
</Row>
|
||||
{store.ui.mediaQuery.isDesktop && (
|
||||
|
@ -163,23 +177,23 @@ export const Payback = observer(() => {
|
|||
key="1"
|
||||
hasEmpty
|
||||
columns={columns}
|
||||
dataSource={store.payback.data}
|
||||
dataSource={store.payback.dataConfirmation}
|
||||
bordered
|
||||
// pagination={{
|
||||
// pageSize: store.payback.page,
|
||||
// total: store.payback.total_data,
|
||||
// current: store.payback.pageSize + 1,
|
||||
// showSizeChanger: true,
|
||||
// simple: false
|
||||
// }}
|
||||
// onChange={async (page) => {
|
||||
// let pageNumber = page.current;
|
||||
// store.payback.pageSize = page.pageSize;
|
||||
// store.payback.page = pageNumber - 1;
|
||||
// modalLoader.setLoading(true);
|
||||
// await store.payback.getData();
|
||||
// modalLoader.setLoading(false);
|
||||
// }}
|
||||
pagination={{
|
||||
pageSize: store.payback.pageSizeConfirmation,
|
||||
total: store.payback.totalDataConfirmation,
|
||||
current: store.payback.pageSizeConfirmation + 1,
|
||||
showSizeChanger: true,
|
||||
simple: false
|
||||
}}
|
||||
onChange={async (page) => {
|
||||
let pageNumber = page.current;
|
||||
store.payback.pageSizeConfirmation = page.pageSize;
|
||||
store.payback.pageConfirmation = pageNumber - 1;
|
||||
modalLoader.setLoading(true);
|
||||
await store.payback.getDataConfirmation();
|
||||
modalLoader.setLoading(false);
|
||||
}}
|
||||
/>
|
||||
)}
|
||||
|
||||
|
@ -187,20 +201,20 @@ export const Payback = observer(() => {
|
|||
<List
|
||||
itemLayout="horizontal"
|
||||
position={"top"}
|
||||
// pagination={{
|
||||
// onChange: async (page) => {
|
||||
// store.payback.pageSize = page.pageSize;
|
||||
// store.payback.page = page.current;
|
||||
// modalLoader.setLoading(true);
|
||||
// await store.payback.getData();
|
||||
// modalLoader.setLoading(false);
|
||||
// },
|
||||
// pageSize: store.payback.pageSize,
|
||||
// total: store.payback.total_data,
|
||||
// current: store.payback.page,
|
||||
// style: {marginBottom: "1rem", marginRight: "1rem"},
|
||||
// }}
|
||||
dataSource={store.payback.data}
|
||||
pagination={{
|
||||
onChange: async (page) => {
|
||||
store.payback.pageSizeConfirmation = page.pageSize;
|
||||
store.payback.pageConfirmation = page.current - 1;
|
||||
modalLoader.setLoading(true);
|
||||
await store.payback.getDataConfirmation();
|
||||
modalLoader.setLoading(false);
|
||||
},
|
||||
pageSize: store.payback.pageSizeConfirmation,
|
||||
total: store.payback.totalDataConfirmation,
|
||||
current: store.payback.pageConfirmation + 1,
|
||||
style: {marginBottom: "1rem", marginRight: "1rem"},
|
||||
}}
|
||||
dataSource={store.payback.dataConfirmation}
|
||||
style={{padding: 0}}
|
||||
renderItem={(item) => {
|
||||
return (
|
||||
|
|
|
@ -7,10 +7,11 @@ import {PaybackModal} from "./PaybackModal";
|
|||
import {BreadcumbComponent} from "../../component/BreadcumbComponent";
|
||||
import {LINKS} from "../../routes/app";
|
||||
import {ModalLoaderContext} from "../../utils/modal";
|
||||
import {appConfig} from "../../config/app";
|
||||
|
||||
const {Search} = Input;
|
||||
|
||||
export const PaybackFromUser = observer(() => {
|
||||
export const PaybackCreated = observer(() => {
|
||||
const store = useStore();
|
||||
const [initialData, setInitialData] = useState({});
|
||||
const modalLoader = useContext(ModalLoaderContext);
|
||||
|
@ -20,8 +21,8 @@ export const PaybackFromUser = observer(() => {
|
|||
try {
|
||||
modalLoader.setLoading(true);
|
||||
await Promise.allSettled([
|
||||
store.payback.getDataUser(),
|
||||
store.authentication.getProfile()
|
||||
store.payback.getDataCreated(),
|
||||
store.authentication.getProfile(),
|
||||
]);
|
||||
modalLoader.setLoading(false);
|
||||
} catch (e) {
|
||||
|
@ -37,7 +38,6 @@ export const PaybackFromUser = observer(() => {
|
|||
init();
|
||||
}, []);
|
||||
|
||||
|
||||
const columns = [
|
||||
{
|
||||
title: "Picture",
|
||||
|
@ -45,10 +45,9 @@ export const PaybackFromUser = observer(() => {
|
|||
key: "image_prove",
|
||||
render: (text, record) => (
|
||||
<Image
|
||||
src={record.image_prove}
|
||||
style={{width: 50, height: 50}}
|
||||
shape="circle"
|
||||
alt="avatar"
|
||||
src={`${appConfig.apiUrl}/config/image/${text}`}
|
||||
style={{width: '5vw'}}
|
||||
alt={record.id}
|
||||
/>
|
||||
),
|
||||
},
|
||||
|
@ -70,8 +69,8 @@ export const PaybackFromUser = observer(() => {
|
|||
name: "Home",
|
||||
},
|
||||
{
|
||||
route: LINKS.PAYBACK_FROM_USER,
|
||||
name: <span style={{fontWeight: "bold"}}>Payback User</span>,
|
||||
route: LINKS.PAYBACK_CREATED,
|
||||
name: <span style={{fontWeight: "bold"}}>Payback Created</span>,
|
||||
},
|
||||
];
|
||||
|
||||
|
@ -113,21 +112,21 @@ export const PaybackFromUser = observer(() => {
|
|||
key="1"
|
||||
hasEmpty
|
||||
columns={columns}
|
||||
dataSource={store.payback.dataPaybackUser}
|
||||
dataSource={store.payback.dataCreated}
|
||||
bordered
|
||||
pagination={{
|
||||
pageSize: store.payback.pageSizePaybackUser,
|
||||
total: store.payback.total_dataPaybackUser,
|
||||
current: store.payback.pageSizePaybackUser + 1,
|
||||
pageSize: store.payback.pageSizeCreated,
|
||||
total: store.payback.totalDataCreated,
|
||||
current: store.payback.pageCreated + 1,
|
||||
showSizeChanger: true,
|
||||
simple: false
|
||||
}}
|
||||
onChange={async (page) => {
|
||||
let pageNumber = page.current;
|
||||
store.payback.pageSizePaybackUser = page.pageSize;
|
||||
store.payback.pageSizePaybackUser = pageNumber - 1;
|
||||
store.payback.pageSizeCreated = page.pageSize;
|
||||
store.payback.pageCreated = pageNumber - 1;
|
||||
modalLoader.setLoading(true);
|
||||
//await store.payback.getDataUser();
|
||||
await store.payback.getDataCreated();
|
||||
modalLoader.setLoading(false);
|
||||
}}
|
||||
/>
|
||||
|
@ -139,18 +138,18 @@ export const PaybackFromUser = observer(() => {
|
|||
position={"top"}
|
||||
pagination={{
|
||||
onChange: async (page) => {
|
||||
store.payback.pageSizePaybackUser = page.pageSize;
|
||||
store.payback.pageSizePaybackUser = page.current;
|
||||
store.payback.pageSizeCreated = page.pageSize;
|
||||
store.payback.pageCreated = page.current - 1;
|
||||
modalLoader.setLoading(true);
|
||||
await store.payback.getDataUser();
|
||||
await store.payback.getDataCreated();
|
||||
modalLoader.setLoading(false);
|
||||
},
|
||||
pageSize: store.payback.pageSizePaybackUser,
|
||||
total: store.payback.total_dataPaybackUser,
|
||||
current: store.payback.pageSizePaybackUser,
|
||||
pageSize: store.payback.pageSizeCreated,
|
||||
total: store.payback.totalDataCreated,
|
||||
current: store.payback.pageCreated + 1,
|
||||
style: {marginBottom: "1rem", marginRight: "1rem"},
|
||||
}}
|
||||
dataSource={store.payback.dataPaybackUser}
|
||||
dataSource={store.payback.dataCreated}
|
||||
style={{padding: 0}}
|
||||
renderItem={(item) => {
|
||||
return (
|
|
@ -45,7 +45,6 @@ export const PaybackModal = ({initialData}) => {
|
|||
};
|
||||
|
||||
const handleChange = (info) => {
|
||||
console.log(info, "apa isi onchange")
|
||||
if (info.file.status === 'uploading') {
|
||||
setLoading(true);
|
||||
} else {
|
||||
|
@ -69,7 +68,7 @@ export const PaybackModal = ({initialData}) => {
|
|||
image_prove: responseFilename
|
||||
}
|
||||
await store.payback.create(request);
|
||||
message.success("Success Add Payback");
|
||||
message.success("Success Add Created");
|
||||
} catch (e) {
|
||||
if (e.response?.body?.message) {
|
||||
message.error(e.response.body.message);
|
||||
|
@ -98,7 +97,7 @@ export const PaybackModal = ({initialData}) => {
|
|||
return (
|
||||
<Modal
|
||||
visible={store.payback.visibleModalPayback}
|
||||
title={"Create a new Payback"}
|
||||
title={"Create a new Created"}
|
||||
okText={"Create"}
|
||||
cancelText="Cancel"
|
||||
onCancel={handleCancel}
|
||||
|
|
|
@ -122,7 +122,13 @@ export const Profile = observer(() => {
|
|||
<Title strong level={3} style={styleSaldoTitle}>Saldo</Title>
|
||||
</Col>
|
||||
<Col lg={24} xs={12}>
|
||||
<Text style={styleSaldoContent}>{store.authentication.profileData?.wallet}</Text>
|
||||
<Text style={styleSaldoContent}>{
|
||||
new Intl.NumberFormat("id-ID", {
|
||||
style: "currency",
|
||||
currency: "IDR"
|
||||
})
|
||||
.format(store.authentication.profileData?.wallet || 0)}
|
||||
</Text>
|
||||
</Col>
|
||||
</Row>
|
||||
</Col>
|
||||
|
@ -140,8 +146,23 @@ export const Profile = observer(() => {
|
|||
</Button>
|
||||
<Table
|
||||
columns={columns}
|
||||
dataSource={store.transaction.dataHistoryTransaction}
|
||||
bordered
|
||||
dataSource={store.transaction.dataHistoryTransaction}
|
||||
pagination={{
|
||||
pageSize: store.transaction.pageSizeHistoryTransaction,
|
||||
total: store.transaction.total_dataHistoryTransaction,
|
||||
current: store.transaction.pageHistoryTransaction + 1,
|
||||
showSizeChanger: true,
|
||||
simple: false,
|
||||
}}
|
||||
onChange={async (page) => {
|
||||
let pageNumber = page.current;
|
||||
store.transaction.pageSizeHistoryTransaction = page.pageSize;
|
||||
store.transaction.pageHistoryTransaction = pageNumber - 1;
|
||||
modalLoader.setLoading(true);
|
||||
await store.transaction.getDataHistoryTransaction();
|
||||
modalLoader.setLoading(false);
|
||||
}}
|
||||
/>
|
||||
</div>
|
||||
</Col>
|
||||
|
|
|
@ -12,7 +12,7 @@ import {Partner} from "../pages/Config/Partner";
|
|||
import {Supplier} from "../pages/Config/Supplier";
|
||||
import {Category} from "../pages/Product/Category";
|
||||
import {Payback} from "../pages/Payback/Payback";
|
||||
import {PaybackFromUser} from "../pages/Payback/PaybackFromUser";
|
||||
import {PaybackCreated} from "../pages/Payback/PaybackCreated";
|
||||
import {Subcategory} from "../pages/Product/Subcategory";
|
||||
|
||||
export const LINKS = {
|
||||
|
@ -27,7 +27,7 @@ export const LINKS = {
|
|||
SUPPLIER: "/app/supplier",
|
||||
CATEGORY: "/app/category",
|
||||
PAYBACK: "/app/payback",
|
||||
PAYBACK_FROM_USER: "/app/payback-from-user",
|
||||
PAYBACK_CREATED: "/app/payback-created",
|
||||
SUBCATEGORY: "/app/subcategory",
|
||||
USER_DETAIL: "/app/user-detail",
|
||||
PRODUCT_DETAIL: "/app/product-detail",
|
||||
|
@ -47,8 +47,8 @@ export const AppRoute = () => {
|
|||
<Route path={LINKS.COMMISSION}>
|
||||
<Commission/>
|
||||
</Route>
|
||||
<Route path={LINKS.PAYBACK_FROM_USER}>
|
||||
<PaybackFromUser/>
|
||||
<Route path={LINKS.PAYBACK_CREATED}>
|
||||
<PaybackCreated/>
|
||||
</Route>
|
||||
<Route path={LINKS.CATEGORY}>
|
||||
<Category/>
|
||||
|
|
|
@ -2,50 +2,50 @@ import {makeAutoObservable} from "mobx";
|
|||
import {http} from "../utils/http";
|
||||
|
||||
export class Payback {
|
||||
page = 0;
|
||||
pageSize = 10;
|
||||
data = [];
|
||||
total_data = 0;
|
||||
pageCreated = 0;
|
||||
pageSizeCreated = 10;
|
||||
dataCreated = [];
|
||||
totalDataCreated = 0;
|
||||
filterCategory = null;
|
||||
visibleModalPayback = false;
|
||||
|
||||
pagePaybackUser = 0;
|
||||
pageSizePaybackUser = 10;
|
||||
dataPaybackUser = [];
|
||||
total_dataPaybackUser = 0;
|
||||
pageConfirmation = 0;
|
||||
pageSizeConfirmation = 10;
|
||||
dataConfirmation = [];
|
||||
totalDataConfirmation = 0;
|
||||
|
||||
constructor(ctx) {
|
||||
this.ctx = ctx;
|
||||
makeAutoObservable(this);
|
||||
}
|
||||
|
||||
async getData() {
|
||||
async getDataCreated() {
|
||||
try {
|
||||
const response = await http.get(
|
||||
`/transaction/deposit-return?page=${this.page}&pageSize=${this.pageSize}`
|
||||
`/transaction/deposit-return?page=${this.pageCreated}&pageSize=${this.pageSizeCreated}`
|
||||
);
|
||||
this.data = response.body.data.map((item, idx) => {
|
||||
this.dataCreated = response.body.data.map((item, idx) => {
|
||||
item.key = idx;
|
||||
return item;
|
||||
}) ?? [];
|
||||
|
||||
this.total_data = response.body.count ?? 0;
|
||||
this.totalDataCreated = response.body.count ?? 0;
|
||||
} catch (e) {
|
||||
console.error(e);
|
||||
}
|
||||
}
|
||||
|
||||
async getDataUser() {
|
||||
async getDataConfirmation() {
|
||||
try {
|
||||
const response = await http.get(
|
||||
`/transaction/deposit-return/confirmation?page=${this.pagePaybackUser}&pageSize=${this.pageSizePaybackUser}`
|
||||
`/transaction/deposit-return/confirmation?page=${this.pageConfirmation}&pageSize=${this.pageSizeConfirmation}`
|
||||
);
|
||||
this.dataPaybackUser = response.body.data.map((item, idx) => {
|
||||
this.dataConfirmation = response.body.data.map((item, idx) => {
|
||||
item.key = idx;
|
||||
return item;
|
||||
}) ?? [];
|
||||
|
||||
this.total_dataPaybackUser = response.body.count ?? 0;
|
||||
this.totalDataConfirmation = response.body.count ?? 0;
|
||||
} catch (e) {
|
||||
console.error(e);
|
||||
}
|
||||
|
@ -54,7 +54,7 @@ export class Payback {
|
|||
async update(id, data) {
|
||||
try {
|
||||
const response = await http.put(`/config/commission/${id}`).send(data);
|
||||
await this.getData();
|
||||
await this.getDataCreated();
|
||||
return response;
|
||||
} catch (e) {
|
||||
console.error(e);
|
||||
|
@ -64,7 +64,7 @@ export class Payback {
|
|||
async delete(id) {
|
||||
try {
|
||||
const response = await http.del(`/product/${id}`);
|
||||
await this.getData();
|
||||
await this.getDataCreated();
|
||||
return response;
|
||||
} catch (e) {
|
||||
console.error(e);
|
||||
|
@ -74,7 +74,20 @@ export class Payback {
|
|||
async create(data) {
|
||||
try {
|
||||
const response = await http.post("/transaction/deposit-return").send(data);
|
||||
await this.getData();
|
||||
await this.getDataCreated();
|
||||
return response;
|
||||
} catch (e) {
|
||||
console.error(e);
|
||||
}
|
||||
}
|
||||
|
||||
async confirmPayback(id, data) {
|
||||
try {
|
||||
const response = await http.put(`/transaction/deposit-return/confirmation/${id}`).send(data);
|
||||
await Promise.all([
|
||||
this.getDataConfirmation(),
|
||||
this.getDataCreated()
|
||||
])
|
||||
return response;
|
||||
} catch (e) {
|
||||
console.error(e);
|
||||
|
|
|
@ -23,7 +23,7 @@ export class Transaction {
|
|||
|
||||
pageHistoryTransaction = 0;
|
||||
pageHistoryTopUp = 0;
|
||||
// pageSizeHistoryTransaction = 10
|
||||
pageSizeHistoryTransaction = 10
|
||||
dataHistoryTransaction = [];
|
||||
total_dataHistoryTransaction = 0;
|
||||
|
||||
|
@ -71,7 +71,7 @@ export class Transaction {
|
|||
|
||||
async getDataHistoryTransaction() {
|
||||
try {
|
||||
const response = await http.get(`/transaction/history?page=${this.pageHistoryTransaction}`);
|
||||
const response = await http.get(`/transaction/history?page=${this.pageHistoryTransaction}&pageSize=${this.pageSizeHistoryTransaction}`);
|
||||
|
||||
this.dataHistoryTransaction = response.body.data ?? []
|
||||
this.total_dataHistoryTransaction = response?.body?.count ?? 0
|
||||
|
|
Loading…
Reference in New Issue
Block a user