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