This commit is contained in:
Fadli 2022-12-20 11:03:09 +07:00
commit 3b7ccd8214
4 changed files with 299 additions and 27 deletions

View File

@ -380,11 +380,11 @@ export const DetailUser = observer(() => {
const handleSubmitFilter = async () => {
const data = form.getFieldsValue();
store.transaction.filterStart = moment(data.start_date).format(
"YYYY-MM-DD HH:mm:ss"
);
"YYYY-MM-DD"
) + " 00:00:00";
store.transaction.filterEnd = moment(data.end_date).format(
"YYYY-MM-DD HH:mm:ss"
);
"YYYY-MM-DD"
) + " 23:59:59";
modalLoader.setLoading(true);
actionFilter === true
? await store.transaction.getDataHistoryTopUp(id)

View File

@ -108,11 +108,11 @@ export const Profile = observer(() => {
const handleSubmitFilter = async () => {
const data = form.getFieldsValue();
store.transaction.filterStart = moment(data.start_date).format(
"YYYY-MM-DD HH:mm:ss"
);
"YYYY-MM-DD"
) + " 00:00:00";
store.transaction.filterEnd = moment(data.end_date).format(
"YYYY-MM-DD HH:mm:ss"
);
"YYYY-MM-DD"
) + " 23:59:59";
modalLoader.setLoading(true);
// actionFilter === true
// ? await store.transaction.getDataHistoryTopUpProfile(
@ -337,14 +337,14 @@ export const Profile = observer(() => {
color={
record.status === "SUCCESS"
? "success"
: record.status === 0
: record.status === "PENDING"
? "warning"
: "processing"
}
>
{record.status === "SUCCESS"
? "Sukses"
: record.status === 0
: record.status === "PENDING"
? "Dalam Proses"
: "Gagal"}
</Tag>

View File

@ -21,7 +21,11 @@ export const Product = observer(() => {
const store = useStore();
const modalLoader = useContext(ModalLoaderContext);
const [form] = Form.useForm();
const [formBuyPostPaid] = Form.useForm();
const [formBill] = Form.useForm();
const [visibleModalBuy, setVisibleModalBuy] = useState(false);
const [visibleModalBill, setVisibleModalBill] = useState(false);
const [visibleModalBuyPostpaid, setVisibleModalBuyPostpaid] = useState(false);
const [barang, setBarang] = useState({});
useEffect(() => {
@ -53,19 +57,80 @@ export const Product = observer(() => {
modalLoader.setLoading(false);
};
const handleBuyProduct = async (data, productCode, productId) => {
const handleBuyProduct = async (data, productCode, productId, productType, billTrxId) => {
modalLoader.setLoading(true);
if (productType == "prepaid") {
try {
const response = await store.transaction.buyProd({
...data,
productCode: productCode,
productId: productId
});
if (response.status === 201) {
message.success(response?.body?.message || "Berhasil Beli Produk");
} else {
message.error(response?.body?.error || "Gagal Beli Produk", 3);
}
} catch (e) {
console.log("testingan");
console.log(e.response, "testingan");
console.log(e.result, "testingan1");
if (e.response?.body?.error) {
message.error(e.response.body.error);
setVisibleModalBuy(false);
modalLoader.setLoading(false);
return;
}
console.log(e, "apa errornya");
message.error("Gagal Beli Product");
}
} else {
try {
const response = await store.transaction.buyProd({
...data,
productCode: productCode,
productId: productId,
billTrxId: billTrxId
});
if (response.status === 201) {
message.success(response?.body?.message || "Berhasil Bayar Produk");
} else {
message.error(response?.body?.error || "Gagal Bayar Produk", 3);
}
} catch (e) {
console.log("testingan");
console.log(e.response, "testingan");
console.log(e.result, "testingan1");
if (e.response?.body?.error) {
message.error(e.response.body.error);
setVisibleModalBuy(false);
modalLoader.setLoading(false);
return;
}
console.log(e, "apa errornya");
message.error("Gagal Bayar Product");
}
}
setVisibleModalBuyPostpaid(false)
setVisibleModalBuy(false);
modalLoader.setLoading(false);
};
const handleCheckBill = async (data, productCode, productId) => {
modalLoader.setLoading(true);
try {
const response = await store.transaction.buyProd({
const response = await store.transaction.checkBill({
...data,
productCode: productCode,
productId: productId
});
if (response.status === 201) {
message.success(response?.body?.message || "Berhasil Beli Produk");
message.success(response?.body?.message || "Berhasil Cek Produk");
} else {
message.error(response?.body?.error || "Gagal Beli Produk", 3);
message.error(response?.body?.error || "Gagal Cek Produk", 3);
}
} catch (e) {
console.log("testingan");
@ -78,9 +143,9 @@ export const Product = observer(() => {
return;
}
console.log(e, "apa errornya");
message.error("Gagal Beli Product");
message.error("Gagal Cek Product");
}
setVisibleModalBuy(false);
setVisibleModalBill(false);
modalLoader.setLoading(false);
};
@ -164,7 +229,11 @@ export const Product = observer(() => {
<Col key={index} xs={24} md={16} lg={8}>
<Card
onClick={() => {
setVisibleModalBuy(true);
if (item.product_type == "prepaid") {
setVisibleModalBuy(true);
} else {
setVisibleModalBuyPostpaid(true)
}
setBarang(item);
}}
hoverable
@ -220,16 +289,16 @@ export const Product = observer(() => {
marginRight:10
}}
onClick={() => {
form
.validateFields()
.then((values) => {
console.log(values, "isi form");
handleBuyProduct(values, barang.product_code, barang.product_id);
form.resetFields();
})
.catch((info) => {
console.error("Validate Failed:", info);
});
form
.validateFields()
.then((values) => {
console.log(values, "isi form");
handleBuyProduct(values, barang.product_code, barang.product_id, barang.product_type, "");
form.resetFields();
})
.catch((info) => {
console.error("Validate Failed:", info);
});
}}
>
Beli
@ -254,6 +323,7 @@ export const Product = observer(() => {
// </Button>,
]}
>
<Form form={form} layout="vertical">
<Form.Item
name="destination"
@ -277,6 +347,202 @@ export const Product = observer(() => {
</Form.Item>
</Form>
</Modal>
<Modal
visible={visibleModalBuyPostpaid}
title={`Apakah anda yakin membeli ${barang?.product_name}?`}
okText={"Confirm"}
onCancel={() => {
formBuyPostPaid.resetFields();
setVisibleModalBuyPostpaid(false);
}}
// footer={footerLayoutFilter}
footer={[
<Button
key="back"
style={{
backgroundColor: "#e74e5e",
color: "#fff",
}}
onClick={() => {
formBuyPostPaid.resetFields();
setVisibleModalBuyPostpaid(false);
}}
>
Batal
</Button>,
<Button
key="Beli"
style={{
backgroundColor: "#4e79e7",
color: "#fff",
marginRight:10
}}
onClick={() => {
formBuyPostPaid
.validateFields()
.then((destination, billTrxId) => {
console.log(destination, "isi form");
handleBuyProduct(destination, barang.product_code, barang.product_id, barang.product_type, billTrxId);
formBuyPostPaid.resetFields();
setVisibleModalBuyPostpaid(false);
})
.catch((info) => {
console.error("Validate Failed:", info);
});
}}
>
Beli
</Button>,
// <Button
// key="Beli Stag"
// type="primary"
// onClick={() => {
// form
// .validateFields()
// .then((values) => {
// console.log(values, "isi form");
// handleBuyStag(values, barang.product_code);
// form.resetFields();
// })
// .catch((info) => {
// console.error("Validate Failed:", info);
// });
// }}
// >
// Beli Staging
// </Button>,
]}
>
<Row
justify={"end"}
align={"end"}
>
<Button
onClick={() => {
setVisibleModalBill(true);
setVisibleModalBuyPostpaid(false)
}}
style={{
backgroundColor: "#4e79e7",
color: "#fff",
}}
>
Cek Bill Postpaid
</Button>
</Row>
<Form form={formBuyPostPaid} layout="vertical">
<Form.Item
name="destination"
label="Nomor Tujuan"
rules={[
{
required: true,
message: "Tolong masukan nomor tujuan!",
},
// {
// pattern: /^(?:\d*)$/,
// message: "Value should contain just number",
// },
// {
// pattern: /^[\d]{1,12}$/,
// message: "Value should be 1 - 12 character",
// },
]}
>
<Input />
</Form.Item>
<Form.Item
name="bill_trx_id"
label="Id Transaksi"
rules={[
{
required: true,
message: "Tolong masukan Id Transaksi!",
}
]}
>
<Input />
</Form.Item>
</Form>
</Modal>
<Modal
visible={visibleModalBill}
title={`Cek Bill ${barang?.product_name}`}
okText={"Confirm"}
onCancel={() => {
formBill.resetFields();
setVisibleModalBill(false);
}}
// footer={footerLayoutFilter}
footer={[
<Button
key="back"
style={{
backgroundColor: "#e74e5e",
color: "#fff",
}}
onClick={() => {
formBill.resetFields();
setVisibleModalBill(false);
}}
>
Batal
</Button>,
<Button
key="Cek"
style={{
backgroundColor: "#4e79e7",
color: "#fff",
marginRight:10
}}
onClick={() => {
formBill
.validateFields()
.then((values) => {
console.log(values, "isi form");
handleCheckBill(values, barang.product_code, barang.product_id)
formBill.resetFields();
setVisibleModalBill(false);
})
.catch((info) => {
console.error("Validate Failed:", info);
});
}}
>
Cek Bill
</Button>
]}
>
<Form form={formBill} layout="vertical">
<Form.Item
name="destination"
label="Nomor Tujuan"
rules={[
{
required: true,
message: "Tolong masukan nomor tujuan!",
},
// {
// pattern: /^(?:\d*)$/,
// message: "Value should contain just number",
// },
// {
// pattern: /^[\d]{1,12}$/,
// message: "Value should be 1 - 12 character",
// },
]}
>
<Input />
</Form.Item>
</Form>
</Modal>
</div>
);
});

View File

@ -222,6 +222,12 @@ export class Transaction {
return response;
}
async checkBill(data) {
const response = await http.post("/transaction/check-bill").send(data);
console.log(response)
return response;
}
async update(id, data) {
try {
const response = await http.put(`/product/${id}`).send(data);