This commit is contained in:
ardiola
2025-04-22 01:15:46 +07:00
19 changed files with 742 additions and 191 deletions

View File

@ -61,6 +61,25 @@ const TransactionProvider = ({ children }: { children: React.ReactNode }) => {
headerClassName: 'w-[250px]'
}
},
{
accessorFn: (row) => {
switch (row.kind) {
case 'T': return 'TRANSFER';
case 'P': return 'PURCHASE';
case 'W': return 'WITHDRAW';
case 'U': return 'TOP UP';
case 'R': return 'RETURN';
default: return '_';
}
},
accessorKey: 'kind',
header: ({ column }) => <DataGridColumnHeader title="Transaction Kind" column={column} />,
enableSorting: false,
enableHiding: false,
meta: {
headerClassName: 'w-[250px]'
}
},
{
accessorKey: 'transaction_date',
header: ({ column }) => <DataGridColumnHeader title="Transaction Date" column={column} />,
@ -220,10 +239,11 @@ const TransactionProvider = ({ children }: { children: React.ReactNode }) => {
let enddate = today.toISOString().split('T')[0];
let transactioncode = '';
// let transactionstatus = '';
let type = ''
if (Array.isArray(filter)) {
// console.log(filter);
filter.forEach((f: any) => {
// console.log(f.id);
if (f.id === 'transaction_date' && f.value?.from && f.value?.to) {
startdate = f.value.from;
enddate = f.value.to;
@ -236,22 +256,34 @@ const TransactionProvider = ({ children }: { children: React.ReactNode }) => {
// if (f.id === 'status' && f.value) {
// transactionstatus = f.value;
// }
if (f.id === 'kind' && f.value) {
type = f.value;
}
});
}
const formattedFilter = {
// Build filter object dynamically
const formattedFilter: any = {
"Transactions.transaction_date": {
from: `${startdate} 00:00:00`,
to: `${enddate} 23:59:59`
},
"Transactions.code": {
like: `%${transactioncode}%`
},
// "Transactions.status": {
// like: `%${transactionstatus}%`
// }
}
};
if (transactioncode) {
formattedFilter["Transactions.code"] = {
like: `%${transactioncode}%`
};
}
// if (transactionstatus) {
// formattedFilter["Transactions.status"] = transactionstatus;
// }
if (type) {
formattedFilter["Transactions.kind"] = type;
}
const response = await GetData(`${API_URL}/transaction/history`, {
limit,
@ -272,7 +304,7 @@ const TransactionProvider = ({ children }: { children: React.ReactNode }) => {
} catch (error) {
console.error('Error fetching transaction', error);
return { data: [], totalCount: 0 }; // optional: fail-safe fallback
return { data: [], totalCount: 0 };
}
};