From 99950f97062abf78f8303760ffa587d627d46401 Mon Sep 17 00:00:00 2001 From: rahman Date: Fri, 1 Apr 2022 23:40:19 +0700 Subject: [PATCH 01/20] Feat: add form input url --- src/component/SupplierComponent.js | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/component/SupplierComponent.js b/src/component/SupplierComponent.js index 4f1fda2..ce2affb 100644 --- a/src/component/SupplierComponent.js +++ b/src/component/SupplierComponent.js @@ -176,11 +176,11 @@ export const SupplierComponent = observer((props) => { const response = await store.supplier.update(idData, data); response?.body?.statusCode === 201 || response?.body?.statusCode === 200 ? message.success( - response?.body?.message || "Berhasil Ubah Data Supplier" - ) + response?.body?.message || "Berhasil Ubah Data Supplier" + ) : message.error( - response?.body?.message || "Gagal Ubah Data Supplier" - ); + response?.body?.message || "Gagal Ubah Data Supplier" + ); } catch (e) { modalLoader.setLoading(false); message.error(e.response?.body?.message || "Gagal Ubah Data Supplier"); @@ -374,6 +374,13 @@ export const SupplierComponent = observer((props) => { > + + + {!idData && ( Date: Sat, 2 Apr 2022 01:33:19 +0700 Subject: [PATCH 02/20] Feat: add form supplier --- src/component/SupplierComponent.js | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/src/component/SupplierComponent.js b/src/component/SupplierComponent.js index ce2affb..9c98998 100644 --- a/src/component/SupplierComponent.js +++ b/src/component/SupplierComponent.js @@ -367,10 +367,17 @@ export const SupplierComponent = observer((props) => { }} >
+ + + @@ -381,6 +388,27 @@ export const SupplierComponent = observer((props) => { > + + + + + + + + + {!idData && ( Date: Wed, 13 Apr 2022 11:41:32 +0700 Subject: [PATCH 03/20] feat: fixing data table produk and pagination in role admin table --- src/component/ProductComponent.js | 52 ++++++++++++++++++------------- src/pages/Product/Product.js | 4 +-- src/store/product.js | 14 +++++---- 3 files changed, 41 insertions(+), 29 deletions(-) diff --git a/src/component/ProductComponent.js b/src/component/ProductComponent.js index 008fb69..bf2f694 100644 --- a/src/component/ProductComponent.js +++ b/src/component/ProductComponent.js @@ -180,8 +180,8 @@ export const ProductComponent = observer((props) => { const response = await store.product.update(idData, data); response?.body?.statusCode === 201 || response?.body?.statusCode === 200 ? message.success( - response?.body?.message || "Berhasil Ubah Data Produk" - ) + response?.body?.message || "Berhasil Ubah Data Produk" + ) : message.error(response?.body?.message || "Gagal Ubah Data Produk"); } catch (e) { message.error(e.response?.body?.message || "Gagal Ubah Data Produk"); @@ -215,8 +215,8 @@ export const ProductComponent = observer((props) => { setFilterSubCategories([]); store.authentication.userData.role === "Admin Partner" ? await store.product.getProductPartner( - store.authentication.profileData.id - ) + store.authentication.profileData.id + ) : await store.product.getData(); //await store.product.getData(); store.product.visibleModalFilterProduct = false; @@ -228,8 +228,8 @@ export const ProductComponent = observer((props) => { store.product.visibleModalFilterProduct = false; store.authentication.userData.role === "Admin Partner" ? await store.product.getProductPartner( - store.authentication.profileData.id - ) + store.authentication.profileData.id + ) : await store.product.getData(); //await store.product.getData(); }; @@ -240,8 +240,8 @@ export const ProductComponent = observer((props) => { modalLoader.setLoading(true); store.authentication.userData.role === "Admin Partner" ? await store.product.getProductPartner( - store.authentication.profileData.id - ) + store.authentication.profileData.id + ) : await store.product.getData(); //await store.product.getData(); modalLoader.setLoading(false); @@ -297,21 +297,25 @@ export const ProductComponent = observer((props) => { } onRow={handleClickRow} pagination={{ - pageSize: store.product.pageSize, + pageSize: store.authentication.userData.role === "Admin" ? store.product.pageSize : store.product.pageSizeProductPartner, total: store.authentication.userData.role === "Admin Partner" ? store.product.total_data_partner : store.product.total_data, - current: store.product.page + 1, + current: store.authentication.userData.role === "Admin" ? store.product.page + 1 : store.product.pageProductPartner + 1, showSizeChanger: true, simple: false, }} onChange={async (page) => { let pageNumber = page.current; - store.product.pageSize = page.pageSize; - store.product.page = pageNumber - 1; + store.authentication.userData.role === "Admin" ? store.product.pageSize = page.pageSize : store.product.pageSizeProductPartner = page.pageSize; + store.authentication.userData.role === "Admin" ? store.product.page = pageNumber - 1 : store.product.pageProductPartner = pageNumber - 1 modalLoader.setLoading(true); - await store.product.getData(); + store.authentication.userData.role === "Admin Partner" + ? await store.product.getProductPartner( + // store.authentication.profileData.id + ) + : await store.product.getData(); modalLoader.setLoading(false); }} /> @@ -322,23 +326,29 @@ export const ProductComponent = observer((props) => { position={"top"} pagination={{ onChange: async (page, pageSize) => { - store.product.pageSize = pageSize; - store.product.page = page - 1; + store.authentication.userData.role === "Admin" ? store.product.pageSize = pageSize : store.product.pageSizeProductPartner = pageSize; + store.authentication.userData.role === "Admin" ? store.product.page = page - 1 : store.product.pageProductPartner = page - 1 modalLoader.setLoading(true); store.authentication.userData.role === "Admin Partner" ? await store.product.getProductPartner( - store.authentication.profileData.id - ) + // store.authentication.profileData.id + ) : await store.product.getData(); //await store.product.getData(); modalLoader.setLoading(false); }, - pageSize: store.product.pageSize, - total: store.product.total_data, - current: store.product.page + 1, + pageSize: store.authentication.userData.role === "Admin" ? store.product.pageSize : store.product.pageSizeProductPartner, + total: store.authentication.userData.role === "Admin Partner" + ? store.product.total_data_partner + : store.product.total_data, + current: store.authentication.userData.role === "Admin" ? store.product.page + 1 : store.product.pageProductPartner + 1, style: { marginBottom: "1rem", marginRight: "1rem" }, }} - dataSource={store.product.data} + dataSource={ + store.authentication.userData.role === "Admin Partner" + ? store.product.dataProductPartner + : store.product.data + } style={{ padding: 0 }} renderItem={(item) => { return ( diff --git a/src/pages/Product/Product.js b/src/pages/Product/Product.js index 37b888a..6a82286 100644 --- a/src/pages/Product/Product.js +++ b/src/pages/Product/Product.js @@ -183,8 +183,8 @@ export const Product = observer(() => { Date: Fri, 6 May 2022 15:12:37 +0700 Subject: [PATCH 04/20] feat: hide column tindakan for roles other than admin --- src/component/ProductComponent.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/component/ProductComponent.js b/src/component/ProductComponent.js index bf2f694..d7d14cf 100644 --- a/src/component/ProductComponent.js +++ b/src/component/ProductComponent.js @@ -132,6 +132,7 @@ export const ProductComponent = observer((props) => { //if (store.authentication.userData.role === "Admin Partner") delete columns[2]; if (store.authentication.userData.role === "Admin Partner") delete columns[3]; if (store.authentication.userData.role != "Admin Partner") delete columns[4]; + if (store.authentication.userData.role !== "Admin") delete columns[8]; if (store.authentication.userData.role !== "Admin") delete columns[6]; if (store.authentication.userData.role !== "Admin") delete columns[2]; if (store.authentication.userData.role !== "Admin") delete columns[5]; From b031687c5c33b47703e94e5decdd768b83e8fc2d Mon Sep 17 00:00:00 2001 From: rahman Date: Mon, 9 May 2022 20:52:03 +0700 Subject: [PATCH 05/20] feat: fixing filter admin partner --- src/component/ProductComponent.js | 15 ++++++--------- src/store/product.js | 27 ++++++++++++++++++++------- 2 files changed, 26 insertions(+), 16 deletions(-) diff --git a/src/component/ProductComponent.js b/src/component/ProductComponent.js index d7d14cf..393c078 100644 --- a/src/component/ProductComponent.js +++ b/src/component/ProductComponent.js @@ -210,17 +210,16 @@ export const ProductComponent = observer((props) => { }; const handleRemoveFilter = async () => { + store.product.visibleModalFilterProduct = false; store.product.filterSupplier = null; store.product.filterSubCategory = null; setFilterSupplier([]); setFilterSubCategories([]); store.authentication.userData.role === "Admin Partner" - ? await store.product.getProductPartner( - store.authentication.profileData.id - ) + ? await store.product.getProductPartner() : await store.product.getData(); //await store.product.getData(); - store.product.visibleModalFilterProduct = false; + modalLoader.setLoading(false); }; const handleCancelFilter = async () => { @@ -228,25 +227,23 @@ export const ProductComponent = observer((props) => { store.product.filterSupplier = null; store.product.visibleModalFilterProduct = false; store.authentication.userData.role === "Admin Partner" - ? await store.product.getProductPartner( - store.authentication.profileData.id - ) + ? await store.product.getProductPartner() : await store.product.getData(); //await store.product.getData(); }; const handleSubmitFilter = async () => { + store.product.visibleModalFilterProduct = false; store.product.filterSupplier = filterSupplier; store.product.filterSubCategory = filterSubCategories; modalLoader.setLoading(true); store.authentication.userData.role === "Admin Partner" ? await store.product.getProductPartner( - store.authentication.profileData.id + filterSubCategories ) : await store.product.getData(); //await store.product.getData(); modalLoader.setLoading(false); - store.product.visibleModalFilterProduct = false; //store.product.page=1 }; diff --git a/src/store/product.js b/src/store/product.js index 46caacb..057db3f 100644 --- a/src/store/product.js +++ b/src/store/product.js @@ -101,14 +101,27 @@ export class Product { } async getProductPartner(id) { - try { - const response = await http.get(`/product/by-categories?page=${this.pageProductPartner}&pageSize=${this.pageSizeProductPartner}&sub-category=${id}`); - console.log(response) - this.dataProductPartner = response.body.data - this.total_data_partner = response?.body?.count ?? 0 - } catch (e) { - console.error(e); + + if (id === undefined) { + try { + const response = await http.get(`/product/by-categories?page=${this.pageProductPartner}&pageSize=${this.pageSizeProductPartner}&sub-category=`); + console.log(response) + this.dataProductPartner = response.body.data + this.total_data_partner = response?.body?.count ?? 0 + } catch (e) { + console.error(e); + } + } else { + try { + const response = await http.get(`/product/by-categories?page=${this.pageProductPartner}&pageSize=${this.pageSizeProductPartner}&sub-category=${id}`); + console.log(response) + this.dataProductPartner = response.body.data + this.total_data_partner = response?.body?.count ?? 0 + } catch (e) { + console.error(e); + } } + } async create(data) { From b18f91ec4b4c87965ee97d59ca26f242fe51af58 Mon Sep 17 00:00:00 2001 From: rahman Date: Mon, 9 May 2022 21:08:10 +0700 Subject: [PATCH 06/20] feat: revisi fixing filter admin partner --- src/component/ProductComponent.js | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/src/component/ProductComponent.js b/src/component/ProductComponent.js index 393c078..55515ed 100644 --- a/src/component/ProductComponent.js +++ b/src/component/ProductComponent.js @@ -223,12 +223,7 @@ export const ProductComponent = observer((props) => { }; const handleCancelFilter = async () => { - store.product.filterSubCategory = null; - store.product.filterSupplier = null; store.product.visibleModalFilterProduct = false; - store.authentication.userData.role === "Admin Partner" - ? await store.product.getProductPartner() - : await store.product.getData(); //await store.product.getData(); }; @@ -238,9 +233,7 @@ export const ProductComponent = observer((props) => { store.product.filterSubCategory = filterSubCategories; modalLoader.setLoading(true); store.authentication.userData.role === "Admin Partner" - ? await store.product.getProductPartner( - filterSubCategories - ) + ? await store.product.getProductPartner(filterSubCategories) : await store.product.getData(); //await store.product.getData(); modalLoader.setLoading(false); From 498985faa0d99bdef71b59964c6775b5ea1245e9 Mon Sep 17 00:00:00 2001 From: Fadli Date: Tue, 10 May 2022 17:02:40 +0700 Subject: [PATCH 07/20] fix product filter when page 2 and then filter didn't detect list item < 10 --- src/component/ProductComponent.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/component/ProductComponent.js b/src/component/ProductComponent.js index 55515ed..3024ec7 100644 --- a/src/component/ProductComponent.js +++ b/src/component/ProductComponent.js @@ -219,6 +219,7 @@ export const ProductComponent = observer((props) => { ? await store.product.getProductPartner() : await store.product.getData(); //await store.product.getData(); + store.product.pageProductPartner = 0 modalLoader.setLoading(false); }; @@ -238,6 +239,7 @@ export const ProductComponent = observer((props) => { //await store.product.getData(); modalLoader.setLoading(false); //store.product.page=1 + store.product.pageProductPartner = 0 }; const footerLayoutFilter = [ From 3def5a72aa869ed6eb8c46068b68308356239618 Mon Sep 17 00:00:00 2001 From: Fadli Date: Tue, 10 May 2022 18:07:52 +0700 Subject: [PATCH 08/20] fix product filter when page 2 and then filter didn't detect list item < 10 --- src/component/ProductComponent.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/component/ProductComponent.js b/src/component/ProductComponent.js index 3024ec7..37c4d00 100644 --- a/src/component/ProductComponent.js +++ b/src/component/ProductComponent.js @@ -210,6 +210,7 @@ export const ProductComponent = observer((props) => { }; const handleRemoveFilter = async () => { + store.product.pageProductPartner = 0 store.product.visibleModalFilterProduct = false; store.product.filterSupplier = null; store.product.filterSubCategory = null; @@ -219,7 +220,6 @@ export const ProductComponent = observer((props) => { ? await store.product.getProductPartner() : await store.product.getData(); //await store.product.getData(); - store.product.pageProductPartner = 0 modalLoader.setLoading(false); }; @@ -229,6 +229,7 @@ export const ProductComponent = observer((props) => { }; const handleSubmitFilter = async () => { + store.product.pageProductPartner = 0 store.product.visibleModalFilterProduct = false; store.product.filterSupplier = filterSupplier; store.product.filterSubCategory = filterSubCategories; @@ -239,7 +240,6 @@ export const ProductComponent = observer((props) => { //await store.product.getData(); modalLoader.setLoading(false); //store.product.page=1 - store.product.pageProductPartner = 0 }; const footerLayoutFilter = [ From e1c7c673a7e81931fefd4e77ecb08242a003dd5c Mon Sep 17 00:00:00 2001 From: Fadli Date: Wed, 11 May 2022 18:57:17 +0700 Subject: [PATCH 09/20] - fix filter list product when in page 2 dst - add biaya admin in list product --- src/component/ProductComponent.js | 661 +++++++++++++++-------------- src/pages/Product/ProductDetail.js | 358 ++++++++-------- 2 files changed, 520 insertions(+), 499 deletions(-) diff --git a/src/component/ProductComponent.js b/src/component/ProductComponent.js index 37c4d00..c4d28b5 100644 --- a/src/component/ProductComponent.js +++ b/src/component/ProductComponent.js @@ -64,30 +64,40 @@ export const ProductComponent = observer((props) => { dataIndex: "current_price_price", key: "current_price_price", render: (text) => - new Intl.NumberFormat("id-ID", { - style: "currency", - currency: "IDR", - }).format(text), + new Intl.NumberFormat("id-ID", { + style: "currency", + currency: "IDR", + }).format(text), }, { title: "Harga Jual", dataIndex: "mark_up_price", key: "mark_up_price", render: (text) => - new Intl.NumberFormat("id-ID", { - style: "currency", - currency: "IDR", - }).format(text), + new Intl.NumberFormat("id-ID", { + style: "currency", + currency: "IDR", + }).format(text), }, { title: "Harga", dataIndex: "price", key: "price", render: (text) => - new Intl.NumberFormat("id-ID", { - style: "currency", - currency: "IDR", - }).format(text), + new Intl.NumberFormat("id-ID", { + style: "currency", + currency: "IDR", + }).format(text), + }, + { + title: "Biaya Admin", + dataIndex: "admin_price", + key: "admin_price", + render: (text) => + new Intl.NumberFormat("id-ID", { + style: "currency", + currency: "IDR", + }).format(text), }, { title: "Supplier", @@ -104,27 +114,27 @@ export const ProductComponent = observer((props) => { dataIndex: "tersedia", key: "tersedia", render: (text, record) => ( - - {record?.product_status === "ACTIVE" ? " Tersedia" : "Tidak"} - + + {record?.product_status === "ACTIVE" ? " Tersedia" : "Tidak"} + ), }, { title: "Tindakan", key: "action", render: (text, record) => ( - + ), }, ]; @@ -180,10 +190,10 @@ export const ProductComponent = observer((props) => { try { const response = await store.product.update(idData, data); response?.body?.statusCode === 201 || response?.body?.statusCode === 200 - ? message.success( - response?.body?.message || "Berhasil Ubah Data Produk" - ) - : message.error(response?.body?.message || "Gagal Ubah Data Produk"); + ? message.success( + response?.body?.message || "Berhasil Ubah Data Produk" + ) + : message.error(response?.body?.message || "Gagal Ubah Data Produk"); } catch (e) { message.error(e.response?.body?.message || "Gagal Ubah Data Produk"); } @@ -196,8 +206,8 @@ export const ProductComponent = observer((props) => { try { const response = await store.product.create(data); response?.body?.statusCode === 201 || response?.body?.statusCode === 200 - ? message.success(response?.body?.message || "Berhasil Tambah Produk") - : message.error(response?.body?.message || "Gagal Tambah Produk"); + ? message.success(response?.body?.message || "Berhasil Tambah Produk") + : message.error(response?.body?.message || "Gagal Tambah Produk"); } catch (e) { console.log(e, "apa errornya"); message.error(e.response?.body?.message || "Gagal Tambah Produk"); @@ -217,8 +227,8 @@ export const ProductComponent = observer((props) => { setFilterSupplier([]); setFilterSubCategories([]); store.authentication.userData.role === "Admin Partner" - ? await store.product.getProductPartner() - : await store.product.getData(); + ? await store.product.getProductPartner() + : await store.product.getData(); //await store.product.getData(); modalLoader.setLoading(false); }; @@ -235,8 +245,8 @@ export const ProductComponent = observer((props) => { store.product.filterSubCategory = filterSubCategories; modalLoader.setLoading(true); store.authentication.userData.role === "Admin Partner" - ? await store.product.getProductPartner(filterSubCategories) - : await store.product.getData(); + ? await store.product.getProductPartner(filterSubCategories) + : await store.product.getData(); //await store.product.getData(); modalLoader.setLoading(false); //store.product.page=1 @@ -244,12 +254,12 @@ export const ProductComponent = observer((props) => { const footerLayoutFilter = [ , @@ -257,12 +267,12 @@ export const ProductComponent = observer((props) => { Batal , , @@ -274,292 +284,293 @@ export const ProductComponent = observer((props) => { }, }); return ( -
- {store.ui.mediaQuery.isDesktop && ( - { - let pageNumber = page.current; - store.authentication.userData.role === "Admin" ? store.product.pageSize = page.pageSize : store.product.pageSizeProductPartner = page.pageSize; - store.authentication.userData.role === "Admin" ? store.product.page = pageNumber - 1 : store.product.pageProductPartner = pageNumber - 1 - modalLoader.setLoading(true); - store.authentication.userData.role === "Admin Partner" - ? await store.product.getProductPartner( - // store.authentication.profileData.id - ) - : await store.product.getData(); - modalLoader.setLoading(false); - }} - /> - )} - {store.ui.mediaQuery.isMobile && ( - { - store.authentication.userData.role === "Admin" ? store.product.pageSize = pageSize : store.product.pageSizeProductPartner = pageSize; - store.authentication.userData.role === "Admin" ? store.product.page = page - 1 : store.product.pageProductPartner = page - 1 - modalLoader.setLoading(true); - store.authentication.userData.role === "Admin Partner" - ? await store.product.getProductPartner( - // store.authentication.profileData.id - ) - : await store.product.getData(); - //await store.product.getData(); - modalLoader.setLoading(false); - }, - pageSize: store.authentication.userData.role === "Admin" ? store.product.pageSize : store.product.pageSizeProductPartner, - total: store.authentication.userData.role === "Admin Partner" - ? store.product.total_data_partner - : store.product.total_data, - current: store.authentication.userData.role === "Admin" ? store.product.page + 1 : store.product.pageProductPartner + 1, - style: { marginBottom: "1rem", marginRight: "1rem" }, - }} - dataSource={ - store.authentication.userData.role === "Admin Partner" - ? store.product.dataProductPartner - : store.product.data - } - style={{ padding: 0 }} - renderItem={(item) => { - return ( -
- - -

- {item.product_name}
- {/* Harga Beli : {item.current_price_price} -
*/} - Harga Jual : {item.mark_up_price} -
-

{ + let pageNumber = page.current; + store.authentication.userData.role === "Admin" ? store.product.pageSize = page.pageSize : store.product.pageSizeProductPartner = page.pageSize; + store.authentication.userData.role === "Admin" ? store.product.page = pageNumber - 1 : store.product.pageProductPartner = pageNumber - 1 + store.product.filterSubCategory = filterSubCategories + modalLoader.setLoading(true); + store.authentication.userData.role === "Admin Partner" + ? await store.product.getProductPartner( + // store.authentication.profileData.id + ) + : await store.product.getData(); + modalLoader.setLoading(false); + }} + /> + )} + {store.ui.mediaQuery.isMobile && ( + { + store.authentication.userData.role === "Admin" ? store.product.pageSize = pageSize : store.product.pageSizeProductPartner = pageSize; + store.authentication.userData.role === "Admin" ? store.product.page = page - 1 : store.product.pageProductPartner = page - 1 + modalLoader.setLoading(true); + store.authentication.userData.role === "Admin Partner" + ? await store.product.getProductPartner( + // store.authentication.profileData.id + ) + : await store.product.getData(); + //await store.product.getData(); + modalLoader.setLoading(false); + }, + pageSize: store.authentication.userData.role === "Admin" ? store.product.pageSize : store.product.pageSizeProductPartner, + total: store.authentication.userData.role === "Admin Partner" + ? store.product.total_data_partner + : store.product.total_data, + current: store.authentication.userData.role === "Admin" ? store.product.page + 1 : store.product.pageProductPartner + 1, + style: { marginBottom: "1rem", marginRight: "1rem" }, + }} + dataSource={ + store.authentication.userData.role === "Admin Partner" + ? store.product.dataProductPartner + : store.product.data + } + style={{ padding: 0 }} + renderItem={(item) => { + return ( +
+ - Detail - -

-

+ > + +

+ {item.product_name}
+ {/* Harga Beli : {item.current_price_price} +
*/} + Harga Jual : {item.mark_up_price} +
+ +

+

+
+ } + /> +
+

+ + {item?.product_status === "ACTIVE" + ? " Tersedia" + : "Tidak"} + +

+
+ + - } - /> -
-

- - {item?.product_status === "ACTIVE" - ? " Tersedia" - : "Tidak"} - -

-
- - - - ); - }} - /> - )} - { - form.resetFields(); - handleCancel(); - }} - onOk={() => { - form - .validateFields() - .then((values) => { - console.log(values, "isi form"); - handleSubmit(values); + ); + }} + /> + )} + { form.resetFields(); - }) - .catch((info) => { - console.error("Validate Failed:", info); - }); - }} - > - - - - - - - `Rp. ${value}`.replace(/\B(?=(\d{3})+(?!\d))/g, ",") - } - parser={(value) => value.replace(/\Rp.\s?|(,*)/g, "")} - /> - - - - `Rp. ${value}`.replace(/\B(?=(\d{3})+(?!\d))/g, ",") - } - parser={(value) => value.replace(/\Rp.\s?|(,*)/g, "")} - /> - - - - - - - - - - - - - { - // setFilterSupplier([]); - // setFilterSubCategories([]); - store.product.filterSupplier = null; - store.product.filterSubCategory = null; - store.product.visibleModalFilterProduct = false; - await store.product.getData(); - }} - > - - {store.authentication.userData.role === "Admin" && ( + handleCancel(); + }} + onOk={() => { + form + .validateFields() + .then((values) => { + console.log(values, "isi form"); + handleSubmit(values); + form.resetFields(); + }) + .catch((info) => { + console.error("Validate Failed:", info); + }); + }} + > +
+ + + + + + `Rp. ${value}`.replace(/\B(?=(\d{3})+(?!\d))/g, ",") + } + parser={(value) => value.replace(/\Rp.\s?|(,*)/g, "")} + /> + + + + `Rp. ${value}`.replace(/\B(?=(\d{3})+(?!\d))/g, ",") + } + parser={(value) => value.replace(/\Rp.\s?|(,*)/g, "")} + /> + + + + + + + + + + + +
+ { + // setFilterSupplier([]); + // setFilterSubCategories([]); + store.product.filterSupplier = null; + store.product.filterSubCategory = null; + store.product.visibleModalFilterProduct = false; + await store.product.getData(); + }} + > + + {store.authentication.userData.role === "Admin" && ( +
+ + Filter Supplier + + + + )} - Filter Supplier + Filter Sub-Categories - )} - - - Filter Sub-Categories - - - - - - + + + ); }); diff --git a/src/pages/Product/ProductDetail.js b/src/pages/Product/ProductDetail.js index 6364f74..caa71a8 100644 --- a/src/pages/Product/ProductDetail.js +++ b/src/pages/Product/ProductDetail.js @@ -57,20 +57,30 @@ export const ProductDetail = observer(() => { dataIndex: "mark_up_price", key: "mark_up_price", render: (text) => - new Intl.NumberFormat("id-ID", { - style: "currency", - currency: "IDR", - }).format(text), + new Intl.NumberFormat("id-ID", { + style: "currency", + currency: "IDR", + }).format(text), }, { title: "Price", dataIndex: "price", key: "price", render: (text) => - new Intl.NumberFormat("id-ID", { - style: "currency", - currency: "IDR", - }).format(text), + new Intl.NumberFormat("id-ID", { + style: "currency", + currency: "IDR", + }).format(text), + }, + { + title: "Biaya Admin", + dataIndex: "admin_price", + key: "admin_price", + render: (text) => + new Intl.NumberFormat("id-ID", { + style: "currency", + currency: "IDR", + }).format(text), }, { title: "Tanggal Berlaku", @@ -78,7 +88,7 @@ export const ProductDetail = observer(() => { key: "startDate", render: (text) => { return ( - {text ? format(parseISO(text), "dd MMMM yyyy") : "-"} + {text ? format(parseISO(text), "dd MMMM yyyy") : "-"} ); }, }, @@ -88,174 +98,174 @@ export const ProductDetail = observer(() => { key: "endDate", render: (text) => { return ( - - {text ? format(parseISO(text), "dd MMMM yyyy") : "Sampai Sekarang"} - + + {text ? format(parseISO(text), "dd MMMM yyyy") : "Sampai Sekarang"} + ); }, }, ]; const styleSaldoTitle = store.ui.mediaQuery.isDesktop - ? { + ? { display: "flex", justifyContent: "center", } - : { fontSize: "0.75rem" }; + : { fontSize: "0.75rem" }; const styleSaldoContent = store.ui.mediaQuery.isDesktop - ? { + ? { fontSize: "1.25rem", display: "flex", justifyContent: "center", } - : null; + : null; return ( -
- - - Product Detail - -
- - - Kode - - - {store.product?.dataDetailProduct?.code} - - - Nama Produk - - - {store.product?.dataDetailProduct?.name} - - - Supplier - - - {store.product?.dataDetailProduct?.supplier?.name} - - - Status - - - {store.product?.dataDetailProduct?.status} - - - - - - -
- - Product Price History - - {store.ui.mediaQuery.isDesktop && ( -
{ - let pageNumber = page.current; - store.product.pageSizePriceHistory = page.pageSize; - store.product.pagePriceHistory = pageNumber - 1; - modalLoader.setLoading(true); - await store.product.getPriceHistoryByProduct(id); - modalLoader.setLoading(false); - }} - /> - )} - {store.ui.mediaQuery.isMobile && ( - { - store.product.pageSizePriceHistory = pageSize; - store.product.pagePriceHistory = page - 1; - modalLoader.setLoading(true); - await store.product.getPriceHistoryByProduct(id); - modalLoader.setLoading(false); - }, - pageSize: store.product.pageSizePriceHistory, - total: store.product.totalDataPriceHistory, - current: store.product.pagePriceHistory + 1, - style: { marginBottom: "1rem", marginRight: "1rem" }, - }} - dataSource={store.product.dataPriceHistory} - style={{ padding: 0 }} - renderItem={(item) => { - return ( -
- - -

- - Markup Price :{" "} - {new Intl.NumberFormat("id-ID", { - style: "currency", - currency: "IDR", - }).format(item.mark_up_price)} - {" "} -
- - Price:{" "} - {new Intl.NumberFormat("id-ID", { - style: "currency", - currency: "IDR", - }).format(item.price)} - {" "} -
- - {" "} - Tanggal Berlaku : - {item.startDate - ? format( - parseISO(item.startDate), - "dd MMMM yyyy" - ) - : "-"} - {" "} -
- - Tanggal Berakhir :{" "} - {item.endDate - ? format( - parseISO(item.endDate), - "dd MMMM yyyy" - ) - : "Sampai Sekarang"} - {" "} -
-

-

-
- } - /> - {/*
+
+ + + Product Detail + +
+ + + Kode + + + {store.product?.dataDetailProduct?.code} + + + Nama Produk + + + {store.product?.dataDetailProduct?.name} + + + Supplier + + + {store.product?.dataDetailProduct?.supplier?.name} + + + Status + + + {store.product?.dataDetailProduct?.status} + + + + + + +
+ + Product Price History + + {store.ui.mediaQuery.isDesktop && ( +
{ + let pageNumber = page.current; + store.product.pageSizePriceHistory = page.pageSize; + store.product.pagePriceHistory = pageNumber - 1; + modalLoader.setLoading(true); + await store.product.getPriceHistoryByProduct(id); + modalLoader.setLoading(false); + }} + /> + )} + {store.ui.mediaQuery.isMobile && ( + { + store.product.pageSizePriceHistory = pageSize; + store.product.pagePriceHistory = page - 1; + modalLoader.setLoading(true); + await store.product.getPriceHistoryByProduct(id); + modalLoader.setLoading(false); + }, + pageSize: store.product.pageSizePriceHistory, + total: store.product.totalDataPriceHistory, + current: store.product.pagePriceHistory + 1, + style: { marginBottom: "1rem", marginRight: "1rem" }, + }} + dataSource={store.product.dataPriceHistory} + style={{ padding: 0 }} + renderItem={(item) => { + return ( +
+ + +

+ + Markup Price :{" "} + {new Intl.NumberFormat("id-ID", { + style: "currency", + currency: "IDR", + }).format(item.mark_up_price)} + {" "} +
+ + Price:{" "} + {new Intl.NumberFormat("id-ID", { + style: "currency", + currency: "IDR", + }).format(item.price)} + {" "} +
+ + {" "} + Tanggal Berlaku : + {item.startDate + ? format( + parseISO(item.startDate), + "dd MMMM yyyy" + ) + : "-"} + {" "} +
+ + Tanggal Berakhir :{" "} + {item.endDate + ? format( + parseISO(item.endDate), + "dd MMMM yyyy" + ) + : "Sampai Sekarang"} + {" "} +
+

+

+
+ } + /> + {/*

{

*/} - - - - ); - }} - /> - )} - - - -
- -
+ + + + ); + }} + /> + )} + + + +
+ +
); }); From 6a26068339b72098484b05f7e0819298dfe6620c Mon Sep 17 00:00:00 2001 From: rahman Date: Wed, 11 May 2022 20:33:04 +0700 Subject: [PATCH 10/20] feat: revisi fixing filter admin partner and add column biaya admin --- src/component/ProductComponent.js | 661 +++++++++++++++--------------- src/store/product.js | 2 +- 2 files changed, 331 insertions(+), 332 deletions(-) diff --git a/src/component/ProductComponent.js b/src/component/ProductComponent.js index c4d28b5..ccc771b 100644 --- a/src/component/ProductComponent.js +++ b/src/component/ProductComponent.js @@ -64,40 +64,40 @@ export const ProductComponent = observer((props) => { dataIndex: "current_price_price", key: "current_price_price", render: (text) => - new Intl.NumberFormat("id-ID", { - style: "currency", - currency: "IDR", - }).format(text), + new Intl.NumberFormat("id-ID", { + style: "currency", + currency: "IDR", + }).format(text), }, { title: "Harga Jual", dataIndex: "mark_up_price", key: "mark_up_price", render: (text) => - new Intl.NumberFormat("id-ID", { - style: "currency", - currency: "IDR", - }).format(text), + new Intl.NumberFormat("id-ID", { + style: "currency", + currency: "IDR", + }).format(text), }, { title: "Harga", dataIndex: "price", key: "price", render: (text) => - new Intl.NumberFormat("id-ID", { - style: "currency", - currency: "IDR", - }).format(text), + new Intl.NumberFormat("id-ID", { + style: "currency", + currency: "IDR", + }).format(text), }, { title: "Biaya Admin", dataIndex: "admin_price", key: "admin_price", render: (text) => - new Intl.NumberFormat("id-ID", { - style: "currency", - currency: "IDR", - }).format(text), + new Intl.NumberFormat("id-ID", { + style: "currency", + currency: "IDR", + }).format(text), }, { title: "Supplier", @@ -114,27 +114,27 @@ export const ProductComponent = observer((props) => { dataIndex: "tersedia", key: "tersedia", render: (text, record) => ( - - {record?.product_status === "ACTIVE" ? " Tersedia" : "Tidak"} - + + {record?.product_status === "ACTIVE" ? " Tersedia" : "Tidak"} + ), }, { title: "Tindakan", key: "action", render: (text, record) => ( - + ), }, ]; @@ -145,7 +145,6 @@ export const ProductComponent = observer((props) => { if (store.authentication.userData.role !== "Admin") delete columns[8]; if (store.authentication.userData.role !== "Admin") delete columns[6]; if (store.authentication.userData.role !== "Admin") delete columns[2]; - if (store.authentication.userData.role !== "Admin") delete columns[5]; if (store.authentication.userData.role === "Admin Partner") delete columns[7]; //if (store.authentication.userData.role !== "Admin") delete columns[8]; //if (store.authentication.userData.role === "Admin Partner") delete columns[5]; @@ -190,10 +189,10 @@ export const ProductComponent = observer((props) => { try { const response = await store.product.update(idData, data); response?.body?.statusCode === 201 || response?.body?.statusCode === 200 - ? message.success( - response?.body?.message || "Berhasil Ubah Data Produk" - ) - : message.error(response?.body?.message || "Gagal Ubah Data Produk"); + ? message.success( + response?.body?.message || "Berhasil Ubah Data Produk" + ) + : message.error(response?.body?.message || "Gagal Ubah Data Produk"); } catch (e) { message.error(e.response?.body?.message || "Gagal Ubah Data Produk"); } @@ -206,8 +205,8 @@ export const ProductComponent = observer((props) => { try { const response = await store.product.create(data); response?.body?.statusCode === 201 || response?.body?.statusCode === 200 - ? message.success(response?.body?.message || "Berhasil Tambah Produk") - : message.error(response?.body?.message || "Gagal Tambah Produk"); + ? message.success(response?.body?.message || "Berhasil Tambah Produk") + : message.error(response?.body?.message || "Gagal Tambah Produk"); } catch (e) { console.log(e, "apa errornya"); message.error(e.response?.body?.message || "Gagal Tambah Produk"); @@ -227,8 +226,8 @@ export const ProductComponent = observer((props) => { setFilterSupplier([]); setFilterSubCategories([]); store.authentication.userData.role === "Admin Partner" - ? await store.product.getProductPartner() - : await store.product.getData(); + ? await store.product.getProductPartner() + : await store.product.getData(); //await store.product.getData(); modalLoader.setLoading(false); }; @@ -245,8 +244,8 @@ export const ProductComponent = observer((props) => { store.product.filterSubCategory = filterSubCategories; modalLoader.setLoading(true); store.authentication.userData.role === "Admin Partner" - ? await store.product.getProductPartner(filterSubCategories) - : await store.product.getData(); + ? await store.product.getProductPartner(filterSubCategories) + : await store.product.getData(); //await store.product.getData(); modalLoader.setLoading(false); //store.product.page=1 @@ -254,12 +253,12 @@ export const ProductComponent = observer((props) => { const footerLayoutFilter = [ , @@ -267,12 +266,12 @@ export const ProductComponent = observer((props) => { Batal , , @@ -284,293 +283,293 @@ export const ProductComponent = observer((props) => { }, }); return ( -
- {store.ui.mediaQuery.isDesktop && ( -
{ - let pageNumber = page.current; - store.authentication.userData.role === "Admin" ? store.product.pageSize = page.pageSize : store.product.pageSizeProductPartner = page.pageSize; - store.authentication.userData.role === "Admin" ? store.product.page = pageNumber - 1 : store.product.pageProductPartner = pageNumber - 1 - store.product.filterSubCategory = filterSubCategories - modalLoader.setLoading(true); - store.authentication.userData.role === "Admin Partner" - ? await store.product.getProductPartner( - // store.authentication.profileData.id - ) - : await store.product.getData(); - modalLoader.setLoading(false); - }} - /> - )} - {store.ui.mediaQuery.isMobile && ( - { - store.authentication.userData.role === "Admin" ? store.product.pageSize = pageSize : store.product.pageSizeProductPartner = pageSize; - store.authentication.userData.role === "Admin" ? store.product.page = page - 1 : store.product.pageProductPartner = page - 1 - modalLoader.setLoading(true); - store.authentication.userData.role === "Admin Partner" - ? await store.product.getProductPartner( - // store.authentication.profileData.id - ) - : await store.product.getData(); - //await store.product.getData(); - modalLoader.setLoading(false); - }, - pageSize: store.authentication.userData.role === "Admin" ? store.product.pageSize : store.product.pageSizeProductPartner, - total: store.authentication.userData.role === "Admin Partner" - ? store.product.total_data_partner - : store.product.total_data, - current: store.authentication.userData.role === "Admin" ? store.product.page + 1 : store.product.pageProductPartner + 1, - style: { marginBottom: "1rem", marginRight: "1rem" }, - }} - dataSource={ - store.authentication.userData.role === "Admin Partner" - ? store.product.dataProductPartner - : store.product.data - } - style={{ padding: 0 }} - renderItem={(item) => { - return ( -
- - -

- {item.product_name}
- {/* Harga Beli : {item.current_price_price} +

+ {store.ui.mediaQuery.isDesktop && ( +
{ + let pageNumber = page.current; + store.authentication.userData.role === "Admin" ? store.product.pageSize = page.pageSize : store.product.pageSizeProductPartner = page.pageSize; + store.authentication.userData.role === "Admin" ? store.product.page = pageNumber - 1 : store.product.pageProductPartner = pageNumber - 1 + store.product.filterSubCategory = filterSubCategories + modalLoader.setLoading(true); + store.authentication.userData.role === "Admin Partner" + ? await store.product.getProductPartner( + filterSubCategories + ) + : await store.product.getData(); + modalLoader.setLoading(false); + }} + /> + )} + {store.ui.mediaQuery.isMobile && ( + { + store.authentication.userData.role === "Admin" ? store.product.pageSize = pageSize : store.product.pageSizeProductPartner = pageSize; + store.authentication.userData.role === "Admin" ? store.product.page = page - 1 : store.product.pageProductPartner = page - 1 + modalLoader.setLoading(true); + store.authentication.userData.role === "Admin Partner" + ? await store.product.getProductPartner( + filterSubCategories + ) + : await store.product.getData(); + //await store.product.getData(); + modalLoader.setLoading(false); + }, + pageSize: store.authentication.userData.role === "Admin" ? store.product.pageSize : store.product.pageSizeProductPartner, + total: store.authentication.userData.role === "Admin Partner" + ? store.product.total_data_partner + : store.product.total_data, + current: store.authentication.userData.role === "Admin" ? store.product.page + 1 : store.product.pageProductPartner + 1, + style: { marginBottom: "1rem", marginRight: "1rem" }, + }} + dataSource={ + store.authentication.userData.role === "Admin Partner" + ? store.product.dataProductPartner + : store.product.data + } + style={{ padding: 0 }} + renderItem={(item) => { + return ( +
+ + +

+ {item.product_name}
+ {/* Harga Beli : {item.current_price_price}
*/} - Harga Jual : {item.mark_up_price} -
- -

-

-
- } - /> -
-

- - {item?.product_status === "ACTIVE" - ? " Tersedia" - : "Tidak"} - -

-
- - + Harga Jual : {item.mark_up_price} +
+ +

+

- ); - }} - /> - )} - { - form.resetFields(); - handleCancel(); - }} - onOk={() => { - form - .validateFields() - .then((values) => { - console.log(values, "isi form"); - handleSubmit(values); - form.resetFields(); - }) - .catch((info) => { - console.error("Validate Failed:", info); - }); - }} - > -
- - - - - - `Rp. ${value}`.replace(/\B(?=(\d{3})+(?!\d))/g, ",") - } - parser={(value) => value.replace(/\Rp.\s?|(,*)/g, "")} - /> - - - - `Rp. ${value}`.replace(/\B(?=(\d{3})+(?!\d))/g, ",") - } - parser={(value) => value.replace(/\Rp.\s?|(,*)/g, "")} - /> - - - - - - - - - - - -
- { - // setFilterSupplier([]); - // setFilterSubCategories([]); - store.product.filterSupplier = null; - store.product.filterSubCategory = null; - store.product.visibleModalFilterProduct = false; - await store.product.getData(); - }} - > - - {store.authentication.userData.role === "Admin" && ( -
- - Filter Supplier - - - - )} + > + + {item?.product_status === "ACTIVE" + ? " Tersedia" + : "Tidak"} + +

+ + + + + ); + }} + /> + )} + { + form.resetFields(); + handleCancel(); + }} + onOk={() => { + form + .validateFields() + .then((values) => { + console.log(values, "isi form"); + handleSubmit(values); + form.resetFields(); + }) + .catch((info) => { + console.error("Validate Failed:", info); + }); + }} + > +
+ + + + + + `Rp. ${value}`.replace(/\B(?=(\d{3})+(?!\d))/g, ",") + } + parser={(value) => value.replace(/\Rp.\s?|(,*)/g, "")} + /> + + + + `Rp. ${value}`.replace(/\B(?=(\d{3})+(?!\d))/g, ",") + } + parser={(value) => value.replace(/\Rp.\s?|(,*)/g, "")} + /> + + + + + + + + + + + +
+ { + // setFilterSupplier([]); + // setFilterSubCategories([]); + store.product.filterSupplier = null; + store.product.filterSubCategory = null; + store.product.visibleModalFilterProduct = false; + await store.product.getData(); + }} + > + + {store.authentication.userData.role === "Admin" && (
- Filter Sub-Categories + Filter Supplier - - - + )} + + + Filter Sub-Categories + + + + + + ); }); diff --git a/src/store/product.js b/src/store/product.js index 057db3f..7beeed4 100644 --- a/src/store/product.js +++ b/src/store/product.js @@ -101,7 +101,7 @@ export class Product { } async getProductPartner(id) { - + console.log({ id }); if (id === undefined) { try { const response = await http.get(`/product/by-categories?page=${this.pageProductPartner}&pageSize=${this.pageSizeProductPartner}&sub-category=`); From e8830781039844085cb00a8d0aefef467e9dd7e6 Mon Sep 17 00:00:00 2001 From: rahman Date: Thu, 12 May 2022 17:00:53 +0700 Subject: [PATCH 11/20] feat: hide column tindakan admin partner --- src/component/ProductComponent.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/component/ProductComponent.js b/src/component/ProductComponent.js index ccc771b..55ad0c9 100644 --- a/src/component/ProductComponent.js +++ b/src/component/ProductComponent.js @@ -140,6 +140,7 @@ export const ProductComponent = observer((props) => { ]; //if (store.authentication.userData.role !== "Admin") columns.pop(); //if (store.authentication.userData.role === "Admin Partner") delete columns[2]; + if (store.authentication.userData.role === "Admin Partner") delete columns[9]; if (store.authentication.userData.role === "Admin Partner") delete columns[3]; if (store.authentication.userData.role != "Admin Partner") delete columns[4]; if (store.authentication.userData.role !== "Admin") delete columns[8]; From 77513308a2942db36c9a1638ae66e9b3e308f7e2 Mon Sep 17 00:00:00 2001 From: rahman Date: Thu, 12 May 2022 17:10:28 +0700 Subject: [PATCH 12/20] feat: hide column tindakan admin partner --- src/component/ProductComponent.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/component/ProductComponent.js b/src/component/ProductComponent.js index 55ad0c9..7145ab8 100644 --- a/src/component/ProductComponent.js +++ b/src/component/ProductComponent.js @@ -33,6 +33,7 @@ export const ProductComponent = observer((props) => { const [filterSupplier, setFilterSupplier] = useState([]); const [filterSubCategories, setFilterSubCategories] = useState([]); const modalLoader = useContext(ModalLoaderContext); + const role = store.authentication.userData.role const handleEditButton = (data) => { console.log(data, "isi data"); @@ -280,7 +281,7 @@ export const ProductComponent = observer((props) => { const handleClickRow = (record, index) => ({ onClick: (event) => { - history.push(LINKS.PRODUCT_DETAIL.replace(":id", record.product_id)); + role === "Admin Partner" ? history.push(LINKS.PRODUCT_DETAIL.replace(":id", record.product_id)) : '' }, }); return ( From e98914fb86a1de27f30bb22feec675ba31f1d443 Mon Sep 17 00:00:00 2001 From: rahman Date: Thu, 12 May 2022 17:19:57 +0700 Subject: [PATCH 13/20] feat: validasi detail product admin partner --- src/component/ProductComponent.js | 1 - 1 file changed, 1 deletion(-) diff --git a/src/component/ProductComponent.js b/src/component/ProductComponent.js index 7145ab8..e39f214 100644 --- a/src/component/ProductComponent.js +++ b/src/component/ProductComponent.js @@ -139,7 +139,6 @@ export const ProductComponent = observer((props) => { ), }, ]; - //if (store.authentication.userData.role !== "Admin") columns.pop(); //if (store.authentication.userData.role === "Admin Partner") delete columns[2]; if (store.authentication.userData.role === "Admin Partner") delete columns[9]; if (store.authentication.userData.role === "Admin Partner") delete columns[3]; From 8737da9da4e87984fdcff7c4e2e360e45565d614 Mon Sep 17 00:00:00 2001 From: rahman Date: Thu, 12 May 2022 17:39:15 +0700 Subject: [PATCH 14/20] feat: validasi detail product admin partner --- src/component/ProductComponent.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/component/ProductComponent.js b/src/component/ProductComponent.js index e39f214..2309c9a 100644 --- a/src/component/ProductComponent.js +++ b/src/component/ProductComponent.js @@ -280,7 +280,7 @@ export const ProductComponent = observer((props) => { const handleClickRow = (record, index) => ({ onClick: (event) => { - role === "Admin Partner" ? history.push(LINKS.PRODUCT_DETAIL.replace(":id", record.product_id)) : '' + history.push(LINKS.PRODUCT_DETAIL.replace(":id", record.product_id)) }, }); return ( @@ -298,7 +298,7 @@ export const ProductComponent = observer((props) => { ? store.product.dataProductPartner : store.product.data } - onRow={handleClickRow} + onRow={role === "Admin Partner" ? false : handleClickRow} pagination={{ pageSize: store.authentication.userData.role === "Admin" ? store.product.pageSize : store.product.pageSizeProductPartner, total: From 6c4a78f87128ed7d6ac3e204a4e39e0e3a648b42 Mon Sep 17 00:00:00 2001 From: rahman Date: Mon, 23 May 2022 21:36:27 +0700 Subject: [PATCH 15/20] feat: add column partner fee in list product role admin --- src/component/ProductComponent.js | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/src/component/ProductComponent.js b/src/component/ProductComponent.js index 2309c9a..a371bf5 100644 --- a/src/component/ProductComponent.js +++ b/src/component/ProductComponent.js @@ -62,8 +62,8 @@ export const ProductComponent = observer((props) => { }, { title: "Harga Beli", - dataIndex: "current_price_price", - key: "current_price_price", + dataIndex: "price", + key: "price", render: (text) => new Intl.NumberFormat("id-ID", { style: "currency", @@ -100,6 +100,16 @@ export const ProductComponent = observer((props) => { currency: "IDR", }).format(text), }, + { + title: "Partner fee", + dataIndex: "partner_fee", + key: "partner_fee", + render: (text) => + new Intl.NumberFormat("id-ID", { + style: "currency", + currency: "IDR", + }).format(text), + }, { title: "Supplier", dataIndex: "supplier_name", @@ -140,13 +150,14 @@ export const ProductComponent = observer((props) => { }, ]; //if (store.authentication.userData.role === "Admin Partner") delete columns[2]; - if (store.authentication.userData.role === "Admin Partner") delete columns[9]; + if (store.authentication.userData.role === "Admin Partner") delete columns[10]; if (store.authentication.userData.role === "Admin Partner") delete columns[3]; - if (store.authentication.userData.role != "Admin Partner") delete columns[4]; - if (store.authentication.userData.role !== "Admin") delete columns[8]; + if (store.authentication.userData.role !== "Admin Partner") delete columns[4]; + if (store.authentication.userData.role !== "Admin") delete columns[9]; if (store.authentication.userData.role !== "Admin") delete columns[6]; + if (store.authentication.userData.role !== "Admin") delete columns[7]; if (store.authentication.userData.role !== "Admin") delete columns[2]; - if (store.authentication.userData.role === "Admin Partner") delete columns[7]; + if (store.authentication.userData.role === "Admin Partner") delete columns[8]; //if (store.authentication.userData.role !== "Admin") delete columns[8]; //if (store.authentication.userData.role === "Admin Partner") delete columns[5]; From cd3d61d5f5a61cb7fe9dc05f315f99d0a1c34828 Mon Sep 17 00:00:00 2001 From: rahman Date: Tue, 24 May 2022 00:59:01 +0700 Subject: [PATCH 16/20] feat: add column partner fee in detail product role admin --- src/component/ProductComponent.js | 2 + src/pages/Product/ProductDetail.js | 379 +++++++++++++++-------------- 2 files changed, 196 insertions(+), 185 deletions(-) diff --git a/src/component/ProductComponent.js b/src/component/ProductComponent.js index a371bf5..550485b 100644 --- a/src/component/ProductComponent.js +++ b/src/component/ProductComponent.js @@ -136,6 +136,7 @@ export const ProductComponent = observer((props) => { { title: "Tindakan", key: "action", + fixed: 'right', render: (text, record) => ( - - - Kode - - - {store.product?.dataDetailProduct?.code} - - - Nama Produk - - - {store.product?.dataDetailProduct?.name} - - - Supplier - - - {store.product?.dataDetailProduct?.supplier?.name} - - - Status - - - {store.product?.dataDetailProduct?.status} - - - - - - -
- - Product Price History - - {store.ui.mediaQuery.isDesktop && ( -
{ - let pageNumber = page.current; - store.product.pageSizePriceHistory = page.pageSize; - store.product.pagePriceHistory = pageNumber - 1; - modalLoader.setLoading(true); - await store.product.getPriceHistoryByProduct(id); - modalLoader.setLoading(false); - }} - /> - )} - {store.ui.mediaQuery.isMobile && ( - { - store.product.pageSizePriceHistory = pageSize; - store.product.pagePriceHistory = page - 1; - modalLoader.setLoading(true); - await store.product.getPriceHistoryByProduct(id); - modalLoader.setLoading(false); - }, - pageSize: store.product.pageSizePriceHistory, - total: store.product.totalDataPriceHistory, - current: store.product.pagePriceHistory + 1, - style: { marginBottom: "1rem", marginRight: "1rem" }, - }} - dataSource={store.product.dataPriceHistory} - style={{ padding: 0 }} - renderItem={(item) => { - return ( -
- - -

- - Markup Price :{" "} - {new Intl.NumberFormat("id-ID", { - style: "currency", - currency: "IDR", - }).format(item.mark_up_price)} - {" "} -
- - Price:{" "} - {new Intl.NumberFormat("id-ID", { - style: "currency", - currency: "IDR", - }).format(item.price)} - {" "} -
- - {" "} - Tanggal Berlaku : - {item.startDate - ? format( - parseISO(item.startDate), - "dd MMMM yyyy" - ) - : "-"} - {" "} -
- - Tanggal Berakhir :{" "} - {item.endDate - ? format( - parseISO(item.endDate), - "dd MMMM yyyy" - ) - : "Sampai Sekarang"} - {" "} -
-

-

-
- } - /> - {/*
+
+ + + Product Detail + +
+ + + Kode + + + {store.product?.dataDetailProduct?.code} + + + Nama Produk + + + {store.product?.dataDetailProduct?.name} + + + Supplier + + + {store.product?.dataDetailProduct?.supplier?.name} + + + Status + + + {store.product?.dataDetailProduct?.status} + + + + + + +
+ + Product Price History + + {store.ui.mediaQuery.isDesktop && ( +
{ + let pageNumber = page.current; + store.product.pageSizePriceHistory = page.pageSize; + store.product.pagePriceHistory = pageNumber - 1; + modalLoader.setLoading(true); + await store.product.getPriceHistoryByProduct(id); + modalLoader.setLoading(false); + }} + /> + )} + {store.ui.mediaQuery.isMobile && ( + { + store.product.pageSizePriceHistory = pageSize; + store.product.pagePriceHistory = page - 1; + modalLoader.setLoading(true); + await store.product.getPriceHistoryByProduct(id); + modalLoader.setLoading(false); + }, + pageSize: store.product.pageSizePriceHistory, + total: store.product.totalDataPriceHistory, + current: store.product.pagePriceHistory + 1, + style: { marginBottom: "1rem", marginRight: "1rem" }, + }} + dataSource={store.product.dataPriceHistory} + style={{ padding: 0 }} + renderItem={(item) => { + return ( +
+ + +

+ + Markup Price :{" "} + {new Intl.NumberFormat("id-ID", { + style: "currency", + currency: "IDR", + }).format(item.mark_up_price)} + {" "} +
+ + Price:{" "} + {new Intl.NumberFormat("id-ID", { + style: "currency", + currency: "IDR", + }).format(item.price)} + {" "} +
+ + {" "} + Tanggal Berlaku : + {item.startDate + ? format( + parseISO(item.startDate), + "dd MMMM yyyy" + ) + : "-"} + {" "} +
+ + Tanggal Berakhir :{" "} + {item.endDate + ? format( + parseISO(item.endDate), + "dd MMMM yyyy" + ) + : "Sampai Sekarang"} + {" "} +
+

+

+
+ } + /> + {/*

{

*/} - - - - ); - }} - /> - )} - - - -
- -
+ + + + ); + }} + /> + )} + + + +
+ +
); }); From c330f65612935a9d1f74216e6977dbe1fae63869 Mon Sep 17 00:00:00 2001 From: rahman Date: Tue, 24 May 2022 16:39:54 +0700 Subject: [PATCH 17/20] feat: wording fee jual in product list --- src/component/ProductComponent.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/component/ProductComponent.js b/src/component/ProductComponent.js index 550485b..311d64a 100644 --- a/src/component/ProductComponent.js +++ b/src/component/ProductComponent.js @@ -101,7 +101,7 @@ export const ProductComponent = observer((props) => { }).format(text), }, { - title: "Partner fee", + title: "Fee Jual", dataIndex: "partner_fee", key: "partner_fee", render: (text) => From 5fea6f568d56c4ebb4ea550f21978605caad8d11 Mon Sep 17 00:00:00 2001 From: rahman Date: Tue, 24 May 2022 21:06:34 +0700 Subject: [PATCH 18/20] feat: create table in profile --- src/pages/Profile/Profile.js | 264 +++++++++++++++++++++++++++++------ src/store/transaction.js | 41 ++++-- 2 files changed, 255 insertions(+), 50 deletions(-) diff --git a/src/pages/Profile/Profile.js b/src/pages/Profile/Profile.js index 2f860b3..4ff74d0 100644 --- a/src/pages/Profile/Profile.js +++ b/src/pages/Profile/Profile.js @@ -66,13 +66,14 @@ export const Profile = observer(() => { await Promise.allSettled([ store.authentication.getProfile(), store.transaction.getDataHistoryTransaction(), + store.transaction.getDataHistoryCheckBill(), ]); await store.transaction.getDataHistoryTopUpProfile( store.authentication.profileData?.id ); modalLoader.setLoading(false); })(); - }, []); + }, [store.transaction.filterStart, store.transaction.filterEnd]); const handleRemoveFilter = async () => { store.transaction.filterStart = null; @@ -81,11 +82,11 @@ export const Profile = observer(() => { setFilterStart([]); setFilterEnd([]); //await store.transaction.getDataHistoryTransaction(); - actionFilter === true - ? await store.transaction.getDataHistoryTopUpProfile( - store.authentication.profileData?.id - ) - : await store.transaction.getDataHistoryTransaction(); + // actionFilter === true + // ? await store.transaction.getDataHistoryTopUpProfile( + // store.authentication.profileData?.id + // ) + // : await store.transaction.getDataHistoryTransaction(); store.transaction.visibleModalFilterTransaction = false; setAction(false); }; @@ -95,11 +96,11 @@ export const Profile = observer(() => { //form.resetFields(); store.transaction.filterEnd = null; store.transaction.visibleModalFilterTransaction = false; - actionFilter === true - ? await store.transaction.getDataHistoryTopUpProfile( - store.authentication.profileData?.id - ) - : await store.transaction.getDataHistoryTransaction(); + // actionFilter === true + // ? await store.transaction.getDataHistoryTopUpProfile( + // store.authentication.profileData?.id + // ) + // : await store.transaction.getDataHistoryTransaction(); setAction(false); //await store.transaction.getDataHistoryTransaction(); }; @@ -113,14 +114,14 @@ export const Profile = observer(() => { "YYYY-MM-DD HH:mm:ss" ); modalLoader.setLoading(true); - actionFilter === true - ? await store.transaction.getDataHistoryTopUpProfile( - store.authentication.profileData?.id - ) - : await store.transaction.getDataHistoryTransaction(); + // actionFilter === true + // ? await store.transaction.getDataHistoryTopUpProfile( + // store.authentication.profileData?.id + // ) + // : await store.transaction.getDataHistoryTransaction(); modalLoader.setLoading(false); - store.transaction.filterStart = null; - store.transaction.filterEnd = null; + // store.transaction.filterStart = null; + // store.transaction.filterEnd = null; //form.resetFields(); store.transaction.visibleModalFilterTransaction = false; setAction(false); @@ -194,15 +195,15 @@ export const Profile = observer(() => { record.status === 1 ? "success" : record.status === 0 - ? "warning" - : "processing" + ? "warning" + : "processing" } > {record.status === 1 ? "Sukses" : record.status === 0 - ? "Dalam Proses" - : "Gagal"} + ? "Dalam Proses" + : "Gagal"} ); }, @@ -266,18 +267,93 @@ export const Profile = observer(() => { }, }, ]; + + const columnBill = [ + { + title: "Code Product", + dataIndex: "product_code", + key: "product_code", + }, + { + title: "Admin Price", + dataIndex: "admin_price", + key: "admin_price", + render: (text) => + new Intl.NumberFormat("id-ID", { + style: "currency", + currency: "IDR", + }).format(text), + }, + { + title: "Tagihan BPJS", + dataIndex: "amount", + key: "amount", + }, + { + title: "Nomor tujuan", + dataIndex: "destination", + key: "destination", + }, + { + title: "Transaction Id", + dataIndex: "trx_id", + key: "trx_id", + }, + { + title: "Partner Transaction Id", + dataIndex: "partner_trx_id", + key: "partner_trx_id", + }, + { + title: "Tanggal Transaksi", + dataIndex: "createdAt", + key: "createdAt", + render: (text, record) => { + return ( + + {format(parseISO(record.createdAt), "dd MMMM yyyy HH:mm:ss")} + + ); + }, + }, + { + title: "Status", + dataIndex: "status", + key: "status", + render: (text, record) => { + console.log("status", record) + return ( + + {record.status === "SUCCESS" + ? "Sukses" + : record.status === 0 + ? "Dalam Proses" + : "Gagal"} + + ); + }, + }, + ]; const styleSaldoTitle = store.ui.mediaQuery.isDesktop ? { - display: "flex", - justifyContent: "center", - } + display: "flex", + justifyContent: "center", + } : { fontSize: "0.75rem" }; const styleSaldoContent = store.ui.mediaQuery.isDesktop ? { - fontSize: "1.25rem", - display: "flex", - justifyContent: "center", - } + fontSize: "1.25rem", + display: "flex", + justifyContent: "center", + } : null; const handleSubmit = async (id, data) => { @@ -301,8 +377,8 @@ export const Profile = observer(() => { { dataSource={store.transaction.dataHistoryTransaction} pagination={{ onChange: async (page, pageSize) => { - console.log(page, "Page"); - console.log(pageSize, "Page size"); store.transaction.page = pageSize; store.transaction.page = page - 1; modalLoader.setLoading(true); @@ -657,15 +731,15 @@ export const Profile = observer(() => { item.status === 1 ? "success" : item.status === 0 - ? "warning" - : "processing" + ? "warning" + : "processing" } > {item.status === 1 ? "Sukses" : item.status === 0 - ? "Dalam Proses" - : "Gagal"} + ? "Dalam Proses" + : "Gagal"} } {" "} @@ -704,6 +778,118 @@ export const Profile = observer(() => { )} + + + {store.ui.mediaQuery.isDesktop && ( +
{ + let pageNumber = page.current; + store.transaction.pageSize = page.pageSize; + store.transaction.page = pageNumber - 1; + modalLoader.setLoading(true); + await store.transaction.getDataHistoryCheckBill(); + modalLoader.setLoading(false); + }} + /> + )} + {store.ui.mediaQuery.isMobile && ( +
+ { + console.log(page, "Page"); + console.log(pageSize, "Page size"); + store.transaction.pageSize = pageSize; + store.transaction.page = page - 1; + modalLoader.setLoading(true); + await store.transaction.getDataHistoryCheckBill(); + modalLoader.setLoading(false); + }, + pageSize: store.transaction.pageSize, + total: store.transaction.total_dataHistorybillProfile, + current: store.transaction.page + 1, + style: { marginBottom: "1rem", marginRight: "1rem" }, + }} + style={{ padding: 0 }} + renderItem={(item) => { + return ( +
+ + +

+ + Pengirim : {item.sender_name} + {" "} +
+ + Amount :{" "} + {new Intl.NumberFormat("id-ID", { + style: "currency", + currency: "IDR", + }).format(item.amount || 0)} + {" "} +
+ + Transaction Date :{" "} + {format( + parseISO(item.transaction_date), + "dd-MM-yyyy" + )} + {" "} +
+

+
+ } + /> + + +
+ ); + }} + /> + + )} + @@ -719,8 +905,8 @@ export const Profile = observer(() => { store.transaction.visibleModalFilterTransaction = false; actionFilter === true ? await store.transaction.getDataHistoryTopUpProfile( - store.authentication.profileData?.id - ) + store.authentication.profileData?.id + ) : await store.transaction.getDataHistoryTransaction(); }} > diff --git a/src/store/transaction.js b/src/store/transaction.js index da74f34..25f3910 100644 --- a/src/store/transaction.js +++ b/src/store/transaction.js @@ -11,8 +11,8 @@ export class Transaction { filterSubCategory = null; visibleModalProduct = false; visibleModalTransaction = false; - pageSizeDetail=10; - pageDetail=0 + pageSizeDetail = 10; + pageDetail = 0 pageCategories = 0; pageSizeCategories = 10; @@ -40,15 +40,18 @@ export class Transaction { dataHistoryTopUp = []; total_dataHistoryTopUp = 0; + dataHistorybillProfile = []; + total_dataHistorybillProfile = 0; + dataHistoryTopUpProfile = []; total_dataHistoryTopUpProfile = 0; dataTransaction = []; dataTransactionB2B = []; dataTransactionPartner = []; - total_dataDetailHistoryTransactionDetailUser=0; + total_dataDetailHistoryTransactionDetailUser = 0; + - //filter visibleModalFilterTransaction = false; filterStart = null; @@ -130,6 +133,23 @@ export class Transaction { } } + async getDataHistoryCheckBill() { + try { + const response = await http.get( + `/transaction/check-bill-history` + ); + // const response = await http.get( + // `/transaction/check-bill-history?page=${this.page}&pageSize=${this.pageSize}&start=${this.filterStart}&end=${this.filterEnd}` + // ); + console.log("bill", response); + this.dataHistorybillProfile = response.body.data ?? []; + this.total_dataHistorybillProfile = response?.body?.count ?? 0; + console.log(this.total_dataHistorybillProfile) + } catch (e) { + console.error(e); + } + } + async getDataHistoryTransaction() { try { const response = await http.get( @@ -138,7 +158,6 @@ export class Transaction { console.log(response); this.dataHistoryTransaction = response.body.data ?? []; this.total_dataHistoryTransaction = response?.body?.count ?? 0; - console.log(this.total_dataHistoryTransaction) } catch (e) { console.error(e); } @@ -147,7 +166,7 @@ export class Transaction { async getDetailHistoryTransaction(id) { try { const response = await http.get(`/transaction/history-user/${id}?page=${this.page}&pageSize=${this.pageSize}&start=${this.filterStart}&end=${this.filterEnd}`); - console.log(response,'Data Trans'); + console.log(response, 'Data Trans'); this.dataDetailHistoryTransactionDetailUser = response.body.data ?? []; this.total_data = response?.body?.count ?? 0; } catch (e) { @@ -160,7 +179,7 @@ export class Transaction { const response = await http.get( `/transaction/history-deposit?page=${this.page}&pageSize=${this.pageSize}&user-destination=${id}&start=${this.filterStart}&end=${this.filterEnd}` ); - console.log(response,'get data history') + console.log(response, 'get data history') this.dataHistoryTopUp = response.body.data ?? []; this.total_dataHistoryTopUp = response?.body?.count ?? 0; } catch (e) { @@ -173,7 +192,7 @@ export class Transaction { const response = await http.get( `/transaction/history-deposit-profile?page=${this.page}&pageSize=${this.pageSize}&user-destination=${id}&start=${this.filterStart}&end=${this.filterEnd}` ); - console.log(response,'get data history Profile') + console.log(response, 'get data history Profile') this.dataHistoryTopUpProfile = response.body.data ?? []; this.total_dataHistoryTopUpProfile = response?.body?.count ?? 0; } catch (e) { @@ -192,9 +211,9 @@ export class Transaction { } async buyProduct(data) { - const response = await http.post("/transaction/order").send(data); - console.log(response,'dari store') - return response; + const response = await http.post("/transaction/order").send(data); + console.log(response, 'dari store') + return response; } async buyProd(data) { From 166e8ecde5f00107391dacbcef64606ca1ec775f Mon Sep 17 00:00:00 2001 From: rahman Date: Wed, 25 May 2022 01:24:18 +0700 Subject: [PATCH 19/20] fixing wording --- src/pages/Profile/Profile.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/Profile/Profile.js b/src/pages/Profile/Profile.js index 4ff74d0..28614d4 100644 --- a/src/pages/Profile/Profile.js +++ b/src/pages/Profile/Profile.js @@ -285,7 +285,7 @@ export const Profile = observer(() => { }).format(text), }, { - title: "Tagihan BPJS", + title: "Tagihan Postpaid", dataIndex: "amount", key: "amount", }, From e12b530e7dba7dd9a1dcd0edeeab0460f7c592c2 Mon Sep 17 00:00:00 2001 From: Fadli Date: Mon, 20 Jun 2022 13:53:14 +0700 Subject: [PATCH 20/20] - add code in detail user in role admin --- src/pages/Membership/DetailUser.js | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/pages/Membership/DetailUser.js b/src/pages/Membership/DetailUser.js index cb08660..98ff298 100644 --- a/src/pages/Membership/DetailUser.js +++ b/src/pages/Membership/DetailUser.js @@ -445,6 +445,7 @@ export const DetailUser = observer(() => { onClick={() => { setInitialData({ id: store.membership.dataDetail.id, + code: store.membership.dataDetail.partner.code, name: store.membership.dataDetail.userDetail.name, username: store.membership.dataDetail.username, identity_number: @@ -558,6 +559,14 @@ export const DetailUser = observer(() => { {store.authentication.dataProfit.userDetail?.identity_number} + + Code + + + + {store.authentication.dataProfit.partner?.code} + + Status