Merge branch 'develop' into 'main'

Develop

See merge request empatnusabangsa/ppob/ppob-frontend!132
This commit is contained in:
ilham dwi pratama
2022-02-04 12:02:50 +00:00
27 changed files with 1165 additions and 540 deletions

View File

@@ -42,6 +42,7 @@ export const DetailUser = observer(() => {
const [filterStart, setFilterStart] = useState([]);
const [filterEnd, setFilterEnd] = useState([]);
const [visibleHis, setVisibleHis] = useState(true);
const [actionFilter, setAction] = useState(false);
useEffect(() => {
(async () => {
@@ -161,7 +162,12 @@ export const DetailUser = observer(() => {
};
const columns = [
{
title: "Amount",
title: "Pengirim",
dataIndex: "sender_name",
key: "sender_name",
},
{
title: "Nominal",
dataIndex: "amount",
key: "amount",
render: (text) =>
@@ -171,7 +177,7 @@ export const DetailUser = observer(() => {
}).format(text),
},
{
title: "Transaction Date",
title: "Tanggal Transaksi",
dataIndex: "transaction_date",
key: "transaction_date",
render: (text, record) => {
@@ -191,7 +197,7 @@ export const DetailUser = observer(() => {
key: "name",
},
{
title: "Price",
title: "Harga",
dataIndex: "price",
key: "price",
render: (text) =>
@@ -321,19 +327,31 @@ export const DetailUser = observer(() => {
form.resetFields();
setFilterStart([]);
setFilterEnd([]);
await store.transaction.getDetailHistoryTransaction(
store.authentication.dataProfit.id
);
actionFilter === true
? await store.transaction.getDataHistoryTopUp(id)
: await store.transaction.getDetailHistoryTransaction(
store.authentication.dataProfit.id
);
// await store.transaction.getDetailHistoryTransaction(
// store.authentication.dataProfit.id
// );
store.transaction.visibleModalFilterTransaction = false;
setAction(false);
};
const handleCancelFilter = async () => {
store.transaction.filterStart = null;
store.transaction.filterEnd = null;
store.transaction.visibleModalFilterTransaction = false;
await store.transaction.getDetailHistoryTransaction(
store.authentication.dataProfit.id
);
actionFilter === true
? await store.transaction.getDataHistoryTopUp(id)
: await store.transaction.getDetailHistoryTransaction(
store.authentication.dataProfit.id
);
// await store.transaction.getDetailHistoryTransaction(
// store.authentication.dataProfit.id
// );
setAction(false);
};
const handleSubmitFilter = async () => {
@@ -345,13 +363,16 @@ export const DetailUser = observer(() => {
"YYYY-MM-DD HH:mm:ss"
);
modalLoader.setLoading(true);
await store.transaction.getDetailHistoryTransaction(
store.authentication.dataProfit.id
);
actionFilter === true
? await store.transaction.getDataHistoryTopUp(id)
: await store.transaction.getDetailHistoryTransaction(
store.authentication.dataProfit.id
);
modalLoader.setLoading(false);
store.transaction.filterStart = null;
store.transaction.filterEnd = null;
store.transaction.visibleModalFilterTransaction = false;
setAction(false);
};
const footerLayoutFilter = [
<Button
@@ -362,10 +383,10 @@ export const DetailUser = observer(() => {
color: "#fff",
}}
>
Remove Filter
Hapus Filter
</Button>,
<Button key={"cancel"} onClick={handleCancelFilter}>
Cancel
Batal
</Button>,
<Button
key={"submit"}
@@ -375,7 +396,7 @@ export const DetailUser = observer(() => {
color: "#fff",
}}
>
Apply
Terapkan
</Button>,
];
return (
@@ -391,8 +412,8 @@ export const DetailUser = observer(() => {
Detail User
</Title>
<Col
lg={store.authentication.userData.role === "Admin" ? 18 : 17}
xs={store.authentication.userData.role === "Admin" ? 18 : 17}
lg={store.authentication.userData.role === "Admin" ? 18 : 13}
xs={store.authentication.userData.role === "Admin" ? 18 : 13}
style={{ textAlign: "right" }}
>
<Space
@@ -401,73 +422,79 @@ export const DetailUser = observer(() => {
wrap={true}
style={{ textAlign: "center" }}
>
<Button
type={
store.membership.dataDetail.is_active === true
? "danger"
: "primary"
}
onClick={() =>
changeStatus(
store.membership.dataDetail.id,
store.membership.dataDetail.is_active
)
}
>
{store.membership.dataDetail.is_active === true
? "Inactive"
: "Active"}
</Button>
<Button
onClick={() => {
setInitialData({
id: store.membership.dataDetail.id,
name: store.membership.dataDetail.userDetail.name,
username: store.membership.dataDetail.username,
identity_number:
store.membership.dataDetail.userDetail.identity_number,
image_identity:
store.membership.dataDetail?.userDetail.image_identity,
image_store:
store.membership.dataDetail?.userDetail.image_store,
phone_number:
store.membership.dataDetail.userDetail.phone_number,
roleId: store.membership.dataDetail.roles.id,
isChangePassword: false,
});
console.log(
store.membership.dataDetail.userDetail.identity_number
);
console.log(store.membership.dataDetail.userDetail.id);
console.log(
store.membership.dataDetail.userDetail.image_identity
);
console.log(
store.membership.dataDetail.userDetail.image_store,
"ini store"
);
console.log(store.membership.dataDetail.username);
setVisibleModal(true);
}}
>
Edit
</Button>
<Button
onClick={() => {
setInitialData({
id: store.membership.dataDetail.id,
name: store.membership.dataDetail.userDetail.name,
username: store.membership.dataDetail.username,
phone_number:
store.membership.dataDetail.userDetail.phone_number,
roleId: store.membership.dataDetail.roles.id,
isChangePassword: true,
});
setVisibleModal(true);
}}
>
Ganti Password
</Button>
{store.authentication.userData.role === "Admin" && (
<Space>
<Button
type={
store.membership.dataDetail.is_active === true
? "danger"
: "primary"
}
onClick={() =>
changeStatus(
store.membership.dataDetail.id,
store.membership.dataDetail.is_active
)
}
>
{store.membership.dataDetail.is_active === true
? "Inactive"
: "Active"}
</Button>
<Button
onClick={() => {
setInitialData({
id: store.membership.dataDetail.id,
name: store.membership.dataDetail.userDetail.name,
username: store.membership.dataDetail.username,
identity_number:
store.membership.dataDetail.userDetail
.identity_number,
image_identity:
store.membership.dataDetail?.userDetail
.image_identity,
image_store:
store.membership.dataDetail?.userDetail.image_store,
phone_number:
store.membership.dataDetail.userDetail.phone_number,
roleId: store.membership.dataDetail.roles.id,
isChangePassword: false,
});
console.log(
store.membership.dataDetail.userDetail.identity_number
);
console.log(store.membership.dataDetail.userDetail.id);
console.log(
store.membership.dataDetail.userDetail.image_identity
);
console.log(
store.membership.dataDetail.userDetail.image_store,
"ini store"
);
console.log(store.membership.dataDetail.username);
setVisibleModal(true);
}}
>
Edit
</Button>
<Button
onClick={() => {
setInitialData({
id: store.membership.dataDetail.id,
name: store.membership.dataDetail.userDetail.name,
username: store.membership.dataDetail.username,
phone_number:
store.membership.dataDetail.userDetail.phone_number,
roleId: store.membership.dataDetail.roles.id,
isChangePassword: true,
});
setVisibleModal(true);
}}
>
Ganti Password
</Button>
</Space>
)}
{((store.authentication.userData.role === "Sales" &&
store.membership.dataDetail.is_rejected === true &&
store.membership.dataDetail.is_active === false) ||
@@ -509,12 +536,12 @@ export const DetailUser = observer(() => {
<Col span={12}>
<Text>{store.authentication.dataProfit.username}</Text>
</Col>
<Col span={12}>
{/* <Col span={12}>
<Text strong>Role</Text>
</Col>
<Col span={12}>
<Text>{store.authentication.dataProfit.roles?.name}</Text>
</Col>
</Col> */}
<Col span={12}>
<Text strong>Phone Number</Text>
</Col>
@@ -537,8 +564,8 @@ export const DetailUser = observer(() => {
<Col span={12}>
<Text>
{store.authentication.dataProfit.is_active === true
? "Active"
: "Inactive"}
? "Aktif"
: "Inaktif"}
</Text>
</Col>
{store.authentication.userData.role === "Admin" &&
@@ -558,7 +585,7 @@ export const DetailUser = observer(() => {
? `${appConfig.apiUrl}/config/image/${store.authentication.dataProfit.userDetail?.image_identity}`
: "https://st4.depositphotos.com/14953852/24787/v/600/depositphotos_247872612-stock-illustration-no-image-available-icon-vector.jpg"
}
style={{ width: "10vw" }}
style={{ width: "8vw" }}
/>
</Text>
</Col>
@@ -578,7 +605,7 @@ export const DetailUser = observer(() => {
? `${appConfig.apiUrl}/config/image/${item}`
: "https://st4.depositphotos.com/14953852/24787/v/600/depositphotos_247872612-stock-illustration-no-image-available-icon-vector.jpg"
}
style={{ width: "10vw", marginRight: 15 }}
style={{ width: "8vw", marginRight: 10 }}
/>
)
)
@@ -683,7 +710,7 @@ export const DetailUser = observer(() => {
<Row justify={"center"}>
<Col lg={12} xs={12}>
<Title strong level={3} style={styleSaldoTitle}>
Profit
Keuntungan
</Title>
</Col>
<Col lg={24} xs={12}>
@@ -707,31 +734,124 @@ export const DetailUser = observer(() => {
<Row>
<Col span={24}>
<Tabs defaultActiveKey="1">
<TabPane tab="History Top Up" key="1">
<Table
key="1"
hasEmpty
columns={columns}
dataSource={store.transaction.dataHistoryTopUp}
bordered
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.pageSize = page.pageSize;
store.transaction.page = pageNumber - 1;
modalLoader.setLoading(true);
await getData();
modalLoader.setLoading(false);
}}
/>
<TabPane tab="Riwayat Top Up" key="1">
{store.ui.mediaQuery.isDesktop && (
<div>
<Button
style={{ marginBottom: "1rem", marginLeft: 5 }}
onClick={() => {
store.transaction.visibleModalFilterTransaction = true;
setAction(true);
}}
>
<FilterOutlined />
Filter
</Button>
<Table
key="1"
hasEmpty
columns={columns}
dataSource={store.transaction.dataHistoryTopUp}
bordered
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.pageSize = page.pageSize;
store.transaction.page = pageNumber - 1;
modalLoader.setLoading(true);
await getData();
modalLoader.setLoading(false);
}}
/>
</div>
)}
{store.ui.mediaQuery.isMobile && (
<div>
<Button
style={{ marginBottom: "1rem" }}
onClick={() => {
store.transaction.visibleModalFilterTransaction = true;
setAction(true);
}}
>
<FilterOutlined />
Filter
</Button>
<List
itemLayout="horizontal"
position={"top"}
pagination={{
onChange: async (page, pageSize) => {
store.transaction.pageSize = pageSize;
store.transaction.page = page - 1;
modalLoader.setLoading(true);
await getData();
modalLoader.setLoading(false);
},
pageSize: store.transaction.pageSize,
total: store.transaction.total_data,
current: store.transaction.page + 1,
style: { marginBottom: "1rem", marginRight: "1rem" },
}}
dataSource={store.transaction.dataHistoryTopUp}
style={{ padding: 0 }}
renderItem={(item) => {
return (
<div>
<List.Item
key={item.id}
style={{
backgroundColor: "#ffffff",
paddingTop: 0,
paddingBottom: 0,
display: "flex",
flexDirection: "row",
alignItems: "center",
justifyContent: "center",
}}
>
<List.Item.Meta
className={["cariparkir-container"].join(" ")}
title={item.sender_name}
description={
<div style={{}}>
<p>
<small>
Amount :{" "}
{new Intl.NumberFormat("id-ID", {
style: "currency",
currency: "IDR",
}).format(item.amount || 0)}
</small>{" "}
<br />
<small>
Transaction Date :{" "}
{format(
parseISO(item.transaction_date),
"dd-MM-yyyy hh:mm:ss"
)}
</small>{" "}
<br />
</p>
</div>
}
/>
</List.Item>
<Divider plain style={{ margin: 0 }} />
</div>
);
}}
/>
</div>
)}
</TabPane>
<TabPane tab="History Transaction" key="2">
<TabPane tab="Riwayat Transaksi" key="2">
{store.ui.mediaQuery.isDesktop && (
<div>
<Button
@@ -911,7 +1031,12 @@ export const DetailUser = observer(() => {
store.transaction.filterStart = null;
store.transaction.filterEnd = null;
store.transaction.visibleModalFilterTransaction = false;
await store.transaction.getDetailHistoryTransaction();
actionFilter === true
? await store.transaction.getDataHistoryTopUp(id)
: await store.transaction.getDetailHistoryTransaction(
store.authentication.dataProfit.id
);
//await store.transaction.getDetailHistoryTransaction();
}}
>
<Row>

View File

@@ -72,7 +72,7 @@ export const Konfirmasi = observer(() => {
const columns = [
{
title: "Name",
title: "Nama",
dataIndex: "username",
key: "username",
},
@@ -98,8 +98,8 @@ export const Konfirmasi = observer(() => {
title: "Foto Toko",
render: (text, record) =>
record.roles?.name !== "Sales" &&
record.user_detail?.image_store !== "[]" &&
record.user_detail?.image_store !== '""' ? (
(record.user_detail?.image_store !== "[]" ||
record.user_detail?.image_store !== '""') ? (
<Button
onClick={async () => {
setToko(record);
@@ -113,7 +113,7 @@ export const Konfirmasi = observer(() => {
),
},
{
title: "Action",
title: "Tindakan",
dataIndex: "amount",
key: "action",
width: "10%",
@@ -126,14 +126,14 @@ export const Konfirmasi = observer(() => {
title: `Are you sure Accept this submission?`,
icon: <CheckOutlined />,
okText: "Accept",
cancelText: "Cancel",
cancelText: "Batal",
okType: "primary",
onOk() {
handleApprove(record.id);
console.log(record.id);
},
onCancel() {
console.log("Cancel");
console.log("Batal");
},
});
}}
@@ -152,13 +152,13 @@ export const Konfirmasi = observer(() => {
title: `Are you sure Reject this submission?`,
icon: <StopOutlined />,
okText: "Reject",
cancelText: "Cancel",
cancelText: "Batal",
okType: "primary",
onOk() {
handleReject(record.id);
},
onCancel() {
console.log("Cancel");
console.log("Batal");
},
});
}}
@@ -315,13 +315,13 @@ export const Konfirmasi = observer(() => {
title: `Are you sure Accept this submission?`,
icon: <CheckOutlined />,
okText: "Accept",
cancelText: "Cancel",
cancelText: "Batal",
okType: "primary",
onOk() {
handleApprove(item.id);
},
onCancel() {
console.log("Cancel");
console.log("Batal");
},
});
}}
@@ -340,13 +340,13 @@ export const Konfirmasi = observer(() => {
title: `Are you sure Reject this submission?`,
icon: <StopOutlined />,
okText: "Reject",
cancelText: "Cancel",
cancelText: "Batal",
okType: "primary",
onOk() {
handleReject(item.id);
},
onCancel() {
console.log("Cancel");
console.log("Batal");
},
});
}}

View File

@@ -71,7 +71,8 @@ export const Membership = observer(() => {
}, []);
const getData = async () => {
store.authentication.userData.role === "Admin"
store.authentication.userData.role === "Admin" ||
store.authentication.userData.role === "Customer Service"
? await store.membership.getData()
: await store.membership.getDataBySuperior();
};
@@ -111,10 +112,10 @@ export const Membership = observer(() => {
color: "#fff",
}}
>
Remove Filter
Hapus Filter
</Button>,
<Button key={"cancel"} onClick={handleCancelFilter}>
Cancel
Batal
</Button>,
<Button
key={"submit"}
@@ -124,7 +125,7 @@ export const Membership = observer(() => {
color: "#fff",
}}
>
Apply
Terapkan
</Button>,
];
const handleCancelTransaction = () => {
@@ -168,10 +169,10 @@ export const Membership = observer(() => {
const columns = [
{
title: "Name",
title: "Nama",
dataIndex: "name",
key: "name",
render: (text, record) => record?.name ?? record?.username,
render: (text, record) => record?.name ?? record?.user_detail?.name,
},
{
title: "Username",
@@ -196,7 +197,7 @@ export const Membership = observer(() => {
}).format(text),
},
{
title: "Action",
title: "Tindakan",
key: "action",
render: (text, record) => (
<Space size="middle">
@@ -225,6 +226,7 @@ export const Membership = observer(() => {
},
];
if (store.authentication.userData.role === "Customer Service") columns.pop();
const routeData = [
{
route: LINKS.HOME,
@@ -344,14 +346,17 @@ export const Membership = observer(() => {
marginBottom: store.ui.mediaQuery.isMobile ? 10 : 0,
}}
/> */}
<Button
onClick={() => {
setInitialData({});
setVisibleModal(true);
}}
>
<PlusSquareOutlined /> New
</Button>
{store.authentication.userData.role !== "Customer Service" && (
<Button
onClick={() => {
setInitialData({});
setVisibleModal(true);
}}
>
<PlusSquareOutlined /> New
</Button>
)}
</Col>
</Row>
{store.ui.mediaQuery.isDesktop && (
@@ -359,16 +364,18 @@ export const Membership = observer(() => {
key="1"
hasEmpty
columns={columns}
style={{ cursor: "pointer" }}
//style={{ cursor: "pointer" }}
dataSource={
store.authentication.userData.role === "Admin"
store.authentication.userData.role === "Admin" ||
store.authentication.userData.role === "Customer Service"
? store.membership.dataMember
: store.membership.data
}
pagination={{
pageSize: store.membership.pageSize,
total:
store.authentication.userData.role === "Admin"
store.authentication.userData.role === "Admin" ||
store.authentication.userData.role === "Customer Service"
? store.membership.dataTotal
: store.membership.total_data,
current: store.membership.page + 1,
@@ -401,14 +408,16 @@ export const Membership = observer(() => {
},
pageSize: store.membership.pageSize,
total:
store.authentication.userData.role === "Admin"
store.authentication.userData.role === "Admin" ||
store.authentication.userData.role === "Customer Service"
? store.membership.dataTotal
: store.membership.total_data,
current: store.membership.page + 1,
style: { marginBottom: "1rem", marginRight: "1rem" },
}}
dataSource={
store.authentication.userData.role === "Admin"
store.authentication.userData.role === "Admin" ||
store.authentication.userData.role === "Customer Service"
? store.membership.dataMember
: store.membership.data
}
@@ -496,7 +505,7 @@ export const Membership = observer(() => {
visible={isVisibleTopUpModal}
title="Top Up Saldo"
okText="Top Up"
cancelText="Cancel"
cancelText="Batal"
onCancel={() => {
form.resetFields();
handleCancelTransaction();
@@ -517,7 +526,7 @@ export const Membership = observer(() => {
<Form form={form} layout="vertical">
<Form.Item
name="amount"
label="Amount"
label="Nominal"
rules={[{ required: true, message: "Please input amount!" }]}
>
<InputNumber

View File

@@ -195,7 +195,7 @@ export const MembershipModal = ({
: "Create a new Membership"
}
okText={initialData.id ? "Edit" : "Create"}
cancelText="Cancel"
cancelText="Batal"
onCancel={() => {
form.resetFields();
onCancel();