diff --git a/src/pages/Membership/DetailUser.js b/src/pages/Membership/DetailUser.js index 92307b5..cb0c818 100644 --- a/src/pages/Membership/DetailUser.js +++ b/src/pages/Membership/DetailUser.js @@ -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) diff --git a/src/pages/Profile/Profile.js b/src/pages/Profile/Profile.js index b14a43e..5c3b7ce 100644 --- a/src/pages/Profile/Profile.js +++ b/src/pages/Profile/Profile.js @@ -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"} diff --git a/src/pages/Transaction/Product.js b/src/pages/Transaction/Product.js index 90b7403..57da716 100644 --- a/src/pages/Transaction/Product.js +++ b/src/pages/Transaction/Product.js @@ -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(() => { { - 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(() => { // , ]} > +
{
+ + + { + formBuyPostPaid.resetFields(); + setVisibleModalBuyPostpaid(false); + }} + // footer={footerLayoutFilter} + footer={[ + , + , + // , + ]} + > + + + +
+ + + + + + + +
+ +
+ + { + formBill.resetFields(); + setVisibleModalBill(false); + }} + // footer={footerLayoutFilter} + footer={[ + , + + ]} + > +
+ + + +
+
+ ); }); diff --git a/src/store/transaction.js b/src/store/transaction.js index 8c98ca6..54b9c09 100644 --- a/src/store/transaction.js +++ b/src/store/transaction.js @@ -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);