fix crud transation type
This commit is contained in:
@ -104,10 +104,10 @@ const AddFeeDialog = () => {
|
|||||||
maximum_amount: formField.maximum_amount,
|
maximum_amount: formField.maximum_amount,
|
||||||
deduct_amount: formField.deduct_amount,
|
deduct_amount: formField.deduct_amount,
|
||||||
deduct_percentage: formField.deduct_percentage,
|
deduct_percentage: formField.deduct_percentage,
|
||||||
priority: formField.priority,
|
|
||||||
transaction_type: formField.transaction_type,
|
transaction_type: formField.transaction_type,
|
||||||
status: formField.status,
|
status: formField.status,
|
||||||
status_include: formField.status_include
|
status_include: formField.status_include,
|
||||||
|
priority: formField.priority ? 'Y' : 'N'
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
@ -160,10 +160,9 @@ const AddFeeDialog = () => {
|
|||||||
|
|
||||||
setAlert({ show: false, message: '' });
|
setAlert({ show: false, message: '' });
|
||||||
const response = await PostData(`${API_URL}/transactionfees/create`, {
|
const response = await PostData(`${API_URL}/transactionfees/create`, {
|
||||||
...formField,
|
...formField
|
||||||
priority: formField.priority ? 'Y' : 'N'
|
|
||||||
});
|
});
|
||||||
|
console.log(response);
|
||||||
if (response?.status) {
|
if (response?.status) {
|
||||||
toast.success('Success Create Transfer Fee');
|
toast.success('Success Create Transfer Fee');
|
||||||
reload();
|
reload();
|
||||||
@ -348,8 +347,8 @@ const AddFeeDialog = () => {
|
|||||||
<SelectValue placeholder="Select Status" />
|
<SelectValue placeholder="Select Status" />
|
||||||
</SelectTrigger>
|
</SelectTrigger>
|
||||||
<SelectContent>
|
<SelectContent>
|
||||||
<SelectItem value="Y">Y</SelectItem>
|
<SelectItem value="Y">Active</SelectItem>
|
||||||
<SelectItem value="N">N</SelectItem>
|
<SelectItem value="N">Inactive</SelectItem>
|
||||||
</SelectContent>
|
</SelectContent>
|
||||||
</Select>
|
</Select>
|
||||||
</div>
|
</div>
|
||||||
@ -363,8 +362,8 @@ const AddFeeDialog = () => {
|
|||||||
<SelectValue placeholder="Select Status" />
|
<SelectValue placeholder="Select Status" />
|
||||||
</SelectTrigger>
|
</SelectTrigger>
|
||||||
<SelectContent>
|
<SelectContent>
|
||||||
<SelectItem value="Y">Y</SelectItem>
|
<SelectItem value="Y">Yes</SelectItem>
|
||||||
<SelectItem value="N">N</SelectItem>
|
<SelectItem value="N">No</SelectItem>
|
||||||
</SelectContent>
|
</SelectContent>
|
||||||
</Select>
|
</Select>
|
||||||
</div>
|
</div>
|
||||||
@ -373,15 +372,15 @@ const AddFeeDialog = () => {
|
|||||||
<Select
|
<Select
|
||||||
value={formField.priority ? 'Y' : 'N'}
|
value={formField.priority ? 'Y' : 'N'}
|
||||||
onValueChange={(value) =>
|
onValueChange={(value) =>
|
||||||
setFormField({ ...formField, priority: value === 'Y' })
|
setFormField((prev) => ({ ...prev, priority: value === 'Y' }))
|
||||||
}
|
}
|
||||||
>
|
>
|
||||||
<SelectTrigger>
|
<SelectTrigger>
|
||||||
<SelectValue placeholder="Select Priority" />
|
<SelectValue placeholder="Select Priority" />
|
||||||
</SelectTrigger>
|
</SelectTrigger>
|
||||||
<SelectContent>
|
<SelectContent>
|
||||||
<SelectItem value="Y">Y</SelectItem>
|
<SelectItem value="Y">Yes</SelectItem>
|
||||||
<SelectItem value="N">N</SelectItem>
|
<SelectItem value="N">No</SelectItem>
|
||||||
</SelectContent>
|
</SelectContent>
|
||||||
</Select>
|
</Select>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -72,7 +72,7 @@ const EditFeeDialog = () => {
|
|||||||
period_end: '',
|
period_end: '',
|
||||||
deduct_amount: 0,
|
deduct_amount: 0,
|
||||||
deduct_percentage: 0,
|
deduct_percentage: 0,
|
||||||
priority: '',
|
priority: false,
|
||||||
status: '',
|
status: '',
|
||||||
status_include: '',
|
status_include: '',
|
||||||
transaction_type: '',
|
transaction_type: '',
|
||||||
@ -96,7 +96,8 @@ const EditFeeDialog = () => {
|
|||||||
async (e: React.FormEvent<HTMLFormElement>) => {
|
async (e: React.FormEvent<HTMLFormElement>) => {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
const response = await PutData(`${API_URL}/transactionfees/update/${selectedTransferFee}`, {
|
const response = await PutData(`${API_URL}/transactionfees/update/${selectedTransferFee}`, {
|
||||||
...formField
|
...formField,
|
||||||
|
priority: formField.priority ? 'Y' : 'N' // Ubah ke "Y" atau "N"
|
||||||
});
|
});
|
||||||
if (response?.status) {
|
if (response?.status) {
|
||||||
handleEditFeeDialog(false, null);
|
handleEditFeeDialog(false, null);
|
||||||
@ -165,9 +166,10 @@ const EditFeeDialog = () => {
|
|||||||
order_field: sorting[0].id,
|
order_field: sorting[0].id,
|
||||||
order_direction: sorting[0].desc ? 'DESC' : 'ASC'
|
order_direction: sorting[0].desc ? 'DESC' : 'ASC'
|
||||||
});
|
});
|
||||||
setTransactionTypes(response?.data.list || []);
|
// console.log('Transaction Type: ', response?.data.list);
|
||||||
|
setTransactionTypes(response?.data.list);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error('Error fetching customer', error);
|
console.error('Error fetching Transaction Type', error);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -188,29 +190,10 @@ const EditFeeDialog = () => {
|
|||||||
period_end: response.data.period_end,
|
period_end: response.data.period_end,
|
||||||
deduct_amount: response.data.deduct_amount,
|
deduct_amount: response.data.deduct_amount,
|
||||||
deduct_percentage: response.data.deduct_percentage,
|
deduct_percentage: response.data.deduct_percentage,
|
||||||
priority: response.data.priority,
|
priority: response.data.priority === 'Y',
|
||||||
status: response.data.status,
|
status: response.data.status,
|
||||||
status_include: response.data.status_include,
|
status_include: response.data.status_include,
|
||||||
transaction_type: response.data.transaction_type.id
|
transaction_type: response.data.transaction_type.id
|
||||||
|
|
||||||
// updated_by: parsedUser?.username ,
|
|
||||||
// updated_at: new Date().toISOString().slice(0, 19).replace('T', ' ')
|
|
||||||
}));
|
|
||||||
} else {
|
|
||||||
setFormField((prev) => ({
|
|
||||||
...prev,
|
|
||||||
name: '',
|
|
||||||
description: '',
|
|
||||||
minimum_amount: 0,
|
|
||||||
maximum_amount: 0,
|
|
||||||
period_start: '',
|
|
||||||
period_end: '',
|
|
||||||
deduct_amount: 0,
|
|
||||||
deduct_percentage: 0,
|
|
||||||
priority: '',
|
|
||||||
status: '',
|
|
||||||
status_include: '',
|
|
||||||
transaction_type: ''
|
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
}, []);
|
}, []);
|
||||||
@ -230,7 +213,7 @@ const EditFeeDialog = () => {
|
|||||||
period_end: '',
|
period_end: '',
|
||||||
deduct_amount: 0,
|
deduct_amount: 0,
|
||||||
deduct_percentage: 0,
|
deduct_percentage: 0,
|
||||||
priority: '',
|
priority: false,
|
||||||
status: '',
|
status: '',
|
||||||
status_include: '',
|
status_include: '',
|
||||||
transaction_type: '',
|
transaction_type: '',
|
||||||
@ -416,8 +399,8 @@ const EditFeeDialog = () => {
|
|||||||
<SelectValue placeholder="Select Status" />
|
<SelectValue placeholder="Select Status" />
|
||||||
</SelectTrigger>
|
</SelectTrigger>
|
||||||
<SelectContent>
|
<SelectContent>
|
||||||
<SelectItem value="Y">Y</SelectItem>
|
<SelectItem value="Y">Active</SelectItem>
|
||||||
<SelectItem value="N">N</SelectItem>
|
<SelectItem value="N">Inactive</SelectItem>
|
||||||
</SelectContent>
|
</SelectContent>
|
||||||
</Select>
|
</Select>
|
||||||
</div>
|
</div>
|
||||||
@ -433,26 +416,29 @@ const EditFeeDialog = () => {
|
|||||||
<SelectValue placeholder="Select Status" />
|
<SelectValue placeholder="Select Status" />
|
||||||
</SelectTrigger>
|
</SelectTrigger>
|
||||||
<SelectContent>
|
<SelectContent>
|
||||||
<SelectItem value="Y">Y</SelectItem>
|
<SelectItem value="Y">Yes</SelectItem>
|
||||||
<SelectItem value="N">N</SelectItem>
|
<SelectItem value="N">No</SelectItem>
|
||||||
</SelectContent>
|
</SelectContent>
|
||||||
</Select>
|
</Select>
|
||||||
</div>
|
</div>
|
||||||
<div className="w-full">
|
<div className="w-full">
|
||||||
<label className="form-label">Priority</label>
|
<label className="form-label">Priority</label>
|
||||||
<Select
|
<Select
|
||||||
value={formField.priority}
|
value={formField.priority ? 'Y' : 'N'} // Menyesuaikan nilai
|
||||||
onValueChange={(value) => setFormField({ ...formField, priority: value })}
|
onValueChange={(value) =>
|
||||||
|
setFormField((prev) => ({ ...prev, priority: value === 'Y' }))
|
||||||
|
}
|
||||||
>
|
>
|
||||||
<SelectTrigger>
|
<SelectTrigger>
|
||||||
<SelectValue placeholder="Select Status" />
|
<SelectValue placeholder="Select Priority" />
|
||||||
</SelectTrigger>
|
</SelectTrigger>
|
||||||
<SelectContent>
|
<SelectContent>
|
||||||
<SelectItem value="Y">Y</SelectItem>
|
<SelectItem value="Y">Yes</SelectItem>
|
||||||
<SelectItem value="N">N</SelectItem>
|
<SelectItem value="N">No</SelectItem>
|
||||||
</SelectContent>
|
</SelectContent>
|
||||||
</Select>
|
</Select>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{/* <div className="w-full">
|
{/* <div className="w-full">
|
||||||
<label className="form-label">Priotity</label>
|
<label className="form-label">Priotity</label>
|
||||||
<Select
|
<Select
|
||||||
|
|||||||
@ -136,14 +136,6 @@ const ManageTransferFeeContextProvider = ({ children }: { children: React.ReactN
|
|||||||
enableHiding: false,
|
enableHiding: false,
|
||||||
meta: { headerClassName: 'w-[150px]' }
|
meta: { headerClassName: 'w-[150px]' }
|
||||||
},
|
},
|
||||||
{
|
|
||||||
accessorFn: (row) => row.priority,
|
|
||||||
id: 'priority',
|
|
||||||
header: ({ column }) => <DataGridColumnHeader title="Priority" column={column} />,
|
|
||||||
enableSorting: true,
|
|
||||||
enableHiding: false,
|
|
||||||
meta: { headerClassName: 'w-[100px]' }
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
accessorFn: (row) => row.transaction_type?.name,
|
accessorFn: (row) => row.transaction_type?.name,
|
||||||
id: 'transactionTypeId',
|
id: 'transactionTypeId',
|
||||||
@ -153,7 +145,23 @@ const ManageTransferFeeContextProvider = ({ children }: { children: React.ReactN
|
|||||||
meta: { headerClassName: 'w-[250px]' }
|
meta: { headerClassName: 'w-[250px]' }
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
accessorFn: (row) => row.status_include,
|
accessorFn: (row) => (row.priority === 'Y' ? 'Yes' : 'No'),
|
||||||
|
id: 'priority',
|
||||||
|
header: ({ column }) => <DataGridColumnHeader title="Priority" column={column} />,
|
||||||
|
enableSorting: true,
|
||||||
|
enableHiding: false,
|
||||||
|
meta: { headerClassName: 'w-[100px]' }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
accessorFn: (row) => (row.status === 'Y' ? 'Active' : 'Inactieve'),
|
||||||
|
id: 'status',
|
||||||
|
header: ({ column }) => <DataGridColumnHeader title="Status" column={column} />,
|
||||||
|
enableSorting: true,
|
||||||
|
enableHiding: false,
|
||||||
|
meta: { headerClassName: 'w-[150px]' }
|
||||||
|
},
|
||||||
|
{
|
||||||
|
accessorFn: (row) => (row.status_include === 'Y' ? 'Yes' : 'No'),
|
||||||
id: 'status_include',
|
id: 'status_include',
|
||||||
header: ({ column }) => <DataGridColumnHeader title="Status Include" column={column} />,
|
header: ({ column }) => <DataGridColumnHeader title="Status Include" column={column} />,
|
||||||
enableSorting: true,
|
enableSorting: true,
|
||||||
|
|||||||
@ -127,13 +127,14 @@ const AddDialog = () => {
|
|||||||
order_field: sorting[0].id,
|
order_field: sorting[0].id,
|
||||||
order_direction: sorting[0].desc ? 'DESC' : 'ASC'
|
order_direction: sorting[0].desc ? 'DESC' : 'ASC'
|
||||||
});
|
});
|
||||||
setCustomers(response?.data.list || []);
|
setCustomers(response?.data.list);
|
||||||
|
console.log('CUSTOMER: ', response?.data.list);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error('Error fetching customer', error);
|
console.error('Error fetching customer', error);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
getCustomerList([{ id: 'msisdn', desc: false }]);
|
getCustomerList([{ id: 'id', desc: false }]);
|
||||||
}, [showAddDialog]);
|
}, [showAddDialog]);
|
||||||
|
|
||||||
const fetchWallets = useCallback(async () => {
|
const fetchWallets = useCallback(async () => {
|
||||||
@ -397,7 +398,7 @@ const AddDialog = () => {
|
|||||||
</div>
|
</div>
|
||||||
<div className="w-full">
|
<div className="w-full">
|
||||||
<div className="flex items-center flex-wrap gap-2.5">
|
<div className="flex items-center flex-wrap gap-2.5">
|
||||||
<label className="form-label max-w-56">Customer</label>
|
<label className="form-label max-w-56">Customer Fee Destination</label>
|
||||||
<div className="grow">
|
<div className="grow">
|
||||||
<Select
|
<Select
|
||||||
value={formField.customer_fee_destination}
|
value={formField.customer_fee_destination}
|
||||||
|
|||||||
@ -143,15 +143,15 @@ const EditDialog = () => {
|
|||||||
order_field: sorting[0].id,
|
order_field: sorting[0].id,
|
||||||
order_direction: sorting[0].desc ? 'DESC' : 'ASC'
|
order_direction: sorting[0].desc ? 'DESC' : 'ASC'
|
||||||
});
|
});
|
||||||
|
console.log('CUSTOMER: ', response?.data.list);
|
||||||
setCustomers(response?.data.list || []);
|
setCustomers(response?.data.list);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error('Error fetching customer', error);
|
console.error('Error fetching customer', error);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
getCustomerList([{ id: 'id', desc: false }]);
|
getCustomerList([{ id: 'id', desc: false }]);
|
||||||
}, [showEditDialog]);
|
}, []);
|
||||||
const fetchWallets = useCallback(async () => {
|
const fetchWallets = useCallback(async () => {
|
||||||
const params = {
|
const params = {
|
||||||
limit: 100,
|
limit: 100,
|
||||||
@ -177,9 +177,8 @@ const EditDialog = () => {
|
|||||||
|
|
||||||
const fetchTransactionType = useCallback(async (id: string) => {
|
const fetchTransactionType = useCallback(async (id: string) => {
|
||||||
const response = await GetData(`${API_URL}/transactiontype/getdata/${id}`, { id });
|
const response = await GetData(`${API_URL}/transactiontype/getdata/${id}`, { id });
|
||||||
|
console.log('Transaction Type: ', response?.data);
|
||||||
if (response?.status) {
|
if (response?.status) {
|
||||||
const data = response.data;
|
|
||||||
setFormField((prev) => ({
|
setFormField((prev) => ({
|
||||||
...prev,
|
...prev,
|
||||||
name: response.data.name,
|
name: response.data.name,
|
||||||
@ -196,21 +195,7 @@ const EditDialog = () => {
|
|||||||
// updated_by: parsedUser?.username ,
|
// updated_by: parsedUser?.username ,
|
||||||
// updated_at: new Date().toISOString().slice(0, 19).replace('T', ' ')
|
// updated_at: new Date().toISOString().slice(0, 19).replace('T', ' ')
|
||||||
}));
|
}));
|
||||||
} else {
|
console.log('Transaction Type: ', formField);
|
||||||
setFormField((prev) => ({
|
|
||||||
...prev,
|
|
||||||
name: '',
|
|
||||||
description: '',
|
|
||||||
wallet_origin: '',
|
|
||||||
wallet_destination: '',
|
|
||||||
wallet_fee_destination: '',
|
|
||||||
customer_fee_destination: '',
|
|
||||||
maximum_amount: 0,
|
|
||||||
minimum_amount: 0,
|
|
||||||
max_transaction_per_day: 0,
|
|
||||||
status_approval: '',
|
|
||||||
status: ''
|
|
||||||
}));
|
|
||||||
}
|
}
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
@ -493,19 +478,7 @@ const EditDialog = () => {
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{/* <div className="grid gap-5 lg:gap-7.5">
|
|
||||||
<DataGridInner />
|
|
||||||
</div> */}
|
|
||||||
<div className="flex justify-end pt-2.5 gap-5">
|
<div className="flex justify-end pt-2.5 gap-5">
|
||||||
{/* <Button
|
|
||||||
type="button"
|
|
||||||
variant="outline"
|
|
||||||
onClick={() => setShowTransactionFeeDialog(true)}
|
|
||||||
>
|
|
||||||
Transaction Fee Form
|
|
||||||
</Button> */}
|
|
||||||
|
|
||||||
<Button
|
<Button
|
||||||
variant={'outline'}
|
variant={'outline'}
|
||||||
type="reset"
|
type="reset"
|
||||||
|
|||||||
@ -156,17 +156,17 @@ const ManageTransferTypeContextProvider = ({ children }: { children: React.React
|
|||||||
meta: { headerClassName: 'w-[250px]' }
|
meta: { headerClassName: 'w-[250px]' }
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
accessorFn: (row) => row.status_approval,
|
accessorFn: (row) => (row.status === 'Y' ? 'Active' : 'Inactive'),
|
||||||
id: 'status_approval',
|
id: 'status',
|
||||||
header: ({ column }) => <DataGridColumnHeader title="Approval Status" column={column} />,
|
header: ({ column }) => <DataGridColumnHeader title="Status" column={column} />,
|
||||||
enableSorting: true,
|
enableSorting: true,
|
||||||
enableHiding: false,
|
enableHiding: false,
|
||||||
meta: { headerClassName: 'w-[150px]' }
|
meta: { headerClassName: 'w-[150px]' }
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
accessorFn: (row) => row.status,
|
accessorFn: (row) => (row.status_approval === 'Y' ? 'Yes' : 'No'),
|
||||||
id: 'status',
|
id: 'status_approval',
|
||||||
header: ({ column }) => <DataGridColumnHeader title="Status" column={column} />,
|
header: ({ column }) => <DataGridColumnHeader title="Approval Status" column={column} />,
|
||||||
enableSorting: true,
|
enableSorting: true,
|
||||||
enableHiding: false,
|
enableHiding: false,
|
||||||
meta: { headerClassName: 'w-[150px]' }
|
meta: { headerClassName: 'w-[150px]' }
|
||||||
|
|||||||
Reference in New Issue
Block a user