diff --git a/src/pages/members/kyc/Kyc.tsx b/src/pages/members/kyc/Kyc.tsx index eb038ff..e7ea68e 100644 --- a/src/pages/members/kyc/Kyc.tsx +++ b/src/pages/members/kyc/Kyc.tsx @@ -67,7 +67,7 @@ const Kyc = () => { }); setMembers(resMembers); } catch (error: any) { - alert(error.message); + toast.error(error.message); console.log(error); } } @@ -117,6 +117,7 @@ const Kyc = () => { delete updateData.group_updated_at; delete updateData.group_deleted_by; delete updateData.group_deleted_at; + delete updateData.updated_at; try { if (dialogType === 'reject') { await axios.post(`${BASE_URL}/customer/reject`, { customerid: customerId }); @@ -134,7 +135,6 @@ const Kyc = () => { setIsDialogOpen(false); toast.success('Success Update Kyc Member'); } catch (error: any) { - alert(error.message); setDialogOpen(false); setIsDialogOpen(false); toast.error(error.message); @@ -156,15 +156,16 @@ const Kyc = () => { onYes={handleYes} onNo={() => setDialogOpen(false)} /> - + { member.id ? ( + + ): ""}

Manage Member KYC

diff --git a/src/pages/members/manage-members/CustomerDetailModal.tsx b/src/pages/members/manage-members/CustomerDetailModal.tsx index dc1711a..140b242 100644 --- a/src/pages/members/manage-members/CustomerDetailModal.tsx +++ b/src/pages/members/manage-members/CustomerDetailModal.tsx @@ -1,7 +1,7 @@ import React, { useState, useEffect } from "react"; import axios from 'axios'; import { Dialog,DialogActions,DialogContent,DialogTitle,TextField,Button,MenuItem,Select,InputLabel,FormControl,Typography, - InputAdornment,Grid,Box + InputAdornment,Grid,Box,List,ListItem, } from "@mui/material"; import UploadFileIcon from "@mui/icons-material/UploadFile"; import Divider from '@mui/material/Divider'; @@ -11,7 +11,7 @@ import ConfirmDialog from '@/components/confirm'; import { toast } from 'sonner'; const BASE_URL_MASTER_DATA = apiConfig.service_master_data; const BASE_URL_CUSTOMER = apiConfig.service_customer; - +// MAIN PAGE const CustomerDialog = ({ open, handleClose, handleSubmit, initialData, viewStats, handleReject, page, fetchCustomers }: any) => { const [formData, setFormData] = useState(initialData || initialMember); const [viewOnly, setViewOnly] = useState(viewStats || false); @@ -80,7 +80,8 @@ const CustomerDialog = ({ open, handleClose, handleSubmit, initialData, viewStat const handleChange = async (e: any) => { const { name, value } = e.target; if (name === 'municipio' || name === 'posto_adms' || name === 'suco') await getMasterAfter(name, value); - if (name === "file_selfie" || name === "photouser") { // FOR FILE ONLY + if (name === "file_selfie" || name === "photouser" || name === 'file_document_id' || name === "file_document_id_selfie" || + name === "file_commercial_license") { // FOR FILE ONLY setFormData({ ...formData, [name]: e.target.files[0] }); } else { setFormData({ ...formData, [name]: value }); @@ -127,8 +128,9 @@ const CustomerDialog = ({ open, handleClose, handleSubmit, initialData, viewStat } const onSubmit = () => { + if (page === 'kyc' && !formData.description) return toast.warning(`Description for approval needed!`) handleSubmit(formData); - handleClose(); + // handleClose(); }; const onReject = () => { @@ -274,9 +276,13 @@ const CustomerDialog = ({ open, handleClose, handleSubmit, initialData, viewStat page === 'kyc' ? ( <> Approval - + - ) : (<>{getAdmAccess(page, formData, handleClose, fetchCustomers, viewOnly, setViewOnly)}) + ) : (<> + {getAdmAccess(page, formData, handleClose, fetchCustomers, viewOnly, setViewOnly)} + + {formData.id ? showCustomerWallet(formData.id) : ""} + ) } @@ -317,11 +323,11 @@ function fileTextFile(label: string, value: any, name: string, handleChange: any - */} ), }} /> ) } - +// ACCESS ADM function getAdmAccess(page: string, data: any, handleClose: any, fetchCustomers: any, viewOnly: any, setViewOnly: any) { const [dialogOpen, setDialogOpen] = useState(false); const [dialogType, setDialogType] = useState(''); @@ -517,7 +523,83 @@ function getPinStatus(status: string) { res: null } } +// CUSTOMER WALLET +function showCustomerWallet(customerid: any) { + const [dialogOpen, setDialogOpen] = useState(false); + const [customerWallet, setCustomerWallet] = useState([]); + if (!customerid) return '' + + useEffect(() => { + fetchCustomerWallet() + }, []); -function showCustomerWallet() { + async function fetchCustomerWallet() { + try { + let getCustWallet = await axios.get(`${BASE_URL_CUSTOMER}/customer/wallet`, { params: { customerid: customerid }}); + setCustomerWallet(getCustWallet.data.data.wallets) + } catch (error: any) { + toast.error(error.message) + } + } + const handleYes = async () => {} + + return ( + + Wallet Member + + + {customerWallet.map((item:any, index:any) => ( + + + + + Name + + + {item.wallet.name} + + + + + Description + + {item.wallet.description} + + + + Transaction Today + + {item.transaction_number_today} + + + {index < customerWallet.length - 1 && } + + ))} + + + setDialogOpen(false)} + title="Confirm Action" + content={`Are you sure you want to show?`} + onYes={handleYes} + onNo={() => setDialogOpen(false)} + /> + + ) } \ No newline at end of file diff --git a/src/pages/members/manage-members/ManageMembers.tsx b/src/pages/members/manage-members/ManageMembers.tsx index 67f7341..7adca08 100644 --- a/src/pages/members/manage-members/ManageMembers.tsx +++ b/src/pages/members/manage-members/ManageMembers.tsx @@ -20,7 +20,10 @@ const ManageMembers = () => { const [isDialogOpen, setIsDialogOpen] = useState(false); const [dialogOpen, setDialogOpen] = useState(false); const [dialogType, setDialogType] = useState(''); - const closeDialog = () => setIsDialogOpen(false); + const closeDialog = () => { + setIsDialogOpen(false) + setMember(initialMember) + }; const { getUser } = useAuthContext(); useEffect(() => { @@ -48,7 +51,7 @@ const ManageMembers = () => { }); setMembers(resMembers); } catch (error: any) { - alert(error.message); + toast.error(error.message); console.log(error); } } @@ -99,8 +102,16 @@ const ManageMembers = () => { delete updateData.group_deleted_at; delete updateData.updated_at; try { - if (dialogType === 'update') - await axios.put(`${BASE_URL}/customer/update/${selectedMember}`, updateData); + const form = new FormData(); + for (const property in updateData) { + if (updateData[property]) form.append(property, updateData[property]); + } + + if (dialogType === 'update') await axios.put(`${BASE_URL}/customer/update/${selectedMember}`, form, { + headers: { + 'Content-Type': 'multipart/form-data' + } + }); // if (dialogType === 'create') await axios.post(`${BASE_URL}/customers/create`, member) await fetchCustomers(); setDialogOpen(false); @@ -130,12 +141,14 @@ const ManageMembers = () => { onYes={handleYes} onNo={() => setDialogOpen(false)} /> - + ): ""}

Manage Members