diff --git a/src/pages/transaction/approval-transaction/blocks/DetailApprovalTransaction.tsx b/src/pages/transaction/approval-transaction/blocks/DetailApprovalTransaction.tsx index 35756d2..eb72ba9 100644 --- a/src/pages/transaction/approval-transaction/blocks/DetailApprovalTransaction.tsx +++ b/src/pages/transaction/approval-transaction/blocks/DetailApprovalTransaction.tsx @@ -202,14 +202,20 @@ const DetailApprovalTransaction = () => {

Amount

-

{new Intl.NumberFormat('en-US', { style: 'currency', currency: 'USD' }).format(transactionDetails?.purchase?.amount) ?? new Intl.NumberFormat('en-US', { style: 'currency', currency: 'USD' }).format(transactionDetails?.transfer.amount)}

+

+ {(transactionDetails?.purchase?.amount ?? transactionDetails?.transfer?.amount) != null + ? new Intl.NumberFormat('en-US', { style: 'currency', currency: 'USD' }).format( + transactionDetails.purchase?.amount ?? transactionDetails.transfer?.amount + ) + : "-"} +

+

Fee

- {transactionDetails?.kind === 'P' - ? transactionDetails?.purchase.fee_amount.toLocaleString('en-US', { style: 'currency', currency: 'USD' }) - : transactionDetails?.transfer.fee_amount.toLocaleString('en-US', { style: 'currency', currency: 'USD' })} + {(transactionDetails?.transfer?.fee_amount ?? transactionDetails?.purchase?.fee_amount ?? 0) + .toLocaleString('en-US', { style: 'currency', currency: 'USD' })}

@@ -290,19 +296,33 @@ const DetailApprovalTransaction = () => {

Amount

-

{new Intl.NumberFormat('en-US', { style: 'currency', currency: 'USD' }).format(transactionDetails?.purchase.amount)}

+

+ {new Intl.NumberFormat('en-US', { style: 'currency', currency: 'USD' }).format( + transactionDetails?.purchase?.amount ?? transactionDetails?.transfer?.amount ?? 0 + )} +

Cashback

-

{new Intl.NumberFormat('en-US', { style: 'currency', currency: 'USD' }).format(transactionDetails?.purchase.cashback)}

+

+ {new Intl.NumberFormat('en-US', { style: 'currency', currency: 'USD' }).format( + transactionDetails?.purchase?.cashback ?? transactionDetails?.transfer?.cashback ?? 0 + )} +

Cashback Point

-

{transactionDetails?.purchase.cashback_point}

+

+ {transactionDetails?.purchase?.cashback_point ?? transactionDetails?.transfer?.cashback_point ?? 0} +

Fee Amount

-

{new Intl.NumberFormat('en-US', { style: 'currency', currency: 'USD' }).format(transactionDetails?.purchase.fee_amount)}

+

+ {new Intl.NumberFormat('en-US', { style: 'currency', currency: 'USD' }).format( + transactionDetails?.purchase?.fee_amount ?? transactionDetails?.transfer?.fee_amount ?? 0 + )} +

diff --git a/src/pages/transaction/approval-transaction/hooks/ApprovalTransactionContext.tsx b/src/pages/transaction/approval-transaction/hooks/ApprovalTransactionContext.tsx index 4308695..f1cfb9f 100644 --- a/src/pages/transaction/approval-transaction/hooks/ApprovalTransactionContext.tsx +++ b/src/pages/transaction/approval-transaction/hooks/ApprovalTransactionContext.tsx @@ -270,28 +270,19 @@ const ApprovalTransactionProvider = ({ children }: { children: React.ReactNode } }); } - // Constructing filter object with dynamic properties const formattedFilter: any = { "Transactions.transaction_date": { from: `${startdate} 00:00:00`, - to: `${enddate} 23:59:59`, - }, + to: `${enddate} 23:59:59` + } }; - + if (transactioncode) { - formattedFilter["Transactions.code"] = { like: `%${transactioncode}%` }; - } - - if (transactioncode) { - formattedFilter["Transactions.msisdn"] = { - like: `${transactioncode}` - }; - } - - if (transactioncode) { - formattedFilter["Transactions.fullname"] = { - like: `${transactioncode}` - }; + formattedFilter["$or"] = [ + { "Transactions.code": { like: `%${transactioncode}%` } }, + { "Transactions.msisdn": { like: `${transactioncode}` } }, + { "origin_customer.fullname": { like: `${transactioncode}` } } + ]; } // Handle approval status filter diff --git a/src/pages/transaction/history-transaction/blocks/DetailTransaction.tsx b/src/pages/transaction/history-transaction/blocks/DetailTransaction.tsx index decf631..976ec28 100644 --- a/src/pages/transaction/history-transaction/blocks/DetailTransaction.tsx +++ b/src/pages/transaction/history-transaction/blocks/DetailTransaction.tsx @@ -49,7 +49,7 @@ const DetailTransaction = () => { id: selectedTransactionId }); setTransactionDetails(response?.data); - // console.log(response?.data.origin_customer.id); + // console.log(response?.data); // console.log(selectedTransactionId); } catch (error) { console.error('Error fetching transaction', error); @@ -221,14 +221,20 @@ const DetailTransaction = () => {

Amount

-

{new Intl.NumberFormat('en-US', { style: 'currency', currency: 'USD' }).format(transactionDetails?.purchase?.amount) ?? new Intl.NumberFormat('en-US', { style: 'currency', currency: 'USD' }).format(transactionDetails?.transfer.amount)}

+

+ {(transactionDetails?.purchase?.amount ?? transactionDetails?.transfer?.amount) != null + ? new Intl.NumberFormat('en-US', { style: 'currency', currency: 'USD' }).format( + transactionDetails.purchase?.amount ?? transactionDetails.transfer?.amount + ) + : "-"} +

+

Fee

- {transactionDetails?.kind === 'P' - ? transactionDetails?.purchase.fee_amount.toLocaleString('en-US', { style: 'currency', currency: 'USD' }) - : transactionDetails?.transfer.fee_amount.toLocaleString('en-US', { style: 'currency', currency: 'USD' })} + {(transactionDetails?.transfer?.fee_amount ?? transactionDetails?.purchase?.fee_amount ?? 0) + .toLocaleString('en-US', { style: 'currency', currency: 'USD' })}

@@ -299,69 +305,91 @@ const DetailTransaction = () => {

Amount

-

{new Intl.NumberFormat('en-US', { style: 'currency', currency: 'USD' }).format(transactionDetails?.purchase.amount)}

+

+ {new Intl.NumberFormat('en-US', { style: 'currency', currency: 'USD' }).format( + transactionDetails?.purchase?.amount ?? transactionDetails?.transfer?.amount ?? 0 + )} +

Cashback

-

{new Intl.NumberFormat('en-US', { style: 'currency', currency: 'USD' }).format(transactionDetails?.purchase.cashback)}

+

+ {new Intl.NumberFormat('en-US', { style: 'currency', currency: 'USD' }).format( + transactionDetails?.purchase?.cashback ?? transactionDetails?.transfer?.cashback ?? 0 + )} +

Cashback Point

-

{transactionDetails?.purchase.cashback_point}

+

+ {transactionDetails?.purchase?.cashback_point ?? transactionDetails?.transfer?.cashback_point ?? 0} +

Fee Amount

-

{new Intl.NumberFormat('en-US', { style: 'currency', currency: 'USD' }).format(transactionDetails?.purchase.fee_amount)}

-
-
-
- )} - {activeTab === 'detail' && transactionDetails?.kind === 'P' && ( -
-

- Product Information - - Product Info - -

-
-
-

Product Name

-

{transactionDetails?.purchase.product.name}

-
-
-

Price Cash

- {new Intl.NumberFormat('en-US', { style: 'currency', currency: 'USD' }).format(transactionDetails?.purchase.product.price_cash)} -
-
-

Price Point

-

{transactionDetails?.purchase.product.price_point}

-
-
-

Product Type

-

{transactionDetails?.purchase.product.type}

-
-
-

Provider Name

-

{transactionDetails?.purchase.product.provider.description}

-
-
-

Provider Type

- {(() => { - let providertype; - if (transactionDetails?.purchase.product.provider.type === 'h2h') { - providertype = 'HOST TO HOST'; - } else if (transactionDetails?.purchase.product.provider.type === 'agent') { - providertype = 'AGENT'; - } - return providertype; - })()} + {new Intl.NumberFormat('en-US', { style: 'currency', currency: 'USD' }).format( + transactionDetails?.purchase?.fee_amount ?? transactionDetails?.transfer?.fee_amount ?? 0 + )}

)} + {/* {activeTab === 'detail' && transactionDetails?.kind === 'P' && ( */} +
+

+ Product Information + + Product Info + +

+
+
+

Product Name

+

+ {transactionDetails?.purchase?.product?.name ?? "-"} +

+
+
+

Price Cash

+

+ {transactionDetails?.purchase?.product?.price_cash != null + ? new Intl.NumberFormat("en-US", { style: "currency", currency: "USD" }).format(transactionDetails.purchase.product.price_cash) + : "-"} +

+
+
+

Price Point

+

+ {transactionDetails?.purchase?.product?.price_point ?? "-"} +

+
+
+

Product Type

+

+ {transactionDetails?.purchase?.product?.type ?? "-"} +

+
+
+

Provider Name

+

+ {transactionDetails?.purchase?.product?.provider?.description ?? "-"} +

+
+
+

Provider Type

+

+ {transactionDetails?.purchase?.product?.provider?.type === "h2h" + ? "HOST TO HOST" + : transactionDetails?.purchase?.product?.provider?.type === "agent" + ? "AGENT" + : "-"} +

+
+
+
+ {/* )} */} {activeTab === 'detail' && transactionDetails?.kind != 'P' && transactionDetails?.transfer != null && (
@@ -397,7 +425,7 @@ const DetailTransaction = () => {

Fee

- {transactionDetails?.transfer.fee_amount.toLocaleString('en-US', { style: 'currency', currency: 'USD' })} + {(transactionDetails?.transfer?.fee_amount ?? transactionDetails?.purchase?.fee_amount ?? 0).toLocaleString('en-US', { style: 'currency', currency: 'USD' })}

diff --git a/src/pages/transaction/history-transaction/hooks/TransactionContext.tsx b/src/pages/transaction/history-transaction/hooks/TransactionContext.tsx index 038103a..f0063e2 100644 --- a/src/pages/transaction/history-transaction/hooks/TransactionContext.tsx +++ b/src/pages/transaction/history-transaction/hooks/TransactionContext.tsx @@ -265,30 +265,19 @@ const TransactionProvider = ({ children }: { children: React.ReactNode }) => { }); } - // Build filter object dynamically const formattedFilter: any = { "Transactions.transaction_date": { from: `${startdate} 00:00:00`, to: `${enddate} 23:59:59` } }; - + if (transactioncode) { - formattedFilter["Transactions.code"] = { - like: `%${transactioncode}%` - }; - } - - if (transactioncode) { - formattedFilter["Transactions.msisdn"] = { - like: `${transactioncode}` - }; - } - - if (transactioncode) { - formattedFilter["Transactions.fullname"] = { - like: `${transactioncode}` - }; + formattedFilter["$or"] = [ + { "Transactions.code": { like: `%${transactioncode}%` } }, + { "Transactions.msisdn": { like: `${transactioncode}` } }, + { "origin_customer.fullname": { like: `${transactioncode}` } } + ]; } // if (transactionstatus) { @@ -298,7 +287,7 @@ const TransactionProvider = ({ children }: { children: React.ReactNode }) => { if (type) { formattedFilter["Transactions.kind"] = type; } - + const response = await GetData(`${API_URL}/transaction/history`, { limit, page: page + 1,